type Query {
  """AWS SDK 2.935.0"""
  aws(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): Aws
}

"""AWS SDK 2.935.0"""
type Aws {
  acm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsACM
  acmpca(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsACMPCA
  apigateway(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAPIGateway
  accessanalyzer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAccessAnalyzer
  alexaforbusiness(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAlexaForBusiness
  amp(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAmp
  amplify(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAmplify
  amplifybackend(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAmplifyBackend
  apigatewaymanagementapi(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsApiGatewayManagementApi
  apigatewayv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsApiGatewayV2
  appconfig(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppConfig
  appintegrations(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppIntegrations
  appmesh(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppMesh
  apprunner(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppRunner
  appstream(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppStream
  appsync(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppSync
  appflow(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAppflow
  applicationautoscaling(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsApplicationAutoScaling
  applicationcostprofiler(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsApplicationCostProfiler
  applicationinsights(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsApplicationInsights
  athena(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAthena
  auditmanager(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAuditManager
  augmentedairuntime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAugmentedAIRuntime
  autoscaling(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAutoScaling
  autoscalingplans(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsAutoScalingPlans
  backup(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsBackup
  batch(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsBatch
  braket(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsBraket
  budgets(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsBudgets
  cur(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCUR
  chime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsChime
  cloud9(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloud9
  clouddirectory(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudDirectory
  cloudformation(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudFormation
  cloudfront(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudFront
  cloudhsm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudHSM
  cloudhsmv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudHSMV2
  cloudsearch(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudSearch
  cloudsearchdomain(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudSearchDomain
  cloudtrail(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudTrail
  cloudwatch(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudWatch
  cloudwatchevents(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudWatchEvents
  cloudwatchlogs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCloudWatchLogs
  codeartifact(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeArtifact
  codebuild(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeBuild
  codecommit(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeCommit
  codedeploy(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeDeploy
  codeguruprofiler(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeGuruProfiler
  codegurureviewer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeGuruReviewer
  codepipeline(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodePipeline
  codestar(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeStar
  codestarnotifications(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeStarNotifications
  codestarconnections(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCodeStarconnections
  cognitoidentity(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCognitoIdentity
  cognitoidentityserviceprovider(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCognitoIdentityServiceProvider
  cognitosync(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCognitoSync
  comprehend(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsComprehend
  comprehendmedical(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsComprehendMedical
  computeoptimizer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsComputeOptimizer
  configservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsConfigService
  connect(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsConnect
  connectcontactlens(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsConnectContactLens
  connectparticipant(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsConnectParticipant
  costexplorer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCostExplorer
  customerprofiles(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsCustomerProfiles
  dax(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDAX
  dlm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDLM
  dms(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDMS
  databrew(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDataBrew
  dataexchange(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDataExchange
  datapipeline(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDataPipeline
  datasync(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDataSync
  detective(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDetective
  devopsguru(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDevOpsGuru
  devicefarm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDeviceFarm
  directconnect(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDirectConnect
  directoryservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDirectoryService
  discovery(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDiscovery
  docdb(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDocDB
  dynamodb(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDynamoDB
  dynamodbstreams(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsDynamoDBStreams
  ebs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEBS
  ec2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEC2
  ec2instanceconnect(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEC2InstanceConnect
  ecr(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsECR
  ecrpublic(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsECRPUBLIC
  ecs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsECS
  efs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEFS
  eks(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEKS
  elb(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsELB
  elbv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsELBv2
  emr(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEMR
  emrcontainers(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEMRcontainers
  es(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsES
  elasticache(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsElastiCache
  elasticbeanstalk(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsElasticBeanstalk
  elasticinference(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsElasticInference
  elastictranscoder(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsElasticTranscoder
  eventbridge(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsEventBridge
  fms(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFMS
  fsx(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFSx
  finspace(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFinspace
  finspacedata(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFinspacedata
  firehose(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFirehose
  fis(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFis
  forecastqueryservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsForecastQueryService
  forecastservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsForecastService
  frauddetector(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsFraudDetector
  gamelift(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGameLift
  glacier(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGlacier
  globalaccelerator(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGlobalAccelerator
  glue(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGlue
  greengrass(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGreengrass
  greengrassv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGreengrassV2
  groundstation(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGroundStation
  guardduty(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsGuardDuty
  health(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsHealth
  healthlake(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsHealthLake
  honeycode(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsHoneycode
  iam(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIAM
  ivs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIVS
  identitystore(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIdentityStore
  imagebuilder(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsImagebuilder
  importexport(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsImportExport
  inspector(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsInspector
  iot1clickdevicesservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoT1ClickDevicesService
  iot1clickprojects(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoT1ClickProjects
  iotanalytics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTAnalytics
  iotevents(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTEvents
  ioteventsdata(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTEventsData
  iotfleethub(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTFleetHub
  iotjobsdataplane(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTJobsDataPlane
  iotsecuretunneling(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTSecureTunneling
  iotsitewise(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTSiteWise
  iotthingsgraph(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTThingsGraph
  iotwireless(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIoTWireless
  iot(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIot
  iotdata(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIotData
  iotdeviceadvisor(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsIotDeviceAdvisor
  kms(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKMS
  kafka(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKafka
  kendra(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKendra
  kinesis(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesis
  kinesisanalytics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisAnalytics
  kinesisanalyticsv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisAnalyticsV2
  kinesisvideo(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisVideo
  kinesisvideoarchivedmedia(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisVideoArchivedMedia
  kinesisvideomedia(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisVideoMedia
  kinesisvideosignalingchannels(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsKinesisVideoSignalingChannels
  lakeformation(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLakeFormation
  lambda(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLambda
  lexmodelbuildingservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLexModelBuildingService
  lexmodelsv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLexModelsV2
  lexruntime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLexRuntime
  lexruntimev2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLexRuntimeV2
  licensemanager(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLicenseManager
  lightsail(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLightsail
  location(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLocation
  lookoutequipment(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLookoutEquipment
  lookoutmetrics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLookoutMetrics
  lookoutvision(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsLookoutVision
  mq(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMQ
  mturk(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMTurk
  mwaa(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMWAA
  machinelearning(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMachineLearning
  macie(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMacie
  macie2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMacie2
  managedblockchain(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsManagedBlockchain
  marketplacecatalog(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMarketplaceCatalog
  marketplacecommerceanalytics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMarketplaceCommerceAnalytics
  marketplaceentitlementservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMarketplaceEntitlementService
  marketplacemetering(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMarketplaceMetering
  mediaconnect(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaConnect
  mediaconvert(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaConvert
  medialive(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaLive
  mediapackage(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaPackage
  mediapackagevod(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaPackageVod
  mediastore(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaStore
  mediastoredata(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaStoreData
  mediatailor(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMediaTailor
  mgn(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMgn
  migrationhub(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMigrationHub
  migrationhubconfig(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMigrationHubConfig
  mobile(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMobile
  mobileanalytics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsMobileAnalytics
  neptune(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsNeptune
  networkfirewall(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsNetworkFirewall
  networkmanager(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsNetworkManager
  nimble(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsNimble
  opsworks(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsOpsWorks
  opsworkscm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsOpsWorksCM
  organizations(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsOrganizations
  outposts(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsOutposts
  pi(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPI
  personalize(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPersonalize
  personalizeevents(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPersonalizeEvents
  personalizeruntime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPersonalizeRuntime
  pinpoint(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPinpoint
  pinpointemail(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPinpointEmail
  pinpointsmsvoice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPinpointSMSVoice
  polly(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPolly
  pricing(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsPricing
  proton(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsProton
  qldb(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsQLDB
  qldbsession(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsQLDBSession
  quicksight(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsQuickSight
  ram(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRAM
  rds(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRDS
  rdsdataservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRDSDataService
  redshift(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRedshift
  redshiftdata(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRedshiftData
  rekognition(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRekognition
  resourcegroups(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsResourceGroups
  resourcegroupstaggingapi(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsResourceGroupsTaggingAPI
  robomaker(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRoboMaker
  route53(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRoute53
  route53domains(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRoute53Domains
  route53resolver(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsRoute53Resolver
  s3(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsS3
  s3control(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsS3Control
  s3outposts(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsS3Outposts
  ses(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSES
  sesv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSESV2
  sms(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSMS
  sns(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSNS
  sqs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSQS
  ssm(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSM
  ssmcontacts(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSMContacts
  ssmincidents(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSMIncidents
  sso(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSO
  ssoadmin(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSOAdmin
  ssooidc(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSSOOIDC
  sts(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSTS
  swf(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSWF
  sagemaker(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSageMaker
  sagemakerfeaturestoreruntime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSageMakerFeatureStoreRuntime
  sagemakerruntime(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSageMakerRuntime
  sagemakeredge(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSagemakerEdge
  savingsplans(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSavingsPlans
  schemas(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSchemas
  secretsmanager(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSecretsManager
  securityhub(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSecurityHub
  serverlessapplicationrepository(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsServerlessApplicationRepository
  servicecatalog(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsServiceCatalog
  servicecatalogappregistry(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsServiceCatalogAppRegistry
  servicediscovery(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsServiceDiscovery
  servicequotas(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsServiceQuotas
  shield(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsShield
  signer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSigner
  simpledb(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSimpleDB
  snowball(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSnowball
  stepfunctions(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsStepFunctions
  storagegateway(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsStorageGateway
  support(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSupport
  synthetics(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsSynthetics
  textract(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTextract
  timestreamquery(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTimestreamQuery
  timestreamwrite(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTimestreamWrite
  transcribeservice(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTranscribeService
  transfer(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTransfer
  translate(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsTranslate
  waf(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWAF
  wafregional(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWAFRegional
  wafv2(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWAFV2
  wellarchitected(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWellArchitected
  workdocs(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWorkDocs
  worklink(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWorkLink
  workmail(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWorkMail
  workmailmessageflow(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWorkMailMessageFlow
  workspaces(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsWorkSpaces
  xray(
    """Will override default configs for aws-sdk."""
    config: AwsConfig
  ): AwsXRay
}

"""AWS Certificate Manager (2015-12-08)"""
type AwsACM {
  addTagsToCertificate(input: AwsACMAddTagsToCertificateInput!, config: AwsConfig): JSON
  deleteCertificate(input: AwsACMDeleteCertificateInput!, config: AwsConfig): JSON
  describeCertificate(input: AwsACMDescribeCertificateInput!, config: AwsConfig): AwsACMDescribeCertificateOutput
  exportCertificate(input: AwsACMExportCertificateInput!, config: AwsConfig): AwsACMExportCertificateOutput
  getAccountConfiguration(config: AwsConfig): AwsACMGetAccountConfigurationOutput
  getCertificate(input: AwsACMGetCertificateInput!, config: AwsConfig): AwsACMGetCertificateOutput
  importCertificate(input: AwsACMImportCertificateInput!, config: AwsConfig): AwsACMImportCertificateOutput
  listCertificates(input: AwsACMListCertificatesInput, config: AwsConfig): AwsACMListCertificatesOutput
  listTagsForCertificate(input: AwsACMListTagsForCertificateInput!, config: AwsConfig): AwsACMListTagsForCertificateOutput
  putAccountConfiguration(input: AwsACMPutAccountConfigurationInput!, config: AwsConfig): JSON
  removeTagsFromCertificate(input: AwsACMRemoveTagsFromCertificateInput!, config: AwsConfig): JSON
  renewCertificate(input: AwsACMRenewCertificateInput!, config: AwsConfig): JSON
  requestCertificate(input: AwsACMRequestCertificateInput!, config: AwsConfig): AwsACMRequestCertificateOutput
  resendValidationEmail(input: AwsACMResendValidationEmailInput!, config: AwsConfig): JSON
  updateCertificateOptions(input: AwsACMUpdateCertificateOptionsInput!, config: AwsConfig): JSON
}

"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf")

input AwsACMAddTagsToCertificateInput {
  CertificateArn: String!
  Tags: [AwsACMS3Input]!
}

input AwsACMS3Input {
  Key: String!
  Value: String
}

input AwsConfig {
  accessKeyId: String
  secretAccessKey: String
  region: String
}

input AwsACMDeleteCertificateInput {
  CertificateArn: String!
}

type AwsACMDescribeCertificateOutput {
  Certificate: AwsACMDescribeCertificateOutputCertificate
}

type AwsACMDescribeCertificateOutputCertificate {
  CertificateArn: String
  DomainName: String
  SubjectAlternativeNames: [String]
  DomainValidationOptions: [AwsACMSd]
  Serial: String
  Subject: String
  Issuer: String
  CreatedAt: Date
  IssuedAt: Date
  ImportedAt: Date
  Status: String
  RevokedAt: Date
  RevocationReason: String
  NotBefore: Date
  NotAfter: Date
  KeyAlgorithm: String
  SignatureAlgorithm: String
  InUseBy: [String]
  FailureReason: String
  Type: String
  RenewalSummary: AwsACMDescribeCertificateOutputCertificateRenewalSummary
  KeyUsages: [AwsACMDescribeCertificateOutputCertificateKeyUsages]
  ExtendedKeyUsages: [AwsACMDescribeCertificateOutputCertificateExtendedKeyUsages]
  CertificateAuthorityArn: String
  RenewalEligibility: String
  Options: AwsACMS11
}

type AwsACMSd {
  DomainName: String!
  ValidationEmails: [String]
  ValidationDomain: String
  ValidationStatus: String
  ResourceRecord: AwsACMSdResourceRecord
  ValidationMethod: String
}

type AwsACMSdResourceRecord {
  Name: String!
  Type: String!
  Value: String!
}

scalar Date

type AwsACMDescribeCertificateOutputCertificateRenewalSummary {
  RenewalStatus: String!
  DomainValidationOptions: [AwsACMSd]!
  RenewalStatusReason: String
  UpdatedAt: Date!
}

type AwsACMDescribeCertificateOutputCertificateKeyUsages {
  Name: String
}

type AwsACMDescribeCertificateOutputCertificateExtendedKeyUsages {
  Name: String
  OID: String
}

type AwsACMS11 {
  CertificateTransparencyLoggingPreference: String
}

input AwsACMDescribeCertificateInput {
  CertificateArn: String!
}

type AwsACMExportCertificateOutput {
  Certificate: String
  CertificateChain: String
  PrivateKey: String
}

input AwsACMExportCertificateInput {
  CertificateArn: String!
  Passphrase: JSON!
}

type AwsACMGetAccountConfigurationOutput {
  ExpiryEvents: AwsACMS1a
}

type AwsACMS1a {
  DaysBeforeExpiry: Int
}

type AwsACMGetCertificateOutput {
  Certificate: String
  CertificateChain: String
}

input AwsACMGetCertificateInput {
  CertificateArn: String!
}

type AwsACMImportCertificateOutput {
  CertificateArn: String
}

input AwsACMImportCertificateInput {
  CertificateArn: String
  Certificate: JSON!
  PrivateKey: JSON!
  CertificateChain: JSON
  Tags: [AwsACMS3Input]
}

type AwsACMListCertificatesOutput {
  NextToken: String
  CertificateSummaryList: [AwsACMListCertificatesOutputCertificateSummaryList]
}

type AwsACMListCertificatesOutputCertificateSummaryList {
  CertificateArn: String
  DomainName: String
}

input AwsACMListCertificatesInput {
  CertificateStatuses: [String]
  Includes: AwsACMListCertificatesIncludesInput
  NextToken: String
  MaxItems: Int
}

input AwsACMListCertificatesIncludesInput {
  extendedKeyUsage: [String]
  keyUsage: [String]
  keyTypes: [String]
}

type AwsACMListTagsForCertificateOutput {
  Tags: [AwsACMS3]
}

type AwsACMS3 {
  Key: String!
  Value: String
}

input AwsACMListTagsForCertificateInput {
  CertificateArn: String!
}

input AwsACMPutAccountConfigurationInput {
  ExpiryEvents: AwsACMS1aInput
  IdempotencyToken: String!
}

input AwsACMS1aInput {
  DaysBeforeExpiry: Int
}

input AwsACMRemoveTagsFromCertificateInput {
  CertificateArn: String!
  Tags: [AwsACMS3Input]!
}

input AwsACMRenewCertificateInput {
  CertificateArn: String!
}

type AwsACMRequestCertificateOutput {
  CertificateArn: String
}

input AwsACMRequestCertificateInput {
  DomainName: String!
  ValidationMethod: String
  SubjectAlternativeNames: [String]
  IdempotencyToken: String
  DomainValidationOptions: [AwsACMRequestCertificateDomainValidationOptionsInput]
  Options: AwsACMS11Input
  CertificateAuthorityArn: String
  Tags: [AwsACMS3Input]
}

input AwsACMRequestCertificateDomainValidationOptionsInput {
  DomainName: String!
  ValidationDomain: String!
}

input AwsACMS11Input {
  CertificateTransparencyLoggingPreference: String
}

input AwsACMResendValidationEmailInput {
  CertificateArn: String!
  Domain: String!
  ValidationDomain: String!
}

input AwsACMUpdateCertificateOptionsInput {
  CertificateArn: String!
  Options: AwsACMS11Input!
}

"""AWS Certificate Manager Private Certificate Authority (2017-08-22)"""
type AwsACMPCA {
  createCertificateAuthority(input: AwsACMPCACreateCertificateAuthorityInput!, config: AwsConfig): AwsACMPCACreateCertificateAuthorityOutput
  createCertificateAuthorityAuditReport(input: AwsACMPCACreateCertificateAuthorityAuditReportInput!, config: AwsConfig): AwsACMPCACreateCertificateAuthorityAuditReportOutput
  createPermission(input: AwsACMPCACreatePermissionInput!, config: AwsConfig): JSON
  deleteCertificateAuthority(input: AwsACMPCADeleteCertificateAuthorityInput!, config: AwsConfig): JSON
  deletePermission(input: AwsACMPCADeletePermissionInput!, config: AwsConfig): JSON
  deletePolicy(input: AwsACMPCADeletePolicyInput!, config: AwsConfig): JSON
  describeCertificateAuthority(input: AwsACMPCADescribeCertificateAuthorityInput!, config: AwsConfig): AwsACMPCADescribeCertificateAuthorityOutput
  describeCertificateAuthorityAuditReport(input: AwsACMPCADescribeCertificateAuthorityAuditReportInput!, config: AwsConfig): AwsACMPCADescribeCertificateAuthorityAuditReportOutput
  getCertificate(input: AwsACMPCAGetCertificateInput!, config: AwsConfig): AwsACMPCAGetCertificateOutput
  getCertificateAuthorityCertificate(input: AwsACMPCAGetCertificateAuthorityCertificateInput!, config: AwsConfig): AwsACMPCAGetCertificateAuthorityCertificateOutput
  getCertificateAuthorityCsr(input: AwsACMPCAGetCertificateAuthorityCsrInput!, config: AwsConfig): AwsACMPCAGetCertificateAuthorityCsrOutput
  getPolicy(input: AwsACMPCAGetPolicyInput!, config: AwsConfig): AwsACMPCAGetPolicyOutput
  importCertificateAuthorityCertificate(input: AwsACMPCAImportCertificateAuthorityCertificateInput!, config: AwsConfig): JSON
  issueCertificate(input: AwsACMPCAIssueCertificateInput!, config: AwsConfig): AwsACMPCAIssueCertificateOutput
  listCertificateAuthorities(input: AwsACMPCAListCertificateAuthoritiesInput, config: AwsConfig): AwsACMPCAListCertificateAuthoritiesOutput
  listPermissions(input: AwsACMPCAListPermissionsInput!, config: AwsConfig): AwsACMPCAListPermissionsOutput
  listTags(input: AwsACMPCAListTagsInput!, config: AwsConfig): AwsACMPCAListTagsOutput
  putPolicy(input: AwsACMPCAPutPolicyInput!, config: AwsConfig): JSON
  restoreCertificateAuthority(input: AwsACMPCARestoreCertificateAuthorityInput!, config: AwsConfig): JSON
  revokeCertificate(input: AwsACMPCARevokeCertificateInput!, config: AwsConfig): JSON
  tagCertificateAuthority(input: AwsACMPCATagCertificateAuthorityInput!, config: AwsConfig): JSON
  untagCertificateAuthority(input: AwsACMPCAUntagCertificateAuthorityInput!, config: AwsConfig): JSON
  updateCertificateAuthority(input: AwsACMPCAUpdateCertificateAuthorityInput!, config: AwsConfig): JSON
}

type AwsACMPCACreateCertificateAuthorityOutput {
  CertificateAuthorityArn: String
}

input AwsACMPCACreateCertificateAuthorityInput {
  CertificateAuthorityConfiguration: AwsACMPCAS2Input!
  RevocationConfiguration: AwsACMPCASsInput
  CertificateAuthorityType: String!
  IdempotencyToken: String
  KeyStorageSecurityStandard: String
  Tags: [AwsACMPCAS10Input]
}

input AwsACMPCAS2Input {
  KeyAlgorithm: String!
  SigningAlgorithm: String!
  Subject: AwsACMPCAS5Input!
  CsrExtensions: AwsACMPCAS2CsrExtensionsInput
}

input AwsACMPCAS5Input {
  Country: String
  Organization: String
  OrganizationalUnit: String
  DistinguishedNameQualifier: String
  State: String
  CommonName: String
  SerialNumber: String
  Locality: String
  Title: String
  Surname: String
  GivenName: String
  Initials: String
  Pseudonym: String
  GenerationQualifier: String
}

input AwsACMPCAS2CsrExtensionsInput {
  KeyUsage: AwsACMPCASfInput
  SubjectInformationAccess: [AwsACMPCAS2CsrExtensionsSubjectInformationAccessInput]
}

input AwsACMPCASfInput {
  DigitalSignature: Boolean
  NonRepudiation: Boolean
  KeyEncipherment: Boolean
  DataEncipherment: Boolean
  KeyAgreement: Boolean
  KeyCertSign: Boolean
  CRLSign: Boolean
  EncipherOnly: Boolean
  DecipherOnly: Boolean
}

input AwsACMPCAS2CsrExtensionsSubjectInformationAccessInput {
  AccessMethod: AwsACMPCAS2CsrExtensionsSubjectInformationAccessAccessMethodInput!
  AccessLocation: AwsACMPCASmInput!
}

input AwsACMPCAS2CsrExtensionsSubjectInformationAccessAccessMethodInput {
  CustomObjectIdentifier: String
  AccessMethodType: String
}

input AwsACMPCASmInput {
  OtherName: AwsACMPCASmOtherNameInput
  Rfc822Name: String
  DnsName: String
  DirectoryName: AwsACMPCAS5Input
  EdiPartyName: AwsACMPCASmEdiPartyNameInput
  UniformResourceIdentifier: String
  IpAddress: String
  RegisteredId: String
}

input AwsACMPCASmOtherNameInput {
  TypeId: String!
  Value: String!
}

input AwsACMPCASmEdiPartyNameInput {
  PartyName: String!
  NameAssigner: String
}

input AwsACMPCASsInput {
  CrlConfiguration: AwsACMPCASsCrlConfigurationInput
}

input AwsACMPCASsCrlConfigurationInput {
  Enabled: Boolean!
  ExpirationInDays: Int
  CustomCname: String
  S3BucketName: String
  S3ObjectAcl: String
}

input AwsACMPCAS10Input {
  Key: String!
  Value: String
}

type AwsACMPCACreateCertificateAuthorityAuditReportOutput {
  AuditReportId: String
  S3Key: String
}

input AwsACMPCACreateCertificateAuthorityAuditReportInput {
  CertificateAuthorityArn: String!
  S3BucketName: String!
  AuditReportResponseFormat: String!
}

input AwsACMPCACreatePermissionInput {
  CertificateAuthorityArn: String!
  Principal: String!
  SourceAccount: String
  Actions: [String]!
}

input AwsACMPCADeleteCertificateAuthorityInput {
  CertificateAuthorityArn: String!
  PermanentDeletionTimeInDays: Int
}

input AwsACMPCADeletePermissionInput {
  CertificateAuthorityArn: String!
  Principal: String!
  SourceAccount: String
}

input AwsACMPCADeletePolicyInput {
  ResourceArn: String!
}

type AwsACMPCADescribeCertificateAuthorityOutput {
  CertificateAuthority: AwsACMPCAS1n
}

type AwsACMPCAS1n {
  Arn: String
  OwnerAccount: String
  CreatedAt: Date
  LastStateChangeAt: Date
  Type: String
  Serial: String
  Status: String
  NotBefore: Date
  NotAfter: Date
  FailureReason: String
  CertificateAuthorityConfiguration: AwsACMPCAS2
  RevocationConfiguration: AwsACMPCASs
  RestorableUntil: Date
  KeyStorageSecurityStandard: String
}

type AwsACMPCAS2 {
  KeyAlgorithm: String!
  SigningAlgorithm: String!
  Subject: AwsACMPCAS5!
  CsrExtensions: AwsACMPCAS2CsrExtensions
}

type AwsACMPCAS5 {
  Country: String
  Organization: String
  OrganizationalUnit: String
  DistinguishedNameQualifier: String
  State: String
  CommonName: String
  SerialNumber: String
  Locality: String
  Title: String
  Surname: String
  GivenName: String
  Initials: String
  Pseudonym: String
  GenerationQualifier: String
}

type AwsACMPCAS2CsrExtensions {
  KeyUsage: AwsACMPCASf
  SubjectInformationAccess: [AwsACMPCAS2CsrExtensionsSubjectInformationAccess]
}

type AwsACMPCASf {
  DigitalSignature: Boolean
  NonRepudiation: Boolean
  KeyEncipherment: Boolean
  DataEncipherment: Boolean
  KeyAgreement: Boolean
  KeyCertSign: Boolean
  CRLSign: Boolean
  EncipherOnly: Boolean
  DecipherOnly: Boolean
}

type AwsACMPCAS2CsrExtensionsSubjectInformationAccess {
  AccessMethod: AwsACMPCAS2CsrExtensionsSubjectInformationAccessAccessMethod!
  AccessLocation: AwsACMPCASm!
}

type AwsACMPCAS2CsrExtensionsSubjectInformationAccessAccessMethod {
  CustomObjectIdentifier: String
  AccessMethodType: String
}

type AwsACMPCASm {
  OtherName: AwsACMPCASmOtherName
  Rfc822Name: String
  DnsName: String
  DirectoryName: AwsACMPCAS5
  EdiPartyName: AwsACMPCASmEdiPartyName
  UniformResourceIdentifier: String
  IpAddress: String
  RegisteredId: String
}

type AwsACMPCASmOtherName {
  TypeId: String!
  Value: String!
}

type AwsACMPCASmEdiPartyName {
  PartyName: String!
  NameAssigner: String
}

type AwsACMPCASs {
  CrlConfiguration: AwsACMPCASsCrlConfiguration
}

type AwsACMPCASsCrlConfiguration {
  Enabled: Boolean!
  ExpirationInDays: Int
  CustomCname: String
  S3BucketName: String
  S3ObjectAcl: String
}

input AwsACMPCADescribeCertificateAuthorityInput {
  CertificateAuthorityArn: String!
}

type AwsACMPCADescribeCertificateAuthorityAuditReportOutput {
  AuditReportStatus: String
  S3BucketName: String
  S3Key: String
  CreatedAt: Date
}

input AwsACMPCADescribeCertificateAuthorityAuditReportInput {
  CertificateAuthorityArn: String!
  AuditReportId: String!
}

type AwsACMPCAGetCertificateOutput {
  Certificate: String
  CertificateChain: String
}

input AwsACMPCAGetCertificateInput {
  CertificateAuthorityArn: String!
  CertificateArn: String!
}

type AwsACMPCAGetCertificateAuthorityCertificateOutput {
  Certificate: String
  CertificateChain: String
}

input AwsACMPCAGetCertificateAuthorityCertificateInput {
  CertificateAuthorityArn: String!
}

type AwsACMPCAGetCertificateAuthorityCsrOutput {
  Csr: String
}

input AwsACMPCAGetCertificateAuthorityCsrInput {
  CertificateAuthorityArn: String!
}

type AwsACMPCAGetPolicyOutput {
  Policy: String
}

input AwsACMPCAGetPolicyInput {
  ResourceArn: String!
}

input AwsACMPCAImportCertificateAuthorityCertificateInput {
  CertificateAuthorityArn: String!
  Certificate: JSON!
  CertificateChain: JSON
}

type AwsACMPCAIssueCertificateOutput {
  CertificateArn: String
}

input AwsACMPCAIssueCertificateInput {
  ApiPassthrough: AwsACMPCAIssueCertificateApiPassthroughInput
  CertificateAuthorityArn: String!
  Csr: JSON!
  SigningAlgorithm: String!
  TemplateArn: String
  Validity: AwsACMPCAS2oInput!
  ValidityNotBefore: AwsACMPCAS2oInput
  IdempotencyToken: String
}

input AwsACMPCAIssueCertificateApiPassthroughInput {
  Extensions: AwsACMPCAIssueCertificateApiPassthroughExtensionsInput
  Subject: AwsACMPCAS5Input
}

input AwsACMPCAIssueCertificateApiPassthroughExtensionsInput {
  CertificatePolicies: [AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesInput]
  ExtendedKeyUsage: [AwsACMPCAIssueCertificateApiPassthroughExtensionsExtendedKeyUsageInput]
  KeyUsage: AwsACMPCASfInput
  SubjectAlternativeNames: [AwsACMPCASmInput]
}

input AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesInput {
  CertPolicyId: String!
  PolicyQualifiers: [AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesPolicyQualifiersInput]
}

input AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesPolicyQualifiersInput {
  PolicyQualifierId: String!
  Qualifier: AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesPolicyQualifiersQualifierInput!
}

input AwsACMPCAIssueCertificateApiPassthroughExtensionsCertificatePoliciesPolicyQualifiersQualifierInput {
  CpsUri: String!
}

input AwsACMPCAIssueCertificateApiPassthroughExtensionsExtendedKeyUsageInput {
  ExtendedKeyUsageType: String
  ExtendedKeyUsageObjectIdentifier: String
}

input AwsACMPCAS2oInput {
  Value: JSON!
  Type: String!
}

type AwsACMPCAListCertificateAuthoritiesOutput {
  CertificateAuthorities: [AwsACMPCAS1n]
  NextToken: String
}

input AwsACMPCAListCertificateAuthoritiesInput {
  NextToken: String
  MaxResults: Int
  ResourceOwner: String
}

type AwsACMPCAListPermissionsOutput {
  Permissions: [AwsACMPCAListPermissionsOutputPermissions]
  NextToken: String
}

type AwsACMPCAListPermissionsOutputPermissions {
  CertificateAuthorityArn: String
  CreatedAt: Date
  Principal: String
  SourceAccount: String
  Actions: [String]
  Policy: String
}

input AwsACMPCAListPermissionsInput {
  CertificateAuthorityArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsACMPCAListTagsOutput {
  Tags: [AwsACMPCAS10]
  NextToken: String
}

type AwsACMPCAS10 {
  Key: String!
  Value: String
}

input AwsACMPCAListTagsInput {
  CertificateAuthorityArn: String!
  NextToken: String
  MaxResults: Int
}

input AwsACMPCAPutPolicyInput {
  ResourceArn: String!
  Policy: String!
}

input AwsACMPCARestoreCertificateAuthorityInput {
  CertificateAuthorityArn: String!
}

input AwsACMPCARevokeCertificateInput {
  CertificateAuthorityArn: String!
  CertificateSerial: String!
  RevocationReason: String!
}

input AwsACMPCATagCertificateAuthorityInput {
  CertificateAuthorityArn: String!
  Tags: [AwsACMPCAS10Input]!
}

input AwsACMPCAUntagCertificateAuthorityInput {
  CertificateAuthorityArn: String!
  Tags: [AwsACMPCAS10Input]!
}

input AwsACMPCAUpdateCertificateAuthorityInput {
  CertificateAuthorityArn: String!
  RevocationConfiguration: AwsACMPCASsInput
  Status: String
}

"""Amazon API Gateway (2015-07-09)"""
type AwsAPIGateway {
  createApiKey(input: AwsAPIGatewayCreateApiKeyInput, config: AwsConfig): JSON
  createAuthorizer(input: AwsAPIGatewayCreateAuthorizerInput!, config: AwsConfig): JSON
  createBasePathMapping(input: AwsAPIGatewayCreateBasePathMappingInput!, config: AwsConfig): JSON
  createDeployment(input: AwsAPIGatewayCreateDeploymentInput!, config: AwsConfig): JSON
  createDocumentationPart(input: AwsAPIGatewayCreateDocumentationPartInput!, config: AwsConfig): JSON
  createDocumentationVersion(input: AwsAPIGatewayCreateDocumentationVersionInput!, config: AwsConfig): JSON
  createDomainName(input: AwsAPIGatewayCreateDomainNameInput!, config: AwsConfig): JSON
  createModel(input: AwsAPIGatewayCreateModelInput!, config: AwsConfig): JSON
  createRequestValidator(input: AwsAPIGatewayCreateRequestValidatorInput!, config: AwsConfig): JSON
  createResource(input: AwsAPIGatewayCreateResourceInput!, config: AwsConfig): JSON
  createRestApi(input: AwsAPIGatewayCreateRestApiInput!, config: AwsConfig): JSON
  createStage(input: AwsAPIGatewayCreateStageInput!, config: AwsConfig): JSON
  createUsagePlan(input: AwsAPIGatewayCreateUsagePlanInput!, config: AwsConfig): JSON
  createUsagePlanKey(input: AwsAPIGatewayCreateUsagePlanKeyInput!, config: AwsConfig): JSON
  createVpcLink(input: AwsAPIGatewayCreateVpcLinkInput!, config: AwsConfig): JSON
  deleteApiKey(input: AwsAPIGatewayDeleteApiKeyInput!, config: AwsConfig): JSON
  deleteAuthorizer(input: AwsAPIGatewayDeleteAuthorizerInput!, config: AwsConfig): JSON
  deleteBasePathMapping(input: AwsAPIGatewayDeleteBasePathMappingInput!, config: AwsConfig): JSON
  deleteClientCertificate(input: AwsAPIGatewayDeleteClientCertificateInput!, config: AwsConfig): JSON
  deleteDeployment(input: AwsAPIGatewayDeleteDeploymentInput!, config: AwsConfig): JSON
  deleteDocumentationPart(input: AwsAPIGatewayDeleteDocumentationPartInput!, config: AwsConfig): JSON
  deleteDocumentationVersion(input: AwsAPIGatewayDeleteDocumentationVersionInput!, config: AwsConfig): JSON
  deleteDomainName(input: AwsAPIGatewayDeleteDomainNameInput!, config: AwsConfig): JSON
  deleteGatewayResponse(input: AwsAPIGatewayDeleteGatewayResponseInput!, config: AwsConfig): JSON
  deleteIntegration(input: AwsAPIGatewayDeleteIntegrationInput!, config: AwsConfig): JSON
  deleteIntegrationResponse(input: AwsAPIGatewayDeleteIntegrationResponseInput!, config: AwsConfig): JSON
  deleteMethod(input: AwsAPIGatewayDeleteMethodInput!, config: AwsConfig): JSON
  deleteMethodResponse(input: AwsAPIGatewayDeleteMethodResponseInput!, config: AwsConfig): JSON
  deleteModel(input: AwsAPIGatewayDeleteModelInput!, config: AwsConfig): JSON
  deleteRequestValidator(input: AwsAPIGatewayDeleteRequestValidatorInput!, config: AwsConfig): JSON
  deleteResource(input: AwsAPIGatewayDeleteResourceInput!, config: AwsConfig): JSON
  deleteRestApi(input: AwsAPIGatewayDeleteRestApiInput!, config: AwsConfig): JSON
  deleteStage(input: AwsAPIGatewayDeleteStageInput!, config: AwsConfig): JSON
  deleteUsagePlan(input: AwsAPIGatewayDeleteUsagePlanInput!, config: AwsConfig): JSON
  deleteUsagePlanKey(input: AwsAPIGatewayDeleteUsagePlanKeyInput!, config: AwsConfig): JSON
  deleteVpcLink(input: AwsAPIGatewayDeleteVpcLinkInput!, config: AwsConfig): JSON
  flushStageAuthorizersCache(input: AwsAPIGatewayFlushStageAuthorizersCacheInput!, config: AwsConfig): JSON
  flushStageCache(input: AwsAPIGatewayFlushStageCacheInput!, config: AwsConfig): JSON
  generateClientCertificate(input: AwsAPIGatewayGenerateClientCertificateInput, config: AwsConfig): JSON
  getAccount(input: JSON, config: AwsConfig): JSON
  getApiKey(input: AwsAPIGatewayGetApiKeyInput!, config: AwsConfig): JSON
  getApiKeys(input: AwsAPIGatewayGetApiKeysInput, config: AwsConfig): AwsAPIGatewayGetApiKeysOutput
  getAuthorizer(input: AwsAPIGatewayGetAuthorizerInput!, config: AwsConfig): JSON
  getAuthorizers(input: AwsAPIGatewayGetAuthorizersInput!, config: AwsConfig): AwsAPIGatewayGetAuthorizersOutput
  getBasePathMapping(input: AwsAPIGatewayGetBasePathMappingInput!, config: AwsConfig): JSON
  getBasePathMappings(input: AwsAPIGatewayGetBasePathMappingsInput!, config: AwsConfig): AwsAPIGatewayGetBasePathMappingsOutput
  getClientCertificate(input: AwsAPIGatewayGetClientCertificateInput!, config: AwsConfig): JSON
  getClientCertificates(input: AwsAPIGatewayGetClientCertificatesInput, config: AwsConfig): AwsAPIGatewayGetClientCertificatesOutput
  getDeployment(input: AwsAPIGatewayGetDeploymentInput!, config: AwsConfig): JSON
  getDeployments(input: AwsAPIGatewayGetDeploymentsInput!, config: AwsConfig): AwsAPIGatewayGetDeploymentsOutput
  getDocumentationPart(input: AwsAPIGatewayGetDocumentationPartInput!, config: AwsConfig): JSON
  getDocumentationParts(input: AwsAPIGatewayGetDocumentationPartsInput!, config: AwsConfig): AwsAPIGatewayGetDocumentationPartsOutput
  getDocumentationVersion(input: AwsAPIGatewayGetDocumentationVersionInput!, config: AwsConfig): JSON
  getDocumentationVersions(input: AwsAPIGatewayGetDocumentationVersionsInput!, config: AwsConfig): AwsAPIGatewayGetDocumentationVersionsOutput
  getDomainName(input: AwsAPIGatewayGetDomainNameInput!, config: AwsConfig): JSON
  getDomainNames(input: AwsAPIGatewayGetDomainNamesInput, config: AwsConfig): AwsAPIGatewayGetDomainNamesOutput
  getExport(input: AwsAPIGatewayGetExportInput!, config: AwsConfig): AwsAPIGatewayGetExportOutput
  getGatewayResponse(input: AwsAPIGatewayGetGatewayResponseInput!, config: AwsConfig): JSON
  getGatewayResponses(input: AwsAPIGatewayGetGatewayResponsesInput!, config: AwsConfig): AwsAPIGatewayGetGatewayResponsesOutput
  getIntegration(input: AwsAPIGatewayGetIntegrationInput!, config: AwsConfig): JSON
  getIntegrationResponse(input: AwsAPIGatewayGetIntegrationResponseInput!, config: AwsConfig): JSON
  getMethod(input: AwsAPIGatewayGetMethodInput!, config: AwsConfig): JSON
  getMethodResponse(input: AwsAPIGatewayGetMethodResponseInput!, config: AwsConfig): JSON
  getModel(input: AwsAPIGatewayGetModelInput!, config: AwsConfig): JSON
  getModelTemplate(input: AwsAPIGatewayGetModelTemplateInput!, config: AwsConfig): AwsAPIGatewayGetModelTemplateOutput
  getModels(input: AwsAPIGatewayGetModelsInput!, config: AwsConfig): AwsAPIGatewayGetModelsOutput
  getRequestValidator(input: AwsAPIGatewayGetRequestValidatorInput!, config: AwsConfig): JSON
  getRequestValidators(input: AwsAPIGatewayGetRequestValidatorsInput!, config: AwsConfig): AwsAPIGatewayGetRequestValidatorsOutput
  getResource(input: AwsAPIGatewayGetResourceInput!, config: AwsConfig): JSON
  getResources(input: AwsAPIGatewayGetResourcesInput!, config: AwsConfig): AwsAPIGatewayGetResourcesOutput
  getRestApi(input: AwsAPIGatewayGetRestApiInput!, config: AwsConfig): JSON
  getRestApis(input: AwsAPIGatewayGetRestApisInput, config: AwsConfig): AwsAPIGatewayGetRestApisOutput
  getSdk(input: AwsAPIGatewayGetSdkInput!, config: AwsConfig): AwsAPIGatewayGetSdkOutput
  getSdkType(input: AwsAPIGatewayGetSdkTypeInput!, config: AwsConfig): JSON
  getSdkTypes(input: AwsAPIGatewayGetSdkTypesInput, config: AwsConfig): AwsAPIGatewayGetSdkTypesOutput
  getStage(input: AwsAPIGatewayGetStageInput!, config: AwsConfig): JSON
  getStages(input: AwsAPIGatewayGetStagesInput!, config: AwsConfig): AwsAPIGatewayGetStagesOutput
  getTags(input: AwsAPIGatewayGetTagsInput!, config: AwsConfig): AwsAPIGatewayGetTagsOutput
  getUsage(input: AwsAPIGatewayGetUsageInput!, config: AwsConfig): JSON
  getUsagePlan(input: AwsAPIGatewayGetUsagePlanInput!, config: AwsConfig): JSON
  getUsagePlanKey(input: AwsAPIGatewayGetUsagePlanKeyInput!, config: AwsConfig): JSON
  getUsagePlanKeys(input: AwsAPIGatewayGetUsagePlanKeysInput!, config: AwsConfig): AwsAPIGatewayGetUsagePlanKeysOutput
  getUsagePlans(input: AwsAPIGatewayGetUsagePlansInput, config: AwsConfig): AwsAPIGatewayGetUsagePlansOutput
  getVpcLink(input: AwsAPIGatewayGetVpcLinkInput!, config: AwsConfig): JSON
  getVpcLinks(input: AwsAPIGatewayGetVpcLinksInput, config: AwsConfig): AwsAPIGatewayGetVpcLinksOutput
  importApiKeys(input: AwsAPIGatewayImportApiKeysInput!, config: AwsConfig): AwsAPIGatewayImportApiKeysOutput
  importDocumentationParts(input: AwsAPIGatewayImportDocumentationPartsInput!, config: AwsConfig): AwsAPIGatewayImportDocumentationPartsOutput
  importRestApi(input: AwsAPIGatewayImportRestApiInput!, config: AwsConfig): JSON
  putGatewayResponse(input: AwsAPIGatewayPutGatewayResponseInput!, config: AwsConfig): JSON
  putIntegration(input: AwsAPIGatewayPutIntegrationInput!, config: AwsConfig): JSON
  putIntegrationResponse(input: AwsAPIGatewayPutIntegrationResponseInput!, config: AwsConfig): JSON
  putMethod(input: AwsAPIGatewayPutMethodInput!, config: AwsConfig): JSON
  putMethodResponse(input: AwsAPIGatewayPutMethodResponseInput!, config: AwsConfig): JSON
  putRestApi(input: AwsAPIGatewayPutRestApiInput!, config: AwsConfig): JSON
  tagResource(input: AwsAPIGatewayTagResourceInput!, config: AwsConfig): JSON
  testInvokeAuthorizer(input: AwsAPIGatewayTestInvokeAuthorizerInput!, config: AwsConfig): AwsAPIGatewayTestInvokeAuthorizerOutput
  testInvokeMethod(input: AwsAPIGatewayTestInvokeMethodInput!, config: AwsConfig): AwsAPIGatewayTestInvokeMethodOutput
  untagResource(input: AwsAPIGatewayUntagResourceInput!, config: AwsConfig): JSON
  updateAccount(input: AwsAPIGatewayUpdateAccountInput, config: AwsConfig): JSON
  updateApiKey(input: AwsAPIGatewayUpdateApiKeyInput!, config: AwsConfig): JSON
  updateAuthorizer(input: AwsAPIGatewayUpdateAuthorizerInput!, config: AwsConfig): JSON
  updateBasePathMapping(input: AwsAPIGatewayUpdateBasePathMappingInput!, config: AwsConfig): JSON
  updateClientCertificate(input: AwsAPIGatewayUpdateClientCertificateInput!, config: AwsConfig): JSON
  updateDeployment(input: AwsAPIGatewayUpdateDeploymentInput!, config: AwsConfig): JSON
  updateDocumentationPart(input: AwsAPIGatewayUpdateDocumentationPartInput!, config: AwsConfig): JSON
  updateDocumentationVersion(input: AwsAPIGatewayUpdateDocumentationVersionInput!, config: AwsConfig): JSON
  updateDomainName(input: AwsAPIGatewayUpdateDomainNameInput!, config: AwsConfig): JSON
  updateGatewayResponse(input: AwsAPIGatewayUpdateGatewayResponseInput!, config: AwsConfig): JSON
  updateIntegration(input: AwsAPIGatewayUpdateIntegrationInput!, config: AwsConfig): JSON
  updateIntegrationResponse(input: AwsAPIGatewayUpdateIntegrationResponseInput!, config: AwsConfig): JSON
  updateMethod(input: AwsAPIGatewayUpdateMethodInput!, config: AwsConfig): JSON
  updateMethodResponse(input: AwsAPIGatewayUpdateMethodResponseInput!, config: AwsConfig): JSON
  updateModel(input: AwsAPIGatewayUpdateModelInput!, config: AwsConfig): JSON
  updateRequestValidator(input: AwsAPIGatewayUpdateRequestValidatorInput!, config: AwsConfig): JSON
  updateResource(input: AwsAPIGatewayUpdateResourceInput!, config: AwsConfig): JSON
  updateRestApi(input: AwsAPIGatewayUpdateRestApiInput!, config: AwsConfig): JSON
  updateStage(input: AwsAPIGatewayUpdateStageInput!, config: AwsConfig): JSON
  updateUsage(input: AwsAPIGatewayUpdateUsageInput!, config: AwsConfig): JSON
  updateUsagePlan(input: AwsAPIGatewayUpdateUsagePlanInput!, config: AwsConfig): JSON
  updateVpcLink(input: AwsAPIGatewayUpdateVpcLinkInput!, config: AwsConfig): JSON
}

input AwsAPIGatewayCreateApiKeyInput {
  name: String
  description: String
  enabled: Boolean
  generateDistinctId: Boolean
  value: String
  stageKeys: [AwsAPIGatewayCreateApiKeyStageKeysInput]
  customerId: String
  tags: JSON
}

input AwsAPIGatewayCreateApiKeyStageKeysInput {
  restApiId: String
  stageName: String
}

input AwsAPIGatewayCreateAuthorizerInput {
  restApiId: String!
  name: String!
  type: String!
  providerARNs: [String]
  authType: String
  authorizerUri: String
  authorizerCredentials: String
  identitySource: String
  identityValidationExpression: String
  authorizerResultTtlInSeconds: Int
}

input AwsAPIGatewayCreateBasePathMappingInput {
  domainName: String!
  basePath: String
  restApiId: String!
  stage: String
}

input AwsAPIGatewayCreateDeploymentInput {
  restApiId: String!
  stageName: String
  stageDescription: String
  description: String
  cacheClusterEnabled: Boolean
  cacheClusterSize: String
  variables: JSON
  canarySettings: AwsAPIGatewayCreateDeploymentCanarySettingsInput
  tracingEnabled: Boolean
}

input AwsAPIGatewayCreateDeploymentCanarySettingsInput {
  percentTraffic: JSON
  stageVariableOverrides: JSON
  useStageCache: Boolean
}

input AwsAPIGatewayCreateDocumentationPartInput {
  restApiId: String!
  location: AwsAPIGatewaySsInput!
  properties: String!
}

input AwsAPIGatewaySsInput {
  type: String!
  path: String
  method: String
  statusCode: String
  name: String
}

input AwsAPIGatewayCreateDocumentationVersionInput {
  restApiId: String!
  documentationVersion: String!
  stageName: String
  description: String
}

input AwsAPIGatewayCreateDomainNameInput {
  domainName: String!
  certificateName: String
  certificateBody: String
  certificatePrivateKey: String
  certificateChain: String
  certificateArn: String
  regionalCertificateName: String
  regionalCertificateArn: String
  endpointConfiguration: AwsAPIGatewaySzInput
  tags: JSON
  securityPolicy: String
  mutualTlsAuthentication: AwsAPIGatewayCreateDomainNameMutualTlsAuthenticationInput
}

input AwsAPIGatewaySzInput {
  types: [String]
  vpcEndpointIds: [String]
}

input AwsAPIGatewayCreateDomainNameMutualTlsAuthenticationInput {
  truststoreUri: String
  truststoreVersion: String
}

input AwsAPIGatewayCreateModelInput {
  restApiId: String!
  name: String!
  description: String
  schema: String
  contentType: String!
}

input AwsAPIGatewayCreateRequestValidatorInput {
  restApiId: String!
  name: String
  validateRequestBody: Boolean
  validateRequestParameters: Boolean
}

input AwsAPIGatewayCreateResourceInput {
  restApiId: String!
  parentId: String!
  pathPart: String!
}

input AwsAPIGatewayCreateRestApiInput {
  name: String!
  description: String
  version: String
  cloneFrom: String
  binaryMediaTypes: [String]
  minimumCompressionSize: Int
  apiKeySource: String
  endpointConfiguration: AwsAPIGatewaySzInput
  policy: String
  tags: JSON
  disableExecuteApiEndpoint: Boolean
}

input AwsAPIGatewayCreateStageInput {
  restApiId: String!
  stageName: String!
  deploymentId: String!
  description: String
  cacheClusterEnabled: Boolean
  cacheClusterSize: String
  variables: JSON
  documentationVersion: String
  canarySettings: AwsAPIGatewayS1vInput
  tracingEnabled: Boolean
  tags: JSON
}

input AwsAPIGatewayS1vInput {
  percentTraffic: JSON
  deploymentId: String
  stageVariableOverrides: JSON
  useStageCache: Boolean
}

input AwsAPIGatewayCreateUsagePlanInput {
  name: String!
  description: String
  apiStages: [AwsAPIGatewayS23Input]
  throttle: AwsAPIGatewayS26Input
  quota: AwsAPIGatewayS27Input
  tags: JSON
}

input AwsAPIGatewayS23Input {
  apiId: String
  stage: String
  throttle: JSON
}

input AwsAPIGatewayS26Input {
  burstLimit: Int
  rateLimit: JSON
}

input AwsAPIGatewayS27Input {
  limit: Int
  offset: Int
  period: String
}

input AwsAPIGatewayCreateUsagePlanKeyInput {
  usagePlanId: String!
  keyId: String!
  keyType: String!
}

input AwsAPIGatewayCreateVpcLinkInput {
  name: String!
  description: String
  targetArns: [String]!
  tags: JSON
}

input AwsAPIGatewayDeleteApiKeyInput {
  apiKey: String!
}

input AwsAPIGatewayDeleteAuthorizerInput {
  restApiId: String!
  authorizerId: String!
}

input AwsAPIGatewayDeleteBasePathMappingInput {
  domainName: String!
  basePath: String!
}

input AwsAPIGatewayDeleteClientCertificateInput {
  clientCertificateId: String!
}

input AwsAPIGatewayDeleteDeploymentInput {
  restApiId: String!
  deploymentId: String!
}

input AwsAPIGatewayDeleteDocumentationPartInput {
  restApiId: String!
  documentationPartId: String!
}

input AwsAPIGatewayDeleteDocumentationVersionInput {
  restApiId: String!
  documentationVersion: String!
}

input AwsAPIGatewayDeleteDomainNameInput {
  domainName: String!
}

input AwsAPIGatewayDeleteGatewayResponseInput {
  restApiId: String!
  responseType: String!
}

input AwsAPIGatewayDeleteIntegrationInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
}

input AwsAPIGatewayDeleteIntegrationResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
}

input AwsAPIGatewayDeleteMethodInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
}

input AwsAPIGatewayDeleteMethodResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
}

input AwsAPIGatewayDeleteModelInput {
  restApiId: String!
  modelName: String!
}

input AwsAPIGatewayDeleteRequestValidatorInput {
  restApiId: String!
  requestValidatorId: String!
}

input AwsAPIGatewayDeleteResourceInput {
  restApiId: String!
  resourceId: String!
}

input AwsAPIGatewayDeleteRestApiInput {
  restApiId: String!
}

input AwsAPIGatewayDeleteStageInput {
  restApiId: String!
  stageName: String!
}

input AwsAPIGatewayDeleteUsagePlanInput {
  usagePlanId: String!
}

input AwsAPIGatewayDeleteUsagePlanKeyInput {
  usagePlanId: String!
  keyId: String!
}

input AwsAPIGatewayDeleteVpcLinkInput {
  vpcLinkId: String!
}

input AwsAPIGatewayFlushStageAuthorizersCacheInput {
  restApiId: String!
  stageName: String!
}

input AwsAPIGatewayFlushStageCacheInput {
  restApiId: String!
  stageName: String!
}

input AwsAPIGatewayGenerateClientCertificateInput {
  description: String
  tags: JSON
}

input AwsAPIGatewayGetApiKeyInput {
  apiKey: String!
  includeValue: Boolean
}

type AwsAPIGatewayGetApiKeysOutput {
  warnings: [String]
  position: String
  items: [AwsAPIGatewayS7]
}

type AwsAPIGatewayS7 {
  id: String
  value: String
  name: String
  customerId: String
  description: String
  enabled: Boolean
  createdDate: Date
  lastUpdatedDate: Date
  stageKeys: [String]
  tags: JSON
}

input AwsAPIGatewayGetApiKeysInput {
  position: String
  limit: Int
  nameQuery: String
  customerId: String
  includeValues: Boolean
}

input AwsAPIGatewayGetAuthorizerInput {
  restApiId: String!
  authorizerId: String!
}

type AwsAPIGatewayGetAuthorizersOutput {
  position: String
  items: [AwsAPIGatewaySf]
}

type AwsAPIGatewaySf {
  id: String
  name: String
  type: String
  providerARNs: [String]
  authType: String
  authorizerUri: String
  authorizerCredentials: String
  identitySource: String
  identityValidationExpression: String
  authorizerResultTtlInSeconds: Int
}

input AwsAPIGatewayGetAuthorizersInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetBasePathMappingInput {
  domainName: String!
  basePath: String!
}

type AwsAPIGatewayGetBasePathMappingsOutput {
  position: String
  items: [AwsAPIGatewaySh]
}

type AwsAPIGatewaySh {
  basePath: String
  restApiId: String
  stage: String
}

input AwsAPIGatewayGetBasePathMappingsInput {
  domainName: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetClientCertificateInput {
  clientCertificateId: String!
}

type AwsAPIGatewayGetClientCertificatesOutput {
  position: String
  items: [AwsAPIGatewayS34]
}

type AwsAPIGatewayS34 {
  clientCertificateId: String
  description: String
  pemEncodedCertificate: String
  createdDate: Date
  expirationDate: Date
  tags: JSON
}

input AwsAPIGatewayGetClientCertificatesInput {
  position: String
  limit: Int
}

input AwsAPIGatewayGetDeploymentInput {
  restApiId: String!
  deploymentId: String!
  embed: [String]
}

type AwsAPIGatewayGetDeploymentsOutput {
  position: String
  items: [AwsAPIGatewaySn]
}

type AwsAPIGatewaySn {
  id: String
  description: String
  createdDate: Date
  apiSummary: JSON
}

input AwsAPIGatewayGetDeploymentsInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetDocumentationPartInput {
  restApiId: String!
  documentationPartId: String!
}

type AwsAPIGatewayGetDocumentationPartsOutput {
  position: String
  items: [AwsAPIGatewaySv]
}

type AwsAPIGatewaySv {
  id: String
  location: AwsAPIGatewaySs
  properties: String
}

type AwsAPIGatewaySs {
  type: String!
  path: String
  method: String
  statusCode: String
  name: String
}

input AwsAPIGatewayGetDocumentationPartsInput {
  restApiId: String!
  type: String
  nameQuery: String
  path: String
  position: String
  limit: Int
  locationStatus: String
}

input AwsAPIGatewayGetDocumentationVersionInput {
  restApiId: String!
  documentationVersion: String!
}

type AwsAPIGatewayGetDocumentationVersionsOutput {
  position: String
  items: [AwsAPIGatewaySx]
}

type AwsAPIGatewaySx {
  version: String
  createdDate: Date
  description: String
}

input AwsAPIGatewayGetDocumentationVersionsInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetDomainNameInput {
  domainName: String!
}

type AwsAPIGatewayGetDomainNamesOutput {
  position: String
  items: [AwsAPIGatewayS14]
}

type AwsAPIGatewayS14 {
  domainName: String
  certificateName: String
  certificateArn: String
  certificateUploadDate: Date
  regionalDomainName: String
  regionalHostedZoneId: String
  regionalCertificateName: String
  regionalCertificateArn: String
  distributionDomainName: String
  distributionHostedZoneId: String
  endpointConfiguration: AwsAPIGatewaySz
  domainNameStatus: String
  domainNameStatusMessage: String
  securityPolicy: String
  tags: JSON
  mutualTlsAuthentication: AwsAPIGatewayS14MutualTlsAuthentication
}

type AwsAPIGatewaySz {
  types: [String]
  vpcEndpointIds: [String]
}

type AwsAPIGatewayS14MutualTlsAuthentication {
  truststoreUri: String
  truststoreVersion: String
  truststoreWarnings: [String]
}

input AwsAPIGatewayGetDomainNamesInput {
  position: String
  limit: Int
}

type AwsAPIGatewayGetExportOutput {
  contentType: String
  contentDisposition: String
  body: JSON
}

input AwsAPIGatewayGetExportInput {
  restApiId: String!
  stageName: String!
  exportType: String!
  parameters: JSON
  accepts: String
}

input AwsAPIGatewayGetGatewayResponseInput {
  restApiId: String!
  responseType: String!
}

type AwsAPIGatewayGetGatewayResponsesOutput {
  position: String
  items: [AwsAPIGatewayS48]
}

type AwsAPIGatewayS48 {
  responseType: String
  statusCode: String
  responseParameters: JSON
  responseTemplates: JSON
  defaultResponse: Boolean
}

input AwsAPIGatewayGetGatewayResponsesInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetIntegrationInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
}

input AwsAPIGatewayGetIntegrationResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
}

input AwsAPIGatewayGetMethodInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
}

input AwsAPIGatewayGetMethodResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
}

input AwsAPIGatewayGetModelInput {
  restApiId: String!
  modelName: String!
  flatten: Boolean
}

type AwsAPIGatewayGetModelTemplateOutput {
  value: String
}

input AwsAPIGatewayGetModelTemplateInput {
  restApiId: String!
  modelName: String!
}

type AwsAPIGatewayGetModelsOutput {
  position: String
  items: [AwsAPIGatewayS18]
}

type AwsAPIGatewayS18 {
  id: String
  name: String
  description: String
  schema: String
  contentType: String
}

input AwsAPIGatewayGetModelsInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetRequestValidatorInput {
  restApiId: String!
  requestValidatorId: String!
}

type AwsAPIGatewayGetRequestValidatorsOutput {
  position: String
  items: [AwsAPIGatewayS1a]
}

type AwsAPIGatewayS1a {
  id: String
  name: String
  validateRequestBody: Boolean
  validateRequestParameters: Boolean
}

input AwsAPIGatewayGetRequestValidatorsInput {
  restApiId: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetResourceInput {
  restApiId: String!
  resourceId: String!
  embed: [String]
}

type AwsAPIGatewayGetResourcesOutput {
  position: String
  items: [AwsAPIGatewayS1c]
}

type AwsAPIGatewayS1c {
  id: String
  parentId: String
  pathPart: String
  path: String
  resourceMethods: JSON
}

input AwsAPIGatewayGetResourcesInput {
  restApiId: String!
  position: String
  limit: Int
  embed: [String]
}

input AwsAPIGatewayGetRestApiInput {
  restApiId: String!
}

type AwsAPIGatewayGetRestApisOutput {
  position: String
  items: [AwsAPIGatewayS1t]
}

type AwsAPIGatewayS1t {
  id: String
  name: String
  description: String
  createdDate: Date
  version: String
  warnings: [String]
  binaryMediaTypes: [String]
  minimumCompressionSize: Int
  apiKeySource: String
  endpointConfiguration: AwsAPIGatewaySz
  policy: String
  tags: JSON
  disableExecuteApiEndpoint: Boolean
}

input AwsAPIGatewayGetRestApisInput {
  position: String
  limit: Int
}

type AwsAPIGatewayGetSdkOutput {
  contentType: String
  contentDisposition: String
  body: JSON
}

input AwsAPIGatewayGetSdkInput {
  restApiId: String!
  stageName: String!
  sdkType: String!
  parameters: JSON
}

input AwsAPIGatewayGetSdkTypeInput {
  id: String!
}

type AwsAPIGatewayGetSdkTypesOutput {
  position: String
  items: [AwsAPIGatewayS51]
}

type AwsAPIGatewayS51 {
  id: String
  friendlyName: String
  description: String
  configurationProperties: [AwsAPIGatewayS51ConfigurationProperties]
}

type AwsAPIGatewayS51ConfigurationProperties {
  name: String
  friendlyName: String
  description: String
  required: Boolean
  defaultValue: String
}

input AwsAPIGatewayGetSdkTypesInput {
  position: String
  limit: Int
}

input AwsAPIGatewayGetStageInput {
  restApiId: String!
  stageName: String!
}

type AwsAPIGatewayGetStagesOutput {
  item: [AwsAPIGatewayS1w]
}

type AwsAPIGatewayS1w {
  deploymentId: String
  clientCertificateId: String
  stageName: String
  description: String
  cacheClusterEnabled: Boolean
  cacheClusterSize: String
  cacheClusterStatus: String
  methodSettings: JSON
  variables: JSON
  documentationVersion: String
  accessLogSettings: AwsAPIGatewayS1wAccessLogSettings
  canarySettings: AwsAPIGatewayS1v
  tracingEnabled: Boolean
  webAclArn: String
  tags: JSON
  createdDate: Date
  lastUpdatedDate: Date
}

type AwsAPIGatewayS1wAccessLogSettings {
  format: String
  destinationArn: String
}

type AwsAPIGatewayS1v {
  percentTraffic: JSON
  deploymentId: String
  stageVariableOverrides: JSON
  useStageCache: Boolean
}

input AwsAPIGatewayGetStagesInput {
  restApiId: String!
  deploymentId: String
}

type AwsAPIGatewayGetTagsOutput {
  tags: JSON
}

input AwsAPIGatewayGetTagsInput {
  resourceArn: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetUsageInput {
  usagePlanId: String!
  keyId: String
  startDate: String!
  endDate: String!
  position: String
  limit: Int
}

input AwsAPIGatewayGetUsagePlanInput {
  usagePlanId: String!
}

input AwsAPIGatewayGetUsagePlanKeyInput {
  usagePlanId: String!
  keyId: String!
}

type AwsAPIGatewayGetUsagePlanKeysOutput {
  position: String
  items: [AwsAPIGatewayS2b]
}

type AwsAPIGatewayS2b {
  id: String
  type: String
  value: String
  name: String
}

input AwsAPIGatewayGetUsagePlanKeysInput {
  usagePlanId: String!
  position: String
  limit: Int
  nameQuery: String
}

type AwsAPIGatewayGetUsagePlansOutput {
  position: String
  items: [AwsAPIGatewayS29]
}

type AwsAPIGatewayS29 {
  id: String
  name: String
  description: String
  apiStages: [AwsAPIGatewayS23]
  throttle: AwsAPIGatewayS26
  quota: AwsAPIGatewayS27
  productCode: String
  tags: JSON
}

type AwsAPIGatewayS23 {
  apiId: String
  stage: String
  throttle: JSON
}

type AwsAPIGatewayS26 {
  burstLimit: Int
  rateLimit: JSON
}

type AwsAPIGatewayS27 {
  limit: Int
  offset: Int
  period: String
}

input AwsAPIGatewayGetUsagePlansInput {
  position: String
  keyId: String
  limit: Int
}

input AwsAPIGatewayGetVpcLinkInput {
  vpcLinkId: String!
}

type AwsAPIGatewayGetVpcLinksOutput {
  position: String
  items: [AwsAPIGatewayS2d]
}

type AwsAPIGatewayS2d {
  id: String
  name: String
  description: String
  targetArns: [String]
  status: String
  statusMessage: String
  tags: JSON
}

input AwsAPIGatewayGetVpcLinksInput {
  position: String
  limit: Int
}

type AwsAPIGatewayImportApiKeysOutput {
  ids: [String]
  warnings: [String]
}

input AwsAPIGatewayImportApiKeysInput {
  body: JSON!
  format: String!
  failOnWarnings: Boolean
}

type AwsAPIGatewayImportDocumentationPartsOutput {
  ids: [String]
  warnings: [String]
}

input AwsAPIGatewayImportDocumentationPartsInput {
  restApiId: String!
  mode: String
  failOnWarnings: Boolean
  body: JSON!
}

input AwsAPIGatewayImportRestApiInput {
  failOnWarnings: Boolean
  parameters: JSON
  body: JSON!
}

input AwsAPIGatewayPutGatewayResponseInput {
  restApiId: String!
  responseType: String!
  statusCode: String
  responseParameters: JSON
  responseTemplates: JSON
}

input AwsAPIGatewayPutIntegrationInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  type: String!
  integrationHttpMethod: String
  uri: String
  connectionType: String
  connectionId: String
  credentials: String
  requestParameters: JSON
  requestTemplates: JSON
  passthroughBehavior: String
  cacheNamespace: String
  cacheKeyParameters: [String]
  contentHandling: String
  timeoutInMillis: Int
  tlsConfig: AwsAPIGatewayS1qInput
}

input AwsAPIGatewayS1qInput {
  insecureSkipVerification: Boolean
}

input AwsAPIGatewayPutIntegrationResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
  selectionPattern: String
  responseParameters: JSON
  responseTemplates: JSON
  contentHandling: String
}

input AwsAPIGatewayPutMethodInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  authorizationType: String!
  authorizerId: String
  apiKeyRequired: Boolean
  operationName: String
  requestParameters: JSON
  requestModels: JSON
  requestValidatorId: String
  authorizationScopes: [String]
}

input AwsAPIGatewayPutMethodResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
  responseParameters: JSON
  responseModels: JSON
}

input AwsAPIGatewayPutRestApiInput {
  restApiId: String!
  mode: String
  failOnWarnings: Boolean
  parameters: JSON
  body: JSON!
}

input AwsAPIGatewayTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

type AwsAPIGatewayTestInvokeAuthorizerOutput {
  clientStatus: Int
  log: String
  latency: JSON
  principalId: String
  policy: String
  authorization: JSON
  claims: JSON
}

input AwsAPIGatewayTestInvokeAuthorizerInput {
  restApiId: String!
  authorizerId: String!
  headers: JSON
  multiValueHeaders: JSON
  pathWithQueryString: String
  body: String
  stageVariables: JSON
  additionalContext: JSON
}

type AwsAPIGatewayTestInvokeMethodOutput {
  status: Int
  body: String
  headers: JSON
  multiValueHeaders: JSON
  log: String
  latency: JSON
}

input AwsAPIGatewayTestInvokeMethodInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  pathWithQueryString: String
  body: String
  headers: JSON
  multiValueHeaders: JSON
  clientCertificateId: String
  stageVariables: JSON
}

input AwsAPIGatewayUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsAPIGatewayUpdateAccountInput {
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayS6gInput {
  op: String
  path: String
  value: String
  from: String
}

input AwsAPIGatewayUpdateApiKeyInput {
  apiKey: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateAuthorizerInput {
  restApiId: String!
  authorizerId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateBasePathMappingInput {
  domainName: String!
  basePath: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateClientCertificateInput {
  clientCertificateId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateDeploymentInput {
  restApiId: String!
  deploymentId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateDocumentationPartInput {
  restApiId: String!
  documentationPartId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateDocumentationVersionInput {
  restApiId: String!
  documentationVersion: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateDomainNameInput {
  domainName: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateGatewayResponseInput {
  restApiId: String!
  responseType: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateIntegrationInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateIntegrationResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateMethodInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateMethodResponseInput {
  restApiId: String!
  resourceId: String!
  httpMethod: String!
  statusCode: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateModelInput {
  restApiId: String!
  modelName: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateRequestValidatorInput {
  restApiId: String!
  requestValidatorId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateResourceInput {
  restApiId: String!
  resourceId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateRestApiInput {
  restApiId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateStageInput {
  restApiId: String!
  stageName: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateUsageInput {
  usagePlanId: String!
  keyId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateUsagePlanInput {
  usagePlanId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

input AwsAPIGatewayUpdateVpcLinkInput {
  vpcLinkId: String!
  patchOperations: [AwsAPIGatewayS6gInput]
}

"""Access Analyzer (2019-11-01)"""
type AwsAccessAnalyzer {
  applyArchiveRule(input: AwsAccessAnalyzerApplyArchiveRuleInput!, config: AwsConfig): JSON
  cancelPolicyGeneration(input: AwsAccessAnalyzerCancelPolicyGenerationInput!, config: AwsConfig): JSON
  createAccessPreview(input: AwsAccessAnalyzerCreateAccessPreviewInput!, config: AwsConfig): AwsAccessAnalyzerCreateAccessPreviewOutput
  createAnalyzer(input: AwsAccessAnalyzerCreateAnalyzerInput!, config: AwsConfig): AwsAccessAnalyzerCreateAnalyzerOutput
  createArchiveRule(input: AwsAccessAnalyzerCreateArchiveRuleInput!, config: AwsConfig): JSON
  deleteAnalyzer(input: AwsAccessAnalyzerDeleteAnalyzerInput!, config: AwsConfig): JSON
  deleteArchiveRule(input: AwsAccessAnalyzerDeleteArchiveRuleInput!, config: AwsConfig): JSON
  getAccessPreview(input: AwsAccessAnalyzerGetAccessPreviewInput!, config: AwsConfig): AwsAccessAnalyzerGetAccessPreviewOutput
  getAnalyzedResource(input: AwsAccessAnalyzerGetAnalyzedResourceInput!, config: AwsConfig): AwsAccessAnalyzerGetAnalyzedResourceOutput
  getAnalyzer(input: AwsAccessAnalyzerGetAnalyzerInput!, config: AwsConfig): AwsAccessAnalyzerGetAnalyzerOutput
  getArchiveRule(input: AwsAccessAnalyzerGetArchiveRuleInput!, config: AwsConfig): AwsAccessAnalyzerGetArchiveRuleOutput
  getFinding(input: AwsAccessAnalyzerGetFindingInput!, config: AwsConfig): AwsAccessAnalyzerGetFindingOutput
  getGeneratedPolicy(input: AwsAccessAnalyzerGetGeneratedPolicyInput!, config: AwsConfig): AwsAccessAnalyzerGetGeneratedPolicyOutput
  listAccessPreviewFindings(input: AwsAccessAnalyzerListAccessPreviewFindingsInput!, config: AwsConfig): AwsAccessAnalyzerListAccessPreviewFindingsOutput
  listAccessPreviews(input: AwsAccessAnalyzerListAccessPreviewsInput!, config: AwsConfig): AwsAccessAnalyzerListAccessPreviewsOutput
  listAnalyzedResources(input: AwsAccessAnalyzerListAnalyzedResourcesInput!, config: AwsConfig): AwsAccessAnalyzerListAnalyzedResourcesOutput
  listAnalyzers(input: AwsAccessAnalyzerListAnalyzersInput, config: AwsConfig): AwsAccessAnalyzerListAnalyzersOutput
  listArchiveRules(input: AwsAccessAnalyzerListArchiveRulesInput!, config: AwsConfig): AwsAccessAnalyzerListArchiveRulesOutput
  listFindings(input: AwsAccessAnalyzerListFindingsInput!, config: AwsConfig): AwsAccessAnalyzerListFindingsOutput
  listPolicyGenerations(input: AwsAccessAnalyzerListPolicyGenerationsInput, config: AwsConfig): AwsAccessAnalyzerListPolicyGenerationsOutput
  listTagsForResource(input: AwsAccessAnalyzerListTagsForResourceInput!, config: AwsConfig): AwsAccessAnalyzerListTagsForResourceOutput
  startPolicyGeneration(input: AwsAccessAnalyzerStartPolicyGenerationInput!, config: AwsConfig): AwsAccessAnalyzerStartPolicyGenerationOutput
  startResourceScan(input: AwsAccessAnalyzerStartResourceScanInput!, config: AwsConfig): JSON
  tagResource(input: AwsAccessAnalyzerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAccessAnalyzerUntagResourceInput!, config: AwsConfig): JSON
  updateArchiveRule(input: AwsAccessAnalyzerUpdateArchiveRuleInput!, config: AwsConfig): JSON
  updateFindings(input: AwsAccessAnalyzerUpdateFindingsInput!, config: AwsConfig): JSON
  validatePolicy(input: AwsAccessAnalyzerValidatePolicyInput!, config: AwsConfig): AwsAccessAnalyzerValidatePolicyOutput
}

input AwsAccessAnalyzerApplyArchiveRuleInput {
  analyzerArn: String!
  clientToken: String
  ruleName: String!
}

input AwsAccessAnalyzerCancelPolicyGenerationInput {
  jobId: String!
}

type AwsAccessAnalyzerCreateAccessPreviewOutput {
  id: String!
}

input AwsAccessAnalyzerCreateAccessPreviewInput {
  analyzerArn: String!
  clientToken: String
  configurations: JSON!
}

type AwsAccessAnalyzerCreateAnalyzerOutput {
  arn: String
}

input AwsAccessAnalyzerCreateAnalyzerInput {
  analyzerName: String!
  archiveRules: [AwsAccessAnalyzerCreateAnalyzerArchiveRulesInput]
  clientToken: String
  tags: JSON
  type: String!
}

input AwsAccessAnalyzerCreateAnalyzerArchiveRulesInput {
  filter: JSON!
  ruleName: String!
}

input AwsAccessAnalyzerCreateArchiveRuleInput {
  analyzerName: String!
  clientToken: String
  filter: JSON!
  ruleName: String!
}

input AwsAccessAnalyzerDeleteAnalyzerInput {
  analyzerName: String!
  clientToken: String
}

input AwsAccessAnalyzerDeleteArchiveRuleInput {
  analyzerName: String!
  clientToken: String
  ruleName: String!
}

type AwsAccessAnalyzerGetAccessPreviewOutput {
  accessPreview: AwsAccessAnalyzerGetAccessPreviewOutputAccessPreview!
}

type AwsAccessAnalyzerGetAccessPreviewOutputAccessPreview {
  analyzerArn: String!
  configurations: JSON!
  createdAt: Date!
  id: String!
  status: String!
  statusReason: AwsAccessAnalyzerS1z
}

type AwsAccessAnalyzerS1z {
  code: String!
}

input AwsAccessAnalyzerGetAccessPreviewInput {
  accessPreviewId: String!
  analyzerArn: String!
}

type AwsAccessAnalyzerGetAnalyzedResourceOutput {
  resource: AwsAccessAnalyzerGetAnalyzedResourceOutputResource
}

type AwsAccessAnalyzerGetAnalyzedResourceOutputResource {
  actions: [String]
  analyzedAt: Date!
  createdAt: Date!
  error: String
  isPublic: Boolean!
  resourceArn: String!
  resourceOwnerAccount: String!
  resourceType: String!
  sharedVia: [String]
  status: String
  updatedAt: Date!
}

input AwsAccessAnalyzerGetAnalyzedResourceInput {
  analyzerArn: String!
  resourceArn: String!
}

type AwsAccessAnalyzerGetAnalyzerOutput {
  analyzer: AwsAccessAnalyzerS2b!
}

type AwsAccessAnalyzerS2b {
  arn: String!
  createdAt: Date!
  lastResourceAnalyzed: String
  lastResourceAnalyzedAt: Date
  name: String!
  status: String!
  statusReason: AwsAccessAnalyzerS2bStatusReason
  tags: JSON
  type: String!
}

type AwsAccessAnalyzerS2bStatusReason {
  code: String!
}

input AwsAccessAnalyzerGetAnalyzerInput {
  analyzerName: String!
}

type AwsAccessAnalyzerGetArchiveRuleOutput {
  archiveRule: AwsAccessAnalyzerS2h!
}

type AwsAccessAnalyzerS2h {
  createdAt: Date!
  filter: JSON!
  ruleName: String!
  updatedAt: Date!
}

input AwsAccessAnalyzerGetArchiveRuleInput {
  analyzerName: String!
  ruleName: String!
}

type AwsAccessAnalyzerGetFindingOutput {
  finding: AwsAccessAnalyzerGetFindingOutputFinding
}

type AwsAccessAnalyzerGetFindingOutputFinding {
  action: [String]
  analyzedAt: Date!
  condition: JSON!
  createdAt: Date!
  error: String
  id: String!
  isPublic: Boolean
  principal: JSON
  resource: String
  resourceOwnerAccount: String!
  resourceType: String!
  sources: [AwsAccessAnalyzerS2o]
  status: String!
  updatedAt: Date!
}

type AwsAccessAnalyzerS2o {
  detail: AwsAccessAnalyzerS2oDetail
  type: String!
}

type AwsAccessAnalyzerS2oDetail {
  accessPointArn: String
}

input AwsAccessAnalyzerGetFindingInput {
  analyzerArn: String!
  id: String!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutput {
  generatedPolicyResult: AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResult!
  jobDetails: AwsAccessAnalyzerGetGeneratedPolicyOutputJobDetails!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResult {
  generatedPolicies: [AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultGeneratedPolicies]
  properties: AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultProperties!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultGeneratedPolicies {
  policy: String!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultProperties {
  cloudTrailProperties: AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultPropertiesCloudTrailProperties
  isComplete: Boolean
  principalArn: String!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultPropertiesCloudTrailProperties {
  endTime: Date!
  startTime: Date!
  trailProperties: [AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultPropertiesCloudTrailPropertiesTrailProperties]!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputGeneratedPolicyResultPropertiesCloudTrailPropertiesTrailProperties {
  allRegions: Boolean
  cloudTrailArn: String!
  regions: [String]
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputJobDetails {
  completedOn: Date
  jobError: AwsAccessAnalyzerGetGeneratedPolicyOutputJobDetailsJobError
  jobId: String!
  startedOn: Date!
  status: String!
}

type AwsAccessAnalyzerGetGeneratedPolicyOutputJobDetailsJobError {
  code: String!
  message: String!
}

input AwsAccessAnalyzerGetGeneratedPolicyInput {
  includeResourcePlaceholders: Boolean
  includeServiceLevelTemplate: Boolean
  jobId: String!
}

type AwsAccessAnalyzerListAccessPreviewFindingsOutput {
  findings: [AwsAccessAnalyzerListAccessPreviewFindingsOutputFindings]!
  nextToken: String
}

type AwsAccessAnalyzerListAccessPreviewFindingsOutputFindings {
  action: [String]
  changeType: String!
  condition: JSON
  createdAt: Date!
  error: String
  existingFindingId: String
  existingFindingStatus: String
  id: String!
  isPublic: Boolean
  principal: JSON
  resource: String
  resourceOwnerAccount: String!
  resourceType: String!
  sources: [AwsAccessAnalyzerS2o]
  status: String!
}

input AwsAccessAnalyzerListAccessPreviewFindingsInput {
  accessPreviewId: String!
  analyzerArn: String!
  filter: JSON
  maxResults: Int
  nextToken: String
}

type AwsAccessAnalyzerListAccessPreviewsOutput {
  accessPreviews: [AwsAccessAnalyzerListAccessPreviewsOutputAccessPreviews]!
  nextToken: String
}

type AwsAccessAnalyzerListAccessPreviewsOutputAccessPreviews {
  analyzerArn: String!
  createdAt: Date!
  id: String!
  status: String!
  statusReason: AwsAccessAnalyzerS1z
}

input AwsAccessAnalyzerListAccessPreviewsInput {
  analyzerArn: String!
  maxResults: Int
  nextToken: String
}

type AwsAccessAnalyzerListAnalyzedResourcesOutput {
  analyzedResources: [AwsAccessAnalyzerListAnalyzedResourcesOutputAnalyzedResources]!
  nextToken: String
}

type AwsAccessAnalyzerListAnalyzedResourcesOutputAnalyzedResources {
  resourceArn: String!
  resourceOwnerAccount: String!
  resourceType: String!
}

input AwsAccessAnalyzerListAnalyzedResourcesInput {
  analyzerArn: String!
  maxResults: Int
  nextToken: String
  resourceType: String
}

type AwsAccessAnalyzerListAnalyzersOutput {
  analyzers: [AwsAccessAnalyzerS2b]!
  nextToken: String
}

input AwsAccessAnalyzerListAnalyzersInput {
  maxResults: Int
  nextToken: String
  type: String
}

type AwsAccessAnalyzerListArchiveRulesOutput {
  archiveRules: [AwsAccessAnalyzerS2h]!
  nextToken: String
}

input AwsAccessAnalyzerListArchiveRulesInput {
  analyzerName: String!
  maxResults: Int
  nextToken: String
}

type AwsAccessAnalyzerListFindingsOutput {
  findings: [AwsAccessAnalyzerListFindingsOutputFindings]!
  nextToken: String
}

type AwsAccessAnalyzerListFindingsOutputFindings {
  action: [String]
  analyzedAt: Date!
  condition: JSON!
  createdAt: Date!
  error: String
  id: String!
  isPublic: Boolean
  principal: JSON
  resource: String
  resourceOwnerAccount: String!
  resourceType: String!
  sources: [AwsAccessAnalyzerS2o]
  status: String!
  updatedAt: Date!
}

input AwsAccessAnalyzerListFindingsInput {
  analyzerArn: String!
  filter: JSON
  maxResults: Int
  nextToken: String
  sort: AwsAccessAnalyzerListFindingsSortInput
}

input AwsAccessAnalyzerListFindingsSortInput {
  attributeName: String
  orderBy: String
}

type AwsAccessAnalyzerListPolicyGenerationsOutput {
  nextToken: String
  policyGenerations: [AwsAccessAnalyzerListPolicyGenerationsOutputPolicyGenerations]!
}

type AwsAccessAnalyzerListPolicyGenerationsOutputPolicyGenerations {
  completedOn: Date
  jobId: String!
  principalArn: String!
  startedOn: Date!
  status: String!
}

input AwsAccessAnalyzerListPolicyGenerationsInput {
  maxResults: Int
  nextToken: String
  principalArn: String
}

type AwsAccessAnalyzerListTagsForResourceOutput {
  tags: JSON
}

input AwsAccessAnalyzerListTagsForResourceInput {
  resourceArn: String!
}

type AwsAccessAnalyzerStartPolicyGenerationOutput {
  jobId: String!
}

input AwsAccessAnalyzerStartPolicyGenerationInput {
  clientToken: String
  cloudTrailDetails: AwsAccessAnalyzerStartPolicyGenerationCloudTrailDetailsInput
  policyGenerationDetails: AwsAccessAnalyzerStartPolicyGenerationPolicyGenerationDetailsInput!
}

input AwsAccessAnalyzerStartPolicyGenerationCloudTrailDetailsInput {
  accessRole: String!
  endTime: Date
  startTime: Date!
  trails: [AwsAccessAnalyzerStartPolicyGenerationCloudTrailDetailsTrailsInput]!
}

input AwsAccessAnalyzerStartPolicyGenerationCloudTrailDetailsTrailsInput {
  allRegions: Boolean
  cloudTrailArn: String!
  regions: [String]
}

input AwsAccessAnalyzerStartPolicyGenerationPolicyGenerationDetailsInput {
  principalArn: String!
}

input AwsAccessAnalyzerStartResourceScanInput {
  analyzerArn: String!
  resourceArn: String!
}

input AwsAccessAnalyzerTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAccessAnalyzerUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsAccessAnalyzerUpdateArchiveRuleInput {
  analyzerName: String!
  clientToken: String
  filter: JSON!
  ruleName: String!
}

input AwsAccessAnalyzerUpdateFindingsInput {
  analyzerArn: String!
  clientToken: String
  ids: [String]
  resourceArn: String
  status: String!
}

type AwsAccessAnalyzerValidatePolicyOutput {
  findings: [AwsAccessAnalyzerValidatePolicyOutputFindings]!
  nextToken: String
}

type AwsAccessAnalyzerValidatePolicyOutputFindings {
  findingDetails: String!
  findingType: String!
  issueCode: String!
  learnMoreLink: String!
  locations: [AwsAccessAnalyzerValidatePolicyOutputFindingsLocations]!
}

type AwsAccessAnalyzerValidatePolicyOutputFindingsLocations {
  path: [AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsPath]!
  span: AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsSpan!
}

type AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsPath {
  index: Int
  key: String
  substring: AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsPathSubstring
  value: String
}

type AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsPathSubstring {
  length: Int!
  start: Int!
}

type AwsAccessAnalyzerValidatePolicyOutputFindingsLocationsSpan {
  end: AwsAccessAnalyzerS54!
  start: AwsAccessAnalyzerS54!
}

type AwsAccessAnalyzerS54 {
  column: Int!
  line: Int!
  offset: Int!
}

input AwsAccessAnalyzerValidatePolicyInput {
  locale: String
  maxResults: Int
  nextToken: String
  policyDocument: String!
  policyType: String!
}

"""Alexa For Business (2017-11-09)"""
type AwsAlexaForBusiness {
  approveSkill(input: AwsAlexaForBusinessApproveSkillInput!, config: AwsConfig): JSON
  associateContactWithAddressBook(input: AwsAlexaForBusinessAssociateContactWithAddressBookInput!, config: AwsConfig): JSON
  associateDeviceWithNetworkProfile(input: AwsAlexaForBusinessAssociateDeviceWithNetworkProfileInput!, config: AwsConfig): JSON
  associateDeviceWithRoom(input: AwsAlexaForBusinessAssociateDeviceWithRoomInput, config: AwsConfig): JSON
  associateSkillGroupWithRoom(input: AwsAlexaForBusinessAssociateSkillGroupWithRoomInput, config: AwsConfig): JSON
  associateSkillWithSkillGroup(input: AwsAlexaForBusinessAssociateSkillWithSkillGroupInput!, config: AwsConfig): JSON
  associateSkillWithUsers(input: AwsAlexaForBusinessAssociateSkillWithUsersInput!, config: AwsConfig): JSON
  createAddressBook(input: AwsAlexaForBusinessCreateAddressBookInput!, config: AwsConfig): AwsAlexaForBusinessCreateAddressBookOutput
  createBusinessReportSchedule(input: AwsAlexaForBusinessCreateBusinessReportScheduleInput!, config: AwsConfig): AwsAlexaForBusinessCreateBusinessReportScheduleOutput
  createConferenceProvider(input: AwsAlexaForBusinessCreateConferenceProviderInput!, config: AwsConfig): AwsAlexaForBusinessCreateConferenceProviderOutput
  createContact(input: AwsAlexaForBusinessCreateContactInput!, config: AwsConfig): AwsAlexaForBusinessCreateContactOutput
  createGatewayGroup(input: AwsAlexaForBusinessCreateGatewayGroupInput!, config: AwsConfig): AwsAlexaForBusinessCreateGatewayGroupOutput
  createNetworkProfile(input: AwsAlexaForBusinessCreateNetworkProfileInput!, config: AwsConfig): AwsAlexaForBusinessCreateNetworkProfileOutput
  createProfile(input: AwsAlexaForBusinessCreateProfileInput!, config: AwsConfig): AwsAlexaForBusinessCreateProfileOutput
  createRoom(input: AwsAlexaForBusinessCreateRoomInput!, config: AwsConfig): AwsAlexaForBusinessCreateRoomOutput
  createSkillGroup(input: AwsAlexaForBusinessCreateSkillGroupInput!, config: AwsConfig): AwsAlexaForBusinessCreateSkillGroupOutput
  createUser(input: AwsAlexaForBusinessCreateUserInput!, config: AwsConfig): AwsAlexaForBusinessCreateUserOutput
  deleteAddressBook(input: AwsAlexaForBusinessDeleteAddressBookInput!, config: AwsConfig): JSON
  deleteBusinessReportSchedule(input: AwsAlexaForBusinessDeleteBusinessReportScheduleInput!, config: AwsConfig): JSON
  deleteConferenceProvider(input: AwsAlexaForBusinessDeleteConferenceProviderInput!, config: AwsConfig): JSON
  deleteContact(input: AwsAlexaForBusinessDeleteContactInput!, config: AwsConfig): JSON
  deleteDevice(input: AwsAlexaForBusinessDeleteDeviceInput!, config: AwsConfig): JSON
  deleteDeviceUsageData(input: AwsAlexaForBusinessDeleteDeviceUsageDataInput!, config: AwsConfig): JSON
  deleteGatewayGroup(input: AwsAlexaForBusinessDeleteGatewayGroupInput!, config: AwsConfig): JSON
  deleteNetworkProfile(input: AwsAlexaForBusinessDeleteNetworkProfileInput!, config: AwsConfig): JSON
  deleteProfile(input: AwsAlexaForBusinessDeleteProfileInput, config: AwsConfig): JSON
  deleteRoom(input: AwsAlexaForBusinessDeleteRoomInput, config: AwsConfig): JSON
  deleteRoomSkillParameter(input: AwsAlexaForBusinessDeleteRoomSkillParameterInput!, config: AwsConfig): JSON
  deleteSkillAuthorization(input: AwsAlexaForBusinessDeleteSkillAuthorizationInput!, config: AwsConfig): JSON
  deleteSkillGroup(input: AwsAlexaForBusinessDeleteSkillGroupInput, config: AwsConfig): JSON
  deleteUser(input: AwsAlexaForBusinessDeleteUserInput!, config: AwsConfig): JSON
  disassociateContactFromAddressBook(input: AwsAlexaForBusinessDisassociateContactFromAddressBookInput!, config: AwsConfig): JSON
  disassociateDeviceFromRoom(input: AwsAlexaForBusinessDisassociateDeviceFromRoomInput, config: AwsConfig): JSON
  disassociateSkillFromSkillGroup(input: AwsAlexaForBusinessDisassociateSkillFromSkillGroupInput!, config: AwsConfig): JSON
  disassociateSkillFromUsers(input: AwsAlexaForBusinessDisassociateSkillFromUsersInput!, config: AwsConfig): JSON
  disassociateSkillGroupFromRoom(input: AwsAlexaForBusinessDisassociateSkillGroupFromRoomInput, config: AwsConfig): JSON
  forgetSmartHomeAppliances(input: AwsAlexaForBusinessForgetSmartHomeAppliancesInput!, config: AwsConfig): JSON
  getAddressBook(input: AwsAlexaForBusinessGetAddressBookInput!, config: AwsConfig): AwsAlexaForBusinessGetAddressBookOutput
  getConferencePreference(input: JSON, config: AwsConfig): AwsAlexaForBusinessGetConferencePreferenceOutput
  getConferenceProvider(input: AwsAlexaForBusinessGetConferenceProviderInput!, config: AwsConfig): AwsAlexaForBusinessGetConferenceProviderOutput
  getContact(input: AwsAlexaForBusinessGetContactInput!, config: AwsConfig): AwsAlexaForBusinessGetContactOutput
  getDevice(input: AwsAlexaForBusinessGetDeviceInput, config: AwsConfig): AwsAlexaForBusinessGetDeviceOutput
  getGateway(input: AwsAlexaForBusinessGetGatewayInput!, config: AwsConfig): AwsAlexaForBusinessGetGatewayOutput
  getGatewayGroup(input: AwsAlexaForBusinessGetGatewayGroupInput!, config: AwsConfig): AwsAlexaForBusinessGetGatewayGroupOutput
  getInvitationConfiguration(input: JSON, config: AwsConfig): AwsAlexaForBusinessGetInvitationConfigurationOutput
  getNetworkProfile(input: AwsAlexaForBusinessGetNetworkProfileInput!, config: AwsConfig): AwsAlexaForBusinessGetNetworkProfileOutput
  getProfile(input: AwsAlexaForBusinessGetProfileInput, config: AwsConfig): AwsAlexaForBusinessGetProfileOutput
  getRoom(input: AwsAlexaForBusinessGetRoomInput, config: AwsConfig): AwsAlexaForBusinessGetRoomOutput
  getRoomSkillParameter(input: AwsAlexaForBusinessGetRoomSkillParameterInput!, config: AwsConfig): AwsAlexaForBusinessGetRoomSkillParameterOutput
  getSkillGroup(input: AwsAlexaForBusinessGetSkillGroupInput, config: AwsConfig): AwsAlexaForBusinessGetSkillGroupOutput
  listBusinessReportSchedules(input: AwsAlexaForBusinessListBusinessReportSchedulesInput, config: AwsConfig): AwsAlexaForBusinessListBusinessReportSchedulesOutput
  listConferenceProviders(input: AwsAlexaForBusinessListConferenceProvidersInput, config: AwsConfig): AwsAlexaForBusinessListConferenceProvidersOutput
  listDeviceEvents(input: AwsAlexaForBusinessListDeviceEventsInput!, config: AwsConfig): AwsAlexaForBusinessListDeviceEventsOutput
  listGatewayGroups(input: AwsAlexaForBusinessListGatewayGroupsInput, config: AwsConfig): AwsAlexaForBusinessListGatewayGroupsOutput
  listGateways(input: AwsAlexaForBusinessListGatewaysInput, config: AwsConfig): AwsAlexaForBusinessListGatewaysOutput
  listSkills(input: AwsAlexaForBusinessListSkillsInput, config: AwsConfig): AwsAlexaForBusinessListSkillsOutput
  listSkillsStoreCategories(input: AwsAlexaForBusinessListSkillsStoreCategoriesInput, config: AwsConfig): AwsAlexaForBusinessListSkillsStoreCategoriesOutput
  listSkillsStoreSkillsByCategory(input: AwsAlexaForBusinessListSkillsStoreSkillsByCategoryInput!, config: AwsConfig): AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutput
  listSmartHomeAppliances(input: AwsAlexaForBusinessListSmartHomeAppliancesInput!, config: AwsConfig): AwsAlexaForBusinessListSmartHomeAppliancesOutput
  listTags(input: AwsAlexaForBusinessListTagsInput!, config: AwsConfig): AwsAlexaForBusinessListTagsOutput
  putConferencePreference(input: AwsAlexaForBusinessPutConferencePreferenceInput!, config: AwsConfig): JSON
  putInvitationConfiguration(input: AwsAlexaForBusinessPutInvitationConfigurationInput!, config: AwsConfig): JSON
  putRoomSkillParameter(input: AwsAlexaForBusinessPutRoomSkillParameterInput!, config: AwsConfig): JSON
  putSkillAuthorization(input: AwsAlexaForBusinessPutSkillAuthorizationInput!, config: AwsConfig): JSON
  registerAVSDevice(input: AwsAlexaForBusinessRegisterAVSDeviceInput!, config: AwsConfig): AwsAlexaForBusinessRegisterAVSDeviceOutput
  rejectSkill(input: AwsAlexaForBusinessRejectSkillInput!, config: AwsConfig): JSON
  resolveRoom(input: AwsAlexaForBusinessResolveRoomInput!, config: AwsConfig): AwsAlexaForBusinessResolveRoomOutput
  revokeInvitation(input: AwsAlexaForBusinessRevokeInvitationInput, config: AwsConfig): JSON
  searchAddressBooks(input: AwsAlexaForBusinessSearchAddressBooksInput, config: AwsConfig): AwsAlexaForBusinessSearchAddressBooksOutput
  searchContacts(input: AwsAlexaForBusinessSearchContactsInput, config: AwsConfig): AwsAlexaForBusinessSearchContactsOutput
  searchDevices(input: AwsAlexaForBusinessSearchDevicesInput, config: AwsConfig): AwsAlexaForBusinessSearchDevicesOutput
  searchNetworkProfiles(input: AwsAlexaForBusinessSearchNetworkProfilesInput, config: AwsConfig): AwsAlexaForBusinessSearchNetworkProfilesOutput
  searchProfiles(input: AwsAlexaForBusinessSearchProfilesInput, config: AwsConfig): AwsAlexaForBusinessSearchProfilesOutput
  searchRooms(input: AwsAlexaForBusinessSearchRoomsInput, config: AwsConfig): AwsAlexaForBusinessSearchRoomsOutput
  searchSkillGroups(input: AwsAlexaForBusinessSearchSkillGroupsInput, config: AwsConfig): AwsAlexaForBusinessSearchSkillGroupsOutput
  searchUsers(input: AwsAlexaForBusinessSearchUsersInput, config: AwsConfig): AwsAlexaForBusinessSearchUsersOutput
  sendAnnouncement(input: AwsAlexaForBusinessSendAnnouncementInput!, config: AwsConfig): AwsAlexaForBusinessSendAnnouncementOutput
  sendInvitation(input: AwsAlexaForBusinessSendInvitationInput, config: AwsConfig): JSON
  startDeviceSync(input: AwsAlexaForBusinessStartDeviceSyncInput!, config: AwsConfig): JSON
  startSmartHomeApplianceDiscovery(input: AwsAlexaForBusinessStartSmartHomeApplianceDiscoveryInput!, config: AwsConfig): JSON
  tagResource(input: AwsAlexaForBusinessTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAlexaForBusinessUntagResourceInput!, config: AwsConfig): JSON
  updateAddressBook(input: AwsAlexaForBusinessUpdateAddressBookInput!, config: AwsConfig): JSON
  updateBusinessReportSchedule(input: AwsAlexaForBusinessUpdateBusinessReportScheduleInput!, config: AwsConfig): JSON
  updateConferenceProvider(input: AwsAlexaForBusinessUpdateConferenceProviderInput!, config: AwsConfig): JSON
  updateContact(input: AwsAlexaForBusinessUpdateContactInput!, config: AwsConfig): JSON
  updateDevice(input: AwsAlexaForBusinessUpdateDeviceInput, config: AwsConfig): JSON
  updateGateway(input: AwsAlexaForBusinessUpdateGatewayInput!, config: AwsConfig): JSON
  updateGatewayGroup(input: AwsAlexaForBusinessUpdateGatewayGroupInput!, config: AwsConfig): JSON
  updateNetworkProfile(input: AwsAlexaForBusinessUpdateNetworkProfileInput!, config: AwsConfig): JSON
  updateProfile(input: AwsAlexaForBusinessUpdateProfileInput, config: AwsConfig): JSON
  updateRoom(input: AwsAlexaForBusinessUpdateRoomInput, config: AwsConfig): JSON
  updateSkillGroup(input: AwsAlexaForBusinessUpdateSkillGroupInput, config: AwsConfig): JSON
}

input AwsAlexaForBusinessApproveSkillInput {
  SkillId: String!
}

input AwsAlexaForBusinessAssociateContactWithAddressBookInput {
  ContactArn: String!
  AddressBookArn: String!
}

input AwsAlexaForBusinessAssociateDeviceWithNetworkProfileInput {
  DeviceArn: String!
  NetworkProfileArn: String!
}

input AwsAlexaForBusinessAssociateDeviceWithRoomInput {
  DeviceArn: String
  RoomArn: String
}

input AwsAlexaForBusinessAssociateSkillGroupWithRoomInput {
  SkillGroupArn: String
  RoomArn: String
}

input AwsAlexaForBusinessAssociateSkillWithSkillGroupInput {
  SkillGroupArn: String
  SkillId: String!
}

input AwsAlexaForBusinessAssociateSkillWithUsersInput {
  SkillId: String!
}

type AwsAlexaForBusinessCreateAddressBookOutput {
  AddressBookArn: String
}

input AwsAlexaForBusinessCreateAddressBookInput {
  Name: String!
  Description: String
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessSlInput {
  Key: String!
  Value: String!
}

type AwsAlexaForBusinessCreateBusinessReportScheduleOutput {
  ScheduleArn: String
}

input AwsAlexaForBusinessCreateBusinessReportScheduleInput {
  ScheduleName: String
  S3BucketName: String
  S3KeyPrefix: String
  Format: String!
  ContentRange: AwsAlexaForBusinessSvInput!
  Recurrence: AwsAlexaForBusinessSxInput
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessSvInput {
  Interval: String!
}

input AwsAlexaForBusinessSxInput {
  StartDate: String
}

type AwsAlexaForBusinessCreateConferenceProviderOutput {
  ConferenceProviderArn: String
}

input AwsAlexaForBusinessCreateConferenceProviderInput {
  ConferenceProviderName: String!
  ConferenceProviderType: String!
  IPDialIn: AwsAlexaForBusinessS13Input
  PSTNDialIn: AwsAlexaForBusinessS16Input
  MeetingSetting: AwsAlexaForBusinessS1bInput!
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessS13Input {
  Endpoint: String!
  CommsProtocol: String!
}

input AwsAlexaForBusinessS16Input {
  CountryCode: String!
  PhoneNumber: String!
  OneClickIdDelay: String!
  OneClickPinDelay: String!
}

input AwsAlexaForBusinessS1bInput {
  RequirePin: String!
}

type AwsAlexaForBusinessCreateContactOutput {
  ContactArn: String
}

input AwsAlexaForBusinessCreateContactInput {
  DisplayName: String
  FirstName: String!
  LastName: String
  PhoneNumber: String
  PhoneNumbers: [AwsAlexaForBusinessS1hInput]
  SipAddresses: [AwsAlexaForBusinessS1kInput]
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessS1hInput {
  Number: String!
  Type: String!
}

input AwsAlexaForBusinessS1kInput {
  Uri: String!
  Type: String!
}

type AwsAlexaForBusinessCreateGatewayGroupOutput {
  GatewayGroupArn: String
}

input AwsAlexaForBusinessCreateGatewayGroupInput {
  Name: String!
  Description: String
  ClientRequestToken: String!
  Tags: [AwsAlexaForBusinessSlInput]
}

type AwsAlexaForBusinessCreateNetworkProfileOutput {
  NetworkProfileArn: String
}

input AwsAlexaForBusinessCreateNetworkProfileInput {
  NetworkProfileName: String!
  Description: String
  Ssid: String!
  SecurityType: String!
  EapMethod: String
  CurrentPassword: String
  NextPassword: String
  CertificateAuthorityArn: String
  TrustAnchors: [String]
  ClientRequestToken: String!
  Tags: [AwsAlexaForBusinessSlInput]
}

type AwsAlexaForBusinessCreateProfileOutput {
  ProfileArn: String
}

input AwsAlexaForBusinessCreateProfileInput {
  ProfileName: String!
  Timezone: String!
  Address: String!
  DistanceUnit: String!
  TemperatureUnit: String!
  WakeWord: String!
  Locale: String
  ClientRequestToken: String
  SetupModeDisabled: Boolean
  MaxVolumeLimit: Int
  PSTNEnabled: Boolean
  DataRetentionOptIn: Boolean
  MeetingRoomConfiguration: AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationInput
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationInput {
  RoomUtilizationMetricsEnabled: Boolean
  EndOfMeetingReminder: AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationEndOfMeetingReminderInput
  InstantBooking: AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationInstantBookingInput
  RequireCheckIn: AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationRequireCheckInInput
}

input AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationEndOfMeetingReminderInput {
  ReminderAtMinutes: [Int]!
  ReminderType: String!
  Enabled: Boolean!
}

input AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationInstantBookingInput {
  DurationInMinutes: Int!
  Enabled: Boolean!
}

input AwsAlexaForBusinessCreateProfileMeetingRoomConfigurationRequireCheckInInput {
  ReleaseAfterMinutes: Int!
  Enabled: Boolean!
}

type AwsAlexaForBusinessCreateRoomOutput {
  RoomArn: String
}

input AwsAlexaForBusinessCreateRoomInput {
  RoomName: String!
  Description: String
  ProfileArn: String
  ProviderCalendarId: String
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

type AwsAlexaForBusinessCreateSkillGroupOutput {
  SkillGroupArn: String
}

input AwsAlexaForBusinessCreateSkillGroupInput {
  SkillGroupName: String!
  Description: String
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

type AwsAlexaForBusinessCreateUserOutput {
  UserArn: String
}

input AwsAlexaForBusinessCreateUserInput {
  UserId: String!
  FirstName: String
  LastName: String
  Email: String
  ClientRequestToken: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessDeleteAddressBookInput {
  AddressBookArn: String!
}

input AwsAlexaForBusinessDeleteBusinessReportScheduleInput {
  ScheduleArn: String!
}

input AwsAlexaForBusinessDeleteConferenceProviderInput {
  ConferenceProviderArn: String!
}

input AwsAlexaForBusinessDeleteContactInput {
  ContactArn: String!
}

input AwsAlexaForBusinessDeleteDeviceInput {
  DeviceArn: String!
}

input AwsAlexaForBusinessDeleteDeviceUsageDataInput {
  DeviceArn: String!
  DeviceUsageType: String!
}

input AwsAlexaForBusinessDeleteGatewayGroupInput {
  GatewayGroupArn: String!
}

input AwsAlexaForBusinessDeleteNetworkProfileInput {
  NetworkProfileArn: String!
}

input AwsAlexaForBusinessDeleteProfileInput {
  ProfileArn: String
}

input AwsAlexaForBusinessDeleteRoomInput {
  RoomArn: String
}

input AwsAlexaForBusinessDeleteRoomSkillParameterInput {
  RoomArn: String
  SkillId: String!
  ParameterKey: String!
}

input AwsAlexaForBusinessDeleteSkillAuthorizationInput {
  SkillId: String!
  RoomArn: String
}

input AwsAlexaForBusinessDeleteSkillGroupInput {
  SkillGroupArn: String
}

input AwsAlexaForBusinessDeleteUserInput {
  UserArn: String
  EnrollmentId: String!
}

input AwsAlexaForBusinessDisassociateContactFromAddressBookInput {
  ContactArn: String!
  AddressBookArn: String!
}

input AwsAlexaForBusinessDisassociateDeviceFromRoomInput {
  DeviceArn: String
}

input AwsAlexaForBusinessDisassociateSkillFromSkillGroupInput {
  SkillGroupArn: String
  SkillId: String!
}

input AwsAlexaForBusinessDisassociateSkillFromUsersInput {
  SkillId: String!
}

input AwsAlexaForBusinessDisassociateSkillGroupFromRoomInput {
  SkillGroupArn: String
  RoomArn: String
}

input AwsAlexaForBusinessForgetSmartHomeAppliancesInput {
  RoomArn: String!
}

type AwsAlexaForBusinessGetAddressBookOutput {
  AddressBook: AwsAlexaForBusinessGetAddressBookOutputAddressBook
}

type AwsAlexaForBusinessGetAddressBookOutputAddressBook {
  AddressBookArn: String
  Name: String
  Description: String
}

input AwsAlexaForBusinessGetAddressBookInput {
  AddressBookArn: String!
}

type AwsAlexaForBusinessGetConferencePreferenceOutput {
  Preference: AwsAlexaForBusinessS4d
}

type AwsAlexaForBusinessS4d {
  DefaultConferenceProviderArn: String
}

type AwsAlexaForBusinessGetConferenceProviderOutput {
  ConferenceProvider: AwsAlexaForBusinessS4g
}

type AwsAlexaForBusinessS4g {
  Arn: String
  Name: String
  Type: String
  IPDialIn: AwsAlexaForBusinessS13
  PSTNDialIn: AwsAlexaForBusinessS16
  MeetingSetting: AwsAlexaForBusinessS1b
}

type AwsAlexaForBusinessS13 {
  Endpoint: String!
  CommsProtocol: String!
}

type AwsAlexaForBusinessS16 {
  CountryCode: String!
  PhoneNumber: String!
  OneClickIdDelay: String!
  OneClickPinDelay: String!
}

type AwsAlexaForBusinessS1b {
  RequirePin: String!
}

input AwsAlexaForBusinessGetConferenceProviderInput {
  ConferenceProviderArn: String!
}

type AwsAlexaForBusinessGetContactOutput {
  Contact: AwsAlexaForBusinessGetContactOutputContact
}

type AwsAlexaForBusinessGetContactOutputContact {
  ContactArn: String
  DisplayName: String
  FirstName: String
  LastName: String
  PhoneNumber: String
  PhoneNumbers: [AwsAlexaForBusinessS1h]
  SipAddresses: [AwsAlexaForBusinessS1k]
}

type AwsAlexaForBusinessS1h {
  Number: String!
  Type: String!
}

type AwsAlexaForBusinessS1k {
  Uri: String!
  Type: String!
}

input AwsAlexaForBusinessGetContactInput {
  ContactArn: String!
}

type AwsAlexaForBusinessGetDeviceOutput {
  Device: AwsAlexaForBusinessGetDeviceOutputDevice
}

type AwsAlexaForBusinessGetDeviceOutputDevice {
  DeviceArn: String
  DeviceSerialNumber: String
  DeviceType: String
  DeviceName: String
  SoftwareVersion: String
  MacAddress: String
  RoomArn: String
  DeviceStatus: String
  DeviceStatusInfo: AwsAlexaForBusinessS4t
  NetworkProfileInfo: AwsAlexaForBusinessGetDeviceOutputDeviceNetworkProfileInfo
}

type AwsAlexaForBusinessS4t {
  DeviceStatusDetails: [AwsAlexaForBusinessS4tDeviceStatusDetails]
  ConnectionStatus: String
  ConnectionStatusUpdatedTime: Date
}

type AwsAlexaForBusinessS4tDeviceStatusDetails {
  Feature: String
  Code: String
}

type AwsAlexaForBusinessGetDeviceOutputDeviceNetworkProfileInfo {
  NetworkProfileArn: String
  CertificateArn: String
  CertificateExpirationTime: Date
}

input AwsAlexaForBusinessGetDeviceInput {
  DeviceArn: String
}

type AwsAlexaForBusinessGetGatewayOutput {
  Gateway: AwsAlexaForBusinessGetGatewayOutputGateway
}

type AwsAlexaForBusinessGetGatewayOutputGateway {
  Arn: String
  Name: String
  Description: String
  GatewayGroupArn: String
  SoftwareVersion: String
}

input AwsAlexaForBusinessGetGatewayInput {
  GatewayArn: String!
}

type AwsAlexaForBusinessGetGatewayGroupOutput {
  GatewayGroup: AwsAlexaForBusinessGetGatewayGroupOutputGatewayGroup
}

type AwsAlexaForBusinessGetGatewayGroupOutputGatewayGroup {
  Arn: String
  Name: String
  Description: String
}

input AwsAlexaForBusinessGetGatewayGroupInput {
  GatewayGroupArn: String!
}

type AwsAlexaForBusinessGetInvitationConfigurationOutput {
  OrganizationName: String
  ContactEmail: String
  PrivateSkillIds: [String]
}

type AwsAlexaForBusinessGetNetworkProfileOutput {
  NetworkProfile: AwsAlexaForBusinessGetNetworkProfileOutputNetworkProfile
}

type AwsAlexaForBusinessGetNetworkProfileOutputNetworkProfile {
  NetworkProfileArn: String
  NetworkProfileName: String
  Description: String
  Ssid: String
  SecurityType: String
  EapMethod: String
  CurrentPassword: String
  NextPassword: String
  CertificateAuthorityArn: String
  TrustAnchors: [String]
}

input AwsAlexaForBusinessGetNetworkProfileInput {
  NetworkProfileArn: String!
}

type AwsAlexaForBusinessGetProfileOutput {
  Profile: AwsAlexaForBusinessGetProfileOutputProfile
}

type AwsAlexaForBusinessGetProfileOutputProfile {
  ProfileArn: String
  ProfileName: String
  IsDefault: Boolean
  Address: String
  Timezone: String
  DistanceUnit: String
  TemperatureUnit: String
  WakeWord: String
  Locale: String
  SetupModeDisabled: Boolean
  MaxVolumeLimit: Int
  PSTNEnabled: Boolean
  DataRetentionOptIn: Boolean
  AddressBookArn: String
  MeetingRoomConfiguration: AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfiguration
}

type AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfiguration {
  RoomUtilizationMetricsEnabled: Boolean
  EndOfMeetingReminder: AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationEndOfMeetingReminder
  InstantBooking: AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationInstantBooking
  RequireCheckIn: AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationRequireCheckIn
}

type AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationEndOfMeetingReminder {
  ReminderAtMinutes: [Int]
  ReminderType: String
  Enabled: Boolean
}

type AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationInstantBooking {
  DurationInMinutes: Int
  Enabled: Boolean
}

type AwsAlexaForBusinessGetProfileOutputProfileMeetingRoomConfigurationRequireCheckIn {
  ReleaseAfterMinutes: Int
  Enabled: Boolean
}

input AwsAlexaForBusinessGetProfileInput {
  ProfileArn: String
}

type AwsAlexaForBusinessGetRoomOutput {
  Room: AwsAlexaForBusinessGetRoomOutputRoom
}

type AwsAlexaForBusinessGetRoomOutputRoom {
  RoomArn: String
  RoomName: String
  Description: String
  ProviderCalendarId: String
  ProfileArn: String
}

input AwsAlexaForBusinessGetRoomInput {
  RoomArn: String
}

type AwsAlexaForBusinessGetRoomSkillParameterOutput {
  RoomSkillParameter: AwsAlexaForBusinessS5u
}

type AwsAlexaForBusinessS5u {
  ParameterKey: String!
  ParameterValue: String!
}

input AwsAlexaForBusinessGetRoomSkillParameterInput {
  RoomArn: String
  SkillId: String!
  ParameterKey: String!
}

type AwsAlexaForBusinessGetSkillGroupOutput {
  SkillGroup: AwsAlexaForBusinessGetSkillGroupOutputSkillGroup
}

type AwsAlexaForBusinessGetSkillGroupOutputSkillGroup {
  SkillGroupArn: String
  SkillGroupName: String
  Description: String
}

input AwsAlexaForBusinessGetSkillGroupInput {
  SkillGroupArn: String
}

type AwsAlexaForBusinessListBusinessReportSchedulesOutput {
  BusinessReportSchedules: [AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedules]
  NextToken: String
}

type AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedules {
  ScheduleArn: String
  ScheduleName: String
  S3BucketName: String
  S3KeyPrefix: String
  Format: String
  ContentRange: AwsAlexaForBusinessSv
  Recurrence: AwsAlexaForBusinessSx
  LastBusinessReport: AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedulesLastBusinessReport
}

type AwsAlexaForBusinessSv {
  Interval: String!
}

type AwsAlexaForBusinessSx {
  StartDate: String
}

type AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedulesLastBusinessReport {
  Status: String
  FailureCode: String
  S3Location: AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedulesLastBusinessReportS3Location
  DeliveryTime: Date
  DownloadUrl: String
}

type AwsAlexaForBusinessListBusinessReportSchedulesOutputBusinessReportSchedulesLastBusinessReportS3Location {
  Path: String
  BucketName: String
}

input AwsAlexaForBusinessListBusinessReportSchedulesInput {
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListConferenceProvidersOutput {
  ConferenceProviders: [AwsAlexaForBusinessS4g]
  NextToken: String
}

input AwsAlexaForBusinessListConferenceProvidersInput {
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListDeviceEventsOutput {
  DeviceEvents: [AwsAlexaForBusinessListDeviceEventsOutputDeviceEvents]
  NextToken: String
}

type AwsAlexaForBusinessListDeviceEventsOutputDeviceEvents {
  Type: String
  Value: String
  Timestamp: Date
}

input AwsAlexaForBusinessListDeviceEventsInput {
  DeviceArn: String!
  EventType: String
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListGatewayGroupsOutput {
  GatewayGroups: [AwsAlexaForBusinessListGatewayGroupsOutputGatewayGroups]
  NextToken: String
}

type AwsAlexaForBusinessListGatewayGroupsOutputGatewayGroups {
  Arn: String
  Name: String
  Description: String
}

input AwsAlexaForBusinessListGatewayGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListGatewaysOutput {
  Gateways: [AwsAlexaForBusinessListGatewaysOutputGateways]
  NextToken: String
}

type AwsAlexaForBusinessListGatewaysOutputGateways {
  Arn: String
  Name: String
  Description: String
  GatewayGroupArn: String
  SoftwareVersion: String
}

input AwsAlexaForBusinessListGatewaysInput {
  GatewayGroupArn: String
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListSkillsOutput {
  SkillSummaries: [AwsAlexaForBusinessListSkillsOutputSkillSummaries]
  NextToken: String
}

type AwsAlexaForBusinessListSkillsOutputSkillSummaries {
  SkillId: String
  SkillName: String
  SupportsLinking: Boolean
  EnablementType: String
  SkillType: String
}

input AwsAlexaForBusinessListSkillsInput {
  SkillGroupArn: String
  EnablementType: String
  SkillType: String
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListSkillsStoreCategoriesOutput {
  CategoryList: [AwsAlexaForBusinessListSkillsStoreCategoriesOutputCategoryList]
  NextToken: String
}

type AwsAlexaForBusinessListSkillsStoreCategoriesOutputCategoryList {
  CategoryId: JSON
  CategoryName: String
}

input AwsAlexaForBusinessListSkillsStoreCategoriesInput {
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutput {
  SkillsStoreSkills: [AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkills]
  NextToken: String
}

type AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkills {
  SkillId: String
  SkillName: String
  ShortDescription: String
  IconUrl: String
  SampleUtterances: [String]
  SkillDetails: AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkillsSkillDetails
  SupportsLinking: Boolean
}

type AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkillsSkillDetails {
  ProductDescription: String
  InvocationPhrase: String
  ReleaseDate: String
  EndUserLicenseAgreement: String
  GenericKeywords: [String]
  BulletPoints: [String]
  NewInThisVersionBulletPoints: [String]
  SkillTypes: [String]
  Reviews: JSON
  DeveloperInfo: AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkillsSkillDetailsDeveloperInfo
}

type AwsAlexaForBusinessListSkillsStoreSkillsByCategoryOutputSkillsStoreSkillsSkillDetailsDeveloperInfo {
  DeveloperName: String
  PrivacyPolicy: String
  Email: String
  Url: String
}

input AwsAlexaForBusinessListSkillsStoreSkillsByCategoryInput {
  CategoryId: JSON!
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessListSmartHomeAppliancesOutput {
  SmartHomeAppliances: [AwsAlexaForBusinessListSmartHomeAppliancesOutputSmartHomeAppliances]
  NextToken: String
}

type AwsAlexaForBusinessListSmartHomeAppliancesOutputSmartHomeAppliances {
  FriendlyName: String
  Description: String
  ManufacturerName: String
}

input AwsAlexaForBusinessListSmartHomeAppliancesInput {
  RoomArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsAlexaForBusinessListTagsOutput {
  Tags: [AwsAlexaForBusinessSl]
  NextToken: String
}

type AwsAlexaForBusinessSl {
  Key: String!
  Value: String!
}

input AwsAlexaForBusinessListTagsInput {
  Arn: String!
  NextToken: String
  MaxResults: Int
}

input AwsAlexaForBusinessPutConferencePreferenceInput {
  ConferencePreference: AwsAlexaForBusinessS4dInput!
}

input AwsAlexaForBusinessS4dInput {
  DefaultConferenceProviderArn: String
}

input AwsAlexaForBusinessPutInvitationConfigurationInput {
  OrganizationName: String!
  ContactEmail: String
  PrivateSkillIds: [String]
}

input AwsAlexaForBusinessPutRoomSkillParameterInput {
  RoomArn: String
  SkillId: String!
  RoomSkillParameter: AwsAlexaForBusinessS5uInput!
}

input AwsAlexaForBusinessS5uInput {
  ParameterKey: String!
  ParameterValue: String!
}

input AwsAlexaForBusinessPutSkillAuthorizationInput {
  AuthorizationResult: JSON!
  SkillId: String!
  RoomArn: String
}

type AwsAlexaForBusinessRegisterAVSDeviceOutput {
  DeviceArn: String
}

input AwsAlexaForBusinessRegisterAVSDeviceInput {
  ClientId: String!
  UserCode: String!
  ProductId: String!
  DeviceSerialNumber: String
  AmazonId: String!
  RoomArn: String
  Tags: [AwsAlexaForBusinessSlInput]
}

input AwsAlexaForBusinessRejectSkillInput {
  SkillId: String!
}

type AwsAlexaForBusinessResolveRoomOutput {
  RoomArn: String
  RoomName: String
  RoomSkillParameters: [AwsAlexaForBusinessS5u]
}

input AwsAlexaForBusinessResolveRoomInput {
  UserId: String!
  SkillId: String!
}

input AwsAlexaForBusinessRevokeInvitationInput {
  UserArn: String
  EnrollmentId: String
}

type AwsAlexaForBusinessSearchAddressBooksOutput {
  AddressBooks: [AwsAlexaForBusinessSearchAddressBooksOutputAddressBooks]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchAddressBooksOutputAddressBooks {
  AddressBookArn: String
  Name: String
  Description: String
}

input AwsAlexaForBusinessSearchAddressBooksInput {
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
  NextToken: String
  MaxResults: Int
}

input AwsAlexaForBusinessS92Input {
  Key: String!
  Values: [String]!
}

input AwsAlexaForBusinessS97Input {
  Key: String!
  Value: String!
}

type AwsAlexaForBusinessSearchContactsOutput {
  Contacts: [AwsAlexaForBusinessSearchContactsOutputContacts]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchContactsOutputContacts {
  ContactArn: String
  DisplayName: String
  FirstName: String
  LastName: String
  PhoneNumber: String
  PhoneNumbers: [AwsAlexaForBusinessS1h]
  SipAddresses: [AwsAlexaForBusinessS1k]
}

input AwsAlexaForBusinessSearchContactsInput {
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
  NextToken: String
  MaxResults: Int
}

type AwsAlexaForBusinessSearchDevicesOutput {
  Devices: [AwsAlexaForBusinessSearchDevicesOutputDevices]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchDevicesOutputDevices {
  DeviceArn: String
  DeviceSerialNumber: String
  DeviceType: String
  DeviceName: String
  SoftwareVersion: String
  MacAddress: String
  DeviceStatus: String
  NetworkProfileArn: String
  NetworkProfileName: String
  RoomArn: String
  RoomName: String
  DeviceStatusInfo: AwsAlexaForBusinessS4t
  CreatedTime: Date
}

input AwsAlexaForBusinessSearchDevicesInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSearchNetworkProfilesOutput {
  NetworkProfiles: [AwsAlexaForBusinessSearchNetworkProfilesOutputNetworkProfiles]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchNetworkProfilesOutputNetworkProfiles {
  NetworkProfileArn: String
  NetworkProfileName: String
  Description: String
  Ssid: String
  SecurityType: String
  EapMethod: String
  CertificateAuthorityArn: String
}

input AwsAlexaForBusinessSearchNetworkProfilesInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSearchProfilesOutput {
  Profiles: [AwsAlexaForBusinessSearchProfilesOutputProfiles]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchProfilesOutputProfiles {
  ProfileArn: String
  ProfileName: String
  IsDefault: Boolean
  Address: String
  Timezone: String
  DistanceUnit: String
  TemperatureUnit: String
  WakeWord: String
  Locale: String
}

input AwsAlexaForBusinessSearchProfilesInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSearchRoomsOutput {
  Rooms: [AwsAlexaForBusinessSearchRoomsOutputRooms]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchRoomsOutputRooms {
  RoomArn: String
  RoomName: String
  Description: String
  ProviderCalendarId: String
  ProfileArn: String
  ProfileName: String
}

input AwsAlexaForBusinessSearchRoomsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSearchSkillGroupsOutput {
  SkillGroups: [AwsAlexaForBusinessSearchSkillGroupsOutputSkillGroups]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchSkillGroupsOutputSkillGroups {
  SkillGroupArn: String
  SkillGroupName: String
  Description: String
}

input AwsAlexaForBusinessSearchSkillGroupsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSearchUsersOutput {
  Users: [AwsAlexaForBusinessSearchUsersOutputUsers]
  NextToken: String
  TotalCount: Int
}

type AwsAlexaForBusinessSearchUsersOutputUsers {
  UserArn: String
  FirstName: String
  LastName: String
  Email: String
  EnrollmentStatus: String
  EnrollmentId: String
}

input AwsAlexaForBusinessSearchUsersInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsAlexaForBusinessS92Input]
  SortCriteria: [AwsAlexaForBusinessS97Input]
}

type AwsAlexaForBusinessSendAnnouncementOutput {
  AnnouncementArn: String
}

input AwsAlexaForBusinessSendAnnouncementInput {
  RoomFilters: [AwsAlexaForBusinessS92Input]!
  Content: AwsAlexaForBusinessSendAnnouncementContentInput!
  TimeToLiveInSeconds: Int
  ClientRequestToken: String!
}

input AwsAlexaForBusinessSendAnnouncementContentInput {
  TextList: [AwsAlexaForBusinessSendAnnouncementContentTextListInput]
  SsmlList: [AwsAlexaForBusinessSendAnnouncementContentSsmlListInput]
  AudioList: [AwsAlexaForBusinessSendAnnouncementContentAudioListInput]
}

input AwsAlexaForBusinessSendAnnouncementContentTextListInput {
  Locale: String!
  Value: String!
}

input AwsAlexaForBusinessSendAnnouncementContentSsmlListInput {
  Locale: String!
  Value: String!
}

input AwsAlexaForBusinessSendAnnouncementContentAudioListInput {
  Locale: String!
  Location: String!
}

input AwsAlexaForBusinessSendInvitationInput {
  UserArn: String
}

input AwsAlexaForBusinessStartDeviceSyncInput {
  RoomArn: String
  DeviceArn: String
  Features: [String]!
}

input AwsAlexaForBusinessStartSmartHomeApplianceDiscoveryInput {
  RoomArn: String!
}

input AwsAlexaForBusinessTagResourceInput {
  Arn: String!
  Tags: [AwsAlexaForBusinessSlInput]!
}

input AwsAlexaForBusinessUntagResourceInput {
  Arn: String!
  TagKeys: [String]!
}

input AwsAlexaForBusinessUpdateAddressBookInput {
  AddressBookArn: String!
  Name: String
  Description: String
}

input AwsAlexaForBusinessUpdateBusinessReportScheduleInput {
  ScheduleArn: String!
  S3BucketName: String
  S3KeyPrefix: String
  Format: String
  ScheduleName: String
  Recurrence: AwsAlexaForBusinessSxInput
}

input AwsAlexaForBusinessUpdateConferenceProviderInput {
  ConferenceProviderArn: String!
  ConferenceProviderType: String!
  IPDialIn: AwsAlexaForBusinessS13Input
  PSTNDialIn: AwsAlexaForBusinessS16Input
  MeetingSetting: AwsAlexaForBusinessS1bInput!
}

input AwsAlexaForBusinessUpdateContactInput {
  ContactArn: String!
  DisplayName: String
  FirstName: String
  LastName: String
  PhoneNumber: String
  PhoneNumbers: [AwsAlexaForBusinessS1hInput]
  SipAddresses: [AwsAlexaForBusinessS1kInput]
}

input AwsAlexaForBusinessUpdateDeviceInput {
  DeviceArn: String
  DeviceName: String
}

input AwsAlexaForBusinessUpdateGatewayInput {
  GatewayArn: String!
  Name: String
  Description: String
  SoftwareVersion: String
}

input AwsAlexaForBusinessUpdateGatewayGroupInput {
  GatewayGroupArn: String!
  Name: String
  Description: String
}

input AwsAlexaForBusinessUpdateNetworkProfileInput {
  NetworkProfileArn: String!
  NetworkProfileName: String
  Description: String
  CurrentPassword: String
  NextPassword: String
  CertificateAuthorityArn: String
  TrustAnchors: [String]
}

input AwsAlexaForBusinessUpdateProfileInput {
  ProfileArn: String
  ProfileName: String
  IsDefault: Boolean
  Timezone: String
  Address: String
  DistanceUnit: String
  TemperatureUnit: String
  WakeWord: String
  Locale: String
  SetupModeDisabled: Boolean
  MaxVolumeLimit: Int
  PSTNEnabled: Boolean
  DataRetentionOptIn: Boolean
  MeetingRoomConfiguration: AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationInput
}

input AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationInput {
  RoomUtilizationMetricsEnabled: Boolean
  EndOfMeetingReminder: AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationEndOfMeetingReminderInput
  InstantBooking: AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationInstantBookingInput
  RequireCheckIn: AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationRequireCheckInInput
}

input AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationEndOfMeetingReminderInput {
  ReminderAtMinutes: [Int]
  ReminderType: String
  Enabled: Boolean
}

input AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationInstantBookingInput {
  DurationInMinutes: Int
  Enabled: Boolean
}

input AwsAlexaForBusinessUpdateProfileMeetingRoomConfigurationRequireCheckInInput {
  ReleaseAfterMinutes: Int
  Enabled: Boolean
}

input AwsAlexaForBusinessUpdateRoomInput {
  RoomArn: String
  RoomName: String
  Description: String
  ProviderCalendarId: String
  ProfileArn: String
}

input AwsAlexaForBusinessUpdateSkillGroupInput {
  SkillGroupArn: String
  SkillGroupName: String
  Description: String
}

"""Amazon Prometheus Service (2020-08-01)"""
type AwsAmp {
  createWorkspace(input: AwsAmpCreateWorkspaceInput, config: AwsConfig): AwsAmpCreateWorkspaceOutput
  deleteWorkspace(input: AwsAmpDeleteWorkspaceInput!, config: AwsConfig): JSON
  describeWorkspace(input: AwsAmpDescribeWorkspaceInput!, config: AwsConfig): AwsAmpDescribeWorkspaceOutput
  listWorkspaces(input: AwsAmpListWorkspacesInput, config: AwsConfig): AwsAmpListWorkspacesOutput
  updateWorkspaceAlias(input: AwsAmpUpdateWorkspaceAliasInput!, config: AwsConfig): JSON
}

type AwsAmpCreateWorkspaceOutput {
  arn: String!
  status: AwsAmpS6!
  workspaceId: String!
}

type AwsAmpS6 {
  statusCode: String!
}

input AwsAmpCreateWorkspaceInput {
  alias: String
  clientToken: String
}

input AwsAmpDeleteWorkspaceInput {
  clientToken: String
  workspaceId: String!
}

type AwsAmpDescribeWorkspaceOutput {
  workspace: AwsAmpDescribeWorkspaceOutputWorkspace!
}

type AwsAmpDescribeWorkspaceOutputWorkspace {
  alias: String
  arn: String!
  createdAt: Date!
  prometheusEndpoint: String
  status: AwsAmpS6!
  workspaceId: String!
}

input AwsAmpDescribeWorkspaceInput {
  workspaceId: String!
}

type AwsAmpListWorkspacesOutput {
  nextToken: String
  workspaces: [AwsAmpListWorkspacesOutputWorkspaces]!
}

type AwsAmpListWorkspacesOutputWorkspaces {
  alias: String
  arn: String!
  createdAt: Date!
  status: AwsAmpS6!
  workspaceId: String!
}

input AwsAmpListWorkspacesInput {
  alias: String
  maxResults: Int
  nextToken: String
}

input AwsAmpUpdateWorkspaceAliasInput {
  alias: String
  clientToken: String
  workspaceId: String!
}

"""AWS Amplify (2017-07-25)"""
type AwsAmplify {
  createApp(input: AwsAmplifyCreateAppInput!, config: AwsConfig): AwsAmplifyCreateAppOutput
  createBackendEnvironment(input: AwsAmplifyCreateBackendEnvironmentInput!, config: AwsConfig): AwsAmplifyCreateBackendEnvironmentOutput
  createBranch(input: AwsAmplifyCreateBranchInput!, config: AwsConfig): AwsAmplifyCreateBranchOutput
  createDeployment(input: AwsAmplifyCreateDeploymentInput!, config: AwsConfig): AwsAmplifyCreateDeploymentOutput
  createDomainAssociation(input: AwsAmplifyCreateDomainAssociationInput!, config: AwsConfig): AwsAmplifyCreateDomainAssociationOutput
  createWebhook(input: AwsAmplifyCreateWebhookInput!, config: AwsConfig): AwsAmplifyCreateWebhookOutput
  deleteApp(input: AwsAmplifyDeleteAppInput!, config: AwsConfig): AwsAmplifyDeleteAppOutput
  deleteBackendEnvironment(input: AwsAmplifyDeleteBackendEnvironmentInput!, config: AwsConfig): AwsAmplifyDeleteBackendEnvironmentOutput
  deleteBranch(input: AwsAmplifyDeleteBranchInput!, config: AwsConfig): AwsAmplifyDeleteBranchOutput
  deleteDomainAssociation(input: AwsAmplifyDeleteDomainAssociationInput!, config: AwsConfig): AwsAmplifyDeleteDomainAssociationOutput
  deleteJob(input: AwsAmplifyDeleteJobInput!, config: AwsConfig): AwsAmplifyDeleteJobOutput
  deleteWebhook(input: AwsAmplifyDeleteWebhookInput!, config: AwsConfig): AwsAmplifyDeleteWebhookOutput
  generateAccessLogs(input: AwsAmplifyGenerateAccessLogsInput!, config: AwsConfig): AwsAmplifyGenerateAccessLogsOutput
  getApp(input: AwsAmplifyGetAppInput!, config: AwsConfig): AwsAmplifyGetAppOutput
  getArtifactUrl(input: AwsAmplifyGetArtifactUrlInput!, config: AwsConfig): AwsAmplifyGetArtifactUrlOutput
  getBackendEnvironment(input: AwsAmplifyGetBackendEnvironmentInput!, config: AwsConfig): AwsAmplifyGetBackendEnvironmentOutput
  getBranch(input: AwsAmplifyGetBranchInput!, config: AwsConfig): AwsAmplifyGetBranchOutput
  getDomainAssociation(input: AwsAmplifyGetDomainAssociationInput!, config: AwsConfig): AwsAmplifyGetDomainAssociationOutput
  getJob(input: AwsAmplifyGetJobInput!, config: AwsConfig): AwsAmplifyGetJobOutput
  getWebhook(input: AwsAmplifyGetWebhookInput!, config: AwsConfig): AwsAmplifyGetWebhookOutput
  listApps(input: AwsAmplifyListAppsInput, config: AwsConfig): AwsAmplifyListAppsOutput
  listArtifacts(input: AwsAmplifyListArtifactsInput!, config: AwsConfig): AwsAmplifyListArtifactsOutput
  listBackendEnvironments(input: AwsAmplifyListBackendEnvironmentsInput!, config: AwsConfig): AwsAmplifyListBackendEnvironmentsOutput
  listBranches(input: AwsAmplifyListBranchesInput!, config: AwsConfig): AwsAmplifyListBranchesOutput
  listDomainAssociations(input: AwsAmplifyListDomainAssociationsInput!, config: AwsConfig): AwsAmplifyListDomainAssociationsOutput
  listJobs(input: AwsAmplifyListJobsInput!, config: AwsConfig): AwsAmplifyListJobsOutput
  listTagsForResource(input: AwsAmplifyListTagsForResourceInput!, config: AwsConfig): AwsAmplifyListTagsForResourceOutput
  listWebhooks(input: AwsAmplifyListWebhooksInput!, config: AwsConfig): AwsAmplifyListWebhooksOutput
  startDeployment(input: AwsAmplifyStartDeploymentInput!, config: AwsConfig): AwsAmplifyStartDeploymentOutput
  startJob(input: AwsAmplifyStartJobInput!, config: AwsConfig): AwsAmplifyStartJobOutput
  stopJob(input: AwsAmplifyStopJobInput!, config: AwsConfig): AwsAmplifyStopJobOutput
  tagResource(input: AwsAmplifyTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAmplifyUntagResourceInput!, config: AwsConfig): JSON
  updateApp(input: AwsAmplifyUpdateAppInput!, config: AwsConfig): AwsAmplifyUpdateAppOutput
  updateBranch(input: AwsAmplifyUpdateBranchInput!, config: AwsConfig): AwsAmplifyUpdateBranchOutput
  updateDomainAssociation(input: AwsAmplifyUpdateDomainAssociationInput!, config: AwsConfig): AwsAmplifyUpdateDomainAssociationOutput
  updateWebhook(input: AwsAmplifyUpdateWebhookInput!, config: AwsConfig): AwsAmplifyUpdateWebhookOutput
}

type AwsAmplifyCreateAppOutput {
  app: AwsAmplifyS12!
}

type AwsAmplifyS12 {
  appId: String!
  appArn: String!
  name: String!
  tags: JSON
  description: String!
  repository: String!
  platform: String!
  createTime: Date!
  updateTime: Date!
  iamServiceRoleArn: String
  environmentVariables: JSON!
  defaultDomain: String!
  enableBranchAutoBuild: Boolean!
  enableBranchAutoDeletion: Boolean
  enableBasicAuth: Boolean!
  basicAuthCredentials: String
  customRules: [AwsAmplifySg]
  productionBranch: AwsAmplifyS12ProductionBranch
  buildSpec: String
  customHeaders: String
  enableAutoBranchCreation: Boolean
  autoBranchCreationPatterns: [String]
  autoBranchCreationConfig: AwsAmplifySu
}

type AwsAmplifySg {
  source: String!
  target: String!
  status: String
  condition: String
}

type AwsAmplifyS12ProductionBranch {
  lastDeployTime: Date
  status: String
  thumbnailUrl: String
  branchName: String
}

type AwsAmplifySu {
  stage: String
  framework: String
  enableAutoBuild: Boolean
  environmentVariables: JSON
  basicAuthCredentials: String
  enableBasicAuth: Boolean
  enablePerformanceMode: Boolean
  buildSpec: String
  enablePullRequestPreview: Boolean
  pullRequestEnvironmentName: String
}

input AwsAmplifyCreateAppInput {
  name: String!
  description: String
  repository: String
  platform: String
  iamServiceRoleArn: String
  oauthToken: String
  accessToken: String
  environmentVariables: JSON
  enableBranchAutoBuild: Boolean
  enableBranchAutoDeletion: Boolean
  enableBasicAuth: Boolean
  basicAuthCredentials: String
  customRules: [AwsAmplifySgInput]
  tags: JSON
  buildSpec: String
  customHeaders: String
  enableAutoBranchCreation: Boolean
  autoBranchCreationPatterns: [String]
  autoBranchCreationConfig: AwsAmplifySuInput
}

input AwsAmplifySgInput {
  source: String!
  target: String!
  status: String
  condition: String
}

input AwsAmplifySuInput {
  stage: String
  framework: String
  enableAutoBuild: Boolean
  environmentVariables: JSON
  basicAuthCredentials: String
  enableBasicAuth: Boolean
  enablePerformanceMode: Boolean
  buildSpec: String
  enablePullRequestPreview: Boolean
  pullRequestEnvironmentName: String
}

type AwsAmplifyCreateBackendEnvironmentOutput {
  backendEnvironment: AwsAmplifyS1h!
}

type AwsAmplifyS1h {
  backendEnvironmentArn: String!
  environmentName: String!
  stackName: String
  deploymentArtifacts: String
  createTime: Date!
  updateTime: Date!
}

input AwsAmplifyCreateBackendEnvironmentInput {
  appId: String!
  environmentName: String!
  stackName: String
  deploymentArtifacts: String
}

type AwsAmplifyCreateBranchOutput {
  branch: AwsAmplifyS1o!
}

type AwsAmplifyS1o {
  branchArn: String!
  branchName: String!
  description: String!
  tags: JSON
  stage: String!
  displayName: String!
  enableNotification: Boolean!
  createTime: Date!
  updateTime: Date!
  environmentVariables: JSON!
  enableAutoBuild: Boolean!
  customDomains: [String]!
  framework: String!
  activeJobId: String!
  totalNumberOfJobs: String!
  enableBasicAuth: Boolean!
  enablePerformanceMode: Boolean
  thumbnailUrl: String
  basicAuthCredentials: String
  buildSpec: String
  ttl: String!
  associatedResources: [String]
  enablePullRequestPreview: Boolean!
  pullRequestEnvironmentName: String
  destinationBranch: String
  sourceBranch: String
  backendEnvironmentArn: String
}

input AwsAmplifyCreateBranchInput {
  appId: String!
  branchName: String!
  description: String
  stage: String
  framework: String
  enableNotification: Boolean
  enableAutoBuild: Boolean
  environmentVariables: JSON
  basicAuthCredentials: String
  enableBasicAuth: Boolean
  enablePerformanceMode: Boolean
  tags: JSON
  buildSpec: String
  ttl: String
  displayName: String
  enablePullRequestPreview: Boolean
  pullRequestEnvironmentName: String
  backendEnvironmentArn: String
}

type AwsAmplifyCreateDeploymentOutput {
  jobId: String
  fileUploadUrls: JSON!
  zipUploadUrl: String!
}

input AwsAmplifyCreateDeploymentInput {
  appId: String!
  branchName: String!
  fileMap: JSON
}

type AwsAmplifyCreateDomainAssociationOutput {
  domainAssociation: AwsAmplifyS2e!
}

type AwsAmplifyS2e {
  domainAssociationArn: String!
  domainName: String!
  enableAutoSubDomain: Boolean!
  autoSubDomainCreationPatterns: [String]
  autoSubDomainIAMRole: String
  domainStatus: String!
  statusReason: String!
  certificateVerificationDNSRecord: String
  subDomains: [AwsAmplifyS2eSubDomains]!
}

type AwsAmplifyS2eSubDomains {
  subDomainSetting: AwsAmplifyS28!
  verified: Boolean!
  dnsRecord: String!
}

type AwsAmplifyS28 {
  prefix: String!
  branchName: String!
}

input AwsAmplifyCreateDomainAssociationInput {
  appId: String!
  domainName: String!
  enableAutoSubDomain: Boolean
  subDomainSettings: [AwsAmplifyS28Input]!
  autoSubDomainCreationPatterns: [String]
  autoSubDomainIAMRole: String
}

input AwsAmplifyS28Input {
  prefix: String!
  branchName: String!
}

type AwsAmplifyCreateWebhookOutput {
  webhook: AwsAmplifyS2p!
}

type AwsAmplifyS2p {
  webhookArn: String!
  webhookId: String!
  webhookUrl: String!
  branchName: String!
  description: String!
  createTime: Date!
  updateTime: Date!
}

input AwsAmplifyCreateWebhookInput {
  appId: String!
  branchName: String!
  description: String
}

type AwsAmplifyDeleteAppOutput {
  app: AwsAmplifyS12!
}

input AwsAmplifyDeleteAppInput {
  appId: String!
}

type AwsAmplifyDeleteBackendEnvironmentOutput {
  backendEnvironment: AwsAmplifyS1h!
}

input AwsAmplifyDeleteBackendEnvironmentInput {
  appId: String!
  environmentName: String!
}

type AwsAmplifyDeleteBranchOutput {
  branch: AwsAmplifyS1o!
}

input AwsAmplifyDeleteBranchInput {
  appId: String!
  branchName: String!
}

type AwsAmplifyDeleteDomainAssociationOutput {
  domainAssociation: AwsAmplifyS2e!
}

input AwsAmplifyDeleteDomainAssociationInput {
  appId: String!
  domainName: String!
}

type AwsAmplifyDeleteJobOutput {
  jobSummary: AwsAmplifyS33!
}

type AwsAmplifyS33 {
  jobArn: String!
  jobId: String!
  commitId: String!
  commitMessage: String!
  commitTime: Date!
  startTime: Date!
  status: String!
  endTime: Date
  jobType: String!
}

input AwsAmplifyDeleteJobInput {
  appId: String!
  branchName: String!
  jobId: String!
}

type AwsAmplifyDeleteWebhookOutput {
  webhook: AwsAmplifyS2p!
}

input AwsAmplifyDeleteWebhookInput {
  webhookId: String!
}

type AwsAmplifyGenerateAccessLogsOutput {
  logUrl: String
}

input AwsAmplifyGenerateAccessLogsInput {
  startTime: Date
  endTime: Date
  domainName: String!
  appId: String!
}

type AwsAmplifyGetAppOutput {
  app: AwsAmplifyS12!
}

input AwsAmplifyGetAppInput {
  appId: String!
}

type AwsAmplifyGetArtifactUrlOutput {
  artifactId: String!
  artifactUrl: String!
}

input AwsAmplifyGetArtifactUrlInput {
  artifactId: String!
}

type AwsAmplifyGetBackendEnvironmentOutput {
  backendEnvironment: AwsAmplifyS1h!
}

input AwsAmplifyGetBackendEnvironmentInput {
  appId: String!
  environmentName: String!
}

type AwsAmplifyGetBranchOutput {
  branch: AwsAmplifyS1o!
}

input AwsAmplifyGetBranchInput {
  appId: String!
  branchName: String!
}

type AwsAmplifyGetDomainAssociationOutput {
  domainAssociation: AwsAmplifyS2e!
}

input AwsAmplifyGetDomainAssociationInput {
  appId: String!
  domainName: String!
}

type AwsAmplifyGetJobOutput {
  job: AwsAmplifyGetJobOutputJob!
}

type AwsAmplifyGetJobOutputJob {
  summary: AwsAmplifyS33!
  steps: [AwsAmplifyGetJobOutputJobSteps]!
}

type AwsAmplifyGetJobOutputJobSteps {
  stepName: String!
  startTime: Date!
  status: String!
  endTime: Date!
  logUrl: String
  artifactsUrl: String
  testArtifactsUrl: String
  testConfigUrl: String
  screenshots: JSON
  statusReason: String
  context: String
}

input AwsAmplifyGetJobInput {
  appId: String!
  branchName: String!
  jobId: String!
}

type AwsAmplifyGetWebhookOutput {
  webhook: AwsAmplifyS2p!
}

input AwsAmplifyGetWebhookInput {
  webhookId: String!
}

type AwsAmplifyListAppsOutput {
  apps: [AwsAmplifyS12]!
  nextToken: String
}

input AwsAmplifyListAppsInput {
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListArtifactsOutput {
  artifacts: [AwsAmplifyListArtifactsOutputArtifacts]!
  nextToken: String
}

type AwsAmplifyListArtifactsOutputArtifacts {
  artifactFileName: String!
  artifactId: String!
}

input AwsAmplifyListArtifactsInput {
  appId: String!
  branchName: String!
  jobId: String!
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListBackendEnvironmentsOutput {
  backendEnvironments: [AwsAmplifyS1h]!
  nextToken: String
}

input AwsAmplifyListBackendEnvironmentsInput {
  appId: String!
  environmentName: String
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListBranchesOutput {
  branches: [AwsAmplifyS1o]!
  nextToken: String
}

input AwsAmplifyListBranchesInput {
  appId: String!
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListDomainAssociationsOutput {
  domainAssociations: [AwsAmplifyS2e]!
  nextToken: String
}

input AwsAmplifyListDomainAssociationsInput {
  appId: String!
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListJobsOutput {
  jobSummaries: [AwsAmplifyS33]!
  nextToken: String
}

input AwsAmplifyListJobsInput {
  appId: String!
  branchName: String!
  nextToken: String
  maxResults: Int
}

type AwsAmplifyListTagsForResourceOutput {
  tags: JSON
}

input AwsAmplifyListTagsForResourceInput {
  resourceArn: String!
}

type AwsAmplifyListWebhooksOutput {
  webhooks: [AwsAmplifyS2p]!
  nextToken: String
}

input AwsAmplifyListWebhooksInput {
  appId: String!
  nextToken: String
  maxResults: Int
}

type AwsAmplifyStartDeploymentOutput {
  jobSummary: AwsAmplifyS33!
}

input AwsAmplifyStartDeploymentInput {
  appId: String!
  branchName: String!
  jobId: String
  sourceUrl: String
}

type AwsAmplifyStartJobOutput {
  jobSummary: AwsAmplifyS33!
}

input AwsAmplifyStartJobInput {
  appId: String!
  branchName: String!
  jobId: String
  jobType: String!
  jobReason: String
  commitId: String
  commitMessage: String
  commitTime: Date
}

type AwsAmplifyStopJobOutput {
  jobSummary: AwsAmplifyS33!
}

input AwsAmplifyStopJobInput {
  appId: String!
  branchName: String!
  jobId: String!
}

input AwsAmplifyTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAmplifyUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsAmplifyUpdateAppOutput {
  app: AwsAmplifyS12!
}

input AwsAmplifyUpdateAppInput {
  appId: String!
  name: String
  description: String
  platform: String
  iamServiceRoleArn: String
  environmentVariables: JSON
  enableBranchAutoBuild: Boolean
  enableBranchAutoDeletion: Boolean
  enableBasicAuth: Boolean
  basicAuthCredentials: String
  customRules: [AwsAmplifySgInput]
  buildSpec: String
  customHeaders: String
  enableAutoBranchCreation: Boolean
  autoBranchCreationPatterns: [String]
  autoBranchCreationConfig: AwsAmplifySuInput
  repository: String
  oauthToken: String
  accessToken: String
}

type AwsAmplifyUpdateBranchOutput {
  branch: AwsAmplifyS1o!
}

input AwsAmplifyUpdateBranchInput {
  appId: String!
  branchName: String!
  description: String
  framework: String
  stage: String
  enableNotification: Boolean
  enableAutoBuild: Boolean
  environmentVariables: JSON
  basicAuthCredentials: String
  enableBasicAuth: Boolean
  enablePerformanceMode: Boolean
  buildSpec: String
  ttl: String
  displayName: String
  enablePullRequestPreview: Boolean
  pullRequestEnvironmentName: String
  backendEnvironmentArn: String
}

type AwsAmplifyUpdateDomainAssociationOutput {
  domainAssociation: AwsAmplifyS2e!
}

input AwsAmplifyUpdateDomainAssociationInput {
  appId: String!
  domainName: String!
  enableAutoSubDomain: Boolean
  subDomainSettings: [AwsAmplifyS28Input]!
  autoSubDomainCreationPatterns: [String]
  autoSubDomainIAMRole: String
}

type AwsAmplifyUpdateWebhookOutput {
  webhook: AwsAmplifyS2p!
}

input AwsAmplifyUpdateWebhookInput {
  webhookId: String!
  branchName: String
  description: String
}

"""AmplifyBackend (2020-08-11)"""
type AwsAmplifyBackend {
  cloneBackend(input: AwsAmplifyBackendCloneBackendInput!, config: AwsConfig): AwsAmplifyBackendCloneBackendOutput
  createBackend(input: AwsAmplifyBackendCreateBackendInput!, config: AwsConfig): AwsAmplifyBackendCreateBackendOutput
  createBackendAPI(input: AwsAmplifyBackendCreateBackendAPIInput!, config: AwsConfig): AwsAmplifyBackendCreateBackendAPIOutput
  createBackendAuth(input: AwsAmplifyBackendCreateBackendAuthInput!, config: AwsConfig): AwsAmplifyBackendCreateBackendAuthOutput
  createBackendConfig(input: AwsAmplifyBackendCreateBackendConfigInput!, config: AwsConfig): AwsAmplifyBackendCreateBackendConfigOutput
  createToken(input: AwsAmplifyBackendCreateTokenInput!, config: AwsConfig): AwsAmplifyBackendCreateTokenOutput
  deleteBackend(input: AwsAmplifyBackendDeleteBackendInput!, config: AwsConfig): AwsAmplifyBackendDeleteBackendOutput
  deleteBackendAPI(input: AwsAmplifyBackendDeleteBackendAPIInput!, config: AwsConfig): AwsAmplifyBackendDeleteBackendAPIOutput
  deleteBackendAuth(input: AwsAmplifyBackendDeleteBackendAuthInput!, config: AwsConfig): AwsAmplifyBackendDeleteBackendAuthOutput
  deleteToken(input: AwsAmplifyBackendDeleteTokenInput!, config: AwsConfig): AwsAmplifyBackendDeleteTokenOutput
  generateBackendAPIModels(input: AwsAmplifyBackendGenerateBackendAPIModelsInput!, config: AwsConfig): AwsAmplifyBackendGenerateBackendAPIModelsOutput
  getBackend(input: AwsAmplifyBackendGetBackendInput!, config: AwsConfig): AwsAmplifyBackendGetBackendOutput
  getBackendAPI(input: AwsAmplifyBackendGetBackendAPIInput!, config: AwsConfig): AwsAmplifyBackendGetBackendAPIOutput
  getBackendAPIModels(input: AwsAmplifyBackendGetBackendAPIModelsInput!, config: AwsConfig): AwsAmplifyBackendGetBackendAPIModelsOutput
  getBackendAuth(input: AwsAmplifyBackendGetBackendAuthInput!, config: AwsConfig): AwsAmplifyBackendGetBackendAuthOutput
  getBackendJob(input: AwsAmplifyBackendGetBackendJobInput!, config: AwsConfig): AwsAmplifyBackendGetBackendJobOutput
  getToken(input: AwsAmplifyBackendGetTokenInput!, config: AwsConfig): AwsAmplifyBackendGetTokenOutput
  importBackendAuth(input: AwsAmplifyBackendImportBackendAuthInput!, config: AwsConfig): AwsAmplifyBackendImportBackendAuthOutput
  listBackendJobs(input: AwsAmplifyBackendListBackendJobsInput!, config: AwsConfig): AwsAmplifyBackendListBackendJobsOutput
  removeAllBackends(input: AwsAmplifyBackendRemoveAllBackendsInput!, config: AwsConfig): AwsAmplifyBackendRemoveAllBackendsOutput
  removeBackendConfig(input: AwsAmplifyBackendRemoveBackendConfigInput!, config: AwsConfig): AwsAmplifyBackendRemoveBackendConfigOutput
  updateBackendAPI(input: AwsAmplifyBackendUpdateBackendAPIInput!, config: AwsConfig): AwsAmplifyBackendUpdateBackendAPIOutput
  updateBackendAuth(input: AwsAmplifyBackendUpdateBackendAuthInput!, config: AwsConfig): AwsAmplifyBackendUpdateBackendAuthOutput
  updateBackendConfig(input: AwsAmplifyBackendUpdateBackendConfigInput!, config: AwsConfig): AwsAmplifyBackendUpdateBackendConfigOutput
  updateBackendJob(input: AwsAmplifyBackendUpdateBackendJobInput!, config: AwsConfig): AwsAmplifyBackendUpdateBackendJobOutput
}

type AwsAmplifyBackendCloneBackendOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendCloneBackendInput {
  AppId: String!
  BackendEnvironmentName: String!
  TargetEnvironmentName: String!
}

type AwsAmplifyBackendCreateBackendOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendCreateBackendInput {
  AppId: String!
  AppName: String!
  BackendEnvironmentName: String!
  ResourceConfig: JSON
  ResourceName: String
}

type AwsAmplifyBackendCreateBackendAPIOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendCreateBackendAPIInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendS8Input!
  ResourceName: String!
}

input AwsAmplifyBackendS8Input {
  AdditionalAuthTypes: [AwsAmplifyBackendSaInput]
  ApiName: String
  ConflictResolution: AwsAmplifyBackendS8ConflictResolutionInput
  DefaultAuthType: AwsAmplifyBackendSaInput
  Service: String
  TransformSchema: String
}

input AwsAmplifyBackendSaInput {
  Mode: String
  Settings: AwsAmplifyBackendSaSettingsInput
}

input AwsAmplifyBackendSaSettingsInput {
  CognitoUserPoolId: String
  Description: String
  ExpirationTime: JSON
  OpenIDAuthTTL: String
  OpenIDClientId: String
  OpenIDIatTTL: String
  OpenIDIssueURL: String
  OpenIDProviderName: String
}

input AwsAmplifyBackendS8ConflictResolutionInput {
  ResolutionStrategy: String
}

type AwsAmplifyBackendCreateBackendAuthOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendCreateBackendAuthInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendSiInput!
  ResourceName: String!
}

input AwsAmplifyBackendSiInput {
  AuthResources: String!
  IdentityPoolConfigs: AwsAmplifyBackendSiIdentityPoolConfigsInput
  Service: String!
  UserPoolConfigs: AwsAmplifyBackendSiUserPoolConfigsInput!
}

input AwsAmplifyBackendSiIdentityPoolConfigsInput {
  IdentityPoolName: String!
  UnauthenticatedLogin: Boolean!
}

input AwsAmplifyBackendSiUserPoolConfigsInput {
  ForgotPassword: AwsAmplifyBackendSiUserPoolConfigsForgotPasswordInput
  Mfa: AwsAmplifyBackendSiUserPoolConfigsMfaInput
  OAuth: AwsAmplifyBackendSiUserPoolConfigsOAuthInput
  PasswordPolicy: AwsAmplifyBackendSiUserPoolConfigsPasswordPolicyInput
  RequiredSignUpAttributes: [String]!
  SignInMethod: String!
  UserPoolName: String!
}

input AwsAmplifyBackendSiUserPoolConfigsForgotPasswordInput {
  DeliveryMethod: String!
  EmailSettings: AwsAmplifyBackendSqInput
  SmsSettings: AwsAmplifyBackendSrInput
}

input AwsAmplifyBackendSqInput {
  EmailMessage: String
  EmailSubject: String
}

input AwsAmplifyBackendSrInput {
  SmsMessage: String
}

input AwsAmplifyBackendSiUserPoolConfigsMfaInput {
  MFAMode: String!
  Settings: AwsAmplifyBackendSuInput
}

input AwsAmplifyBackendSuInput {
  MfaTypes: [String]
  SmsMessage: String
}

input AwsAmplifyBackendSiUserPoolConfigsOAuthInput {
  DomainPrefix: String
  OAuthGrantType: String!
  OAuthScopes: [String]!
  RedirectSignInURIs: [String]!
  RedirectSignOutURIs: [String]!
  SocialProviderSettings: AwsAmplifyBackendS12Input
}

input AwsAmplifyBackendS12Input {
  Facebook: AwsAmplifyBackendS13Input
  Google: AwsAmplifyBackendS13Input
  LoginWithAmazon: AwsAmplifyBackendS13Input
}

input AwsAmplifyBackendS13Input {
  ClientId: String
  ClientSecret: String
}

input AwsAmplifyBackendSiUserPoolConfigsPasswordPolicyInput {
  AdditionalConstraints: [String]
  MinimumLength: JSON!
}

type AwsAmplifyBackendCreateBackendConfigOutput {
  AppId: String
  BackendEnvironmentName: String
  JobId: String
  Status: String
}

input AwsAmplifyBackendCreateBackendConfigInput {
  AppId: String!
  BackendManagerAppId: String
}

type AwsAmplifyBackendCreateTokenOutput {
  AppId: String
  ChallengeCode: String
  SessionId: String
  Ttl: String
}

input AwsAmplifyBackendCreateTokenInput {
  AppId: String!
}

type AwsAmplifyBackendDeleteBackendOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendDeleteBackendInput {
  AppId: String!
  BackendEnvironmentName: String!
}

type AwsAmplifyBackendDeleteBackendAPIOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendDeleteBackendAPIInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendS8Input
  ResourceName: String!
}

type AwsAmplifyBackendDeleteBackendAuthOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendDeleteBackendAuthInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceName: String!
}

type AwsAmplifyBackendDeleteTokenOutput {
  IsSuccess: Boolean
}

input AwsAmplifyBackendDeleteTokenInput {
  AppId: String!
  SessionId: String!
}

type AwsAmplifyBackendGenerateBackendAPIModelsOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendGenerateBackendAPIModelsInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceName: String!
}

type AwsAmplifyBackendGetBackendOutput {
  AmplifyMetaConfig: String
  AppId: String
  AppName: String
  BackendEnvironmentList: [String]
  BackendEnvironmentName: String
  Error: String
}

input AwsAmplifyBackendGetBackendInput {
  AppId: String!
  BackendEnvironmentName: String
}

type AwsAmplifyBackendGetBackendAPIOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  ResourceConfig: AwsAmplifyBackendS8
  ResourceName: String
}

type AwsAmplifyBackendS8 {
  AdditionalAuthTypes: [AwsAmplifyBackendSa]
  ApiName: String
  ConflictResolution: AwsAmplifyBackendS8ConflictResolution
  DefaultAuthType: AwsAmplifyBackendSa
  Service: String
  TransformSchema: String
}

type AwsAmplifyBackendSa {
  Mode: String
  Settings: AwsAmplifyBackendSaSettings
}

type AwsAmplifyBackendSaSettings {
  CognitoUserPoolId: String
  Description: String
  ExpirationTime: JSON
  OpenIDAuthTTL: String
  OpenIDClientId: String
  OpenIDIatTTL: String
  OpenIDIssueURL: String
  OpenIDProviderName: String
}

type AwsAmplifyBackendS8ConflictResolution {
  ResolutionStrategy: String
}

input AwsAmplifyBackendGetBackendAPIInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendS8Input
  ResourceName: String!
}

type AwsAmplifyBackendGetBackendAPIModelsOutput {
  Models: String
  Status: String
}

input AwsAmplifyBackendGetBackendAPIModelsInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceName: String!
}

type AwsAmplifyBackendGetBackendAuthOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  ResourceConfig: AwsAmplifyBackendSi
  ResourceName: String
}

type AwsAmplifyBackendSi {
  AuthResources: String!
  IdentityPoolConfigs: AwsAmplifyBackendSiIdentityPoolConfigs
  Service: String!
  UserPoolConfigs: AwsAmplifyBackendSiUserPoolConfigs!
}

type AwsAmplifyBackendSiIdentityPoolConfigs {
  IdentityPoolName: String!
  UnauthenticatedLogin: Boolean!
}

type AwsAmplifyBackendSiUserPoolConfigs {
  ForgotPassword: AwsAmplifyBackendSiUserPoolConfigsForgotPassword
  Mfa: AwsAmplifyBackendSiUserPoolConfigsMfa
  OAuth: AwsAmplifyBackendSiUserPoolConfigsOAuth
  PasswordPolicy: AwsAmplifyBackendSiUserPoolConfigsPasswordPolicy
  RequiredSignUpAttributes: [String]!
  SignInMethod: String!
  UserPoolName: String!
}

type AwsAmplifyBackendSiUserPoolConfigsForgotPassword {
  DeliveryMethod: String!
  EmailSettings: AwsAmplifyBackendSq
  SmsSettings: AwsAmplifyBackendSr
}

type AwsAmplifyBackendSq {
  EmailMessage: String
  EmailSubject: String
}

type AwsAmplifyBackendSr {
  SmsMessage: String
}

type AwsAmplifyBackendSiUserPoolConfigsMfa {
  MFAMode: String!
  Settings: AwsAmplifyBackendSu
}

type AwsAmplifyBackendSu {
  MfaTypes: [String]
  SmsMessage: String
}

type AwsAmplifyBackendSiUserPoolConfigsOAuth {
  DomainPrefix: String
  OAuthGrantType: String!
  OAuthScopes: [String]!
  RedirectSignInURIs: [String]!
  RedirectSignOutURIs: [String]!
  SocialProviderSettings: AwsAmplifyBackendS12
}

type AwsAmplifyBackendS12 {
  Facebook: AwsAmplifyBackendS13
  Google: AwsAmplifyBackendS13
  LoginWithAmazon: AwsAmplifyBackendS13
}

type AwsAmplifyBackendS13 {
  ClientId: String
  ClientSecret: String
}

type AwsAmplifyBackendSiUserPoolConfigsPasswordPolicy {
  AdditionalConstraints: [String]
  MinimumLength: JSON!
}

input AwsAmplifyBackendGetBackendAuthInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceName: String!
}

type AwsAmplifyBackendGetBackendJobOutput {
  AppId: String
  BackendEnvironmentName: String
  CreateTime: String
  Error: String
  JobId: String
  Operation: String
  Status: String
  UpdateTime: String
}

input AwsAmplifyBackendGetBackendJobInput {
  AppId: String!
  BackendEnvironmentName: String!
  JobId: String!
}

type AwsAmplifyBackendGetTokenOutput {
  AppId: String
  ChallengeCode: String
  SessionId: String
  Ttl: String
}

input AwsAmplifyBackendGetTokenInput {
  AppId: String!
  SessionId: String!
}

type AwsAmplifyBackendImportBackendAuthOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendImportBackendAuthInput {
  AppId: String!
  BackendEnvironmentName: String!
  IdentityPoolId: String
  NativeClientId: String!
  UserPoolId: String!
  WebClientId: String!
}

type AwsAmplifyBackendListBackendJobsOutput {
  Jobs: [AwsAmplifyBackendListBackendJobsOutputJobs]
  NextToken: String
}

type AwsAmplifyBackendListBackendJobsOutputJobs {
  AppId: String!
  BackendEnvironmentName: String!
  CreateTime: String
  Error: String
  JobId: String
  Operation: String
  Status: String
  UpdateTime: String
}

input AwsAmplifyBackendListBackendJobsInput {
  AppId: String!
  BackendEnvironmentName: String!
  JobId: String
  MaxResults: Int
  NextToken: String
  Operation: String
  Status: String
}

type AwsAmplifyBackendRemoveAllBackendsOutput {
  AppId: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendRemoveAllBackendsInput {
  AppId: String!
  CleanAmplifyApp: Boolean
}

type AwsAmplifyBackendRemoveBackendConfigOutput {
  Error: String
}

input AwsAmplifyBackendRemoveBackendConfigInput {
  AppId: String!
}

type AwsAmplifyBackendUpdateBackendAPIOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendUpdateBackendAPIInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendS8Input
  ResourceName: String!
}

type AwsAmplifyBackendUpdateBackendAuthOutput {
  AppId: String
  BackendEnvironmentName: String
  Error: String
  JobId: String
  Operation: String
  Status: String
}

input AwsAmplifyBackendUpdateBackendAuthInput {
  AppId: String!
  BackendEnvironmentName: String!
  ResourceConfig: AwsAmplifyBackendUpdateBackendAuthResourceConfigInput!
  ResourceName: String!
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigInput {
  AuthResources: String!
  IdentityPoolConfigs: AwsAmplifyBackendUpdateBackendAuthResourceConfigIdentityPoolConfigsInput
  Service: String!
  UserPoolConfigs: AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsInput!
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigIdentityPoolConfigsInput {
  UnauthenticatedLogin: Boolean
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsInput {
  ForgotPassword: AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsForgotPasswordInput
  Mfa: AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsMfaInput
  OAuth: AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsOAuthInput
  PasswordPolicy: AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsPasswordPolicyInput
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsForgotPasswordInput {
  DeliveryMethod: String
  EmailSettings: AwsAmplifyBackendSqInput
  SmsSettings: AwsAmplifyBackendSrInput
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsMfaInput {
  MFAMode: String
  Settings: AwsAmplifyBackendSuInput
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsOAuthInput {
  DomainPrefix: String
  OAuthGrantType: String
  OAuthScopes: [String]
  RedirectSignInURIs: [String]
  RedirectSignOutURIs: [String]
  SocialProviderSettings: AwsAmplifyBackendS12Input
}

input AwsAmplifyBackendUpdateBackendAuthResourceConfigUserPoolConfigsPasswordPolicyInput {
  AdditionalConstraints: [String]
  MinimumLength: JSON
}

type AwsAmplifyBackendUpdateBackendConfigOutput {
  AppId: String
  BackendManagerAppId: String
  Error: String
  LoginAuthConfig: AwsAmplifyBackendS2p
}

type AwsAmplifyBackendS2p {
  AwsCognitoIdentityPoolId: String
  AwsCognitoRegion: String
  AwsUserPoolsId: String
  AwsUserPoolsWebClientId: String
}

input AwsAmplifyBackendUpdateBackendConfigInput {
  AppId: String!
  LoginAuthConfig: AwsAmplifyBackendS2pInput
}

input AwsAmplifyBackendS2pInput {
  AwsCognitoIdentityPoolId: String
  AwsCognitoRegion: String
  AwsUserPoolsId: String
  AwsUserPoolsWebClientId: String
}

type AwsAmplifyBackendUpdateBackendJobOutput {
  AppId: String
  BackendEnvironmentName: String
  CreateTime: String
  Error: String
  JobId: String
  Operation: String
  Status: String
  UpdateTime: String
}

input AwsAmplifyBackendUpdateBackendJobInput {
  AppId: String!
  BackendEnvironmentName: String!
  JobId: String!
  Operation: String
  Status: String
}

"""AmazonApiGatewayManagementApi (2018-11-29)"""
type AwsApiGatewayManagementApi {
  deleteConnection(input: AwsApiGatewayManagementApiDeleteConnectionInput!, config: AwsConfig): JSON
  getConnection(input: AwsApiGatewayManagementApiGetConnectionInput!, config: AwsConfig): AwsApiGatewayManagementApiGetConnectionOutput
  postToConnection(input: AwsApiGatewayManagementApiPostToConnectionInput!, config: AwsConfig): JSON
}

input AwsApiGatewayManagementApiDeleteConnectionInput {
  ConnectionId: String!
}

type AwsApiGatewayManagementApiGetConnectionOutput {
  ConnectedAt: Date
  Identity: AwsApiGatewayManagementApiGetConnectionOutputIdentity
  LastActiveAt: Date
}

type AwsApiGatewayManagementApiGetConnectionOutputIdentity {
  SourceIp: String!
  UserAgent: String!
}

input AwsApiGatewayManagementApiGetConnectionInput {
  ConnectionId: String!
}

input AwsApiGatewayManagementApiPostToConnectionInput {
  Data: JSON!
  ConnectionId: String!
}

"""AmazonApiGatewayV2 (2018-11-29)"""
type AwsApiGatewayV2 {
  createApi(input: AwsApiGatewayV2CreateApiInput!, config: AwsConfig): AwsApiGatewayV2CreateApiOutput
  createApiMapping(input: AwsApiGatewayV2CreateApiMappingInput!, config: AwsConfig): AwsApiGatewayV2CreateApiMappingOutput
  createAuthorizer(input: AwsApiGatewayV2CreateAuthorizerInput!, config: AwsConfig): AwsApiGatewayV2CreateAuthorizerOutput
  createDeployment(input: AwsApiGatewayV2CreateDeploymentInput!, config: AwsConfig): AwsApiGatewayV2CreateDeploymentOutput
  createDomainName(input: AwsApiGatewayV2CreateDomainNameInput!, config: AwsConfig): AwsApiGatewayV2CreateDomainNameOutput
  createIntegration(input: AwsApiGatewayV2CreateIntegrationInput!, config: AwsConfig): AwsApiGatewayV2CreateIntegrationOutput
  createIntegrationResponse(input: AwsApiGatewayV2CreateIntegrationResponseInput!, config: AwsConfig): AwsApiGatewayV2CreateIntegrationResponseOutput
  createModel(input: AwsApiGatewayV2CreateModelInput!, config: AwsConfig): AwsApiGatewayV2CreateModelOutput
  createRoute(input: AwsApiGatewayV2CreateRouteInput!, config: AwsConfig): AwsApiGatewayV2CreateRouteOutput
  createRouteResponse(input: AwsApiGatewayV2CreateRouteResponseInput!, config: AwsConfig): AwsApiGatewayV2CreateRouteResponseOutput
  createStage(input: AwsApiGatewayV2CreateStageInput!, config: AwsConfig): AwsApiGatewayV2CreateStageOutput
  createVpcLink(input: AwsApiGatewayV2CreateVpcLinkInput!, config: AwsConfig): AwsApiGatewayV2CreateVpcLinkOutput
  deleteAccessLogSettings(input: AwsApiGatewayV2DeleteAccessLogSettingsInput!, config: AwsConfig): JSON
  deleteApi(input: AwsApiGatewayV2DeleteApiInput!, config: AwsConfig): JSON
  deleteApiMapping(input: AwsApiGatewayV2DeleteApiMappingInput!, config: AwsConfig): JSON
  deleteAuthorizer(input: AwsApiGatewayV2DeleteAuthorizerInput!, config: AwsConfig): JSON
  deleteCorsConfiguration(input: AwsApiGatewayV2DeleteCorsConfigurationInput!, config: AwsConfig): JSON
  deleteDeployment(input: AwsApiGatewayV2DeleteDeploymentInput!, config: AwsConfig): JSON
  deleteDomainName(input: AwsApiGatewayV2DeleteDomainNameInput!, config: AwsConfig): JSON
  deleteIntegration(input: AwsApiGatewayV2DeleteIntegrationInput!, config: AwsConfig): JSON
  deleteIntegrationResponse(input: AwsApiGatewayV2DeleteIntegrationResponseInput!, config: AwsConfig): JSON
  deleteModel(input: AwsApiGatewayV2DeleteModelInput!, config: AwsConfig): JSON
  deleteRoute(input: AwsApiGatewayV2DeleteRouteInput!, config: AwsConfig): JSON
  deleteRouteRequestParameter(input: AwsApiGatewayV2DeleteRouteRequestParameterInput!, config: AwsConfig): JSON
  deleteRouteResponse(input: AwsApiGatewayV2DeleteRouteResponseInput!, config: AwsConfig): JSON
  deleteRouteSettings(input: AwsApiGatewayV2DeleteRouteSettingsInput!, config: AwsConfig): JSON
  deleteStage(input: AwsApiGatewayV2DeleteStageInput!, config: AwsConfig): JSON
  deleteVpcLink(input: AwsApiGatewayV2DeleteVpcLinkInput!, config: AwsConfig): JSON
  exportApi(input: AwsApiGatewayV2ExportApiInput!, config: AwsConfig): AwsApiGatewayV2ExportApiOutput
  resetAuthorizersCache(input: AwsApiGatewayV2ResetAuthorizersCacheInput!, config: AwsConfig): JSON
  getApi(input: AwsApiGatewayV2GetApiInput!, config: AwsConfig): AwsApiGatewayV2GetApiOutput
  getApiMapping(input: AwsApiGatewayV2GetApiMappingInput!, config: AwsConfig): AwsApiGatewayV2GetApiMappingOutput
  getApiMappings(input: AwsApiGatewayV2GetApiMappingsInput!, config: AwsConfig): AwsApiGatewayV2GetApiMappingsOutput
  getApis(input: AwsApiGatewayV2GetApisInput, config: AwsConfig): AwsApiGatewayV2GetApisOutput
  getAuthorizer(input: AwsApiGatewayV2GetAuthorizerInput!, config: AwsConfig): AwsApiGatewayV2GetAuthorizerOutput
  getAuthorizers(input: AwsApiGatewayV2GetAuthorizersInput!, config: AwsConfig): AwsApiGatewayV2GetAuthorizersOutput
  getDeployment(input: AwsApiGatewayV2GetDeploymentInput!, config: AwsConfig): AwsApiGatewayV2GetDeploymentOutput
  getDeployments(input: AwsApiGatewayV2GetDeploymentsInput!, config: AwsConfig): AwsApiGatewayV2GetDeploymentsOutput
  getDomainName(input: AwsApiGatewayV2GetDomainNameInput!, config: AwsConfig): AwsApiGatewayV2GetDomainNameOutput
  getDomainNames(input: AwsApiGatewayV2GetDomainNamesInput, config: AwsConfig): AwsApiGatewayV2GetDomainNamesOutput
  getIntegration(input: AwsApiGatewayV2GetIntegrationInput!, config: AwsConfig): AwsApiGatewayV2GetIntegrationOutput
  getIntegrationResponse(input: AwsApiGatewayV2GetIntegrationResponseInput!, config: AwsConfig): AwsApiGatewayV2GetIntegrationResponseOutput
  getIntegrationResponses(input: AwsApiGatewayV2GetIntegrationResponsesInput!, config: AwsConfig): AwsApiGatewayV2GetIntegrationResponsesOutput
  getIntegrations(input: AwsApiGatewayV2GetIntegrationsInput!, config: AwsConfig): AwsApiGatewayV2GetIntegrationsOutput
  getModel(input: AwsApiGatewayV2GetModelInput!, config: AwsConfig): AwsApiGatewayV2GetModelOutput
  getModelTemplate(input: AwsApiGatewayV2GetModelTemplateInput!, config: AwsConfig): AwsApiGatewayV2GetModelTemplateOutput
  getModels(input: AwsApiGatewayV2GetModelsInput!, config: AwsConfig): AwsApiGatewayV2GetModelsOutput
  getRoute(input: AwsApiGatewayV2GetRouteInput!, config: AwsConfig): AwsApiGatewayV2GetRouteOutput
  getRouteResponse(input: AwsApiGatewayV2GetRouteResponseInput!, config: AwsConfig): AwsApiGatewayV2GetRouteResponseOutput
  getRouteResponses(input: AwsApiGatewayV2GetRouteResponsesInput!, config: AwsConfig): AwsApiGatewayV2GetRouteResponsesOutput
  getRoutes(input: AwsApiGatewayV2GetRoutesInput!, config: AwsConfig): AwsApiGatewayV2GetRoutesOutput
  getStage(input: AwsApiGatewayV2GetStageInput!, config: AwsConfig): AwsApiGatewayV2GetStageOutput
  getStages(input: AwsApiGatewayV2GetStagesInput!, config: AwsConfig): AwsApiGatewayV2GetStagesOutput
  getTags(input: AwsApiGatewayV2GetTagsInput!, config: AwsConfig): AwsApiGatewayV2GetTagsOutput
  getVpcLink(input: AwsApiGatewayV2GetVpcLinkInput!, config: AwsConfig): AwsApiGatewayV2GetVpcLinkOutput
  getVpcLinks(input: AwsApiGatewayV2GetVpcLinksInput, config: AwsConfig): AwsApiGatewayV2GetVpcLinksOutput
  importApi(input: AwsApiGatewayV2ImportApiInput!, config: AwsConfig): AwsApiGatewayV2ImportApiOutput
  reimportApi(input: AwsApiGatewayV2ReimportApiInput!, config: AwsConfig): AwsApiGatewayV2ReimportApiOutput
  tagResource(input: AwsApiGatewayV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsApiGatewayV2UntagResourceInput!, config: AwsConfig): JSON
  updateApi(input: AwsApiGatewayV2UpdateApiInput!, config: AwsConfig): AwsApiGatewayV2UpdateApiOutput
  updateApiMapping(input: AwsApiGatewayV2UpdateApiMappingInput!, config: AwsConfig): AwsApiGatewayV2UpdateApiMappingOutput
  updateAuthorizer(input: AwsApiGatewayV2UpdateAuthorizerInput!, config: AwsConfig): AwsApiGatewayV2UpdateAuthorizerOutput
  updateDeployment(input: AwsApiGatewayV2UpdateDeploymentInput!, config: AwsConfig): AwsApiGatewayV2UpdateDeploymentOutput
  updateDomainName(input: AwsApiGatewayV2UpdateDomainNameInput!, config: AwsConfig): AwsApiGatewayV2UpdateDomainNameOutput
  updateIntegration(input: AwsApiGatewayV2UpdateIntegrationInput!, config: AwsConfig): AwsApiGatewayV2UpdateIntegrationOutput
  updateIntegrationResponse(input: AwsApiGatewayV2UpdateIntegrationResponseInput!, config: AwsConfig): AwsApiGatewayV2UpdateIntegrationResponseOutput
  updateModel(input: AwsApiGatewayV2UpdateModelInput!, config: AwsConfig): AwsApiGatewayV2UpdateModelOutput
  updateRoute(input: AwsApiGatewayV2UpdateRouteInput!, config: AwsConfig): AwsApiGatewayV2UpdateRouteOutput
  updateRouteResponse(input: AwsApiGatewayV2UpdateRouteResponseInput!, config: AwsConfig): AwsApiGatewayV2UpdateRouteResponseOutput
  updateStage(input: AwsApiGatewayV2UpdateStageInput!, config: AwsConfig): AwsApiGatewayV2UpdateStageOutput
  updateVpcLink(input: AwsApiGatewayV2UpdateVpcLinkInput!, config: AwsConfig): AwsApiGatewayV2UpdateVpcLinkOutput
}

type AwsApiGatewayV2CreateApiOutput {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  Tags: JSON
  Version: String
  Warnings: [String]
}

type AwsApiGatewayV2S3 {
  AllowCredentials: Boolean
  AllowHeaders: [String]
  AllowMethods: [String]
  AllowOrigins: [String]
  ExposeHeaders: [String]
  MaxAge: Int
}

input AwsApiGatewayV2CreateApiInput {
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3Input
  CredentialsArn: String
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  Name: String!
  ProtocolType: String!
  RouteKey: String
  RouteSelectionExpression: String
  Tags: JSON
  Target: String
  Version: String
}

input AwsApiGatewayV2S3Input {
  AllowCredentials: Boolean
  AllowHeaders: [String]
  AllowMethods: [String]
  AllowOrigins: [String]
  ExposeHeaders: [String]
  MaxAge: Int
}

type AwsApiGatewayV2CreateApiMappingOutput {
  ApiId: String
  ApiMappingId: String
  ApiMappingKey: String
  Stage: String
}

input AwsApiGatewayV2CreateApiMappingInput {
  ApiId: String!
  ApiMappingKey: String
  DomainName: String!
  Stage: String!
}

type AwsApiGatewayV2CreateAuthorizerOutput {
  AuthorizerCredentialsArn: String
  AuthorizerId: String
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2St
  Name: String
}

type AwsApiGatewayV2St {
  Audience: [String]
  Issuer: String
}

input AwsApiGatewayV2CreateAuthorizerInput {
  ApiId: String!
  AuthorizerCredentialsArn: String
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String!
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]!
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2StInput
  Name: String!
}

input AwsApiGatewayV2StInput {
  Audience: [String]
  Issuer: String
}

type AwsApiGatewayV2CreateDeploymentOutput {
  AutoDeployed: Boolean
  CreatedDate: Date
  DeploymentId: String
  DeploymentStatus: String
  DeploymentStatusMessage: String
  Description: String
}

input AwsApiGatewayV2CreateDeploymentInput {
  ApiId: String!
  Description: String
  StageName: String
}

type AwsApiGatewayV2CreateDomainNameOutput {
  ApiMappingSelectionExpression: String
  DomainName: String
  DomainNameConfigurations: [AwsApiGatewayV2S10]
  MutualTlsAuthentication: AwsApiGatewayV2S17
  Tags: JSON
}

type AwsApiGatewayV2S10 {
  ApiGatewayDomainName: String
  CertificateArn: String
  CertificateName: String
  CertificateUploadDate: Date
  DomainNameStatus: String
  DomainNameStatusMessage: String
  EndpointType: String
  HostedZoneId: String
  SecurityPolicy: String
}

type AwsApiGatewayV2S17 {
  TruststoreUri: String
  TruststoreVersion: String
  TruststoreWarnings: [String]
}

input AwsApiGatewayV2CreateDomainNameInput {
  DomainName: String!
  DomainNameConfigurations: [AwsApiGatewayV2S10Input]
  MutualTlsAuthentication: AwsApiGatewayV2S15Input
  Tags: JSON
}

input AwsApiGatewayV2S10Input {
  ApiGatewayDomainName: String
  CertificateArn: String
  CertificateName: String
  CertificateUploadDate: Date
  DomainNameStatus: String
  DomainNameStatusMessage: String
  EndpointType: String
  HostedZoneId: String
  SecurityPolicy: String
}

input AwsApiGatewayV2S15Input {
  TruststoreUri: String
  TruststoreVersion: String
}

type AwsApiGatewayV2CreateIntegrationOutput {
  ApiGatewayManaged: Boolean
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationId: String
  IntegrationMethod: String
  IntegrationResponseSelectionExpression: String
  IntegrationSubtype: String
  IntegrationType: String
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1l
}

type AwsApiGatewayV2S1l {
  ServerNameToVerify: String
}

input AwsApiGatewayV2CreateIntegrationInput {
  ApiId: String!
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationMethod: String
  IntegrationSubtype: String
  IntegrationType: String!
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1jInput
}

input AwsApiGatewayV2S1jInput {
  ServerNameToVerify: String
}

type AwsApiGatewayV2CreateIntegrationResponseOutput {
  ContentHandlingStrategy: String
  IntegrationResponseId: String
  IntegrationResponseKey: String
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

input AwsApiGatewayV2CreateIntegrationResponseInput {
  ApiId: String!
  ContentHandlingStrategy: String
  IntegrationId: String!
  IntegrationResponseKey: String!
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

type AwsApiGatewayV2CreateModelOutput {
  ContentType: String
  Description: String
  ModelId: String
  Name: String
  Schema: String
}

input AwsApiGatewayV2CreateModelInput {
  ApiId: String!
  ContentType: String
  Description: String
  Name: String!
  Schema: String!
}

type AwsApiGatewayV2CreateRouteOutput {
  ApiGatewayManaged: Boolean
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteId: String
  RouteKey: String
  RouteResponseSelectionExpression: String
  Target: String
}

input AwsApiGatewayV2CreateRouteInput {
  ApiId: String!
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteKey: String!
  RouteResponseSelectionExpression: String
  Target: String
}

type AwsApiGatewayV2CreateRouteResponseOutput {
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteResponseId: String
  RouteResponseKey: String
}

input AwsApiGatewayV2CreateRouteResponseInput {
  ApiId: String!
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteId: String!
  RouteResponseKey: String!
}

type AwsApiGatewayV2CreateStageOutput {
  AccessLogSettings: AwsApiGatewayV2S21
  ApiGatewayManaged: Boolean
  AutoDeploy: Boolean
  ClientCertificateId: String
  CreatedDate: Date
  DefaultRouteSettings: AwsApiGatewayV2S22
  DeploymentId: String
  Description: String
  LastDeploymentStatusMessage: String
  LastUpdatedDate: Date
  RouteSettings: JSON
  StageName: String
  StageVariables: JSON
  Tags: JSON
}

type AwsApiGatewayV2S21 {
  DestinationArn: String
  Format: String
}

type AwsApiGatewayV2S22 {
  DataTraceEnabled: Boolean
  DetailedMetricsEnabled: Boolean
  LoggingLevel: String
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
}

input AwsApiGatewayV2CreateStageInput {
  AccessLogSettings: AwsApiGatewayV2S21Input
  ApiId: String!
  AutoDeploy: Boolean
  ClientCertificateId: String
  DefaultRouteSettings: AwsApiGatewayV2S22Input
  DeploymentId: String
  Description: String
  RouteSettings: JSON
  StageName: String!
  StageVariables: JSON
  Tags: JSON
}

input AwsApiGatewayV2S21Input {
  DestinationArn: String
  Format: String
}

input AwsApiGatewayV2S22Input {
  DataTraceEnabled: Boolean
  DetailedMetricsEnabled: Boolean
  LoggingLevel: String
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
}

type AwsApiGatewayV2CreateVpcLinkOutput {
  CreatedDate: Date
  Name: String
  SecurityGroupIds: [String]
  SubnetIds: [String]
  Tags: JSON
  VpcLinkId: String
  VpcLinkStatus: String
  VpcLinkStatusMessage: String
  VpcLinkVersion: String
}

input AwsApiGatewayV2CreateVpcLinkInput {
  Name: String!
  SecurityGroupIds: [String]
  SubnetIds: [String]!
  Tags: JSON
}

input AwsApiGatewayV2DeleteAccessLogSettingsInput {
  ApiId: String!
  StageName: String!
}

input AwsApiGatewayV2DeleteApiInput {
  ApiId: String!
}

input AwsApiGatewayV2DeleteApiMappingInput {
  ApiMappingId: String!
  DomainName: String!
}

input AwsApiGatewayV2DeleteAuthorizerInput {
  ApiId: String!
  AuthorizerId: String!
}

input AwsApiGatewayV2DeleteCorsConfigurationInput {
  ApiId: String!
}

input AwsApiGatewayV2DeleteDeploymentInput {
  ApiId: String!
  DeploymentId: String!
}

input AwsApiGatewayV2DeleteDomainNameInput {
  DomainName: String!
}

input AwsApiGatewayV2DeleteIntegrationInput {
  ApiId: String!
  IntegrationId: String!
}

input AwsApiGatewayV2DeleteIntegrationResponseInput {
  ApiId: String!
  IntegrationId: String!
  IntegrationResponseId: String!
}

input AwsApiGatewayV2DeleteModelInput {
  ApiId: String!
  ModelId: String!
}

input AwsApiGatewayV2DeleteRouteInput {
  ApiId: String!
  RouteId: String!
}

input AwsApiGatewayV2DeleteRouteRequestParameterInput {
  ApiId: String!
  RequestParameterKey: String!
  RouteId: String!
}

input AwsApiGatewayV2DeleteRouteResponseInput {
  ApiId: String!
  RouteId: String!
  RouteResponseId: String!
}

input AwsApiGatewayV2DeleteRouteSettingsInput {
  ApiId: String!
  RouteKey: String!
  StageName: String!
}

input AwsApiGatewayV2DeleteStageInput {
  ApiId: String!
  StageName: String!
}

input AwsApiGatewayV2DeleteVpcLinkInput {
  VpcLinkId: String!
}

type AwsApiGatewayV2ExportApiOutput {
  body: JSON
}

input AwsApiGatewayV2ExportApiInput {
  ApiId: String!
  ExportVersion: String
  IncludeExtensions: Boolean
  OutputType: String!
  Specification: String!
  StageName: String
}

input AwsApiGatewayV2ResetAuthorizersCacheInput {
  ApiId: String!
  StageName: String!
}

type AwsApiGatewayV2GetApiOutput {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  Tags: JSON
  Version: String
  Warnings: [String]
}

input AwsApiGatewayV2GetApiInput {
  ApiId: String!
}

type AwsApiGatewayV2GetApiMappingOutput {
  ApiId: String
  ApiMappingId: String
  ApiMappingKey: String
  Stage: String
}

input AwsApiGatewayV2GetApiMappingInput {
  ApiMappingId: String!
  DomainName: String!
}

type AwsApiGatewayV2GetApiMappingsOutput {
  Items: [AwsApiGatewayV2GetApiMappingsOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetApiMappingsOutputItems {
  ApiId: String!
  ApiMappingId: String
  ApiMappingKey: String
  Stage: String!
}

input AwsApiGatewayV2GetApiMappingsInput {
  DomainName: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetApisOutput {
  Items: [AwsApiGatewayV2GetApisOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetApisOutputItems {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String!
  ProtocolType: String!
  RouteSelectionExpression: String!
  Tags: JSON
  Version: String
  Warnings: [String]
}

input AwsApiGatewayV2GetApisInput {
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetAuthorizerOutput {
  AuthorizerCredentialsArn: String
  AuthorizerId: String
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2St
  Name: String
}

input AwsApiGatewayV2GetAuthorizerInput {
  ApiId: String!
  AuthorizerId: String!
}

type AwsApiGatewayV2GetAuthorizersOutput {
  Items: [AwsApiGatewayV2GetAuthorizersOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetAuthorizersOutputItems {
  AuthorizerCredentialsArn: String
  AuthorizerId: String
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2St
  Name: String!
}

input AwsApiGatewayV2GetAuthorizersInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetDeploymentOutput {
  AutoDeployed: Boolean
  CreatedDate: Date
  DeploymentId: String
  DeploymentStatus: String
  DeploymentStatusMessage: String
  Description: String
}

input AwsApiGatewayV2GetDeploymentInput {
  ApiId: String!
  DeploymentId: String!
}

type AwsApiGatewayV2GetDeploymentsOutput {
  Items: [AwsApiGatewayV2GetDeploymentsOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetDeploymentsOutputItems {
  AutoDeployed: Boolean
  CreatedDate: Date
  DeploymentId: String
  DeploymentStatus: String
  DeploymentStatusMessage: String
  Description: String
}

input AwsApiGatewayV2GetDeploymentsInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetDomainNameOutput {
  ApiMappingSelectionExpression: String
  DomainName: String
  DomainNameConfigurations: [AwsApiGatewayV2S10]
  MutualTlsAuthentication: AwsApiGatewayV2S17
  Tags: JSON
}

input AwsApiGatewayV2GetDomainNameInput {
  DomainName: String!
}

type AwsApiGatewayV2GetDomainNamesOutput {
  Items: [AwsApiGatewayV2GetDomainNamesOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetDomainNamesOutputItems {
  ApiMappingSelectionExpression: String
  DomainName: String!
  DomainNameConfigurations: [AwsApiGatewayV2S10]
  MutualTlsAuthentication: AwsApiGatewayV2S17
  Tags: JSON
}

input AwsApiGatewayV2GetDomainNamesInput {
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetIntegrationOutput {
  ApiGatewayManaged: Boolean
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationId: String
  IntegrationMethod: String
  IntegrationResponseSelectionExpression: String
  IntegrationSubtype: String
  IntegrationType: String
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1l
}

input AwsApiGatewayV2GetIntegrationInput {
  ApiId: String!
  IntegrationId: String!
}

type AwsApiGatewayV2GetIntegrationResponseOutput {
  ContentHandlingStrategy: String
  IntegrationResponseId: String
  IntegrationResponseKey: String
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

input AwsApiGatewayV2GetIntegrationResponseInput {
  ApiId: String!
  IntegrationId: String!
  IntegrationResponseId: String!
}

type AwsApiGatewayV2GetIntegrationResponsesOutput {
  Items: [AwsApiGatewayV2GetIntegrationResponsesOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetIntegrationResponsesOutputItems {
  ContentHandlingStrategy: String
  IntegrationResponseId: String
  IntegrationResponseKey: String!
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

input AwsApiGatewayV2GetIntegrationResponsesInput {
  ApiId: String!
  IntegrationId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetIntegrationsOutput {
  Items: [AwsApiGatewayV2GetIntegrationsOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetIntegrationsOutputItems {
  ApiGatewayManaged: Boolean
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationId: String
  IntegrationMethod: String
  IntegrationResponseSelectionExpression: String
  IntegrationSubtype: String
  IntegrationType: String
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1l
}

input AwsApiGatewayV2GetIntegrationsInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetModelOutput {
  ContentType: String
  Description: String
  ModelId: String
  Name: String
  Schema: String
}

input AwsApiGatewayV2GetModelInput {
  ApiId: String!
  ModelId: String!
}

type AwsApiGatewayV2GetModelTemplateOutput {
  Value: String
}

input AwsApiGatewayV2GetModelTemplateInput {
  ApiId: String!
  ModelId: String!
}

type AwsApiGatewayV2GetModelsOutput {
  Items: [AwsApiGatewayV2GetModelsOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetModelsOutputItems {
  ContentType: String
  Description: String
  ModelId: String
  Name: String!
  Schema: String
}

input AwsApiGatewayV2GetModelsInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetRouteOutput {
  ApiGatewayManaged: Boolean
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteId: String
  RouteKey: String
  RouteResponseSelectionExpression: String
  Target: String
}

input AwsApiGatewayV2GetRouteInput {
  ApiId: String!
  RouteId: String!
}

type AwsApiGatewayV2GetRouteResponseOutput {
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteResponseId: String
  RouteResponseKey: String
}

input AwsApiGatewayV2GetRouteResponseInput {
  ApiId: String!
  RouteId: String!
  RouteResponseId: String!
}

type AwsApiGatewayV2GetRouteResponsesOutput {
  Items: [AwsApiGatewayV2GetRouteResponsesOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetRouteResponsesOutputItems {
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteResponseId: String
  RouteResponseKey: String!
}

input AwsApiGatewayV2GetRouteResponsesInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
  RouteId: String!
}

type AwsApiGatewayV2GetRoutesOutput {
  Items: [AwsApiGatewayV2GetRoutesOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetRoutesOutputItems {
  ApiGatewayManaged: Boolean
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteId: String
  RouteKey: String!
  RouteResponseSelectionExpression: String
  Target: String
}

input AwsApiGatewayV2GetRoutesInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetStageOutput {
  AccessLogSettings: AwsApiGatewayV2S21
  ApiGatewayManaged: Boolean
  AutoDeploy: Boolean
  ClientCertificateId: String
  CreatedDate: Date
  DefaultRouteSettings: AwsApiGatewayV2S22
  DeploymentId: String
  Description: String
  LastDeploymentStatusMessage: String
  LastUpdatedDate: Date
  RouteSettings: JSON
  StageName: String
  StageVariables: JSON
  Tags: JSON
}

input AwsApiGatewayV2GetStageInput {
  ApiId: String!
  StageName: String!
}

type AwsApiGatewayV2GetStagesOutput {
  Items: [AwsApiGatewayV2GetStagesOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetStagesOutputItems {
  AccessLogSettings: AwsApiGatewayV2S21
  ApiGatewayManaged: Boolean
  AutoDeploy: Boolean
  ClientCertificateId: String
  CreatedDate: Date
  DefaultRouteSettings: AwsApiGatewayV2S22
  DeploymentId: String
  Description: String
  LastDeploymentStatusMessage: String
  LastUpdatedDate: Date
  RouteSettings: JSON
  StageName: String!
  StageVariables: JSON
  Tags: JSON
}

input AwsApiGatewayV2GetStagesInput {
  ApiId: String!
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2GetTagsOutput {
  Tags: JSON
}

input AwsApiGatewayV2GetTagsInput {
  ResourceArn: String!
}

type AwsApiGatewayV2GetVpcLinkOutput {
  CreatedDate: Date
  Name: String
  SecurityGroupIds: [String]
  SubnetIds: [String]
  Tags: JSON
  VpcLinkId: String
  VpcLinkStatus: String
  VpcLinkStatusMessage: String
  VpcLinkVersion: String
}

input AwsApiGatewayV2GetVpcLinkInput {
  VpcLinkId: String!
}

type AwsApiGatewayV2GetVpcLinksOutput {
  Items: [AwsApiGatewayV2GetVpcLinksOutputItems]
  NextToken: String
}

type AwsApiGatewayV2GetVpcLinksOutputItems {
  CreatedDate: Date
  Name: String!
  SecurityGroupIds: [String]!
  SubnetIds: [String]!
  Tags: JSON
  VpcLinkId: String!
  VpcLinkStatus: String
  VpcLinkStatusMessage: String
  VpcLinkVersion: String
}

input AwsApiGatewayV2GetVpcLinksInput {
  MaxResults: String
  NextToken: String
}

type AwsApiGatewayV2ImportApiOutput {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  Tags: JSON
  Version: String
  Warnings: [String]
}

input AwsApiGatewayV2ImportApiInput {
  Basepath: String
  Body: String!
  FailOnWarnings: Boolean
}

type AwsApiGatewayV2ReimportApiOutput {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  Tags: JSON
  Version: String
  Warnings: [String]
}

input AwsApiGatewayV2ReimportApiInput {
  ApiId: String!
  Basepath: String
  Body: String!
  FailOnWarnings: Boolean
}

input AwsApiGatewayV2TagResourceInput {
  ResourceArn: String!
  Tags: JSON
}

input AwsApiGatewayV2UntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsApiGatewayV2UpdateApiOutput {
  ApiEndpoint: String
  ApiGatewayManaged: Boolean
  ApiId: String
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3
  CreatedDate: Date
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  ImportInfo: [String]
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  Tags: JSON
  Version: String
  Warnings: [String]
}

input AwsApiGatewayV2UpdateApiInput {
  ApiId: String!
  ApiKeySelectionExpression: String
  CorsConfiguration: AwsApiGatewayV2S3Input
  CredentialsArn: String
  Description: String
  DisableSchemaValidation: Boolean
  DisableExecuteApiEndpoint: Boolean
  Name: String
  RouteKey: String
  RouteSelectionExpression: String
  Target: String
  Version: String
}

type AwsApiGatewayV2UpdateApiMappingOutput {
  ApiId: String
  ApiMappingId: String
  ApiMappingKey: String
  Stage: String
}

input AwsApiGatewayV2UpdateApiMappingInput {
  ApiId: String!
  ApiMappingId: String!
  ApiMappingKey: String
  DomainName: String!
  Stage: String
}

type AwsApiGatewayV2UpdateAuthorizerOutput {
  AuthorizerCredentialsArn: String
  AuthorizerId: String
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2St
  Name: String
}

input AwsApiGatewayV2UpdateAuthorizerInput {
  ApiId: String!
  AuthorizerCredentialsArn: String
  AuthorizerId: String!
  AuthorizerPayloadFormatVersion: String
  AuthorizerResultTtlInSeconds: Int
  AuthorizerType: String
  AuthorizerUri: String
  EnableSimpleResponses: Boolean
  IdentitySource: [String]
  IdentityValidationExpression: String
  JwtConfiguration: AwsApiGatewayV2StInput
  Name: String
}

type AwsApiGatewayV2UpdateDeploymentOutput {
  AutoDeployed: Boolean
  CreatedDate: Date
  DeploymentId: String
  DeploymentStatus: String
  DeploymentStatusMessage: String
  Description: String
}

input AwsApiGatewayV2UpdateDeploymentInput {
  ApiId: String!
  DeploymentId: String!
  Description: String
}

type AwsApiGatewayV2UpdateDomainNameOutput {
  ApiMappingSelectionExpression: String
  DomainName: String
  DomainNameConfigurations: [AwsApiGatewayV2S10]
  MutualTlsAuthentication: AwsApiGatewayV2S17
  Tags: JSON
}

input AwsApiGatewayV2UpdateDomainNameInput {
  DomainName: String!
  DomainNameConfigurations: [AwsApiGatewayV2S10Input]
  MutualTlsAuthentication: AwsApiGatewayV2S15Input
}

type AwsApiGatewayV2UpdateIntegrationOutput {
  ApiGatewayManaged: Boolean
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationId: String
  IntegrationMethod: String
  IntegrationResponseSelectionExpression: String
  IntegrationSubtype: String
  IntegrationType: String
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1l
}

input AwsApiGatewayV2UpdateIntegrationInput {
  ApiId: String!
  ConnectionId: String
  ConnectionType: String
  ContentHandlingStrategy: String
  CredentialsArn: String
  Description: String
  IntegrationId: String!
  IntegrationMethod: String
  IntegrationSubtype: String
  IntegrationType: String
  IntegrationUri: String
  PassthroughBehavior: String
  PayloadFormatVersion: String
  RequestParameters: JSON
  RequestTemplates: JSON
  ResponseParameters: JSON
  TemplateSelectionExpression: String
  TimeoutInMillis: Int
  TlsConfig: AwsApiGatewayV2S1jInput
}

type AwsApiGatewayV2UpdateIntegrationResponseOutput {
  ContentHandlingStrategy: String
  IntegrationResponseId: String
  IntegrationResponseKey: String
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

input AwsApiGatewayV2UpdateIntegrationResponseInput {
  ApiId: String!
  ContentHandlingStrategy: String
  IntegrationId: String!
  IntegrationResponseId: String!
  IntegrationResponseKey: String
  ResponseParameters: JSON
  ResponseTemplates: JSON
  TemplateSelectionExpression: String
}

type AwsApiGatewayV2UpdateModelOutput {
  ContentType: String
  Description: String
  ModelId: String
  Name: String
  Schema: String
}

input AwsApiGatewayV2UpdateModelInput {
  ApiId: String!
  ContentType: String
  Description: String
  ModelId: String!
  Name: String
  Schema: String
}

type AwsApiGatewayV2UpdateRouteOutput {
  ApiGatewayManaged: Boolean
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteId: String
  RouteKey: String
  RouteResponseSelectionExpression: String
  Target: String
}

input AwsApiGatewayV2UpdateRouteInput {
  ApiId: String!
  ApiKeyRequired: Boolean
  AuthorizationScopes: [String]
  AuthorizationType: String
  AuthorizerId: String
  ModelSelectionExpression: String
  OperationName: String
  RequestModels: JSON
  RequestParameters: JSON
  RouteId: String!
  RouteKey: String
  RouteResponseSelectionExpression: String
  Target: String
}

type AwsApiGatewayV2UpdateRouteResponseOutput {
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteResponseId: String
  RouteResponseKey: String
}

input AwsApiGatewayV2UpdateRouteResponseInput {
  ApiId: String!
  ModelSelectionExpression: String
  ResponseModels: JSON
  ResponseParameters: JSON
  RouteId: String!
  RouteResponseId: String!
  RouteResponseKey: String
}

type AwsApiGatewayV2UpdateStageOutput {
  AccessLogSettings: AwsApiGatewayV2S21
  ApiGatewayManaged: Boolean
  AutoDeploy: Boolean
  ClientCertificateId: String
  CreatedDate: Date
  DefaultRouteSettings: AwsApiGatewayV2S22
  DeploymentId: String
  Description: String
  LastDeploymentStatusMessage: String
  LastUpdatedDate: Date
  RouteSettings: JSON
  StageName: String
  StageVariables: JSON
  Tags: JSON
}

input AwsApiGatewayV2UpdateStageInput {
  AccessLogSettings: AwsApiGatewayV2S21Input
  ApiId: String!
  AutoDeploy: Boolean
  ClientCertificateId: String
  DefaultRouteSettings: AwsApiGatewayV2S22Input
  DeploymentId: String
  Description: String
  RouteSettings: JSON
  StageName: String!
  StageVariables: JSON
}

type AwsApiGatewayV2UpdateVpcLinkOutput {
  CreatedDate: Date
  Name: String
  SecurityGroupIds: [String]
  SubnetIds: [String]
  Tags: JSON
  VpcLinkId: String
  VpcLinkStatus: String
  VpcLinkStatusMessage: String
  VpcLinkVersion: String
}

input AwsApiGatewayV2UpdateVpcLinkInput {
  Name: String
  VpcLinkId: String!
}

"""Amazon AppConfig (2019-10-09)"""
type AwsAppConfig {
  createApplication(input: AwsAppConfigCreateApplicationInput!, config: AwsConfig): JSON
  createConfigurationProfile(input: AwsAppConfigCreateConfigurationProfileInput!, config: AwsConfig): JSON
  createDeploymentStrategy(input: AwsAppConfigCreateDeploymentStrategyInput!, config: AwsConfig): JSON
  createEnvironment(input: AwsAppConfigCreateEnvironmentInput!, config: AwsConfig): JSON
  createHostedConfigurationVersion(input: AwsAppConfigCreateHostedConfigurationVersionInput!, config: AwsConfig): JSON
  deleteApplication(input: AwsAppConfigDeleteApplicationInput!, config: AwsConfig): JSON
  deleteConfigurationProfile(input: AwsAppConfigDeleteConfigurationProfileInput!, config: AwsConfig): JSON
  deleteDeploymentStrategy(input: AwsAppConfigDeleteDeploymentStrategyInput!, config: AwsConfig): JSON
  deleteEnvironment(input: AwsAppConfigDeleteEnvironmentInput!, config: AwsConfig): JSON
  deleteHostedConfigurationVersion(input: AwsAppConfigDeleteHostedConfigurationVersionInput!, config: AwsConfig): JSON
  getApplication(input: AwsAppConfigGetApplicationInput!, config: AwsConfig): JSON
  getConfiguration(input: AwsAppConfigGetConfigurationInput!, config: AwsConfig): AwsAppConfigGetConfigurationOutput
  getConfigurationProfile(input: AwsAppConfigGetConfigurationProfileInput!, config: AwsConfig): JSON
  getDeployment(input: AwsAppConfigGetDeploymentInput!, config: AwsConfig): JSON
  getDeploymentStrategy(input: AwsAppConfigGetDeploymentStrategyInput!, config: AwsConfig): JSON
  getEnvironment(input: AwsAppConfigGetEnvironmentInput!, config: AwsConfig): JSON
  getHostedConfigurationVersion(input: AwsAppConfigGetHostedConfigurationVersionInput!, config: AwsConfig): JSON
  listApplications(input: AwsAppConfigListApplicationsInput, config: AwsConfig): AwsAppConfigListApplicationsOutput
  listConfigurationProfiles(input: AwsAppConfigListConfigurationProfilesInput!, config: AwsConfig): AwsAppConfigListConfigurationProfilesOutput
  listDeploymentStrategies(input: AwsAppConfigListDeploymentStrategiesInput, config: AwsConfig): AwsAppConfigListDeploymentStrategiesOutput
  listDeployments(input: AwsAppConfigListDeploymentsInput!, config: AwsConfig): AwsAppConfigListDeploymentsOutput
  listEnvironments(input: AwsAppConfigListEnvironmentsInput!, config: AwsConfig): AwsAppConfigListEnvironmentsOutput
  listHostedConfigurationVersions(input: AwsAppConfigListHostedConfigurationVersionsInput!, config: AwsConfig): AwsAppConfigListHostedConfigurationVersionsOutput
  listTagsForResource(input: AwsAppConfigListTagsForResourceInput!, config: AwsConfig): AwsAppConfigListTagsForResourceOutput
  startDeployment(input: AwsAppConfigStartDeploymentInput!, config: AwsConfig): JSON
  stopDeployment(input: AwsAppConfigStopDeploymentInput!, config: AwsConfig): JSON
  tagResource(input: AwsAppConfigTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppConfigUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsAppConfigUpdateApplicationInput!, config: AwsConfig): JSON
  updateConfigurationProfile(input: AwsAppConfigUpdateConfigurationProfileInput!, config: AwsConfig): JSON
  updateDeploymentStrategy(input: AwsAppConfigUpdateDeploymentStrategyInput!, config: AwsConfig): JSON
  updateEnvironment(input: AwsAppConfigUpdateEnvironmentInput!, config: AwsConfig): JSON
  validateConfiguration(input: AwsAppConfigValidateConfigurationInput!, config: AwsConfig): JSON
}

input AwsAppConfigCreateApplicationInput {
  Name: String!
  Description: String
  Tags: JSON
}

input AwsAppConfigCreateConfigurationProfileInput {
  ApplicationId: String!
  Name: String!
  Description: String
  LocationUri: String!
  RetrievalRoleArn: String
  Validators: [AwsAppConfigScInput]
  Tags: JSON
}

input AwsAppConfigScInput {
  Type: String!
  Content: String!
}

input AwsAppConfigCreateDeploymentStrategyInput {
  Name: String!
  Description: String
  DeploymentDurationInMinutes: Int!
  FinalBakeTimeInMinutes: Int
  GrowthFactor: Float!
  GrowthType: String
  ReplicateTo: String!
  Tags: JSON
}

input AwsAppConfigCreateEnvironmentInput {
  ApplicationId: String!
  Name: String!
  Description: String
  Monitors: [AwsAppConfigSpInput]
  Tags: JSON
}

input AwsAppConfigSpInput {
  AlarmArn: String
  AlarmRoleArn: String
}

input AwsAppConfigCreateHostedConfigurationVersionInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  Description: String
  Content: JSON!
  ContentType: String!
  LatestVersionNumber: Int
}

input AwsAppConfigDeleteApplicationInput {
  ApplicationId: String!
}

input AwsAppConfigDeleteConfigurationProfileInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
}

input AwsAppConfigDeleteDeploymentStrategyInput {
  DeploymentStrategyId: String!
}

input AwsAppConfigDeleteEnvironmentInput {
  ApplicationId: String!
  EnvironmentId: String!
}

input AwsAppConfigDeleteHostedConfigurationVersionInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  VersionNumber: Int!
}

input AwsAppConfigGetApplicationInput {
  ApplicationId: String!
}

type AwsAppConfigGetConfigurationOutput {
  Content: JSON
  ConfigurationVersion: String
  ContentType: String
}

input AwsAppConfigGetConfigurationInput {
  Application: String!
  Environment: String!
  Configuration: String!
  ClientId: String!
  ClientConfigurationVersion: String
}

input AwsAppConfigGetConfigurationProfileInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
}

input AwsAppConfigGetDeploymentInput {
  ApplicationId: String!
  EnvironmentId: String!
  DeploymentNumber: Int!
}

input AwsAppConfigGetDeploymentStrategyInput {
  DeploymentStrategyId: String!
}

input AwsAppConfigGetEnvironmentInput {
  ApplicationId: String!
  EnvironmentId: String!
}

input AwsAppConfigGetHostedConfigurationVersionInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  VersionNumber: Int!
}

type AwsAppConfigListApplicationsOutput {
  Items: [AwsAppConfigS7]
  NextToken: String
}

type AwsAppConfigS7 {
  Id: String
  Name: String
  Description: String
}

input AwsAppConfigListApplicationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListConfigurationProfilesOutput {
  Items: [AwsAppConfigListConfigurationProfilesOutputItems]
  NextToken: String
}

type AwsAppConfigListConfigurationProfilesOutputItems {
  ApplicationId: String
  Id: String
  Name: String
  LocationUri: String
  ValidatorTypes: [String]
}

input AwsAppConfigListConfigurationProfilesInput {
  ApplicationId: String!
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListDeploymentStrategiesOutput {
  Items: [AwsAppConfigSm]
  NextToken: String
}

type AwsAppConfigSm {
  Id: String
  Name: String
  Description: String
  DeploymentDurationInMinutes: Int
  GrowthType: String
  GrowthFactor: Float
  FinalBakeTimeInMinutes: Int
  ReplicateTo: String
}

input AwsAppConfigListDeploymentStrategiesInput {
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListDeploymentsOutput {
  Items: [AwsAppConfigListDeploymentsOutputItems]
  NextToken: String
}

type AwsAppConfigListDeploymentsOutputItems {
  DeploymentNumber: Int
  ConfigurationName: String
  ConfigurationVersion: String
  DeploymentDurationInMinutes: Int
  GrowthType: String
  GrowthFactor: Float
  FinalBakeTimeInMinutes: Int
  State: String
  PercentageComplete: Float
  StartedAt: Date
  CompletedAt: Date
}

input AwsAppConfigListDeploymentsInput {
  ApplicationId: String!
  EnvironmentId: String!
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListEnvironmentsOutput {
  Items: [AwsAppConfigSs]
  NextToken: String
}

type AwsAppConfigSs {
  ApplicationId: String
  Id: String
  Name: String
  Description: String
  State: String
  Monitors: [AwsAppConfigSp]
}

type AwsAppConfigSp {
  AlarmArn: String
  AlarmRoleArn: String
}

input AwsAppConfigListEnvironmentsInput {
  ApplicationId: String!
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListHostedConfigurationVersionsOutput {
  Items: [AwsAppConfigListHostedConfigurationVersionsOutputItems]
  NextToken: String
}

type AwsAppConfigListHostedConfigurationVersionsOutputItems {
  ApplicationId: String
  ConfigurationProfileId: String
  VersionNumber: Int
  Description: String
  ContentType: String
}

input AwsAppConfigListHostedConfigurationVersionsInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  MaxResults: Int
  NextToken: String
}

type AwsAppConfigListTagsForResourceOutput {
  Tags: JSON
}

input AwsAppConfigListTagsForResourceInput {
  ResourceArn: String!
}

input AwsAppConfigStartDeploymentInput {
  ApplicationId: String!
  EnvironmentId: String!
  DeploymentStrategyId: String!
  ConfigurationProfileId: String!
  ConfigurationVersion: String!
  Description: String
  Tags: JSON
}

input AwsAppConfigStopDeploymentInput {
  ApplicationId: String!
  EnvironmentId: String!
  DeploymentNumber: Int!
}

input AwsAppConfigTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsAppConfigUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsAppConfigUpdateApplicationInput {
  ApplicationId: String!
  Name: String
  Description: String
}

input AwsAppConfigUpdateConfigurationProfileInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  Name: String
  Description: String
  RetrievalRoleArn: String
  Validators: [AwsAppConfigScInput]
}

input AwsAppConfigUpdateDeploymentStrategyInput {
  DeploymentStrategyId: String!
  Description: String
  DeploymentDurationInMinutes: Int
  FinalBakeTimeInMinutes: Int
  GrowthFactor: Float
  GrowthType: String
}

input AwsAppConfigUpdateEnvironmentInput {
  ApplicationId: String!
  EnvironmentId: String!
  Name: String
  Description: String
  Monitors: [AwsAppConfigSpInput]
}

input AwsAppConfigValidateConfigurationInput {
  ApplicationId: String!
  ConfigurationProfileId: String!
  ConfigurationVersion: String!
}

"""Amazon AppIntegrations Service (2020-07-29)"""
type AwsAppIntegrations {
  createEventIntegration(input: AwsAppIntegrationsCreateEventIntegrationInput!, config: AwsConfig): AwsAppIntegrationsCreateEventIntegrationOutput
  deleteEventIntegration(input: AwsAppIntegrationsDeleteEventIntegrationInput!, config: AwsConfig): JSON
  getEventIntegration(input: AwsAppIntegrationsGetEventIntegrationInput!, config: AwsConfig): AwsAppIntegrationsGetEventIntegrationOutput
  listEventIntegrationAssociations(input: AwsAppIntegrationsListEventIntegrationAssociationsInput!, config: AwsConfig): AwsAppIntegrationsListEventIntegrationAssociationsOutput
  listEventIntegrations(input: AwsAppIntegrationsListEventIntegrationsInput, config: AwsConfig): AwsAppIntegrationsListEventIntegrationsOutput
  listTagsForResource(input: AwsAppIntegrationsListTagsForResourceInput!, config: AwsConfig): AwsAppIntegrationsListTagsForResourceOutput
  tagResource(input: AwsAppIntegrationsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppIntegrationsUntagResourceInput!, config: AwsConfig): JSON
  updateEventIntegration(input: AwsAppIntegrationsUpdateEventIntegrationInput!, config: AwsConfig): JSON
}

type AwsAppIntegrationsCreateEventIntegrationOutput {
  EventIntegrationArn: String
}

input AwsAppIntegrationsCreateEventIntegrationInput {
  Name: String!
  Description: String
  EventFilter: AwsAppIntegrationsS4Input!
  EventBridgeBus: String!
  ClientToken: String
  Tags: JSON
}

input AwsAppIntegrationsS4Input {
  Source: String!
}

input AwsAppIntegrationsDeleteEventIntegrationInput {
  Name: String!
}

type AwsAppIntegrationsGetEventIntegrationOutput {
  Name: String
  Description: String
  EventIntegrationArn: String
  EventBridgeBus: String
  EventFilter: AwsAppIntegrationsS4
  Tags: JSON
}

type AwsAppIntegrationsS4 {
  Source: String!
}

input AwsAppIntegrationsGetEventIntegrationInput {
  Name: String!
}

type AwsAppIntegrationsListEventIntegrationAssociationsOutput {
  EventIntegrationAssociations: [AwsAppIntegrationsListEventIntegrationAssociationsOutputEventIntegrationAssociations]
  NextToken: String
}

type AwsAppIntegrationsListEventIntegrationAssociationsOutputEventIntegrationAssociations {
  EventIntegrationAssociationArn: String
  EventIntegrationAssociationId: String
  EventIntegrationName: String
  ClientId: String
  EventBridgeRuleName: String
  ClientAssociationMetadata: JSON
}

input AwsAppIntegrationsListEventIntegrationAssociationsInput {
  EventIntegrationName: String!
  NextToken: String
  MaxResults: Int
}

type AwsAppIntegrationsListEventIntegrationsOutput {
  EventIntegrations: [AwsAppIntegrationsListEventIntegrationsOutputEventIntegrations]
  NextToken: String
}

type AwsAppIntegrationsListEventIntegrationsOutputEventIntegrations {
  EventIntegrationArn: String
  Name: String
  Description: String
  EventFilter: AwsAppIntegrationsS4
  EventBridgeBus: String
  Tags: JSON
}

input AwsAppIntegrationsListEventIntegrationsInput {
  NextToken: String
  MaxResults: Int
}

type AwsAppIntegrationsListTagsForResourceOutput {
  tags: JSON
}

input AwsAppIntegrationsListTagsForResourceInput {
  resourceArn: String!
}

input AwsAppIntegrationsTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAppIntegrationsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsAppIntegrationsUpdateEventIntegrationInput {
  Name: String!
  Description: String
}

"""AWS App Mesh (2019-01-25)"""
type AwsAppMesh {
  createGatewayRoute(input: AwsAppMeshCreateGatewayRouteInput!, config: AwsConfig): AwsAppMeshCreateGatewayRouteOutput
  createMesh(input: AwsAppMeshCreateMeshInput!, config: AwsConfig): AwsAppMeshCreateMeshOutput
  createRoute(input: AwsAppMeshCreateRouteInput!, config: AwsConfig): AwsAppMeshCreateRouteOutput
  createVirtualGateway(input: AwsAppMeshCreateVirtualGatewayInput!, config: AwsConfig): AwsAppMeshCreateVirtualGatewayOutput
  createVirtualNode(input: AwsAppMeshCreateVirtualNodeInput!, config: AwsConfig): AwsAppMeshCreateVirtualNodeOutput
  createVirtualRouter(input: AwsAppMeshCreateVirtualRouterInput!, config: AwsConfig): AwsAppMeshCreateVirtualRouterOutput
  createVirtualService(input: AwsAppMeshCreateVirtualServiceInput!, config: AwsConfig): AwsAppMeshCreateVirtualServiceOutput
  deleteGatewayRoute(input: AwsAppMeshDeleteGatewayRouteInput!, config: AwsConfig): AwsAppMeshDeleteGatewayRouteOutput
  deleteMesh(input: AwsAppMeshDeleteMeshInput!, config: AwsConfig): AwsAppMeshDeleteMeshOutput
  deleteRoute(input: AwsAppMeshDeleteRouteInput!, config: AwsConfig): AwsAppMeshDeleteRouteOutput
  deleteVirtualGateway(input: AwsAppMeshDeleteVirtualGatewayInput!, config: AwsConfig): AwsAppMeshDeleteVirtualGatewayOutput
  deleteVirtualNode(input: AwsAppMeshDeleteVirtualNodeInput!, config: AwsConfig): AwsAppMeshDeleteVirtualNodeOutput
  deleteVirtualRouter(input: AwsAppMeshDeleteVirtualRouterInput!, config: AwsConfig): AwsAppMeshDeleteVirtualRouterOutput
  deleteVirtualService(input: AwsAppMeshDeleteVirtualServiceInput!, config: AwsConfig): AwsAppMeshDeleteVirtualServiceOutput
  describeGatewayRoute(input: AwsAppMeshDescribeGatewayRouteInput!, config: AwsConfig): AwsAppMeshDescribeGatewayRouteOutput
  describeMesh(input: AwsAppMeshDescribeMeshInput!, config: AwsConfig): AwsAppMeshDescribeMeshOutput
  describeRoute(input: AwsAppMeshDescribeRouteInput!, config: AwsConfig): AwsAppMeshDescribeRouteOutput
  describeVirtualGateway(input: AwsAppMeshDescribeVirtualGatewayInput!, config: AwsConfig): AwsAppMeshDescribeVirtualGatewayOutput
  describeVirtualNode(input: AwsAppMeshDescribeVirtualNodeInput!, config: AwsConfig): AwsAppMeshDescribeVirtualNodeOutput
  describeVirtualRouter(input: AwsAppMeshDescribeVirtualRouterInput!, config: AwsConfig): AwsAppMeshDescribeVirtualRouterOutput
  describeVirtualService(input: AwsAppMeshDescribeVirtualServiceInput!, config: AwsConfig): AwsAppMeshDescribeVirtualServiceOutput
  listGatewayRoutes(input: AwsAppMeshListGatewayRoutesInput!, config: AwsConfig): AwsAppMeshListGatewayRoutesOutput
  listMeshes(input: AwsAppMeshListMeshesInput, config: AwsConfig): AwsAppMeshListMeshesOutput
  listRoutes(input: AwsAppMeshListRoutesInput!, config: AwsConfig): AwsAppMeshListRoutesOutput
  listTagsForResource(input: AwsAppMeshListTagsForResourceInput!, config: AwsConfig): AwsAppMeshListTagsForResourceOutput
  listVirtualGateways(input: AwsAppMeshListVirtualGatewaysInput!, config: AwsConfig): AwsAppMeshListVirtualGatewaysOutput
  listVirtualNodes(input: AwsAppMeshListVirtualNodesInput!, config: AwsConfig): AwsAppMeshListVirtualNodesOutput
  listVirtualRouters(input: AwsAppMeshListVirtualRoutersInput!, config: AwsConfig): AwsAppMeshListVirtualRoutersOutput
  listVirtualServices(input: AwsAppMeshListVirtualServicesInput!, config: AwsConfig): AwsAppMeshListVirtualServicesOutput
  tagResource(input: AwsAppMeshTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppMeshUntagResourceInput!, config: AwsConfig): JSON
  updateGatewayRoute(input: AwsAppMeshUpdateGatewayRouteInput!, config: AwsConfig): AwsAppMeshUpdateGatewayRouteOutput
  updateMesh(input: AwsAppMeshUpdateMeshInput!, config: AwsConfig): AwsAppMeshUpdateMeshOutput
  updateRoute(input: AwsAppMeshUpdateRouteInput!, config: AwsConfig): AwsAppMeshUpdateRouteOutput
  updateVirtualGateway(input: AwsAppMeshUpdateVirtualGatewayInput!, config: AwsConfig): AwsAppMeshUpdateVirtualGatewayOutput
  updateVirtualNode(input: AwsAppMeshUpdateVirtualNodeInput!, config: AwsConfig): AwsAppMeshUpdateVirtualNodeOutput
  updateVirtualRouter(input: AwsAppMeshUpdateVirtualRouterInput!, config: AwsConfig): AwsAppMeshUpdateVirtualRouterOutput
  updateVirtualService(input: AwsAppMeshUpdateVirtualServiceInput!, config: AwsConfig): AwsAppMeshUpdateVirtualServiceOutput
}

type AwsAppMeshCreateGatewayRouteOutput {
  gatewayRoute: AwsAppMeshS1e!
}

type AwsAppMeshS1e {
  gatewayRouteName: String!
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS5!
  status: AwsAppMeshS1eStatus!
  virtualGatewayName: String!
}

type AwsAppMeshS1f {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshOwner: String!
  resourceOwner: String!
  uid: String!
  version: JSON!
}

type AwsAppMeshS5 {
  grpcRoute: AwsAppMeshS5GrpcRoute
  http2Route: AwsAppMeshSq
  httpRoute: AwsAppMeshSq
  priority: Int
}

type AwsAppMeshS5GrpcRoute {
  action: AwsAppMeshS5GrpcRouteAction!
  match: AwsAppMeshS5GrpcRouteMatch!
}

type AwsAppMeshS5GrpcRouteAction {
  rewrite: AwsAppMeshS5GrpcRouteActionRewrite
  target: AwsAppMeshSb!
}

type AwsAppMeshS5GrpcRouteActionRewrite {
  hostname: AwsAppMeshS9
}

type AwsAppMeshS9 {
  defaultTargetHostname: String
}

type AwsAppMeshSb {
  virtualService: AwsAppMeshSbVirtualService!
}

type AwsAppMeshSbVirtualService {
  virtualServiceName: String!
}

type AwsAppMeshS5GrpcRouteMatch {
  hostname: AwsAppMeshSe
  metadata: [AwsAppMeshS5GrpcRouteMatchMetadata]
  serviceName: String
}

type AwsAppMeshSe {
  exact: String
  suffix: String
}

type AwsAppMeshS5GrpcRouteMatchMetadata {
  invert: Boolean
  match: AwsAppMeshS5GrpcRouteMatchMetadataMatch
  name: String!
}

type AwsAppMeshS5GrpcRouteMatchMetadataMatch {
  exact: String
  prefix: String
  range: AwsAppMeshSm
  regex: String
  suffix: String
}

type AwsAppMeshSm {
  end: JSON!
  start: JSON!
}

type AwsAppMeshSq {
  action: AwsAppMeshSqAction!
  match: AwsAppMeshSqMatch!
}

type AwsAppMeshSqAction {
  rewrite: AwsAppMeshSqActionRewrite
  target: AwsAppMeshSb!
}

type AwsAppMeshSqActionRewrite {
  hostname: AwsAppMeshS9
  path: AwsAppMeshSqActionRewritePath
  prefix: AwsAppMeshSqActionRewritePrefix
}

type AwsAppMeshSqActionRewritePath {
  exact: String
}

type AwsAppMeshSqActionRewritePrefix {
  defaultPrefix: String
  value: String
}

type AwsAppMeshSqMatch {
  headers: [AwsAppMeshSqMatchHeaders]
  hostname: AwsAppMeshSe
  method: String
  path: AwsAppMeshS12
  prefix: String
  queryParameters: [AwsAppMeshS14]
}

type AwsAppMeshSqMatchHeaders {
  invert: Boolean
  match: AwsAppMeshS10
  name: String!
}

type AwsAppMeshS10 {
  exact: String
  prefix: String
  range: AwsAppMeshSm
  regex: String
  suffix: String
}

type AwsAppMeshS12 {
  exact: String
  regex: String
}

type AwsAppMeshS14 {
  match: AwsAppMeshS14Match
  name: String!
}

type AwsAppMeshS14Match {
  exact: String
}

type AwsAppMeshS1eStatus {
  status: String!
}

input AwsAppMeshCreateGatewayRouteInput {
  clientToken: String
  gatewayRouteName: String!
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS5Input!
  tags: [AwsAppMeshS19Input]
  virtualGatewayName: String!
}

input AwsAppMeshS5Input {
  grpcRoute: AwsAppMeshS5GrpcRouteInput
  http2Route: AwsAppMeshSqInput
  httpRoute: AwsAppMeshSqInput
  priority: Int
}

input AwsAppMeshS5GrpcRouteInput {
  action: AwsAppMeshS5GrpcRouteActionInput!
  match: AwsAppMeshS5GrpcRouteMatchInput!
}

input AwsAppMeshS5GrpcRouteActionInput {
  rewrite: AwsAppMeshS5GrpcRouteActionRewriteInput
  target: AwsAppMeshSbInput!
}

input AwsAppMeshS5GrpcRouteActionRewriteInput {
  hostname: AwsAppMeshS9Input
}

input AwsAppMeshS9Input {
  defaultTargetHostname: String
}

input AwsAppMeshSbInput {
  virtualService: AwsAppMeshSbVirtualServiceInput!
}

input AwsAppMeshSbVirtualServiceInput {
  virtualServiceName: String!
}

input AwsAppMeshS5GrpcRouteMatchInput {
  hostname: AwsAppMeshSeInput
  metadata: [AwsAppMeshS5GrpcRouteMatchMetadataInput]
  serviceName: String
}

input AwsAppMeshSeInput {
  exact: String
  suffix: String
}

input AwsAppMeshS5GrpcRouteMatchMetadataInput {
  invert: Boolean
  match: AwsAppMeshS5GrpcRouteMatchMetadataMatchInput
  name: String!
}

input AwsAppMeshS5GrpcRouteMatchMetadataMatchInput {
  exact: String
  prefix: String
  range: AwsAppMeshSmInput
  regex: String
  suffix: String
}

input AwsAppMeshSmInput {
  end: JSON!
  start: JSON!
}

input AwsAppMeshSqInput {
  action: AwsAppMeshSqActionInput!
  match: AwsAppMeshSqMatchInput!
}

input AwsAppMeshSqActionInput {
  rewrite: AwsAppMeshSqActionRewriteInput
  target: AwsAppMeshSbInput!
}

input AwsAppMeshSqActionRewriteInput {
  hostname: AwsAppMeshS9Input
  path: AwsAppMeshSqActionRewritePathInput
  prefix: AwsAppMeshSqActionRewritePrefixInput
}

input AwsAppMeshSqActionRewritePathInput {
  exact: String
}

input AwsAppMeshSqActionRewritePrefixInput {
  defaultPrefix: String
  value: String
}

input AwsAppMeshSqMatchInput {
  headers: [AwsAppMeshSqMatchHeadersInput]
  hostname: AwsAppMeshSeInput
  method: String
  path: AwsAppMeshS12Input
  prefix: String
  queryParameters: [AwsAppMeshS14Input]
}

input AwsAppMeshSqMatchHeadersInput {
  invert: Boolean
  match: AwsAppMeshS10Input
  name: String!
}

input AwsAppMeshS10Input {
  exact: String
  prefix: String
  range: AwsAppMeshSmInput
  regex: String
  suffix: String
}

input AwsAppMeshS12Input {
  exact: String
  regex: String
}

input AwsAppMeshS14Input {
  match: AwsAppMeshS14MatchInput
  name: String!
}

input AwsAppMeshS14MatchInput {
  exact: String
}

input AwsAppMeshS19Input {
  key: String!
  value: String!
}

type AwsAppMeshCreateMeshOutput {
  mesh: AwsAppMeshS1p!
}

type AwsAppMeshS1p {
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS1l!
  status: AwsAppMeshS1pStatus!
}

type AwsAppMeshS1l {
  egressFilter: AwsAppMeshS1lEgressFilter
}

type AwsAppMeshS1lEgressFilter {
  type: String!
}

type AwsAppMeshS1pStatus {
  status: String
}

input AwsAppMeshCreateMeshInput {
  clientToken: String
  meshName: String!
  spec: AwsAppMeshS1lInput
  tags: [AwsAppMeshS19Input]
}

input AwsAppMeshS1lInput {
  egressFilter: AwsAppMeshS1lEgressFilterInput
}

input AwsAppMeshS1lEgressFilterInput {
  type: String!
}

type AwsAppMeshCreateRouteOutput {
  route: AwsAppMeshS2t!
}

type AwsAppMeshS2t {
  meshName: String!
  metadata: AwsAppMeshS1f!
  routeName: String!
  spec: AwsAppMeshS1t!
  status: AwsAppMeshS2tStatus!
  virtualRouterName: String!
}

type AwsAppMeshS1t {
  grpcRoute: AwsAppMeshS1tGrpcRoute
  http2Route: AwsAppMeshS2g
  httpRoute: AwsAppMeshS2g
  priority: Int
  tcpRoute: AwsAppMeshS1tTcpRoute
}

type AwsAppMeshS1tGrpcRoute {
  action: AwsAppMeshS1tGrpcRouteAction!
  match: AwsAppMeshS1tGrpcRouteMatch!
  retryPolicy: AwsAppMeshS1tGrpcRouteRetryPolicy
  timeout: AwsAppMeshS2f
}

type AwsAppMeshS1tGrpcRouteAction {
  weightedTargets: [AwsAppMeshS1w]!
}

type AwsAppMeshS1w {
  virtualNode: String!
  weight: Int!
}

type AwsAppMeshS1tGrpcRouteMatch {
  metadata: [AwsAppMeshS1tGrpcRouteMatchMetadata]
  methodName: String
  serviceName: String
}

type AwsAppMeshS1tGrpcRouteMatchMetadata {
  invert: Boolean
  match: AwsAppMeshS1tGrpcRouteMatchMetadataMatch
  name: String!
}

type AwsAppMeshS1tGrpcRouteMatchMetadataMatch {
  exact: String
  prefix: String
  range: AwsAppMeshSm
  regex: String
  suffix: String
}

type AwsAppMeshS1tGrpcRouteRetryPolicy {
  grpcRetryEvents: [String]
  httpRetryEvents: [String]
  maxRetries: JSON!
  perRetryTimeout: AwsAppMeshS2a!
  tcpRetryEvents: [String]
}

type AwsAppMeshS2a {
  unit: String
  value: JSON
}

type AwsAppMeshS2f {
  idle: AwsAppMeshS2a
  perRequest: AwsAppMeshS2a
}

type AwsAppMeshS2g {
  action: AwsAppMeshS2gAction!
  match: AwsAppMeshS2gMatch!
  retryPolicy: AwsAppMeshS2gRetryPolicy
  timeout: AwsAppMeshS2n
}

type AwsAppMeshS2gAction {
  weightedTargets: [AwsAppMeshS1w]!
}

type AwsAppMeshS2gMatch {
  headers: [AwsAppMeshS2gMatchHeaders]
  method: String
  path: AwsAppMeshS12
  prefix: String
  queryParameters: [AwsAppMeshS14]
  scheme: String
}

type AwsAppMeshS2gMatchHeaders {
  invert: Boolean
  match: AwsAppMeshS10
  name: String!
}

type AwsAppMeshS2gRetryPolicy {
  httpRetryEvents: [String]
  maxRetries: JSON!
  perRetryTimeout: AwsAppMeshS2a!
  tcpRetryEvents: [String]
}

type AwsAppMeshS2n {
  idle: AwsAppMeshS2a
  perRequest: AwsAppMeshS2a
}

type AwsAppMeshS1tTcpRoute {
  action: AwsAppMeshS1tTcpRouteAction!
  timeout: AwsAppMeshS2r
}

type AwsAppMeshS1tTcpRouteAction {
  weightedTargets: [AwsAppMeshS1w]!
}

type AwsAppMeshS2r {
  idle: AwsAppMeshS2a
}

type AwsAppMeshS2tStatus {
  status: String!
}

input AwsAppMeshCreateRouteInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  routeName: String!
  spec: AwsAppMeshS1tInput!
  tags: [AwsAppMeshS19Input]
  virtualRouterName: String!
}

input AwsAppMeshS1tInput {
  grpcRoute: AwsAppMeshS1tGrpcRouteInput
  http2Route: AwsAppMeshS2gInput
  httpRoute: AwsAppMeshS2gInput
  priority: Int
  tcpRoute: AwsAppMeshS1tTcpRouteInput
}

input AwsAppMeshS1tGrpcRouteInput {
  action: AwsAppMeshS1tGrpcRouteActionInput!
  match: AwsAppMeshS1tGrpcRouteMatchInput!
  retryPolicy: AwsAppMeshS1tGrpcRouteRetryPolicyInput
  timeout: AwsAppMeshS2fInput
}

input AwsAppMeshS1tGrpcRouteActionInput {
  weightedTargets: [AwsAppMeshS1wInput]!
}

input AwsAppMeshS1wInput {
  virtualNode: String!
  weight: Int!
}

input AwsAppMeshS1tGrpcRouteMatchInput {
  metadata: [AwsAppMeshS1tGrpcRouteMatchMetadataInput]
  methodName: String
  serviceName: String
}

input AwsAppMeshS1tGrpcRouteMatchMetadataInput {
  invert: Boolean
  match: AwsAppMeshS1tGrpcRouteMatchMetadataMatchInput
  name: String!
}

input AwsAppMeshS1tGrpcRouteMatchMetadataMatchInput {
  exact: String
  prefix: String
  range: AwsAppMeshSmInput
  regex: String
  suffix: String
}

input AwsAppMeshS1tGrpcRouteRetryPolicyInput {
  grpcRetryEvents: [String]
  httpRetryEvents: [String]
  maxRetries: JSON!
  perRetryTimeout: AwsAppMeshS2aInput!
  tcpRetryEvents: [String]
}

input AwsAppMeshS2aInput {
  unit: String
  value: JSON
}

input AwsAppMeshS2fInput {
  idle: AwsAppMeshS2aInput
  perRequest: AwsAppMeshS2aInput
}

input AwsAppMeshS2gInput {
  action: AwsAppMeshS2gActionInput!
  match: AwsAppMeshS2gMatchInput!
  retryPolicy: AwsAppMeshS2gRetryPolicyInput
  timeout: AwsAppMeshS2nInput
}

input AwsAppMeshS2gActionInput {
  weightedTargets: [AwsAppMeshS1wInput]!
}

input AwsAppMeshS2gMatchInput {
  headers: [AwsAppMeshS2gMatchHeadersInput]
  method: String
  path: AwsAppMeshS12Input
  prefix: String
  queryParameters: [AwsAppMeshS14Input]
  scheme: String
}

input AwsAppMeshS2gMatchHeadersInput {
  invert: Boolean
  match: AwsAppMeshS10Input
  name: String!
}

input AwsAppMeshS2gRetryPolicyInput {
  httpRetryEvents: [String]
  maxRetries: JSON!
  perRetryTimeout: AwsAppMeshS2aInput!
  tcpRetryEvents: [String]
}

input AwsAppMeshS2nInput {
  idle: AwsAppMeshS2aInput
  perRequest: AwsAppMeshS2aInput
}

input AwsAppMeshS1tTcpRouteInput {
  action: AwsAppMeshS1tTcpRouteActionInput!
  timeout: AwsAppMeshS2rInput
}

input AwsAppMeshS1tTcpRouteActionInput {
  weightedTargets: [AwsAppMeshS1wInput]!
}

input AwsAppMeshS2rInput {
  idle: AwsAppMeshS2aInput
}

type AwsAppMeshCreateVirtualGatewayOutput {
  virtualGateway: AwsAppMeshS47!
}

type AwsAppMeshS47 {
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS2x!
  status: AwsAppMeshS47Status!
  virtualGatewayName: String!
}

type AwsAppMeshS2x {
  backendDefaults: AwsAppMeshS2xBackendDefaults
  listeners: [AwsAppMeshS2xListeners]!
  logging: AwsAppMeshS2xLogging
}

type AwsAppMeshS2xBackendDefaults {
  clientPolicy: AwsAppMeshS2xBackendDefaultsClientPolicy
}

type AwsAppMeshS2xBackendDefaultsClientPolicy {
  tls: AwsAppMeshS2xBackendDefaultsClientPolicyTls
}

type AwsAppMeshS2xBackendDefaultsClientPolicyTls {
  certificate: AwsAppMeshS2xBackendDefaultsClientPolicyTlsCertificate
  enforce: Boolean
  ports: [Int]
  validation: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidation!
}

type AwsAppMeshS2xBackendDefaultsClientPolicyTlsCertificate {
  file: AwsAppMeshS32
  sds: AwsAppMeshS34
}

type AwsAppMeshS32 {
  certificateChain: String!
  privateKey: String!
}

type AwsAppMeshS34 {
  secretName: String!
}

type AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidation {
  subjectAlternativeNames: AwsAppMeshS39
  trust: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrust!
}

type AwsAppMeshS39 {
  match: AwsAppMeshS39Match!
}

type AwsAppMeshS39Match {
  exact: [String]!
}

type AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrust {
  acm: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustAcm
  file: AwsAppMeshS3g
  sds: AwsAppMeshS3h
}

type AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustAcm {
  certificateAuthorityArns: [String]!
}

type AwsAppMeshS3g {
  certificateChain: String!
}

type AwsAppMeshS3h {
  secretName: String!
}

type AwsAppMeshS2xListeners {
  connectionPool: AwsAppMeshS2xListenersConnectionPool
  healthCheck: AwsAppMeshS2xListenersHealthCheck
  portMapping: AwsAppMeshS2xListenersPortMapping!
  tls: AwsAppMeshS2xListenersTls
}

type AwsAppMeshS2xListenersConnectionPool {
  grpc: AwsAppMeshS2xListenersConnectionPoolGrpc
  http: AwsAppMeshS2xListenersConnectionPoolHttp
  http2: AwsAppMeshS2xListenersConnectionPoolHttp2
}

type AwsAppMeshS2xListenersConnectionPoolGrpc {
  maxRequests: Int!
}

type AwsAppMeshS2xListenersConnectionPoolHttp {
  maxConnections: Int!
  maxPendingRequests: Int
}

type AwsAppMeshS2xListenersConnectionPoolHttp2 {
  maxRequests: Int!
}

type AwsAppMeshS2xListenersHealthCheck {
  healthyThreshold: Int!
  intervalMillis: JSON!
  path: String
  port: Int
  protocol: String!
  timeoutMillis: JSON!
  unhealthyThreshold: Int!
}

type AwsAppMeshS2xListenersPortMapping {
  port: Int!
  protocol: String!
}

type AwsAppMeshS2xListenersTls {
  certificate: AwsAppMeshS2xListenersTlsCertificate!
  mode: String!
  validation: AwsAppMeshS2xListenersTlsValidation
}

type AwsAppMeshS2xListenersTlsCertificate {
  acm: AwsAppMeshS2xListenersTlsCertificateAcm
  file: AwsAppMeshS32
  sds: AwsAppMeshS34
}

type AwsAppMeshS2xListenersTlsCertificateAcm {
  certificateArn: String!
}

type AwsAppMeshS2xListenersTlsValidation {
  subjectAlternativeNames: AwsAppMeshS39
  trust: AwsAppMeshS2xListenersTlsValidationTrust!
}

type AwsAppMeshS2xListenersTlsValidationTrust {
  file: AwsAppMeshS3g
  sds: AwsAppMeshS3h
}

type AwsAppMeshS2xLogging {
  accessLog: AwsAppMeshS2xLoggingAccessLog
}

type AwsAppMeshS2xLoggingAccessLog {
  file: AwsAppMeshS2xLoggingAccessLogFile
}

type AwsAppMeshS2xLoggingAccessLogFile {
  path: String!
}

type AwsAppMeshS47Status {
  status: String!
}

input AwsAppMeshCreateVirtualGatewayInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS2xInput!
  tags: [AwsAppMeshS19Input]
  virtualGatewayName: String!
}

input AwsAppMeshS2xInput {
  backendDefaults: AwsAppMeshS2xBackendDefaultsInput
  listeners: [AwsAppMeshS2xListenersInput]!
  logging: AwsAppMeshS2xLoggingInput
}

input AwsAppMeshS2xBackendDefaultsInput {
  clientPolicy: AwsAppMeshS2xBackendDefaultsClientPolicyInput
}

input AwsAppMeshS2xBackendDefaultsClientPolicyInput {
  tls: AwsAppMeshS2xBackendDefaultsClientPolicyTlsInput
}

input AwsAppMeshS2xBackendDefaultsClientPolicyTlsInput {
  certificate: AwsAppMeshS2xBackendDefaultsClientPolicyTlsCertificateInput
  enforce: Boolean
  ports: [Int]
  validation: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationInput!
}

input AwsAppMeshS2xBackendDefaultsClientPolicyTlsCertificateInput {
  file: AwsAppMeshS32Input
  sds: AwsAppMeshS34Input
}

input AwsAppMeshS32Input {
  certificateChain: String!
  privateKey: String!
}

input AwsAppMeshS34Input {
  secretName: String!
}

input AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationInput {
  subjectAlternativeNames: AwsAppMeshS39Input
  trust: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustInput!
}

input AwsAppMeshS39Input {
  match: AwsAppMeshS39MatchInput!
}

input AwsAppMeshS39MatchInput {
  exact: [String]!
}

input AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustInput {
  acm: AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustAcmInput
  file: AwsAppMeshS3gInput
  sds: AwsAppMeshS3hInput
}

input AwsAppMeshS2xBackendDefaultsClientPolicyTlsValidationTrustAcmInput {
  certificateAuthorityArns: [String]!
}

input AwsAppMeshS3gInput {
  certificateChain: String!
}

input AwsAppMeshS3hInput {
  secretName: String!
}

input AwsAppMeshS2xListenersInput {
  connectionPool: AwsAppMeshS2xListenersConnectionPoolInput
  healthCheck: AwsAppMeshS2xListenersHealthCheckInput
  portMapping: AwsAppMeshS2xListenersPortMappingInput!
  tls: AwsAppMeshS2xListenersTlsInput
}

input AwsAppMeshS2xListenersConnectionPoolInput {
  grpc: AwsAppMeshS2xListenersConnectionPoolGrpcInput
  http: AwsAppMeshS2xListenersConnectionPoolHttpInput
  http2: AwsAppMeshS2xListenersConnectionPoolHttp2Input
}

input AwsAppMeshS2xListenersConnectionPoolGrpcInput {
  maxRequests: Int!
}

input AwsAppMeshS2xListenersConnectionPoolHttpInput {
  maxConnections: Int!
  maxPendingRequests: Int
}

input AwsAppMeshS2xListenersConnectionPoolHttp2Input {
  maxRequests: Int!
}

input AwsAppMeshS2xListenersHealthCheckInput {
  healthyThreshold: Int!
  intervalMillis: JSON!
  path: String
  port: Int
  protocol: String!
  timeoutMillis: JSON!
  unhealthyThreshold: Int!
}

input AwsAppMeshS2xListenersPortMappingInput {
  port: Int!
  protocol: String!
}

input AwsAppMeshS2xListenersTlsInput {
  certificate: AwsAppMeshS2xListenersTlsCertificateInput!
  mode: String!
  validation: AwsAppMeshS2xListenersTlsValidationInput
}

input AwsAppMeshS2xListenersTlsCertificateInput {
  acm: AwsAppMeshS2xListenersTlsCertificateAcmInput
  file: AwsAppMeshS32Input
  sds: AwsAppMeshS34Input
}

input AwsAppMeshS2xListenersTlsCertificateAcmInput {
  certificateArn: String!
}

input AwsAppMeshS2xListenersTlsValidationInput {
  subjectAlternativeNames: AwsAppMeshS39Input
  trust: AwsAppMeshS2xListenersTlsValidationTrustInput!
}

input AwsAppMeshS2xListenersTlsValidationTrustInput {
  file: AwsAppMeshS3gInput
  sds: AwsAppMeshS3hInput
}

input AwsAppMeshS2xLoggingInput {
  accessLog: AwsAppMeshS2xLoggingAccessLogInput
}

input AwsAppMeshS2xLoggingAccessLogInput {
  file: AwsAppMeshS2xLoggingAccessLogFileInput
}

input AwsAppMeshS2xLoggingAccessLogFileInput {
  path: String!
}

type AwsAppMeshCreateVirtualNodeOutput {
  virtualNode: AwsAppMeshS5t!
}

type AwsAppMeshS5t {
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS4b!
  status: AwsAppMeshS5tStatus!
  virtualNodeName: String!
}

type AwsAppMeshS4b {
  backendDefaults: AwsAppMeshS4bBackendDefaults
  backends: [AwsAppMeshS4bBackends]
  listeners: [AwsAppMeshS4bListeners]
  logging: AwsAppMeshS4bLogging
  serviceDiscovery: AwsAppMeshS4bServiceDiscovery
}

type AwsAppMeshS4bBackendDefaults {
  clientPolicy: AwsAppMeshS4d
}

type AwsAppMeshS4d {
  tls: AwsAppMeshS4dTls
}

type AwsAppMeshS4dTls {
  certificate: AwsAppMeshS4dTlsCertificate
  enforce: Boolean
  ports: [Int]
  validation: AwsAppMeshS4dTlsValidation!
}

type AwsAppMeshS4dTlsCertificate {
  file: AwsAppMeshS4g
  sds: AwsAppMeshS4h
}

type AwsAppMeshS4g {
  certificateChain: String!
  privateKey: String!
}

type AwsAppMeshS4h {
  secretName: String!
}

type AwsAppMeshS4dTlsValidation {
  subjectAlternativeNames: AwsAppMeshS39
  trust: AwsAppMeshS4dTlsValidationTrust!
}

type AwsAppMeshS4dTlsValidationTrust {
  acm: AwsAppMeshS4dTlsValidationTrustAcm
  file: AwsAppMeshS4n
  sds: AwsAppMeshS4o
}

type AwsAppMeshS4dTlsValidationTrustAcm {
  certificateAuthorityArns: [String]!
}

type AwsAppMeshS4n {
  certificateChain: String!
}

type AwsAppMeshS4o {
  secretName: String!
}

type AwsAppMeshS4bBackends {
  virtualService: AwsAppMeshS4bBackendsVirtualService
}

type AwsAppMeshS4bBackendsVirtualService {
  clientPolicy: AwsAppMeshS4d
  virtualServiceName: String!
}

type AwsAppMeshS4bListeners {
  connectionPool: AwsAppMeshS4bListenersConnectionPool
  healthCheck: AwsAppMeshS4bListenersHealthCheck
  outlierDetection: AwsAppMeshS4bListenersOutlierDetection
  portMapping: AwsAppMeshS57!
  timeout: AwsAppMeshS4bListenersTimeout
  tls: AwsAppMeshS4bListenersTls
}

type AwsAppMeshS4bListenersConnectionPool {
  grpc: AwsAppMeshS4bListenersConnectionPoolGrpc
  http: AwsAppMeshS4bListenersConnectionPoolHttp
  http2: AwsAppMeshS4bListenersConnectionPoolHttp2
  tcp: AwsAppMeshS4bListenersConnectionPoolTcp
}

type AwsAppMeshS4bListenersConnectionPoolGrpc {
  maxRequests: Int!
}

type AwsAppMeshS4bListenersConnectionPoolHttp {
  maxConnections: Int!
  maxPendingRequests: Int
}

type AwsAppMeshS4bListenersConnectionPoolHttp2 {
  maxRequests: Int!
}

type AwsAppMeshS4bListenersConnectionPoolTcp {
  maxConnections: Int!
}

type AwsAppMeshS4bListenersHealthCheck {
  healthyThreshold: Int!
  intervalMillis: JSON!
  path: String
  port: Int
  protocol: String!
  timeoutMillis: JSON!
  unhealthyThreshold: Int!
}

type AwsAppMeshS4bListenersOutlierDetection {
  baseEjectionDuration: AwsAppMeshS2a!
  interval: AwsAppMeshS2a!
  maxEjectionPercent: Int!
  maxServerErrors: JSON!
}

type AwsAppMeshS57 {
  port: Int!
  protocol: String!
}

type AwsAppMeshS4bListenersTimeout {
  grpc: AwsAppMeshS2f
  http: AwsAppMeshS2n
  http2: AwsAppMeshS2n
  tcp: AwsAppMeshS2r
}

type AwsAppMeshS4bListenersTls {
  certificate: AwsAppMeshS4bListenersTlsCertificate!
  mode: String!
  validation: AwsAppMeshS4bListenersTlsValidation
}

type AwsAppMeshS4bListenersTlsCertificate {
  acm: AwsAppMeshS4bListenersTlsCertificateAcm
  file: AwsAppMeshS4g
  sds: AwsAppMeshS4h
}

type AwsAppMeshS4bListenersTlsCertificateAcm {
  certificateArn: String!
}

type AwsAppMeshS4bListenersTlsValidation {
  subjectAlternativeNames: AwsAppMeshS39
  trust: AwsAppMeshS4bListenersTlsValidationTrust!
}

type AwsAppMeshS4bListenersTlsValidationTrust {
  file: AwsAppMeshS4n
  sds: AwsAppMeshS4o
}

type AwsAppMeshS4bLogging {
  accessLog: AwsAppMeshS4bLoggingAccessLog
}

type AwsAppMeshS4bLoggingAccessLog {
  file: AwsAppMeshS4bLoggingAccessLogFile
}

type AwsAppMeshS4bLoggingAccessLogFile {
  path: String!
}

type AwsAppMeshS4bServiceDiscovery {
  awsCloudMap: AwsAppMeshS4bServiceDiscoveryAwsCloudMap
  dns: AwsAppMeshS4bServiceDiscoveryDns
}

type AwsAppMeshS4bServiceDiscoveryAwsCloudMap {
  attributes: [AwsAppMeshS4bServiceDiscoveryAwsCloudMapAttributes]
  namespaceName: String!
  serviceName: String!
}

type AwsAppMeshS4bServiceDiscoveryAwsCloudMapAttributes {
  key: String!
  value: String!
}

type AwsAppMeshS4bServiceDiscoveryDns {
  hostname: String!
  responseType: String
}

type AwsAppMeshS5tStatus {
  status: String!
}

input AwsAppMeshCreateVirtualNodeInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS4bInput!
  tags: [AwsAppMeshS19Input]
  virtualNodeName: String!
}

input AwsAppMeshS4bInput {
  backendDefaults: AwsAppMeshS4bBackendDefaultsInput
  backends: [AwsAppMeshS4bBackendsInput]
  listeners: [AwsAppMeshS4bListenersInput]
  logging: AwsAppMeshS4bLoggingInput
  serviceDiscovery: AwsAppMeshS4bServiceDiscoveryInput
}

input AwsAppMeshS4bBackendDefaultsInput {
  clientPolicy: AwsAppMeshS4dInput
}

input AwsAppMeshS4dInput {
  tls: AwsAppMeshS4dTlsInput
}

input AwsAppMeshS4dTlsInput {
  certificate: AwsAppMeshS4dTlsCertificateInput
  enforce: Boolean
  ports: [Int]
  validation: AwsAppMeshS4dTlsValidationInput!
}

input AwsAppMeshS4dTlsCertificateInput {
  file: AwsAppMeshS4gInput
  sds: AwsAppMeshS4hInput
}

input AwsAppMeshS4gInput {
  certificateChain: String!
  privateKey: String!
}

input AwsAppMeshS4hInput {
  secretName: String!
}

input AwsAppMeshS4dTlsValidationInput {
  subjectAlternativeNames: AwsAppMeshS39Input
  trust: AwsAppMeshS4dTlsValidationTrustInput!
}

input AwsAppMeshS4dTlsValidationTrustInput {
  acm: AwsAppMeshS4dTlsValidationTrustAcmInput
  file: AwsAppMeshS4nInput
  sds: AwsAppMeshS4oInput
}

input AwsAppMeshS4dTlsValidationTrustAcmInput {
  certificateAuthorityArns: [String]!
}

input AwsAppMeshS4nInput {
  certificateChain: String!
}

input AwsAppMeshS4oInput {
  secretName: String!
}

input AwsAppMeshS4bBackendsInput {
  virtualService: AwsAppMeshS4bBackendsVirtualServiceInput
}

input AwsAppMeshS4bBackendsVirtualServiceInput {
  clientPolicy: AwsAppMeshS4dInput
  virtualServiceName: String!
}

input AwsAppMeshS4bListenersInput {
  connectionPool: AwsAppMeshS4bListenersConnectionPoolInput
  healthCheck: AwsAppMeshS4bListenersHealthCheckInput
  outlierDetection: AwsAppMeshS4bListenersOutlierDetectionInput
  portMapping: AwsAppMeshS57Input!
  timeout: AwsAppMeshS4bListenersTimeoutInput
  tls: AwsAppMeshS4bListenersTlsInput
}

input AwsAppMeshS4bListenersConnectionPoolInput {
  grpc: AwsAppMeshS4bListenersConnectionPoolGrpcInput
  http: AwsAppMeshS4bListenersConnectionPoolHttpInput
  http2: AwsAppMeshS4bListenersConnectionPoolHttp2Input
  tcp: AwsAppMeshS4bListenersConnectionPoolTcpInput
}

input AwsAppMeshS4bListenersConnectionPoolGrpcInput {
  maxRequests: Int!
}

input AwsAppMeshS4bListenersConnectionPoolHttpInput {
  maxConnections: Int!
  maxPendingRequests: Int
}

input AwsAppMeshS4bListenersConnectionPoolHttp2Input {
  maxRequests: Int!
}

input AwsAppMeshS4bListenersConnectionPoolTcpInput {
  maxConnections: Int!
}

input AwsAppMeshS4bListenersHealthCheckInput {
  healthyThreshold: Int!
  intervalMillis: JSON!
  path: String
  port: Int
  protocol: String!
  timeoutMillis: JSON!
  unhealthyThreshold: Int!
}

input AwsAppMeshS4bListenersOutlierDetectionInput {
  baseEjectionDuration: AwsAppMeshS2aInput!
  interval: AwsAppMeshS2aInput!
  maxEjectionPercent: Int!
  maxServerErrors: JSON!
}

input AwsAppMeshS57Input {
  port: Int!
  protocol: String!
}

input AwsAppMeshS4bListenersTimeoutInput {
  grpc: AwsAppMeshS2fInput
  http: AwsAppMeshS2nInput
  http2: AwsAppMeshS2nInput
  tcp: AwsAppMeshS2rInput
}

input AwsAppMeshS4bListenersTlsInput {
  certificate: AwsAppMeshS4bListenersTlsCertificateInput!
  mode: String!
  validation: AwsAppMeshS4bListenersTlsValidationInput
}

input AwsAppMeshS4bListenersTlsCertificateInput {
  acm: AwsAppMeshS4bListenersTlsCertificateAcmInput
  file: AwsAppMeshS4gInput
  sds: AwsAppMeshS4hInput
}

input AwsAppMeshS4bListenersTlsCertificateAcmInput {
  certificateArn: String!
}

input AwsAppMeshS4bListenersTlsValidationInput {
  subjectAlternativeNames: AwsAppMeshS39Input
  trust: AwsAppMeshS4bListenersTlsValidationTrustInput!
}

input AwsAppMeshS4bListenersTlsValidationTrustInput {
  file: AwsAppMeshS4nInput
  sds: AwsAppMeshS4oInput
}

input AwsAppMeshS4bLoggingInput {
  accessLog: AwsAppMeshS4bLoggingAccessLogInput
}

input AwsAppMeshS4bLoggingAccessLogInput {
  file: AwsAppMeshS4bLoggingAccessLogFileInput
}

input AwsAppMeshS4bLoggingAccessLogFileInput {
  path: String!
}

input AwsAppMeshS4bServiceDiscoveryInput {
  awsCloudMap: AwsAppMeshS4bServiceDiscoveryAwsCloudMapInput
  dns: AwsAppMeshS4bServiceDiscoveryDnsInput
}

input AwsAppMeshS4bServiceDiscoveryAwsCloudMapInput {
  attributes: [AwsAppMeshS4bServiceDiscoveryAwsCloudMapAttributesInput]
  namespaceName: String!
  serviceName: String!
}

input AwsAppMeshS4bServiceDiscoveryAwsCloudMapAttributesInput {
  key: String!
  value: String!
}

input AwsAppMeshS4bServiceDiscoveryDnsInput {
  hostname: String!
  responseType: String
}

type AwsAppMeshCreateVirtualRouterOutput {
  virtualRouter: AwsAppMeshS61!
}

type AwsAppMeshS61 {
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS5x!
  status: AwsAppMeshS61Status!
  virtualRouterName: String!
}

type AwsAppMeshS5x {
  listeners: [AwsAppMeshS5xListeners]
}

type AwsAppMeshS5xListeners {
  portMapping: AwsAppMeshS57!
}

type AwsAppMeshS61Status {
  status: String!
}

input AwsAppMeshCreateVirtualRouterInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS5xInput!
  tags: [AwsAppMeshS19Input]
  virtualRouterName: String!
}

input AwsAppMeshS5xInput {
  listeners: [AwsAppMeshS5xListenersInput]
}

input AwsAppMeshS5xListenersInput {
  portMapping: AwsAppMeshS57Input!
}

type AwsAppMeshCreateVirtualServiceOutput {
  virtualService: AwsAppMeshS6a!
}

type AwsAppMeshS6a {
  meshName: String!
  metadata: AwsAppMeshS1f!
  spec: AwsAppMeshS65!
  status: AwsAppMeshS6aStatus!
  virtualServiceName: String!
}

type AwsAppMeshS65 {
  provider: AwsAppMeshS65Provider
}

type AwsAppMeshS65Provider {
  virtualNode: AwsAppMeshS65ProviderVirtualNode
  virtualRouter: AwsAppMeshS65ProviderVirtualRouter
}

type AwsAppMeshS65ProviderVirtualNode {
  virtualNodeName: String!
}

type AwsAppMeshS65ProviderVirtualRouter {
  virtualRouterName: String!
}

type AwsAppMeshS6aStatus {
  status: String!
}

input AwsAppMeshCreateVirtualServiceInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS65Input!
  tags: [AwsAppMeshS19Input]
  virtualServiceName: String!
}

input AwsAppMeshS65Input {
  provider: AwsAppMeshS65ProviderInput
}

input AwsAppMeshS65ProviderInput {
  virtualNode: AwsAppMeshS65ProviderVirtualNodeInput
  virtualRouter: AwsAppMeshS65ProviderVirtualRouterInput
}

input AwsAppMeshS65ProviderVirtualNodeInput {
  virtualNodeName: String!
}

input AwsAppMeshS65ProviderVirtualRouterInput {
  virtualRouterName: String!
}

type AwsAppMeshDeleteGatewayRouteOutput {
  gatewayRoute: AwsAppMeshS1e!
}

input AwsAppMeshDeleteGatewayRouteInput {
  gatewayRouteName: String!
  meshName: String!
  meshOwner: String
  virtualGatewayName: String!
}

type AwsAppMeshDeleteMeshOutput {
  mesh: AwsAppMeshS1p!
}

input AwsAppMeshDeleteMeshInput {
  meshName: String!
}

type AwsAppMeshDeleteRouteOutput {
  route: AwsAppMeshS2t!
}

input AwsAppMeshDeleteRouteInput {
  meshName: String!
  meshOwner: String
  routeName: String!
  virtualRouterName: String!
}

type AwsAppMeshDeleteVirtualGatewayOutput {
  virtualGateway: AwsAppMeshS47!
}

input AwsAppMeshDeleteVirtualGatewayInput {
  meshName: String!
  meshOwner: String
  virtualGatewayName: String!
}

type AwsAppMeshDeleteVirtualNodeOutput {
  virtualNode: AwsAppMeshS5t!
}

input AwsAppMeshDeleteVirtualNodeInput {
  meshName: String!
  meshOwner: String
  virtualNodeName: String!
}

type AwsAppMeshDeleteVirtualRouterOutput {
  virtualRouter: AwsAppMeshS61!
}

input AwsAppMeshDeleteVirtualRouterInput {
  meshName: String!
  meshOwner: String
  virtualRouterName: String!
}

type AwsAppMeshDeleteVirtualServiceOutput {
  virtualService: AwsAppMeshS6a!
}

input AwsAppMeshDeleteVirtualServiceInput {
  meshName: String!
  meshOwner: String
  virtualServiceName: String!
}

type AwsAppMeshDescribeGatewayRouteOutput {
  gatewayRoute: AwsAppMeshS1e!
}

input AwsAppMeshDescribeGatewayRouteInput {
  gatewayRouteName: String!
  meshName: String!
  meshOwner: String
  virtualGatewayName: String!
}

type AwsAppMeshDescribeMeshOutput {
  mesh: AwsAppMeshS1p!
}

input AwsAppMeshDescribeMeshInput {
  meshName: String!
  meshOwner: String
}

type AwsAppMeshDescribeRouteOutput {
  route: AwsAppMeshS2t!
}

input AwsAppMeshDescribeRouteInput {
  meshName: String!
  meshOwner: String
  routeName: String!
  virtualRouterName: String!
}

type AwsAppMeshDescribeVirtualGatewayOutput {
  virtualGateway: AwsAppMeshS47!
}

input AwsAppMeshDescribeVirtualGatewayInput {
  meshName: String!
  meshOwner: String
  virtualGatewayName: String!
}

type AwsAppMeshDescribeVirtualNodeOutput {
  virtualNode: AwsAppMeshS5t!
}

input AwsAppMeshDescribeVirtualNodeInput {
  meshName: String!
  meshOwner: String
  virtualNodeName: String!
}

type AwsAppMeshDescribeVirtualRouterOutput {
  virtualRouter: AwsAppMeshS61!
}

input AwsAppMeshDescribeVirtualRouterInput {
  meshName: String!
  meshOwner: String
  virtualRouterName: String!
}

type AwsAppMeshDescribeVirtualServiceOutput {
  virtualService: AwsAppMeshS6a!
}

input AwsAppMeshDescribeVirtualServiceInput {
  meshName: String!
  meshOwner: String
  virtualServiceName: String!
}

type AwsAppMeshListGatewayRoutesOutput {
  gatewayRoutes: [AwsAppMeshListGatewayRoutesOutputGatewayRoutes]!
  nextToken: String
}

type AwsAppMeshListGatewayRoutesOutputGatewayRoutes {
  arn: String!
  createdAt: Date!
  gatewayRouteName: String!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
  virtualGatewayName: String!
}

input AwsAppMeshListGatewayRoutesInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
  virtualGatewayName: String!
}

type AwsAppMeshListMeshesOutput {
  meshes: [AwsAppMeshListMeshesOutputMeshes]!
  nextToken: String
}

type AwsAppMeshListMeshesOutputMeshes {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
}

input AwsAppMeshListMeshesInput {
  limit: Int
  nextToken: String
}

type AwsAppMeshListRoutesOutput {
  nextToken: String
  routes: [AwsAppMeshListRoutesOutputRoutes]!
}

type AwsAppMeshListRoutesOutputRoutes {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  routeName: String!
  version: JSON!
  virtualRouterName: String!
}

input AwsAppMeshListRoutesInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
  virtualRouterName: String!
}

type AwsAppMeshListTagsForResourceOutput {
  nextToken: String
  tags: [AwsAppMeshS19]!
}

type AwsAppMeshS19 {
  key: String!
  value: String!
}

input AwsAppMeshListTagsForResourceInput {
  limit: Int
  nextToken: String
  resourceArn: String!
}

type AwsAppMeshListVirtualGatewaysOutput {
  nextToken: String
  virtualGateways: [AwsAppMeshListVirtualGatewaysOutputVirtualGateways]!
}

type AwsAppMeshListVirtualGatewaysOutputVirtualGateways {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
  virtualGatewayName: String!
}

input AwsAppMeshListVirtualGatewaysInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
}

type AwsAppMeshListVirtualNodesOutput {
  nextToken: String
  virtualNodes: [AwsAppMeshListVirtualNodesOutputVirtualNodes]!
}

type AwsAppMeshListVirtualNodesOutputVirtualNodes {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
  virtualNodeName: String!
}

input AwsAppMeshListVirtualNodesInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
}

type AwsAppMeshListVirtualRoutersOutput {
  nextToken: String
  virtualRouters: [AwsAppMeshListVirtualRoutersOutputVirtualRouters]!
}

type AwsAppMeshListVirtualRoutersOutputVirtualRouters {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
  virtualRouterName: String!
}

input AwsAppMeshListVirtualRoutersInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
}

type AwsAppMeshListVirtualServicesOutput {
  nextToken: String
  virtualServices: [AwsAppMeshListVirtualServicesOutputVirtualServices]!
}

type AwsAppMeshListVirtualServicesOutputVirtualServices {
  arn: String!
  createdAt: Date!
  lastUpdatedAt: Date!
  meshName: String!
  meshOwner: String!
  resourceOwner: String!
  version: JSON!
  virtualServiceName: String!
}

input AwsAppMeshListVirtualServicesInput {
  limit: Int
  meshName: String!
  meshOwner: String
  nextToken: String
}

input AwsAppMeshTagResourceInput {
  resourceArn: String!
  tags: [AwsAppMeshS19Input]!
}

input AwsAppMeshUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsAppMeshUpdateGatewayRouteOutput {
  gatewayRoute: AwsAppMeshS1e!
}

input AwsAppMeshUpdateGatewayRouteInput {
  clientToken: String
  gatewayRouteName: String!
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS5Input!
  virtualGatewayName: String!
}

type AwsAppMeshUpdateMeshOutput {
  mesh: AwsAppMeshS1p!
}

input AwsAppMeshUpdateMeshInput {
  clientToken: String
  meshName: String!
  spec: AwsAppMeshS1lInput
}

type AwsAppMeshUpdateRouteOutput {
  route: AwsAppMeshS2t!
}

input AwsAppMeshUpdateRouteInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  routeName: String!
  spec: AwsAppMeshS1tInput!
  virtualRouterName: String!
}

type AwsAppMeshUpdateVirtualGatewayOutput {
  virtualGateway: AwsAppMeshS47!
}

input AwsAppMeshUpdateVirtualGatewayInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS2xInput!
  virtualGatewayName: String!
}

type AwsAppMeshUpdateVirtualNodeOutput {
  virtualNode: AwsAppMeshS5t!
}

input AwsAppMeshUpdateVirtualNodeInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS4bInput!
  virtualNodeName: String!
}

type AwsAppMeshUpdateVirtualRouterOutput {
  virtualRouter: AwsAppMeshS61!
}

input AwsAppMeshUpdateVirtualRouterInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS5xInput!
  virtualRouterName: String!
}

type AwsAppMeshUpdateVirtualServiceOutput {
  virtualService: AwsAppMeshS6a!
}

input AwsAppMeshUpdateVirtualServiceInput {
  clientToken: String
  meshName: String!
  meshOwner: String
  spec: AwsAppMeshS65Input!
  virtualServiceName: String!
}

"""AWS App Runner (2020-05-15)"""
type AwsAppRunner {
  associateCustomDomain(input: AwsAppRunnerAssociateCustomDomainInput!, config: AwsConfig): AwsAppRunnerAssociateCustomDomainOutput
  createAutoScalingConfiguration(input: AwsAppRunnerCreateAutoScalingConfigurationInput!, config: AwsConfig): AwsAppRunnerCreateAutoScalingConfigurationOutput
  createConnection(input: AwsAppRunnerCreateConnectionInput!, config: AwsConfig): AwsAppRunnerCreateConnectionOutput
  createService(input: AwsAppRunnerCreateServiceInput!, config: AwsConfig): AwsAppRunnerCreateServiceOutput
  deleteAutoScalingConfiguration(input: AwsAppRunnerDeleteAutoScalingConfigurationInput!, config: AwsConfig): AwsAppRunnerDeleteAutoScalingConfigurationOutput
  deleteConnection(input: AwsAppRunnerDeleteConnectionInput!, config: AwsConfig): AwsAppRunnerDeleteConnectionOutput
  deleteService(input: AwsAppRunnerDeleteServiceInput!, config: AwsConfig): AwsAppRunnerDeleteServiceOutput
  describeAutoScalingConfiguration(input: AwsAppRunnerDescribeAutoScalingConfigurationInput!, config: AwsConfig): AwsAppRunnerDescribeAutoScalingConfigurationOutput
  describeCustomDomains(input: AwsAppRunnerDescribeCustomDomainsInput!, config: AwsConfig): AwsAppRunnerDescribeCustomDomainsOutput
  describeService(input: AwsAppRunnerDescribeServiceInput!, config: AwsConfig): AwsAppRunnerDescribeServiceOutput
  disassociateCustomDomain(input: AwsAppRunnerDisassociateCustomDomainInput!, config: AwsConfig): AwsAppRunnerDisassociateCustomDomainOutput
  listAutoScalingConfigurations(input: AwsAppRunnerListAutoScalingConfigurationsInput, config: AwsConfig): AwsAppRunnerListAutoScalingConfigurationsOutput
  listConnections(input: AwsAppRunnerListConnectionsInput, config: AwsConfig): AwsAppRunnerListConnectionsOutput
  listOperations(input: AwsAppRunnerListOperationsInput!, config: AwsConfig): AwsAppRunnerListOperationsOutput
  listServices(input: AwsAppRunnerListServicesInput, config: AwsConfig): AwsAppRunnerListServicesOutput
  listTagsForResource(input: AwsAppRunnerListTagsForResourceInput!, config: AwsConfig): AwsAppRunnerListTagsForResourceOutput
  pauseService(input: AwsAppRunnerPauseServiceInput!, config: AwsConfig): AwsAppRunnerPauseServiceOutput
  resumeService(input: AwsAppRunnerResumeServiceInput!, config: AwsConfig): AwsAppRunnerResumeServiceOutput
  startDeployment(input: AwsAppRunnerStartDeploymentInput!, config: AwsConfig): AwsAppRunnerStartDeploymentOutput
  tagResource(input: AwsAppRunnerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppRunnerUntagResourceInput!, config: AwsConfig): JSON
  updateService(input: AwsAppRunnerUpdateServiceInput!, config: AwsConfig): AwsAppRunnerUpdateServiceOutput
}

type AwsAppRunnerAssociateCustomDomainOutput {
  DNSTarget: String!
  ServiceArn: String!
  CustomDomain: AwsAppRunnerS7!
}

type AwsAppRunnerS7 {
  DomainName: String!
  EnableWWWSubdomain: Boolean!
  CertificateValidationRecords: [AwsAppRunnerS7CertificateValidationRecords]
  Status: String!
}

type AwsAppRunnerS7CertificateValidationRecords {
  Name: String
  Type: String
  Value: String
  Status: String
}

input AwsAppRunnerAssociateCustomDomainInput {
  ServiceArn: String!
  DomainName: String!
  EnableWWWSubdomain: Boolean
}

type AwsAppRunnerCreateAutoScalingConfigurationOutput {
  AutoScalingConfiguration: AwsAppRunnerSm!
}

type AwsAppRunnerSm {
  AutoScalingConfigurationArn: String
  AutoScalingConfigurationName: String
  AutoScalingConfigurationRevision: Int
  Latest: Boolean
  Status: String
  MaxConcurrency: Int
  MinSize: Int
  MaxSize: Int
  CreatedAt: Date
  DeletedAt: Date
}

input AwsAppRunnerCreateAutoScalingConfigurationInput {
  AutoScalingConfigurationName: String!
  MaxConcurrency: Int
  MinSize: Int
  MaxSize: Int
  Tags: [AwsAppRunnerShInput]
}

input AwsAppRunnerShInput {
  Key: String
  Value: String
}

type AwsAppRunnerCreateConnectionOutput {
  Connection: AwsAppRunnerSv!
}

type AwsAppRunnerSv {
  ConnectionName: String
  ConnectionArn: String
  ProviderType: String
  Status: String
  CreatedAt: Date
}

input AwsAppRunnerCreateConnectionInput {
  ConnectionName: String!
  ProviderType: String!
  Tags: [AwsAppRunnerShInput]
}

type AwsAppRunnerCreateServiceOutput {
  Service: AwsAppRunnerS1u!
  OperationId: String!
}

type AwsAppRunnerS1u {
  ServiceName: String!
  ServiceId: String!
  ServiceArn: String!
  ServiceUrl: String!
  CreatedAt: Date!
  UpdatedAt: Date!
  DeletedAt: Date
  Status: String!
  SourceConfiguration: AwsAppRunnerSz!
  InstanceConfiguration: AwsAppRunnerS1i!
  EncryptionConfiguration: AwsAppRunnerS1l
  HealthCheckConfiguration: AwsAppRunnerS1n
  AutoScalingConfigurationSummary: AwsAppRunnerS1x!
}

type AwsAppRunnerSz {
  CodeRepository: AwsAppRunnerSzCodeRepository
  ImageRepository: AwsAppRunnerSzImageRepository
  AutoDeploymentsEnabled: Boolean
  AuthenticationConfiguration: AwsAppRunnerSzAuthenticationConfiguration
}

type AwsAppRunnerSzCodeRepository {
  RepositoryUrl: String!
  SourceCodeVersion: AwsAppRunnerSzCodeRepositorySourceCodeVersion!
  CodeConfiguration: AwsAppRunnerSzCodeRepositoryCodeConfiguration
}

type AwsAppRunnerSzCodeRepositorySourceCodeVersion {
  Type: String!
  Value: String!
}

type AwsAppRunnerSzCodeRepositoryCodeConfiguration {
  ConfigurationSource: String!
  CodeConfigurationValues: AwsAppRunnerSzCodeRepositoryCodeConfigurationCodeConfigurationValues
}

type AwsAppRunnerSzCodeRepositoryCodeConfigurationCodeConfigurationValues {
  Runtime: String!
  BuildCommand: String
  StartCommand: String
  Port: String
  RuntimeEnvironmentVariables: JSON
}

type AwsAppRunnerSzImageRepository {
  ImageIdentifier: String!
  ImageConfiguration: AwsAppRunnerSzImageRepositoryImageConfiguration
  ImageRepositoryType: String!
}

type AwsAppRunnerSzImageRepositoryImageConfiguration {
  RuntimeEnvironmentVariables: JSON
  StartCommand: String
  Port: String
}

type AwsAppRunnerSzAuthenticationConfiguration {
  ConnectionArn: String
  AccessRoleArn: String
}

type AwsAppRunnerS1i {
  Cpu: String
  Memory: String
  InstanceRoleArn: String
}

type AwsAppRunnerS1l {
  KmsKey: String!
}

type AwsAppRunnerS1n {
  Protocol: String
  Path: String
  Interval: Int
  Timeout: Int
  HealthyThreshold: Int
  UnhealthyThreshold: Int
}

type AwsAppRunnerS1x {
  AutoScalingConfigurationArn: String
  AutoScalingConfigurationName: String
  AutoScalingConfigurationRevision: Int
}

input AwsAppRunnerCreateServiceInput {
  ServiceName: String!
  SourceConfiguration: AwsAppRunnerSzInput!
  InstanceConfiguration: AwsAppRunnerS1iInput
  Tags: [AwsAppRunnerShInput]
  EncryptionConfiguration: AwsAppRunnerS1lInput
  HealthCheckConfiguration: AwsAppRunnerS1nInput
  AutoScalingConfigurationArn: String
}

input AwsAppRunnerSzInput {
  CodeRepository: AwsAppRunnerSzCodeRepositoryInput
  ImageRepository: AwsAppRunnerSzImageRepositoryInput
  AutoDeploymentsEnabled: Boolean
  AuthenticationConfiguration: AwsAppRunnerSzAuthenticationConfigurationInput
}

input AwsAppRunnerSzCodeRepositoryInput {
  RepositoryUrl: String!
  SourceCodeVersion: AwsAppRunnerSzCodeRepositorySourceCodeVersionInput!
  CodeConfiguration: AwsAppRunnerSzCodeRepositoryCodeConfigurationInput
}

input AwsAppRunnerSzCodeRepositorySourceCodeVersionInput {
  Type: String!
  Value: String!
}

input AwsAppRunnerSzCodeRepositoryCodeConfigurationInput {
  ConfigurationSource: String!
  CodeConfigurationValues: AwsAppRunnerSzCodeRepositoryCodeConfigurationCodeConfigurationValuesInput
}

input AwsAppRunnerSzCodeRepositoryCodeConfigurationCodeConfigurationValuesInput {
  Runtime: String!
  BuildCommand: String
  StartCommand: String
  Port: String
  RuntimeEnvironmentVariables: JSON
}

input AwsAppRunnerSzImageRepositoryInput {
  ImageIdentifier: String!
  ImageConfiguration: AwsAppRunnerSzImageRepositoryImageConfigurationInput
  ImageRepositoryType: String!
}

input AwsAppRunnerSzImageRepositoryImageConfigurationInput {
  RuntimeEnvironmentVariables: JSON
  StartCommand: String
  Port: String
}

input AwsAppRunnerSzAuthenticationConfigurationInput {
  ConnectionArn: String
  AccessRoleArn: String
}

input AwsAppRunnerS1iInput {
  Cpu: String
  Memory: String
  InstanceRoleArn: String
}

input AwsAppRunnerS1lInput {
  KmsKey: String!
}

input AwsAppRunnerS1nInput {
  Protocol: String
  Path: String
  Interval: Int
  Timeout: Int
  HealthyThreshold: Int
  UnhealthyThreshold: Int
}

type AwsAppRunnerDeleteAutoScalingConfigurationOutput {
  AutoScalingConfiguration: AwsAppRunnerSm!
}

input AwsAppRunnerDeleteAutoScalingConfigurationInput {
  AutoScalingConfigurationArn: String!
}

type AwsAppRunnerDeleteConnectionOutput {
  Connection: AwsAppRunnerSv
}

input AwsAppRunnerDeleteConnectionInput {
  ConnectionArn: String!
}

type AwsAppRunnerDeleteServiceOutput {
  Service: AwsAppRunnerS1u!
  OperationId: String!
}

input AwsAppRunnerDeleteServiceInput {
  ServiceArn: String!
}

type AwsAppRunnerDescribeAutoScalingConfigurationOutput {
  AutoScalingConfiguration: AwsAppRunnerSm!
}

input AwsAppRunnerDescribeAutoScalingConfigurationInput {
  AutoScalingConfigurationArn: String!
}

type AwsAppRunnerDescribeCustomDomainsOutput {
  DNSTarget: String!
  ServiceArn: String!
  CustomDomains: [AwsAppRunnerS7]!
  NextToken: String
}

input AwsAppRunnerDescribeCustomDomainsInput {
  ServiceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsAppRunnerDescribeServiceOutput {
  Service: AwsAppRunnerS1u!
}

input AwsAppRunnerDescribeServiceInput {
  ServiceArn: String!
}

type AwsAppRunnerDisassociateCustomDomainOutput {
  DNSTarget: String!
  ServiceArn: String!
  CustomDomain: AwsAppRunnerS7!
}

input AwsAppRunnerDisassociateCustomDomainInput {
  ServiceArn: String!
  DomainName: String!
}

type AwsAppRunnerListAutoScalingConfigurationsOutput {
  AutoScalingConfigurationSummaryList: [AwsAppRunnerS1x]!
  NextToken: String
}

input AwsAppRunnerListAutoScalingConfigurationsInput {
  AutoScalingConfigurationName: String
  LatestOnly: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsAppRunnerListConnectionsOutput {
  ConnectionSummaryList: [AwsAppRunnerListConnectionsOutputConnectionSummaryList]!
  NextToken: String
}

type AwsAppRunnerListConnectionsOutputConnectionSummaryList {
  ConnectionName: String
  ConnectionArn: String
  ProviderType: String
  Status: String
  CreatedAt: Date
}

input AwsAppRunnerListConnectionsInput {
  ConnectionName: String
  MaxResults: Int
  NextToken: String
}

type AwsAppRunnerListOperationsOutput {
  OperationSummaryList: [AwsAppRunnerListOperationsOutputOperationSummaryList]
  NextToken: String
}

type AwsAppRunnerListOperationsOutputOperationSummaryList {
  Id: String
  Type: String
  Status: String
  TargetArn: String
  StartedAt: Date
  EndedAt: Date
  UpdatedAt: Date
}

input AwsAppRunnerListOperationsInput {
  ServiceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsAppRunnerListServicesOutput {
  ServiceSummaryList: [AwsAppRunnerListServicesOutputServiceSummaryList]!
  NextToken: String
}

type AwsAppRunnerListServicesOutputServiceSummaryList {
  ServiceName: String
  ServiceId: String
  ServiceArn: String
  ServiceUrl: String
  CreatedAt: Date
  UpdatedAt: Date
  Status: String
}

input AwsAppRunnerListServicesInput {
  NextToken: String
  MaxResults: Int
}

type AwsAppRunnerListTagsForResourceOutput {
  Tags: [AwsAppRunnerSh]
}

type AwsAppRunnerSh {
  Key: String
  Value: String
}

input AwsAppRunnerListTagsForResourceInput {
  ResourceArn: String!
}

type AwsAppRunnerPauseServiceOutput {
  Service: AwsAppRunnerS1u!
  OperationId: String
}

input AwsAppRunnerPauseServiceInput {
  ServiceArn: String!
}

type AwsAppRunnerResumeServiceOutput {
  Service: AwsAppRunnerS1u!
  OperationId: String
}

input AwsAppRunnerResumeServiceInput {
  ServiceArn: String!
}

type AwsAppRunnerStartDeploymentOutput {
  OperationId: String!
}

input AwsAppRunnerStartDeploymentInput {
  ServiceArn: String!
}

input AwsAppRunnerTagResourceInput {
  ResourceArn: String!
  Tags: [AwsAppRunnerShInput]!
}

input AwsAppRunnerUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsAppRunnerUpdateServiceOutput {
  Service: AwsAppRunnerS1u!
  OperationId: String!
}

input AwsAppRunnerUpdateServiceInput {
  ServiceArn: String!
  SourceConfiguration: AwsAppRunnerSzInput
  InstanceConfiguration: AwsAppRunnerS1iInput
  AutoScalingConfigurationArn: String
  HealthCheckConfiguration: AwsAppRunnerS1nInput
}

"""Amazon AppStream (2016-12-01)"""
type AwsAppStream {
  associateFleet(input: AwsAppStreamAssociateFleetInput!, config: AwsConfig): JSON
  batchAssociateUserStack(input: AwsAppStreamBatchAssociateUserStackInput!, config: AwsConfig): AwsAppStreamBatchAssociateUserStackOutput
  batchDisassociateUserStack(input: AwsAppStreamBatchDisassociateUserStackInput!, config: AwsConfig): AwsAppStreamBatchDisassociateUserStackOutput
  copyImage(input: AwsAppStreamCopyImageInput!, config: AwsConfig): AwsAppStreamCopyImageOutput
  createDirectoryConfig(input: AwsAppStreamCreateDirectoryConfigInput!, config: AwsConfig): AwsAppStreamCreateDirectoryConfigOutput
  createFleet(input: AwsAppStreamCreateFleetInput!, config: AwsConfig): AwsAppStreamCreateFleetOutput
  createImageBuilder(input: AwsAppStreamCreateImageBuilderInput!, config: AwsConfig): AwsAppStreamCreateImageBuilderOutput
  createImageBuilderStreamingURL(input: AwsAppStreamCreateImageBuilderStreamingURLInput!, config: AwsConfig): AwsAppStreamCreateImageBuilderStreamingURLOutput
  createStack(input: AwsAppStreamCreateStackInput!, config: AwsConfig): AwsAppStreamCreateStackOutput
  createStreamingURL(input: AwsAppStreamCreateStreamingURLInput!, config: AwsConfig): AwsAppStreamCreateStreamingURLOutput
  createUpdatedImage(input: AwsAppStreamCreateUpdatedImageInput!, config: AwsConfig): AwsAppStreamCreateUpdatedImageOutput
  createUsageReportSubscription(input: JSON, config: AwsConfig): AwsAppStreamCreateUsageReportSubscriptionOutput
  createUser(input: AwsAppStreamCreateUserInput!, config: AwsConfig): JSON
  deleteDirectoryConfig(input: AwsAppStreamDeleteDirectoryConfigInput!, config: AwsConfig): JSON
  deleteFleet(input: AwsAppStreamDeleteFleetInput!, config: AwsConfig): JSON
  deleteImage(input: AwsAppStreamDeleteImageInput!, config: AwsConfig): AwsAppStreamDeleteImageOutput
  deleteImageBuilder(input: AwsAppStreamDeleteImageBuilderInput!, config: AwsConfig): AwsAppStreamDeleteImageBuilderOutput
  deleteImagePermissions(input: AwsAppStreamDeleteImagePermissionsInput!, config: AwsConfig): JSON
  deleteStack(input: AwsAppStreamDeleteStackInput!, config: AwsConfig): JSON
  deleteUsageReportSubscription(input: JSON, config: AwsConfig): JSON
  deleteUser(input: AwsAppStreamDeleteUserInput!, config: AwsConfig): JSON
  describeDirectoryConfigs(input: AwsAppStreamDescribeDirectoryConfigsInput, config: AwsConfig): AwsAppStreamDescribeDirectoryConfigsOutput
  describeFleets(input: AwsAppStreamDescribeFleetsInput, config: AwsConfig): AwsAppStreamDescribeFleetsOutput
  describeImageBuilders(input: AwsAppStreamDescribeImageBuildersInput, config: AwsConfig): AwsAppStreamDescribeImageBuildersOutput
  describeImagePermissions(input: AwsAppStreamDescribeImagePermissionsInput!, config: AwsConfig): AwsAppStreamDescribeImagePermissionsOutput
  describeImages(input: AwsAppStreamDescribeImagesInput, config: AwsConfig): AwsAppStreamDescribeImagesOutput
  describeSessions(input: AwsAppStreamDescribeSessionsInput!, config: AwsConfig): AwsAppStreamDescribeSessionsOutput
  describeStacks(input: AwsAppStreamDescribeStacksInput, config: AwsConfig): AwsAppStreamDescribeStacksOutput
  describeUsageReportSubscriptions(input: AwsAppStreamDescribeUsageReportSubscriptionsInput, config: AwsConfig): AwsAppStreamDescribeUsageReportSubscriptionsOutput
  describeUserStackAssociations(input: AwsAppStreamDescribeUserStackAssociationsInput, config: AwsConfig): AwsAppStreamDescribeUserStackAssociationsOutput
  describeUsers(input: AwsAppStreamDescribeUsersInput!, config: AwsConfig): AwsAppStreamDescribeUsersOutput
  disableUser(input: AwsAppStreamDisableUserInput!, config: AwsConfig): JSON
  disassociateFleet(input: AwsAppStreamDisassociateFleetInput!, config: AwsConfig): JSON
  enableUser(input: AwsAppStreamEnableUserInput!, config: AwsConfig): JSON
  expireSession(input: AwsAppStreamExpireSessionInput!, config: AwsConfig): JSON
  listAssociatedFleets(input: AwsAppStreamListAssociatedFleetsInput!, config: AwsConfig): AwsAppStreamListAssociatedFleetsOutput
  listAssociatedStacks(input: AwsAppStreamListAssociatedStacksInput!, config: AwsConfig): AwsAppStreamListAssociatedStacksOutput
  listTagsForResource(input: AwsAppStreamListTagsForResourceInput!, config: AwsConfig): AwsAppStreamListTagsForResourceOutput
  startFleet(input: AwsAppStreamStartFleetInput!, config: AwsConfig): JSON
  startImageBuilder(input: AwsAppStreamStartImageBuilderInput!, config: AwsConfig): AwsAppStreamStartImageBuilderOutput
  stopFleet(input: AwsAppStreamStopFleetInput!, config: AwsConfig): JSON
  stopImageBuilder(input: AwsAppStreamStopImageBuilderInput!, config: AwsConfig): AwsAppStreamStopImageBuilderOutput
  tagResource(input: AwsAppStreamTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppStreamUntagResourceInput!, config: AwsConfig): JSON
  updateDirectoryConfig(input: AwsAppStreamUpdateDirectoryConfigInput!, config: AwsConfig): AwsAppStreamUpdateDirectoryConfigOutput
  updateFleet(input: AwsAppStreamUpdateFleetInput, config: AwsConfig): AwsAppStreamUpdateFleetOutput
  updateImagePermissions(input: AwsAppStreamUpdateImagePermissionsInput!, config: AwsConfig): JSON
  updateStack(input: AwsAppStreamUpdateStackInput!, config: AwsConfig): AwsAppStreamUpdateStackOutput
}

input AwsAppStreamAssociateFleetInput {
  FleetName: String!
  StackName: String!
}

type AwsAppStreamBatchAssociateUserStackOutput {
  errors: [AwsAppStreamSb]
}

type AwsAppStreamSb {
  UserStackAssociation: AwsAppStreamS6
  ErrorCode: String
  ErrorMessage: String
}

type AwsAppStreamS6 {
  StackName: String!
  UserName: String!
  AuthenticationType: String!
  SendEmailNotification: Boolean
}

input AwsAppStreamBatchAssociateUserStackInput {
  UserStackAssociations: [AwsAppStreamS6Input]!
}

input AwsAppStreamS6Input {
  StackName: String!
  UserName: String!
  AuthenticationType: String!
  SendEmailNotification: Boolean
}

type AwsAppStreamBatchDisassociateUserStackOutput {
  errors: [AwsAppStreamSb]
}

input AwsAppStreamBatchDisassociateUserStackInput {
  UserStackAssociations: [AwsAppStreamS6Input]!
}

type AwsAppStreamCopyImageOutput {
  DestinationImageName: String
}

input AwsAppStreamCopyImageInput {
  SourceImageName: String!
  DestinationImageName: String!
  DestinationRegion: String!
  DestinationImageDescription: String
}

type AwsAppStreamCreateDirectoryConfigOutput {
  DirectoryConfig: AwsAppStreamSt
}

type AwsAppStreamSt {
  DirectoryName: String!
  OrganizationalUnitDistinguishedNames: [String]
  ServiceAccountCredentials: AwsAppStreamSp
  CreatedTime: Date
}

type AwsAppStreamSp {
  AccountName: String!
  AccountPassword: String!
}

input AwsAppStreamCreateDirectoryConfigInput {
  DirectoryName: String!
  OrganizationalUnitDistinguishedNames: [String]!
  ServiceAccountCredentials: AwsAppStreamSpInput
}

input AwsAppStreamSpInput {
  AccountName: String!
  AccountPassword: String!
}

type AwsAppStreamCreateFleetOutput {
  Fleet: AwsAppStreamS1b
}

type AwsAppStreamS1b {
  Arn: String!
  Name: String!
  DisplayName: String
  Description: String
  ImageName: String
  ImageArn: String
  InstanceType: String!
  FleetType: String
  ComputeCapacityStatus: AwsAppStreamS1bComputeCapacityStatus!
  MaxUserDurationInSeconds: Int
  DisconnectTimeoutInSeconds: Int
  State: String!
  VpcConfig: AwsAppStreamS10
  CreatedTime: Date
  FleetErrors: [AwsAppStreamS1bFleetErrors]
  EnableDefaultInternetAccess: Boolean
  DomainJoinInfo: AwsAppStreamS15
  IdleDisconnectTimeoutInSeconds: Int
  IamRoleArn: String
  StreamView: String
}

type AwsAppStreamS1bComputeCapacityStatus {
  Desired: Int!
  Running: Int
  InUse: Int
  Available: Int
}

type AwsAppStreamS10 {
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

type AwsAppStreamS1bFleetErrors {
  ErrorCode: String
  ErrorMessage: String
}

type AwsAppStreamS15 {
  DirectoryName: String
  OrganizationalUnitDistinguishedName: String
}

input AwsAppStreamCreateFleetInput {
  Name: String!
  ImageName: String
  ImageArn: String
  InstanceType: String!
  FleetType: String
  ComputeCapacity: AwsAppStreamSyInput!
  VpcConfig: AwsAppStreamS10Input
  MaxUserDurationInSeconds: Int
  DisconnectTimeoutInSeconds: Int
  Description: String
  DisplayName: String
  EnableDefaultInternetAccess: Boolean
  DomainJoinInfo: AwsAppStreamS15Input
  Tags: JSON
  IdleDisconnectTimeoutInSeconds: Int
  IamRoleArn: String
  StreamView: String
}

input AwsAppStreamSyInput {
  DesiredInstances: Int!
}

input AwsAppStreamS10Input {
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsAppStreamS15Input {
  DirectoryName: String
  OrganizationalUnitDistinguishedName: String
}

type AwsAppStreamCreateImageBuilderOutput {
  ImageBuilder: AwsAppStreamS1n
}

type AwsAppStreamS1n {
  Name: String!
  Arn: String
  ImageArn: String
  Description: String
  DisplayName: String
  VpcConfig: AwsAppStreamS10
  InstanceType: String
  Platform: String
  IamRoleArn: String
  State: String
  StateChangeReason: AwsAppStreamS1nStateChangeReason
  CreatedTime: Date
  EnableDefaultInternetAccess: Boolean
  DomainJoinInfo: AwsAppStreamS15
  NetworkAccessConfiguration: AwsAppStreamS1s
  ImageBuilderErrors: [AwsAppStreamS1t]
  AppstreamAgentVersion: String
  AccessEndpoints: [AwsAppStreamS1j]
}

type AwsAppStreamS1nStateChangeReason {
  Code: String
  Message: String
}

type AwsAppStreamS1s {
  EniPrivateIpAddress: String
  EniId: String
}

type AwsAppStreamS1t {
  ErrorCode: String
  ErrorMessage: String
  ErrorTimestamp: Date
}

type AwsAppStreamS1j {
  EndpointType: String!
  VpceId: String
}

input AwsAppStreamCreateImageBuilderInput {
  Name: String!
  ImageName: String
  ImageArn: String
  InstanceType: String!
  Description: String
  DisplayName: String
  VpcConfig: AwsAppStreamS10Input
  IamRoleArn: String
  EnableDefaultInternetAccess: Boolean
  DomainJoinInfo: AwsAppStreamS15Input
  AppstreamAgentVersion: String
  Tags: JSON
  AccessEndpoints: [AwsAppStreamS1jInput]
}

input AwsAppStreamS1jInput {
  EndpointType: String!
  VpceId: String
}

type AwsAppStreamCreateImageBuilderStreamingURLOutput {
  StreamingURL: String
  Expires: Date
}

input AwsAppStreamCreateImageBuilderStreamingURLInput {
  Name: String!
  Validity: JSON
}

type AwsAppStreamCreateStackOutput {
  Stack: AwsAppStreamS2g
}

type AwsAppStreamS2g {
  Arn: String
  Name: String!
  Description: String
  DisplayName: String
  CreatedTime: Date
  StorageConnectors: [AwsAppStreamS1z]
  RedirectURL: String
  FeedbackURL: String
  StackErrors: [AwsAppStreamS2gStackErrors]
  UserSettings: [AwsAppStreamS27]
  ApplicationSettings: AwsAppStreamS2gApplicationSettings
  AccessEndpoints: [AwsAppStreamS1j]
  EmbedHostDomains: [String]
}

type AwsAppStreamS1z {
  ConnectorType: String!
  ResourceIdentifier: String
  Domains: [String]
}

type AwsAppStreamS2gStackErrors {
  ErrorCode: String
  ErrorMessage: String
}

type AwsAppStreamS27 {
  Action: String!
  Permission: String!
}

type AwsAppStreamS2gApplicationSettings {
  Enabled: Boolean
  SettingsGroup: String
  S3BucketName: String
}

input AwsAppStreamCreateStackInput {
  Name: String!
  Description: String
  DisplayName: String
  StorageConnectors: [AwsAppStreamS1zInput]
  RedirectURL: String
  FeedbackURL: String
  UserSettings: [AwsAppStreamS27Input]
  ApplicationSettings: AwsAppStreamS2bInput
  Tags: JSON
  AccessEndpoints: [AwsAppStreamS1jInput]
  EmbedHostDomains: [String]
}

input AwsAppStreamS1zInput {
  ConnectorType: String!
  ResourceIdentifier: String
  Domains: [String]
}

input AwsAppStreamS27Input {
  Action: String!
  Permission: String!
}

input AwsAppStreamS2bInput {
  Enabled: Boolean!
  SettingsGroup: String
}

type AwsAppStreamCreateStreamingURLOutput {
  StreamingURL: String
  Expires: Date
}

input AwsAppStreamCreateStreamingURLInput {
  StackName: String!
  FleetName: String!
  UserId: String!
  ApplicationId: String
  Validity: JSON
  SessionContext: String
}

type AwsAppStreamCreateUpdatedImageOutput {
  image: AwsAppStreamS2q
  canUpdateImage: Boolean
}

type AwsAppStreamS2q {
  Name: String!
  Arn: String
  BaseImageArn: String
  DisplayName: String
  State: String
  Visibility: String
  ImageBuilderSupported: Boolean
  ImageBuilderName: String
  Platform: String
  Description: String
  StateChangeReason: AwsAppStreamS2qStateChangeReason
  Applications: [AwsAppStreamS2qApplications]
  CreatedTime: Date
  PublicBaseImageReleasedDate: Date
  AppstreamAgentVersion: String
  ImagePermissions: AwsAppStreamS2y
  ImageErrors: [AwsAppStreamS1t]
}

type AwsAppStreamS2qStateChangeReason {
  Code: String
  Message: String
}

type AwsAppStreamS2qApplications {
  Name: String
  DisplayName: String
  IconURL: String
  LaunchPath: String
  LaunchParameters: String
  Enabled: Boolean
  Metadata: JSON
}

type AwsAppStreamS2y {
  allowFleet: Boolean
  allowImageBuilder: Boolean
}

input AwsAppStreamCreateUpdatedImageInput {
  existingImageName: String!
  newImageName: String!
  newImageDescription: String
  newImageDisplayName: String
  newImageTags: JSON
  dryRun: Boolean
}

type AwsAppStreamCreateUsageReportSubscriptionOutput {
  S3BucketName: String
  Schedule: String
}

input AwsAppStreamCreateUserInput {
  UserName: String!
  MessageAction: String
  FirstName: String
  LastName: String
  AuthenticationType: String!
}

input AwsAppStreamDeleteDirectoryConfigInput {
  DirectoryName: String!
}

input AwsAppStreamDeleteFleetInput {
  Name: String!
}

type AwsAppStreamDeleteImageOutput {
  Image: AwsAppStreamS2q
}

input AwsAppStreamDeleteImageInput {
  Name: String!
}

type AwsAppStreamDeleteImageBuilderOutput {
  ImageBuilder: AwsAppStreamS1n
}

input AwsAppStreamDeleteImageBuilderInput {
  Name: String!
}

input AwsAppStreamDeleteImagePermissionsInput {
  Name: String!
  SharedAccountId: String!
}

input AwsAppStreamDeleteStackInput {
  Name: String!
}

input AwsAppStreamDeleteUserInput {
  UserName: String!
  AuthenticationType: String!
}

type AwsAppStreamDescribeDirectoryConfigsOutput {
  DirectoryConfigs: [AwsAppStreamSt]
  NextToken: String
}

input AwsAppStreamDescribeDirectoryConfigsInput {
  DirectoryNames: [String]
  MaxResults: Int
  NextToken: String
}

type AwsAppStreamDescribeFleetsOutput {
  Fleets: [AwsAppStreamS1b]
  NextToken: String
}

input AwsAppStreamDescribeFleetsInput {
  Names: [String]
  NextToken: String
}

type AwsAppStreamDescribeImageBuildersOutput {
  ImageBuilders: [AwsAppStreamS1n]
  NextToken: String
}

input AwsAppStreamDescribeImageBuildersInput {
  Names: [String]
  MaxResults: Int
  NextToken: String
}

type AwsAppStreamDescribeImagePermissionsOutput {
  Name: String
  SharedImagePermissionsList: [AwsAppStreamDescribeImagePermissionsOutputSharedImagePermissionsList]
  NextToken: String
}

type AwsAppStreamDescribeImagePermissionsOutputSharedImagePermissionsList {
  sharedAccountId: String!
  imagePermissions: AwsAppStreamS2y!
}

input AwsAppStreamDescribeImagePermissionsInput {
  Name: String!
  MaxResults: Int
  SharedAwsAccountIds: [String]
  NextToken: String
}

type AwsAppStreamDescribeImagesOutput {
  Images: [AwsAppStreamS2q]
  NextToken: String
}

input AwsAppStreamDescribeImagesInput {
  Names: [String]
  Arns: [String]
  Type: String
  NextToken: String
  MaxResults: Int
}

type AwsAppStreamDescribeSessionsOutput {
  Sessions: [AwsAppStreamDescribeSessionsOutputSessions]
  NextToken: String
}

type AwsAppStreamDescribeSessionsOutputSessions {
  Id: String!
  UserId: String!
  StackName: String!
  FleetName: String!
  State: String!
  ConnectionState: String
  StartTime: Date
  MaxExpirationTime: Date
  AuthenticationType: String
  NetworkAccessConfiguration: AwsAppStreamS1s
}

input AwsAppStreamDescribeSessionsInput {
  StackName: String!
  FleetName: String!
  UserId: String
  NextToken: String
  Limit: Int
  AuthenticationType: String
}

type AwsAppStreamDescribeStacksOutput {
  Stacks: [AwsAppStreamS2g]
  NextToken: String
}

input AwsAppStreamDescribeStacksInput {
  Names: [String]
  NextToken: String
}

type AwsAppStreamDescribeUsageReportSubscriptionsOutput {
  UsageReportSubscriptions: [AwsAppStreamDescribeUsageReportSubscriptionsOutputUsageReportSubscriptions]
  NextToken: String
}

type AwsAppStreamDescribeUsageReportSubscriptionsOutputUsageReportSubscriptions {
  S3BucketName: String
  Schedule: String
  LastGeneratedReportDate: Date
  SubscriptionErrors: [AwsAppStreamDescribeUsageReportSubscriptionsOutputUsageReportSubscriptionsSubscriptionErrors]
}

type AwsAppStreamDescribeUsageReportSubscriptionsOutputUsageReportSubscriptionsSubscriptionErrors {
  ErrorCode: String
  ErrorMessage: String
}

input AwsAppStreamDescribeUsageReportSubscriptionsInput {
  MaxResults: Int
  NextToken: String
}

type AwsAppStreamDescribeUserStackAssociationsOutput {
  UserStackAssociations: [AwsAppStreamS6]
  NextToken: String
}

input AwsAppStreamDescribeUserStackAssociationsInput {
  StackName: String
  UserName: String
  AuthenticationType: String
  MaxResults: Int
  NextToken: String
}

type AwsAppStreamDescribeUsersOutput {
  Users: [AwsAppStreamDescribeUsersOutputUsers]
  NextToken: String
}

type AwsAppStreamDescribeUsersOutputUsers {
  Arn: String
  UserName: String
  Enabled: Boolean
  Status: String
  FirstName: String
  LastName: String
  CreatedTime: Date
  AuthenticationType: String!
}

input AwsAppStreamDescribeUsersInput {
  AuthenticationType: String!
  MaxResults: Int
  NextToken: String
}

input AwsAppStreamDisableUserInput {
  UserName: String!
  AuthenticationType: String!
}

input AwsAppStreamDisassociateFleetInput {
  FleetName: String!
  StackName: String!
}

input AwsAppStreamEnableUserInput {
  UserName: String!
  AuthenticationType: String!
}

input AwsAppStreamExpireSessionInput {
  SessionId: String!
}

type AwsAppStreamListAssociatedFleetsOutput {
  Names: [String]
  NextToken: String
}

input AwsAppStreamListAssociatedFleetsInput {
  StackName: String!
  NextToken: String
}

type AwsAppStreamListAssociatedStacksOutput {
  Names: [String]
  NextToken: String
}

input AwsAppStreamListAssociatedStacksInput {
  FleetName: String!
  NextToken: String
}

type AwsAppStreamListTagsForResourceOutput {
  Tags: JSON
}

input AwsAppStreamListTagsForResourceInput {
  ResourceArn: String!
}

input AwsAppStreamStartFleetInput {
  Name: String!
}

type AwsAppStreamStartImageBuilderOutput {
  ImageBuilder: AwsAppStreamS1n
}

input AwsAppStreamStartImageBuilderInput {
  Name: String!
  AppstreamAgentVersion: String
}

input AwsAppStreamStopFleetInput {
  Name: String!
}

type AwsAppStreamStopImageBuilderOutput {
  ImageBuilder: AwsAppStreamS1n
}

input AwsAppStreamStopImageBuilderInput {
  Name: String!
}

input AwsAppStreamTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsAppStreamUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsAppStreamUpdateDirectoryConfigOutput {
  DirectoryConfig: AwsAppStreamSt
}

input AwsAppStreamUpdateDirectoryConfigInput {
  DirectoryName: String!
  OrganizationalUnitDistinguishedNames: [String]
  ServiceAccountCredentials: AwsAppStreamSpInput
}

type AwsAppStreamUpdateFleetOutput {
  Fleet: AwsAppStreamS1b
}

input AwsAppStreamUpdateFleetInput {
  ImageName: String
  ImageArn: String
  Name: String
  InstanceType: String
  ComputeCapacity: AwsAppStreamSyInput
  VpcConfig: AwsAppStreamS10Input
  MaxUserDurationInSeconds: Int
  DisconnectTimeoutInSeconds: Int
  DeleteVpcConfig: Boolean
  Description: String
  DisplayName: String
  EnableDefaultInternetAccess: Boolean
  DomainJoinInfo: AwsAppStreamS15Input
  IdleDisconnectTimeoutInSeconds: Int
  AttributesToDelete: [String]
  IamRoleArn: String
  StreamView: String
}

input AwsAppStreamUpdateImagePermissionsInput {
  Name: String!
  SharedAccountId: String!
  ImagePermissions: AwsAppStreamS2yInput!
}

input AwsAppStreamS2yInput {
  allowFleet: Boolean
  allowImageBuilder: Boolean
}

type AwsAppStreamUpdateStackOutput {
  Stack: AwsAppStreamS2g
}

input AwsAppStreamUpdateStackInput {
  DisplayName: String
  Description: String
  Name: String!
  StorageConnectors: [AwsAppStreamS1zInput]
  DeleteStorageConnectors: Boolean
  RedirectURL: String
  FeedbackURL: String
  AttributesToDelete: [String]
  UserSettings: [AwsAppStreamS27Input]
  ApplicationSettings: AwsAppStreamS2bInput
  AccessEndpoints: [AwsAppStreamS1jInput]
  EmbedHostDomains: [String]
}

"""AWS AppSync (2017-07-25)"""
type AwsAppSync {
  createApiCache(input: AwsAppSyncCreateApiCacheInput!, config: AwsConfig): AwsAppSyncCreateApiCacheOutput
  createApiKey(input: AwsAppSyncCreateApiKeyInput!, config: AwsConfig): AwsAppSyncCreateApiKeyOutput
  createDataSource(input: AwsAppSyncCreateDataSourceInput!, config: AwsConfig): AwsAppSyncCreateDataSourceOutput
  createFunction(input: AwsAppSyncCreateFunctionInput!, config: AwsConfig): AwsAppSyncCreateFunctionOutput
  createGraphqlApi(input: AwsAppSyncCreateGraphqlApiInput!, config: AwsConfig): AwsAppSyncCreateGraphqlApiOutput
  createResolver(input: AwsAppSyncCreateResolverInput!, config: AwsConfig): AwsAppSyncCreateResolverOutput
  createType(input: AwsAppSyncCreateTypeInput!, config: AwsConfig): AwsAppSyncCreateTypeOutput
  deleteApiCache(input: AwsAppSyncDeleteApiCacheInput!, config: AwsConfig): JSON
  deleteApiKey(input: AwsAppSyncDeleteApiKeyInput!, config: AwsConfig): JSON
  deleteDataSource(input: AwsAppSyncDeleteDataSourceInput!, config: AwsConfig): JSON
  deleteFunction(input: AwsAppSyncDeleteFunctionInput!, config: AwsConfig): JSON
  deleteGraphqlApi(input: AwsAppSyncDeleteGraphqlApiInput!, config: AwsConfig): JSON
  deleteResolver(input: AwsAppSyncDeleteResolverInput!, config: AwsConfig): JSON
  deleteType(input: AwsAppSyncDeleteTypeInput!, config: AwsConfig): JSON
  flushApiCache(input: AwsAppSyncFlushApiCacheInput!, config: AwsConfig): JSON
  getApiCache(input: AwsAppSyncGetApiCacheInput!, config: AwsConfig): AwsAppSyncGetApiCacheOutput
  getDataSource(input: AwsAppSyncGetDataSourceInput!, config: AwsConfig): AwsAppSyncGetDataSourceOutput
  getFunction(input: AwsAppSyncGetFunctionInput!, config: AwsConfig): AwsAppSyncGetFunctionOutput
  getGraphqlApi(input: AwsAppSyncGetGraphqlApiInput!, config: AwsConfig): AwsAppSyncGetGraphqlApiOutput
  getIntrospectionSchema(input: AwsAppSyncGetIntrospectionSchemaInput!, config: AwsConfig): AwsAppSyncGetIntrospectionSchemaOutput
  getResolver(input: AwsAppSyncGetResolverInput!, config: AwsConfig): AwsAppSyncGetResolverOutput
  getSchemaCreationStatus(input: AwsAppSyncGetSchemaCreationStatusInput!, config: AwsConfig): AwsAppSyncGetSchemaCreationStatusOutput
  getType(input: AwsAppSyncGetTypeInput!, config: AwsConfig): AwsAppSyncGetTypeOutput
  listApiKeys(input: AwsAppSyncListApiKeysInput!, config: AwsConfig): AwsAppSyncListApiKeysOutput
  listDataSources(input: AwsAppSyncListDataSourcesInput!, config: AwsConfig): AwsAppSyncListDataSourcesOutput
  listFunctions(input: AwsAppSyncListFunctionsInput!, config: AwsConfig): AwsAppSyncListFunctionsOutput
  listGraphqlApis(input: AwsAppSyncListGraphqlApisInput, config: AwsConfig): AwsAppSyncListGraphqlApisOutput
  listResolvers(input: AwsAppSyncListResolversInput!, config: AwsConfig): AwsAppSyncListResolversOutput
  listResolversByFunction(input: AwsAppSyncListResolversByFunctionInput!, config: AwsConfig): AwsAppSyncListResolversByFunctionOutput
  listTagsForResource(input: AwsAppSyncListTagsForResourceInput!, config: AwsConfig): AwsAppSyncListTagsForResourceOutput
  listTypes(input: AwsAppSyncListTypesInput!, config: AwsConfig): AwsAppSyncListTypesOutput
  startSchemaCreation(input: AwsAppSyncStartSchemaCreationInput!, config: AwsConfig): AwsAppSyncStartSchemaCreationOutput
  tagResource(input: AwsAppSyncTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppSyncUntagResourceInput!, config: AwsConfig): JSON
  updateApiCache(input: AwsAppSyncUpdateApiCacheInput!, config: AwsConfig): AwsAppSyncUpdateApiCacheOutput
  updateApiKey(input: AwsAppSyncUpdateApiKeyInput!, config: AwsConfig): AwsAppSyncUpdateApiKeyOutput
  updateDataSource(input: AwsAppSyncUpdateDataSourceInput!, config: AwsConfig): AwsAppSyncUpdateDataSourceOutput
  updateFunction(input: AwsAppSyncUpdateFunctionInput!, config: AwsConfig): AwsAppSyncUpdateFunctionOutput
  updateGraphqlApi(input: AwsAppSyncUpdateGraphqlApiInput!, config: AwsConfig): AwsAppSyncUpdateGraphqlApiOutput
  updateResolver(input: AwsAppSyncUpdateResolverInput!, config: AwsConfig): AwsAppSyncUpdateResolverOutput
  updateType(input: AwsAppSyncUpdateTypeInput!, config: AwsConfig): AwsAppSyncUpdateTypeOutput
}

type AwsAppSyncCreateApiCacheOutput {
  apiCache: AwsAppSyncS8
}

type AwsAppSyncS8 {
  ttl: JSON
  apiCachingBehavior: String
  transitEncryptionEnabled: Boolean
  atRestEncryptionEnabled: Boolean
  type: String
  status: String
}

input AwsAppSyncCreateApiCacheInput {
  apiId: String!
  ttl: JSON!
  transitEncryptionEnabled: Boolean
  atRestEncryptionEnabled: Boolean
  apiCachingBehavior: String!
  type: String!
}

type AwsAppSyncCreateApiKeyOutput {
  apiKey: AwsAppSyncSc
}

type AwsAppSyncSc {
  id: String
  description: String
  expires: JSON
  deletes: JSON
}

input AwsAppSyncCreateApiKeyInput {
  apiId: String!
  description: String
  expires: JSON
}

type AwsAppSyncCreateDataSourceOutput {
  dataSource: AwsAppSyncSs
}

type AwsAppSyncSs {
  dataSourceArn: String
  name: String
  description: String
  type: String
  serviceRoleArn: String
  dynamodbConfig: AwsAppSyncSg
  lambdaConfig: AwsAppSyncSi
  elasticsearchConfig: AwsAppSyncSj
  httpConfig: AwsAppSyncSk
  relationalDatabaseConfig: AwsAppSyncSo
}

type AwsAppSyncSg {
  tableName: String!
  awsRegion: String!
  useCallerCredentials: Boolean
  deltaSyncConfig: AwsAppSyncSgDeltaSyncConfig
  versioned: Boolean
}

type AwsAppSyncSgDeltaSyncConfig {
  baseTableTTL: JSON
  deltaSyncTableName: String
  deltaSyncTableTTL: JSON
}

type AwsAppSyncSi {
  lambdaFunctionArn: String!
}

type AwsAppSyncSj {
  endpoint: String!
  awsRegion: String!
}

type AwsAppSyncSk {
  endpoint: String
  authorizationConfig: AwsAppSyncSkAuthorizationConfig
}

type AwsAppSyncSkAuthorizationConfig {
  authorizationType: String!
  awsIamConfig: AwsAppSyncSkAuthorizationConfigAwsIamConfig
}

type AwsAppSyncSkAuthorizationConfigAwsIamConfig {
  signingRegion: String
  signingServiceName: String
}

type AwsAppSyncSo {
  relationalDatabaseSourceType: String
  rdsHttpEndpointConfig: AwsAppSyncSoRdsHttpEndpointConfig
}

type AwsAppSyncSoRdsHttpEndpointConfig {
  awsRegion: String
  dbClusterIdentifier: String
  databaseName: String
  schema: String
  awsSecretStoreArn: String
}

input AwsAppSyncCreateDataSourceInput {
  apiId: String!
  name: String!
  description: String
  type: String!
  serviceRoleArn: String
  dynamodbConfig: AwsAppSyncSgInput
  lambdaConfig: AwsAppSyncSiInput
  elasticsearchConfig: AwsAppSyncSjInput
  httpConfig: AwsAppSyncSkInput
  relationalDatabaseConfig: AwsAppSyncSoInput
}

input AwsAppSyncSgInput {
  tableName: String!
  awsRegion: String!
  useCallerCredentials: Boolean
  deltaSyncConfig: AwsAppSyncSgDeltaSyncConfigInput
  versioned: Boolean
}

input AwsAppSyncSgDeltaSyncConfigInput {
  baseTableTTL: JSON
  deltaSyncTableName: String
  deltaSyncTableTTL: JSON
}

input AwsAppSyncSiInput {
  lambdaFunctionArn: String!
}

input AwsAppSyncSjInput {
  endpoint: String!
  awsRegion: String!
}

input AwsAppSyncSkInput {
  endpoint: String
  authorizationConfig: AwsAppSyncSkAuthorizationConfigInput
}

input AwsAppSyncSkAuthorizationConfigInput {
  authorizationType: String!
  awsIamConfig: AwsAppSyncSkAuthorizationConfigAwsIamConfigInput
}

input AwsAppSyncSkAuthorizationConfigAwsIamConfigInput {
  signingRegion: String
  signingServiceName: String
}

input AwsAppSyncSoInput {
  relationalDatabaseSourceType: String
  rdsHttpEndpointConfig: AwsAppSyncSoRdsHttpEndpointConfigInput
}

input AwsAppSyncSoRdsHttpEndpointConfigInput {
  awsRegion: String
  dbClusterIdentifier: String
  databaseName: String
  schema: String
  awsSecretStoreArn: String
}

type AwsAppSyncCreateFunctionOutput {
  functionConfiguration: AwsAppSyncS10
}

type AwsAppSyncS10 {
  functionId: String
  functionArn: String
  name: String
  description: String
  dataSourceName: String
  requestMappingTemplate: String
  responseMappingTemplate: String
  functionVersion: String
  syncConfig: AwsAppSyncSv
}

type AwsAppSyncSv {
  conflictHandler: String
  conflictDetection: String
  lambdaConflictHandlerConfig: AwsAppSyncSvLambdaConflictHandlerConfig
}

type AwsAppSyncSvLambdaConflictHandlerConfig {
  lambdaConflictHandlerArn: String
}

input AwsAppSyncCreateFunctionInput {
  apiId: String!
  name: String!
  description: String
  dataSourceName: String!
  requestMappingTemplate: String
  responseMappingTemplate: String
  functionVersion: String!
  syncConfig: AwsAppSyncSvInput
}

input AwsAppSyncSvInput {
  conflictHandler: String
  conflictDetection: String
  lambdaConflictHandlerConfig: AwsAppSyncSvLambdaConflictHandlerConfigInput
}

input AwsAppSyncSvLambdaConflictHandlerConfigInput {
  lambdaConflictHandlerArn: String
}

type AwsAppSyncCreateGraphqlApiOutput {
  graphqlApi: AwsAppSyncS1f
}

type AwsAppSyncS1f {
  name: String
  apiId: String
  authenticationType: String
  logConfig: AwsAppSyncS12
  userPoolConfig: AwsAppSyncS15
  openIDConnectConfig: AwsAppSyncS17
  arn: String
  uris: JSON
  tags: JSON
  additionalAuthenticationProviders: [AwsAppSyncS1b]
  xrayEnabled: Boolean
  wafWebAclArn: String
}

type AwsAppSyncS12 {
  fieldLogLevel: String!
  cloudWatchLogsRoleArn: String!
  excludeVerboseContent: Boolean
}

type AwsAppSyncS15 {
  userPoolId: String!
  awsRegion: String!
  defaultAction: String!
  appIdClientRegex: String
}

type AwsAppSyncS17 {
  issuer: String!
  clientId: String
  iatTTL: JSON
  authTTL: JSON
}

type AwsAppSyncS1b {
  authenticationType: String
  openIDConnectConfig: AwsAppSyncS17
  userPoolConfig: AwsAppSyncS1bUserPoolConfig
}

type AwsAppSyncS1bUserPoolConfig {
  userPoolId: String!
  awsRegion: String!
  appIdClientRegex: String
}

input AwsAppSyncCreateGraphqlApiInput {
  name: String!
  logConfig: AwsAppSyncS12Input
  authenticationType: String!
  userPoolConfig: AwsAppSyncS15Input
  openIDConnectConfig: AwsAppSyncS17Input
  tags: JSON
  additionalAuthenticationProviders: [AwsAppSyncS1bInput]
  xrayEnabled: Boolean
}

input AwsAppSyncS12Input {
  fieldLogLevel: String!
  cloudWatchLogsRoleArn: String!
  excludeVerboseContent: Boolean
}

input AwsAppSyncS15Input {
  userPoolId: String!
  awsRegion: String!
  defaultAction: String!
  appIdClientRegex: String
}

input AwsAppSyncS17Input {
  issuer: String!
  clientId: String
  iatTTL: JSON
  authTTL: JSON
}

input AwsAppSyncS1bInput {
  authenticationType: String
  openIDConnectConfig: AwsAppSyncS17Input
  userPoolConfig: AwsAppSyncS1bUserPoolConfigInput
}

input AwsAppSyncS1bUserPoolConfigInput {
  userPoolId: String!
  awsRegion: String!
  appIdClientRegex: String
}

type AwsAppSyncCreateResolverOutput {
  resolver: AwsAppSyncS1o
}

type AwsAppSyncS1o {
  typeName: String
  fieldName: String
  dataSourceName: String
  resolverArn: String
  requestMappingTemplate: String
  responseMappingTemplate: String
  kind: String
  pipelineConfig: AwsAppSyncS1j
  syncConfig: AwsAppSyncSv
  cachingConfig: AwsAppSyncS1l
}

type AwsAppSyncS1j {
  functions: [String]
}

type AwsAppSyncS1l {
  ttl: JSON
  cachingKeys: [String]
}

input AwsAppSyncCreateResolverInput {
  apiId: String!
  typeName: String!
  fieldName: String!
  dataSourceName: String
  requestMappingTemplate: String
  responseMappingTemplate: String
  kind: String
  pipelineConfig: AwsAppSyncS1jInput
  syncConfig: AwsAppSyncSvInput
  cachingConfig: AwsAppSyncS1lInput
}

input AwsAppSyncS1jInput {
  functions: [String]
}

input AwsAppSyncS1lInput {
  ttl: JSON
  cachingKeys: [String]
}

type AwsAppSyncCreateTypeOutput {
  type: AwsAppSyncS1s
}

type AwsAppSyncS1s {
  name: String
  description: String
  arn: String
  definition: String
  format: String
}

input AwsAppSyncCreateTypeInput {
  apiId: String!
  definition: String!
  format: String!
}

input AwsAppSyncDeleteApiCacheInput {
  apiId: String!
}

input AwsAppSyncDeleteApiKeyInput {
  apiId: String!
  id: String!
}

input AwsAppSyncDeleteDataSourceInput {
  apiId: String!
  name: String!
}

input AwsAppSyncDeleteFunctionInput {
  apiId: String!
  functionId: String!
}

input AwsAppSyncDeleteGraphqlApiInput {
  apiId: String!
}

input AwsAppSyncDeleteResolverInput {
  apiId: String!
  typeName: String!
  fieldName: String!
}

input AwsAppSyncDeleteTypeInput {
  apiId: String!
  typeName: String!
}

input AwsAppSyncFlushApiCacheInput {
  apiId: String!
}

type AwsAppSyncGetApiCacheOutput {
  apiCache: AwsAppSyncS8
}

input AwsAppSyncGetApiCacheInput {
  apiId: String!
}

type AwsAppSyncGetDataSourceOutput {
  dataSource: AwsAppSyncSs
}

input AwsAppSyncGetDataSourceInput {
  apiId: String!
  name: String!
}

type AwsAppSyncGetFunctionOutput {
  functionConfiguration: AwsAppSyncS10
}

input AwsAppSyncGetFunctionInput {
  apiId: String!
  functionId: String!
}

type AwsAppSyncGetGraphqlApiOutput {
  graphqlApi: AwsAppSyncS1f
}

input AwsAppSyncGetGraphqlApiInput {
  apiId: String!
}

type AwsAppSyncGetIntrospectionSchemaOutput {
  schema: JSON
}

input AwsAppSyncGetIntrospectionSchemaInput {
  apiId: String!
  format: String!
  includeDirectives: Boolean
}

type AwsAppSyncGetResolverOutput {
  resolver: AwsAppSyncS1o
}

input AwsAppSyncGetResolverInput {
  apiId: String!
  typeName: String!
  fieldName: String!
}

type AwsAppSyncGetSchemaCreationStatusOutput {
  status: String
  details: String
}

input AwsAppSyncGetSchemaCreationStatusInput {
  apiId: String!
}

type AwsAppSyncGetTypeOutput {
  type: AwsAppSyncS1s
}

input AwsAppSyncGetTypeInput {
  apiId: String!
  typeName: String!
  format: String!
}

type AwsAppSyncListApiKeysOutput {
  apiKeys: [AwsAppSyncSc]
  nextToken: String
}

input AwsAppSyncListApiKeysInput {
  apiId: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListDataSourcesOutput {
  dataSources: [AwsAppSyncSs]
  nextToken: String
}

input AwsAppSyncListDataSourcesInput {
  apiId: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListFunctionsOutput {
  functions: [AwsAppSyncS10]
  nextToken: String
}

input AwsAppSyncListFunctionsInput {
  apiId: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListGraphqlApisOutput {
  graphqlApis: [AwsAppSyncS1f]
  nextToken: String
}

input AwsAppSyncListGraphqlApisInput {
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListResolversOutput {
  resolvers: [AwsAppSyncS1o]
  nextToken: String
}

input AwsAppSyncListResolversInput {
  apiId: String!
  typeName: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListResolversByFunctionOutput {
  resolvers: [AwsAppSyncS1o]
  nextToken: String
}

input AwsAppSyncListResolversByFunctionInput {
  apiId: String!
  functionId: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncListTagsForResourceOutput {
  tags: JSON
}

input AwsAppSyncListTagsForResourceInput {
  resourceArn: String!
}

type AwsAppSyncListTypesOutput {
  types: [AwsAppSyncS1s]
  nextToken: String
}

input AwsAppSyncListTypesInput {
  apiId: String!
  format: String!
  nextToken: String
  maxResults: Int
}

type AwsAppSyncStartSchemaCreationOutput {
  status: String
}

input AwsAppSyncStartSchemaCreationInput {
  apiId: String!
  definition: JSON!
}

input AwsAppSyncTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAppSyncUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsAppSyncUpdateApiCacheOutput {
  apiCache: AwsAppSyncS8
}

input AwsAppSyncUpdateApiCacheInput {
  apiId: String!
  ttl: JSON!
  apiCachingBehavior: String!
  type: String!
}

type AwsAppSyncUpdateApiKeyOutput {
  apiKey: AwsAppSyncSc
}

input AwsAppSyncUpdateApiKeyInput {
  apiId: String!
  id: String!
  description: String
  expires: JSON
}

type AwsAppSyncUpdateDataSourceOutput {
  dataSource: AwsAppSyncSs
}

input AwsAppSyncUpdateDataSourceInput {
  apiId: String!
  name: String!
  description: String
  type: String!
  serviceRoleArn: String
  dynamodbConfig: AwsAppSyncSgInput
  lambdaConfig: AwsAppSyncSiInput
  elasticsearchConfig: AwsAppSyncSjInput
  httpConfig: AwsAppSyncSkInput
  relationalDatabaseConfig: AwsAppSyncSoInput
}

type AwsAppSyncUpdateFunctionOutput {
  functionConfiguration: AwsAppSyncS10
}

input AwsAppSyncUpdateFunctionInput {
  apiId: String!
  name: String!
  description: String
  functionId: String!
  dataSourceName: String!
  requestMappingTemplate: String
  responseMappingTemplate: String
  functionVersion: String!
  syncConfig: AwsAppSyncSvInput
}

type AwsAppSyncUpdateGraphqlApiOutput {
  graphqlApi: AwsAppSyncS1f
}

input AwsAppSyncUpdateGraphqlApiInput {
  apiId: String!
  name: String!
  logConfig: AwsAppSyncS12Input
  authenticationType: String
  userPoolConfig: AwsAppSyncS15Input
  openIDConnectConfig: AwsAppSyncS17Input
  additionalAuthenticationProviders: [AwsAppSyncS1bInput]
  xrayEnabled: Boolean
}

type AwsAppSyncUpdateResolverOutput {
  resolver: AwsAppSyncS1o
}

input AwsAppSyncUpdateResolverInput {
  apiId: String!
  typeName: String!
  fieldName: String!
  dataSourceName: String
  requestMappingTemplate: String
  responseMappingTemplate: String
  kind: String
  pipelineConfig: AwsAppSyncS1jInput
  syncConfig: AwsAppSyncSvInput
  cachingConfig: AwsAppSyncS1lInput
}

type AwsAppSyncUpdateTypeOutput {
  type: AwsAppSyncS1s
}

input AwsAppSyncUpdateTypeInput {
  apiId: String!
  typeName: String!
  definition: String
  format: String!
}

"""Amazon Appflow (2020-08-23)"""
type AwsAppflow {
  createConnectorProfile(input: AwsAppflowCreateConnectorProfileInput!, config: AwsConfig): AwsAppflowCreateConnectorProfileOutput
  createFlow(input: AwsAppflowCreateFlowInput!, config: AwsConfig): AwsAppflowCreateFlowOutput
  deleteConnectorProfile(input: AwsAppflowDeleteConnectorProfileInput!, config: AwsConfig): JSON
  deleteFlow(input: AwsAppflowDeleteFlowInput!, config: AwsConfig): JSON
  describeConnectorEntity(input: AwsAppflowDescribeConnectorEntityInput!, config: AwsConfig): AwsAppflowDescribeConnectorEntityOutput
  describeConnectorProfiles(input: AwsAppflowDescribeConnectorProfilesInput, config: AwsConfig): AwsAppflowDescribeConnectorProfilesOutput
  describeConnectors(input: AwsAppflowDescribeConnectorsInput, config: AwsConfig): AwsAppflowDescribeConnectorsOutput
  describeFlow(input: AwsAppflowDescribeFlowInput!, config: AwsConfig): AwsAppflowDescribeFlowOutput
  describeFlowExecutionRecords(input: AwsAppflowDescribeFlowExecutionRecordsInput!, config: AwsConfig): AwsAppflowDescribeFlowExecutionRecordsOutput
  listConnectorEntities(input: AwsAppflowListConnectorEntitiesInput, config: AwsConfig): AwsAppflowListConnectorEntitiesOutput
  listFlows(input: AwsAppflowListFlowsInput, config: AwsConfig): AwsAppflowListFlowsOutput
  listTagsForResource(input: AwsAppflowListTagsForResourceInput!, config: AwsConfig): AwsAppflowListTagsForResourceOutput
  startFlow(input: AwsAppflowStartFlowInput!, config: AwsConfig): AwsAppflowStartFlowOutput
  stopFlow(input: AwsAppflowStopFlowInput!, config: AwsConfig): AwsAppflowStopFlowOutput
  tagResource(input: AwsAppflowTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAppflowUntagResourceInput!, config: AwsConfig): JSON
  updateConnectorProfile(input: AwsAppflowUpdateConnectorProfileInput!, config: AwsConfig): AwsAppflowUpdateConnectorProfileOutput
  updateFlow(input: AwsAppflowUpdateFlowInput!, config: AwsConfig): AwsAppflowUpdateFlowOutput
}

type AwsAppflowCreateConnectorProfileOutput {
  connectorProfileArn: String
}

input AwsAppflowCreateConnectorProfileInput {
  connectorProfileName: String!
  kmsArn: String
  connectorType: String!
  connectionMode: String!
  connectorProfileConfig: AwsAppflowS6Input!
}

input AwsAppflowS6Input {
  connectorProfileProperties: AwsAppflowS7Input!
  connectorProfileCredentials: AwsAppflowS6ConnectorProfileCredentialsInput!
}

input AwsAppflowS7Input {
  Amplitude: JSON
  Datadog: AwsAppflowS7DatadogInput
  Dynatrace: AwsAppflowS7DynatraceInput
  GoogleAnalytics: JSON
  Honeycode: JSON
  InforNexus: AwsAppflowS7InforNexusInput
  Marketo: AwsAppflowS7MarketoInput
  Redshift: AwsAppflowS7RedshiftInput
  Salesforce: AwsAppflowS7SalesforceInput
  ServiceNow: AwsAppflowS7ServiceNowInput
  Singular: JSON
  Slack: AwsAppflowS7SlackInput
  Snowflake: AwsAppflowS7SnowflakeInput
  Trendmicro: JSON
  Veeva: AwsAppflowS7VeevaInput
  Zendesk: AwsAppflowS7ZendeskInput
}

input AwsAppflowS7DatadogInput {
  instanceUrl: String!
}

input AwsAppflowS7DynatraceInput {
  instanceUrl: String!
}

input AwsAppflowS7InforNexusInput {
  instanceUrl: String!
}

input AwsAppflowS7MarketoInput {
  instanceUrl: String!
}

input AwsAppflowS7RedshiftInput {
  databaseUrl: String!
  bucketName: String!
  bucketPrefix: String
  roleArn: String!
}

input AwsAppflowS7SalesforceInput {
  instanceUrl: String
  isSandboxEnvironment: Boolean
}

input AwsAppflowS7ServiceNowInput {
  instanceUrl: String!
}

input AwsAppflowS7SlackInput {
  instanceUrl: String!
}

input AwsAppflowS7SnowflakeInput {
  warehouse: String!
  stage: String!
  bucketName: String!
  bucketPrefix: String
  privateLinkServiceName: String
  accountName: String
  region: String
}

input AwsAppflowS7VeevaInput {
  instanceUrl: String!
}

input AwsAppflowS7ZendeskInput {
  instanceUrl: String!
}

input AwsAppflowS6ConnectorProfileCredentialsInput {
  Amplitude: AwsAppflowS6ConnectorProfileCredentialsAmplitudeInput
  Datadog: AwsAppflowS6ConnectorProfileCredentialsDatadogInput
  Dynatrace: AwsAppflowS6ConnectorProfileCredentialsDynatraceInput
  GoogleAnalytics: AwsAppflowS6ConnectorProfileCredentialsGoogleAnalyticsInput
  Honeycode: AwsAppflowS6ConnectorProfileCredentialsHoneycodeInput
  InforNexus: AwsAppflowS6ConnectorProfileCredentialsInforNexusInput
  Marketo: AwsAppflowS6ConnectorProfileCredentialsMarketoInput
  Redshift: AwsAppflowS6ConnectorProfileCredentialsRedshiftInput
  Salesforce: AwsAppflowS6ConnectorProfileCredentialsSalesforceInput
  ServiceNow: AwsAppflowS6ConnectorProfileCredentialsServiceNowInput
  Singular: AwsAppflowS6ConnectorProfileCredentialsSingularInput
  Slack: AwsAppflowS6ConnectorProfileCredentialsSlackInput
  Snowflake: AwsAppflowS6ConnectorProfileCredentialsSnowflakeInput
  Trendmicro: AwsAppflowS6ConnectorProfileCredentialsTrendmicroInput
  Veeva: AwsAppflowS6ConnectorProfileCredentialsVeevaInput
  Zendesk: AwsAppflowS6ConnectorProfileCredentialsZendeskInput
}

input AwsAppflowS6ConnectorProfileCredentialsAmplitudeInput {
  apiKey: String!
  secretKey: String!
}

input AwsAppflowS6ConnectorProfileCredentialsDatadogInput {
  apiKey: String!
  applicationKey: String!
}

input AwsAppflowS6ConnectorProfileCredentialsDynatraceInput {
  apiToken: String!
}

input AwsAppflowS6ConnectorProfileCredentialsGoogleAnalyticsInput {
  clientId: String!
  clientSecret: String!
  accessToken: String
  refreshToken: String
  oAuthRequest: AwsAppflowS1cInput
}

input AwsAppflowS1cInput {
  authCode: String
  redirectUri: String
}

input AwsAppflowS6ConnectorProfileCredentialsHoneycodeInput {
  accessToken: String
  refreshToken: String
  oAuthRequest: AwsAppflowS1cInput
}

input AwsAppflowS6ConnectorProfileCredentialsInforNexusInput {
  accessKeyId: String!
  userId: String!
  secretAccessKey: String!
  datakey: String!
}

input AwsAppflowS6ConnectorProfileCredentialsMarketoInput {
  clientId: String!
  clientSecret: String!
  accessToken: String
  oAuthRequest: AwsAppflowS1cInput
}

input AwsAppflowS6ConnectorProfileCredentialsRedshiftInput {
  username: String!
  password: String!
}

input AwsAppflowS6ConnectorProfileCredentialsSalesforceInput {
  accessToken: String
  refreshToken: String
  oAuthRequest: AwsAppflowS1cInput
  clientCredentialsArn: String
}

input AwsAppflowS6ConnectorProfileCredentialsServiceNowInput {
  username: String!
  password: String!
}

input AwsAppflowS6ConnectorProfileCredentialsSingularInput {
  apiKey: String!
}

input AwsAppflowS6ConnectorProfileCredentialsSlackInput {
  clientId: String!
  clientSecret: String!
  accessToken: String
  oAuthRequest: AwsAppflowS1cInput
}

input AwsAppflowS6ConnectorProfileCredentialsSnowflakeInput {
  username: String!
  password: String!
}

input AwsAppflowS6ConnectorProfileCredentialsTrendmicroInput {
  apiSecretKey: String!
}

input AwsAppflowS6ConnectorProfileCredentialsVeevaInput {
  username: String!
  password: String!
}

input AwsAppflowS6ConnectorProfileCredentialsZendeskInput {
  clientId: String!
  clientSecret: String!
  accessToken: String
  oAuthRequest: AwsAppflowS1cInput
}

type AwsAppflowCreateFlowOutput {
  flowArn: String
  flowStatus: String
}

input AwsAppflowCreateFlowInput {
  flowName: String!
  description: String
  kmsArn: String
  triggerConfig: AwsAppflowS22Input!
  sourceFlowConfig: AwsAppflowS2bInput!
  destinationFlowConfigList: [AwsAppflowS2uInput]!
  tasks: [AwsAppflowS3mInput]!
  tags: JSON
}

input AwsAppflowS22Input {
  triggerType: String!
  triggerProperties: AwsAppflowS22TriggerPropertiesInput
}

input AwsAppflowS22TriggerPropertiesInput {
  Scheduled: AwsAppflowS22TriggerPropertiesScheduledInput
}

input AwsAppflowS22TriggerPropertiesScheduledInput {
  scheduleExpression: String!
  dataPullMode: String
  scheduleStartTime: Date
  scheduleEndTime: Date
  timezone: String
  scheduleOffset: JSON
  firstExecutionFrom: Date
}

input AwsAppflowS2bInput {
  connectorType: String!
  connectorProfileName: String
  sourceConnectorProperties: AwsAppflowS2bSourceConnectorPropertiesInput!
  incrementalPullConfig: AwsAppflowS2bIncrementalPullConfigInput
}

input AwsAppflowS2bSourceConnectorPropertiesInput {
  Amplitude: AwsAppflowS2bSourceConnectorPropertiesAmplitudeInput
  Datadog: AwsAppflowS2bSourceConnectorPropertiesDatadogInput
  Dynatrace: AwsAppflowS2bSourceConnectorPropertiesDynatraceInput
  GoogleAnalytics: AwsAppflowS2bSourceConnectorPropertiesGoogleAnalyticsInput
  InforNexus: AwsAppflowS2bSourceConnectorPropertiesInforNexusInput
  Marketo: AwsAppflowS2bSourceConnectorPropertiesMarketoInput
  S3: AwsAppflowS2bSourceConnectorPropertiesS3Input
  Salesforce: AwsAppflowS2bSourceConnectorPropertiesSalesforceInput
  ServiceNow: AwsAppflowS2bSourceConnectorPropertiesServiceNowInput
  Singular: AwsAppflowS2bSourceConnectorPropertiesSingularInput
  Slack: AwsAppflowS2bSourceConnectorPropertiesSlackInput
  Trendmicro: AwsAppflowS2bSourceConnectorPropertiesTrendmicroInput
  Veeva: AwsAppflowS2bSourceConnectorPropertiesVeevaInput
  Zendesk: AwsAppflowS2bSourceConnectorPropertiesZendeskInput
}

input AwsAppflowS2bSourceConnectorPropertiesAmplitudeInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesDatadogInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesDynatraceInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesGoogleAnalyticsInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesInforNexusInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesMarketoInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesS3Input {
  bucketName: String!
  bucketPrefix: String
}

input AwsAppflowS2bSourceConnectorPropertiesSalesforceInput {
  object: String!
  enableDynamicFieldUpdate: Boolean
  includeDeletedRecords: Boolean
}

input AwsAppflowS2bSourceConnectorPropertiesServiceNowInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesSingularInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesSlackInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesTrendmicroInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesVeevaInput {
  object: String!
}

input AwsAppflowS2bSourceConnectorPropertiesZendeskInput {
  object: String!
}

input AwsAppflowS2bIncrementalPullConfigInput {
  datetimeTypeFieldName: String
}

input AwsAppflowS2uInput {
  connectorType: String!
  connectorProfileName: String
  destinationConnectorProperties: AwsAppflowS2uDestinationConnectorPropertiesInput!
}

input AwsAppflowS2uDestinationConnectorPropertiesInput {
  Redshift: AwsAppflowS2uDestinationConnectorPropertiesRedshiftInput
  S3: AwsAppflowS2uDestinationConnectorPropertiesS3Input
  Salesforce: AwsAppflowS2uDestinationConnectorPropertiesSalesforceInput
  Snowflake: AwsAppflowS2uDestinationConnectorPropertiesSnowflakeInput
  EventBridge: AwsAppflowS2uDestinationConnectorPropertiesEventBridgeInput
  LookoutMetrics: JSON
  Upsolver: AwsAppflowS2uDestinationConnectorPropertiesUpsolverInput
  Honeycode: AwsAppflowS2uDestinationConnectorPropertiesHoneycodeInput
  CustomerProfiles: AwsAppflowS2uDestinationConnectorPropertiesCustomerProfilesInput
  Zendesk: AwsAppflowS2uDestinationConnectorPropertiesZendeskInput
}

input AwsAppflowS2uDestinationConnectorPropertiesRedshiftInput {
  object: String!
  intermediateBucketName: String!
  bucketPrefix: String
  errorHandlingConfig: AwsAppflowS2yInput
}

input AwsAppflowS2yInput {
  failOnFirstDestinationError: Boolean
  bucketPrefix: String
  bucketName: String
}

input AwsAppflowS2uDestinationConnectorPropertiesS3Input {
  bucketName: String!
  bucketPrefix: String
  s3OutputFormatConfig: AwsAppflowS2uDestinationConnectorPropertiesS3S3OutputFormatConfigInput
}

input AwsAppflowS2uDestinationConnectorPropertiesS3S3OutputFormatConfigInput {
  fileType: String
  prefixConfig: AwsAppflowS32Input
  aggregationConfig: AwsAppflowS35Input
}

input AwsAppflowS32Input {
  prefixType: String
  prefixFormat: String
}

input AwsAppflowS35Input {
  aggregationType: String
}

input AwsAppflowS2uDestinationConnectorPropertiesSalesforceInput {
  object: String!
  idFieldNames: [String]
  errorHandlingConfig: AwsAppflowS2yInput
  writeOperationType: String
}

input AwsAppflowS2uDestinationConnectorPropertiesSnowflakeInput {
  object: String!
  intermediateBucketName: String!
  bucketPrefix: String
  errorHandlingConfig: AwsAppflowS2yInput
}

input AwsAppflowS2uDestinationConnectorPropertiesEventBridgeInput {
  object: String!
  errorHandlingConfig: AwsAppflowS2yInput
}

input AwsAppflowS2uDestinationConnectorPropertiesUpsolverInput {
  bucketName: String!
  bucketPrefix: String
  s3OutputFormatConfig: AwsAppflowS2uDestinationConnectorPropertiesUpsolverS3OutputFormatConfigInput!
}

input AwsAppflowS2uDestinationConnectorPropertiesUpsolverS3OutputFormatConfigInput {
  fileType: String
  prefixConfig: AwsAppflowS32Input!
  aggregationConfig: AwsAppflowS35Input
}

input AwsAppflowS2uDestinationConnectorPropertiesHoneycodeInput {
  object: String!
  errorHandlingConfig: AwsAppflowS2yInput
}

input AwsAppflowS2uDestinationConnectorPropertiesCustomerProfilesInput {
  domainName: String!
  objectTypeName: String
}

input AwsAppflowS2uDestinationConnectorPropertiesZendeskInput {
  object: String!
  idFieldNames: [String]
  errorHandlingConfig: AwsAppflowS2yInput
  writeOperationType: String
}

input AwsAppflowS3mInput {
  sourceFields: [String]!
  connectorOperator: AwsAppflowS3mConnectorOperatorInput
  destinationField: String
  taskType: String!
  taskProperties: JSON
}

input AwsAppflowS3mConnectorOperatorInput {
  Amplitude: String
  Datadog: String
  Dynatrace: String
  GoogleAnalytics: String
  InforNexus: String
  Marketo: String
  S3: String
  Salesforce: String
  ServiceNow: String
  Singular: String
  Slack: String
  Trendmicro: String
  Veeva: String
  Zendesk: String
}

input AwsAppflowDeleteConnectorProfileInput {
  connectorProfileName: String!
  forceDelete: Boolean
}

input AwsAppflowDeleteFlowInput {
  flowName: String!
  forceDelete: Boolean
}

type AwsAppflowDescribeConnectorEntityOutput {
  connectorEntityFields: [AwsAppflowDescribeConnectorEntityOutputConnectorEntityFields]!
}

type AwsAppflowDescribeConnectorEntityOutputConnectorEntityFields {
  identifier: String!
  label: String
  supportedFieldTypeDetails: AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSupportedFieldTypeDetails
  description: String
  sourceProperties: AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSourceProperties
  destinationProperties: AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsDestinationProperties
}

type AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSupportedFieldTypeDetails {
  v1: AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSupportedFieldTypeDetailsV1!
}

type AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSupportedFieldTypeDetailsV1 {
  fieldType: String!
  filterOperators: [String]!
  supportedValues: [String]
}

type AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsSourceProperties {
  isRetrievable: Boolean
  isQueryable: Boolean
}

type AwsAppflowDescribeConnectorEntityOutputConnectorEntityFieldsDestinationProperties {
  isCreatable: Boolean
  isNullable: Boolean
  isUpsertable: Boolean
  isUpdatable: Boolean
  supportedWriteOperations: [String]
}

input AwsAppflowDescribeConnectorEntityInput {
  connectorEntityName: String!
  connectorType: String
  connectorProfileName: String
}

type AwsAppflowDescribeConnectorProfilesOutput {
  connectorProfileDetails: [AwsAppflowDescribeConnectorProfilesOutputConnectorProfileDetails]
  nextToken: String
}

type AwsAppflowDescribeConnectorProfilesOutputConnectorProfileDetails {
  connectorProfileArn: String
  connectorProfileName: String
  connectorType: String
  connectionMode: String
  credentialsArn: String
  connectorProfileProperties: AwsAppflowS7
  createdAt: Date
  lastUpdatedAt: Date
}

type AwsAppflowS7 {
  Amplitude: JSON
  Datadog: AwsAppflowS7Datadog
  Dynatrace: AwsAppflowS7Dynatrace
  GoogleAnalytics: JSON
  Honeycode: JSON
  InforNexus: AwsAppflowS7InforNexus
  Marketo: AwsAppflowS7Marketo
  Redshift: AwsAppflowS7Redshift
  Salesforce: AwsAppflowS7Salesforce
  ServiceNow: AwsAppflowS7ServiceNow
  Singular: JSON
  Slack: AwsAppflowS7Slack
  Snowflake: AwsAppflowS7Snowflake
  Trendmicro: JSON
  Veeva: AwsAppflowS7Veeva
  Zendesk: AwsAppflowS7Zendesk
}

type AwsAppflowS7Datadog {
  instanceUrl: String!
}

type AwsAppflowS7Dynatrace {
  instanceUrl: String!
}

type AwsAppflowS7InforNexus {
  instanceUrl: String!
}

type AwsAppflowS7Marketo {
  instanceUrl: String!
}

type AwsAppflowS7Redshift {
  databaseUrl: String!
  bucketName: String!
  bucketPrefix: String
  roleArn: String!
}

type AwsAppflowS7Salesforce {
  instanceUrl: String
  isSandboxEnvironment: Boolean
}

type AwsAppflowS7ServiceNow {
  instanceUrl: String!
}

type AwsAppflowS7Slack {
  instanceUrl: String!
}

type AwsAppflowS7Snowflake {
  warehouse: String!
  stage: String!
  bucketName: String!
  bucketPrefix: String
  privateLinkServiceName: String
  accountName: String
  region: String
}

type AwsAppflowS7Veeva {
  instanceUrl: String!
}

type AwsAppflowS7Zendesk {
  instanceUrl: String!
}

input AwsAppflowDescribeConnectorProfilesInput {
  connectorProfileNames: [String]
  connectorType: String
  maxResults: Int
  nextToken: String
}

type AwsAppflowDescribeConnectorsOutput {
  connectorConfigurations: JSON
  nextToken: String
}

input AwsAppflowDescribeConnectorsInput {
  connectorTypes: [String]
  nextToken: String
}

type AwsAppflowDescribeFlowOutput {
  flowArn: String
  description: String
  flowName: String
  kmsArn: String
  flowStatus: String
  flowStatusMessage: String
  sourceFlowConfig: AwsAppflowS2b
  destinationFlowConfigList: [AwsAppflowS2u]
  lastRunExecutionDetails: AwsAppflowS68
  triggerConfig: AwsAppflowS22
  tasks: [AwsAppflowS3m]
  createdAt: Date
  lastUpdatedAt: Date
  createdBy: String
  lastUpdatedBy: String
  tags: JSON
}

type AwsAppflowS2b {
  connectorType: String!
  connectorProfileName: String
  sourceConnectorProperties: AwsAppflowS2bSourceConnectorProperties!
  incrementalPullConfig: AwsAppflowS2bIncrementalPullConfig
}

type AwsAppflowS2bSourceConnectorProperties {
  Amplitude: AwsAppflowS2bSourceConnectorPropertiesAmplitude
  Datadog: AwsAppflowS2bSourceConnectorPropertiesDatadog
  Dynatrace: AwsAppflowS2bSourceConnectorPropertiesDynatrace
  GoogleAnalytics: AwsAppflowS2bSourceConnectorPropertiesGoogleAnalytics
  InforNexus: AwsAppflowS2bSourceConnectorPropertiesInforNexus
  Marketo: AwsAppflowS2bSourceConnectorPropertiesMarketo
  S3: AwsAppflowS2bSourceConnectorPropertiesS3
  Salesforce: AwsAppflowS2bSourceConnectorPropertiesSalesforce
  ServiceNow: AwsAppflowS2bSourceConnectorPropertiesServiceNow
  Singular: AwsAppflowS2bSourceConnectorPropertiesSingular
  Slack: AwsAppflowS2bSourceConnectorPropertiesSlack
  Trendmicro: AwsAppflowS2bSourceConnectorPropertiesTrendmicro
  Veeva: AwsAppflowS2bSourceConnectorPropertiesVeeva
  Zendesk: AwsAppflowS2bSourceConnectorPropertiesZendesk
}

type AwsAppflowS2bSourceConnectorPropertiesAmplitude {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesDatadog {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesDynatrace {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesGoogleAnalytics {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesInforNexus {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesMarketo {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesS3 {
  bucketName: String!
  bucketPrefix: String
}

type AwsAppflowS2bSourceConnectorPropertiesSalesforce {
  object: String!
  enableDynamicFieldUpdate: Boolean
  includeDeletedRecords: Boolean
}

type AwsAppflowS2bSourceConnectorPropertiesServiceNow {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesSingular {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesSlack {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesTrendmicro {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesVeeva {
  object: String!
}

type AwsAppflowS2bSourceConnectorPropertiesZendesk {
  object: String!
}

type AwsAppflowS2bIncrementalPullConfig {
  datetimeTypeFieldName: String
}

type AwsAppflowS2u {
  connectorType: String!
  connectorProfileName: String
  destinationConnectorProperties: AwsAppflowS2uDestinationConnectorProperties!
}

type AwsAppflowS2uDestinationConnectorProperties {
  Redshift: AwsAppflowS2uDestinationConnectorPropertiesRedshift
  S3: AwsAppflowS2uDestinationConnectorPropertiesS3
  Salesforce: AwsAppflowS2uDestinationConnectorPropertiesSalesforce
  Snowflake: AwsAppflowS2uDestinationConnectorPropertiesSnowflake
  EventBridge: AwsAppflowS2uDestinationConnectorPropertiesEventBridge
  LookoutMetrics: JSON
  Upsolver: AwsAppflowS2uDestinationConnectorPropertiesUpsolver
  Honeycode: AwsAppflowS2uDestinationConnectorPropertiesHoneycode
  CustomerProfiles: AwsAppflowS2uDestinationConnectorPropertiesCustomerProfiles
  Zendesk: AwsAppflowS2uDestinationConnectorPropertiesZendesk
}

type AwsAppflowS2uDestinationConnectorPropertiesRedshift {
  object: String!
  intermediateBucketName: String!
  bucketPrefix: String
  errorHandlingConfig: AwsAppflowS2y
}

type AwsAppflowS2y {
  failOnFirstDestinationError: Boolean
  bucketPrefix: String
  bucketName: String
}

type AwsAppflowS2uDestinationConnectorPropertiesS3 {
  bucketName: String!
  bucketPrefix: String
  s3OutputFormatConfig: AwsAppflowS2uDestinationConnectorPropertiesS3S3OutputFormatConfig
}

type AwsAppflowS2uDestinationConnectorPropertiesS3S3OutputFormatConfig {
  fileType: String
  prefixConfig: AwsAppflowS32
  aggregationConfig: AwsAppflowS35
}

type AwsAppflowS32 {
  prefixType: String
  prefixFormat: String
}

type AwsAppflowS35 {
  aggregationType: String
}

type AwsAppflowS2uDestinationConnectorPropertiesSalesforce {
  object: String!
  idFieldNames: [String]
  errorHandlingConfig: AwsAppflowS2y
  writeOperationType: String
}

type AwsAppflowS2uDestinationConnectorPropertiesSnowflake {
  object: String!
  intermediateBucketName: String!
  bucketPrefix: String
  errorHandlingConfig: AwsAppflowS2y
}

type AwsAppflowS2uDestinationConnectorPropertiesEventBridge {
  object: String!
  errorHandlingConfig: AwsAppflowS2y
}

type AwsAppflowS2uDestinationConnectorPropertiesUpsolver {
  bucketName: String!
  bucketPrefix: String
  s3OutputFormatConfig: AwsAppflowS2uDestinationConnectorPropertiesUpsolverS3OutputFormatConfig!
}

type AwsAppflowS2uDestinationConnectorPropertiesUpsolverS3OutputFormatConfig {
  fileType: String
  prefixConfig: AwsAppflowS32!
  aggregationConfig: AwsAppflowS35
}

type AwsAppflowS2uDestinationConnectorPropertiesHoneycode {
  object: String!
  errorHandlingConfig: AwsAppflowS2y
}

type AwsAppflowS2uDestinationConnectorPropertiesCustomerProfiles {
  domainName: String!
  objectTypeName: String
}

type AwsAppflowS2uDestinationConnectorPropertiesZendesk {
  object: String!
  idFieldNames: [String]
  errorHandlingConfig: AwsAppflowS2y
  writeOperationType: String
}

type AwsAppflowS68 {
  mostRecentExecutionMessage: String
  mostRecentExecutionTime: Date
  mostRecentExecutionStatus: String
}

type AwsAppflowS22 {
  triggerType: String!
  triggerProperties: AwsAppflowS22TriggerProperties
}

type AwsAppflowS22TriggerProperties {
  Scheduled: AwsAppflowS22TriggerPropertiesScheduled
}

type AwsAppflowS22TriggerPropertiesScheduled {
  scheduleExpression: String!
  dataPullMode: String
  scheduleStartTime: Date
  scheduleEndTime: Date
  timezone: String
  scheduleOffset: JSON
  firstExecutionFrom: Date
}

type AwsAppflowS3m {
  sourceFields: [String]!
  connectorOperator: AwsAppflowS3mConnectorOperator
  destinationField: String
  taskType: String!
  taskProperties: JSON
}

type AwsAppflowS3mConnectorOperator {
  Amplitude: String
  Datadog: String
  Dynatrace: String
  GoogleAnalytics: String
  InforNexus: String
  Marketo: String
  S3: String
  Salesforce: String
  ServiceNow: String
  Singular: String
  Slack: String
  Trendmicro: String
  Veeva: String
  Zendesk: String
}

input AwsAppflowDescribeFlowInput {
  flowName: String!
}

type AwsAppflowDescribeFlowExecutionRecordsOutput {
  flowExecutions: [AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutions]
  nextToken: String
}

type AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutions {
  executionId: String
  executionStatus: String
  executionResult: AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutionsExecutionResult
  startedAt: Date
  lastUpdatedAt: Date
  dataPullStartTime: Date
  dataPullEndTime: Date
}

type AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutionsExecutionResult {
  errorInfo: AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutionsExecutionResultErrorInfo
  bytesProcessed: JSON
  bytesWritten: JSON
  recordsProcessed: JSON
}

type AwsAppflowDescribeFlowExecutionRecordsOutputFlowExecutionsExecutionResultErrorInfo {
  putFailuresCount: JSON
  executionMessage: String
}

input AwsAppflowDescribeFlowExecutionRecordsInput {
  flowName: String!
  maxResults: Int
  nextToken: String
}

type AwsAppflowListConnectorEntitiesOutput {
  connectorEntityMap: JSON!
}

input AwsAppflowListConnectorEntitiesInput {
  connectorProfileName: String
  connectorType: String
  entitiesPath: String
}

type AwsAppflowListFlowsOutput {
  flows: [AwsAppflowListFlowsOutputFlows]
  nextToken: String
}

type AwsAppflowListFlowsOutputFlows {
  flowArn: String
  description: String
  flowName: String
  flowStatus: String
  sourceConnectorType: String
  destinationConnectorType: String
  triggerType: String
  createdAt: Date
  lastUpdatedAt: Date
  createdBy: String
  lastUpdatedBy: String
  tags: JSON
  lastRunExecutionDetails: AwsAppflowS68
}

input AwsAppflowListFlowsInput {
  maxResults: Int
  nextToken: String
}

type AwsAppflowListTagsForResourceOutput {
  tags: JSON
}

input AwsAppflowListTagsForResourceInput {
  resourceArn: String!
}

type AwsAppflowStartFlowOutput {
  flowArn: String
  flowStatus: String
  executionId: String
}

input AwsAppflowStartFlowInput {
  flowName: String!
}

type AwsAppflowStopFlowOutput {
  flowArn: String
  flowStatus: String
}

input AwsAppflowStopFlowInput {
  flowName: String!
}

input AwsAppflowTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAppflowUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsAppflowUpdateConnectorProfileOutput {
  connectorProfileArn: String
}

input AwsAppflowUpdateConnectorProfileInput {
  connectorProfileName: String!
  connectionMode: String!
  connectorProfileConfig: AwsAppflowS6Input!
}

type AwsAppflowUpdateFlowOutput {
  flowStatus: String
}

input AwsAppflowUpdateFlowInput {
  flowName: String!
  description: String
  triggerConfig: AwsAppflowS22Input!
  sourceFlowConfig: AwsAppflowS2bInput
  destinationFlowConfigList: [AwsAppflowS2uInput]!
  tasks: [AwsAppflowS3mInput]!
}

"""Application Auto Scaling (2016-02-06)"""
type AwsApplicationAutoScaling {
  deleteScalingPolicy(input: AwsApplicationAutoScalingDeleteScalingPolicyInput!, config: AwsConfig): JSON
  deleteScheduledAction(input: AwsApplicationAutoScalingDeleteScheduledActionInput!, config: AwsConfig): JSON
  deregisterScalableTarget(input: AwsApplicationAutoScalingDeregisterScalableTargetInput!, config: AwsConfig): JSON
  describeScalableTargets(input: AwsApplicationAutoScalingDescribeScalableTargetsInput!, config: AwsConfig): AwsApplicationAutoScalingDescribeScalableTargetsOutput
  describeScalingActivities(input: AwsApplicationAutoScalingDescribeScalingActivitiesInput!, config: AwsConfig): AwsApplicationAutoScalingDescribeScalingActivitiesOutput
  describeScalingPolicies(input: AwsApplicationAutoScalingDescribeScalingPoliciesInput!, config: AwsConfig): AwsApplicationAutoScalingDescribeScalingPoliciesOutput
  describeScheduledActions(input: AwsApplicationAutoScalingDescribeScheduledActionsInput!, config: AwsConfig): AwsApplicationAutoScalingDescribeScheduledActionsOutput
  putScalingPolicy(input: AwsApplicationAutoScalingPutScalingPolicyInput!, config: AwsConfig): AwsApplicationAutoScalingPutScalingPolicyOutput
  putScheduledAction(input: AwsApplicationAutoScalingPutScheduledActionInput!, config: AwsConfig): JSON
  registerScalableTarget(input: AwsApplicationAutoScalingRegisterScalableTargetInput!, config: AwsConfig): JSON
}

input AwsApplicationAutoScalingDeleteScalingPolicyInput {
  PolicyName: String!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
}

input AwsApplicationAutoScalingDeleteScheduledActionInput {
  ServiceNamespace: String!
  ScheduledActionName: String!
  ResourceId: String!
  ScalableDimension: String!
}

input AwsApplicationAutoScalingDeregisterScalableTargetInput {
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
}

type AwsApplicationAutoScalingDescribeScalableTargetsOutput {
  ScalableTargets: [AwsApplicationAutoScalingDescribeScalableTargetsOutputScalableTargets]
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScalableTargetsOutputScalableTargets {
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  MinCapacity: Int!
  MaxCapacity: Int!
  RoleARN: String!
  CreationTime: Date!
  SuspendedState: AwsApplicationAutoScalingSj
}

type AwsApplicationAutoScalingSj {
  DynamicScalingInSuspended: Boolean
  DynamicScalingOutSuspended: Boolean
  ScheduledScalingSuspended: Boolean
}

input AwsApplicationAutoScalingDescribeScalableTargetsInput {
  ServiceNamespace: String!
  ResourceIds: [String]
  ScalableDimension: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScalingActivitiesOutput {
  ScalingActivities: [AwsApplicationAutoScalingDescribeScalingActivitiesOutputScalingActivities]
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScalingActivitiesOutputScalingActivities {
  ActivityId: String!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  Description: String!
  Cause: String!
  StartTime: Date!
  EndTime: Date
  StatusCode: String!
  StatusMessage: String
  Details: String
}

input AwsApplicationAutoScalingDescribeScalingActivitiesInput {
  ServiceNamespace: String!
  ResourceId: String
  ScalableDimension: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScalingPoliciesOutput {
  ScalingPolicies: [AwsApplicationAutoScalingDescribeScalingPoliciesOutputScalingPolicies]
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScalingPoliciesOutputScalingPolicies {
  PolicyARN: String!
  PolicyName: String!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  PolicyType: String!
  StepScalingPolicyConfiguration: AwsApplicationAutoScalingSx
  TargetTrackingScalingPolicyConfiguration: AwsApplicationAutoScalingS16
  Alarms: [AwsApplicationAutoScalingS1k]
  CreationTime: Date!
}

type AwsApplicationAutoScalingSx {
  AdjustmentType: String
  StepAdjustments: [AwsApplicationAutoScalingSxStepAdjustments]
  MinAdjustmentMagnitude: Int
  Cooldown: Int
  MetricAggregationType: String
}

type AwsApplicationAutoScalingSxStepAdjustments {
  MetricIntervalLowerBound: JSON
  MetricIntervalUpperBound: JSON
  ScalingAdjustment: Int!
}

type AwsApplicationAutoScalingS16 {
  TargetValue: JSON!
  PredefinedMetricSpecification: AwsApplicationAutoScalingS16PredefinedMetricSpecification
  CustomizedMetricSpecification: AwsApplicationAutoScalingS16CustomizedMetricSpecification
  ScaleOutCooldown: Int
  ScaleInCooldown: Int
  DisableScaleIn: Boolean
}

type AwsApplicationAutoScalingS16PredefinedMetricSpecification {
  PredefinedMetricType: String!
  ResourceLabel: String
}

type AwsApplicationAutoScalingS16CustomizedMetricSpecification {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsApplicationAutoScalingS16CustomizedMetricSpecificationDimensions]
  Statistic: String!
  Unit: String
}

type AwsApplicationAutoScalingS16CustomizedMetricSpecificationDimensions {
  Name: String!
  Value: String!
}

type AwsApplicationAutoScalingS1k {
  AlarmName: String!
  AlarmARN: String!
}

input AwsApplicationAutoScalingDescribeScalingPoliciesInput {
  PolicyNames: [String]
  ServiceNamespace: String!
  ResourceId: String
  ScalableDimension: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScheduledActionsOutput {
  ScheduledActions: [AwsApplicationAutoScalingDescribeScheduledActionsOutputScheduledActions]
  NextToken: String
}

type AwsApplicationAutoScalingDescribeScheduledActionsOutputScheduledActions {
  ScheduledActionName: String!
  ScheduledActionARN: String!
  ServiceNamespace: String!
  Schedule: String!
  Timezone: String
  ResourceId: String!
  ScalableDimension: String
  StartTime: Date
  EndTime: Date
  ScalableTargetAction: AwsApplicationAutoScalingS1r
  CreationTime: Date!
}

type AwsApplicationAutoScalingS1r {
  MinCapacity: Int
  MaxCapacity: Int
}

input AwsApplicationAutoScalingDescribeScheduledActionsInput {
  ScheduledActionNames: [String]
  ServiceNamespace: String!
  ResourceId: String
  ScalableDimension: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationAutoScalingPutScalingPolicyOutput {
  PolicyARN: String!
  Alarms: [AwsApplicationAutoScalingS1k]
}

input AwsApplicationAutoScalingPutScalingPolicyInput {
  PolicyName: String!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  PolicyType: String
  StepScalingPolicyConfiguration: AwsApplicationAutoScalingSxInput
  TargetTrackingScalingPolicyConfiguration: AwsApplicationAutoScalingS16Input
}

input AwsApplicationAutoScalingSxInput {
  AdjustmentType: String
  StepAdjustments: [AwsApplicationAutoScalingSxStepAdjustmentsInput]
  MinAdjustmentMagnitude: Int
  Cooldown: Int
  MetricAggregationType: String
}

input AwsApplicationAutoScalingSxStepAdjustmentsInput {
  MetricIntervalLowerBound: JSON
  MetricIntervalUpperBound: JSON
  ScalingAdjustment: Int!
}

input AwsApplicationAutoScalingS16Input {
  TargetValue: JSON!
  PredefinedMetricSpecification: AwsApplicationAutoScalingS16PredefinedMetricSpecificationInput
  CustomizedMetricSpecification: AwsApplicationAutoScalingS16CustomizedMetricSpecificationInput
  ScaleOutCooldown: Int
  ScaleInCooldown: Int
  DisableScaleIn: Boolean
}

input AwsApplicationAutoScalingS16PredefinedMetricSpecificationInput {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsApplicationAutoScalingS16CustomizedMetricSpecificationInput {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsApplicationAutoScalingS16CustomizedMetricSpecificationDimensionsInput]
  Statistic: String!
  Unit: String
}

input AwsApplicationAutoScalingS16CustomizedMetricSpecificationDimensionsInput {
  Name: String!
  Value: String!
}

input AwsApplicationAutoScalingPutScheduledActionInput {
  ServiceNamespace: String!
  Schedule: String
  Timezone: String
  ScheduledActionName: String!
  ResourceId: String!
  ScalableDimension: String!
  StartTime: Date
  EndTime: Date
  ScalableTargetAction: AwsApplicationAutoScalingS1rInput
}

input AwsApplicationAutoScalingS1rInput {
  MinCapacity: Int
  MaxCapacity: Int
}

input AwsApplicationAutoScalingRegisterScalableTargetInput {
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  MinCapacity: Int
  MaxCapacity: Int
  RoleARN: String
  SuspendedState: AwsApplicationAutoScalingSjInput
}

input AwsApplicationAutoScalingSjInput {
  DynamicScalingInSuspended: Boolean
  DynamicScalingOutSuspended: Boolean
  ScheduledScalingSuspended: Boolean
}

"""AWS Application Cost Profiler (2020-09-10)"""
type AwsApplicationCostProfiler {
  deleteReportDefinition(input: AwsApplicationCostProfilerDeleteReportDefinitionInput!, config: AwsConfig): AwsApplicationCostProfilerDeleteReportDefinitionOutput
  getReportDefinition(input: AwsApplicationCostProfilerGetReportDefinitionInput!, config: AwsConfig): AwsApplicationCostProfilerGetReportDefinitionOutput
  importApplicationUsage(input: AwsApplicationCostProfilerImportApplicationUsageInput!, config: AwsConfig): AwsApplicationCostProfilerImportApplicationUsageOutput
  listReportDefinitions(input: AwsApplicationCostProfilerListReportDefinitionsInput, config: AwsConfig): AwsApplicationCostProfilerListReportDefinitionsOutput
  putReportDefinition(input: AwsApplicationCostProfilerPutReportDefinitionInput!, config: AwsConfig): AwsApplicationCostProfilerPutReportDefinitionOutput
  updateReportDefinition(input: AwsApplicationCostProfilerUpdateReportDefinitionInput!, config: AwsConfig): AwsApplicationCostProfilerUpdateReportDefinitionOutput
}

type AwsApplicationCostProfilerDeleteReportDefinitionOutput {
  reportId: String
}

input AwsApplicationCostProfilerDeleteReportDefinitionInput {
  reportId: String!
}

type AwsApplicationCostProfilerGetReportDefinitionOutput {
  reportId: String!
  reportDescription: String!
  reportFrequency: String!
  format: String!
  destinationS3Location: AwsApplicationCostProfilerS9!
  createdAt: Date!
  lastUpdated: Date!
}

type AwsApplicationCostProfilerS9 {
  bucket: String!
  prefix: String!
}

input AwsApplicationCostProfilerGetReportDefinitionInput {
  reportId: String!
}

type AwsApplicationCostProfilerImportApplicationUsageOutput {
  importId: String!
}

input AwsApplicationCostProfilerImportApplicationUsageInput {
  sourceS3Location: AwsApplicationCostProfilerImportApplicationUsageSourceS3LocationInput!
}

input AwsApplicationCostProfilerImportApplicationUsageSourceS3LocationInput {
  bucket: String!
  key: String!
  region: String
}

type AwsApplicationCostProfilerListReportDefinitionsOutput {
  reportDefinitions: [AwsApplicationCostProfilerListReportDefinitionsOutputReportDefinitions]
  nextToken: String
}

type AwsApplicationCostProfilerListReportDefinitionsOutputReportDefinitions {
  reportId: String
  reportDescription: String
  reportFrequency: String
  format: String
  destinationS3Location: AwsApplicationCostProfilerS9
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsApplicationCostProfilerListReportDefinitionsInput {
  nextToken: String
  maxResults: Int
}

type AwsApplicationCostProfilerPutReportDefinitionOutput {
  reportId: String
}

input AwsApplicationCostProfilerPutReportDefinitionInput {
  reportId: String!
  reportDescription: String!
  reportFrequency: String!
  format: String!
  destinationS3Location: AwsApplicationCostProfilerS9Input!
}

input AwsApplicationCostProfilerS9Input {
  bucket: String!
  prefix: String!
}

type AwsApplicationCostProfilerUpdateReportDefinitionOutput {
  reportId: String
}

input AwsApplicationCostProfilerUpdateReportDefinitionInput {
  reportId: String!
  reportDescription: String!
  reportFrequency: String!
  format: String!
  destinationS3Location: AwsApplicationCostProfilerS9Input!
}

"""Amazon CloudWatch Application Insights (2018-11-25)"""
type AwsApplicationInsights {
  createApplication(input: AwsApplicationInsightsCreateApplicationInput!, config: AwsConfig): AwsApplicationInsightsCreateApplicationOutput
  createComponent(input: AwsApplicationInsightsCreateComponentInput!, config: AwsConfig): JSON
  createLogPattern(input: AwsApplicationInsightsCreateLogPatternInput!, config: AwsConfig): AwsApplicationInsightsCreateLogPatternOutput
  deleteApplication(input: AwsApplicationInsightsDeleteApplicationInput!, config: AwsConfig): JSON
  deleteComponent(input: AwsApplicationInsightsDeleteComponentInput!, config: AwsConfig): JSON
  deleteLogPattern(input: AwsApplicationInsightsDeleteLogPatternInput!, config: AwsConfig): JSON
  describeApplication(input: AwsApplicationInsightsDescribeApplicationInput!, config: AwsConfig): AwsApplicationInsightsDescribeApplicationOutput
  describeComponent(input: AwsApplicationInsightsDescribeComponentInput!, config: AwsConfig): AwsApplicationInsightsDescribeComponentOutput
  describeComponentConfiguration(input: AwsApplicationInsightsDescribeComponentConfigurationInput!, config: AwsConfig): AwsApplicationInsightsDescribeComponentConfigurationOutput
  describeComponentConfigurationRecommendation(input: AwsApplicationInsightsDescribeComponentConfigurationRecommendationInput!, config: AwsConfig): AwsApplicationInsightsDescribeComponentConfigurationRecommendationOutput
  describeLogPattern(input: AwsApplicationInsightsDescribeLogPatternInput!, config: AwsConfig): AwsApplicationInsightsDescribeLogPatternOutput
  describeObservation(input: AwsApplicationInsightsDescribeObservationInput!, config: AwsConfig): AwsApplicationInsightsDescribeObservationOutput
  describeProblem(input: AwsApplicationInsightsDescribeProblemInput!, config: AwsConfig): AwsApplicationInsightsDescribeProblemOutput
  describeProblemObservations(input: AwsApplicationInsightsDescribeProblemObservationsInput!, config: AwsConfig): AwsApplicationInsightsDescribeProblemObservationsOutput
  listApplications(input: AwsApplicationInsightsListApplicationsInput, config: AwsConfig): AwsApplicationInsightsListApplicationsOutput
  listComponents(input: AwsApplicationInsightsListComponentsInput!, config: AwsConfig): AwsApplicationInsightsListComponentsOutput
  listConfigurationHistory(input: AwsApplicationInsightsListConfigurationHistoryInput, config: AwsConfig): AwsApplicationInsightsListConfigurationHistoryOutput
  listLogPatternSets(input: AwsApplicationInsightsListLogPatternSetsInput!, config: AwsConfig): AwsApplicationInsightsListLogPatternSetsOutput
  listLogPatterns(input: AwsApplicationInsightsListLogPatternsInput!, config: AwsConfig): AwsApplicationInsightsListLogPatternsOutput
  listProblems(input: AwsApplicationInsightsListProblemsInput, config: AwsConfig): AwsApplicationInsightsListProblemsOutput
  listTagsForResource(input: AwsApplicationInsightsListTagsForResourceInput!, config: AwsConfig): AwsApplicationInsightsListTagsForResourceOutput
  tagResource(input: AwsApplicationInsightsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsApplicationInsightsUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsApplicationInsightsUpdateApplicationInput!, config: AwsConfig): AwsApplicationInsightsUpdateApplicationOutput
  updateComponent(input: AwsApplicationInsightsUpdateComponentInput!, config: AwsConfig): JSON
  updateComponentConfiguration(input: AwsApplicationInsightsUpdateComponentConfigurationInput!, config: AwsConfig): JSON
  updateLogPattern(input: AwsApplicationInsightsUpdateLogPatternInput!, config: AwsConfig): AwsApplicationInsightsUpdateLogPatternOutput
}

type AwsApplicationInsightsCreateApplicationOutput {
  ApplicationInfo: AwsApplicationInsightsSb
}

type AwsApplicationInsightsSb {
  ResourceGroupName: String
  LifeCycle: String
  OpsItemSNSTopicArn: String
  OpsCenterEnabled: Boolean
  CWEMonitorEnabled: Boolean
  Remarks: String
}

input AwsApplicationInsightsCreateApplicationInput {
  ResourceGroupName: String!
  OpsCenterEnabled: Boolean
  CWEMonitorEnabled: Boolean
  OpsItemSNSTopicArn: String
  Tags: [AwsApplicationInsightsS6Input]
}

input AwsApplicationInsightsS6Input {
  Key: String!
  Value: String!
}

input AwsApplicationInsightsCreateComponentInput {
  ResourceGroupName: String!
  ComponentName: String!
  ResourceList: [String]!
}

type AwsApplicationInsightsCreateLogPatternOutput {
  LogPattern: AwsApplicationInsightsSp
  ResourceGroupName: String
}

type AwsApplicationInsightsSp {
  PatternSetName: String
  PatternName: String
  Pattern: String
  Rank: Int
}

input AwsApplicationInsightsCreateLogPatternInput {
  ResourceGroupName: String!
  PatternSetName: String!
  PatternName: String!
  Pattern: String!
  Rank: Int!
}

input AwsApplicationInsightsDeleteApplicationInput {
  ResourceGroupName: String!
}

input AwsApplicationInsightsDeleteComponentInput {
  ResourceGroupName: String!
  ComponentName: String!
}

input AwsApplicationInsightsDeleteLogPatternInput {
  ResourceGroupName: String!
  PatternSetName: String!
  PatternName: String!
}

type AwsApplicationInsightsDescribeApplicationOutput {
  ApplicationInfo: AwsApplicationInsightsSb
}

input AwsApplicationInsightsDescribeApplicationInput {
  ResourceGroupName: String!
}

type AwsApplicationInsightsDescribeComponentOutput {
  ApplicationComponent: AwsApplicationInsightsS11
  ResourceList: [String]
}

type AwsApplicationInsightsS11 {
  ComponentName: String
  ComponentRemarks: String
  ResourceType: String
  OsType: String
  Tier: String
  Monitor: Boolean
  DetectedWorkload: JSON
}

input AwsApplicationInsightsDescribeComponentInput {
  ResourceGroupName: String!
  ComponentName: String!
}

type AwsApplicationInsightsDescribeComponentConfigurationOutput {
  Monitor: Boolean
  Tier: String
  ComponentConfiguration: String
}

input AwsApplicationInsightsDescribeComponentConfigurationInput {
  ResourceGroupName: String!
  ComponentName: String!
}

type AwsApplicationInsightsDescribeComponentConfigurationRecommendationOutput {
  ComponentConfiguration: String
}

input AwsApplicationInsightsDescribeComponentConfigurationRecommendationInput {
  ResourceGroupName: String!
  ComponentName: String!
  Tier: String!
}

type AwsApplicationInsightsDescribeLogPatternOutput {
  ResourceGroupName: String
  LogPattern: AwsApplicationInsightsSp
}

input AwsApplicationInsightsDescribeLogPatternInput {
  ResourceGroupName: String!
  PatternSetName: String!
  PatternName: String!
}

type AwsApplicationInsightsDescribeObservationOutput {
  Observation: AwsApplicationInsightsS1k
}

type AwsApplicationInsightsS1k {
  Id: String
  StartTime: Date
  EndTime: Date
  SourceType: String
  SourceARN: String
  LogGroup: String
  LineTime: Date
  LogText: String
  LogFilter: String
  MetricNamespace: String
  MetricName: String
  Unit: String
  Value: JSON
  CloudWatchEventId: String
  CloudWatchEventSource: String
  CloudWatchEventDetailType: String
  HealthEventArn: String
  HealthService: String
  HealthEventTypeCode: String
  HealthEventTypeCategory: String
  HealthEventDescription: String
  CodeDeployDeploymentId: String
  CodeDeployDeploymentGroup: String
  CodeDeployState: String
  CodeDeployApplication: String
  CodeDeployInstanceGroupId: String
  Ec2State: String
  RdsEventCategories: String
  RdsEventMessage: String
  S3EventName: String
  StatesExecutionArn: String
  StatesArn: String
  StatesStatus: String
  StatesInput: String
  EbsEvent: String
  EbsResult: String
  EbsCause: String
  EbsRequestId: String
  XRayFaultPercent: Int
  XRayThrottlePercent: Int
  XRayErrorPercent: Int
  XRayRequestCount: Int
  XRayRequestAverageLatency: JSON
  XRayNodeName: String
  XRayNodeType: String
}

input AwsApplicationInsightsDescribeObservationInput {
  ObservationId: String!
}

type AwsApplicationInsightsDescribeProblemOutput {
  Problem: AwsApplicationInsightsS2w
}

type AwsApplicationInsightsS2w {
  Id: String
  Title: String
  Insights: String
  Status: String
  AffectedResource: String
  StartTime: Date
  EndTime: Date
  SeverityLevel: String
  ResourceGroupName: String
  Feedback: JSON
}

input AwsApplicationInsightsDescribeProblemInput {
  ProblemId: String!
}

type AwsApplicationInsightsDescribeProblemObservationsOutput {
  RelatedObservations: AwsApplicationInsightsDescribeProblemObservationsOutputRelatedObservations
}

type AwsApplicationInsightsDescribeProblemObservationsOutputRelatedObservations {
  ObservationList: [AwsApplicationInsightsS1k]
}

input AwsApplicationInsightsDescribeProblemObservationsInput {
  ProblemId: String!
}

type AwsApplicationInsightsListApplicationsOutput {
  ApplicationInfoList: [AwsApplicationInsightsSb]
  NextToken: String
}

input AwsApplicationInsightsListApplicationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListComponentsOutput {
  ApplicationComponentList: [AwsApplicationInsightsS11]
  NextToken: String
}

input AwsApplicationInsightsListComponentsInput {
  ResourceGroupName: String!
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListConfigurationHistoryOutput {
  EventList: [AwsApplicationInsightsListConfigurationHistoryOutputEventList]
  NextToken: String
}

type AwsApplicationInsightsListConfigurationHistoryOutputEventList {
  MonitoredResourceARN: String
  EventStatus: String
  EventResourceType: String
  EventTime: Date
  EventDetail: String
  EventResourceName: String
}

input AwsApplicationInsightsListConfigurationHistoryInput {
  ResourceGroupName: String
  StartTime: Date
  EndTime: Date
  EventStatus: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListLogPatternSetsOutput {
  ResourceGroupName: String
  LogPatternSets: [String]
  NextToken: String
}

input AwsApplicationInsightsListLogPatternSetsInput {
  ResourceGroupName: String!
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListLogPatternsOutput {
  ResourceGroupName: String
  LogPatterns: [AwsApplicationInsightsSp]
  NextToken: String
}

input AwsApplicationInsightsListLogPatternsInput {
  ResourceGroupName: String!
  PatternSetName: String
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListProblemsOutput {
  ProblemList: [AwsApplicationInsightsS2w]
  NextToken: String
}

input AwsApplicationInsightsListProblemsInput {
  ResourceGroupName: String
  StartTime: Date
  EndTime: Date
  MaxResults: Int
  NextToken: String
}

type AwsApplicationInsightsListTagsForResourceOutput {
  Tags: [AwsApplicationInsightsS6]
}

type AwsApplicationInsightsS6 {
  Key: String!
  Value: String!
}

input AwsApplicationInsightsListTagsForResourceInput {
  ResourceARN: String!
}

input AwsApplicationInsightsTagResourceInput {
  ResourceARN: String!
  Tags: [AwsApplicationInsightsS6Input]!
}

input AwsApplicationInsightsUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsApplicationInsightsUpdateApplicationOutput {
  ApplicationInfo: AwsApplicationInsightsSb
}

input AwsApplicationInsightsUpdateApplicationInput {
  ResourceGroupName: String!
  OpsCenterEnabled: Boolean
  CWEMonitorEnabled: Boolean
  OpsItemSNSTopicArn: String
  RemoveSNSTopic: Boolean
}

input AwsApplicationInsightsUpdateComponentInput {
  ResourceGroupName: String!
  ComponentName: String!
  NewComponentName: String
  ResourceList: [String]
}

input AwsApplicationInsightsUpdateComponentConfigurationInput {
  ResourceGroupName: String!
  ComponentName: String!
  Monitor: Boolean
  Tier: String
  ComponentConfiguration: String
}

type AwsApplicationInsightsUpdateLogPatternOutput {
  ResourceGroupName: String
  LogPattern: AwsApplicationInsightsSp
}

input AwsApplicationInsightsUpdateLogPatternInput {
  ResourceGroupName: String!
  PatternSetName: String!
  PatternName: String!
  Pattern: String
  Rank: Int
}

"""Amazon Athena (2017-05-18)"""
type AwsAthena {
  batchGetNamedQuery(input: AwsAthenaBatchGetNamedQueryInput!, config: AwsConfig): AwsAthenaBatchGetNamedQueryOutput
  batchGetQueryExecution(input: AwsAthenaBatchGetQueryExecutionInput!, config: AwsConfig): AwsAthenaBatchGetQueryExecutionOutput
  createDataCatalog(input: AwsAthenaCreateDataCatalogInput!, config: AwsConfig): JSON
  createNamedQuery(input: AwsAthenaCreateNamedQueryInput!, config: AwsConfig): AwsAthenaCreateNamedQueryOutput
  createPreparedStatement(input: AwsAthenaCreatePreparedStatementInput!, config: AwsConfig): JSON
  createWorkGroup(input: AwsAthenaCreateWorkGroupInput!, config: AwsConfig): JSON
  deleteDataCatalog(input: AwsAthenaDeleteDataCatalogInput!, config: AwsConfig): JSON
  deleteNamedQuery(input: AwsAthenaDeleteNamedQueryInput!, config: AwsConfig): JSON
  deletePreparedStatement(input: AwsAthenaDeletePreparedStatementInput!, config: AwsConfig): JSON
  deleteWorkGroup(input: AwsAthenaDeleteWorkGroupInput!, config: AwsConfig): JSON
  getDataCatalog(input: AwsAthenaGetDataCatalogInput!, config: AwsConfig): AwsAthenaGetDataCatalogOutput
  getDatabase(input: AwsAthenaGetDatabaseInput!, config: AwsConfig): AwsAthenaGetDatabaseOutput
  getNamedQuery(input: AwsAthenaGetNamedQueryInput!, config: AwsConfig): AwsAthenaGetNamedQueryOutput
  getPreparedStatement(input: AwsAthenaGetPreparedStatementInput!, config: AwsConfig): AwsAthenaGetPreparedStatementOutput
  getQueryExecution(input: AwsAthenaGetQueryExecutionInput!, config: AwsConfig): AwsAthenaGetQueryExecutionOutput
  getQueryResults(input: AwsAthenaGetQueryResultsInput!, config: AwsConfig): AwsAthenaGetQueryResultsOutput
  getTableMetadata(input: AwsAthenaGetTableMetadataInput!, config: AwsConfig): AwsAthenaGetTableMetadataOutput
  getWorkGroup(input: AwsAthenaGetWorkGroupInput!, config: AwsConfig): AwsAthenaGetWorkGroupOutput
  listDataCatalogs(input: AwsAthenaListDataCatalogsInput, config: AwsConfig): AwsAthenaListDataCatalogsOutput
  listDatabases(input: AwsAthenaListDatabasesInput!, config: AwsConfig): AwsAthenaListDatabasesOutput
  listEngineVersions(input: AwsAthenaListEngineVersionsInput, config: AwsConfig): AwsAthenaListEngineVersionsOutput
  listNamedQueries(input: AwsAthenaListNamedQueriesInput, config: AwsConfig): AwsAthenaListNamedQueriesOutput
  listPreparedStatements(input: AwsAthenaListPreparedStatementsInput!, config: AwsConfig): AwsAthenaListPreparedStatementsOutput
  listQueryExecutions(input: AwsAthenaListQueryExecutionsInput, config: AwsConfig): AwsAthenaListQueryExecutionsOutput
  listTableMetadata(input: AwsAthenaListTableMetadataInput!, config: AwsConfig): AwsAthenaListTableMetadataOutput
  listTagsForResource(input: AwsAthenaListTagsForResourceInput!, config: AwsConfig): AwsAthenaListTagsForResourceOutput
  listWorkGroups(input: AwsAthenaListWorkGroupsInput, config: AwsConfig): AwsAthenaListWorkGroupsOutput
  startQueryExecution(input: AwsAthenaStartQueryExecutionInput!, config: AwsConfig): AwsAthenaStartQueryExecutionOutput
  stopQueryExecution(input: AwsAthenaStopQueryExecutionInput!, config: AwsConfig): JSON
  tagResource(input: AwsAthenaTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAthenaUntagResourceInput!, config: AwsConfig): JSON
  updateDataCatalog(input: AwsAthenaUpdateDataCatalogInput!, config: AwsConfig): JSON
  updatePreparedStatement(input: AwsAthenaUpdatePreparedStatementInput!, config: AwsConfig): JSON
  updateWorkGroup(input: AwsAthenaUpdateWorkGroupInput!, config: AwsConfig): JSON
}

type AwsAthenaBatchGetNamedQueryOutput {
  NamedQueries: [AwsAthenaS6]
  UnprocessedNamedQueryIds: [AwsAthenaBatchGetNamedQueryOutputUnprocessedNamedQueryIds]
}

type AwsAthenaS6 {
  Name: String!
  Description: String
  Database: String!
  QueryString: String!
  NamedQueryId: String
  WorkGroup: String
}

type AwsAthenaBatchGetNamedQueryOutputUnprocessedNamedQueryIds {
  NamedQueryId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsAthenaBatchGetNamedQueryInput {
  NamedQueryIds: [String]!
}

type AwsAthenaBatchGetQueryExecutionOutput {
  QueryExecutions: [AwsAthenaSl]
  UnprocessedQueryExecutionIds: [AwsAthenaBatchGetQueryExecutionOutputUnprocessedQueryExecutionIds]
}

type AwsAthenaSl {
  QueryExecutionId: String
  Query: String
  StatementType: String
  ResultConfiguration: AwsAthenaSn
  QueryExecutionContext: AwsAthenaSr
  Status: AwsAthenaSlStatus
  Statistics: AwsAthenaSlStatistics
  WorkGroup: String
  EngineVersion: AwsAthenaSy
}

type AwsAthenaSn {
  OutputLocation: String
  EncryptionConfiguration: AwsAthenaSp
}

type AwsAthenaSp {
  EncryptionOption: String!
  KmsKey: String
}

type AwsAthenaSr {
  Database: String
  Catalog: String
}

type AwsAthenaSlStatus {
  State: String
  StateChangeReason: String
  SubmissionDateTime: Date
  CompletionDateTime: Date
}

type AwsAthenaSlStatistics {
  EngineExecutionTimeInMillis: JSON
  DataScannedInBytes: JSON
  DataManifestLocation: String
  TotalExecutionTimeInMillis: JSON
  QueryQueueTimeInMillis: JSON
  QueryPlanningTimeInMillis: JSON
  ServiceProcessingTimeInMillis: JSON
}

type AwsAthenaSy {
  SelectedEngineVersion: String
  EffectiveEngineVersion: String
}

type AwsAthenaBatchGetQueryExecutionOutputUnprocessedQueryExecutionIds {
  QueryExecutionId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsAthenaBatchGetQueryExecutionInput {
  QueryExecutionIds: [String]!
}

input AwsAthenaCreateDataCatalogInput {
  Name: String!
  Type: String!
  Description: String
  Parameters: JSON
  Tags: [AwsAthenaS16Input]
}

input AwsAthenaS16Input {
  Key: String
  Value: String
}

type AwsAthenaCreateNamedQueryOutput {
  NamedQueryId: String
}

input AwsAthenaCreateNamedQueryInput {
  Name: String!
  Description: String
  Database: String!
  QueryString: String!
  ClientRequestToken: String
  WorkGroup: String
}

input AwsAthenaCreatePreparedStatementInput {
  StatementName: String!
  WorkGroup: String!
  QueryStatement: String!
  Description: String
}

input AwsAthenaCreateWorkGroupInput {
  Name: String!
  Configuration: AwsAthenaS1iInput
  Description: String
  Tags: [AwsAthenaS16Input]
}

input AwsAthenaS1iInput {
  ResultConfiguration: AwsAthenaSnInput
  EnforceWorkGroupConfiguration: Boolean
  PublishCloudWatchMetricsEnabled: Boolean
  BytesScannedCutoffPerQuery: JSON
  RequesterPaysEnabled: Boolean
  EngineVersion: AwsAthenaSyInput
}

input AwsAthenaSnInput {
  OutputLocation: String
  EncryptionConfiguration: AwsAthenaSpInput
}

input AwsAthenaSpInput {
  EncryptionOption: String!
  KmsKey: String
}

input AwsAthenaSyInput {
  SelectedEngineVersion: String
  EffectiveEngineVersion: String
}

input AwsAthenaDeleteDataCatalogInput {
  Name: String!
}

input AwsAthenaDeleteNamedQueryInput {
  NamedQueryId: String!
}

input AwsAthenaDeletePreparedStatementInput {
  StatementName: String!
  WorkGroup: String!
}

input AwsAthenaDeleteWorkGroupInput {
  WorkGroup: String!
  RecursiveDeleteOption: Boolean
}

type AwsAthenaGetDataCatalogOutput {
  DataCatalog: AwsAthenaGetDataCatalogOutputDataCatalog
}

type AwsAthenaGetDataCatalogOutputDataCatalog {
  Name: String!
  Description: String
  Type: String!
  Parameters: JSON
}

input AwsAthenaGetDataCatalogInput {
  Name: String!
}

type AwsAthenaGetDatabaseOutput {
  Database: AwsAthenaS20
}

type AwsAthenaS20 {
  Name: String!
  Description: String
  Parameters: JSON
}

input AwsAthenaGetDatabaseInput {
  CatalogName: String!
  DatabaseName: String!
}

type AwsAthenaGetNamedQueryOutput {
  NamedQuery: AwsAthenaS6
}

input AwsAthenaGetNamedQueryInput {
  NamedQueryId: String!
}

type AwsAthenaGetPreparedStatementOutput {
  PreparedStatement: AwsAthenaGetPreparedStatementOutputPreparedStatement
}

type AwsAthenaGetPreparedStatementOutputPreparedStatement {
  StatementName: String
  QueryStatement: String
  WorkGroupName: String
  Description: String
  LastModifiedTime: Date
}

input AwsAthenaGetPreparedStatementInput {
  StatementName: String!
  WorkGroup: String!
}

type AwsAthenaGetQueryExecutionOutput {
  QueryExecution: AwsAthenaSl
}

input AwsAthenaGetQueryExecutionInput {
  QueryExecutionId: String!
}

type AwsAthenaGetQueryResultsOutput {
  UpdateCount: JSON
  ResultSet: AwsAthenaGetQueryResultsOutputResultSet
  NextToken: String
}

type AwsAthenaGetQueryResultsOutputResultSet {
  Rows: [AwsAthenaGetQueryResultsOutputResultSetRows]
  ResultSetMetadata: AwsAthenaGetQueryResultsOutputResultSetResultSetMetadata
}

type AwsAthenaGetQueryResultsOutputResultSetRows {
  Data: [AwsAthenaGetQueryResultsOutputResultSetRowsData]
}

type AwsAthenaGetQueryResultsOutputResultSetRowsData {
  VarCharValue: String
}

type AwsAthenaGetQueryResultsOutputResultSetResultSetMetadata {
  ColumnInfo: [AwsAthenaGetQueryResultsOutputResultSetResultSetMetadataColumnInfo]
}

type AwsAthenaGetQueryResultsOutputResultSetResultSetMetadataColumnInfo {
  CatalogName: String
  SchemaName: String
  TableName: String
  Name: String!
  Label: String
  Type: String!
  Precision: Int
  Scale: Int
  Nullable: String
  CaseSensitive: Boolean
}

input AwsAthenaGetQueryResultsInput {
  QueryExecutionId: String!
  NextToken: String
  MaxResults: Int
}

type AwsAthenaGetTableMetadataOutput {
  TableMetadata: AwsAthenaS2q
}

type AwsAthenaS2q {
  Name: String!
  CreateTime: Date
  LastAccessTime: Date
  TableType: String
  Columns: [AwsAthenaS2t]
  PartitionKeys: [AwsAthenaS2t]
  Parameters: JSON
}

type AwsAthenaS2t {
  Name: String!
  Type: String
  Comment: String
}

input AwsAthenaGetTableMetadataInput {
  CatalogName: String!
  DatabaseName: String!
  TableName: String!
}

type AwsAthenaGetWorkGroupOutput {
  WorkGroup: AwsAthenaGetWorkGroupOutputWorkGroup
}

type AwsAthenaGetWorkGroupOutputWorkGroup {
  Name: String!
  State: String
  Configuration: AwsAthenaS1i
  Description: String
  CreationTime: Date
}

type AwsAthenaS1i {
  ResultConfiguration: AwsAthenaSn
  EnforceWorkGroupConfiguration: Boolean
  PublishCloudWatchMetricsEnabled: Boolean
  BytesScannedCutoffPerQuery: JSON
  RequesterPaysEnabled: Boolean
  EngineVersion: AwsAthenaSy
}

input AwsAthenaGetWorkGroupInput {
  WorkGroup: String!
}

type AwsAthenaListDataCatalogsOutput {
  DataCatalogsSummary: [AwsAthenaListDataCatalogsOutputDataCatalogsSummary]
  NextToken: String
}

type AwsAthenaListDataCatalogsOutputDataCatalogsSummary {
  CatalogName: String
  Type: String
}

input AwsAthenaListDataCatalogsInput {
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListDatabasesOutput {
  DatabaseList: [AwsAthenaS20]
  NextToken: String
}

input AwsAthenaListDatabasesInput {
  CatalogName: String!
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListEngineVersionsOutput {
  EngineVersions: [AwsAthenaSy]
  NextToken: String
}

input AwsAthenaListEngineVersionsInput {
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListNamedQueriesOutput {
  NamedQueryIds: [String]
  NextToken: String
}

input AwsAthenaListNamedQueriesInput {
  NextToken: String
  MaxResults: Int
  WorkGroup: String
}

type AwsAthenaListPreparedStatementsOutput {
  PreparedStatements: [AwsAthenaListPreparedStatementsOutputPreparedStatements]
  NextToken: String
}

type AwsAthenaListPreparedStatementsOutputPreparedStatements {
  StatementName: String
  LastModifiedTime: Date
}

input AwsAthenaListPreparedStatementsInput {
  WorkGroup: String!
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListQueryExecutionsOutput {
  QueryExecutionIds: [String]
  NextToken: String
}

input AwsAthenaListQueryExecutionsInput {
  NextToken: String
  MaxResults: Int
  WorkGroup: String
}

type AwsAthenaListTableMetadataOutput {
  TableMetadataList: [AwsAthenaS2q]
  NextToken: String
}

input AwsAthenaListTableMetadataInput {
  CatalogName: String!
  DatabaseName: String!
  Expression: String
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListTagsForResourceOutput {
  Tags: [AwsAthenaS16]
  NextToken: String
}

type AwsAthenaS16 {
  Key: String
  Value: String
}

input AwsAthenaListTagsForResourceInput {
  ResourceARN: String!
  NextToken: String
  MaxResults: Int
}

type AwsAthenaListWorkGroupsOutput {
  WorkGroups: [AwsAthenaListWorkGroupsOutputWorkGroups]
  NextToken: String
}

type AwsAthenaListWorkGroupsOutputWorkGroups {
  Name: String
  State: String
  Description: String
  CreationTime: Date
  EngineVersion: AwsAthenaSy
}

input AwsAthenaListWorkGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsAthenaStartQueryExecutionOutput {
  QueryExecutionId: String
}

input AwsAthenaStartQueryExecutionInput {
  QueryString: String!
  ClientRequestToken: String
  QueryExecutionContext: AwsAthenaSrInput
  ResultConfiguration: AwsAthenaSnInput
  WorkGroup: String
}

input AwsAthenaSrInput {
  Database: String
  Catalog: String
}

input AwsAthenaStopQueryExecutionInput {
  QueryExecutionId: String!
}

input AwsAthenaTagResourceInput {
  ResourceARN: String!
  Tags: [AwsAthenaS16Input]!
}

input AwsAthenaUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsAthenaUpdateDataCatalogInput {
  Name: String!
  Type: String!
  Description: String
  Parameters: JSON
}

input AwsAthenaUpdatePreparedStatementInput {
  StatementName: String!
  WorkGroup: String!
  QueryStatement: String!
  Description: String
}

input AwsAthenaUpdateWorkGroupInput {
  WorkGroup: String!
  Description: String
  ConfigurationUpdates: AwsAthenaUpdateWorkGroupConfigurationUpdatesInput
  State: String
}

input AwsAthenaUpdateWorkGroupConfigurationUpdatesInput {
  EnforceWorkGroupConfiguration: Boolean
  ResultConfigurationUpdates: AwsAthenaUpdateWorkGroupConfigurationUpdatesResultConfigurationUpdatesInput
  PublishCloudWatchMetricsEnabled: Boolean
  BytesScannedCutoffPerQuery: JSON
  RemoveBytesScannedCutoffPerQuery: Boolean
  RequesterPaysEnabled: Boolean
  EngineVersion: AwsAthenaSyInput
}

input AwsAthenaUpdateWorkGroupConfigurationUpdatesResultConfigurationUpdatesInput {
  OutputLocation: String
  RemoveOutputLocation: Boolean
  EncryptionConfiguration: AwsAthenaSpInput
  RemoveEncryptionConfiguration: Boolean
}

"""AWS Audit Manager (2017-07-25)"""
type AwsAuditManager {
  associateAssessmentReportEvidenceFolder(input: AwsAuditManagerAssociateAssessmentReportEvidenceFolderInput!, config: AwsConfig): JSON
  batchAssociateAssessmentReportEvidence(input: AwsAuditManagerBatchAssociateAssessmentReportEvidenceInput!, config: AwsConfig): AwsAuditManagerBatchAssociateAssessmentReportEvidenceOutput
  batchCreateDelegationByAssessment(input: AwsAuditManagerBatchCreateDelegationByAssessmentInput!, config: AwsConfig): AwsAuditManagerBatchCreateDelegationByAssessmentOutput
  batchDeleteDelegationByAssessment(input: AwsAuditManagerBatchDeleteDelegationByAssessmentInput!, config: AwsConfig): AwsAuditManagerBatchDeleteDelegationByAssessmentOutput
  batchDisassociateAssessmentReportEvidence(input: AwsAuditManagerBatchDisassociateAssessmentReportEvidenceInput!, config: AwsConfig): AwsAuditManagerBatchDisassociateAssessmentReportEvidenceOutput
  batchImportEvidenceToAssessmentControl(input: AwsAuditManagerBatchImportEvidenceToAssessmentControlInput!, config: AwsConfig): AwsAuditManagerBatchImportEvidenceToAssessmentControlOutput
  createAssessment(input: AwsAuditManagerCreateAssessmentInput!, config: AwsConfig): AwsAuditManagerCreateAssessmentOutput
  createAssessmentFramework(input: AwsAuditManagerCreateAssessmentFrameworkInput!, config: AwsConfig): AwsAuditManagerCreateAssessmentFrameworkOutput
  createAssessmentReport(input: AwsAuditManagerCreateAssessmentReportInput!, config: AwsConfig): AwsAuditManagerCreateAssessmentReportOutput
  createControl(input: AwsAuditManagerCreateControlInput!, config: AwsConfig): AwsAuditManagerCreateControlOutput
  deleteAssessment(input: AwsAuditManagerDeleteAssessmentInput!, config: AwsConfig): JSON
  deleteAssessmentFramework(input: AwsAuditManagerDeleteAssessmentFrameworkInput!, config: AwsConfig): JSON
  deleteAssessmentReport(input: AwsAuditManagerDeleteAssessmentReportInput!, config: AwsConfig): JSON
  deleteControl(input: AwsAuditManagerDeleteControlInput!, config: AwsConfig): JSON
  deregisterAccount(input: JSON, config: AwsConfig): AwsAuditManagerDeregisterAccountOutput
  deregisterOrganizationAdminAccount(input: AwsAuditManagerDeregisterOrganizationAdminAccountInput, config: AwsConfig): JSON
  disassociateAssessmentReportEvidenceFolder(input: AwsAuditManagerDisassociateAssessmentReportEvidenceFolderInput!, config: AwsConfig): JSON
  getAccountStatus(input: JSON, config: AwsConfig): AwsAuditManagerGetAccountStatusOutput
  getAssessment(input: AwsAuditManagerGetAssessmentInput!, config: AwsConfig): AwsAuditManagerGetAssessmentOutput
  getAssessmentFramework(input: AwsAuditManagerGetAssessmentFrameworkInput!, config: AwsConfig): AwsAuditManagerGetAssessmentFrameworkOutput
  getAssessmentReportUrl(input: AwsAuditManagerGetAssessmentReportUrlInput!, config: AwsConfig): AwsAuditManagerGetAssessmentReportUrlOutput
  getChangeLogs(input: AwsAuditManagerGetChangeLogsInput!, config: AwsConfig): AwsAuditManagerGetChangeLogsOutput
  getControl(input: AwsAuditManagerGetControlInput!, config: AwsConfig): AwsAuditManagerGetControlOutput
  getDelegations(input: AwsAuditManagerGetDelegationsInput, config: AwsConfig): AwsAuditManagerGetDelegationsOutput
  getEvidence(input: AwsAuditManagerGetEvidenceInput!, config: AwsConfig): AwsAuditManagerGetEvidenceOutput
  getEvidenceByEvidenceFolder(input: AwsAuditManagerGetEvidenceByEvidenceFolderInput!, config: AwsConfig): AwsAuditManagerGetEvidenceByEvidenceFolderOutput
  getEvidenceFolder(input: AwsAuditManagerGetEvidenceFolderInput!, config: AwsConfig): AwsAuditManagerGetEvidenceFolderOutput
  getEvidenceFoldersByAssessment(input: AwsAuditManagerGetEvidenceFoldersByAssessmentInput!, config: AwsConfig): AwsAuditManagerGetEvidenceFoldersByAssessmentOutput
  getEvidenceFoldersByAssessmentControl(input: AwsAuditManagerGetEvidenceFoldersByAssessmentControlInput!, config: AwsConfig): AwsAuditManagerGetEvidenceFoldersByAssessmentControlOutput
  getOrganizationAdminAccount(input: JSON, config: AwsConfig): AwsAuditManagerGetOrganizationAdminAccountOutput
  getServicesInScope(input: JSON, config: AwsConfig): AwsAuditManagerGetServicesInScopeOutput
  getSettings(input: AwsAuditManagerGetSettingsInput!, config: AwsConfig): AwsAuditManagerGetSettingsOutput
  listAssessmentFrameworks(input: AwsAuditManagerListAssessmentFrameworksInput!, config: AwsConfig): AwsAuditManagerListAssessmentFrameworksOutput
  listAssessmentReports(input: AwsAuditManagerListAssessmentReportsInput, config: AwsConfig): AwsAuditManagerListAssessmentReportsOutput
  listAssessments(input: AwsAuditManagerListAssessmentsInput, config: AwsConfig): AwsAuditManagerListAssessmentsOutput
  listControls(input: AwsAuditManagerListControlsInput!, config: AwsConfig): AwsAuditManagerListControlsOutput
  listKeywordsForDataSource(input: AwsAuditManagerListKeywordsForDataSourceInput!, config: AwsConfig): AwsAuditManagerListKeywordsForDataSourceOutput
  listNotifications(input: AwsAuditManagerListNotificationsInput, config: AwsConfig): AwsAuditManagerListNotificationsOutput
  listTagsForResource(input: AwsAuditManagerListTagsForResourceInput!, config: AwsConfig): AwsAuditManagerListTagsForResourceOutput
  registerAccount(input: AwsAuditManagerRegisterAccountInput, config: AwsConfig): AwsAuditManagerRegisterAccountOutput
  registerOrganizationAdminAccount(input: AwsAuditManagerRegisterOrganizationAdminAccountInput!, config: AwsConfig): AwsAuditManagerRegisterOrganizationAdminAccountOutput
  tagResource(input: AwsAuditManagerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsAuditManagerUntagResourceInput!, config: AwsConfig): JSON
  updateAssessment(input: AwsAuditManagerUpdateAssessmentInput!, config: AwsConfig): AwsAuditManagerUpdateAssessmentOutput
  updateAssessmentControl(input: AwsAuditManagerUpdateAssessmentControlInput!, config: AwsConfig): AwsAuditManagerUpdateAssessmentControlOutput
  updateAssessmentControlSetStatus(input: AwsAuditManagerUpdateAssessmentControlSetStatusInput!, config: AwsConfig): AwsAuditManagerUpdateAssessmentControlSetStatusOutput
  updateAssessmentFramework(input: AwsAuditManagerUpdateAssessmentFrameworkInput!, config: AwsConfig): AwsAuditManagerUpdateAssessmentFrameworkOutput
  updateAssessmentStatus(input: AwsAuditManagerUpdateAssessmentStatusInput!, config: AwsConfig): AwsAuditManagerUpdateAssessmentStatusOutput
  updateControl(input: AwsAuditManagerUpdateControlInput!, config: AwsConfig): AwsAuditManagerUpdateControlOutput
  updateSettings(input: AwsAuditManagerUpdateSettingsInput, config: AwsConfig): AwsAuditManagerUpdateSettingsOutput
  validateAssessmentReportIntegrity(input: AwsAuditManagerValidateAssessmentReportIntegrityInput!, config: AwsConfig): AwsAuditManagerValidateAssessmentReportIntegrityOutput
}

input AwsAuditManagerAssociateAssessmentReportEvidenceFolderInput {
  assessmentId: String!
  evidenceFolderId: String!
}

type AwsAuditManagerBatchAssociateAssessmentReportEvidenceOutput {
  evidenceIds: [String]
  errors: [AwsAuditManagerS7]
}

type AwsAuditManagerS7 {
  evidenceId: String
  errorCode: String
  errorMessage: String
}

input AwsAuditManagerBatchAssociateAssessmentReportEvidenceInput {
  assessmentId: String!
  evidenceFolderId: String!
  evidenceIds: [String]!
}

type AwsAuditManagerBatchCreateDelegationByAssessmentOutput {
  delegations: [AwsAuditManagerSj]
  errors: [AwsAuditManagerBatchCreateDelegationByAssessmentOutputErrors]
}

type AwsAuditManagerSj {
  id: String
  assessmentName: String
  assessmentId: String
  status: String
  roleArn: String
  roleType: String
  creationTime: Date
  lastUpdated: Date
  controlSetId: String
  comment: String
  createdBy: String
}

type AwsAuditManagerBatchCreateDelegationByAssessmentOutputErrors {
  createDelegationRequest: AwsAuditManagerSd
  errorCode: String
  errorMessage: String
}

type AwsAuditManagerSd {
  comment: String
  controlSetId: String
  roleArn: String
  roleType: String
}

input AwsAuditManagerBatchCreateDelegationByAssessmentInput {
  createDelegationRequests: [AwsAuditManagerSdInput]!
  assessmentId: String!
}

input AwsAuditManagerSdInput {
  comment: String
  controlSetId: String
  roleArn: String
  roleType: String
}

type AwsAuditManagerBatchDeleteDelegationByAssessmentOutput {
  errors: [AwsAuditManagerBatchDeleteDelegationByAssessmentOutputErrors]
}

type AwsAuditManagerBatchDeleteDelegationByAssessmentOutputErrors {
  delegationId: String
  errorCode: String
  errorMessage: String
}

input AwsAuditManagerBatchDeleteDelegationByAssessmentInput {
  delegationIds: [String]!
  assessmentId: String!
}

type AwsAuditManagerBatchDisassociateAssessmentReportEvidenceOutput {
  evidenceIds: [String]
  errors: [AwsAuditManagerS7]
}

input AwsAuditManagerBatchDisassociateAssessmentReportEvidenceInput {
  assessmentId: String!
  evidenceFolderId: String!
  evidenceIds: [String]!
}

type AwsAuditManagerBatchImportEvidenceToAssessmentControlOutput {
  errors: [AwsAuditManagerBatchImportEvidenceToAssessmentControlOutputErrors]
}

type AwsAuditManagerBatchImportEvidenceToAssessmentControlOutputErrors {
  manualEvidence: AwsAuditManagerS10
  errorCode: String
  errorMessage: String
}

type AwsAuditManagerS10 {
  s3ResourcePath: String
}

input AwsAuditManagerBatchImportEvidenceToAssessmentControlInput {
  assessmentId: String!
  controlSetId: String!
  controlId: String!
  manualEvidence: [AwsAuditManagerS10Input]!
}

input AwsAuditManagerS10Input {
  s3ResourcePath: String
}

type AwsAuditManagerCreateAssessmentOutput {
  assessment: AwsAuditManagerS1o
}

type AwsAuditManagerS1o {
  arn: String
  awsAccount: AwsAuditManagerS1b
  metadata: AwsAuditManagerS1oMetadata
  framework: AwsAuditManagerS1oFramework
  tags: JSON
}

type AwsAuditManagerS1b {
  id: String
  emailAddress: String
  name: String
}

type AwsAuditManagerS1oMetadata {
  name: String
  id: String
  description: String
  complianceType: String
  status: String
  assessmentReportsDestination: AwsAuditManagerS17
  scope: AwsAuditManagerS19
  roles: [AwsAuditManagerS1j]
  delegations: [AwsAuditManagerSj]
  creationTime: Date
  lastUpdated: Date
}

type AwsAuditManagerS17 {
  destinationType: String
  destination: String
}

type AwsAuditManagerS19 {
  awsAccounts: [AwsAuditManagerS1b]
  awsServices: [AwsAuditManagerS19AwsServices]
}

type AwsAuditManagerS19AwsServices {
  serviceName: String
}

type AwsAuditManagerS1j {
  roleType: String
  roleArn: String
}

type AwsAuditManagerS1oFramework {
  id: String
  arn: String
  metadata: AwsAuditManagerS1oFrameworkMetadata
  controlSets: [AwsAuditManagerS1y]
}

type AwsAuditManagerS1oFrameworkMetadata {
  name: String
  description: String
  logo: String
  complianceType: String
}

type AwsAuditManagerS1y {
  id: String
  description: String
  status: String
  roles: [AwsAuditManagerS1j]
  controls: [AwsAuditManagerS22]
  delegations: [AwsAuditManagerSj]
  systemEvidenceCount: Int
  manualEvidenceCount: Int
}

type AwsAuditManagerS22 {
  id: String
  name: String
  description: String
  status: String
  response: String
  comments: [AwsAuditManagerS22Comments]
  evidenceSources: [String]
  evidenceCount: Int
  assessmentReportEvidenceCount: Int
}

type AwsAuditManagerS22Comments {
  authorName: String
  commentBody: String
  postedDate: Date
}

input AwsAuditManagerCreateAssessmentInput {
  name: String!
  description: String
  assessmentReportsDestination: AwsAuditManagerS17Input!
  scope: AwsAuditManagerS19Input!
  roles: [AwsAuditManagerS1jInput]!
  frameworkId: String!
  tags: JSON
}

input AwsAuditManagerS17Input {
  destinationType: String
  destination: String
}

input AwsAuditManagerS19Input {
  awsAccounts: [AwsAuditManagerS1bInput]
  awsServices: [AwsAuditManagerS19AwsServicesInput]
}

input AwsAuditManagerS1bInput {
  id: String
  emailAddress: String
  name: String
}

input AwsAuditManagerS19AwsServicesInput {
  serviceName: String
}

input AwsAuditManagerS1jInput {
  roleType: String
  roleArn: String
}

type AwsAuditManagerCreateAssessmentFrameworkOutput {
  framework: AwsAuditManagerS2m
}

type AwsAuditManagerS2m {
  arn: String
  id: String
  name: String
  type: String
  complianceType: String
  description: String
  logo: String
  controlSources: String
  controlSets: [AwsAuditManagerS2mControlSets]
  createdAt: Date
  lastUpdatedAt: Date
  createdBy: String
  lastUpdatedBy: String
  tags: JSON
}

type AwsAuditManagerS2mControlSets {
  id: String
  name: String
  controls: [AwsAuditManagerS2s]
}

type AwsAuditManagerS2s {
  arn: String
  id: String
  type: String
  name: String
  description: String
  testingInformation: String
  actionPlanTitle: String
  actionPlanInstructions: String
  controlSources: String
  controlMappingSources: [AwsAuditManagerS2x]
  createdAt: Date
  lastUpdatedAt: Date
  createdBy: String
  lastUpdatedBy: String
  tags: JSON
}

type AwsAuditManagerS2x {
  sourceId: String
  sourceName: String
  sourceDescription: String
  sourceSetUpOption: String
  sourceType: String
  sourceKeyword: AwsAuditManagerS33
  sourceFrequency: String
  troubleshootingText: String
}

type AwsAuditManagerS33 {
  keywordInputType: String
  keywordValue: String
}

input AwsAuditManagerCreateAssessmentFrameworkInput {
  name: String!
  description: String
  complianceType: String
  controlSets: [AwsAuditManagerCreateAssessmentFrameworkControlSetsInput]!
  tags: JSON
}

input AwsAuditManagerCreateAssessmentFrameworkControlSetsInput {
  name: String!
  controls: [AwsAuditManagerS2jInput]
}

input AwsAuditManagerS2jInput {
  id: String
}

type AwsAuditManagerCreateAssessmentReportOutput {
  assessmentReport: AwsAuditManagerCreateAssessmentReportOutputAssessmentReport
}

type AwsAuditManagerCreateAssessmentReportOutputAssessmentReport {
  id: String
  name: String
  description: String
  awsAccountId: String
  assessmentId: String
  assessmentName: String
  author: String
  status: String
  creationTime: Date
}

input AwsAuditManagerCreateAssessmentReportInput {
  name: String!
  description: String
  assessmentId: String!
}

type AwsAuditManagerCreateControlOutput {
  control: AwsAuditManagerS2s
}

input AwsAuditManagerCreateControlInput {
  name: String!
  description: String
  testingInformation: String
  actionPlanTitle: String
  actionPlanInstructions: String
  controlMappingSources: [AwsAuditManagerCreateControlControlMappingSourcesInput]!
  tags: JSON
}

input AwsAuditManagerCreateControlControlMappingSourcesInput {
  sourceName: String
  sourceDescription: String
  sourceSetUpOption: String
  sourceType: String
  sourceKeyword: AwsAuditManagerS33Input
  sourceFrequency: String
  troubleshootingText: String
}

input AwsAuditManagerS33Input {
  keywordInputType: String
  keywordValue: String
}

input AwsAuditManagerDeleteAssessmentInput {
  assessmentId: String!
}

input AwsAuditManagerDeleteAssessmentFrameworkInput {
  frameworkId: String!
}

input AwsAuditManagerDeleteAssessmentReportInput {
  assessmentId: String!
  assessmentReportId: String!
}

input AwsAuditManagerDeleteControlInput {
  controlId: String!
}

type AwsAuditManagerDeregisterAccountOutput {
  status: String
}

input AwsAuditManagerDeregisterOrganizationAdminAccountInput {
  adminAccountId: String
}

input AwsAuditManagerDisassociateAssessmentReportEvidenceFolderInput {
  assessmentId: String!
  evidenceFolderId: String!
}

type AwsAuditManagerGetAccountStatusOutput {
  status: String
}

type AwsAuditManagerGetAssessmentOutput {
  assessment: AwsAuditManagerS1o
  userRole: AwsAuditManagerS1j
}

input AwsAuditManagerGetAssessmentInput {
  assessmentId: String!
}

type AwsAuditManagerGetAssessmentFrameworkOutput {
  framework: AwsAuditManagerS2m
}

input AwsAuditManagerGetAssessmentFrameworkInput {
  frameworkId: String!
}

type AwsAuditManagerGetAssessmentReportUrlOutput {
  preSignedUrl: AwsAuditManagerGetAssessmentReportUrlOutputPreSignedUrl
}

type AwsAuditManagerGetAssessmentReportUrlOutputPreSignedUrl {
  hyperlinkName: String
  link: String
}

input AwsAuditManagerGetAssessmentReportUrlInput {
  assessmentReportId: String!
  assessmentId: String!
}

type AwsAuditManagerGetChangeLogsOutput {
  changeLogs: [AwsAuditManagerGetChangeLogsOutputChangeLogs]
  nextToken: String
}

type AwsAuditManagerGetChangeLogsOutputChangeLogs {
  objectType: String
  objectName: String
  action: String
  createdAt: Date
  createdBy: String
}

input AwsAuditManagerGetChangeLogsInput {
  assessmentId: String!
  controlSetId: String
  controlId: String
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerGetControlOutput {
  control: AwsAuditManagerS2s
}

input AwsAuditManagerGetControlInput {
  controlId: String!
}

type AwsAuditManagerGetDelegationsOutput {
  delegations: [AwsAuditManagerGetDelegationsOutputDelegations]
  nextToken: String
}

type AwsAuditManagerGetDelegationsOutputDelegations {
  id: String
  assessmentName: String
  assessmentId: String
  status: String
  roleArn: String
  creationTime: Date
  controlSetName: String
}

input AwsAuditManagerGetDelegationsInput {
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerGetEvidenceOutput {
  evidence: AwsAuditManagerS4p
}

type AwsAuditManagerS4p {
  dataSource: String
  evidenceAwsAccountId: String
  time: Date
  eventSource: String
  eventName: String
  evidenceByType: String
  resourcesIncluded: [AwsAuditManagerS4pResourcesIncluded]
  attributes: JSON
  iamId: String
  complianceCheck: String
  awsOrganization: String
  awsAccountId: String
  evidenceFolderId: String
  id: String
  assessmentReportSelection: String
}

type AwsAuditManagerS4pResourcesIncluded {
  arn: String
  value: String
}

input AwsAuditManagerGetEvidenceInput {
  assessmentId: String!
  controlSetId: String!
  evidenceFolderId: String!
  evidenceId: String!
}

type AwsAuditManagerGetEvidenceByEvidenceFolderOutput {
  evidence: [AwsAuditManagerS4p]
  nextToken: String
}

input AwsAuditManagerGetEvidenceByEvidenceFolderInput {
  assessmentId: String!
  controlSetId: String!
  evidenceFolderId: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerGetEvidenceFolderOutput {
  evidenceFolder: AwsAuditManagerS53
}

type AwsAuditManagerS53 {
  name: String
  date: Date
  assessmentId: String
  controlSetId: String
  controlId: String
  id: String
  dataSource: String
  author: String
  totalEvidence: Int
  assessmentReportSelectionCount: Int
  controlName: String
  evidenceResourcesIncludedCount: Int
  evidenceByTypeConfigurationDataCount: Int
  evidenceByTypeManualCount: Int
  evidenceByTypeComplianceCheckCount: Int
  evidenceByTypeComplianceCheckIssuesCount: Int
  evidenceByTypeUserActivityCount: Int
  evidenceAwsServiceSourceCount: Int
}

input AwsAuditManagerGetEvidenceFolderInput {
  assessmentId: String!
  controlSetId: String!
  evidenceFolderId: String!
}

type AwsAuditManagerGetEvidenceFoldersByAssessmentOutput {
  evidenceFolders: [AwsAuditManagerS53]
  nextToken: String
}

input AwsAuditManagerGetEvidenceFoldersByAssessmentInput {
  assessmentId: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerGetEvidenceFoldersByAssessmentControlOutput {
  evidenceFolders: [AwsAuditManagerS53]
  nextToken: String
}

input AwsAuditManagerGetEvidenceFoldersByAssessmentControlInput {
  assessmentId: String!
  controlSetId: String!
  controlId: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerGetOrganizationAdminAccountOutput {
  adminAccountId: String
  organizationId: String
}

type AwsAuditManagerGetServicesInScopeOutput {
  serviceMetadata: [AwsAuditManagerGetServicesInScopeOutputServiceMetadata]
}

type AwsAuditManagerGetServicesInScopeOutputServiceMetadata {
  name: String
  displayName: String
  description: String
  category: String
}

type AwsAuditManagerGetSettingsOutput {
  settings: AwsAuditManagerS5k
}

type AwsAuditManagerS5k {
  isAwsOrgEnabled: Boolean
  snsTopic: String
  defaultAssessmentReportsDestination: AwsAuditManagerS17
  defaultProcessOwners: [AwsAuditManagerS1j]
  kmsKey: String
}

input AwsAuditManagerGetSettingsInput {
  attribute: String!
}

type AwsAuditManagerListAssessmentFrameworksOutput {
  frameworkMetadataList: [AwsAuditManagerListAssessmentFrameworksOutputFrameworkMetadataList]
  nextToken: String
}

type AwsAuditManagerListAssessmentFrameworksOutputFrameworkMetadataList {
  arn: String
  id: String
  type: String
  name: String
  description: String
  logo: String
  complianceType: String
  controlsCount: Int
  controlSetsCount: Int
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsAuditManagerListAssessmentFrameworksInput {
  frameworkType: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListAssessmentReportsOutput {
  assessmentReports: [AwsAuditManagerListAssessmentReportsOutputAssessmentReports]
  nextToken: String
}

type AwsAuditManagerListAssessmentReportsOutputAssessmentReports {
  id: String
  name: String
  description: String
  assessmentId: String
  assessmentName: String
  author: String
  status: String
  creationTime: Date
}

input AwsAuditManagerListAssessmentReportsInput {
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListAssessmentsOutput {
  assessmentMetadata: [AwsAuditManagerListAssessmentsOutputAssessmentMetadata]
  nextToken: String
}

type AwsAuditManagerListAssessmentsOutputAssessmentMetadata {
  name: String
  id: String
  complianceType: String
  status: String
  roles: [AwsAuditManagerS1j]
  delegations: [AwsAuditManagerSj]
  creationTime: Date
  lastUpdated: Date
}

input AwsAuditManagerListAssessmentsInput {
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListControlsOutput {
  controlMetadataList: [AwsAuditManagerListControlsOutputControlMetadataList]
  nextToken: String
}

type AwsAuditManagerListControlsOutputControlMetadataList {
  arn: String
  id: String
  name: String
  controlSources: String
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsAuditManagerListControlsInput {
  controlType: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListKeywordsForDataSourceOutput {
  keywords: [String]
  nextToken: String
}

input AwsAuditManagerListKeywordsForDataSourceInput {
  source: String!
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListNotificationsOutput {
  notifications: [AwsAuditManagerListNotificationsOutputNotifications]
  nextToken: String
}

type AwsAuditManagerListNotificationsOutputNotifications {
  id: String
  assessmentId: String
  assessmentName: String
  controlSetId: String
  controlSetName: String
  description: String
  eventTime: Date
  source: String
}

input AwsAuditManagerListNotificationsInput {
  nextToken: String
  maxResults: Int
}

type AwsAuditManagerListTagsForResourceOutput {
  tags: JSON
}

input AwsAuditManagerListTagsForResourceInput {
  resourceArn: String!
}

type AwsAuditManagerRegisterAccountOutput {
  status: String
}

input AwsAuditManagerRegisterAccountInput {
  kmsKey: String
  delegatedAdminAccount: String
}

type AwsAuditManagerRegisterOrganizationAdminAccountOutput {
  adminAccountId: String
  organizationId: String
}

input AwsAuditManagerRegisterOrganizationAdminAccountInput {
  adminAccountId: String!
}

input AwsAuditManagerTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsAuditManagerUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsAuditManagerUpdateAssessmentOutput {
  assessment: AwsAuditManagerS1o
}

input AwsAuditManagerUpdateAssessmentInput {
  assessmentId: String!
  assessmentName: String
  assessmentDescription: String
  scope: AwsAuditManagerS19Input!
  assessmentReportsDestination: AwsAuditManagerS17Input
  roles: [AwsAuditManagerS1jInput]
}

type AwsAuditManagerUpdateAssessmentControlOutput {
  control: AwsAuditManagerS22
}

input AwsAuditManagerUpdateAssessmentControlInput {
  assessmentId: String!
  controlSetId: String!
  controlId: String!
  controlStatus: String
  commentBody: String
}

type AwsAuditManagerUpdateAssessmentControlSetStatusOutput {
  controlSet: AwsAuditManagerS1y
}

input AwsAuditManagerUpdateAssessmentControlSetStatusInput {
  assessmentId: String!
  controlSetId: String!
  status: String!
  comment: String!
}

type AwsAuditManagerUpdateAssessmentFrameworkOutput {
  framework: AwsAuditManagerS2m
}

input AwsAuditManagerUpdateAssessmentFrameworkInput {
  frameworkId: String!
  name: String!
  description: String
  complianceType: String
  controlSets: [AwsAuditManagerUpdateAssessmentFrameworkControlSetsInput]!
}

input AwsAuditManagerUpdateAssessmentFrameworkControlSetsInput {
  id: String
  name: String!
  controls: [AwsAuditManagerS2jInput]
}

type AwsAuditManagerUpdateAssessmentStatusOutput {
  assessment: AwsAuditManagerS1o
}

input AwsAuditManagerUpdateAssessmentStatusInput {
  assessmentId: String!
  status: String!
}

type AwsAuditManagerUpdateControlOutput {
  control: AwsAuditManagerS2s
}

input AwsAuditManagerUpdateControlInput {
  controlId: String!
  name: String!
  description: String
  testingInformation: String
  actionPlanTitle: String
  actionPlanInstructions: String
  controlMappingSources: [AwsAuditManagerS2xInput]!
}

input AwsAuditManagerS2xInput {
  sourceId: String
  sourceName: String
  sourceDescription: String
  sourceSetUpOption: String
  sourceType: String
  sourceKeyword: AwsAuditManagerS33Input
  sourceFrequency: String
  troubleshootingText: String
}

type AwsAuditManagerUpdateSettingsOutput {
  settings: AwsAuditManagerS5k
}

input AwsAuditManagerUpdateSettingsInput {
  snsTopic: String
  defaultAssessmentReportsDestination: AwsAuditManagerS17Input
  defaultProcessOwners: [AwsAuditManagerS1jInput]
  kmsKey: String
}

type AwsAuditManagerValidateAssessmentReportIntegrityOutput {
  signatureValid: Boolean
  signatureAlgorithm: String
  signatureDateTime: String
  signatureKeyId: String
  validationErrors: [String]
}

input AwsAuditManagerValidateAssessmentReportIntegrityInput {
  s3RelativePath: String!
}

"""Amazon Augmented AI Runtime (2019-11-07)"""
type AwsAugmentedAIRuntime {
  deleteHumanLoop(input: AwsAugmentedAIRuntimeDeleteHumanLoopInput!, config: AwsConfig): JSON
  describeHumanLoop(input: AwsAugmentedAIRuntimeDescribeHumanLoopInput!, config: AwsConfig): AwsAugmentedAIRuntimeDescribeHumanLoopOutput
  listHumanLoops(input: AwsAugmentedAIRuntimeListHumanLoopsInput!, config: AwsConfig): AwsAugmentedAIRuntimeListHumanLoopsOutput
  startHumanLoop(input: AwsAugmentedAIRuntimeStartHumanLoopInput!, config: AwsConfig): AwsAugmentedAIRuntimeStartHumanLoopOutput
  stopHumanLoop(input: AwsAugmentedAIRuntimeStopHumanLoopInput!, config: AwsConfig): JSON
}

input AwsAugmentedAIRuntimeDeleteHumanLoopInput {
  HumanLoopName: String!
}

type AwsAugmentedAIRuntimeDescribeHumanLoopOutput {
  CreationTime: Date!
  FailureReason: String
  FailureCode: String
  HumanLoopStatus: String!
  HumanLoopName: String!
  HumanLoopArn: String!
  FlowDefinitionArn: String!
  HumanLoopOutput: AwsAugmentedAIRuntimeDescribeHumanLoopOutputHumanLoopOutput
}

type AwsAugmentedAIRuntimeDescribeHumanLoopOutputHumanLoopOutput {
  OutputS3Uri: String!
}

input AwsAugmentedAIRuntimeDescribeHumanLoopInput {
  HumanLoopName: String!
}

type AwsAugmentedAIRuntimeListHumanLoopsOutput {
  HumanLoopSummaries: [AwsAugmentedAIRuntimeListHumanLoopsOutputHumanLoopSummaries]!
  NextToken: String
}

type AwsAugmentedAIRuntimeListHumanLoopsOutputHumanLoopSummaries {
  HumanLoopName: String
  HumanLoopStatus: String
  CreationTime: Date
  FailureReason: String
  FlowDefinitionArn: String
}

input AwsAugmentedAIRuntimeListHumanLoopsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  FlowDefinitionArn: String!
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsAugmentedAIRuntimeStartHumanLoopOutput {
  HumanLoopArn: String
}

input AwsAugmentedAIRuntimeStartHumanLoopInput {
  HumanLoopName: String!
  FlowDefinitionArn: String!
  HumanLoopInput: AwsAugmentedAIRuntimeStartHumanLoopHumanLoopInputInput!
  DataAttributes: AwsAugmentedAIRuntimeStartHumanLoopDataAttributesInput
}

input AwsAugmentedAIRuntimeStartHumanLoopHumanLoopInputInput {
  InputContent: String!
}

input AwsAugmentedAIRuntimeStartHumanLoopDataAttributesInput {
  ContentClassifiers: [String]!
}

input AwsAugmentedAIRuntimeStopHumanLoopInput {
  HumanLoopName: String!
}

"""Auto Scaling (2011-01-01)"""
type AwsAutoScaling {
  attachInstances(input: AwsAutoScalingAttachInstancesInput!, config: AwsConfig): JSON
  attachLoadBalancerTargetGroups(input: AwsAutoScalingAttachLoadBalancerTargetGroupsInput!, config: AwsConfig): JSON
  attachLoadBalancers(input: AwsAutoScalingAttachLoadBalancersInput!, config: AwsConfig): JSON
  batchDeleteScheduledAction(input: AwsAutoScalingBatchDeleteScheduledActionInput!, config: AwsConfig): AwsAutoScalingBatchDeleteScheduledActionOutput
  batchPutScheduledUpdateGroupAction(input: AwsAutoScalingBatchPutScheduledUpdateGroupActionInput!, config: AwsConfig): AwsAutoScalingBatchPutScheduledUpdateGroupActionOutput
  cancelInstanceRefresh(input: AwsAutoScalingCancelInstanceRefreshInput!, config: AwsConfig): AwsAutoScalingCancelInstanceRefreshOutput
  completeLifecycleAction(input: AwsAutoScalingCompleteLifecycleActionInput!, config: AwsConfig): JSON
  createAutoScalingGroup(input: AwsAutoScalingCreateAutoScalingGroupInput!, config: AwsConfig): JSON
  createLaunchConfiguration(input: AwsAutoScalingCreateLaunchConfigurationInput!, config: AwsConfig): JSON
  createOrUpdateTags(input: AwsAutoScalingCreateOrUpdateTagsInput!, config: AwsConfig): JSON
  deleteAutoScalingGroup(input: AwsAutoScalingDeleteAutoScalingGroupInput!, config: AwsConfig): JSON
  deleteLaunchConfiguration(input: AwsAutoScalingDeleteLaunchConfigurationInput!, config: AwsConfig): JSON
  deleteLifecycleHook(input: AwsAutoScalingDeleteLifecycleHookInput!, config: AwsConfig): JSON
  deleteNotificationConfiguration(input: AwsAutoScalingDeleteNotificationConfigurationInput!, config: AwsConfig): JSON
  deletePolicy(input: AwsAutoScalingDeletePolicyInput!, config: AwsConfig): JSON
  deleteScheduledAction(input: AwsAutoScalingDeleteScheduledActionInput!, config: AwsConfig): JSON
  deleteTags(input: AwsAutoScalingDeleteTagsInput!, config: AwsConfig): JSON
  deleteWarmPool(input: AwsAutoScalingDeleteWarmPoolInput!, config: AwsConfig): JSON
  describeAccountLimits(config: AwsConfig): AwsAutoScalingDescribeAccountLimitsOutput
  describeAdjustmentTypes(config: AwsConfig): AwsAutoScalingDescribeAdjustmentTypesOutput
  describeAutoScalingGroups(input: AwsAutoScalingDescribeAutoScalingGroupsInput, config: AwsConfig): AwsAutoScalingDescribeAutoScalingGroupsOutput
  describeAutoScalingInstances(input: AwsAutoScalingDescribeAutoScalingInstancesInput, config: AwsConfig): AwsAutoScalingDescribeAutoScalingInstancesOutput
  describeAutoScalingNotificationTypes(config: AwsConfig): AwsAutoScalingDescribeAutoScalingNotificationTypesOutput
  describeInstanceRefreshes(input: AwsAutoScalingDescribeInstanceRefreshesInput!, config: AwsConfig): AwsAutoScalingDescribeInstanceRefreshesOutput
  describeLaunchConfigurations(input: AwsAutoScalingDescribeLaunchConfigurationsInput, config: AwsConfig): AwsAutoScalingDescribeLaunchConfigurationsOutput
  describeLifecycleHookTypes(config: AwsConfig): AwsAutoScalingDescribeLifecycleHookTypesOutput
  describeLifecycleHooks(input: AwsAutoScalingDescribeLifecycleHooksInput!, config: AwsConfig): AwsAutoScalingDescribeLifecycleHooksOutput
  describeLoadBalancerTargetGroups(input: AwsAutoScalingDescribeLoadBalancerTargetGroupsInput!, config: AwsConfig): AwsAutoScalingDescribeLoadBalancerTargetGroupsOutput
  describeLoadBalancers(input: AwsAutoScalingDescribeLoadBalancersInput!, config: AwsConfig): AwsAutoScalingDescribeLoadBalancersOutput
  describeMetricCollectionTypes(config: AwsConfig): AwsAutoScalingDescribeMetricCollectionTypesOutput
  describeNotificationConfigurations(input: AwsAutoScalingDescribeNotificationConfigurationsInput, config: AwsConfig): AwsAutoScalingDescribeNotificationConfigurationsOutput
  describePolicies(input: AwsAutoScalingDescribePoliciesInput, config: AwsConfig): AwsAutoScalingDescribePoliciesOutput
  describeScalingActivities(input: AwsAutoScalingDescribeScalingActivitiesInput, config: AwsConfig): AwsAutoScalingDescribeScalingActivitiesOutput
  describeScalingProcessTypes(config: AwsConfig): AwsAutoScalingDescribeScalingProcessTypesOutput
  describeScheduledActions(input: AwsAutoScalingDescribeScheduledActionsInput, config: AwsConfig): AwsAutoScalingDescribeScheduledActionsOutput
  describeTags(input: AwsAutoScalingDescribeTagsInput, config: AwsConfig): AwsAutoScalingDescribeTagsOutput
  describeTerminationPolicyTypes(config: AwsConfig): AwsAutoScalingDescribeTerminationPolicyTypesOutput
  describeWarmPool(input: AwsAutoScalingDescribeWarmPoolInput!, config: AwsConfig): AwsAutoScalingDescribeWarmPoolOutput
  detachInstances(input: AwsAutoScalingDetachInstancesInput!, config: AwsConfig): AwsAutoScalingDetachInstancesOutput
  detachLoadBalancerTargetGroups(input: AwsAutoScalingDetachLoadBalancerTargetGroupsInput!, config: AwsConfig): JSON
  detachLoadBalancers(input: AwsAutoScalingDetachLoadBalancersInput!, config: AwsConfig): JSON
  disableMetricsCollection(input: AwsAutoScalingDisableMetricsCollectionInput!, config: AwsConfig): JSON
  enableMetricsCollection(input: AwsAutoScalingEnableMetricsCollectionInput!, config: AwsConfig): JSON
  enterStandby(input: AwsAutoScalingEnterStandbyInput!, config: AwsConfig): AwsAutoScalingEnterStandbyOutput
  executePolicy(input: AwsAutoScalingExecutePolicyInput!, config: AwsConfig): JSON
  exitStandby(input: AwsAutoScalingExitStandbyInput!, config: AwsConfig): AwsAutoScalingExitStandbyOutput
  getPredictiveScalingForecast(input: AwsAutoScalingGetPredictiveScalingForecastInput!, config: AwsConfig): AwsAutoScalingGetPredictiveScalingForecastOutput
  putLifecycleHook(input: AwsAutoScalingPutLifecycleHookInput!, config: AwsConfig): JSON
  putNotificationConfiguration(input: AwsAutoScalingPutNotificationConfigurationInput!, config: AwsConfig): JSON
  putScalingPolicy(input: AwsAutoScalingPutScalingPolicyInput!, config: AwsConfig): AwsAutoScalingPutScalingPolicyOutput
  putScheduledUpdateGroupAction(input: AwsAutoScalingPutScheduledUpdateGroupActionInput!, config: AwsConfig): JSON
  putWarmPool(input: AwsAutoScalingPutWarmPoolInput!, config: AwsConfig): JSON
  recordLifecycleActionHeartbeat(input: AwsAutoScalingRecordLifecycleActionHeartbeatInput!, config: AwsConfig): JSON
  resumeProcesses(input: JSON, config: AwsConfig): JSON
  setDesiredCapacity(input: AwsAutoScalingSetDesiredCapacityInput!, config: AwsConfig): JSON
  setInstanceHealth(input: AwsAutoScalingSetInstanceHealthInput!, config: AwsConfig): JSON
  setInstanceProtection(input: AwsAutoScalingSetInstanceProtectionInput!, config: AwsConfig): JSON
  startInstanceRefresh(input: AwsAutoScalingStartInstanceRefreshInput!, config: AwsConfig): AwsAutoScalingStartInstanceRefreshOutput
  suspendProcesses(input: JSON, config: AwsConfig): JSON
  terminateInstanceInAutoScalingGroup(input: AwsAutoScalingTerminateInstanceInAutoScalingGroupInput!, config: AwsConfig): AwsAutoScalingTerminateInstanceInAutoScalingGroupOutput
  updateAutoScalingGroup(input: AwsAutoScalingUpdateAutoScalingGroupInput!, config: AwsConfig): JSON
}

input AwsAutoScalingAttachInstancesInput {
  InstanceIds: [String]
  AutoScalingGroupName: String!
}

input AwsAutoScalingAttachLoadBalancerTargetGroupsInput {
  AutoScalingGroupName: String!
  TargetGroupARNs: [String]!
}

input AwsAutoScalingAttachLoadBalancersInput {
  AutoScalingGroupName: String!
  LoadBalancerNames: [String]!
}

type AwsAutoScalingBatchDeleteScheduledActionOutput {
  FailedScheduledActions: [AwsAutoScalingSf]
}

type AwsAutoScalingSf {
  ScheduledActionName: String!
  ErrorCode: String
  ErrorMessage: String
}

input AwsAutoScalingBatchDeleteScheduledActionInput {
  AutoScalingGroupName: String!
  ScheduledActionNames: [String]!
}

type AwsAutoScalingBatchPutScheduledUpdateGroupActionOutput {
  FailedScheduledUpdateGroupActions: [AwsAutoScalingSf]
}

input AwsAutoScalingBatchPutScheduledUpdateGroupActionInput {
  AutoScalingGroupName: String!
  ScheduledUpdateGroupActions: [AwsAutoScalingBatchPutScheduledUpdateGroupActionScheduledUpdateGroupActionsInput]!
}

input AwsAutoScalingBatchPutScheduledUpdateGroupActionScheduledUpdateGroupActionsInput {
  ScheduledActionName: String!
  StartTime: Date
  EndTime: Date
  Recurrence: String
  MinSize: Int
  MaxSize: Int
  DesiredCapacity: Int
  TimeZone: String
}

type AwsAutoScalingCancelInstanceRefreshOutput {
  InstanceRefreshId: String
}

input AwsAutoScalingCancelInstanceRefreshInput {
  AutoScalingGroupName: String!
}

input AwsAutoScalingCompleteLifecycleActionInput {
  LifecycleHookName: String!
  AutoScalingGroupName: String!
  LifecycleActionToken: String
  LifecycleActionResult: String!
  InstanceId: String
}

input AwsAutoScalingCreateAutoScalingGroupInput {
  AutoScalingGroupName: String!
  LaunchConfigurationName: String
  LaunchTemplate: AwsAutoScalingS10Input
  MixedInstancesPolicy: AwsAutoScalingS12Input
  InstanceId: String
  MinSize: Int!
  MaxSize: Int!
  DesiredCapacity: Int
  DefaultCooldown: Int
  AvailabilityZones: [String]
  LoadBalancerNames: [String]
  TargetGroupARNs: [String]
  HealthCheckType: String
  HealthCheckGracePeriod: Int
  PlacementGroup: String
  VPCZoneIdentifier: String
  TerminationPolicies: [String]
  NewInstancesProtectedFromScaleIn: Boolean
  CapacityRebalance: Boolean
  LifecycleHookSpecificationList: [AwsAutoScalingCreateAutoScalingGroupLifecycleHookSpecificationListInput]
  Tags: [AwsAutoScalingS1qInput]
  ServiceLinkedRoleARN: String
  MaxInstanceLifetime: Int
}

input AwsAutoScalingS10Input {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

input AwsAutoScalingS12Input {
  LaunchTemplate: AwsAutoScalingS12LaunchTemplateInput
  InstancesDistribution: AwsAutoScalingS12InstancesDistributionInput
}

input AwsAutoScalingS12LaunchTemplateInput {
  LaunchTemplateSpecification: AwsAutoScalingS10Input
  Overrides: [AwsAutoScalingS12LaunchTemplateOverridesInput]
}

input AwsAutoScalingS12LaunchTemplateOverridesInput {
  InstanceType: String
  WeightedCapacity: String
  LaunchTemplateSpecification: AwsAutoScalingS10Input
}

input AwsAutoScalingS12InstancesDistributionInput {
  OnDemandAllocationStrategy: String
  OnDemandBaseCapacity: Int
  OnDemandPercentageAboveBaseCapacity: Int
  SpotAllocationStrategy: String
  SpotInstancePools: Int
  SpotMaxPrice: String
}

input AwsAutoScalingCreateAutoScalingGroupLifecycleHookSpecificationListInput {
  LifecycleHookName: String!
  LifecycleTransition: String!
  NotificationMetadata: String
  HeartbeatTimeout: Int
  DefaultResult: String
  NotificationTargetARN: String
  RoleARN: String
}

input AwsAutoScalingS1qInput {
  ResourceId: String
  ResourceType: String
  Key: String!
  Value: String
  PropagateAtLaunch: Boolean
}

input AwsAutoScalingCreateLaunchConfigurationInput {
  LaunchConfigurationName: String!
  ImageId: String
  KeyName: String
  SecurityGroups: [String]
  ClassicLinkVPCId: String
  ClassicLinkVPCSecurityGroups: [String]
  UserData: String
  InstanceId: String
  InstanceType: String
  KernelId: String
  RamdiskId: String
  BlockDeviceMappings: [AwsAutoScalingS20Input]
  InstanceMonitoring: AwsAutoScalingS2aInput
  SpotPrice: String
  IamInstanceProfile: String
  EbsOptimized: Boolean
  AssociatePublicIpAddress: Boolean
  PlacementTenancy: String
  MetadataOptions: AwsAutoScalingS2fInput
}

input AwsAutoScalingS20Input {
  VirtualName: String
  DeviceName: String!
  Ebs: AwsAutoScalingS20EbsInput
  NoDevice: Boolean
}

input AwsAutoScalingS20EbsInput {
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  DeleteOnTermination: Boolean
  Iops: Int
  Encrypted: Boolean
  Throughput: Int
}

input AwsAutoScalingS2aInput {
  Enabled: Boolean
}

input AwsAutoScalingS2fInput {
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

input AwsAutoScalingCreateOrUpdateTagsInput {
  Tags: [AwsAutoScalingS1qInput]!
}

input AwsAutoScalingDeleteAutoScalingGroupInput {
  AutoScalingGroupName: String!
  ForceDelete: Boolean
}

input AwsAutoScalingDeleteLaunchConfigurationInput {
  LaunchConfigurationName: String!
}

input AwsAutoScalingDeleteLifecycleHookInput {
  LifecycleHookName: String!
  AutoScalingGroupName: String!
}

input AwsAutoScalingDeleteNotificationConfigurationInput {
  AutoScalingGroupName: String!
  TopicARN: String!
}

input AwsAutoScalingDeletePolicyInput {
  AutoScalingGroupName: String
  PolicyName: String!
}

input AwsAutoScalingDeleteScheduledActionInput {
  AutoScalingGroupName: String!
  ScheduledActionName: String!
}

input AwsAutoScalingDeleteTagsInput {
  Tags: [AwsAutoScalingS1qInput]!
}

input AwsAutoScalingDeleteWarmPoolInput {
  AutoScalingGroupName: String!
  ForceDelete: Boolean
}

type AwsAutoScalingDescribeAccountLimitsOutput {
  MaxNumberOfAutoScalingGroups: Int
  MaxNumberOfLaunchConfigurations: Int
  NumberOfAutoScalingGroups: Int
  NumberOfLaunchConfigurations: Int
}

type AwsAutoScalingDescribeAdjustmentTypesOutput {
  AdjustmentTypes: [AwsAutoScalingDescribeAdjustmentTypesOutputAdjustmentTypes]
}

type AwsAutoScalingDescribeAdjustmentTypesOutputAdjustmentTypes {
  AdjustmentType: String
}

type AwsAutoScalingDescribeAutoScalingGroupsOutput {
  AutoScalingGroups: [AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroups]!
  NextToken: String
}

type AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroups {
  AutoScalingGroupName: String!
  AutoScalingGroupARN: String
  LaunchConfigurationName: String
  LaunchTemplate: AwsAutoScalingS10
  MixedInstancesPolicy: AwsAutoScalingS12
  MinSize: Int!
  MaxSize: Int!
  DesiredCapacity: Int!
  PredictedCapacity: Int
  DefaultCooldown: Int!
  AvailabilityZones: [String]!
  LoadBalancerNames: [String]
  TargetGroupARNs: [String]
  HealthCheckType: String!
  HealthCheckGracePeriod: Int
  Instances: [AwsAutoScalingS3a]
  CreatedTime: Date!
  SuspendedProcesses: [AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroupsSuspendedProcesses]
  PlacementGroup: String
  VPCZoneIdentifier: String
  EnabledMetrics: [AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroupsEnabledMetrics]
  Status: String
  Tags: [AwsAutoScalingS3h]
  TerminationPolicies: [String]
  NewInstancesProtectedFromScaleIn: Boolean
  ServiceLinkedRoleARN: String
  MaxInstanceLifetime: Int
  CapacityRebalance: Boolean
  WarmPoolConfiguration: AwsAutoScalingS3j
  WarmPoolSize: Int
}

type AwsAutoScalingS10 {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

type AwsAutoScalingS12 {
  LaunchTemplate: AwsAutoScalingS12LaunchTemplate
  InstancesDistribution: AwsAutoScalingS12InstancesDistribution
}

type AwsAutoScalingS12LaunchTemplate {
  LaunchTemplateSpecification: AwsAutoScalingS10
  Overrides: [AwsAutoScalingS12LaunchTemplateOverrides]
}

type AwsAutoScalingS12LaunchTemplateOverrides {
  InstanceType: String
  WeightedCapacity: String
  LaunchTemplateSpecification: AwsAutoScalingS10
}

type AwsAutoScalingS12InstancesDistribution {
  OnDemandAllocationStrategy: String
  OnDemandBaseCapacity: Int
  OnDemandPercentageAboveBaseCapacity: Int
  SpotAllocationStrategy: String
  SpotInstancePools: Int
  SpotMaxPrice: String
}

type AwsAutoScalingS3a {
  InstanceId: String!
  InstanceType: String
  AvailabilityZone: String!
  LifecycleState: String!
  HealthStatus: String!
  LaunchConfigurationName: String
  LaunchTemplate: AwsAutoScalingS10
  ProtectedFromScaleIn: Boolean!
  WeightedCapacity: String
}

type AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroupsSuspendedProcesses {
  ProcessName: String
  SuspensionReason: String
}

type AwsAutoScalingDescribeAutoScalingGroupsOutputAutoScalingGroupsEnabledMetrics {
  Metric: String
  Granularity: String
}

type AwsAutoScalingS3h {
  ResourceId: String
  ResourceType: String
  Key: String
  Value: String
  PropagateAtLaunch: Boolean
}

type AwsAutoScalingS3j {
  MaxGroupPreparedCapacity: Int
  MinSize: Int
  PoolState: String
  Status: String
}

input AwsAutoScalingDescribeAutoScalingGroupsInput {
  AutoScalingGroupNames: [String]
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeAutoScalingInstancesOutput {
  AutoScalingInstances: [AwsAutoScalingDescribeAutoScalingInstancesOutputAutoScalingInstances]
  NextToken: String
}

type AwsAutoScalingDescribeAutoScalingInstancesOutputAutoScalingInstances {
  InstanceId: String!
  InstanceType: String
  AutoScalingGroupName: String!
  AvailabilityZone: String!
  LifecycleState: String!
  HealthStatus: String!
  LaunchConfigurationName: String
  LaunchTemplate: AwsAutoScalingS10
  ProtectedFromScaleIn: Boolean!
  WeightedCapacity: String
}

input AwsAutoScalingDescribeAutoScalingInstancesInput {
  InstanceIds: [String]
  MaxRecords: Int
  NextToken: String
}

type AwsAutoScalingDescribeAutoScalingNotificationTypesOutput {
  AutoScalingNotificationTypes: [String]
}

type AwsAutoScalingDescribeInstanceRefreshesOutput {
  InstanceRefreshes: [AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshes]
  NextToken: String
}

type AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshes {
  InstanceRefreshId: String
  AutoScalingGroupName: String
  Status: String
  StatusReason: String
  StartTime: Date
  EndTime: Date
  PercentageComplete: Int
  InstancesToUpdate: Int
  ProgressDetails: AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetails
}

type AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetails {
  LivePoolProgress: AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetailsLivePoolProgress
  WarmPoolProgress: AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetailsWarmPoolProgress
}

type AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetailsLivePoolProgress {
  PercentageComplete: Int
  InstancesToUpdate: Int
}

type AwsAutoScalingDescribeInstanceRefreshesOutputInstanceRefreshesProgressDetailsWarmPoolProgress {
  PercentageComplete: Int
  InstancesToUpdate: Int
}

input AwsAutoScalingDescribeInstanceRefreshesInput {
  AutoScalingGroupName: String!
  InstanceRefreshIds: [String]
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeLaunchConfigurationsOutput {
  LaunchConfigurations: [AwsAutoScalingDescribeLaunchConfigurationsOutputLaunchConfigurations]!
  NextToken: String
}

type AwsAutoScalingDescribeLaunchConfigurationsOutputLaunchConfigurations {
  LaunchConfigurationName: String!
  LaunchConfigurationARN: String
  ImageId: String!
  KeyName: String
  SecurityGroups: [String]
  ClassicLinkVPCId: String
  ClassicLinkVPCSecurityGroups: [String]
  UserData: String
  InstanceType: String!
  KernelId: String
  RamdiskId: String
  BlockDeviceMappings: [AwsAutoScalingS20]
  InstanceMonitoring: AwsAutoScalingS2a
  SpotPrice: String
  IamInstanceProfile: String
  CreatedTime: Date!
  EbsOptimized: Boolean
  AssociatePublicIpAddress: Boolean
  PlacementTenancy: String
  MetadataOptions: AwsAutoScalingS2f
}

type AwsAutoScalingS20 {
  VirtualName: String
  DeviceName: String!
  Ebs: AwsAutoScalingS20Ebs
  NoDevice: Boolean
}

type AwsAutoScalingS20Ebs {
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  DeleteOnTermination: Boolean
  Iops: Int
  Encrypted: Boolean
  Throughput: Int
}

type AwsAutoScalingS2a {
  Enabled: Boolean
}

type AwsAutoScalingS2f {
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

input AwsAutoScalingDescribeLaunchConfigurationsInput {
  LaunchConfigurationNames: [String]
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeLifecycleHookTypesOutput {
  LifecycleHookTypes: [String]
}

type AwsAutoScalingDescribeLifecycleHooksOutput {
  LifecycleHooks: [AwsAutoScalingDescribeLifecycleHooksOutputLifecycleHooks]
}

type AwsAutoScalingDescribeLifecycleHooksOutputLifecycleHooks {
  LifecycleHookName: String
  AutoScalingGroupName: String
  LifecycleTransition: String
  NotificationTargetARN: String
  RoleARN: String
  NotificationMetadata: String
  HeartbeatTimeout: Int
  GlobalTimeout: Int
  DefaultResult: String
}

input AwsAutoScalingDescribeLifecycleHooksInput {
  AutoScalingGroupName: String!
  LifecycleHookNames: [String]
}

type AwsAutoScalingDescribeLoadBalancerTargetGroupsOutput {
  LoadBalancerTargetGroups: [AwsAutoScalingDescribeLoadBalancerTargetGroupsOutputLoadBalancerTargetGroups]
  NextToken: String
}

type AwsAutoScalingDescribeLoadBalancerTargetGroupsOutputLoadBalancerTargetGroups {
  LoadBalancerTargetGroupARN: String
  State: String
}

input AwsAutoScalingDescribeLoadBalancerTargetGroupsInput {
  AutoScalingGroupName: String!
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeLoadBalancersOutput {
  LoadBalancers: [AwsAutoScalingDescribeLoadBalancersOutputLoadBalancers]
  NextToken: String
}

type AwsAutoScalingDescribeLoadBalancersOutputLoadBalancers {
  LoadBalancerName: String
  State: String
}

input AwsAutoScalingDescribeLoadBalancersInput {
  AutoScalingGroupName: String!
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeMetricCollectionTypesOutput {
  Metrics: [AwsAutoScalingDescribeMetricCollectionTypesOutputMetrics]
  Granularities: [AwsAutoScalingDescribeMetricCollectionTypesOutputGranularities]
}

type AwsAutoScalingDescribeMetricCollectionTypesOutputMetrics {
  Metric: String
}

type AwsAutoScalingDescribeMetricCollectionTypesOutputGranularities {
  Granularity: String
}

type AwsAutoScalingDescribeNotificationConfigurationsOutput {
  NotificationConfigurations: [AwsAutoScalingDescribeNotificationConfigurationsOutputNotificationConfigurations]!
  NextToken: String
}

type AwsAutoScalingDescribeNotificationConfigurationsOutputNotificationConfigurations {
  AutoScalingGroupName: String
  TopicARN: String
  NotificationType: String
}

input AwsAutoScalingDescribeNotificationConfigurationsInput {
  AutoScalingGroupNames: [String]
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribePoliciesOutput {
  ScalingPolicies: [AwsAutoScalingDescribePoliciesOutputScalingPolicies]
  NextToken: String
}

type AwsAutoScalingDescribePoliciesOutputScalingPolicies {
  AutoScalingGroupName: String
  PolicyName: String
  PolicyARN: String
  PolicyType: String
  AdjustmentType: String
  MinAdjustmentStep: Int
  MinAdjustmentMagnitude: Int
  ScalingAdjustment: Int
  Cooldown: Int
  StepAdjustments: [AwsAutoScalingS58]
  MetricAggregationType: String
  EstimatedInstanceWarmup: Int
  Alarms: [AwsAutoScalingS5c]
  TargetTrackingConfiguration: AwsAutoScalingS5e
  Enabled: Boolean
  PredictiveScalingConfiguration: AwsAutoScalingS5s
}

type AwsAutoScalingS58 {
  MetricIntervalLowerBound: JSON
  MetricIntervalUpperBound: JSON
  ScalingAdjustment: Int!
}

type AwsAutoScalingS5c {
  AlarmName: String
  AlarmARN: String
}

type AwsAutoScalingS5e {
  PredefinedMetricSpecification: AwsAutoScalingS5ePredefinedMetricSpecification
  CustomizedMetricSpecification: AwsAutoScalingS5eCustomizedMetricSpecification
  TargetValue: JSON!
  DisableScaleIn: Boolean
}

type AwsAutoScalingS5ePredefinedMetricSpecification {
  PredefinedMetricType: String!
  ResourceLabel: String
}

type AwsAutoScalingS5eCustomizedMetricSpecification {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingS5eCustomizedMetricSpecificationDimensions]
  Statistic: String!
  Unit: String
}

type AwsAutoScalingS5eCustomizedMetricSpecificationDimensions {
  Name: String!
  Value: String!
}

type AwsAutoScalingS5s {
  MetricSpecifications: [AwsAutoScalingS5u]!
  Mode: String
  SchedulingBufferTime: Int
  MaxCapacityBreachBehavior: String
  MaxCapacityBuffer: Int
}

type AwsAutoScalingS5u {
  TargetValue: JSON!
  PredefinedMetricPairSpecification: AwsAutoScalingS5uPredefinedMetricPairSpecification
  PredefinedScalingMetricSpecification: AwsAutoScalingS5uPredefinedScalingMetricSpecification
  PredefinedLoadMetricSpecification: AwsAutoScalingS5uPredefinedLoadMetricSpecification
}

type AwsAutoScalingS5uPredefinedMetricPairSpecification {
  PredefinedMetricType: String!
  ResourceLabel: String
}

type AwsAutoScalingS5uPredefinedScalingMetricSpecification {
  PredefinedMetricType: String!
  ResourceLabel: String
}

type AwsAutoScalingS5uPredefinedLoadMetricSpecification {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingDescribePoliciesInput {
  AutoScalingGroupName: String
  PolicyNames: [String]
  PolicyTypes: [String]
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeScalingActivitiesOutput {
  Activities: [AwsAutoScalingS6a]!
  NextToken: String
}

type AwsAutoScalingS6a {
  ActivityId: String!
  AutoScalingGroupName: String!
  Description: String
  Cause: String!
  StartTime: Date!
  EndTime: Date
  StatusCode: String!
  StatusMessage: String
  Progress: Int
  Details: String
  AutoScalingGroupState: String
  AutoScalingGroupARN: String
}

input AwsAutoScalingDescribeScalingActivitiesInput {
  ActivityIds: [String]
  AutoScalingGroupName: String
  IncludeDeletedGroups: Boolean
  MaxRecords: Int
  NextToken: String
}

type AwsAutoScalingDescribeScalingProcessTypesOutput {
  Processes: [AwsAutoScalingDescribeScalingProcessTypesOutputProcesses]
}

type AwsAutoScalingDescribeScalingProcessTypesOutputProcesses {
  ProcessName: String!
}

type AwsAutoScalingDescribeScheduledActionsOutput {
  ScheduledUpdateGroupActions: [AwsAutoScalingDescribeScheduledActionsOutputScheduledUpdateGroupActions]
  NextToken: String
}

type AwsAutoScalingDescribeScheduledActionsOutputScheduledUpdateGroupActions {
  AutoScalingGroupName: String
  ScheduledActionName: String
  ScheduledActionARN: String
  Time: Date
  StartTime: Date
  EndTime: Date
  Recurrence: String
  MinSize: Int
  MaxSize: Int
  DesiredCapacity: Int
  TimeZone: String
}

input AwsAutoScalingDescribeScheduledActionsInput {
  AutoScalingGroupName: String
  ScheduledActionNames: [String]
  StartTime: Date
  EndTime: Date
  NextToken: String
  MaxRecords: Int
}

type AwsAutoScalingDescribeTagsOutput {
  Tags: [AwsAutoScalingS3h]
  NextToken: String
}

input AwsAutoScalingDescribeTagsInput {
  Filters: [AwsAutoScalingDescribeTagsFiltersInput]
  NextToken: String
  MaxRecords: Int
}

input AwsAutoScalingDescribeTagsFiltersInput {
  Name: String
  Values: [String]
}

type AwsAutoScalingDescribeTerminationPolicyTypesOutput {
  TerminationPolicyTypes: [String]
}

type AwsAutoScalingDescribeWarmPoolOutput {
  WarmPoolConfiguration: AwsAutoScalingS3j
  Instances: [AwsAutoScalingS3a]
  NextToken: String
}

input AwsAutoScalingDescribeWarmPoolInput {
  AutoScalingGroupName: String!
  MaxRecords: Int
  NextToken: String
}

type AwsAutoScalingDetachInstancesOutput {
  Activities: [AwsAutoScalingS6a]
}

input AwsAutoScalingDetachInstancesInput {
  InstanceIds: [String]
  AutoScalingGroupName: String!
  ShouldDecrementDesiredCapacity: Boolean!
}

input AwsAutoScalingDetachLoadBalancerTargetGroupsInput {
  AutoScalingGroupName: String!
  TargetGroupARNs: [String]!
}

input AwsAutoScalingDetachLoadBalancersInput {
  AutoScalingGroupName: String!
  LoadBalancerNames: [String]!
}

input AwsAutoScalingDisableMetricsCollectionInput {
  AutoScalingGroupName: String!
  Metrics: [String]
}

input AwsAutoScalingEnableMetricsCollectionInput {
  AutoScalingGroupName: String!
  Metrics: [String]
  Granularity: String!
}

type AwsAutoScalingEnterStandbyOutput {
  Activities: [AwsAutoScalingS6a]
}

input AwsAutoScalingEnterStandbyInput {
  InstanceIds: [String]
  AutoScalingGroupName: String!
  ShouldDecrementDesiredCapacity: Boolean!
}

input AwsAutoScalingExecutePolicyInput {
  AutoScalingGroupName: String
  PolicyName: String!
  HonorCooldown: Boolean
  MetricValue: JSON
  BreachThreshold: JSON
}

type AwsAutoScalingExitStandbyOutput {
  Activities: [AwsAutoScalingS6a]
}

input AwsAutoScalingExitStandbyInput {
  InstanceIds: [String]
  AutoScalingGroupName: String!
}

type AwsAutoScalingGetPredictiveScalingForecastOutput {
  LoadForecast: [AwsAutoScalingGetPredictiveScalingForecastOutputLoadForecast]!
  CapacityForecast: AwsAutoScalingGetPredictiveScalingForecastOutputCapacityForecast!
  UpdateTime: Date!
}

type AwsAutoScalingGetPredictiveScalingForecastOutputLoadForecast {
  Timestamps: [Date]!
  Values: [JSON]!
  MetricSpecification: AwsAutoScalingS5u!
}

type AwsAutoScalingGetPredictiveScalingForecastOutputCapacityForecast {
  Timestamps: [Date]!
  Values: [JSON]!
}

input AwsAutoScalingGetPredictiveScalingForecastInput {
  AutoScalingGroupName: String!
  PolicyName: String!
  StartTime: Date!
  EndTime: Date!
}

input AwsAutoScalingPutLifecycleHookInput {
  LifecycleHookName: String!
  AutoScalingGroupName: String!
  LifecycleTransition: String
  RoleARN: String
  NotificationTargetARN: String
  NotificationMetadata: String
  HeartbeatTimeout: Int
  DefaultResult: String
}

input AwsAutoScalingPutNotificationConfigurationInput {
  AutoScalingGroupName: String!
  TopicARN: String!
  NotificationTypes: [String]!
}

type AwsAutoScalingPutScalingPolicyOutput {
  PolicyARN: String
  Alarms: [AwsAutoScalingS5c]
}

input AwsAutoScalingPutScalingPolicyInput {
  AutoScalingGroupName: String!
  PolicyName: String!
  PolicyType: String
  AdjustmentType: String
  MinAdjustmentStep: Int
  MinAdjustmentMagnitude: Int
  ScalingAdjustment: Int
  Cooldown: Int
  MetricAggregationType: String
  StepAdjustments: [AwsAutoScalingS58Input]
  EstimatedInstanceWarmup: Int
  TargetTrackingConfiguration: AwsAutoScalingS5eInput
  Enabled: Boolean
  PredictiveScalingConfiguration: AwsAutoScalingS5sInput
}

input AwsAutoScalingS58Input {
  MetricIntervalLowerBound: JSON
  MetricIntervalUpperBound: JSON
  ScalingAdjustment: Int!
}

input AwsAutoScalingS5eInput {
  PredefinedMetricSpecification: AwsAutoScalingS5ePredefinedMetricSpecificationInput
  CustomizedMetricSpecification: AwsAutoScalingS5eCustomizedMetricSpecificationInput
  TargetValue: JSON!
  DisableScaleIn: Boolean
}

input AwsAutoScalingS5ePredefinedMetricSpecificationInput {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingS5eCustomizedMetricSpecificationInput {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingS5eCustomizedMetricSpecificationDimensionsInput]
  Statistic: String!
  Unit: String
}

input AwsAutoScalingS5eCustomizedMetricSpecificationDimensionsInput {
  Name: String!
  Value: String!
}

input AwsAutoScalingS5sInput {
  MetricSpecifications: [AwsAutoScalingS5uInput]!
  Mode: String
  SchedulingBufferTime: Int
  MaxCapacityBreachBehavior: String
  MaxCapacityBuffer: Int
}

input AwsAutoScalingS5uInput {
  TargetValue: JSON!
  PredefinedMetricPairSpecification: AwsAutoScalingS5uPredefinedMetricPairSpecificationInput
  PredefinedScalingMetricSpecification: AwsAutoScalingS5uPredefinedScalingMetricSpecificationInput
  PredefinedLoadMetricSpecification: AwsAutoScalingS5uPredefinedLoadMetricSpecificationInput
}

input AwsAutoScalingS5uPredefinedMetricPairSpecificationInput {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingS5uPredefinedScalingMetricSpecificationInput {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingS5uPredefinedLoadMetricSpecificationInput {
  PredefinedMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingPutScheduledUpdateGroupActionInput {
  AutoScalingGroupName: String!
  ScheduledActionName: String!
  Time: Date
  StartTime: Date
  EndTime: Date
  Recurrence: String
  MinSize: Int
  MaxSize: Int
  DesiredCapacity: Int
  TimeZone: String
}

input AwsAutoScalingPutWarmPoolInput {
  AutoScalingGroupName: String!
  MaxGroupPreparedCapacity: Int
  MinSize: Int
  PoolState: String
}

input AwsAutoScalingRecordLifecycleActionHeartbeatInput {
  LifecycleHookName: String!
  AutoScalingGroupName: String!
  LifecycleActionToken: String
  InstanceId: String
}

input AwsAutoScalingSetDesiredCapacityInput {
  AutoScalingGroupName: String!
  DesiredCapacity: Int!
  HonorCooldown: Boolean
}

input AwsAutoScalingSetInstanceHealthInput {
  InstanceId: String!
  HealthStatus: String!
  ShouldRespectGracePeriod: Boolean
}

input AwsAutoScalingSetInstanceProtectionInput {
  InstanceIds: [String]!
  AutoScalingGroupName: String!
  ProtectedFromScaleIn: Boolean!
}

type AwsAutoScalingStartInstanceRefreshOutput {
  InstanceRefreshId: String
}

input AwsAutoScalingStartInstanceRefreshInput {
  AutoScalingGroupName: String!
  Strategy: String
  Preferences: AwsAutoScalingStartInstanceRefreshPreferencesInput
}

input AwsAutoScalingStartInstanceRefreshPreferencesInput {
  MinHealthyPercentage: Int
  InstanceWarmup: Int
  CheckpointPercentages: [Int]
  CheckpointDelay: Int
}

type AwsAutoScalingTerminateInstanceInAutoScalingGroupOutput {
  Activity: AwsAutoScalingS6a
}

input AwsAutoScalingTerminateInstanceInAutoScalingGroupInput {
  InstanceId: String!
  ShouldDecrementDesiredCapacity: Boolean!
}

input AwsAutoScalingUpdateAutoScalingGroupInput {
  AutoScalingGroupName: String!
  LaunchConfigurationName: String
  LaunchTemplate: AwsAutoScalingS10Input
  MixedInstancesPolicy: AwsAutoScalingS12Input
  MinSize: Int
  MaxSize: Int
  DesiredCapacity: Int
  DefaultCooldown: Int
  AvailabilityZones: [String]
  HealthCheckType: String
  HealthCheckGracePeriod: Int
  PlacementGroup: String
  VPCZoneIdentifier: String
  TerminationPolicies: [String]
  NewInstancesProtectedFromScaleIn: Boolean
  ServiceLinkedRoleARN: String
  MaxInstanceLifetime: Int
  CapacityRebalance: Boolean
}

"""AWS Auto Scaling Plans (2018-01-06)"""
type AwsAutoScalingPlans {
  createScalingPlan(input: AwsAutoScalingPlansCreateScalingPlanInput!, config: AwsConfig): AwsAutoScalingPlansCreateScalingPlanOutput
  deleteScalingPlan(input: AwsAutoScalingPlansDeleteScalingPlanInput!, config: AwsConfig): JSON
  describeScalingPlanResources(input: AwsAutoScalingPlansDescribeScalingPlanResourcesInput!, config: AwsConfig): AwsAutoScalingPlansDescribeScalingPlanResourcesOutput
  describeScalingPlans(input: AwsAutoScalingPlansDescribeScalingPlansInput, config: AwsConfig): AwsAutoScalingPlansDescribeScalingPlansOutput
  getScalingPlanResourceForecastData(input: AwsAutoScalingPlansGetScalingPlanResourceForecastDataInput!, config: AwsConfig): AwsAutoScalingPlansGetScalingPlanResourceForecastDataOutput
  updateScalingPlan(input: AwsAutoScalingPlansUpdateScalingPlanInput!, config: AwsConfig): JSON
}

type AwsAutoScalingPlansCreateScalingPlanOutput {
  ScalingPlanVersion: JSON!
}

input AwsAutoScalingPlansCreateScalingPlanInput {
  ScalingPlanName: String!
  ApplicationSource: AwsAutoScalingPlansS3Input!
  ScalingInstructions: [AwsAutoScalingPlansSaInput]!
}

input AwsAutoScalingPlansS3Input {
  CloudFormationStackARN: String
  TagFilters: [AwsAutoScalingPlansS3TagFiltersInput]
}

input AwsAutoScalingPlansS3TagFiltersInput {
  Key: String
  Values: [String]
}

input AwsAutoScalingPlansSaInput {
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  MinCapacity: Int!
  MaxCapacity: Int!
  TargetTrackingConfigurations: [AwsAutoScalingPlansShInput]!
  PredefinedLoadMetricSpecification: AwsAutoScalingPlansSaPredefinedLoadMetricSpecificationInput
  CustomizedLoadMetricSpecification: AwsAutoScalingPlansSaCustomizedLoadMetricSpecificationInput
  ScheduledActionBufferTime: Int
  PredictiveScalingMaxCapacityBehavior: String
  PredictiveScalingMaxCapacityBuffer: Int
  PredictiveScalingMode: String
  ScalingPolicyUpdateBehavior: String
  DisableDynamicScaling: Boolean
}

input AwsAutoScalingPlansShInput {
  PredefinedScalingMetricSpecification: AwsAutoScalingPlansShPredefinedScalingMetricSpecificationInput
  CustomizedScalingMetricSpecification: AwsAutoScalingPlansShCustomizedScalingMetricSpecificationInput
  TargetValue: JSON!
  DisableScaleIn: Boolean
  ScaleOutCooldown: Int
  ScaleInCooldown: Int
  EstimatedInstanceWarmup: Int
}

input AwsAutoScalingPlansShPredefinedScalingMetricSpecificationInput {
  PredefinedScalingMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingPlansShCustomizedScalingMetricSpecificationInput {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingPlansSoInput]
  Statistic: String!
  Unit: String
}

input AwsAutoScalingPlansSoInput {
  Name: String!
  Value: String!
}

input AwsAutoScalingPlansSaPredefinedLoadMetricSpecificationInput {
  PredefinedLoadMetricType: String!
  ResourceLabel: String
}

input AwsAutoScalingPlansSaCustomizedLoadMetricSpecificationInput {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingPlansSoInput]
  Statistic: String!
  Unit: String
}

input AwsAutoScalingPlansDeleteScalingPlanInput {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
}

type AwsAutoScalingPlansDescribeScalingPlanResourcesOutput {
  ScalingPlanResources: [AwsAutoScalingPlansDescribeScalingPlanResourcesOutputScalingPlanResources]
  NextToken: String
}

type AwsAutoScalingPlansDescribeScalingPlanResourcesOutputScalingPlanResources {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  ScalingPolicies: [AwsAutoScalingPlansDescribeScalingPlanResourcesOutputScalingPlanResourcesScalingPolicies]
  ScalingStatusCode: String!
  ScalingStatusMessage: String
}

type AwsAutoScalingPlansDescribeScalingPlanResourcesOutputScalingPlanResourcesScalingPolicies {
  PolicyName: String!
  PolicyType: String!
  TargetTrackingConfiguration: AwsAutoScalingPlansSh
}

type AwsAutoScalingPlansSh {
  PredefinedScalingMetricSpecification: AwsAutoScalingPlansShPredefinedScalingMetricSpecification
  CustomizedScalingMetricSpecification: AwsAutoScalingPlansShCustomizedScalingMetricSpecification
  TargetValue: JSON!
  DisableScaleIn: Boolean
  ScaleOutCooldown: Int
  ScaleInCooldown: Int
  EstimatedInstanceWarmup: Int
}

type AwsAutoScalingPlansShPredefinedScalingMetricSpecification {
  PredefinedScalingMetricType: String!
  ResourceLabel: String
}

type AwsAutoScalingPlansShCustomizedScalingMetricSpecification {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingPlansSo]
  Statistic: String!
  Unit: String
}

type AwsAutoScalingPlansSo {
  Name: String!
  Value: String!
}

input AwsAutoScalingPlansDescribeScalingPlanResourcesInput {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
  MaxResults: Int
  NextToken: String
}

type AwsAutoScalingPlansDescribeScalingPlansOutput {
  ScalingPlans: [AwsAutoScalingPlansDescribeScalingPlansOutputScalingPlans]
  NextToken: String
}

type AwsAutoScalingPlansDescribeScalingPlansOutputScalingPlans {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
  ApplicationSource: AwsAutoScalingPlansS3!
  ScalingInstructions: [AwsAutoScalingPlansSa]!
  StatusCode: String!
  StatusMessage: String
  StatusStartTime: Date
  CreationTime: Date
}

type AwsAutoScalingPlansS3 {
  CloudFormationStackARN: String
  TagFilters: [AwsAutoScalingPlansS3TagFilters]
}

type AwsAutoScalingPlansS3TagFilters {
  Key: String
  Values: [String]
}

type AwsAutoScalingPlansSa {
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  MinCapacity: Int!
  MaxCapacity: Int!
  TargetTrackingConfigurations: [AwsAutoScalingPlansSh]!
  PredefinedLoadMetricSpecification: AwsAutoScalingPlansSaPredefinedLoadMetricSpecification
  CustomizedLoadMetricSpecification: AwsAutoScalingPlansSaCustomizedLoadMetricSpecification
  ScheduledActionBufferTime: Int
  PredictiveScalingMaxCapacityBehavior: String
  PredictiveScalingMaxCapacityBuffer: Int
  PredictiveScalingMode: String
  ScalingPolicyUpdateBehavior: String
  DisableDynamicScaling: Boolean
}

type AwsAutoScalingPlansSaPredefinedLoadMetricSpecification {
  PredefinedLoadMetricType: String!
  ResourceLabel: String
}

type AwsAutoScalingPlansSaCustomizedLoadMetricSpecification {
  MetricName: String!
  Namespace: String!
  Dimensions: [AwsAutoScalingPlansSo]
  Statistic: String!
  Unit: String
}

input AwsAutoScalingPlansDescribeScalingPlansInput {
  ScalingPlanNames: [String]
  ScalingPlanVersion: JSON
  ApplicationSources: [AwsAutoScalingPlansS3Input]
  MaxResults: Int
  NextToken: String
}

type AwsAutoScalingPlansGetScalingPlanResourceForecastDataOutput {
  Datapoints: [AwsAutoScalingPlansGetScalingPlanResourceForecastDataOutputDatapoints]!
}

type AwsAutoScalingPlansGetScalingPlanResourceForecastDataOutputDatapoints {
  Timestamp: Date
  Value: JSON
}

input AwsAutoScalingPlansGetScalingPlanResourceForecastDataInput {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
  ServiceNamespace: String!
  ResourceId: String!
  ScalableDimension: String!
  ForecastDataType: String!
  StartTime: Date!
  EndTime: Date!
}

input AwsAutoScalingPlansUpdateScalingPlanInput {
  ScalingPlanName: String!
  ScalingPlanVersion: JSON!
  ApplicationSource: AwsAutoScalingPlansS3Input
  ScalingInstructions: [AwsAutoScalingPlansSaInput]
}

"""AWS Backup (2018-11-15)"""
type AwsBackup {
  createBackupPlan(input: AwsBackupCreateBackupPlanInput!, config: AwsConfig): AwsBackupCreateBackupPlanOutput
  createBackupSelection(input: AwsBackupCreateBackupSelectionInput!, config: AwsConfig): AwsBackupCreateBackupSelectionOutput
  createBackupVault(input: AwsBackupCreateBackupVaultInput!, config: AwsConfig): AwsBackupCreateBackupVaultOutput
  deleteBackupPlan(input: AwsBackupDeleteBackupPlanInput!, config: AwsConfig): AwsBackupDeleteBackupPlanOutput
  deleteBackupSelection(input: AwsBackupDeleteBackupSelectionInput!, config: AwsConfig): JSON
  deleteBackupVault(input: AwsBackupDeleteBackupVaultInput!, config: AwsConfig): JSON
  deleteBackupVaultAccessPolicy(input: AwsBackupDeleteBackupVaultAccessPolicyInput!, config: AwsConfig): JSON
  deleteBackupVaultNotifications(input: AwsBackupDeleteBackupVaultNotificationsInput!, config: AwsConfig): JSON
  deleteRecoveryPoint(input: AwsBackupDeleteRecoveryPointInput!, config: AwsConfig): JSON
  describeBackupJob(input: AwsBackupDescribeBackupJobInput!, config: AwsConfig): AwsBackupDescribeBackupJobOutput
  describeBackupVault(input: AwsBackupDescribeBackupVaultInput!, config: AwsConfig): AwsBackupDescribeBackupVaultOutput
  describeCopyJob(input: AwsBackupDescribeCopyJobInput!, config: AwsConfig): AwsBackupDescribeCopyJobOutput
  describeGlobalSettings(input: JSON, config: AwsConfig): AwsBackupDescribeGlobalSettingsOutput
  describeProtectedResource(input: AwsBackupDescribeProtectedResourceInput!, config: AwsConfig): AwsBackupDescribeProtectedResourceOutput
  describeRecoveryPoint(input: AwsBackupDescribeRecoveryPointInput!, config: AwsConfig): AwsBackupDescribeRecoveryPointOutput
  describeRegionSettings(input: JSON, config: AwsConfig): AwsBackupDescribeRegionSettingsOutput
  describeRestoreJob(input: AwsBackupDescribeRestoreJobInput!, config: AwsConfig): AwsBackupDescribeRestoreJobOutput
  disassociateRecoveryPoint(input: AwsBackupDisassociateRecoveryPointInput!, config: AwsConfig): JSON
  exportBackupPlanTemplate(input: AwsBackupExportBackupPlanTemplateInput!, config: AwsConfig): AwsBackupExportBackupPlanTemplateOutput
  getBackupPlan(input: AwsBackupGetBackupPlanInput!, config: AwsConfig): AwsBackupGetBackupPlanOutput
  getBackupPlanFromJSON(input: AwsBackupGetBackupPlanFromJSONInput!, config: AwsConfig): AwsBackupGetBackupPlanFromJSONOutput
  getBackupPlanFromTemplate(input: AwsBackupGetBackupPlanFromTemplateInput!, config: AwsConfig): AwsBackupGetBackupPlanFromTemplateOutput
  getBackupSelection(input: AwsBackupGetBackupSelectionInput!, config: AwsConfig): AwsBackupGetBackupSelectionOutput
  getBackupVaultAccessPolicy(input: AwsBackupGetBackupVaultAccessPolicyInput!, config: AwsConfig): AwsBackupGetBackupVaultAccessPolicyOutput
  getBackupVaultNotifications(input: AwsBackupGetBackupVaultNotificationsInput!, config: AwsConfig): AwsBackupGetBackupVaultNotificationsOutput
  getRecoveryPointRestoreMetadata(input: AwsBackupGetRecoveryPointRestoreMetadataInput!, config: AwsConfig): AwsBackupGetRecoveryPointRestoreMetadataOutput
  getSupportedResourceTypes(config: AwsConfig): AwsBackupGetSupportedResourceTypesOutput
  listBackupJobs(input: AwsBackupListBackupJobsInput, config: AwsConfig): AwsBackupListBackupJobsOutput
  listBackupPlanTemplates(input: AwsBackupListBackupPlanTemplatesInput, config: AwsConfig): AwsBackupListBackupPlanTemplatesOutput
  listBackupPlanVersions(input: AwsBackupListBackupPlanVersionsInput!, config: AwsConfig): AwsBackupListBackupPlanVersionsOutput
  listBackupPlans(input: AwsBackupListBackupPlansInput, config: AwsConfig): AwsBackupListBackupPlansOutput
  listBackupSelections(input: AwsBackupListBackupSelectionsInput!, config: AwsConfig): AwsBackupListBackupSelectionsOutput
  listBackupVaults(input: AwsBackupListBackupVaultsInput, config: AwsConfig): AwsBackupListBackupVaultsOutput
  listCopyJobs(input: AwsBackupListCopyJobsInput, config: AwsConfig): AwsBackupListCopyJobsOutput
  listProtectedResources(input: AwsBackupListProtectedResourcesInput, config: AwsConfig): AwsBackupListProtectedResourcesOutput
  listRecoveryPointsByBackupVault(input: AwsBackupListRecoveryPointsByBackupVaultInput!, config: AwsConfig): AwsBackupListRecoveryPointsByBackupVaultOutput
  listRecoveryPointsByResource(input: AwsBackupListRecoveryPointsByResourceInput!, config: AwsConfig): AwsBackupListRecoveryPointsByResourceOutput
  listRestoreJobs(input: AwsBackupListRestoreJobsInput, config: AwsConfig): AwsBackupListRestoreJobsOutput
  listTags(input: AwsBackupListTagsInput!, config: AwsConfig): AwsBackupListTagsOutput
  putBackupVaultAccessPolicy(input: AwsBackupPutBackupVaultAccessPolicyInput!, config: AwsConfig): JSON
  putBackupVaultNotifications(input: AwsBackupPutBackupVaultNotificationsInput!, config: AwsConfig): JSON
  startBackupJob(input: AwsBackupStartBackupJobInput!, config: AwsConfig): AwsBackupStartBackupJobOutput
  startCopyJob(input: AwsBackupStartCopyJobInput!, config: AwsConfig): AwsBackupStartCopyJobOutput
  startRestoreJob(input: AwsBackupStartRestoreJobInput!, config: AwsConfig): AwsBackupStartRestoreJobOutput
  stopBackupJob(input: AwsBackupStopBackupJobInput!, config: AwsConfig): JSON
  tagResource(input: AwsBackupTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsBackupUntagResourceInput!, config: AwsConfig): JSON
  updateBackupPlan(input: AwsBackupUpdateBackupPlanInput!, config: AwsConfig): AwsBackupUpdateBackupPlanOutput
  updateGlobalSettings(input: AwsBackupUpdateGlobalSettingsInput, config: AwsConfig): JSON
  updateRecoveryPointLifecycle(input: AwsBackupUpdateRecoveryPointLifecycleInput!, config: AwsConfig): AwsBackupUpdateRecoveryPointLifecycleOutput
  updateRegionSettings(input: AwsBackupUpdateRegionSettingsInput, config: AwsConfig): JSON
}

type AwsBackupCreateBackupPlanOutput {
  BackupPlanId: String
  BackupPlanArn: String
  CreationDate: Date
  VersionId: String
  AdvancedBackupSettings: [AwsBackupSj]
}

type AwsBackupSj {
  ResourceType: String
  BackupOptions: JSON
}

input AwsBackupCreateBackupPlanInput {
  BackupPlan: AwsBackupS2Input!
  BackupPlanTags: JSON
  CreatorRequestId: String
}

input AwsBackupS2Input {
  BackupPlanName: String!
  Rules: [AwsBackupS2RulesInput]!
  AdvancedBackupSettings: [AwsBackupSjInput]
}

input AwsBackupS2RulesInput {
  RuleName: String!
  TargetBackupVaultName: String!
  ScheduleExpression: String
  StartWindowMinutes: JSON
  CompletionWindowMinutes: JSON
  Lifecycle: AwsBackupSaInput
  RecoveryPointTags: JSON
  CopyActions: [AwsBackupSfInput]
  EnableContinuousBackup: Boolean
}

input AwsBackupSaInput {
  MoveToColdStorageAfterDays: JSON
  DeleteAfterDays: JSON
}

input AwsBackupSfInput {
  Lifecycle: AwsBackupSaInput
  DestinationBackupVaultArn: String!
}

input AwsBackupSjInput {
  ResourceType: String
  BackupOptions: JSON
}

type AwsBackupCreateBackupSelectionOutput {
  SelectionId: String
  BackupPlanId: String
  CreationDate: Date
}

input AwsBackupCreateBackupSelectionInput {
  BackupPlanId: String!
  BackupSelection: AwsBackupStInput!
  CreatorRequestId: String
}

input AwsBackupStInput {
  SelectionName: String!
  IamRoleArn: String!
  Resources: [String]
  ListOfTags: [AwsBackupStListOfTagsInput]
}

input AwsBackupStListOfTagsInput {
  ConditionType: String!
  ConditionKey: String!
  ConditionValue: String!
}

type AwsBackupCreateBackupVaultOutput {
  BackupVaultName: String
  BackupVaultArn: String
  CreationDate: Date
}

input AwsBackupCreateBackupVaultInput {
  BackupVaultName: String!
  BackupVaultTags: JSON
  EncryptionKeyArn: String
  CreatorRequestId: String
}

type AwsBackupDeleteBackupPlanOutput {
  BackupPlanId: String
  BackupPlanArn: String
  DeletionDate: Date
  VersionId: String
}

input AwsBackupDeleteBackupPlanInput {
  BackupPlanId: String!
}

input AwsBackupDeleteBackupSelectionInput {
  BackupPlanId: String!
  SelectionId: String!
}

input AwsBackupDeleteBackupVaultInput {
  BackupVaultName: String!
}

input AwsBackupDeleteBackupVaultAccessPolicyInput {
  BackupVaultName: String!
}

input AwsBackupDeleteBackupVaultNotificationsInput {
  BackupVaultName: String!
}

input AwsBackupDeleteRecoveryPointInput {
  BackupVaultName: String!
  RecoveryPointArn: String!
}

type AwsBackupDescribeBackupJobOutput {
  AccountId: String
  BackupJobId: String
  BackupVaultName: String
  BackupVaultArn: String
  RecoveryPointArn: String
  ResourceArn: String
  CreationDate: Date
  CompletionDate: Date
  State: String
  StatusMessage: String
  PercentDone: String
  BackupSizeInBytes: JSON
  IamRoleArn: String
  CreatedBy: AwsBackupS1g
  ResourceType: String
  BytesTransferred: JSON
  ExpectedCompletionDate: Date
  StartBy: Date
  BackupOptions: JSON
  BackupType: String
}

type AwsBackupS1g {
  BackupPlanId: String
  BackupPlanArn: String
  BackupPlanVersion: String
  BackupRuleId: String
}

input AwsBackupDescribeBackupJobInput {
  BackupJobId: String!
}

type AwsBackupDescribeBackupVaultOutput {
  BackupVaultName: String
  BackupVaultArn: String
  EncryptionKeyArn: String
  CreationDate: Date
  CreatorRequestId: String
  NumberOfRecoveryPoints: JSON
}

input AwsBackupDescribeBackupVaultInput {
  BackupVaultName: String!
}

type AwsBackupDescribeCopyJobOutput {
  CopyJob: AwsBackupS1m
}

type AwsBackupS1m {
  AccountId: String
  CopyJobId: String
  SourceBackupVaultArn: String
  SourceRecoveryPointArn: String
  DestinationBackupVaultArn: String
  DestinationRecoveryPointArn: String
  ResourceArn: String
  CreationDate: Date
  CompletionDate: Date
  State: String
  StatusMessage: String
  BackupSizeInBytes: JSON
  IamRoleArn: String
  CreatedBy: AwsBackupS1g
  ResourceType: String
}

input AwsBackupDescribeCopyJobInput {
  CopyJobId: String!
}

type AwsBackupDescribeGlobalSettingsOutput {
  GlobalSettings: JSON
  LastUpdateTime: Date
}

type AwsBackupDescribeProtectedResourceOutput {
  ResourceArn: String
  ResourceType: String
  LastBackupTime: Date
}

input AwsBackupDescribeProtectedResourceInput {
  ResourceArn: String!
}

type AwsBackupDescribeRecoveryPointOutput {
  RecoveryPointArn: String
  BackupVaultName: String
  BackupVaultArn: String
  SourceBackupVaultArn: String
  ResourceArn: String
  ResourceType: String
  CreatedBy: AwsBackupS1g
  IamRoleArn: String
  Status: String
  CreationDate: Date
  CompletionDate: Date
  BackupSizeInBytes: JSON
  CalculatedLifecycle: AwsBackupS1y
  Lifecycle: AwsBackupSa
  EncryptionKeyArn: String
  IsEncrypted: Boolean
  StorageClass: String
  LastRestoreTime: Date
}

type AwsBackupS1y {
  MoveToColdStorageAt: Date
  DeleteAt: Date
}

type AwsBackupSa {
  MoveToColdStorageAfterDays: JSON
  DeleteAfterDays: JSON
}

input AwsBackupDescribeRecoveryPointInput {
  BackupVaultName: String!
  RecoveryPointArn: String!
}

type AwsBackupDescribeRegionSettingsOutput {
  ResourceTypeOptInPreference: JSON
}

type AwsBackupDescribeRestoreJobOutput {
  AccountId: String
  RestoreJobId: String
  RecoveryPointArn: String
  CreationDate: Date
  CompletionDate: Date
  Status: String
  StatusMessage: String
  PercentDone: String
  BackupSizeInBytes: JSON
  IamRoleArn: String
  ExpectedCompletionTimeMinutes: JSON
  CreatedResourceArn: String
  ResourceType: String
}

input AwsBackupDescribeRestoreJobInput {
  RestoreJobId: String!
}

input AwsBackupDisassociateRecoveryPointInput {
  BackupVaultName: String!
  RecoveryPointArn: String!
}

type AwsBackupExportBackupPlanTemplateOutput {
  BackupPlanTemplateJson: String
}

input AwsBackupExportBackupPlanTemplateInput {
  BackupPlanId: String!
}

type AwsBackupGetBackupPlanOutput {
  BackupPlan: AwsBackupS2e
  BackupPlanId: String
  BackupPlanArn: String
  VersionId: String
  CreatorRequestId: String
  CreationDate: Date
  DeletionDate: Date
  LastExecutionDate: Date
  AdvancedBackupSettings: [AwsBackupSj]
}

type AwsBackupS2e {
  BackupPlanName: String!
  Rules: [AwsBackupS2eRules]!
  AdvancedBackupSettings: [AwsBackupSj]
}

type AwsBackupS2eRules {
  RuleName: String!
  TargetBackupVaultName: String!
  ScheduleExpression: String
  StartWindowMinutes: JSON
  CompletionWindowMinutes: JSON
  Lifecycle: AwsBackupSa
  RecoveryPointTags: JSON
  RuleId: String
  CopyActions: [AwsBackupSf]
  EnableContinuousBackup: Boolean
}

type AwsBackupSf {
  Lifecycle: AwsBackupSa
  DestinationBackupVaultArn: String!
}

input AwsBackupGetBackupPlanInput {
  BackupPlanId: String!
  VersionId: String
}

type AwsBackupGetBackupPlanFromJSONOutput {
  BackupPlan: AwsBackupS2e
}

input AwsBackupGetBackupPlanFromJSONInput {
  BackupPlanTemplateJson: String!
}

type AwsBackupGetBackupPlanFromTemplateOutput {
  BackupPlanDocument: AwsBackupS2e
}

input AwsBackupGetBackupPlanFromTemplateInput {
  BackupPlanTemplateId: String!
}

type AwsBackupGetBackupSelectionOutput {
  BackupSelection: AwsBackupSt
  SelectionId: String
  BackupPlanId: String
  CreationDate: Date
  CreatorRequestId: String
}

type AwsBackupSt {
  SelectionName: String!
  IamRoleArn: String!
  Resources: [String]
  ListOfTags: [AwsBackupStListOfTags]
}

type AwsBackupStListOfTags {
  ConditionType: String!
  ConditionKey: String!
  ConditionValue: String!
}

input AwsBackupGetBackupSelectionInput {
  BackupPlanId: String!
  SelectionId: String!
}

type AwsBackupGetBackupVaultAccessPolicyOutput {
  BackupVaultName: String
  BackupVaultArn: String
  Policy: String
}

input AwsBackupGetBackupVaultAccessPolicyInput {
  BackupVaultName: String!
}

type AwsBackupGetBackupVaultNotificationsOutput {
  BackupVaultName: String
  BackupVaultArn: String
  SNSTopicArn: String
  BackupVaultEvents: [String]
}

input AwsBackupGetBackupVaultNotificationsInput {
  BackupVaultName: String!
}

type AwsBackupGetRecoveryPointRestoreMetadataOutput {
  BackupVaultArn: String
  RecoveryPointArn: String
  RestoreMetadata: JSON
}

input AwsBackupGetRecoveryPointRestoreMetadataInput {
  BackupVaultName: String!
  RecoveryPointArn: String!
}

type AwsBackupGetSupportedResourceTypesOutput {
  ResourceTypes: [String]
}

type AwsBackupListBackupJobsOutput {
  BackupJobs: [AwsBackupListBackupJobsOutputBackupJobs]
  NextToken: String
}

type AwsBackupListBackupJobsOutputBackupJobs {
  AccountId: String
  BackupJobId: String
  BackupVaultName: String
  BackupVaultArn: String
  RecoveryPointArn: String
  ResourceArn: String
  CreationDate: Date
  CompletionDate: Date
  State: String
  StatusMessage: String
  PercentDone: String
  BackupSizeInBytes: JSON
  IamRoleArn: String
  CreatedBy: AwsBackupS1g
  ExpectedCompletionDate: Date
  StartBy: Date
  ResourceType: String
  BytesTransferred: JSON
  BackupOptions: JSON
  BackupType: String
}

input AwsBackupListBackupJobsInput {
  NextToken: String
  MaxResults: Int
  ByResourceArn: String
  ByState: String
  ByBackupVaultName: String
  ByCreatedBefore: Date
  ByCreatedAfter: Date
  ByResourceType: String
  ByAccountId: String
}

type AwsBackupListBackupPlanTemplatesOutput {
  NextToken: String
  BackupPlanTemplatesList: [AwsBackupListBackupPlanTemplatesOutputBackupPlanTemplatesList]
}

type AwsBackupListBackupPlanTemplatesOutputBackupPlanTemplatesList {
  BackupPlanTemplateId: String
  BackupPlanTemplateName: String
}

input AwsBackupListBackupPlanTemplatesInput {
  NextToken: String
  MaxResults: Int
}

type AwsBackupListBackupPlanVersionsOutput {
  NextToken: String
  BackupPlanVersionsList: [AwsBackupS3d]
}

type AwsBackupS3d {
  BackupPlanArn: String
  BackupPlanId: String
  CreationDate: Date
  DeletionDate: Date
  VersionId: String
  BackupPlanName: String
  CreatorRequestId: String
  LastExecutionDate: Date
  AdvancedBackupSettings: [AwsBackupSj]
}

input AwsBackupListBackupPlanVersionsInput {
  BackupPlanId: String!
  NextToken: String
  MaxResults: Int
}

type AwsBackupListBackupPlansOutput {
  NextToken: String
  BackupPlansList: [AwsBackupS3d]
}

input AwsBackupListBackupPlansInput {
  NextToken: String
  MaxResults: Int
  IncludeDeleted: Boolean
}

type AwsBackupListBackupSelectionsOutput {
  NextToken: String
  BackupSelectionsList: [AwsBackupListBackupSelectionsOutputBackupSelectionsList]
}

type AwsBackupListBackupSelectionsOutputBackupSelectionsList {
  SelectionId: String
  SelectionName: String
  BackupPlanId: String
  CreationDate: Date
  CreatorRequestId: String
  IamRoleArn: String
}

input AwsBackupListBackupSelectionsInput {
  BackupPlanId: String!
  NextToken: String
  MaxResults: Int
}

type AwsBackupListBackupVaultsOutput {
  BackupVaultList: [AwsBackupListBackupVaultsOutputBackupVaultList]
  NextToken: String
}

type AwsBackupListBackupVaultsOutputBackupVaultList {
  BackupVaultName: String
  BackupVaultArn: String
  CreationDate: Date
  EncryptionKeyArn: String
  CreatorRequestId: String
  NumberOfRecoveryPoints: JSON
}

input AwsBackupListBackupVaultsInput {
  NextToken: String
  MaxResults: Int
}

type AwsBackupListCopyJobsOutput {
  CopyJobs: [AwsBackupS1m]
  NextToken: String
}

input AwsBackupListCopyJobsInput {
  NextToken: String
  MaxResults: Int
  ByResourceArn: String
  ByState: String
  ByCreatedBefore: Date
  ByCreatedAfter: Date
  ByResourceType: String
  ByDestinationVaultArn: String
  ByAccountId: String
}

type AwsBackupListProtectedResourcesOutput {
  Results: [AwsBackupListProtectedResourcesOutputResults]
  NextToken: String
}

type AwsBackupListProtectedResourcesOutputResults {
  ResourceArn: String
  ResourceType: String
  LastBackupTime: Date
}

input AwsBackupListProtectedResourcesInput {
  NextToken: String
  MaxResults: Int
}

type AwsBackupListRecoveryPointsByBackupVaultOutput {
  NextToken: String
  RecoveryPoints: [AwsBackupListRecoveryPointsByBackupVaultOutputRecoveryPoints]
}

type AwsBackupListRecoveryPointsByBackupVaultOutputRecoveryPoints {
  RecoveryPointArn: String
  BackupVaultName: String
  BackupVaultArn: String
  SourceBackupVaultArn: String
  ResourceArn: String
  ResourceType: String
  CreatedBy: AwsBackupS1g
  IamRoleArn: String
  Status: String
  CreationDate: Date
  CompletionDate: Date
  BackupSizeInBytes: JSON
  CalculatedLifecycle: AwsBackupS1y
  Lifecycle: AwsBackupSa
  EncryptionKeyArn: String
  IsEncrypted: Boolean
  LastRestoreTime: Date
}

input AwsBackupListRecoveryPointsByBackupVaultInput {
  BackupVaultName: String!
  NextToken: String
  MaxResults: Int
  ByResourceArn: String
  ByResourceType: String
  ByBackupPlanId: String
  ByCreatedBefore: Date
  ByCreatedAfter: Date
}

type AwsBackupListRecoveryPointsByResourceOutput {
  NextToken: String
  RecoveryPoints: [AwsBackupListRecoveryPointsByResourceOutputRecoveryPoints]
}

type AwsBackupListRecoveryPointsByResourceOutputRecoveryPoints {
  RecoveryPointArn: String
  CreationDate: Date
  Status: String
  EncryptionKeyArn: String
  BackupSizeBytes: JSON
  BackupVaultName: String
}

input AwsBackupListRecoveryPointsByResourceInput {
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsBackupListRestoreJobsOutput {
  RestoreJobs: [AwsBackupListRestoreJobsOutputRestoreJobs]
  NextToken: String
}

type AwsBackupListRestoreJobsOutputRestoreJobs {
  AccountId: String
  RestoreJobId: String
  RecoveryPointArn: String
  CreationDate: Date
  CompletionDate: Date
  Status: String
  StatusMessage: String
  PercentDone: String
  BackupSizeInBytes: JSON
  IamRoleArn: String
  ExpectedCompletionTimeMinutes: JSON
  CreatedResourceArn: String
  ResourceType: String
}

input AwsBackupListRestoreJobsInput {
  NextToken: String
  MaxResults: Int
  ByAccountId: String
  ByCreatedBefore: Date
  ByCreatedAfter: Date
  ByStatus: String
}

type AwsBackupListTagsOutput {
  NextToken: String
  Tags: JSON
}

input AwsBackupListTagsInput {
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

input AwsBackupPutBackupVaultAccessPolicyInput {
  BackupVaultName: String!
  Policy: String
}

input AwsBackupPutBackupVaultNotificationsInput {
  BackupVaultName: String!
  SNSTopicArn: String!
  BackupVaultEvents: [String]!
}

type AwsBackupStartBackupJobOutput {
  BackupJobId: String
  RecoveryPointArn: String
  CreationDate: Date
}

input AwsBackupStartBackupJobInput {
  BackupVaultName: String!
  ResourceArn: String!
  IamRoleArn: String!
  IdempotencyToken: String
  StartWindowMinutes: JSON
  CompleteWindowMinutes: JSON
  Lifecycle: AwsBackupSaInput
  RecoveryPointTags: JSON
  BackupOptions: JSON
}

type AwsBackupStartCopyJobOutput {
  CopyJobId: String
  CreationDate: Date
}

input AwsBackupStartCopyJobInput {
  RecoveryPointArn: String!
  SourceBackupVaultName: String!
  DestinationBackupVaultArn: String!
  IamRoleArn: String!
  IdempotencyToken: String
  Lifecycle: AwsBackupSaInput
}

type AwsBackupStartRestoreJobOutput {
  RestoreJobId: String
}

input AwsBackupStartRestoreJobInput {
  RecoveryPointArn: String!
  Metadata: JSON!
  IamRoleArn: String!
  IdempotencyToken: String
  ResourceType: String
}

input AwsBackupStopBackupJobInput {
  BackupJobId: String!
}

input AwsBackupTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsBackupUntagResourceInput {
  ResourceArn: String!
  TagKeyList: [String]!
}

type AwsBackupUpdateBackupPlanOutput {
  BackupPlanId: String
  BackupPlanArn: String
  CreationDate: Date
  VersionId: String
  AdvancedBackupSettings: [AwsBackupSj]
}

input AwsBackupUpdateBackupPlanInput {
  BackupPlanId: String!
  BackupPlan: AwsBackupS2Input!
}

input AwsBackupUpdateGlobalSettingsInput {
  GlobalSettings: JSON
}

type AwsBackupUpdateRecoveryPointLifecycleOutput {
  BackupVaultArn: String
  RecoveryPointArn: String
  Lifecycle: AwsBackupSa
  CalculatedLifecycle: AwsBackupS1y
}

input AwsBackupUpdateRecoveryPointLifecycleInput {
  BackupVaultName: String!
  RecoveryPointArn: String!
  Lifecycle: AwsBackupSaInput
}

input AwsBackupUpdateRegionSettingsInput {
  ResourceTypeOptInPreference: JSON
}

"""AWS Batch (2016-08-10)"""
type AwsBatch {
  cancelJob(input: AwsBatchCancelJobInput!, config: AwsConfig): JSON
  createComputeEnvironment(input: AwsBatchCreateComputeEnvironmentInput!, config: AwsConfig): AwsBatchCreateComputeEnvironmentOutput
  createJobQueue(input: AwsBatchCreateJobQueueInput!, config: AwsConfig): AwsBatchCreateJobQueueOutput
  deleteComputeEnvironment(input: AwsBatchDeleteComputeEnvironmentInput!, config: AwsConfig): JSON
  deleteJobQueue(input: AwsBatchDeleteJobQueueInput!, config: AwsConfig): JSON
  deregisterJobDefinition(input: AwsBatchDeregisterJobDefinitionInput!, config: AwsConfig): JSON
  describeComputeEnvironments(input: AwsBatchDescribeComputeEnvironmentsInput, config: AwsConfig): AwsBatchDescribeComputeEnvironmentsOutput
  describeJobDefinitions(input: AwsBatchDescribeJobDefinitionsInput, config: AwsConfig): AwsBatchDescribeJobDefinitionsOutput
  describeJobQueues(input: AwsBatchDescribeJobQueuesInput, config: AwsConfig): AwsBatchDescribeJobQueuesOutput
  describeJobs(input: AwsBatchDescribeJobsInput!, config: AwsConfig): AwsBatchDescribeJobsOutput
  listJobs(input: AwsBatchListJobsInput, config: AwsConfig): AwsBatchListJobsOutput
  listTagsForResource(input: AwsBatchListTagsForResourceInput!, config: AwsConfig): AwsBatchListTagsForResourceOutput
  registerJobDefinition(input: AwsBatchRegisterJobDefinitionInput!, config: AwsConfig): AwsBatchRegisterJobDefinitionOutput
  submitJob(input: AwsBatchSubmitJobInput!, config: AwsConfig): AwsBatchSubmitJobOutput
  tagResource(input: AwsBatchTagResourceInput!, config: AwsConfig): JSON
  terminateJob(input: AwsBatchTerminateJobInput!, config: AwsConfig): JSON
  untagResource(input: AwsBatchUntagResourceInput!, config: AwsConfig): JSON
  updateComputeEnvironment(input: AwsBatchUpdateComputeEnvironmentInput!, config: AwsConfig): AwsBatchUpdateComputeEnvironmentOutput
  updateJobQueue(input: AwsBatchUpdateJobQueueInput!, config: AwsConfig): AwsBatchUpdateJobQueueOutput
}

input AwsBatchCancelJobInput {
  jobId: String!
  reason: String!
}

type AwsBatchCreateComputeEnvironmentOutput {
  computeEnvironmentName: String
  computeEnvironmentArn: String
}

input AwsBatchCreateComputeEnvironmentInput {
  computeEnvironmentName: String!
  type: String!
  state: String
  computeResources: AwsBatchS7Input
  serviceRole: String
  tags: JSON
}

input AwsBatchS7Input {
  type: String!
  allocationStrategy: String
  minvCpus: Int
  maxvCpus: Int!
  desiredvCpus: Int
  instanceTypes: [String]
  imageId: String
  subnets: [String]!
  securityGroupIds: [String]
  ec2KeyPair: String
  instanceRole: String
  tags: JSON
  placementGroup: String
  bidPercentage: Int
  spotIamFleetRole: String
  launchTemplate: AwsBatchS7LaunchTemplateInput
  ec2Configuration: [AwsBatchS7Ec2ConfigurationInput]
}

input AwsBatchS7LaunchTemplateInput {
  launchTemplateId: String
  launchTemplateName: String
  version: String
}

input AwsBatchS7Ec2ConfigurationInput {
  imageType: String!
  imageIdOverride: String
}

type AwsBatchCreateJobQueueOutput {
  jobQueueName: String!
  jobQueueArn: String!
}

input AwsBatchCreateJobQueueInput {
  jobQueueName: String!
  state: String
  priority: Int!
  computeEnvironmentOrder: [AwsBatchSoInput]!
  tags: JSON
}

input AwsBatchSoInput {
  order: Int!
  computeEnvironment: String!
}

input AwsBatchDeleteComputeEnvironmentInput {
  computeEnvironment: String!
}

input AwsBatchDeleteJobQueueInput {
  jobQueue: String!
}

input AwsBatchDeregisterJobDefinitionInput {
  jobDefinition: String!
}

type AwsBatchDescribeComputeEnvironmentsOutput {
  computeEnvironments: [AwsBatchDescribeComputeEnvironmentsOutputComputeEnvironments]
  nextToken: String
}

type AwsBatchDescribeComputeEnvironmentsOutputComputeEnvironments {
  computeEnvironmentName: String!
  computeEnvironmentArn: String!
  ecsClusterArn: String!
  tags: JSON
  type: String
  state: String
  status: String
  statusReason: String
  computeResources: AwsBatchS7
  serviceRole: String
}

type AwsBatchS7 {
  type: String!
  allocationStrategy: String
  minvCpus: Int
  maxvCpus: Int!
  desiredvCpus: Int
  instanceTypes: [String]
  imageId: String
  subnets: [String]!
  securityGroupIds: [String]
  ec2KeyPair: String
  instanceRole: String
  tags: JSON
  placementGroup: String
  bidPercentage: Int
  spotIamFleetRole: String
  launchTemplate: AwsBatchS7LaunchTemplate
  ec2Configuration: [AwsBatchS7Ec2Configuration]
}

type AwsBatchS7LaunchTemplate {
  launchTemplateId: String
  launchTemplateName: String
  version: String
}

type AwsBatchS7Ec2Configuration {
  imageType: String!
  imageIdOverride: String
}

input AwsBatchDescribeComputeEnvironmentsInput {
  computeEnvironments: [String]
  maxResults: Int
  nextToken: String
}

type AwsBatchDescribeJobDefinitionsOutput {
  jobDefinitions: [AwsBatchDescribeJobDefinitionsOutputJobDefinitions]
  nextToken: String
}

type AwsBatchDescribeJobDefinitionsOutputJobDefinitions {
  jobDefinitionName: String!
  jobDefinitionArn: String!
  revision: Int!
  status: String
  type: String!
  parameters: JSON
  retryStrategy: AwsBatchS17
  containerProperties: AwsBatchS1b
  timeout: AwsBatchS28
  nodeProperties: AwsBatchS29
  tags: JSON
  propagateTags: Boolean
  platformCapabilities: [String]
}

type AwsBatchS17 {
  attempts: Int
  evaluateOnExit: [AwsBatchS17EvaluateOnExit]
}

type AwsBatchS17EvaluateOnExit {
  onStatusReason: String
  onReason: String
  onExitCode: String
  action: String!
}

type AwsBatchS1b {
  image: String
  vcpus: Int
  memory: Int
  command: [String]
  jobRoleArn: String
  executionRoleArn: String
  volumes: [AwsBatchS1c]
  environment: [AwsBatchS1j]
  mountPoints: [AwsBatchS1l]
  readonlyRootFilesystem: Boolean
  privileged: Boolean
  ulimits: [AwsBatchS1o]
  user: String
  instanceType: String
  resourceRequirements: [AwsBatchS1q]
  linuxParameters: AwsBatchS1t
  logConfiguration: AwsBatchS20
  secrets: [AwsBatchS23]
  networkConfiguration: AwsBatchS25
  fargatePlatformConfiguration: AwsBatchS27
}

type AwsBatchS1c {
  host: AwsBatchS1cHost
  name: String
  efsVolumeConfiguration: AwsBatchS1cEfsVolumeConfiguration
}

type AwsBatchS1cHost {
  sourcePath: String
}

type AwsBatchS1cEfsVolumeConfiguration {
  fileSystemId: String!
  rootDirectory: String
  transitEncryption: String
  transitEncryptionPort: Int
  authorizationConfig: AwsBatchS1cEfsVolumeConfigurationAuthorizationConfig
}

type AwsBatchS1cEfsVolumeConfigurationAuthorizationConfig {
  accessPointId: String
  iam: String
}

type AwsBatchS1j {
  name: String
  value: String
}

type AwsBatchS1l {
  containerPath: String
  readOnly: Boolean
  sourceVolume: String
}

type AwsBatchS1o {
  hardLimit: Int!
  name: String!
  softLimit: Int!
}

type AwsBatchS1q {
  value: String!
  type: String!
}

type AwsBatchS1t {
  devices: [AwsBatchS1tDevices]
  initProcessEnabled: Boolean
  sharedMemorySize: Int
  tmpfs: [AwsBatchS1tTmpfs]
  maxSwap: Int
  swappiness: Int
}

type AwsBatchS1tDevices {
  hostPath: String!
  containerPath: String
  permissions: [String]
}

type AwsBatchS1tTmpfs {
  containerPath: String!
  size: Int!
  mountOptions: [String]
}

type AwsBatchS20 {
  logDriver: String!
  options: JSON
  secretOptions: [AwsBatchS23]
}

type AwsBatchS23 {
  name: String!
  valueFrom: String!
}

type AwsBatchS25 {
  assignPublicIp: String
}

type AwsBatchS27 {
  platformVersion: String
}

type AwsBatchS28 {
  attemptDurationSeconds: Int
}

type AwsBatchS29 {
  numNodes: Int!
  mainNode: Int!
  nodeRangeProperties: [AwsBatchS29NodeRangeProperties]!
}

type AwsBatchS29NodeRangeProperties {
  targetNodes: String!
  container: AwsBatchS1b
}

input AwsBatchDescribeJobDefinitionsInput {
  jobDefinitions: [String]
  maxResults: Int
  jobDefinitionName: String
  status: String
  nextToken: String
}

type AwsBatchDescribeJobQueuesOutput {
  jobQueues: [AwsBatchDescribeJobQueuesOutputJobQueues]
  nextToken: String
}

type AwsBatchDescribeJobQueuesOutputJobQueues {
  jobQueueName: String!
  jobQueueArn: String!
  state: String!
  status: String
  statusReason: String
  priority: Int!
  computeEnvironmentOrder: [AwsBatchSo]!
  tags: JSON
}

type AwsBatchSo {
  order: Int!
  computeEnvironment: String!
}

input AwsBatchDescribeJobQueuesInput {
  jobQueues: [String]
  maxResults: Int
  nextToken: String
}

type AwsBatchDescribeJobsOutput {
  jobs: [AwsBatchDescribeJobsOutputJobs]
}

type AwsBatchDescribeJobsOutputJobs {
  jobArn: String
  jobName: String!
  jobId: String!
  jobQueue: String!
  status: String!
  attempts: [AwsBatchDescribeJobsOutputJobsAttempts]
  statusReason: String
  createdAt: JSON
  retryStrategy: AwsBatchS17
  startedAt: JSON!
  stoppedAt: JSON
  dependsOn: [AwsBatchS2u]
  jobDefinition: String!
  parameters: JSON
  container: AwsBatchDescribeJobsOutputJobsContainer
  nodeDetails: AwsBatchDescribeJobsOutputJobsNodeDetails
  nodeProperties: AwsBatchS29
  arrayProperties: AwsBatchDescribeJobsOutputJobsArrayProperties
  timeout: AwsBatchS28
  tags: JSON
  propagateTags: Boolean
  platformCapabilities: [String]
}

type AwsBatchDescribeJobsOutputJobsAttempts {
  container: AwsBatchDescribeJobsOutputJobsAttemptsContainer
  startedAt: JSON
  stoppedAt: JSON
  statusReason: String
}

type AwsBatchDescribeJobsOutputJobsAttemptsContainer {
  containerInstanceArn: String
  taskArn: String
  exitCode: Int
  reason: String
  logStreamName: String
  networkInterfaces: [AwsBatchS2r]
}

type AwsBatchS2r {
  attachmentId: String
  ipv6Address: String
  privateIpv4Address: String
}

type AwsBatchS2u {
  jobId: String
  type: String
}

type AwsBatchDescribeJobsOutputJobsContainer {
  image: String
  vcpus: Int
  memory: Int
  command: [String]
  jobRoleArn: String
  executionRoleArn: String
  volumes: [AwsBatchS1c]
  environment: [AwsBatchS1j]
  mountPoints: [AwsBatchS1l]
  readonlyRootFilesystem: Boolean
  ulimits: [AwsBatchS1o]
  privileged: Boolean
  user: String
  exitCode: Int
  reason: String
  containerInstanceArn: String
  taskArn: String
  logStreamName: String
  instanceType: String
  networkInterfaces: [AwsBatchS2r]
  resourceRequirements: [AwsBatchS1q]
  linuxParameters: AwsBatchS1t
  logConfiguration: AwsBatchS20
  secrets: [AwsBatchS23]
  networkConfiguration: AwsBatchS25
  fargatePlatformConfiguration: AwsBatchS27
}

type AwsBatchDescribeJobsOutputJobsNodeDetails {
  nodeIndex: Int
  isMainNode: Boolean
}

type AwsBatchDescribeJobsOutputJobsArrayProperties {
  statusSummary: JSON
  size: Int
  index: Int
}

input AwsBatchDescribeJobsInput {
  jobs: [String]!
}

type AwsBatchListJobsOutput {
  jobSummaryList: [AwsBatchListJobsOutputJobSummaryList]!
  nextToken: String
}

type AwsBatchListJobsOutputJobSummaryList {
  jobArn: String
  jobId: String!
  jobName: String!
  createdAt: JSON
  status: String
  statusReason: String
  startedAt: JSON
  stoppedAt: JSON
  container: AwsBatchListJobsOutputJobSummaryListContainer
  arrayProperties: AwsBatchListJobsOutputJobSummaryListArrayProperties
  nodeProperties: AwsBatchListJobsOutputJobSummaryListNodeProperties
}

type AwsBatchListJobsOutputJobSummaryListContainer {
  exitCode: Int
  reason: String
}

type AwsBatchListJobsOutputJobSummaryListArrayProperties {
  size: Int
  index: Int
}

type AwsBatchListJobsOutputJobSummaryListNodeProperties {
  isMainNode: Boolean
  numNodes: Int
  nodeIndex: Int
}

input AwsBatchListJobsInput {
  jobQueue: String
  arrayJobId: String
  multiNodeJobId: String
  jobStatus: String
  maxResults: Int
  nextToken: String
}

type AwsBatchListTagsForResourceOutput {
  tags: JSON
}

input AwsBatchListTagsForResourceInput {
  resourceArn: String!
}

type AwsBatchRegisterJobDefinitionOutput {
  jobDefinitionName: String!
  jobDefinitionArn: String!
  revision: Int!
}

input AwsBatchRegisterJobDefinitionInput {
  jobDefinitionName: String!
  type: String!
  parameters: JSON
  containerProperties: AwsBatchS1bInput
  nodeProperties: AwsBatchS29Input
  retryStrategy: AwsBatchS17Input
  propagateTags: Boolean
  timeout: AwsBatchS28Input
  tags: JSON
  platformCapabilities: [String]
}

input AwsBatchS1bInput {
  image: String
  vcpus: Int
  memory: Int
  command: [String]
  jobRoleArn: String
  executionRoleArn: String
  volumes: [AwsBatchS1cInput]
  environment: [AwsBatchS1jInput]
  mountPoints: [AwsBatchS1lInput]
  readonlyRootFilesystem: Boolean
  privileged: Boolean
  ulimits: [AwsBatchS1oInput]
  user: String
  instanceType: String
  resourceRequirements: [AwsBatchS1qInput]
  linuxParameters: AwsBatchS1tInput
  logConfiguration: AwsBatchS20Input
  secrets: [AwsBatchS23Input]
  networkConfiguration: AwsBatchS25Input
  fargatePlatformConfiguration: AwsBatchS27Input
}

input AwsBatchS1cInput {
  host: AwsBatchS1cHostInput
  name: String
  efsVolumeConfiguration: AwsBatchS1cEfsVolumeConfigurationInput
}

input AwsBatchS1cHostInput {
  sourcePath: String
}

input AwsBatchS1cEfsVolumeConfigurationInput {
  fileSystemId: String!
  rootDirectory: String
  transitEncryption: String
  transitEncryptionPort: Int
  authorizationConfig: AwsBatchS1cEfsVolumeConfigurationAuthorizationConfigInput
}

input AwsBatchS1cEfsVolumeConfigurationAuthorizationConfigInput {
  accessPointId: String
  iam: String
}

input AwsBatchS1jInput {
  name: String
  value: String
}

input AwsBatchS1lInput {
  containerPath: String
  readOnly: Boolean
  sourceVolume: String
}

input AwsBatchS1oInput {
  hardLimit: Int!
  name: String!
  softLimit: Int!
}

input AwsBatchS1qInput {
  value: String!
  type: String!
}

input AwsBatchS1tInput {
  devices: [AwsBatchS1tDevicesInput]
  initProcessEnabled: Boolean
  sharedMemorySize: Int
  tmpfs: [AwsBatchS1tTmpfsInput]
  maxSwap: Int
  swappiness: Int
}

input AwsBatchS1tDevicesInput {
  hostPath: String!
  containerPath: String
  permissions: [String]
}

input AwsBatchS1tTmpfsInput {
  containerPath: String!
  size: Int!
  mountOptions: [String]
}

input AwsBatchS20Input {
  logDriver: String!
  options: JSON
  secretOptions: [AwsBatchS23Input]
}

input AwsBatchS23Input {
  name: String!
  valueFrom: String!
}

input AwsBatchS25Input {
  assignPublicIp: String
}

input AwsBatchS27Input {
  platformVersion: String
}

input AwsBatchS29Input {
  numNodes: Int!
  mainNode: Int!
  nodeRangeProperties: [AwsBatchS29NodeRangePropertiesInput]!
}

input AwsBatchS29NodeRangePropertiesInput {
  targetNodes: String!
  container: AwsBatchS1bInput
}

input AwsBatchS17Input {
  attempts: Int
  evaluateOnExit: [AwsBatchS17EvaluateOnExitInput]
}

input AwsBatchS17EvaluateOnExitInput {
  onStatusReason: String
  onReason: String
  onExitCode: String
  action: String!
}

input AwsBatchS28Input {
  attemptDurationSeconds: Int
}

type AwsBatchSubmitJobOutput {
  jobArn: String
  jobName: String!
  jobId: String!
}

input AwsBatchSubmitJobInput {
  jobName: String!
  jobQueue: String!
  arrayProperties: AwsBatchSubmitJobArrayPropertiesInput
  dependsOn: [AwsBatchS2uInput]
  jobDefinition: String!
  parameters: JSON
  containerOverrides: AwsBatchS3fInput
  nodeOverrides: AwsBatchSubmitJobNodeOverridesInput
  retryStrategy: AwsBatchS17Input
  propagateTags: Boolean
  timeout: AwsBatchS28Input
  tags: JSON
}

input AwsBatchSubmitJobArrayPropertiesInput {
  size: Int
}

input AwsBatchS2uInput {
  jobId: String
  type: String
}

input AwsBatchS3fInput {
  vcpus: Int
  memory: Int
  command: [String]
  instanceType: String
  environment: [AwsBatchS1jInput]
  resourceRequirements: [AwsBatchS1qInput]
}

input AwsBatchSubmitJobNodeOverridesInput {
  numNodes: Int
  nodePropertyOverrides: [AwsBatchSubmitJobNodeOverridesNodePropertyOverridesInput]
}

input AwsBatchSubmitJobNodeOverridesNodePropertyOverridesInput {
  targetNodes: String!
  containerOverrides: AwsBatchS3fInput
}

input AwsBatchTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsBatchTerminateJobInput {
  jobId: String!
  reason: String!
}

input AwsBatchUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsBatchUpdateComputeEnvironmentOutput {
  computeEnvironmentName: String
  computeEnvironmentArn: String
}

input AwsBatchUpdateComputeEnvironmentInput {
  computeEnvironment: String!
  state: String
  computeResources: AwsBatchUpdateComputeEnvironmentComputeResourcesInput
  serviceRole: String
}

input AwsBatchUpdateComputeEnvironmentComputeResourcesInput {
  minvCpus: Int
  maxvCpus: Int
  desiredvCpus: Int
  subnets: [String]
  securityGroupIds: [String]
}

type AwsBatchUpdateJobQueueOutput {
  jobQueueName: String
  jobQueueArn: String
}

input AwsBatchUpdateJobQueueInput {
  jobQueue: String!
  state: String
  priority: Int
  computeEnvironmentOrder: [AwsBatchSoInput]
}

"""Braket (2019-09-01)"""
type AwsBraket {
  cancelQuantumTask(input: AwsBraketCancelQuantumTaskInput!, config: AwsConfig): AwsBraketCancelQuantumTaskOutput
  createQuantumTask(input: AwsBraketCreateQuantumTaskInput!, config: AwsConfig): AwsBraketCreateQuantumTaskOutput
  getDevice(input: AwsBraketGetDeviceInput!, config: AwsConfig): AwsBraketGetDeviceOutput
  getQuantumTask(input: AwsBraketGetQuantumTaskInput!, config: AwsConfig): AwsBraketGetQuantumTaskOutput
  listTagsForResource(input: AwsBraketListTagsForResourceInput!, config: AwsConfig): AwsBraketListTagsForResourceOutput
  searchDevices(input: AwsBraketSearchDevicesInput!, config: AwsConfig): AwsBraketSearchDevicesOutput
  searchQuantumTasks(input: AwsBraketSearchQuantumTasksInput!, config: AwsConfig): AwsBraketSearchQuantumTasksOutput
  tagResource(input: AwsBraketTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsBraketUntagResourceInput!, config: AwsConfig): JSON
}

type AwsBraketCancelQuantumTaskOutput {
  cancellationStatus: String!
  quantumTaskArn: String!
}

input AwsBraketCancelQuantumTaskInput {
  clientToken: String!
  quantumTaskArn: String!
}

type AwsBraketCreateQuantumTaskOutput {
  quantumTaskArn: String!
}

input AwsBraketCreateQuantumTaskInput {
  action: String!
  clientToken: String!
  deviceArn: String!
  deviceParameters: String
  outputS3Bucket: String!
  outputS3KeyPrefix: String!
  shots: JSON!
  tags: JSON
}

type AwsBraketGetDeviceOutput {
  deviceArn: String!
  deviceCapabilities: String!
  deviceName: String!
  deviceStatus: String!
  deviceType: String!
  providerName: String!
}

input AwsBraketGetDeviceInput {
  deviceArn: String!
}

type AwsBraketGetQuantumTaskOutput {
  createdAt: Date!
  deviceArn: String!
  deviceParameters: String!
  endedAt: Date
  failureReason: String
  outputS3Bucket: String!
  outputS3Directory: String!
  quantumTaskArn: String!
  shots: JSON!
  status: String!
  tags: JSON
}

input AwsBraketGetQuantumTaskInput {
  quantumTaskArn: String!
}

type AwsBraketListTagsForResourceOutput {
  tags: JSON
}

input AwsBraketListTagsForResourceInput {
  resourceArn: String!
}

type AwsBraketSearchDevicesOutput {
  devices: [AwsBraketSearchDevicesOutputDevices]!
  nextToken: String
}

type AwsBraketSearchDevicesOutputDevices {
  deviceArn: String!
  deviceName: String!
  deviceStatus: String!
  deviceType: String!
  providerName: String!
}

input AwsBraketSearchDevicesInput {
  filters: [AwsBraketSearchDevicesFiltersInput]!
  maxResults: Int
  nextToken: String
}

input AwsBraketSearchDevicesFiltersInput {
  name: String!
  values: [String]!
}

type AwsBraketSearchQuantumTasksOutput {
  nextToken: String
  quantumTasks: [AwsBraketSearchQuantumTasksOutputQuantumTasks]!
}

type AwsBraketSearchQuantumTasksOutputQuantumTasks {
  createdAt: Date!
  deviceArn: String!
  endedAt: Date
  outputS3Bucket: String!
  outputS3Directory: String!
  quantumTaskArn: String!
  shots: JSON!
  status: String!
  tags: JSON
}

input AwsBraketSearchQuantumTasksInput {
  filters: [AwsBraketSearchQuantumTasksFiltersInput]!
  maxResults: Int
  nextToken: String
}

input AwsBraketSearchQuantumTasksFiltersInput {
  name: String!
  operator: String!
  values: [String]!
}

input AwsBraketTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsBraketUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""AWS Budgets (2016-10-20)"""
type AwsBudgets {
  createBudget(input: AwsBudgetsCreateBudgetInput!, config: AwsConfig): JSON
  createBudgetAction(input: AwsBudgetsCreateBudgetActionInput!, config: AwsConfig): AwsBudgetsCreateBudgetActionOutput
  createNotification(input: AwsBudgetsCreateNotificationInput!, config: AwsConfig): JSON
  createSubscriber(input: AwsBudgetsCreateSubscriberInput!, config: AwsConfig): JSON
  deleteBudget(input: AwsBudgetsDeleteBudgetInput!, config: AwsConfig): JSON
  deleteBudgetAction(input: AwsBudgetsDeleteBudgetActionInput!, config: AwsConfig): AwsBudgetsDeleteBudgetActionOutput
  deleteNotification(input: AwsBudgetsDeleteNotificationInput!, config: AwsConfig): JSON
  deleteSubscriber(input: AwsBudgetsDeleteSubscriberInput!, config: AwsConfig): JSON
  describeBudget(input: AwsBudgetsDescribeBudgetInput!, config: AwsConfig): AwsBudgetsDescribeBudgetOutput
  describeBudgetAction(input: AwsBudgetsDescribeBudgetActionInput!, config: AwsConfig): AwsBudgetsDescribeBudgetActionOutput
  describeBudgetActionHistories(input: AwsBudgetsDescribeBudgetActionHistoriesInput!, config: AwsConfig): AwsBudgetsDescribeBudgetActionHistoriesOutput
  describeBudgetActionsForAccount(input: AwsBudgetsDescribeBudgetActionsForAccountInput!, config: AwsConfig): AwsBudgetsDescribeBudgetActionsForAccountOutput
  describeBudgetActionsForBudget(input: AwsBudgetsDescribeBudgetActionsForBudgetInput!, config: AwsConfig): AwsBudgetsDescribeBudgetActionsForBudgetOutput
  describeBudgetPerformanceHistory(input: AwsBudgetsDescribeBudgetPerformanceHistoryInput!, config: AwsConfig): AwsBudgetsDescribeBudgetPerformanceHistoryOutput
  describeBudgets(input: AwsBudgetsDescribeBudgetsInput!, config: AwsConfig): AwsBudgetsDescribeBudgetsOutput
  describeNotificationsForBudget(input: AwsBudgetsDescribeNotificationsForBudgetInput!, config: AwsConfig): AwsBudgetsDescribeNotificationsForBudgetOutput
  describeSubscribersForNotification(input: AwsBudgetsDescribeSubscribersForNotificationInput!, config: AwsConfig): AwsBudgetsDescribeSubscribersForNotificationOutput
  executeBudgetAction(input: AwsBudgetsExecuteBudgetActionInput!, config: AwsConfig): AwsBudgetsExecuteBudgetActionOutput
  updateBudget(input: AwsBudgetsUpdateBudgetInput!, config: AwsConfig): JSON
  updateBudgetAction(input: AwsBudgetsUpdateBudgetActionInput!, config: AwsConfig): AwsBudgetsUpdateBudgetActionOutput
  updateNotification(input: AwsBudgetsUpdateNotificationInput!, config: AwsConfig): JSON
  updateSubscriber(input: AwsBudgetsUpdateSubscriberInput!, config: AwsConfig): JSON
}

input AwsBudgetsCreateBudgetInput {
  AccountId: String!
  Budget: AwsBudgetsS3Input!
  NotificationsWithSubscribers: [AwsBudgetsCreateBudgetNotificationsWithSubscribersInput]
}

input AwsBudgetsS3Input {
  BudgetName: String!
  BudgetLimit: AwsBudgetsS5Input
  PlannedBudgetLimits: JSON
  CostFilters: JSON
  CostTypes: AwsBudgetsScInput
  TimeUnit: String!
  TimePeriod: AwsBudgetsSfInput
  CalculatedSpend: AwsBudgetsS3CalculatedSpendInput
  BudgetType: String!
  LastUpdatedTime: Date
}

input AwsBudgetsS5Input {
  Amount: String!
  Unit: String!
}

input AwsBudgetsScInput {
  IncludeTax: Boolean
  IncludeSubscription: Boolean
  UseBlended: Boolean
  IncludeRefund: Boolean
  IncludeCredit: Boolean
  IncludeUpfront: Boolean
  IncludeRecurring: Boolean
  IncludeOtherSubscription: Boolean
  IncludeSupport: Boolean
  IncludeDiscount: Boolean
  UseAmortized: Boolean
}

input AwsBudgetsSfInput {
  Start: Date
  End: Date
}

input AwsBudgetsS3CalculatedSpendInput {
  ActualSpend: AwsBudgetsS5Input!
  ForecastedSpend: AwsBudgetsS5Input
}

input AwsBudgetsCreateBudgetNotificationsWithSubscribersInput {
  Notification: AwsBudgetsSlInput!
  Subscribers: [AwsBudgetsSsInput]!
}

input AwsBudgetsSlInput {
  NotificationType: String!
  ComparisonOperator: String!
  Threshold: JSON!
  ThresholdType: String
  NotificationState: String
}

input AwsBudgetsSsInput {
  SubscriptionType: String!
  Address: String!
}

type AwsBudgetsCreateBudgetActionOutput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
}

input AwsBudgetsCreateBudgetActionInput {
  AccountId: String!
  BudgetName: String!
  NotificationType: String!
  ActionType: String!
  ActionThreshold: AwsBudgetsSyInput!
  Definition: AwsBudgetsSzInput!
  ExecutionRoleArn: String!
  ApprovalModel: String!
  Subscribers: [AwsBudgetsSsInput]!
}

input AwsBudgetsSyInput {
  ActionThresholdValue: JSON!
  ActionThresholdType: String!
}

input AwsBudgetsSzInput {
  IamActionDefinition: AwsBudgetsSzIamActionDefinitionInput
  ScpActionDefinition: AwsBudgetsSzScpActionDefinitionInput
  SsmActionDefinition: AwsBudgetsSzSsmActionDefinitionInput
}

input AwsBudgetsSzIamActionDefinitionInput {
  PolicyArn: String!
  Roles: [String]
  Groups: [String]
  Users: [String]
}

input AwsBudgetsSzScpActionDefinitionInput {
  PolicyId: String!
  TargetIds: [String]!
}

input AwsBudgetsSzSsmActionDefinitionInput {
  ActionSubType: String!
  Region: String!
  InstanceIds: [String]!
}

input AwsBudgetsCreateNotificationInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
  Subscribers: [AwsBudgetsSsInput]!
}

input AwsBudgetsCreateSubscriberInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
  Subscriber: AwsBudgetsSsInput!
}

input AwsBudgetsDeleteBudgetInput {
  AccountId: String!
  BudgetName: String!
}

type AwsBudgetsDeleteBudgetActionOutput {
  AccountId: String!
  BudgetName: String!
  Action: AwsBudgetsS1t!
}

type AwsBudgetsS1t {
  ActionId: String!
  BudgetName: String!
  NotificationType: String!
  ActionType: String!
  ActionThreshold: AwsBudgetsSy!
  Definition: AwsBudgetsSz!
  ExecutionRoleArn: String!
  ApprovalModel: String!
  Status: String!
  Subscribers: [AwsBudgetsSs]!
}

type AwsBudgetsSy {
  ActionThresholdValue: JSON!
  ActionThresholdType: String!
}

type AwsBudgetsSz {
  IamActionDefinition: AwsBudgetsSzIamActionDefinition
  ScpActionDefinition: AwsBudgetsSzScpActionDefinition
  SsmActionDefinition: AwsBudgetsSzSsmActionDefinition
}

type AwsBudgetsSzIamActionDefinition {
  PolicyArn: String!
  Roles: [String]
  Groups: [String]
  Users: [String]
}

type AwsBudgetsSzScpActionDefinition {
  PolicyId: String!
  TargetIds: [String]!
}

type AwsBudgetsSzSsmActionDefinition {
  ActionSubType: String!
  Region: String!
  InstanceIds: [String]!
}

type AwsBudgetsSs {
  SubscriptionType: String!
  Address: String!
}

input AwsBudgetsDeleteBudgetActionInput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
}

input AwsBudgetsDeleteNotificationInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
}

input AwsBudgetsDeleteSubscriberInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
  Subscriber: AwsBudgetsSsInput!
}

type AwsBudgetsDescribeBudgetOutput {
  Budget: AwsBudgetsS3
}

type AwsBudgetsS3 {
  BudgetName: String!
  BudgetLimit: AwsBudgetsS5
  PlannedBudgetLimits: JSON
  CostFilters: JSON
  CostTypes: AwsBudgetsSc
  TimeUnit: String!
  TimePeriod: AwsBudgetsSf
  CalculatedSpend: AwsBudgetsS3CalculatedSpend
  BudgetType: String!
  LastUpdatedTime: Date
}

type AwsBudgetsS5 {
  Amount: String!
  Unit: String!
}

type AwsBudgetsSc {
  IncludeTax: Boolean
  IncludeSubscription: Boolean
  UseBlended: Boolean
  IncludeRefund: Boolean
  IncludeCredit: Boolean
  IncludeUpfront: Boolean
  IncludeRecurring: Boolean
  IncludeOtherSubscription: Boolean
  IncludeSupport: Boolean
  IncludeDiscount: Boolean
  UseAmortized: Boolean
}

type AwsBudgetsSf {
  Start: Date
  End: Date
}

type AwsBudgetsS3CalculatedSpend {
  ActualSpend: AwsBudgetsS5!
  ForecastedSpend: AwsBudgetsS5
}

input AwsBudgetsDescribeBudgetInput {
  AccountId: String!
  BudgetName: String!
}

type AwsBudgetsDescribeBudgetActionOutput {
  AccountId: String!
  BudgetName: String!
  Action: AwsBudgetsS1t!
}

input AwsBudgetsDescribeBudgetActionInput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
}

type AwsBudgetsDescribeBudgetActionHistoriesOutput {
  ActionHistories: [AwsBudgetsDescribeBudgetActionHistoriesOutputActionHistories]!
  NextToken: String
}

type AwsBudgetsDescribeBudgetActionHistoriesOutputActionHistories {
  Timestamp: Date!
  Status: String!
  EventType: String!
  ActionHistoryDetails: AwsBudgetsDescribeBudgetActionHistoriesOutputActionHistoriesActionHistoryDetails!
}

type AwsBudgetsDescribeBudgetActionHistoriesOutputActionHistoriesActionHistoryDetails {
  Message: String!
  Action: AwsBudgetsS1t!
}

input AwsBudgetsDescribeBudgetActionHistoriesInput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
  TimePeriod: AwsBudgetsSfInput
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeBudgetActionsForAccountOutput {
  Actions: [AwsBudgetsS1t]!
  NextToken: String
}

input AwsBudgetsDescribeBudgetActionsForAccountInput {
  AccountId: String!
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeBudgetActionsForBudgetOutput {
  Actions: [AwsBudgetsS1t]!
  NextToken: String
}

input AwsBudgetsDescribeBudgetActionsForBudgetInput {
  AccountId: String!
  BudgetName: String!
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeBudgetPerformanceHistoryOutput {
  BudgetPerformanceHistory: AwsBudgetsDescribeBudgetPerformanceHistoryOutputBudgetPerformanceHistory
  NextToken: String
}

type AwsBudgetsDescribeBudgetPerformanceHistoryOutputBudgetPerformanceHistory {
  BudgetName: String
  BudgetType: String
  CostFilters: JSON
  CostTypes: AwsBudgetsSc
  TimeUnit: String
  BudgetedAndActualAmountsList: [AwsBudgetsDescribeBudgetPerformanceHistoryOutputBudgetPerformanceHistoryBudgetedAndActualAmountsList]
}

type AwsBudgetsDescribeBudgetPerformanceHistoryOutputBudgetPerformanceHistoryBudgetedAndActualAmountsList {
  BudgetedAmount: AwsBudgetsS5
  ActualAmount: AwsBudgetsS5
  TimePeriod: AwsBudgetsSf
}

input AwsBudgetsDescribeBudgetPerformanceHistoryInput {
  AccountId: String!
  BudgetName: String!
  TimePeriod: AwsBudgetsSfInput
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeBudgetsOutput {
  Budgets: [AwsBudgetsS3]
  NextToken: String
}

input AwsBudgetsDescribeBudgetsInput {
  AccountId: String!
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeNotificationsForBudgetOutput {
  Notifications: [AwsBudgetsSl]
  NextToken: String
}

type AwsBudgetsSl {
  NotificationType: String!
  ComparisonOperator: String!
  Threshold: JSON!
  ThresholdType: String
  NotificationState: String
}

input AwsBudgetsDescribeNotificationsForBudgetInput {
  AccountId: String!
  BudgetName: String!
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsDescribeSubscribersForNotificationOutput {
  Subscribers: [AwsBudgetsSs]
  NextToken: String
}

input AwsBudgetsDescribeSubscribersForNotificationInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
  MaxResults: Int
  NextToken: String
}

type AwsBudgetsExecuteBudgetActionOutput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
  ExecutionType: String!
}

input AwsBudgetsExecuteBudgetActionInput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
  ExecutionType: String!
}

input AwsBudgetsUpdateBudgetInput {
  AccountId: String!
  NewBudget: AwsBudgetsS3Input!
}

type AwsBudgetsUpdateBudgetActionOutput {
  AccountId: String!
  BudgetName: String!
  OldAction: AwsBudgetsS1t!
  NewAction: AwsBudgetsS1t!
}

input AwsBudgetsUpdateBudgetActionInput {
  AccountId: String!
  BudgetName: String!
  ActionId: String!
  NotificationType: String
  ActionThreshold: AwsBudgetsSyInput
  Definition: AwsBudgetsSzInput
  ExecutionRoleArn: String
  ApprovalModel: String
  Subscribers: [AwsBudgetsSsInput]
}

input AwsBudgetsUpdateNotificationInput {
  AccountId: String!
  BudgetName: String!
  OldNotification: AwsBudgetsSlInput!
  NewNotification: AwsBudgetsSlInput!
}

input AwsBudgetsUpdateSubscriberInput {
  AccountId: String!
  BudgetName: String!
  Notification: AwsBudgetsSlInput!
  OldSubscriber: AwsBudgetsSsInput!
  NewSubscriber: AwsBudgetsSsInput!
}

"""AWS Cost and Usage Report Service (2017-01-06)"""
type AwsCUR {
  deleteReportDefinition(input: AwsCURDeleteReportDefinitionInput, config: AwsConfig): AwsCURDeleteReportDefinitionOutput
  describeReportDefinitions(input: AwsCURDescribeReportDefinitionsInput, config: AwsConfig): AwsCURDescribeReportDefinitionsOutput
  modifyReportDefinition(input: AwsCURModifyReportDefinitionInput!, config: AwsConfig): JSON
  putReportDefinition(input: AwsCURPutReportDefinitionInput!, config: AwsConfig): JSON
}

type AwsCURDeleteReportDefinitionOutput {
  ResponseMessage: String
}

input AwsCURDeleteReportDefinitionInput {
  ReportName: String
}

type AwsCURDescribeReportDefinitionsOutput {
  ReportDefinitions: [AwsCURSa]
  NextToken: String
}

type AwsCURSa {
  ReportName: String!
  TimeUnit: String!
  Format: String!
  Compression: String!
  AdditionalSchemaElements: [String]!
  S3Bucket: String!
  S3Prefix: String!
  S3Region: String!
  AdditionalArtifacts: [String]
  RefreshClosedReports: Boolean
  ReportVersioning: String
  BillingViewArn: String
}

input AwsCURDescribeReportDefinitionsInput {
  MaxResults: Int
  NextToken: String
}

input AwsCURModifyReportDefinitionInput {
  ReportName: String!
  ReportDefinition: AwsCURSaInput!
}

input AwsCURSaInput {
  ReportName: String!
  TimeUnit: String!
  Format: String!
  Compression: String!
  AdditionalSchemaElements: [String]!
  S3Bucket: String!
  S3Prefix: String!
  S3Region: String!
  AdditionalArtifacts: [String]
  RefreshClosedReports: Boolean
  ReportVersioning: String
  BillingViewArn: String
}

input AwsCURPutReportDefinitionInput {
  ReportDefinition: AwsCURSaInput!
}

"""Amazon Chime (2018-05-01)"""
type AwsChime {
  associatePhoneNumberWithUser(input: AwsChimeAssociatePhoneNumberWithUserInput!, config: AwsConfig): JSON
  associatePhoneNumbersWithVoiceConnector(input: AwsChimeAssociatePhoneNumbersWithVoiceConnectorInput!, config: AwsConfig): AwsChimeAssociatePhoneNumbersWithVoiceConnectorOutput
  associatePhoneNumbersWithVoiceConnectorGroup(input: AwsChimeAssociatePhoneNumbersWithVoiceConnectorGroupInput!, config: AwsConfig): AwsChimeAssociatePhoneNumbersWithVoiceConnectorGroupOutput
  associateSigninDelegateGroupsWithAccount(input: AwsChimeAssociateSigninDelegateGroupsWithAccountInput!, config: AwsConfig): JSON
  batchCreateAttendee(input: AwsChimeBatchCreateAttendeeInput!, config: AwsConfig): AwsChimeBatchCreateAttendeeOutput
  batchCreateChannelMembership(input: AwsChimeBatchCreateChannelMembershipInput!, config: AwsConfig): AwsChimeBatchCreateChannelMembershipOutput
  batchCreateRoomMembership(input: AwsChimeBatchCreateRoomMembershipInput!, config: AwsConfig): AwsChimeBatchCreateRoomMembershipOutput
  batchDeletePhoneNumber(input: AwsChimeBatchDeletePhoneNumberInput!, config: AwsConfig): AwsChimeBatchDeletePhoneNumberOutput
  batchSuspendUser(input: AwsChimeBatchSuspendUserInput!, config: AwsConfig): AwsChimeBatchSuspendUserOutput
  batchUnsuspendUser(input: AwsChimeBatchUnsuspendUserInput!, config: AwsConfig): AwsChimeBatchUnsuspendUserOutput
  batchUpdatePhoneNumber(input: AwsChimeBatchUpdatePhoneNumberInput!, config: AwsConfig): AwsChimeBatchUpdatePhoneNumberOutput
  batchUpdateUser(input: AwsChimeBatchUpdateUserInput!, config: AwsConfig): AwsChimeBatchUpdateUserOutput
  createAccount(input: AwsChimeCreateAccountInput!, config: AwsConfig): AwsChimeCreateAccountOutput
  createAppInstance(input: AwsChimeCreateAppInstanceInput!, config: AwsConfig): AwsChimeCreateAppInstanceOutput
  createAppInstanceAdmin(input: AwsChimeCreateAppInstanceAdminInput!, config: AwsConfig): AwsChimeCreateAppInstanceAdminOutput
  createAppInstanceUser(input: AwsChimeCreateAppInstanceUserInput!, config: AwsConfig): AwsChimeCreateAppInstanceUserOutput
  createAttendee(input: AwsChimeCreateAttendeeInput!, config: AwsConfig): AwsChimeCreateAttendeeOutput
  createBot(input: AwsChimeCreateBotInput!, config: AwsConfig): AwsChimeCreateBotOutput
  createChannel(input: AwsChimeCreateChannelInput!, config: AwsConfig): AwsChimeCreateChannelOutput
  createChannelBan(input: AwsChimeCreateChannelBanInput!, config: AwsConfig): AwsChimeCreateChannelBanOutput
  createChannelMembership(input: AwsChimeCreateChannelMembershipInput!, config: AwsConfig): AwsChimeCreateChannelMembershipOutput
  createChannelModerator(input: AwsChimeCreateChannelModeratorInput!, config: AwsConfig): AwsChimeCreateChannelModeratorOutput
  createMeeting(input: AwsChimeCreateMeetingInput!, config: AwsConfig): AwsChimeCreateMeetingOutput
  createMeetingDialOut(input: AwsChimeCreateMeetingDialOutInput!, config: AwsConfig): AwsChimeCreateMeetingDialOutOutput
  createMeetingWithAttendees(input: AwsChimeCreateMeetingWithAttendeesInput!, config: AwsConfig): AwsChimeCreateMeetingWithAttendeesOutput
  createPhoneNumberOrder(input: AwsChimeCreatePhoneNumberOrderInput!, config: AwsConfig): AwsChimeCreatePhoneNumberOrderOutput
  createProxySession(input: AwsChimeCreateProxySessionInput!, config: AwsConfig): AwsChimeCreateProxySessionOutput
  createRoom(input: AwsChimeCreateRoomInput!, config: AwsConfig): AwsChimeCreateRoomOutput
  createRoomMembership(input: AwsChimeCreateRoomMembershipInput!, config: AwsConfig): AwsChimeCreateRoomMembershipOutput
  createSipMediaApplication(input: AwsChimeCreateSipMediaApplicationInput!, config: AwsConfig): AwsChimeCreateSipMediaApplicationOutput
  createSipMediaApplicationCall(input: AwsChimeCreateSipMediaApplicationCallInput!, config: AwsConfig): AwsChimeCreateSipMediaApplicationCallOutput
  createSipRule(input: AwsChimeCreateSipRuleInput!, config: AwsConfig): AwsChimeCreateSipRuleOutput
  createUser(input: AwsChimeCreateUserInput!, config: AwsConfig): AwsChimeCreateUserOutput
  createVoiceConnector(input: AwsChimeCreateVoiceConnectorInput!, config: AwsConfig): AwsChimeCreateVoiceConnectorOutput
  createVoiceConnectorGroup(input: AwsChimeCreateVoiceConnectorGroupInput!, config: AwsConfig): AwsChimeCreateVoiceConnectorGroupOutput
  deleteAccount(input: AwsChimeDeleteAccountInput!, config: AwsConfig): JSON
  deleteAppInstance(input: AwsChimeDeleteAppInstanceInput!, config: AwsConfig): JSON
  deleteAppInstanceAdmin(input: AwsChimeDeleteAppInstanceAdminInput!, config: AwsConfig): JSON
  deleteAppInstanceStreamingConfigurations(input: AwsChimeDeleteAppInstanceStreamingConfigurationsInput!, config: AwsConfig): JSON
  deleteAppInstanceUser(input: AwsChimeDeleteAppInstanceUserInput!, config: AwsConfig): JSON
  deleteAttendee(input: AwsChimeDeleteAttendeeInput!, config: AwsConfig): JSON
  deleteChannel(input: AwsChimeDeleteChannelInput!, config: AwsConfig): JSON
  deleteChannelBan(input: AwsChimeDeleteChannelBanInput!, config: AwsConfig): JSON
  deleteChannelMembership(input: AwsChimeDeleteChannelMembershipInput!, config: AwsConfig): JSON
  deleteChannelMessage(input: AwsChimeDeleteChannelMessageInput!, config: AwsConfig): JSON
  deleteChannelModerator(input: AwsChimeDeleteChannelModeratorInput!, config: AwsConfig): JSON
  deleteEventsConfiguration(input: AwsChimeDeleteEventsConfigurationInput!, config: AwsConfig): JSON
  deleteMeeting(input: AwsChimeDeleteMeetingInput!, config: AwsConfig): JSON
  deletePhoneNumber(input: AwsChimeDeletePhoneNumberInput!, config: AwsConfig): JSON
  deleteProxySession(input: AwsChimeDeleteProxySessionInput!, config: AwsConfig): JSON
  deleteRoom(input: AwsChimeDeleteRoomInput!, config: AwsConfig): JSON
  deleteRoomMembership(input: AwsChimeDeleteRoomMembershipInput!, config: AwsConfig): JSON
  deleteSipMediaApplication(input: AwsChimeDeleteSipMediaApplicationInput!, config: AwsConfig): JSON
  deleteSipRule(input: AwsChimeDeleteSipRuleInput!, config: AwsConfig): JSON
  deleteVoiceConnector(input: AwsChimeDeleteVoiceConnectorInput!, config: AwsConfig): JSON
  deleteVoiceConnectorEmergencyCallingConfiguration(input: AwsChimeDeleteVoiceConnectorEmergencyCallingConfigurationInput!, config: AwsConfig): JSON
  deleteVoiceConnectorGroup(input: AwsChimeDeleteVoiceConnectorGroupInput!, config: AwsConfig): JSON
  deleteVoiceConnectorOrigination(input: AwsChimeDeleteVoiceConnectorOriginationInput!, config: AwsConfig): JSON
  deleteVoiceConnectorProxy(input: AwsChimeDeleteVoiceConnectorProxyInput!, config: AwsConfig): JSON
  deleteVoiceConnectorStreamingConfiguration(input: AwsChimeDeleteVoiceConnectorStreamingConfigurationInput!, config: AwsConfig): JSON
  deleteVoiceConnectorTermination(input: AwsChimeDeleteVoiceConnectorTerminationInput!, config: AwsConfig): JSON
  deleteVoiceConnectorTerminationCredentials(input: AwsChimeDeleteVoiceConnectorTerminationCredentialsInput!, config: AwsConfig): JSON
  describeAppInstance(input: AwsChimeDescribeAppInstanceInput!, config: AwsConfig): AwsChimeDescribeAppInstanceOutput
  describeAppInstanceAdmin(input: AwsChimeDescribeAppInstanceAdminInput!, config: AwsConfig): AwsChimeDescribeAppInstanceAdminOutput
  describeAppInstanceUser(input: AwsChimeDescribeAppInstanceUserInput!, config: AwsConfig): AwsChimeDescribeAppInstanceUserOutput
  describeChannel(input: AwsChimeDescribeChannelInput!, config: AwsConfig): AwsChimeDescribeChannelOutput
  describeChannelBan(input: AwsChimeDescribeChannelBanInput!, config: AwsConfig): AwsChimeDescribeChannelBanOutput
  describeChannelMembership(input: AwsChimeDescribeChannelMembershipInput!, config: AwsConfig): AwsChimeDescribeChannelMembershipOutput
  describeChannelMembershipForAppInstanceUser(input: AwsChimeDescribeChannelMembershipForAppInstanceUserInput!, config: AwsConfig): AwsChimeDescribeChannelMembershipForAppInstanceUserOutput
  describeChannelModeratedByAppInstanceUser(input: AwsChimeDescribeChannelModeratedByAppInstanceUserInput!, config: AwsConfig): AwsChimeDescribeChannelModeratedByAppInstanceUserOutput
  describeChannelModerator(input: AwsChimeDescribeChannelModeratorInput!, config: AwsConfig): AwsChimeDescribeChannelModeratorOutput
  disassociatePhoneNumberFromUser(input: AwsChimeDisassociatePhoneNumberFromUserInput!, config: AwsConfig): JSON
  disassociatePhoneNumbersFromVoiceConnector(input: AwsChimeDisassociatePhoneNumbersFromVoiceConnectorInput!, config: AwsConfig): AwsChimeDisassociatePhoneNumbersFromVoiceConnectorOutput
  disassociatePhoneNumbersFromVoiceConnectorGroup(input: AwsChimeDisassociatePhoneNumbersFromVoiceConnectorGroupInput!, config: AwsConfig): AwsChimeDisassociatePhoneNumbersFromVoiceConnectorGroupOutput
  disassociateSigninDelegateGroupsFromAccount(input: AwsChimeDisassociateSigninDelegateGroupsFromAccountInput!, config: AwsConfig): JSON
  getAccount(input: AwsChimeGetAccountInput!, config: AwsConfig): AwsChimeGetAccountOutput
  getAccountSettings(input: AwsChimeGetAccountSettingsInput!, config: AwsConfig): AwsChimeGetAccountSettingsOutput
  getAppInstanceRetentionSettings(input: AwsChimeGetAppInstanceRetentionSettingsInput!, config: AwsConfig): AwsChimeGetAppInstanceRetentionSettingsOutput
  getAppInstanceStreamingConfigurations(input: AwsChimeGetAppInstanceStreamingConfigurationsInput!, config: AwsConfig): AwsChimeGetAppInstanceStreamingConfigurationsOutput
  getAttendee(input: AwsChimeGetAttendeeInput!, config: AwsConfig): AwsChimeGetAttendeeOutput
  getBot(input: AwsChimeGetBotInput!, config: AwsConfig): AwsChimeGetBotOutput
  getChannelMessage(input: AwsChimeGetChannelMessageInput!, config: AwsConfig): AwsChimeGetChannelMessageOutput
  getEventsConfiguration(input: AwsChimeGetEventsConfigurationInput!, config: AwsConfig): AwsChimeGetEventsConfigurationOutput
  getGlobalSettings(config: AwsConfig): AwsChimeGetGlobalSettingsOutput
  getMeeting(input: AwsChimeGetMeetingInput!, config: AwsConfig): AwsChimeGetMeetingOutput
  getMessagingSessionEndpoint(input: JSON, config: AwsConfig): AwsChimeGetMessagingSessionEndpointOutput
  getPhoneNumber(input: AwsChimeGetPhoneNumberInput!, config: AwsConfig): AwsChimeGetPhoneNumberOutput
  getPhoneNumberOrder(input: AwsChimeGetPhoneNumberOrderInput!, config: AwsConfig): AwsChimeGetPhoneNumberOrderOutput
  getPhoneNumberSettings(config: AwsConfig): AwsChimeGetPhoneNumberSettingsOutput
  getProxySession(input: AwsChimeGetProxySessionInput!, config: AwsConfig): AwsChimeGetProxySessionOutput
  getRetentionSettings(input: AwsChimeGetRetentionSettingsInput!, config: AwsConfig): AwsChimeGetRetentionSettingsOutput
  getRoom(input: AwsChimeGetRoomInput!, config: AwsConfig): AwsChimeGetRoomOutput
  getSipMediaApplication(input: AwsChimeGetSipMediaApplicationInput!, config: AwsConfig): AwsChimeGetSipMediaApplicationOutput
  getSipMediaApplicationLoggingConfiguration(input: AwsChimeGetSipMediaApplicationLoggingConfigurationInput!, config: AwsConfig): AwsChimeGetSipMediaApplicationLoggingConfigurationOutput
  getSipRule(input: AwsChimeGetSipRuleInput!, config: AwsConfig): AwsChimeGetSipRuleOutput
  getUser(input: AwsChimeGetUserInput!, config: AwsConfig): AwsChimeGetUserOutput
  getUserSettings(input: AwsChimeGetUserSettingsInput!, config: AwsConfig): AwsChimeGetUserSettingsOutput
  getVoiceConnector(input: AwsChimeGetVoiceConnectorInput!, config: AwsConfig): AwsChimeGetVoiceConnectorOutput
  getVoiceConnectorEmergencyCallingConfiguration(input: AwsChimeGetVoiceConnectorEmergencyCallingConfigurationInput!, config: AwsConfig): AwsChimeGetVoiceConnectorEmergencyCallingConfigurationOutput
  getVoiceConnectorGroup(input: AwsChimeGetVoiceConnectorGroupInput!, config: AwsConfig): AwsChimeGetVoiceConnectorGroupOutput
  getVoiceConnectorLoggingConfiguration(input: AwsChimeGetVoiceConnectorLoggingConfigurationInput!, config: AwsConfig): AwsChimeGetVoiceConnectorLoggingConfigurationOutput
  getVoiceConnectorOrigination(input: AwsChimeGetVoiceConnectorOriginationInput!, config: AwsConfig): AwsChimeGetVoiceConnectorOriginationOutput
  getVoiceConnectorProxy(input: AwsChimeGetVoiceConnectorProxyInput!, config: AwsConfig): AwsChimeGetVoiceConnectorProxyOutput
  getVoiceConnectorStreamingConfiguration(input: AwsChimeGetVoiceConnectorStreamingConfigurationInput!, config: AwsConfig): AwsChimeGetVoiceConnectorStreamingConfigurationOutput
  getVoiceConnectorTermination(input: AwsChimeGetVoiceConnectorTerminationInput!, config: AwsConfig): AwsChimeGetVoiceConnectorTerminationOutput
  getVoiceConnectorTerminationHealth(input: AwsChimeGetVoiceConnectorTerminationHealthInput!, config: AwsConfig): AwsChimeGetVoiceConnectorTerminationHealthOutput
  inviteUsers(input: AwsChimeInviteUsersInput!, config: AwsConfig): AwsChimeInviteUsersOutput
  listAccounts(input: AwsChimeListAccountsInput, config: AwsConfig): AwsChimeListAccountsOutput
  listAppInstanceAdmins(input: AwsChimeListAppInstanceAdminsInput!, config: AwsConfig): AwsChimeListAppInstanceAdminsOutput
  listAppInstanceUsers(input: AwsChimeListAppInstanceUsersInput!, config: AwsConfig): AwsChimeListAppInstanceUsersOutput
  listAppInstances(input: AwsChimeListAppInstancesInput, config: AwsConfig): AwsChimeListAppInstancesOutput
  listAttendeeTags(input: AwsChimeListAttendeeTagsInput!, config: AwsConfig): AwsChimeListAttendeeTagsOutput
  listAttendees(input: AwsChimeListAttendeesInput!, config: AwsConfig): AwsChimeListAttendeesOutput
  listBots(input: AwsChimeListBotsInput!, config: AwsConfig): AwsChimeListBotsOutput
  listChannelBans(input: AwsChimeListChannelBansInput!, config: AwsConfig): AwsChimeListChannelBansOutput
  listChannelMemberships(input: AwsChimeListChannelMembershipsInput!, config: AwsConfig): AwsChimeListChannelMembershipsOutput
  listChannelMembershipsForAppInstanceUser(input: AwsChimeListChannelMembershipsForAppInstanceUserInput, config: AwsConfig): AwsChimeListChannelMembershipsForAppInstanceUserOutput
  listChannelMessages(input: AwsChimeListChannelMessagesInput!, config: AwsConfig): AwsChimeListChannelMessagesOutput
  listChannelModerators(input: AwsChimeListChannelModeratorsInput!, config: AwsConfig): AwsChimeListChannelModeratorsOutput
  listChannels(input: AwsChimeListChannelsInput!, config: AwsConfig): AwsChimeListChannelsOutput
  listChannelsModeratedByAppInstanceUser(input: AwsChimeListChannelsModeratedByAppInstanceUserInput, config: AwsConfig): AwsChimeListChannelsModeratedByAppInstanceUserOutput
  listMeetingTags(input: AwsChimeListMeetingTagsInput!, config: AwsConfig): AwsChimeListMeetingTagsOutput
  listMeetings(input: AwsChimeListMeetingsInput, config: AwsConfig): AwsChimeListMeetingsOutput
  listPhoneNumberOrders(input: AwsChimeListPhoneNumberOrdersInput, config: AwsConfig): AwsChimeListPhoneNumberOrdersOutput
  listPhoneNumbers(input: AwsChimeListPhoneNumbersInput, config: AwsConfig): AwsChimeListPhoneNumbersOutput
  listProxySessions(input: AwsChimeListProxySessionsInput!, config: AwsConfig): AwsChimeListProxySessionsOutput
  listRoomMemberships(input: AwsChimeListRoomMembershipsInput!, config: AwsConfig): AwsChimeListRoomMembershipsOutput
  listRooms(input: AwsChimeListRoomsInput!, config: AwsConfig): AwsChimeListRoomsOutput
  listSipMediaApplications(input: AwsChimeListSipMediaApplicationsInput, config: AwsConfig): AwsChimeListSipMediaApplicationsOutput
  listSipRules(input: AwsChimeListSipRulesInput, config: AwsConfig): AwsChimeListSipRulesOutput
  listSupportedPhoneNumberCountries(input: AwsChimeListSupportedPhoneNumberCountriesInput!, config: AwsConfig): AwsChimeListSupportedPhoneNumberCountriesOutput
  listTagsForResource(input: AwsChimeListTagsForResourceInput!, config: AwsConfig): AwsChimeListTagsForResourceOutput
  listUsers(input: AwsChimeListUsersInput!, config: AwsConfig): AwsChimeListUsersOutput
  listVoiceConnectorGroups(input: AwsChimeListVoiceConnectorGroupsInput, config: AwsConfig): AwsChimeListVoiceConnectorGroupsOutput
  listVoiceConnectorTerminationCredentials(input: AwsChimeListVoiceConnectorTerminationCredentialsInput!, config: AwsConfig): AwsChimeListVoiceConnectorTerminationCredentialsOutput
  listVoiceConnectors(input: AwsChimeListVoiceConnectorsInput, config: AwsConfig): AwsChimeListVoiceConnectorsOutput
  logoutUser(input: AwsChimeLogoutUserInput!, config: AwsConfig): JSON
  putAppInstanceRetentionSettings(input: AwsChimePutAppInstanceRetentionSettingsInput!, config: AwsConfig): AwsChimePutAppInstanceRetentionSettingsOutput
  putAppInstanceStreamingConfigurations(input: AwsChimePutAppInstanceStreamingConfigurationsInput!, config: AwsConfig): AwsChimePutAppInstanceStreamingConfigurationsOutput
  putEventsConfiguration(input: AwsChimePutEventsConfigurationInput!, config: AwsConfig): AwsChimePutEventsConfigurationOutput
  putRetentionSettings(input: AwsChimePutRetentionSettingsInput!, config: AwsConfig): AwsChimePutRetentionSettingsOutput
  putSipMediaApplicationLoggingConfiguration(input: AwsChimePutSipMediaApplicationLoggingConfigurationInput!, config: AwsConfig): AwsChimePutSipMediaApplicationLoggingConfigurationOutput
  putVoiceConnectorEmergencyCallingConfiguration(input: AwsChimePutVoiceConnectorEmergencyCallingConfigurationInput!, config: AwsConfig): AwsChimePutVoiceConnectorEmergencyCallingConfigurationOutput
  putVoiceConnectorLoggingConfiguration(input: AwsChimePutVoiceConnectorLoggingConfigurationInput!, config: AwsConfig): AwsChimePutVoiceConnectorLoggingConfigurationOutput
  putVoiceConnectorOrigination(input: AwsChimePutVoiceConnectorOriginationInput!, config: AwsConfig): AwsChimePutVoiceConnectorOriginationOutput
  putVoiceConnectorProxy(input: AwsChimePutVoiceConnectorProxyInput!, config: AwsConfig): AwsChimePutVoiceConnectorProxyOutput
  putVoiceConnectorStreamingConfiguration(input: AwsChimePutVoiceConnectorStreamingConfigurationInput!, config: AwsConfig): AwsChimePutVoiceConnectorStreamingConfigurationOutput
  putVoiceConnectorTermination(input: AwsChimePutVoiceConnectorTerminationInput!, config: AwsConfig): AwsChimePutVoiceConnectorTerminationOutput
  putVoiceConnectorTerminationCredentials(input: AwsChimePutVoiceConnectorTerminationCredentialsInput!, config: AwsConfig): JSON
  redactChannelMessage(input: AwsChimeRedactChannelMessageInput!, config: AwsConfig): AwsChimeRedactChannelMessageOutput
  redactConversationMessage(input: AwsChimeRedactConversationMessageInput!, config: AwsConfig): JSON
  redactRoomMessage(input: AwsChimeRedactRoomMessageInput!, config: AwsConfig): JSON
  regenerateSecurityToken(input: AwsChimeRegenerateSecurityTokenInput!, config: AwsConfig): AwsChimeRegenerateSecurityTokenOutput
  resetPersonalPIN(input: AwsChimeResetPersonalPINInput!, config: AwsConfig): AwsChimeResetPersonalPINOutput
  restorePhoneNumber(input: AwsChimeRestorePhoneNumberInput!, config: AwsConfig): AwsChimeRestorePhoneNumberOutput
  searchAvailablePhoneNumbers(input: AwsChimeSearchAvailablePhoneNumbersInput, config: AwsConfig): AwsChimeSearchAvailablePhoneNumbersOutput
  sendChannelMessage(input: AwsChimeSendChannelMessageInput!, config: AwsConfig): AwsChimeSendChannelMessageOutput
  tagAttendee(input: AwsChimeTagAttendeeInput!, config: AwsConfig): JSON
  tagMeeting(input: AwsChimeTagMeetingInput!, config: AwsConfig): JSON
  tagResource(input: AwsChimeTagResourceInput!, config: AwsConfig): JSON
  untagAttendee(input: AwsChimeUntagAttendeeInput!, config: AwsConfig): JSON
  untagMeeting(input: AwsChimeUntagMeetingInput!, config: AwsConfig): JSON
  untagResource(input: AwsChimeUntagResourceInput!, config: AwsConfig): JSON
  updateAccount(input: AwsChimeUpdateAccountInput!, config: AwsConfig): AwsChimeUpdateAccountOutput
  updateAccountSettings(input: AwsChimeUpdateAccountSettingsInput!, config: AwsConfig): JSON
  updateAppInstance(input: AwsChimeUpdateAppInstanceInput!, config: AwsConfig): AwsChimeUpdateAppInstanceOutput
  updateAppInstanceUser(input: AwsChimeUpdateAppInstanceUserInput!, config: AwsConfig): AwsChimeUpdateAppInstanceUserOutput
  updateBot(input: AwsChimeUpdateBotInput!, config: AwsConfig): AwsChimeUpdateBotOutput
  updateChannel(input: AwsChimeUpdateChannelInput!, config: AwsConfig): AwsChimeUpdateChannelOutput
  updateChannelMessage(input: AwsChimeUpdateChannelMessageInput!, config: AwsConfig): AwsChimeUpdateChannelMessageOutput
  updateChannelReadMarker(input: AwsChimeUpdateChannelReadMarkerInput!, config: AwsConfig): AwsChimeUpdateChannelReadMarkerOutput
  updateGlobalSettings(input: AwsChimeUpdateGlobalSettingsInput!, config: AwsConfig): JSON
  updatePhoneNumber(input: AwsChimeUpdatePhoneNumberInput!, config: AwsConfig): AwsChimeUpdatePhoneNumberOutput
  updatePhoneNumberSettings(input: AwsChimeUpdatePhoneNumberSettingsInput!, config: AwsConfig): JSON
  updateProxySession(input: AwsChimeUpdateProxySessionInput!, config: AwsConfig): AwsChimeUpdateProxySessionOutput
  updateRoom(input: AwsChimeUpdateRoomInput!, config: AwsConfig): AwsChimeUpdateRoomOutput
  updateRoomMembership(input: AwsChimeUpdateRoomMembershipInput!, config: AwsConfig): AwsChimeUpdateRoomMembershipOutput
  updateSipMediaApplication(input: AwsChimeUpdateSipMediaApplicationInput!, config: AwsConfig): AwsChimeUpdateSipMediaApplicationOutput
  updateSipMediaApplicationCall(input: AwsChimeUpdateSipMediaApplicationCallInput!, config: AwsConfig): AwsChimeUpdateSipMediaApplicationCallOutput
  updateSipRule(input: AwsChimeUpdateSipRuleInput!, config: AwsConfig): AwsChimeUpdateSipRuleOutput
  updateUser(input: AwsChimeUpdateUserInput!, config: AwsConfig): AwsChimeUpdateUserOutput
  updateUserSettings(input: AwsChimeUpdateUserSettingsInput!, config: AwsConfig): JSON
  updateVoiceConnector(input: AwsChimeUpdateVoiceConnectorInput!, config: AwsConfig): AwsChimeUpdateVoiceConnectorOutput
  updateVoiceConnectorGroup(input: AwsChimeUpdateVoiceConnectorGroupInput!, config: AwsConfig): AwsChimeUpdateVoiceConnectorGroupOutput
}

input AwsChimeAssociatePhoneNumberWithUserInput {
  AccountId: String!
  UserId: String!
  E164PhoneNumber: String!
}

type AwsChimeAssociatePhoneNumbersWithVoiceConnectorOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

type AwsChimeSa {
  PhoneNumberId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsChimeAssociatePhoneNumbersWithVoiceConnectorInput {
  VoiceConnectorId: String!
  E164PhoneNumbers: [String]!
  ForceAssociate: Boolean
}

type AwsChimeAssociatePhoneNumbersWithVoiceConnectorGroupOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

input AwsChimeAssociatePhoneNumbersWithVoiceConnectorGroupInput {
  VoiceConnectorGroupId: String!
  E164PhoneNumbers: [String]!
  ForceAssociate: Boolean
}

input AwsChimeAssociateSigninDelegateGroupsWithAccountInput {
  AccountId: String!
  SigninDelegateGroups: [AwsChimeSgInput]!
}

input AwsChimeSgInput {
  GroupName: String
}

type AwsChimeBatchCreateAttendeeOutput {
  Attendees: [AwsChimeSu]
  Errors: [AwsChimeSw]
}

type AwsChimeSu {
  ExternalUserId: String
  AttendeeId: String
  JoinToken: String
}

type AwsChimeSw {
  ExternalUserId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsChimeBatchCreateAttendeeInput {
  MeetingId: String!
  Attendees: [AwsChimeSmInput]!
}

input AwsChimeSmInput {
  ExternalUserId: String!
  Tags: [AwsChimeSpInput]
}

input AwsChimeSpInput {
  Key: String!
  Value: String!
}

type AwsChimeBatchCreateChannelMembershipOutput {
  BatchChannelMemberships: AwsChimeBatchCreateChannelMembershipOutputBatchChannelMemberships
  Errors: [AwsChimeBatchCreateChannelMembershipOutputErrors]
}

type AwsChimeBatchCreateChannelMembershipOutputBatchChannelMemberships {
  InvitedBy: AwsChimeS14
  Type: String
  Members: [AwsChimeS14]
  ChannelArn: String
}

type AwsChimeS14 {
  Arn: String
  Name: String
}

type AwsChimeBatchCreateChannelMembershipOutputErrors {
  MemberArn: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsChimeBatchCreateChannelMembershipInput {
  ChannelArn: String!
  Type: String
  MemberArns: [String]!
  ChimeBearer: String
}

type AwsChimeBatchCreateRoomMembershipOutput {
  Errors: [AwsChimeBatchCreateRoomMembershipOutputErrors]
}

type AwsChimeBatchCreateRoomMembershipOutputErrors {
  MemberId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsChimeBatchCreateRoomMembershipInput {
  AccountId: String!
  RoomId: String!
  MembershipItemList: [AwsChimeBatchCreateRoomMembershipMembershipItemListInput]!
}

input AwsChimeBatchCreateRoomMembershipMembershipItemListInput {
  MemberId: String
  Role: String
}

type AwsChimeBatchDeletePhoneNumberOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

input AwsChimeBatchDeletePhoneNumberInput {
  PhoneNumberIds: [String]!
}

type AwsChimeBatchSuspendUserOutput {
  UserErrors: [AwsChimeS1m]
}

type AwsChimeS1m {
  UserId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsChimeBatchSuspendUserInput {
  AccountId: String!
  UserIdList: [String]!
}

type AwsChimeBatchUnsuspendUserOutput {
  UserErrors: [AwsChimeS1m]
}

input AwsChimeBatchUnsuspendUserInput {
  AccountId: String!
  UserIdList: [String]!
}

type AwsChimeBatchUpdatePhoneNumberOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

input AwsChimeBatchUpdatePhoneNumberInput {
  UpdatePhoneNumberRequestItems: [AwsChimeBatchUpdatePhoneNumberUpdatePhoneNumberRequestItemsInput]!
}

input AwsChimeBatchUpdatePhoneNumberUpdatePhoneNumberRequestItemsInput {
  PhoneNumberId: String!
  ProductType: String
  CallingName: String
}

type AwsChimeBatchUpdateUserOutput {
  UserErrors: [AwsChimeS1m]
}

input AwsChimeBatchUpdateUserInput {
  AccountId: String!
  UpdateUserRequestItems: [AwsChimeBatchUpdateUserUpdateUserRequestItemsInput]!
}

input AwsChimeBatchUpdateUserUpdateUserRequestItemsInput {
  UserId: String!
  LicenseType: String
  UserType: String
  AlexaForBusinessMetadata: AwsChimeS21Input
}

input AwsChimeS21Input {
  IsAlexaForBusinessEnabled: Boolean
  AlexaForBusinessRoomArn: String
}

type AwsChimeCreateAccountOutput {
  Account: AwsChimeS28
}

type AwsChimeS28 {
  AwsAccountId: String!
  AccountId: String!
  Name: String!
  AccountType: String
  CreatedTimestamp: Date
  DefaultLicense: String
  SupportedLicenses: [String]
  SigninDelegateGroups: [AwsChimeSg]
}

type AwsChimeSg {
  GroupName: String
}

input AwsChimeCreateAccountInput {
  Name: String!
}

type AwsChimeCreateAppInstanceOutput {
  AppInstanceArn: String
}

input AwsChimeCreateAppInstanceInput {
  Name: String!
  Metadata: String
  ClientRequestToken: String!
  Tags: [AwsChimeSpInput]
}

type AwsChimeCreateAppInstanceAdminOutput {
  AppInstanceAdmin: AwsChimeS14
  AppInstanceArn: String
}

input AwsChimeCreateAppInstanceAdminInput {
  AppInstanceAdminArn: String!
  AppInstanceArn: String!
}

type AwsChimeCreateAppInstanceUserOutput {
  AppInstanceUserArn: String
}

input AwsChimeCreateAppInstanceUserInput {
  AppInstanceArn: String!
  AppInstanceUserId: String!
  Name: String!
  Metadata: String
  ClientRequestToken: String!
  Tags: [AwsChimeSpInput]
}

type AwsChimeCreateAttendeeOutput {
  Attendee: AwsChimeSu
}

input AwsChimeCreateAttendeeInput {
  MeetingId: String!
  ExternalUserId: String!
  Tags: [AwsChimeSpInput]
}

type AwsChimeCreateBotOutput {
  Bot: AwsChimeS2s
}

type AwsChimeS2s {
  BotId: String
  UserId: String
  DisplayName: String
  BotType: String
  Disabled: Boolean
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
  BotEmail: String
  SecurityToken: String
}

input AwsChimeCreateBotInput {
  AccountId: String!
  DisplayName: String!
  Domain: String
}

type AwsChimeCreateChannelOutput {
  ChannelArn: String
}

input AwsChimeCreateChannelInput {
  AppInstanceArn: String!
  Name: String!
  Mode: String
  Privacy: String
  Metadata: String
  ClientRequestToken: String!
  Tags: [AwsChimeSpInput]
  ChimeBearer: String
}

type AwsChimeCreateChannelBanOutput {
  ChannelArn: String
  Member: AwsChimeS14
}

input AwsChimeCreateChannelBanInput {
  ChannelArn: String!
  MemberArn: String!
  ChimeBearer: String
}

type AwsChimeCreateChannelMembershipOutput {
  ChannelArn: String
  Member: AwsChimeS14
}

input AwsChimeCreateChannelMembershipInput {
  ChannelArn: String!
  MemberArn: String!
  Type: String!
  ChimeBearer: String
}

type AwsChimeCreateChannelModeratorOutput {
  ChannelArn: String
  ChannelModerator: AwsChimeS14
}

input AwsChimeCreateChannelModeratorInput {
  ChannelArn: String!
  ChannelModeratorArn: String!
  ChimeBearer: String
}

type AwsChimeCreateMeetingOutput {
  Meeting: AwsChimeS3a
}

type AwsChimeS3a {
  MeetingId: String
  ExternalMeetingId: String
  MediaPlacement: AwsChimeS3aMediaPlacement
  MediaRegion: String
}

type AwsChimeS3aMediaPlacement {
  AudioHostUrl: String
  AudioFallbackUrl: String
  ScreenDataUrl: String
  ScreenSharingUrl: String
  ScreenViewingUrl: String
  SignalingUrl: String
  TurnControlUrl: String
  EventIngestionUrl: String
}

input AwsChimeCreateMeetingInput {
  ClientRequestToken: String!
  ExternalMeetingId: String
  MeetingHostId: String
  MediaRegion: String
  Tags: [AwsChimeSpInput]
  NotificationsConfiguration: AwsChimeS37Input
}

input AwsChimeS37Input {
  SnsTopicArn: String
  SqsQueueArn: String
}

type AwsChimeCreateMeetingDialOutOutput {
  TransactionId: String
}

input AwsChimeCreateMeetingDialOutInput {
  MeetingId: String!
  FromPhoneNumber: String!
  ToPhoneNumber: String!
  JoinToken: String!
}

type AwsChimeCreateMeetingWithAttendeesOutput {
  Meeting: AwsChimeS3a
  Attendees: [AwsChimeSu]
  Errors: [AwsChimeSw]
}

input AwsChimeCreateMeetingWithAttendeesInput {
  ClientRequestToken: String!
  ExternalMeetingId: String
  MeetingHostId: String
  MediaRegion: String
  Tags: [AwsChimeSpInput]
  NotificationsConfiguration: AwsChimeS37Input
  Attendees: [AwsChimeSmInput]
}

type AwsChimeCreatePhoneNumberOrderOutput {
  PhoneNumberOrder: AwsChimeS3k
}

type AwsChimeS3k {
  PhoneNumberOrderId: String
  ProductType: String
  Status: String
  OrderedPhoneNumbers: [AwsChimeS3kOrderedPhoneNumbers]
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

type AwsChimeS3kOrderedPhoneNumbers {
  E164PhoneNumber: String
  Status: String
}

input AwsChimeCreatePhoneNumberOrderInput {
  ProductType: String!
  E164PhoneNumbers: [String]!
}

type AwsChimeCreateProxySessionOutput {
  ProxySession: AwsChimeS42
}

type AwsChimeS42 {
  VoiceConnectorId: String
  ProxySessionId: String
  Name: String
  Status: String
  ExpiryMinutes: Int
  Capabilities: [String]
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
  EndedTimestamp: Date
  Participants: [AwsChimeS42Participants]
  NumberSelectionBehavior: String
  GeoMatchLevel: String
  GeoMatchParams: AwsChimeS3y
}

type AwsChimeS42Participants {
  PhoneNumber: String
  ProxyPhoneNumber: String
}

type AwsChimeS3y {
  Country: String!
  AreaCode: String!
}

input AwsChimeCreateProxySessionInput {
  VoiceConnectorId: String!
  ParticipantPhoneNumbers: [String]!
  Name: String
  ExpiryMinutes: Int
  Capabilities: [String]!
  NumberSelectionBehavior: String
  GeoMatchLevel: String
  GeoMatchParams: AwsChimeS3yInput
}

input AwsChimeS3yInput {
  Country: String!
  AreaCode: String!
}

type AwsChimeCreateRoomOutput {
  Room: AwsChimeS49
}

type AwsChimeS49 {
  RoomId: String
  Name: String
  AccountId: String
  CreatedBy: String
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

input AwsChimeCreateRoomInput {
  AccountId: String!
  Name: String!
  ClientRequestToken: String
}

type AwsChimeCreateRoomMembershipOutput {
  RoomMembership: AwsChimeS4c
}

type AwsChimeS4c {
  RoomId: String
  Member: AwsChimeS4cMember
  Role: String
  InvitedBy: String
  UpdatedTimestamp: Date
}

type AwsChimeS4cMember {
  MemberId: String
  MemberType: String
  Email: String
  FullName: String
  AccountId: String
}

input AwsChimeCreateRoomMembershipInput {
  AccountId: String!
  RoomId: String!
  MemberId: String!
  Role: String
}

type AwsChimeCreateSipMediaApplicationOutput {
  SipMediaApplication: AwsChimeS4l
}

type AwsChimeS4l {
  SipMediaApplicationId: String
  AwsRegion: String
  Name: String
  Endpoints: [AwsChimeS4h]
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

type AwsChimeS4h {
  LambdaArn: String
}

input AwsChimeCreateSipMediaApplicationInput {
  AwsRegion: String!
  Name: String!
  Endpoints: [AwsChimeS4hInput]!
}

input AwsChimeS4hInput {
  LambdaArn: String
}

type AwsChimeCreateSipMediaApplicationCallOutput {
  SipMediaApplicationCall: AwsChimeS4o
}

type AwsChimeS4o {
  TransactionId: String
}

input AwsChimeCreateSipMediaApplicationCallInput {
  FromPhoneNumber: String!
  ToPhoneNumber: String!
  SipMediaApplicationId: String!
}

type AwsChimeCreateSipRuleOutput {
  SipRule: AwsChimeS4w
}

type AwsChimeS4w {
  SipRuleId: String
  Name: String
  Disabled: Boolean
  TriggerType: String
  TriggerValue: String
  TargetApplications: [AwsChimeS4s]
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

type AwsChimeS4s {
  SipMediaApplicationId: String
  Priority: Int
  AwsRegion: String
}

input AwsChimeCreateSipRuleInput {
  Name: String!
  TriggerType: String!
  TriggerValue: String!
  Disabled: Boolean
  TargetApplications: [AwsChimeS4sInput]!
}

input AwsChimeS4sInput {
  SipMediaApplicationId: String
  Priority: Int
  AwsRegion: String
}

type AwsChimeCreateUserOutput {
  User: AwsChimeS50
}

type AwsChimeS50 {
  UserId: String!
  AccountId: String
  PrimaryEmail: String
  PrimaryProvisionedNumber: String
  DisplayName: String
  LicenseType: String
  UserType: String
  UserRegistrationStatus: String
  UserInvitationStatus: String
  RegisteredOn: Date
  InvitedOn: Date
  AlexaForBusinessMetadata: AwsChimeS21
  PersonalPIN: String
}

type AwsChimeS21 {
  IsAlexaForBusinessEnabled: Boolean
  AlexaForBusinessRoomArn: String
}

input AwsChimeCreateUserInput {
  AccountId: String!
  Username: String
  Email: String
  UserType: String
}

type AwsChimeCreateVoiceConnectorOutput {
  VoiceConnector: AwsChimeS57
}

type AwsChimeS57 {
  VoiceConnectorId: String
  AwsRegion: String
  Name: String
  OutboundHostName: String
  RequireEncryption: Boolean
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

input AwsChimeCreateVoiceConnectorInput {
  Name: String!
  AwsRegion: String
  RequireEncryption: Boolean!
}

type AwsChimeCreateVoiceConnectorGroupOutput {
  VoiceConnectorGroup: AwsChimeS5e
}

type AwsChimeS5e {
  VoiceConnectorGroupId: String
  Name: String
  VoiceConnectorItems: [AwsChimeS5a]
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
}

type AwsChimeS5a {
  VoiceConnectorId: String!
  Priority: Int!
}

input AwsChimeCreateVoiceConnectorGroupInput {
  Name: String!
  VoiceConnectorItems: [AwsChimeS5aInput]
}

input AwsChimeS5aInput {
  VoiceConnectorId: String!
  Priority: Int!
}

input AwsChimeDeleteAccountInput {
  AccountId: String!
}

input AwsChimeDeleteAppInstanceInput {
  AppInstanceArn: String!
}

input AwsChimeDeleteAppInstanceAdminInput {
  AppInstanceAdminArn: String!
  AppInstanceArn: String!
}

input AwsChimeDeleteAppInstanceStreamingConfigurationsInput {
  AppInstanceArn: String!
}

input AwsChimeDeleteAppInstanceUserInput {
  AppInstanceUserArn: String!
}

input AwsChimeDeleteAttendeeInput {
  MeetingId: String!
  AttendeeId: String!
}

input AwsChimeDeleteChannelInput {
  ChannelArn: String!
  ChimeBearer: String
}

input AwsChimeDeleteChannelBanInput {
  ChannelArn: String!
  MemberArn: String!
  ChimeBearer: String
}

input AwsChimeDeleteChannelMembershipInput {
  ChannelArn: String!
  MemberArn: String!
  ChimeBearer: String
}

input AwsChimeDeleteChannelMessageInput {
  ChannelArn: String!
  MessageId: String!
  ChimeBearer: String
}

input AwsChimeDeleteChannelModeratorInput {
  ChannelArn: String!
  ChannelModeratorArn: String!
  ChimeBearer: String
}

input AwsChimeDeleteEventsConfigurationInput {
  AccountId: String!
  BotId: String!
}

input AwsChimeDeleteMeetingInput {
  MeetingId: String!
}

input AwsChimeDeletePhoneNumberInput {
  PhoneNumberId: String!
}

input AwsChimeDeleteProxySessionInput {
  VoiceConnectorId: String!
  ProxySessionId: String!
}

input AwsChimeDeleteRoomInput {
  AccountId: String!
  RoomId: String!
}

input AwsChimeDeleteRoomMembershipInput {
  AccountId: String!
  RoomId: String!
  MemberId: String!
}

input AwsChimeDeleteSipMediaApplicationInput {
  SipMediaApplicationId: String!
}

input AwsChimeDeleteSipRuleInput {
  SipRuleId: String!
}

input AwsChimeDeleteVoiceConnectorInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorEmergencyCallingConfigurationInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorGroupInput {
  VoiceConnectorGroupId: String!
}

input AwsChimeDeleteVoiceConnectorOriginationInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorProxyInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorStreamingConfigurationInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorTerminationInput {
  VoiceConnectorId: String!
}

input AwsChimeDeleteVoiceConnectorTerminationCredentialsInput {
  VoiceConnectorId: String!
  Usernames: [String]!
}

type AwsChimeDescribeAppInstanceOutput {
  AppInstance: AwsChimeDescribeAppInstanceOutputAppInstance
}

type AwsChimeDescribeAppInstanceOutputAppInstance {
  AppInstanceArn: String
  Name: String
  Metadata: String
  CreatedTimestamp: Date
  LastUpdatedTimestamp: Date
}

input AwsChimeDescribeAppInstanceInput {
  AppInstanceArn: String!
}

type AwsChimeDescribeAppInstanceAdminOutput {
  AppInstanceAdmin: AwsChimeDescribeAppInstanceAdminOutputAppInstanceAdmin
}

type AwsChimeDescribeAppInstanceAdminOutputAppInstanceAdmin {
  Admin: AwsChimeS14
  AppInstanceArn: String
  CreatedTimestamp: Date
}

input AwsChimeDescribeAppInstanceAdminInput {
  AppInstanceAdminArn: String!
  AppInstanceArn: String!
}

type AwsChimeDescribeAppInstanceUserOutput {
  AppInstanceUser: AwsChimeDescribeAppInstanceUserOutputAppInstanceUser
}

type AwsChimeDescribeAppInstanceUserOutputAppInstanceUser {
  AppInstanceUserArn: String
  Name: String
  CreatedTimestamp: Date
  Metadata: String
  LastUpdatedTimestamp: Date
}

input AwsChimeDescribeAppInstanceUserInput {
  AppInstanceUserArn: String!
}

type AwsChimeDescribeChannelOutput {
  Channel: AwsChimeDescribeChannelOutputChannel
}

type AwsChimeDescribeChannelOutputChannel {
  Name: String
  ChannelArn: String
  Mode: String
  Privacy: String
  Metadata: String
  CreatedBy: AwsChimeS14
  CreatedTimestamp: Date
  LastMessageTimestamp: Date
  LastUpdatedTimestamp: Date
}

input AwsChimeDescribeChannelInput {
  ChannelArn: String!
  ChimeBearer: String
}

type AwsChimeDescribeChannelBanOutput {
  ChannelBan: AwsChimeDescribeChannelBanOutputChannelBan
}

type AwsChimeDescribeChannelBanOutputChannelBan {
  Member: AwsChimeS14
  ChannelArn: String
  CreatedTimestamp: Date
  CreatedBy: AwsChimeS14
}

input AwsChimeDescribeChannelBanInput {
  ChannelArn: String!
  MemberArn: String!
  ChimeBearer: String
}

type AwsChimeDescribeChannelMembershipOutput {
  ChannelMembership: AwsChimeDescribeChannelMembershipOutputChannelMembership
}

type AwsChimeDescribeChannelMembershipOutputChannelMembership {
  InvitedBy: AwsChimeS14
  Type: String
  Member: AwsChimeS14
  ChannelArn: String
  CreatedTimestamp: Date
  LastUpdatedTimestamp: Date
}

input AwsChimeDescribeChannelMembershipInput {
  ChannelArn: String!
  MemberArn: String!
  ChimeBearer: String
}

type AwsChimeDescribeChannelMembershipForAppInstanceUserOutput {
  ChannelMembership: AwsChimeS6u
}

type AwsChimeS6u {
  ChannelSummary: AwsChimeS6v
  AppInstanceUserMembershipSummary: AwsChimeS6uAppInstanceUserMembershipSummary
}

type AwsChimeS6v {
  Name: String
  ChannelArn: String
  Mode: String
  Privacy: String
  Metadata: String
  LastMessageTimestamp: Date
}

type AwsChimeS6uAppInstanceUserMembershipSummary {
  Type: String
  ReadMarkerTimestamp: Date
}

input AwsChimeDescribeChannelMembershipForAppInstanceUserInput {
  ChannelArn: String!
  AppInstanceUserArn: String!
  ChimeBearer: String
}

type AwsChimeDescribeChannelModeratedByAppInstanceUserOutput {
  Channel: AwsChimeS6z
}

type AwsChimeS6z {
  ChannelSummary: AwsChimeS6v
}

input AwsChimeDescribeChannelModeratedByAppInstanceUserInput {
  ChannelArn: String!
  AppInstanceUserArn: String!
  ChimeBearer: String
}

type AwsChimeDescribeChannelModeratorOutput {
  ChannelModerator: AwsChimeDescribeChannelModeratorOutputChannelModerator
}

type AwsChimeDescribeChannelModeratorOutputChannelModerator {
  Moderator: AwsChimeS14
  ChannelArn: String
  CreatedTimestamp: Date
  CreatedBy: AwsChimeS14
}

input AwsChimeDescribeChannelModeratorInput {
  ChannelArn: String!
  ChannelModeratorArn: String!
  ChimeBearer: String
}

input AwsChimeDisassociatePhoneNumberFromUserInput {
  AccountId: String!
  UserId: String!
}

type AwsChimeDisassociatePhoneNumbersFromVoiceConnectorOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

input AwsChimeDisassociatePhoneNumbersFromVoiceConnectorInput {
  VoiceConnectorId: String!
  E164PhoneNumbers: [String]!
}

type AwsChimeDisassociatePhoneNumbersFromVoiceConnectorGroupOutput {
  PhoneNumberErrors: [AwsChimeSa]
}

input AwsChimeDisassociatePhoneNumbersFromVoiceConnectorGroupInput {
  VoiceConnectorGroupId: String!
  E164PhoneNumbers: [String]!
}

input AwsChimeDisassociateSigninDelegateGroupsFromAccountInput {
  AccountId: String!
  GroupNames: [String]!
}

type AwsChimeGetAccountOutput {
  Account: AwsChimeS28
}

input AwsChimeGetAccountInput {
  AccountId: String!
}

type AwsChimeGetAccountSettingsOutput {
  AccountSettings: AwsChimeS7f
}

type AwsChimeS7f {
  DisableRemoteControl: Boolean
  EnableDialOut: Boolean
}

input AwsChimeGetAccountSettingsInput {
  AccountId: String!
}

type AwsChimeGetAppInstanceRetentionSettingsOutput {
  AppInstanceRetentionSettings: AwsChimeS7i
  InitiateDeletionTimestamp: Date
}

type AwsChimeS7i {
  ChannelRetentionSettings: AwsChimeS7iChannelRetentionSettings
}

type AwsChimeS7iChannelRetentionSettings {
  RetentionDays: Int
}

input AwsChimeGetAppInstanceRetentionSettingsInput {
  AppInstanceArn: String!
}

type AwsChimeGetAppInstanceStreamingConfigurationsOutput {
  AppInstanceStreamingConfigurations: [AwsChimeS7n]
}

type AwsChimeS7n {
  AppInstanceDataType: String!
  ResourceArn: String!
}

input AwsChimeGetAppInstanceStreamingConfigurationsInput {
  AppInstanceArn: String!
}

type AwsChimeGetAttendeeOutput {
  Attendee: AwsChimeSu
}

input AwsChimeGetAttendeeInput {
  MeetingId: String!
  AttendeeId: String!
}

type AwsChimeGetBotOutput {
  Bot: AwsChimeS2s
}

input AwsChimeGetBotInput {
  AccountId: String!
  BotId: String!
}

type AwsChimeGetChannelMessageOutput {
  ChannelMessage: AwsChimeGetChannelMessageOutputChannelMessage
}

type AwsChimeGetChannelMessageOutputChannelMessage {
  ChannelArn: String
  MessageId: String
  Content: String
  Metadata: String
  Type: String
  CreatedTimestamp: Date
  LastEditedTimestamp: Date
  LastUpdatedTimestamp: Date
  Sender: AwsChimeS14
  Redacted: Boolean
  Persistence: String
}

input AwsChimeGetChannelMessageInput {
  ChannelArn: String!
  MessageId: String!
  ChimeBearer: String
}

type AwsChimeGetEventsConfigurationOutput {
  EventsConfiguration: AwsChimeS83
}

type AwsChimeS83 {
  BotId: String
  OutboundEventsHTTPSEndpoint: String
  LambdaFunctionArn: String
}

input AwsChimeGetEventsConfigurationInput {
  AccountId: String!
  BotId: String!
}

type AwsChimeGetGlobalSettingsOutput {
  BusinessCalling: AwsChimeS85
  VoiceConnector: AwsChimeS86
}

type AwsChimeS85 {
  CdrBucket: String
}

type AwsChimeS86 {
  CdrBucket: String
}

type AwsChimeGetMeetingOutput {
  Meeting: AwsChimeS3a
}

input AwsChimeGetMeetingInput {
  MeetingId: String!
}

type AwsChimeGetMessagingSessionEndpointOutput {
  Endpoint: AwsChimeGetMessagingSessionEndpointOutputEndpoint
}

type AwsChimeGetMessagingSessionEndpointOutputEndpoint {
  Url: String
}

type AwsChimeGetPhoneNumberOutput {
  PhoneNumber: AwsChimeS8f
}

type AwsChimeS8f {
  PhoneNumberId: String
  E164PhoneNumber: String
  Country: String
  Type: String
  ProductType: String
  Status: String
  Capabilities: AwsChimeS8fCapabilities
  Associations: [AwsChimeS8fAssociations]
  CallingName: String
  CallingNameStatus: String
  CreatedTimestamp: Date
  UpdatedTimestamp: Date
  DeletionTimestamp: Date
}

type AwsChimeS8fCapabilities {
  InboundCall: Boolean
  OutboundCall: Boolean
  InboundSMS: Boolean
  OutboundSMS: Boolean
  InboundMMS: Boolean
  OutboundMMS: Boolean
}

type AwsChimeS8fAssociations {
  Value: String
  Name: String
  AssociatedTimestamp: Date
}

input AwsChimeGetPhoneNumberInput {
  PhoneNumberId: String!
}

type AwsChimeGetPhoneNumberOrderOutput {
  PhoneNumberOrder: AwsChimeS3k
}

input AwsChimeGetPhoneNumberOrderInput {
  PhoneNumberOrderId: String!
}

type AwsChimeGetPhoneNumberSettingsOutput {
  CallingName: String
  CallingNameUpdatedTimestamp: Date
}

type AwsChimeGetProxySessionOutput {
  ProxySession: AwsChimeS42
}

input AwsChimeGetProxySessionInput {
  VoiceConnectorId: String!
  ProxySessionId: String!
}

type AwsChimeGetRetentionSettingsOutput {
  RetentionSettings: AwsChimeS8v
  InitiateDeletionTimestamp: Date
}

type AwsChimeS8v {
  RoomRetentionSettings: AwsChimeS8vRoomRetentionSettings
  ConversationRetentionSettings: AwsChimeS8vConversationRetentionSettings
}

type AwsChimeS8vRoomRetentionSettings {
  RetentionDays: Int
}

type AwsChimeS8vConversationRetentionSettings {
  RetentionDays: Int
}

input AwsChimeGetRetentionSettingsInput {
  AccountId: String!
}

type AwsChimeGetRoomOutput {
  Room: AwsChimeS49
}

input AwsChimeGetRoomInput {
  AccountId: String!
  RoomId: String!
}

type AwsChimeGetSipMediaApplicationOutput {
  SipMediaApplication: AwsChimeS4l
}

input AwsChimeGetSipMediaApplicationInput {
  SipMediaApplicationId: String!
}

type AwsChimeGetSipMediaApplicationLoggingConfigurationOutput {
  SipMediaApplicationLoggingConfiguration: AwsChimeS94
}

type AwsChimeS94 {
  EnableSipMediaApplicationMessageLogs: Boolean
}

input AwsChimeGetSipMediaApplicationLoggingConfigurationInput {
  SipMediaApplicationId: String!
}

type AwsChimeGetSipRuleOutput {
  SipRule: AwsChimeS4w
}

input AwsChimeGetSipRuleInput {
  SipRuleId: String!
}

type AwsChimeGetUserOutput {
  User: AwsChimeS50
}

input AwsChimeGetUserInput {
  AccountId: String!
  UserId: String!
}

type AwsChimeGetUserSettingsOutput {
  UserSettings: AwsChimeS9b
}

type AwsChimeS9b {
  Telephony: AwsChimeS9bTelephony!
}

type AwsChimeS9bTelephony {
  InboundCalling: Boolean!
  OutboundCalling: Boolean!
  SMS: Boolean!
}

input AwsChimeGetUserSettingsInput {
  AccountId: String!
  UserId: String!
}

type AwsChimeGetVoiceConnectorOutput {
  VoiceConnector: AwsChimeS57
}

input AwsChimeGetVoiceConnectorInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorEmergencyCallingConfigurationOutput {
  EmergencyCallingConfiguration: AwsChimeS9h
}

type AwsChimeS9h {
  DNIS: [AwsChimeS9hDNIS]
}

type AwsChimeS9hDNIS {
  EmergencyPhoneNumber: String!
  TestPhoneNumber: String
  CallingCountry: String!
}

input AwsChimeGetVoiceConnectorEmergencyCallingConfigurationInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorGroupOutput {
  VoiceConnectorGroup: AwsChimeS5e
}

input AwsChimeGetVoiceConnectorGroupInput {
  VoiceConnectorGroupId: String!
}

type AwsChimeGetVoiceConnectorLoggingConfigurationOutput {
  LoggingConfiguration: AwsChimeS9o
}

type AwsChimeS9o {
  EnableSIPLogs: Boolean
}

input AwsChimeGetVoiceConnectorLoggingConfigurationInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorOriginationOutput {
  Origination: AwsChimeS9r
}

type AwsChimeS9r {
  Routes: [AwsChimeS9rRoutes]
  Disabled: Boolean
}

type AwsChimeS9rRoutes {
  Host: String
  Port: Int
  Protocol: String
  Priority: Int
  Weight: Int
}

input AwsChimeGetVoiceConnectorOriginationInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorProxyOutput {
  Proxy: AwsChimeSa0
}

type AwsChimeSa0 {
  DefaultSessionExpiryMinutes: Int
  Disabled: Boolean
  FallBackPhoneNumber: String
  PhoneNumberCountries: [String]
}

input AwsChimeGetVoiceConnectorProxyInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorStreamingConfigurationOutput {
  StreamingConfiguration: AwsChimeSa5
}

type AwsChimeSa5 {
  DataRetentionInHours: Int!
  Disabled: Boolean
  StreamingNotificationTargets: [AwsChimeSa5StreamingNotificationTargets]
}

type AwsChimeSa5StreamingNotificationTargets {
  NotificationTarget: String!
}

input AwsChimeGetVoiceConnectorStreamingConfigurationInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorTerminationOutput {
  Termination: AwsChimeSac
}

type AwsChimeSac {
  CpsLimit: Int
  DefaultPhoneNumber: String
  CallingRegions: [String]
  CidrAllowedList: [String]
  Disabled: Boolean
}

input AwsChimeGetVoiceConnectorTerminationInput {
  VoiceConnectorId: String!
}

type AwsChimeGetVoiceConnectorTerminationHealthOutput {
  TerminationHealth: AwsChimeGetVoiceConnectorTerminationHealthOutputTerminationHealth
}

type AwsChimeGetVoiceConnectorTerminationHealthOutputTerminationHealth {
  Timestamp: Date
  Source: String
}

input AwsChimeGetVoiceConnectorTerminationHealthInput {
  VoiceConnectorId: String!
}

type AwsChimeInviteUsersOutput {
  Invites: [AwsChimeInviteUsersOutputInvites]
}

type AwsChimeInviteUsersOutputInvites {
  InviteId: String
  Status: String
  EmailAddress: String
  EmailStatus: String
}

input AwsChimeInviteUsersInput {
  AccountId: String!
  UserEmailList: [String]!
  UserType: String
}

type AwsChimeListAccountsOutput {
  Accounts: [AwsChimeS28]
  NextToken: String
}

input AwsChimeListAccountsInput {
  Name: String
  UserEmail: String
  NextToken: String
  MaxResults: Int
}

type AwsChimeListAppInstanceAdminsOutput {
  AppInstanceArn: String
  AppInstanceAdmins: [AwsChimeListAppInstanceAdminsOutputAppInstanceAdmins]
  NextToken: String
}

type AwsChimeListAppInstanceAdminsOutputAppInstanceAdmins {
  Admin: AwsChimeS14
}

input AwsChimeListAppInstanceAdminsInput {
  AppInstanceArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsChimeListAppInstanceUsersOutput {
  AppInstanceArn: String
  AppInstanceUsers: [AwsChimeListAppInstanceUsersOutputAppInstanceUsers]
  NextToken: String
}

type AwsChimeListAppInstanceUsersOutputAppInstanceUsers {
  AppInstanceUserArn: String
  Name: String
  Metadata: String
}

input AwsChimeListAppInstanceUsersInput {
  AppInstanceArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsChimeListAppInstancesOutput {
  AppInstances: [AwsChimeListAppInstancesOutputAppInstances]
  NextToken: String
}

type AwsChimeListAppInstancesOutputAppInstances {
  AppInstanceArn: String
  Name: String
  Metadata: String
}

input AwsChimeListAppInstancesInput {
  MaxResults: Int
  NextToken: String
}

type AwsChimeListAttendeeTagsOutput {
  Tags: [AwsChimeSp]
}

type AwsChimeSp {
  Key: String!
  Value: String!
}

input AwsChimeListAttendeeTagsInput {
  MeetingId: String!
  AttendeeId: String!
}

type AwsChimeListAttendeesOutput {
  Attendees: [AwsChimeSu]
  NextToken: String
}

input AwsChimeListAttendeesInput {
  MeetingId: String!
  NextToken: String
  MaxResults: Int
}

type AwsChimeListBotsOutput {
  Bots: [AwsChimeS2s]
  NextToken: String
}

input AwsChimeListBotsInput {
  AccountId: String!
  MaxResults: Int
  NextToken: String
}

type AwsChimeListChannelBansOutput {
  ChannelArn: String
  NextToken: String
  ChannelBans: [AwsChimeListChannelBansOutputChannelBans]
}

type AwsChimeListChannelBansOutputChannelBans {
  Member: AwsChimeS14
}

input AwsChimeListChannelBansInput {
  ChannelArn: String!
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelMembershipsOutput {
  ChannelArn: String
  ChannelMemberships: [AwsChimeListChannelMembershipsOutputChannelMemberships]
  NextToken: String
}

type AwsChimeListChannelMembershipsOutputChannelMemberships {
  Member: AwsChimeS14
}

input AwsChimeListChannelMembershipsInput {
  ChannelArn: String!
  Type: String
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelMembershipsForAppInstanceUserOutput {
  ChannelMemberships: [AwsChimeS6u]
  NextToken: String
}

input AwsChimeListChannelMembershipsForAppInstanceUserInput {
  AppInstanceUserArn: String
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelMessagesOutput {
  ChannelArn: String
  NextToken: String
  ChannelMessages: [AwsChimeListChannelMessagesOutputChannelMessages]
}

type AwsChimeListChannelMessagesOutputChannelMessages {
  MessageId: String
  Content: String
  Metadata: String
  Type: String
  CreatedTimestamp: Date
  LastUpdatedTimestamp: Date
  LastEditedTimestamp: Date
  Sender: AwsChimeS14
  Redacted: Boolean
}

input AwsChimeListChannelMessagesInput {
  ChannelArn: String!
  SortOrder: String
  NotBefore: Date
  NotAfter: Date
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelModeratorsOutput {
  ChannelArn: String
  NextToken: String
  ChannelModerators: [AwsChimeListChannelModeratorsOutputChannelModerators]
}

type AwsChimeListChannelModeratorsOutputChannelModerators {
  Moderator: AwsChimeS14
}

input AwsChimeListChannelModeratorsInput {
  ChannelArn: String!
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelsOutput {
  Channels: [AwsChimeS6v]
  NextToken: String
}

input AwsChimeListChannelsInput {
  AppInstanceArn: String!
  Privacy: String
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListChannelsModeratedByAppInstanceUserOutput {
  Channels: [AwsChimeS6z]
  NextToken: String
}

input AwsChimeListChannelsModeratedByAppInstanceUserInput {
  AppInstanceUserArn: String
  MaxResults: Int
  NextToken: String
  ChimeBearer: String
}

type AwsChimeListMeetingTagsOutput {
  Tags: [AwsChimeSp]
}

input AwsChimeListMeetingTagsInput {
  MeetingId: String!
}

type AwsChimeListMeetingsOutput {
  Meetings: [AwsChimeS3a]
  NextToken: String
}

input AwsChimeListMeetingsInput {
  NextToken: String
  MaxResults: Int
}

type AwsChimeListPhoneNumberOrdersOutput {
  PhoneNumberOrders: [AwsChimeS3k]
  NextToken: String
}

input AwsChimeListPhoneNumberOrdersInput {
  NextToken: String
  MaxResults: Int
}

type AwsChimeListPhoneNumbersOutput {
  PhoneNumbers: [AwsChimeS8f]
  NextToken: String
}

input AwsChimeListPhoneNumbersInput {
  Status: String
  ProductType: String
  FilterName: String
  FilterValue: String
  MaxResults: Int
  NextToken: String
}

type AwsChimeListProxySessionsOutput {
  ProxySessions: [AwsChimeS42]
  NextToken: String
}

input AwsChimeListProxySessionsInput {
  VoiceConnectorId: String!
  Status: String
  NextToken: String
  MaxResults: Int
}

type AwsChimeListRoomMembershipsOutput {
  RoomMemberships: [AwsChimeS4c]
  NextToken: String
}

input AwsChimeListRoomMembershipsInput {
  AccountId: String!
  RoomId: String!
  MaxResults: Int
  NextToken: String
}

type AwsChimeListRoomsOutput {
  Rooms: [AwsChimeS49]
  NextToken: String
}

input AwsChimeListRoomsInput {
  AccountId: String!
  MemberId: String
  MaxResults: Int
  NextToken: String
}

type AwsChimeListSipMediaApplicationsOutput {
  SipMediaApplications: [AwsChimeS4l]
  NextToken: String
}

input AwsChimeListSipMediaApplicationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsChimeListSipRulesOutput {
  SipRules: [AwsChimeS4w]
  NextToken: String
}

input AwsChimeListSipRulesInput {
  SipMediaApplicationId: String
  MaxResults: Int
  NextToken: String
}

type AwsChimeListSupportedPhoneNumberCountriesOutput {
  PhoneNumberCountries: [AwsChimeListSupportedPhoneNumberCountriesOutputPhoneNumberCountries]
}

type AwsChimeListSupportedPhoneNumberCountriesOutputPhoneNumberCountries {
  CountryCode: String
  SupportedPhoneNumberTypes: [String]
}

input AwsChimeListSupportedPhoneNumberCountriesInput {
  ProductType: String!
}

type AwsChimeListTagsForResourceOutput {
  Tags: [AwsChimeSp]
}

input AwsChimeListTagsForResourceInput {
  ResourceARN: String!
}

type AwsChimeListUsersOutput {
  Users: [AwsChimeS50]
  NextToken: String
}

input AwsChimeListUsersInput {
  AccountId: String!
  UserEmail: String
  UserType: String
  MaxResults: Int
  NextToken: String
}

type AwsChimeListVoiceConnectorGroupsOutput {
  VoiceConnectorGroups: [AwsChimeS5e]
  NextToken: String
}

input AwsChimeListVoiceConnectorGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsChimeListVoiceConnectorTerminationCredentialsOutput {
  Usernames: [String]
}

input AwsChimeListVoiceConnectorTerminationCredentialsInput {
  VoiceConnectorId: String!
}

type AwsChimeListVoiceConnectorsOutput {
  VoiceConnectors: [AwsChimeS57]
  NextToken: String
}

input AwsChimeListVoiceConnectorsInput {
  NextToken: String
  MaxResults: Int
}

input AwsChimeLogoutUserInput {
  AccountId: String!
  UserId: String!
}

type AwsChimePutAppInstanceRetentionSettingsOutput {
  AppInstanceRetentionSettings: AwsChimeS7i
  InitiateDeletionTimestamp: Date
}

input AwsChimePutAppInstanceRetentionSettingsInput {
  AppInstanceArn: String!
  AppInstanceRetentionSettings: AwsChimeS7iInput!
}

input AwsChimeS7iInput {
  ChannelRetentionSettings: AwsChimeS7iChannelRetentionSettingsInput
}

input AwsChimeS7iChannelRetentionSettingsInput {
  RetentionDays: Int
}

type AwsChimePutAppInstanceStreamingConfigurationsOutput {
  AppInstanceStreamingConfigurations: [AwsChimeS7n]
}

input AwsChimePutAppInstanceStreamingConfigurationsInput {
  AppInstanceArn: String!
  AppInstanceStreamingConfigurations: [AwsChimeS7nInput]!
}

input AwsChimeS7nInput {
  AppInstanceDataType: String!
  ResourceArn: String!
}

type AwsChimePutEventsConfigurationOutput {
  EventsConfiguration: AwsChimeS83
}

input AwsChimePutEventsConfigurationInput {
  AccountId: String!
  BotId: String!
  OutboundEventsHTTPSEndpoint: String
  LambdaFunctionArn: String
}

type AwsChimePutRetentionSettingsOutput {
  RetentionSettings: AwsChimeS8v
  InitiateDeletionTimestamp: Date
}

input AwsChimePutRetentionSettingsInput {
  AccountId: String!
  RetentionSettings: AwsChimeS8vInput!
}

input AwsChimeS8vInput {
  RoomRetentionSettings: AwsChimeS8vRoomRetentionSettingsInput
  ConversationRetentionSettings: AwsChimeS8vConversationRetentionSettingsInput
}

input AwsChimeS8vRoomRetentionSettingsInput {
  RetentionDays: Int
}

input AwsChimeS8vConversationRetentionSettingsInput {
  RetentionDays: Int
}

type AwsChimePutSipMediaApplicationLoggingConfigurationOutput {
  SipMediaApplicationLoggingConfiguration: AwsChimeS94
}

input AwsChimePutSipMediaApplicationLoggingConfigurationInput {
  SipMediaApplicationId: String!
  SipMediaApplicationLoggingConfiguration: AwsChimeS94Input
}

input AwsChimeS94Input {
  EnableSipMediaApplicationMessageLogs: Boolean
}

type AwsChimePutVoiceConnectorEmergencyCallingConfigurationOutput {
  EmergencyCallingConfiguration: AwsChimeS9h
}

input AwsChimePutVoiceConnectorEmergencyCallingConfigurationInput {
  VoiceConnectorId: String!
  EmergencyCallingConfiguration: AwsChimeS9hInput!
}

input AwsChimeS9hInput {
  DNIS: [AwsChimeS9hDNISInput]
}

input AwsChimeS9hDNISInput {
  EmergencyPhoneNumber: String!
  TestPhoneNumber: String
  CallingCountry: String!
}

type AwsChimePutVoiceConnectorLoggingConfigurationOutput {
  LoggingConfiguration: AwsChimeS9o
}

input AwsChimePutVoiceConnectorLoggingConfigurationInput {
  VoiceConnectorId: String!
  LoggingConfiguration: AwsChimeS9oInput!
}

input AwsChimeS9oInput {
  EnableSIPLogs: Boolean
}

type AwsChimePutVoiceConnectorOriginationOutput {
  Origination: AwsChimeS9r
}

input AwsChimePutVoiceConnectorOriginationInput {
  VoiceConnectorId: String!
  Origination: AwsChimeS9rInput!
}

input AwsChimeS9rInput {
  Routes: [AwsChimeS9rRoutesInput]
  Disabled: Boolean
}

input AwsChimeS9rRoutesInput {
  Host: String
  Port: Int
  Protocol: String
  Priority: Int
  Weight: Int
}

type AwsChimePutVoiceConnectorProxyOutput {
  Proxy: AwsChimeSa0
}

input AwsChimePutVoiceConnectorProxyInput {
  VoiceConnectorId: String!
  DefaultSessionExpiryMinutes: Int!
  PhoneNumberPoolCountries: [String]!
  FallBackPhoneNumber: String
  Disabled: Boolean
}

type AwsChimePutVoiceConnectorStreamingConfigurationOutput {
  StreamingConfiguration: AwsChimeSa5
}

input AwsChimePutVoiceConnectorStreamingConfigurationInput {
  VoiceConnectorId: String!
  StreamingConfiguration: AwsChimeSa5Input!
}

input AwsChimeSa5Input {
  DataRetentionInHours: Int!
  Disabled: Boolean
  StreamingNotificationTargets: [AwsChimeSa5StreamingNotificationTargetsInput]
}

input AwsChimeSa5StreamingNotificationTargetsInput {
  NotificationTarget: String!
}

type AwsChimePutVoiceConnectorTerminationOutput {
  Termination: AwsChimeSac
}

input AwsChimePutVoiceConnectorTerminationInput {
  VoiceConnectorId: String!
  Termination: AwsChimeSacInput!
}

input AwsChimeSacInput {
  CpsLimit: Int
  DefaultPhoneNumber: String
  CallingRegions: [String]
  CidrAllowedList: [String]
  Disabled: Boolean
}

input AwsChimePutVoiceConnectorTerminationCredentialsInput {
  VoiceConnectorId: String!
  Credentials: [AwsChimePutVoiceConnectorTerminationCredentialsCredentialsInput]
}

input AwsChimePutVoiceConnectorTerminationCredentialsCredentialsInput {
  Username: String
  Password: String
}

type AwsChimeRedactChannelMessageOutput {
  ChannelArn: String
  MessageId: String
}

input AwsChimeRedactChannelMessageInput {
  ChannelArn: String!
  MessageId: String!
  ChimeBearer: String
}

input AwsChimeRedactConversationMessageInput {
  AccountId: String!
  ConversationId: String!
  MessageId: String!
}

input AwsChimeRedactRoomMessageInput {
  AccountId: String!
  RoomId: String!
  MessageId: String!
}

type AwsChimeRegenerateSecurityTokenOutput {
  Bot: AwsChimeS2s
}

input AwsChimeRegenerateSecurityTokenInput {
  AccountId: String!
  BotId: String!
}

type AwsChimeResetPersonalPINOutput {
  User: AwsChimeS50
}

input AwsChimeResetPersonalPINInput {
  AccountId: String!
  UserId: String!
}

type AwsChimeRestorePhoneNumberOutput {
  PhoneNumber: AwsChimeS8f
}

input AwsChimeRestorePhoneNumberInput {
  PhoneNumberId: String!
}

type AwsChimeSearchAvailablePhoneNumbersOutput {
  E164PhoneNumbers: [String]
  NextToken: String
}

input AwsChimeSearchAvailablePhoneNumbersInput {
  AreaCode: String
  City: String
  Country: String
  State: String
  TollFreePrefix: String
  PhoneNumberType: String
  MaxResults: Int
  NextToken: String
}

type AwsChimeSendChannelMessageOutput {
  ChannelArn: String
  MessageId: String
}

input AwsChimeSendChannelMessageInput {
  ChannelArn: String!
  Content: String!
  Type: String!
  Persistence: String!
  Metadata: String
  ClientRequestToken: String!
  ChimeBearer: String
}

input AwsChimeTagAttendeeInput {
  MeetingId: String!
  AttendeeId: String!
  Tags: [AwsChimeSpInput]!
}

input AwsChimeTagMeetingInput {
  MeetingId: String!
  Tags: [AwsChimeSpInput]!
}

input AwsChimeTagResourceInput {
  ResourceARN: String!
  Tags: [AwsChimeSpInput]!
}

input AwsChimeUntagAttendeeInput {
  MeetingId: String!
  AttendeeId: String!
  TagKeys: [String]!
}

input AwsChimeUntagMeetingInput {
  MeetingId: String!
  TagKeys: [String]!
}

input AwsChimeUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsChimeUpdateAccountOutput {
  Account: AwsChimeS28
}

input AwsChimeUpdateAccountInput {
  AccountId: String!
  Name: String
  DefaultLicense: String
}

input AwsChimeUpdateAccountSettingsInput {
  AccountId: String!
  AccountSettings: AwsChimeS7fInput!
}

input AwsChimeS7fInput {
  DisableRemoteControl: Boolean
  EnableDialOut: Boolean
}

type AwsChimeUpdateAppInstanceOutput {
  AppInstanceArn: String
}

input AwsChimeUpdateAppInstanceInput {
  AppInstanceArn: String!
  Name: String!
  Metadata: String
}

type AwsChimeUpdateAppInstanceUserOutput {
  AppInstanceUserArn: String
}

input AwsChimeUpdateAppInstanceUserInput {
  AppInstanceUserArn: String!
  Name: String!
  Metadata: String
}

type AwsChimeUpdateBotOutput {
  Bot: AwsChimeS2s
}

input AwsChimeUpdateBotInput {
  AccountId: String!
  BotId: String!
  Disabled: Boolean
}

type AwsChimeUpdateChannelOutput {
  ChannelArn: String
}

input AwsChimeUpdateChannelInput {
  ChannelArn: String!
  Name: String!
  Mode: String!
  Metadata: String
  ChimeBearer: String
}

type AwsChimeUpdateChannelMessageOutput {
  ChannelArn: String
  MessageId: String
}

input AwsChimeUpdateChannelMessageInput {
  ChannelArn: String!
  MessageId: String!
  Content: String
  Metadata: String
  ChimeBearer: String
}

type AwsChimeUpdateChannelReadMarkerOutput {
  ChannelArn: String
}

input AwsChimeUpdateChannelReadMarkerInput {
  ChannelArn: String!
  ChimeBearer: String
}

input AwsChimeUpdateGlobalSettingsInput {
  BusinessCalling: AwsChimeS85Input!
  VoiceConnector: AwsChimeS86Input!
}

input AwsChimeS85Input {
  CdrBucket: String
}

input AwsChimeS86Input {
  CdrBucket: String
}

type AwsChimeUpdatePhoneNumberOutput {
  PhoneNumber: AwsChimeS8f
}

input AwsChimeUpdatePhoneNumberInput {
  PhoneNumberId: String!
  ProductType: String
  CallingName: String
}

input AwsChimeUpdatePhoneNumberSettingsInput {
  CallingName: String!
}

type AwsChimeUpdateProxySessionOutput {
  ProxySession: AwsChimeS42
}

input AwsChimeUpdateProxySessionInput {
  VoiceConnectorId: String!
  ProxySessionId: String!
  Capabilities: [String]!
  ExpiryMinutes: Int
}

type AwsChimeUpdateRoomOutput {
  Room: AwsChimeS49
}

input AwsChimeUpdateRoomInput {
  AccountId: String!
  RoomId: String!
  Name: String
}

type AwsChimeUpdateRoomMembershipOutput {
  RoomMembership: AwsChimeS4c
}

input AwsChimeUpdateRoomMembershipInput {
  AccountId: String!
  RoomId: String!
  MemberId: String!
  Role: String
}

type AwsChimeUpdateSipMediaApplicationOutput {
  SipMediaApplication: AwsChimeS4l
}

input AwsChimeUpdateSipMediaApplicationInput {
  SipMediaApplicationId: String!
  Name: String
  Endpoints: [AwsChimeS4hInput]
}

type AwsChimeUpdateSipMediaApplicationCallOutput {
  SipMediaApplicationCall: AwsChimeS4o
}

input AwsChimeUpdateSipMediaApplicationCallInput {
  SipMediaApplicationId: String!
  TransactionId: String!
  Arguments: JSON!
}

type AwsChimeUpdateSipRuleOutput {
  SipRule: AwsChimeS4w
}

input AwsChimeUpdateSipRuleInput {
  SipRuleId: String!
  Name: String!
  Disabled: Boolean
  TargetApplications: [AwsChimeS4sInput]
}

type AwsChimeUpdateUserOutput {
  User: AwsChimeS50
}

input AwsChimeUpdateUserInput {
  AccountId: String!
  UserId: String!
  LicenseType: String
  UserType: String
  AlexaForBusinessMetadata: AwsChimeS21Input
}

input AwsChimeUpdateUserSettingsInput {
  AccountId: String!
  UserId: String!
  UserSettings: AwsChimeS9bInput!
}

input AwsChimeS9bInput {
  Telephony: AwsChimeS9bTelephonyInput!
}

input AwsChimeS9bTelephonyInput {
  InboundCalling: Boolean!
  OutboundCalling: Boolean!
  SMS: Boolean!
}

type AwsChimeUpdateVoiceConnectorOutput {
  VoiceConnector: AwsChimeS57
}

input AwsChimeUpdateVoiceConnectorInput {
  VoiceConnectorId: String!
  Name: String!
  RequireEncryption: Boolean!
}

type AwsChimeUpdateVoiceConnectorGroupOutput {
  VoiceConnectorGroup: AwsChimeS5e
}

input AwsChimeUpdateVoiceConnectorGroupInput {
  VoiceConnectorGroupId: String!
  Name: String!
  VoiceConnectorItems: [AwsChimeS5aInput]!
}

"""AWS Cloud9 (2017-09-23)"""
type AwsCloud9 {
  createEnvironmentEC2(input: AwsCloud9CreateEnvironmentEC2Input!, config: AwsConfig): AwsCloud9CreateEnvironmentEC2Output
  createEnvironmentMembership(input: AwsCloud9CreateEnvironmentMembershipInput!, config: AwsConfig): AwsCloud9CreateEnvironmentMembershipOutput
  deleteEnvironment(input: AwsCloud9DeleteEnvironmentInput!, config: AwsConfig): JSON
  deleteEnvironmentMembership(input: AwsCloud9DeleteEnvironmentMembershipInput!, config: AwsConfig): JSON
  describeEnvironmentMemberships(input: AwsCloud9DescribeEnvironmentMembershipsInput, config: AwsConfig): AwsCloud9DescribeEnvironmentMembershipsOutput
  describeEnvironmentStatus(input: AwsCloud9DescribeEnvironmentStatusInput!, config: AwsConfig): AwsCloud9DescribeEnvironmentStatusOutput
  describeEnvironments(input: AwsCloud9DescribeEnvironmentsInput!, config: AwsConfig): AwsCloud9DescribeEnvironmentsOutput
  listEnvironments(input: AwsCloud9ListEnvironmentsInput, config: AwsConfig): AwsCloud9ListEnvironmentsOutput
  listTagsForResource(input: AwsCloud9ListTagsForResourceInput!, config: AwsConfig): AwsCloud9ListTagsForResourceOutput
  tagResource(input: AwsCloud9TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCloud9UntagResourceInput!, config: AwsConfig): JSON
  updateEnvironment(input: AwsCloud9UpdateEnvironmentInput!, config: AwsConfig): JSON
  updateEnvironmentMembership(input: AwsCloud9UpdateEnvironmentMembershipInput!, config: AwsConfig): AwsCloud9UpdateEnvironmentMembershipOutput
}

type AwsCloud9CreateEnvironmentEC2Output {
  environmentId: String
}

input AwsCloud9CreateEnvironmentEC2Input {
  name: String!
  description: String
  clientRequestToken: String
  instanceType: String!
  subnetId: String
  imageId: String
  automaticStopTimeMinutes: Int
  ownerArn: String
  tags: [AwsCloud9SaInput]
  connectionType: String
}

input AwsCloud9SaInput {
  Key: String!
  Value: String!
}

type AwsCloud9CreateEnvironmentMembershipOutput {
  membership: AwsCloud9Sk!
}

type AwsCloud9Sk {
  permissions: String!
  userId: String!
  userArn: String!
  environmentId: String!
  lastAccess: Date
}

input AwsCloud9CreateEnvironmentMembershipInput {
  environmentId: String!
  userArn: String!
  permissions: String!
}

input AwsCloud9DeleteEnvironmentInput {
  environmentId: String!
}

input AwsCloud9DeleteEnvironmentMembershipInput {
  environmentId: String!
  userArn: String!
}

type AwsCloud9DescribeEnvironmentMembershipsOutput {
  memberships: [AwsCloud9Sk]
  nextToken: String
}

input AwsCloud9DescribeEnvironmentMembershipsInput {
  userArn: String
  environmentId: String
  permissions: [String]
  nextToken: String
  maxResults: Int
}

type AwsCloud9DescribeEnvironmentStatusOutput {
  status: String!
  message: String!
}

input AwsCloud9DescribeEnvironmentStatusInput {
  environmentId: String!
}

type AwsCloud9DescribeEnvironmentsOutput {
  environments: [AwsCloud9DescribeEnvironmentsOutputEnvironments]
}

type AwsCloud9DescribeEnvironmentsOutputEnvironments {
  id: String
  name: String
  description: String
  type: String!
  connectionType: String
  arn: String!
  ownerArn: String!
  lifecycle: AwsCloud9DescribeEnvironmentsOutputEnvironmentsLifecycle
  managedCredentialsStatus: String
}

type AwsCloud9DescribeEnvironmentsOutputEnvironmentsLifecycle {
  status: String
  reason: String
  failureResource: String
}

input AwsCloud9DescribeEnvironmentsInput {
  environmentIds: [String]!
}

type AwsCloud9ListEnvironmentsOutput {
  nextToken: String
  environmentIds: [String]
}

input AwsCloud9ListEnvironmentsInput {
  nextToken: String
  maxResults: Int
}

type AwsCloud9ListTagsForResourceOutput {
  Tags: [AwsCloud9Sa]
}

type AwsCloud9Sa {
  Key: String!
  Value: String!
}

input AwsCloud9ListTagsForResourceInput {
  ResourceARN: String!
}

input AwsCloud9TagResourceInput {
  ResourceARN: String!
  Tags: [AwsCloud9SaInput]!
}

input AwsCloud9UntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsCloud9UpdateEnvironmentInput {
  environmentId: String!
  name: String
  description: String
}

type AwsCloud9UpdateEnvironmentMembershipOutput {
  membership: AwsCloud9Sk
}

input AwsCloud9UpdateEnvironmentMembershipInput {
  environmentId: String!
  userArn: String!
  permissions: String!
}

"""Amazon CloudDirectory (2017-01-11)"""
type AwsCloudDirectory {
  addFacetToObject(input: AwsCloudDirectoryAddFacetToObjectInput!, config: AwsConfig): JSON
  applySchema(input: AwsCloudDirectoryApplySchemaInput!, config: AwsConfig): AwsCloudDirectoryApplySchemaOutput
  attachObject(input: AwsCloudDirectoryAttachObjectInput!, config: AwsConfig): AwsCloudDirectoryAttachObjectOutput
  attachPolicy(input: AwsCloudDirectoryAttachPolicyInput!, config: AwsConfig): JSON
  attachToIndex(input: AwsCloudDirectoryAttachToIndexInput!, config: AwsConfig): AwsCloudDirectoryAttachToIndexOutput
  attachTypedLink(input: AwsCloudDirectoryAttachTypedLinkInput!, config: AwsConfig): AwsCloudDirectoryAttachTypedLinkOutput
  batchRead(input: AwsCloudDirectoryBatchReadInput!, config: AwsConfig): AwsCloudDirectoryBatchReadOutput
  batchWrite(input: AwsCloudDirectoryBatchWriteInput!, config: AwsConfig): AwsCloudDirectoryBatchWriteOutput
  createDirectory(input: AwsCloudDirectoryCreateDirectoryInput!, config: AwsConfig): AwsCloudDirectoryCreateDirectoryOutput
  createFacet(input: AwsCloudDirectoryCreateFacetInput!, config: AwsConfig): JSON
  createIndex(input: AwsCloudDirectoryCreateIndexInput!, config: AwsConfig): AwsCloudDirectoryCreateIndexOutput
  createObject(input: AwsCloudDirectoryCreateObjectInput!, config: AwsConfig): AwsCloudDirectoryCreateObjectOutput
  createSchema(input: AwsCloudDirectoryCreateSchemaInput!, config: AwsConfig): AwsCloudDirectoryCreateSchemaOutput
  createTypedLinkFacet(input: AwsCloudDirectoryCreateTypedLinkFacetInput!, config: AwsConfig): JSON
  deleteDirectory(input: AwsCloudDirectoryDeleteDirectoryInput!, config: AwsConfig): AwsCloudDirectoryDeleteDirectoryOutput
  deleteFacet(input: AwsCloudDirectoryDeleteFacetInput!, config: AwsConfig): JSON
  deleteObject(input: AwsCloudDirectoryDeleteObjectInput!, config: AwsConfig): JSON
  deleteSchema(input: AwsCloudDirectoryDeleteSchemaInput!, config: AwsConfig): AwsCloudDirectoryDeleteSchemaOutput
  deleteTypedLinkFacet(input: AwsCloudDirectoryDeleteTypedLinkFacetInput!, config: AwsConfig): JSON
  detachFromIndex(input: AwsCloudDirectoryDetachFromIndexInput!, config: AwsConfig): AwsCloudDirectoryDetachFromIndexOutput
  detachObject(input: AwsCloudDirectoryDetachObjectInput!, config: AwsConfig): AwsCloudDirectoryDetachObjectOutput
  detachPolicy(input: AwsCloudDirectoryDetachPolicyInput!, config: AwsConfig): JSON
  detachTypedLink(input: AwsCloudDirectoryDetachTypedLinkInput!, config: AwsConfig): JSON
  disableDirectory(input: AwsCloudDirectoryDisableDirectoryInput!, config: AwsConfig): AwsCloudDirectoryDisableDirectoryOutput
  enableDirectory(input: AwsCloudDirectoryEnableDirectoryInput!, config: AwsConfig): AwsCloudDirectoryEnableDirectoryOutput
  getAppliedSchemaVersion(input: AwsCloudDirectoryGetAppliedSchemaVersionInput!, config: AwsConfig): AwsCloudDirectoryGetAppliedSchemaVersionOutput
  getDirectory(input: AwsCloudDirectoryGetDirectoryInput!, config: AwsConfig): AwsCloudDirectoryGetDirectoryOutput
  getFacet(input: AwsCloudDirectoryGetFacetInput!, config: AwsConfig): AwsCloudDirectoryGetFacetOutput
  getLinkAttributes(input: AwsCloudDirectoryGetLinkAttributesInput!, config: AwsConfig): AwsCloudDirectoryGetLinkAttributesOutput
  getObjectAttributes(input: AwsCloudDirectoryGetObjectAttributesInput!, config: AwsConfig): AwsCloudDirectoryGetObjectAttributesOutput
  getObjectInformation(input: AwsCloudDirectoryGetObjectInformationInput!, config: AwsConfig): AwsCloudDirectoryGetObjectInformationOutput
  getSchemaAsJson(input: AwsCloudDirectoryGetSchemaAsJsonInput!, config: AwsConfig): AwsCloudDirectoryGetSchemaAsJsonOutput
  getTypedLinkFacetInformation(input: AwsCloudDirectoryGetTypedLinkFacetInformationInput!, config: AwsConfig): AwsCloudDirectoryGetTypedLinkFacetInformationOutput
  listAppliedSchemaArns(input: AwsCloudDirectoryListAppliedSchemaArnsInput!, config: AwsConfig): AwsCloudDirectoryListAppliedSchemaArnsOutput
  listAttachedIndices(input: AwsCloudDirectoryListAttachedIndicesInput!, config: AwsConfig): AwsCloudDirectoryListAttachedIndicesOutput
  listDevelopmentSchemaArns(input: AwsCloudDirectoryListDevelopmentSchemaArnsInput, config: AwsConfig): AwsCloudDirectoryListDevelopmentSchemaArnsOutput
  listDirectories(input: AwsCloudDirectoryListDirectoriesInput, config: AwsConfig): AwsCloudDirectoryListDirectoriesOutput
  listFacetAttributes(input: AwsCloudDirectoryListFacetAttributesInput!, config: AwsConfig): AwsCloudDirectoryListFacetAttributesOutput
  listFacetNames(input: AwsCloudDirectoryListFacetNamesInput!, config: AwsConfig): AwsCloudDirectoryListFacetNamesOutput
  listIncomingTypedLinks(input: AwsCloudDirectoryListIncomingTypedLinksInput!, config: AwsConfig): AwsCloudDirectoryListIncomingTypedLinksOutput
  listIndex(input: AwsCloudDirectoryListIndexInput!, config: AwsConfig): AwsCloudDirectoryListIndexOutput
  listManagedSchemaArns(input: AwsCloudDirectoryListManagedSchemaArnsInput, config: AwsConfig): AwsCloudDirectoryListManagedSchemaArnsOutput
  listObjectAttributes(input: AwsCloudDirectoryListObjectAttributesInput!, config: AwsConfig): AwsCloudDirectoryListObjectAttributesOutput
  listObjectChildren(input: AwsCloudDirectoryListObjectChildrenInput!, config: AwsConfig): AwsCloudDirectoryListObjectChildrenOutput
  listObjectParentPaths(input: AwsCloudDirectoryListObjectParentPathsInput!, config: AwsConfig): AwsCloudDirectoryListObjectParentPathsOutput
  listObjectParents(input: AwsCloudDirectoryListObjectParentsInput!, config: AwsConfig): AwsCloudDirectoryListObjectParentsOutput
  listObjectPolicies(input: AwsCloudDirectoryListObjectPoliciesInput!, config: AwsConfig): AwsCloudDirectoryListObjectPoliciesOutput
  listOutgoingTypedLinks(input: AwsCloudDirectoryListOutgoingTypedLinksInput!, config: AwsConfig): AwsCloudDirectoryListOutgoingTypedLinksOutput
  listPolicyAttachments(input: AwsCloudDirectoryListPolicyAttachmentsInput!, config: AwsConfig): AwsCloudDirectoryListPolicyAttachmentsOutput
  listPublishedSchemaArns(input: AwsCloudDirectoryListPublishedSchemaArnsInput, config: AwsConfig): AwsCloudDirectoryListPublishedSchemaArnsOutput
  listTagsForResource(input: AwsCloudDirectoryListTagsForResourceInput!, config: AwsConfig): AwsCloudDirectoryListTagsForResourceOutput
  listTypedLinkFacetAttributes(input: AwsCloudDirectoryListTypedLinkFacetAttributesInput!, config: AwsConfig): AwsCloudDirectoryListTypedLinkFacetAttributesOutput
  listTypedLinkFacetNames(input: AwsCloudDirectoryListTypedLinkFacetNamesInput!, config: AwsConfig): AwsCloudDirectoryListTypedLinkFacetNamesOutput
  lookupPolicy(input: AwsCloudDirectoryLookupPolicyInput!, config: AwsConfig): AwsCloudDirectoryLookupPolicyOutput
  publishSchema(input: AwsCloudDirectoryPublishSchemaInput!, config: AwsConfig): AwsCloudDirectoryPublishSchemaOutput
  putSchemaFromJson(input: AwsCloudDirectoryPutSchemaFromJsonInput!, config: AwsConfig): AwsCloudDirectoryPutSchemaFromJsonOutput
  removeFacetFromObject(input: AwsCloudDirectoryRemoveFacetFromObjectInput!, config: AwsConfig): JSON
  tagResource(input: AwsCloudDirectoryTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCloudDirectoryUntagResourceInput!, config: AwsConfig): JSON
  updateFacet(input: AwsCloudDirectoryUpdateFacetInput!, config: AwsConfig): JSON
  updateLinkAttributes(input: AwsCloudDirectoryUpdateLinkAttributesInput!, config: AwsConfig): JSON
  updateObjectAttributes(input: AwsCloudDirectoryUpdateObjectAttributesInput!, config: AwsConfig): AwsCloudDirectoryUpdateObjectAttributesOutput
  updateSchema(input: AwsCloudDirectoryUpdateSchemaInput!, config: AwsConfig): AwsCloudDirectoryUpdateSchemaOutput
  updateTypedLinkFacet(input: AwsCloudDirectoryUpdateTypedLinkFacetInput!, config: AwsConfig): JSON
  upgradeAppliedSchema(input: AwsCloudDirectoryUpgradeAppliedSchemaInput!, config: AwsConfig): AwsCloudDirectoryUpgradeAppliedSchemaOutput
  upgradePublishedSchema(input: AwsCloudDirectoryUpgradePublishedSchemaInput!, config: AwsConfig): AwsCloudDirectoryUpgradePublishedSchemaOutput
}

input AwsCloudDirectoryAddFacetToObjectInput {
  DirectoryArn: String!
  SchemaFacet: AwsCloudDirectoryS3Input!
  ObjectAttributeList: [AwsCloudDirectoryS5Input]
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryS3Input {
  SchemaArn: String
  FacetName: String
}

input AwsCloudDirectoryS5Input {
  Key: AwsCloudDirectoryS7Input!
  Value: AwsCloudDirectoryS9Input!
}

input AwsCloudDirectoryS7Input {
  SchemaArn: String!
  FacetName: String!
  Name: String!
}

input AwsCloudDirectoryS9Input {
  StringValue: String
  BinaryValue: JSON
  BooleanValue: Boolean
  NumberValue: String
  DatetimeValue: Date
}

input AwsCloudDirectorySfInput {
  Selector: String
}

type AwsCloudDirectoryApplySchemaOutput {
  AppliedSchemaArn: String
  DirectoryArn: String
}

input AwsCloudDirectoryApplySchemaInput {
  PublishedSchemaArn: String!
  DirectoryArn: String!
}

type AwsCloudDirectoryAttachObjectOutput {
  AttachedObjectIdentifier: String
}

input AwsCloudDirectoryAttachObjectInput {
  DirectoryArn: String!
  ParentReference: AwsCloudDirectorySfInput!
  ChildReference: AwsCloudDirectorySfInput!
  LinkName: String!
}

input AwsCloudDirectoryAttachPolicyInput {
  DirectoryArn: String!
  PolicyReference: AwsCloudDirectorySfInput!
  ObjectReference: AwsCloudDirectorySfInput!
}

type AwsCloudDirectoryAttachToIndexOutput {
  AttachedObjectIdentifier: String
}

input AwsCloudDirectoryAttachToIndexInput {
  DirectoryArn: String!
  IndexReference: AwsCloudDirectorySfInput!
  TargetReference: AwsCloudDirectorySfInput!
}

type AwsCloudDirectoryAttachTypedLinkOutput {
  TypedLinkSpecifier: AwsCloudDirectorySy
}

type AwsCloudDirectorySy {
  TypedLinkFacet: AwsCloudDirectorySt!
  SourceObjectReference: AwsCloudDirectorySf!
  TargetObjectReference: AwsCloudDirectorySf!
  IdentityAttributeValues: [AwsCloudDirectorySv]!
}

type AwsCloudDirectorySt {
  SchemaArn: String!
  TypedLinkName: String!
}

type AwsCloudDirectorySf {
  Selector: String
}

type AwsCloudDirectorySv {
  AttributeName: String!
  Value: AwsCloudDirectoryS9!
}

type AwsCloudDirectoryS9 {
  StringValue: String
  BinaryValue: JSON
  BooleanValue: Boolean
  NumberValue: String
  DatetimeValue: Date
}

input AwsCloudDirectoryAttachTypedLinkInput {
  DirectoryArn: String!
  SourceObjectReference: AwsCloudDirectorySfInput!
  TargetObjectReference: AwsCloudDirectorySfInput!
  TypedLinkFacet: AwsCloudDirectoryStInput!
  Attributes: [AwsCloudDirectorySvInput]!
}

input AwsCloudDirectoryStInput {
  SchemaArn: String!
  TypedLinkName: String!
}

input AwsCloudDirectorySvInput {
  AttributeName: String!
  Value: AwsCloudDirectoryS9Input!
}

type AwsCloudDirectoryBatchReadOutput {
  Responses: [AwsCloudDirectoryBatchReadOutputResponses]
}

type AwsCloudDirectoryBatchReadOutputResponses {
  SuccessfulResponse: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponse
  ExceptionResponse: AwsCloudDirectoryBatchReadOutputResponsesExceptionResponse
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponse {
  ListObjectAttributes: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectAttributes
  ListObjectChildren: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectChildren
  GetObjectInformation: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetObjectInformation
  GetObjectAttributes: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetObjectAttributes
  ListAttachedIndices: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListAttachedIndices
  ListObjectParentPaths: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectParentPaths
  ListObjectPolicies: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectPolicies
  ListPolicyAttachments: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListPolicyAttachments
  LookupPolicy: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseLookupPolicy
  ListIndex: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListIndex
  ListOutgoingTypedLinks: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListOutgoingTypedLinks
  ListIncomingTypedLinks: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListIncomingTypedLinks
  GetLinkAttributes: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetLinkAttributes
  ListObjectParents: AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectParents
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectAttributes {
  Attributes: [AwsCloudDirectoryS5]
  NextToken: String
}

type AwsCloudDirectoryS5 {
  Key: AwsCloudDirectoryS7!
  Value: AwsCloudDirectoryS9!
}

type AwsCloudDirectoryS7 {
  SchemaArn: String!
  FacetName: String!
  Name: String!
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectChildren {
  Children: JSON
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetObjectInformation {
  SchemaFacets: [AwsCloudDirectoryS3]
  ObjectIdentifier: String
}

type AwsCloudDirectoryS3 {
  SchemaArn: String
  FacetName: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetObjectAttributes {
  Attributes: [AwsCloudDirectoryS5]
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListAttachedIndices {
  IndexAttachments: [AwsCloudDirectoryS21]
  NextToken: String
}

type AwsCloudDirectoryS21 {
  IndexedAttributes: [AwsCloudDirectoryS5]
  ObjectIdentifier: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectParentPaths {
  PathToObjectIdentifiersList: [AwsCloudDirectoryS24]
  NextToken: String
}

type AwsCloudDirectoryS24 {
  Path: String
  ObjectIdentifiers: [String]
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectPolicies {
  AttachedPolicyIds: [String]
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListPolicyAttachments {
  ObjectIdentifiers: [String]
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseLookupPolicy {
  PolicyToPathList: [AwsCloudDirectoryS2b]
  NextToken: String
}

type AwsCloudDirectoryS2b {
  Path: String
  Policies: [AwsCloudDirectoryS2bPolicies]
}

type AwsCloudDirectoryS2bPolicies {
  PolicyId: String
  ObjectIdentifier: String
  PolicyType: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListIndex {
  IndexAttachments: [AwsCloudDirectoryS21]
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListOutgoingTypedLinks {
  TypedLinkSpecifiers: [AwsCloudDirectorySy]
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListIncomingTypedLinks {
  LinkSpecifiers: [AwsCloudDirectorySy]
  NextToken: String
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseGetLinkAttributes {
  Attributes: [AwsCloudDirectoryS5]
}

type AwsCloudDirectoryBatchReadOutputResponsesSuccessfulResponseListObjectParents {
  ParentLinks: [AwsCloudDirectoryS2m]
  NextToken: String
}

type AwsCloudDirectoryS2m {
  ObjectIdentifier: String
  LinkName: String
}

type AwsCloudDirectoryBatchReadOutputResponsesExceptionResponse {
  Type: String
  Message: String
}

input AwsCloudDirectoryBatchReadInput {
  DirectoryArn: String!
  Operations: [AwsCloudDirectoryBatchReadOperationsInput]!
  ConsistencyLevel: String
}

input AwsCloudDirectoryBatchReadOperationsInput {
  ListObjectAttributes: AwsCloudDirectoryBatchReadOperationsListObjectAttributesInput
  ListObjectChildren: AwsCloudDirectoryBatchReadOperationsListObjectChildrenInput
  ListAttachedIndices: AwsCloudDirectoryBatchReadOperationsListAttachedIndicesInput
  ListObjectParentPaths: AwsCloudDirectoryBatchReadOperationsListObjectParentPathsInput
  GetObjectInformation: AwsCloudDirectoryBatchReadOperationsGetObjectInformationInput
  GetObjectAttributes: AwsCloudDirectoryBatchReadOperationsGetObjectAttributesInput
  ListObjectParents: AwsCloudDirectoryBatchReadOperationsListObjectParentsInput
  ListObjectPolicies: AwsCloudDirectoryBatchReadOperationsListObjectPoliciesInput
  ListPolicyAttachments: AwsCloudDirectoryBatchReadOperationsListPolicyAttachmentsInput
  LookupPolicy: AwsCloudDirectoryBatchReadOperationsLookupPolicyInput
  ListIndex: AwsCloudDirectoryBatchReadOperationsListIndexInput
  ListOutgoingTypedLinks: AwsCloudDirectoryBatchReadOperationsListOutgoingTypedLinksInput
  ListIncomingTypedLinks: AwsCloudDirectoryBatchReadOperationsListIncomingTypedLinksInput
  GetLinkAttributes: AwsCloudDirectoryBatchReadOperationsGetLinkAttributesInput
}

input AwsCloudDirectoryBatchReadOperationsListObjectAttributesInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  FacetFilter: AwsCloudDirectoryS3Input
}

input AwsCloudDirectoryBatchReadOperationsListObjectChildrenInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsListAttachedIndicesInput {
  TargetReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsListObjectParentPathsInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsGetObjectInformationInput {
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchReadOperationsGetObjectAttributesInput {
  ObjectReference: AwsCloudDirectorySfInput!
  SchemaFacet: AwsCloudDirectoryS3Input!
  AttributeNames: [String]!
}

input AwsCloudDirectoryBatchReadOperationsListObjectParentsInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsListObjectPoliciesInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsListPolicyAttachmentsInput {
  PolicyReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsLookupPolicyInput {
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsListIndexInput {
  RangesOnIndexedValues: [AwsCloudDirectoryS1gInput]
  IndexReference: AwsCloudDirectorySfInput!
  MaxResults: Int
  NextToken: String
}

input AwsCloudDirectoryS1gInput {
  AttributeKey: AwsCloudDirectoryS7Input
  Range: AwsCloudDirectoryS1iInput
}

input AwsCloudDirectoryS1iInput {
  StartMode: String!
  StartValue: AwsCloudDirectoryS9Input
  EndMode: String!
  EndValue: AwsCloudDirectoryS9Input
}

input AwsCloudDirectoryBatchReadOperationsListOutgoingTypedLinksInput {
  ObjectReference: AwsCloudDirectorySfInput!
  FilterAttributeRanges: [AwsCloudDirectoryS1lInput]
  FilterTypedLink: AwsCloudDirectoryStInput
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryS1lInput {
  AttributeName: String
  Range: AwsCloudDirectoryS1iInput!
}

input AwsCloudDirectoryBatchReadOperationsListIncomingTypedLinksInput {
  ObjectReference: AwsCloudDirectorySfInput!
  FilterAttributeRanges: [AwsCloudDirectoryS1lInput]
  FilterTypedLink: AwsCloudDirectoryStInput
  NextToken: String
  MaxResults: Int
}

input AwsCloudDirectoryBatchReadOperationsGetLinkAttributesInput {
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
  AttributeNames: [String]!
}

input AwsCloudDirectorySyInput {
  TypedLinkFacet: AwsCloudDirectoryStInput!
  SourceObjectReference: AwsCloudDirectorySfInput!
  TargetObjectReference: AwsCloudDirectorySfInput!
  IdentityAttributeValues: [AwsCloudDirectorySvInput]!
}

type AwsCloudDirectoryBatchWriteOutput {
  Responses: [AwsCloudDirectoryBatchWriteOutputResponses]
}

type AwsCloudDirectoryBatchWriteOutputResponses {
  CreateObject: AwsCloudDirectoryBatchWriteOutputResponsesCreateObject
  AttachObject: AwsCloudDirectoryBatchWriteOutputResponsesAttachObject
  DetachObject: AwsCloudDirectoryBatchWriteOutputResponsesDetachObject
  UpdateObjectAttributes: AwsCloudDirectoryBatchWriteOutputResponsesUpdateObjectAttributes
  DeleteObject: JSON
  AddFacetToObject: JSON
  RemoveFacetFromObject: JSON
  AttachPolicy: JSON
  DetachPolicy: JSON
  CreateIndex: AwsCloudDirectoryBatchWriteOutputResponsesCreateIndex
  AttachToIndex: AwsCloudDirectoryBatchWriteOutputResponsesAttachToIndex
  DetachFromIndex: AwsCloudDirectoryBatchWriteOutputResponsesDetachFromIndex
  AttachTypedLink: AwsCloudDirectoryBatchWriteOutputResponsesAttachTypedLink
  DetachTypedLink: JSON
  UpdateLinkAttributes: JSON
}

type AwsCloudDirectoryBatchWriteOutputResponsesCreateObject {
  ObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesAttachObject {
  attachedObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesDetachObject {
  detachedObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesUpdateObjectAttributes {
  ObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesCreateIndex {
  ObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesAttachToIndex {
  AttachedObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesDetachFromIndex {
  DetachedObjectIdentifier: String
}

type AwsCloudDirectoryBatchWriteOutputResponsesAttachTypedLink {
  TypedLinkSpecifier: AwsCloudDirectorySy
}

input AwsCloudDirectoryBatchWriteInput {
  DirectoryArn: String!
  Operations: [AwsCloudDirectoryBatchWriteOperationsInput]!
}

input AwsCloudDirectoryBatchWriteOperationsInput {
  CreateObject: AwsCloudDirectoryBatchWriteOperationsCreateObjectInput
  AttachObject: AwsCloudDirectoryBatchWriteOperationsAttachObjectInput
  DetachObject: AwsCloudDirectoryBatchWriteOperationsDetachObjectInput
  UpdateObjectAttributes: AwsCloudDirectoryBatchWriteOperationsUpdateObjectAttributesInput
  DeleteObject: AwsCloudDirectoryBatchWriteOperationsDeleteObjectInput
  AddFacetToObject: AwsCloudDirectoryBatchWriteOperationsAddFacetToObjectInput
  RemoveFacetFromObject: AwsCloudDirectoryBatchWriteOperationsRemoveFacetFromObjectInput
  AttachPolicy: AwsCloudDirectoryBatchWriteOperationsAttachPolicyInput
  DetachPolicy: AwsCloudDirectoryBatchWriteOperationsDetachPolicyInput
  CreateIndex: AwsCloudDirectoryBatchWriteOperationsCreateIndexInput
  AttachToIndex: AwsCloudDirectoryBatchWriteOperationsAttachToIndexInput
  DetachFromIndex: AwsCloudDirectoryBatchWriteOperationsDetachFromIndexInput
  AttachTypedLink: AwsCloudDirectoryBatchWriteOperationsAttachTypedLinkInput
  DetachTypedLink: AwsCloudDirectoryBatchWriteOperationsDetachTypedLinkInput
  UpdateLinkAttributes: AwsCloudDirectoryBatchWriteOperationsUpdateLinkAttributesInput
}

input AwsCloudDirectoryBatchWriteOperationsCreateObjectInput {
  SchemaFacet: [AwsCloudDirectoryS3Input]!
  ObjectAttributeList: [AwsCloudDirectoryS5Input]!
  ParentReference: AwsCloudDirectorySfInput
  LinkName: String
  BatchReferenceName: String
}

input AwsCloudDirectoryBatchWriteOperationsAttachObjectInput {
  ParentReference: AwsCloudDirectorySfInput!
  ChildReference: AwsCloudDirectorySfInput!
  LinkName: String!
}

input AwsCloudDirectoryBatchWriteOperationsDetachObjectInput {
  ParentReference: AwsCloudDirectorySfInput!
  LinkName: String!
  BatchReferenceName: String
}

input AwsCloudDirectoryBatchWriteOperationsUpdateObjectAttributesInput {
  ObjectReference: AwsCloudDirectorySfInput!
  AttributeUpdates: [AwsCloudDirectoryS2zInput]!
}

input AwsCloudDirectoryS2zInput {
  ObjectAttributeKey: AwsCloudDirectoryS7Input
  ObjectAttributeAction: AwsCloudDirectoryS2zObjectAttributeActionInput
}

input AwsCloudDirectoryS2zObjectAttributeActionInput {
  ObjectAttributeActionType: String
  ObjectAttributeUpdateValue: AwsCloudDirectoryS9Input
}

input AwsCloudDirectoryBatchWriteOperationsDeleteObjectInput {
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsAddFacetToObjectInput {
  SchemaFacet: AwsCloudDirectoryS3Input!
  ObjectAttributeList: [AwsCloudDirectoryS5Input]!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsRemoveFacetFromObjectInput {
  SchemaFacet: AwsCloudDirectoryS3Input!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsAttachPolicyInput {
  PolicyReference: AwsCloudDirectorySfInput!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsDetachPolicyInput {
  PolicyReference: AwsCloudDirectorySfInput!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsCreateIndexInput {
  OrderedIndexedAttributeList: [AwsCloudDirectoryS7Input]!
  IsUnique: Boolean!
  ParentReference: AwsCloudDirectorySfInput
  LinkName: String
  BatchReferenceName: String
}

input AwsCloudDirectoryBatchWriteOperationsAttachToIndexInput {
  IndexReference: AwsCloudDirectorySfInput!
  TargetReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsDetachFromIndexInput {
  IndexReference: AwsCloudDirectorySfInput!
  TargetReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryBatchWriteOperationsAttachTypedLinkInput {
  SourceObjectReference: AwsCloudDirectorySfInput!
  TargetObjectReference: AwsCloudDirectorySfInput!
  TypedLinkFacet: AwsCloudDirectoryStInput!
  Attributes: [AwsCloudDirectorySvInput]!
}

input AwsCloudDirectoryBatchWriteOperationsDetachTypedLinkInput {
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
}

input AwsCloudDirectoryBatchWriteOperationsUpdateLinkAttributesInput {
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
  AttributeUpdates: [AwsCloudDirectoryS3gInput]!
}

input AwsCloudDirectoryS3gInput {
  AttributeKey: AwsCloudDirectoryS7Input
  AttributeAction: AwsCloudDirectoryS3gAttributeActionInput
}

input AwsCloudDirectoryS3gAttributeActionInput {
  AttributeActionType: String
  AttributeUpdateValue: AwsCloudDirectoryS9Input
}

type AwsCloudDirectoryCreateDirectoryOutput {
  DirectoryArn: String!
  Name: String!
  ObjectIdentifier: String!
  AppliedSchemaArn: String!
}

input AwsCloudDirectoryCreateDirectoryInput {
  Name: String!
  SchemaArn: String!
}

input AwsCloudDirectoryCreateFacetInput {
  SchemaArn: String!
  Name: String!
  Attributes: [AwsCloudDirectoryS47Input]
  ObjectType: String
  FacetStyle: String
}

input AwsCloudDirectoryS47Input {
  Name: String!
  AttributeDefinition: AwsCloudDirectoryS47AttributeDefinitionInput
  AttributeReference: AwsCloudDirectoryS47AttributeReferenceInput
  RequiredBehavior: String
}

input AwsCloudDirectoryS47AttributeDefinitionInput {
  Type: String!
  DefaultValue: AwsCloudDirectoryS9Input
  IsImmutable: Boolean
  Rules: JSON
}

input AwsCloudDirectoryS47AttributeReferenceInput {
  TargetFacetName: String!
  TargetAttributeName: String!
}

type AwsCloudDirectoryCreateIndexOutput {
  ObjectIdentifier: String
}

input AwsCloudDirectoryCreateIndexInput {
  DirectoryArn: String!
  OrderedIndexedAttributeList: [AwsCloudDirectoryS7Input]!
  IsUnique: Boolean!
  ParentReference: AwsCloudDirectorySfInput
  LinkName: String
}

type AwsCloudDirectoryCreateObjectOutput {
  ObjectIdentifier: String
}

input AwsCloudDirectoryCreateObjectInput {
  DirectoryArn: String!
  SchemaFacets: [AwsCloudDirectoryS3Input]!
  ObjectAttributeList: [AwsCloudDirectoryS5Input]
  ParentReference: AwsCloudDirectorySfInput
  LinkName: String
}

type AwsCloudDirectoryCreateSchemaOutput {
  SchemaArn: String
}

input AwsCloudDirectoryCreateSchemaInput {
  Name: String!
}

input AwsCloudDirectoryCreateTypedLinkFacetInput {
  SchemaArn: String!
  Facet: AwsCloudDirectoryCreateTypedLinkFacetFacetInput!
}

input AwsCloudDirectoryCreateTypedLinkFacetFacetInput {
  Name: String!
  Attributes: [AwsCloudDirectoryS4wInput]!
  IdentityAttributeOrder: [String]!
}

input AwsCloudDirectoryS4wInput {
  Name: String!
  Type: String!
  DefaultValue: AwsCloudDirectoryS9Input
  IsImmutable: Boolean
  Rules: JSON
  RequiredBehavior: String!
}

type AwsCloudDirectoryDeleteDirectoryOutput {
  DirectoryArn: String!
}

input AwsCloudDirectoryDeleteDirectoryInput {
  DirectoryArn: String!
}

input AwsCloudDirectoryDeleteFacetInput {
  SchemaArn: String!
  Name: String!
}

input AwsCloudDirectoryDeleteObjectInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
}

type AwsCloudDirectoryDeleteSchemaOutput {
  SchemaArn: String
}

input AwsCloudDirectoryDeleteSchemaInput {
  SchemaArn: String!
}

input AwsCloudDirectoryDeleteTypedLinkFacetInput {
  SchemaArn: String!
  Name: String!
}

type AwsCloudDirectoryDetachFromIndexOutput {
  DetachedObjectIdentifier: String
}

input AwsCloudDirectoryDetachFromIndexInput {
  DirectoryArn: String!
  IndexReference: AwsCloudDirectorySfInput!
  TargetReference: AwsCloudDirectorySfInput!
}

type AwsCloudDirectoryDetachObjectOutput {
  DetachedObjectIdentifier: String
}

input AwsCloudDirectoryDetachObjectInput {
  DirectoryArn: String!
  ParentReference: AwsCloudDirectorySfInput!
  LinkName: String!
}

input AwsCloudDirectoryDetachPolicyInput {
  DirectoryArn: String!
  PolicyReference: AwsCloudDirectorySfInput!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryDetachTypedLinkInput {
  DirectoryArn: String!
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
}

type AwsCloudDirectoryDisableDirectoryOutput {
  DirectoryArn: String!
}

input AwsCloudDirectoryDisableDirectoryInput {
  DirectoryArn: String!
}

type AwsCloudDirectoryEnableDirectoryOutput {
  DirectoryArn: String!
}

input AwsCloudDirectoryEnableDirectoryInput {
  DirectoryArn: String!
}

type AwsCloudDirectoryGetAppliedSchemaVersionOutput {
  AppliedSchemaArn: String
}

input AwsCloudDirectoryGetAppliedSchemaVersionInput {
  SchemaArn: String!
}

type AwsCloudDirectoryGetDirectoryOutput {
  Directory: AwsCloudDirectoryS5n!
}

type AwsCloudDirectoryS5n {
  Name: String
  DirectoryArn: String
  State: String
  CreationDateTime: Date
}

input AwsCloudDirectoryGetDirectoryInput {
  DirectoryArn: String!
}

type AwsCloudDirectoryGetFacetOutput {
  Facet: AwsCloudDirectoryGetFacetOutputFacet
}

type AwsCloudDirectoryGetFacetOutputFacet {
  Name: String
  ObjectType: String
  FacetStyle: String
}

input AwsCloudDirectoryGetFacetInput {
  SchemaArn: String!
  Name: String!
}

type AwsCloudDirectoryGetLinkAttributesOutput {
  Attributes: [AwsCloudDirectoryS5]
}

input AwsCloudDirectoryGetLinkAttributesInput {
  DirectoryArn: String!
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
  AttributeNames: [String]!
  ConsistencyLevel: String
}

type AwsCloudDirectoryGetObjectAttributesOutput {
  Attributes: [AwsCloudDirectoryS5]
}

input AwsCloudDirectoryGetObjectAttributesInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  ConsistencyLevel: String
  SchemaFacet: AwsCloudDirectoryS3Input!
  AttributeNames: [String]!
}

type AwsCloudDirectoryGetObjectInformationOutput {
  SchemaFacets: [AwsCloudDirectoryS3]
  ObjectIdentifier: String
}

input AwsCloudDirectoryGetObjectInformationInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  ConsistencyLevel: String
}

type AwsCloudDirectoryGetSchemaAsJsonOutput {
  Name: String
  Document: String
}

input AwsCloudDirectoryGetSchemaAsJsonInput {
  SchemaArn: String!
}

type AwsCloudDirectoryGetTypedLinkFacetInformationOutput {
  IdentityAttributeOrder: [String]
}

input AwsCloudDirectoryGetTypedLinkFacetInformationInput {
  SchemaArn: String!
  Name: String!
}

type AwsCloudDirectoryListAppliedSchemaArnsOutput {
  SchemaArns: [String]
  NextToken: String
}

input AwsCloudDirectoryListAppliedSchemaArnsInput {
  DirectoryArn: String!
  SchemaArn: String
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListAttachedIndicesOutput {
  IndexAttachments: [AwsCloudDirectoryS21]
  NextToken: String
}

input AwsCloudDirectoryListAttachedIndicesInput {
  DirectoryArn: String!
  TargetReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListDevelopmentSchemaArnsOutput {
  SchemaArns: [String]
  NextToken: String
}

input AwsCloudDirectoryListDevelopmentSchemaArnsInput {
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListDirectoriesOutput {
  Directories: [AwsCloudDirectoryS5n]!
  NextToken: String
}

input AwsCloudDirectoryListDirectoriesInput {
  NextToken: String
  MaxResults: Int
  state: String
}

type AwsCloudDirectoryListFacetAttributesOutput {
  Attributes: [AwsCloudDirectoryS47]
  NextToken: String
}

type AwsCloudDirectoryS47 {
  Name: String!
  AttributeDefinition: AwsCloudDirectoryS47AttributeDefinition
  AttributeReference: AwsCloudDirectoryS47AttributeReference
  RequiredBehavior: String
}

type AwsCloudDirectoryS47AttributeDefinition {
  Type: String!
  DefaultValue: AwsCloudDirectoryS9
  IsImmutable: Boolean
  Rules: JSON
}

type AwsCloudDirectoryS47AttributeReference {
  TargetFacetName: String!
  TargetAttributeName: String!
}

input AwsCloudDirectoryListFacetAttributesInput {
  SchemaArn: String!
  Name: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListFacetNamesOutput {
  FacetNames: [String]
  NextToken: String
}

input AwsCloudDirectoryListFacetNamesInput {
  SchemaArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListIncomingTypedLinksOutput {
  LinkSpecifiers: [AwsCloudDirectorySy]
  NextToken: String
}

input AwsCloudDirectoryListIncomingTypedLinksInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  FilterAttributeRanges: [AwsCloudDirectoryS1lInput]
  FilterTypedLink: AwsCloudDirectoryStInput
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListIndexOutput {
  IndexAttachments: [AwsCloudDirectoryS21]
  NextToken: String
}

input AwsCloudDirectoryListIndexInput {
  DirectoryArn: String!
  RangesOnIndexedValues: [AwsCloudDirectoryS1gInput]
  IndexReference: AwsCloudDirectorySfInput!
  MaxResults: Int
  NextToken: String
  ConsistencyLevel: String
}

type AwsCloudDirectoryListManagedSchemaArnsOutput {
  SchemaArns: [String]
  NextToken: String
}

input AwsCloudDirectoryListManagedSchemaArnsInput {
  SchemaArn: String
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListObjectAttributesOutput {
  Attributes: [AwsCloudDirectoryS5]
  NextToken: String
}

input AwsCloudDirectoryListObjectAttributesInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
  FacetFilter: AwsCloudDirectoryS3Input
}

type AwsCloudDirectoryListObjectChildrenOutput {
  Children: JSON
  NextToken: String
}

input AwsCloudDirectoryListObjectChildrenInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListObjectParentPathsOutput {
  PathToObjectIdentifiersList: [AwsCloudDirectoryS24]
  NextToken: String
}

input AwsCloudDirectoryListObjectParentPathsInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListObjectParentsOutput {
  Parents: JSON
  NextToken: String
  ParentLinks: [AwsCloudDirectoryS2m]
}

input AwsCloudDirectoryListObjectParentsInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
  IncludeAllLinksToEachParent: Boolean
}

type AwsCloudDirectoryListObjectPoliciesOutput {
  AttachedPolicyIds: [String]
  NextToken: String
}

input AwsCloudDirectoryListObjectPoliciesInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListOutgoingTypedLinksOutput {
  TypedLinkSpecifiers: [AwsCloudDirectorySy]
  NextToken: String
}

input AwsCloudDirectoryListOutgoingTypedLinksInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  FilterAttributeRanges: [AwsCloudDirectoryS1lInput]
  FilterTypedLink: AwsCloudDirectoryStInput
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListPolicyAttachmentsOutput {
  ObjectIdentifiers: [String]
  NextToken: String
}

input AwsCloudDirectoryListPolicyAttachmentsInput {
  DirectoryArn: String!
  PolicyReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
  ConsistencyLevel: String
}

type AwsCloudDirectoryListPublishedSchemaArnsOutput {
  SchemaArns: [String]
  NextToken: String
}

input AwsCloudDirectoryListPublishedSchemaArnsInput {
  SchemaArn: String
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListTagsForResourceOutput {
  Tags: [AwsCloudDirectoryS79]
  NextToken: String
}

type AwsCloudDirectoryS79 {
  Key: String
  Value: String
}

input AwsCloudDirectoryListTagsForResourceInput {
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListTypedLinkFacetAttributesOutput {
  Attributes: [AwsCloudDirectoryS4w]
  NextToken: String
}

type AwsCloudDirectoryS4w {
  Name: String!
  Type: String!
  DefaultValue: AwsCloudDirectoryS9
  IsImmutable: Boolean
  Rules: JSON
  RequiredBehavior: String!
}

input AwsCloudDirectoryListTypedLinkFacetAttributesInput {
  SchemaArn: String!
  Name: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryListTypedLinkFacetNamesOutput {
  FacetNames: [String]
  NextToken: String
}

input AwsCloudDirectoryListTypedLinkFacetNamesInput {
  SchemaArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryLookupPolicyOutput {
  PolicyToPathList: [AwsCloudDirectoryS2b]
  NextToken: String
}

input AwsCloudDirectoryLookupPolicyInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  NextToken: String
  MaxResults: Int
}

type AwsCloudDirectoryPublishSchemaOutput {
  PublishedSchemaArn: String
}

input AwsCloudDirectoryPublishSchemaInput {
  DevelopmentSchemaArn: String!
  Version: String!
  MinorVersion: String
  Name: String
}

type AwsCloudDirectoryPutSchemaFromJsonOutput {
  Arn: String
}

input AwsCloudDirectoryPutSchemaFromJsonInput {
  SchemaArn: String!
  Document: String!
}

input AwsCloudDirectoryRemoveFacetFromObjectInput {
  DirectoryArn: String!
  SchemaFacet: AwsCloudDirectoryS3Input!
  ObjectReference: AwsCloudDirectorySfInput!
}

input AwsCloudDirectoryTagResourceInput {
  ResourceArn: String!
  Tags: [AwsCloudDirectoryS79Input]!
}

input AwsCloudDirectoryS79Input {
  Key: String
  Value: String
}

input AwsCloudDirectoryUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsCloudDirectoryUpdateFacetInput {
  SchemaArn: String!
  Name: String!
  AttributeUpdates: [AwsCloudDirectoryUpdateFacetAttributeUpdatesInput]
  ObjectType: String
}

input AwsCloudDirectoryUpdateFacetAttributeUpdatesInput {
  Attribute: AwsCloudDirectoryS47Input
  Action: String
}

input AwsCloudDirectoryUpdateLinkAttributesInput {
  DirectoryArn: String!
  TypedLinkSpecifier: AwsCloudDirectorySyInput!
  AttributeUpdates: [AwsCloudDirectoryS3gInput]!
}

type AwsCloudDirectoryUpdateObjectAttributesOutput {
  ObjectIdentifier: String
}

input AwsCloudDirectoryUpdateObjectAttributesInput {
  DirectoryArn: String!
  ObjectReference: AwsCloudDirectorySfInput!
  AttributeUpdates: [AwsCloudDirectoryS2zInput]!
}

type AwsCloudDirectoryUpdateSchemaOutput {
  SchemaArn: String
}

input AwsCloudDirectoryUpdateSchemaInput {
  SchemaArn: String!
  Name: String!
}

input AwsCloudDirectoryUpdateTypedLinkFacetInput {
  SchemaArn: String!
  Name: String!
  AttributeUpdates: [AwsCloudDirectoryUpdateTypedLinkFacetAttributeUpdatesInput]!
  IdentityAttributeOrder: [String]!
}

input AwsCloudDirectoryUpdateTypedLinkFacetAttributeUpdatesInput {
  Attribute: AwsCloudDirectoryS4wInput!
  Action: String!
}

type AwsCloudDirectoryUpgradeAppliedSchemaOutput {
  UpgradedSchemaArn: String
  DirectoryArn: String
}

input AwsCloudDirectoryUpgradeAppliedSchemaInput {
  PublishedSchemaArn: String!
  DirectoryArn: String!
  DryRun: Boolean
}

type AwsCloudDirectoryUpgradePublishedSchemaOutput {
  UpgradedSchemaArn: String
}

input AwsCloudDirectoryUpgradePublishedSchemaInput {
  DevelopmentSchemaArn: String!
  PublishedSchemaArn: String!
  MinorVersion: String!
  DryRun: Boolean
}

"""AWS CloudFormation (2010-05-15)"""
type AwsCloudFormation {
  activateType(input: AwsCloudFormationActivateTypeInput, config: AwsConfig): AwsCloudFormationActivateTypeOutput
  batchDescribeTypeConfigurations(input: AwsCloudFormationBatchDescribeTypeConfigurationsInput!, config: AwsConfig): AwsCloudFormationBatchDescribeTypeConfigurationsOutput
  cancelUpdateStack(input: AwsCloudFormationCancelUpdateStackInput!, config: AwsConfig): JSON
  continueUpdateRollback(input: AwsCloudFormationContinueUpdateRollbackInput!, config: AwsConfig): JSON
  createChangeSet(input: AwsCloudFormationCreateChangeSetInput!, config: AwsConfig): AwsCloudFormationCreateChangeSetOutput
  createStack(input: AwsCloudFormationCreateStackInput!, config: AwsConfig): AwsCloudFormationCreateStackOutput
  createStackInstances(input: AwsCloudFormationCreateStackInstancesInput!, config: AwsConfig): AwsCloudFormationCreateStackInstancesOutput
  createStackSet(input: AwsCloudFormationCreateStackSetInput!, config: AwsConfig): AwsCloudFormationCreateStackSetOutput
  deactivateType(input: AwsCloudFormationDeactivateTypeInput, config: AwsConfig): JSON
  deleteChangeSet(input: AwsCloudFormationDeleteChangeSetInput!, config: AwsConfig): JSON
  deleteStack(input: AwsCloudFormationDeleteStackInput!, config: AwsConfig): JSON
  deleteStackInstances(input: AwsCloudFormationDeleteStackInstancesInput!, config: AwsConfig): AwsCloudFormationDeleteStackInstancesOutput
  deleteStackSet(input: AwsCloudFormationDeleteStackSetInput!, config: AwsConfig): JSON
  deregisterType(input: AwsCloudFormationDeregisterTypeInput, config: AwsConfig): JSON
  describeAccountLimits(input: AwsCloudFormationDescribeAccountLimitsInput, config: AwsConfig): AwsCloudFormationDescribeAccountLimitsOutput
  describeChangeSet(input: AwsCloudFormationDescribeChangeSetInput!, config: AwsConfig): AwsCloudFormationDescribeChangeSetOutput
  describePublisher(input: AwsCloudFormationDescribePublisherInput, config: AwsConfig): AwsCloudFormationDescribePublisherOutput
  describeStackDriftDetectionStatus(input: AwsCloudFormationDescribeStackDriftDetectionStatusInput!, config: AwsConfig): AwsCloudFormationDescribeStackDriftDetectionStatusOutput
  describeStackEvents(input: AwsCloudFormationDescribeStackEventsInput, config: AwsConfig): AwsCloudFormationDescribeStackEventsOutput
  describeStackInstance(input: AwsCloudFormationDescribeStackInstanceInput!, config: AwsConfig): AwsCloudFormationDescribeStackInstanceOutput
  describeStackResource(input: AwsCloudFormationDescribeStackResourceInput!, config: AwsConfig): AwsCloudFormationDescribeStackResourceOutput
  describeStackResourceDrifts(input: AwsCloudFormationDescribeStackResourceDriftsInput!, config: AwsConfig): AwsCloudFormationDescribeStackResourceDriftsOutput
  describeStackResources(input: AwsCloudFormationDescribeStackResourcesInput, config: AwsConfig): AwsCloudFormationDescribeStackResourcesOutput
  describeStackSet(input: AwsCloudFormationDescribeStackSetInput!, config: AwsConfig): AwsCloudFormationDescribeStackSetOutput
  describeStackSetOperation(input: AwsCloudFormationDescribeStackSetOperationInput!, config: AwsConfig): AwsCloudFormationDescribeStackSetOperationOutput
  describeStacks(input: AwsCloudFormationDescribeStacksInput, config: AwsConfig): AwsCloudFormationDescribeStacksOutput
  describeType(input: AwsCloudFormationDescribeTypeInput, config: AwsConfig): AwsCloudFormationDescribeTypeOutput
  describeTypeRegistration(input: AwsCloudFormationDescribeTypeRegistrationInput!, config: AwsConfig): AwsCloudFormationDescribeTypeRegistrationOutput
  detectStackDrift(input: AwsCloudFormationDetectStackDriftInput!, config: AwsConfig): AwsCloudFormationDetectStackDriftOutput
  detectStackResourceDrift(input: AwsCloudFormationDetectStackResourceDriftInput!, config: AwsConfig): AwsCloudFormationDetectStackResourceDriftOutput
  detectStackSetDrift(input: AwsCloudFormationDetectStackSetDriftInput!, config: AwsConfig): AwsCloudFormationDetectStackSetDriftOutput
  estimateTemplateCost(input: AwsCloudFormationEstimateTemplateCostInput, config: AwsConfig): AwsCloudFormationEstimateTemplateCostOutput
  executeChangeSet(input: AwsCloudFormationExecuteChangeSetInput!, config: AwsConfig): JSON
  getStackPolicy(input: AwsCloudFormationGetStackPolicyInput!, config: AwsConfig): AwsCloudFormationGetStackPolicyOutput
  getTemplate(input: AwsCloudFormationGetTemplateInput, config: AwsConfig): AwsCloudFormationGetTemplateOutput
  getTemplateSummary(input: AwsCloudFormationGetTemplateSummaryInput, config: AwsConfig): AwsCloudFormationGetTemplateSummaryOutput
  listChangeSets(input: AwsCloudFormationListChangeSetsInput!, config: AwsConfig): AwsCloudFormationListChangeSetsOutput
  listExports(input: AwsCloudFormationListExportsInput, config: AwsConfig): AwsCloudFormationListExportsOutput
  listImports(input: AwsCloudFormationListImportsInput!, config: AwsConfig): AwsCloudFormationListImportsOutput
  listStackInstances(input: AwsCloudFormationListStackInstancesInput!, config: AwsConfig): AwsCloudFormationListStackInstancesOutput
  listStackResources(input: AwsCloudFormationListStackResourcesInput!, config: AwsConfig): AwsCloudFormationListStackResourcesOutput
  listStackSetOperationResults(input: AwsCloudFormationListStackSetOperationResultsInput!, config: AwsConfig): AwsCloudFormationListStackSetOperationResultsOutput
  listStackSetOperations(input: AwsCloudFormationListStackSetOperationsInput!, config: AwsConfig): AwsCloudFormationListStackSetOperationsOutput
  listStackSets(input: AwsCloudFormationListStackSetsInput, config: AwsConfig): AwsCloudFormationListStackSetsOutput
  listStacks(input: AwsCloudFormationListStacksInput, config: AwsConfig): AwsCloudFormationListStacksOutput
  listTypeRegistrations(input: AwsCloudFormationListTypeRegistrationsInput, config: AwsConfig): AwsCloudFormationListTypeRegistrationsOutput
  listTypeVersions(input: AwsCloudFormationListTypeVersionsInput, config: AwsConfig): AwsCloudFormationListTypeVersionsOutput
  listTypes(input: AwsCloudFormationListTypesInput, config: AwsConfig): AwsCloudFormationListTypesOutput
  publishType(input: AwsCloudFormationPublishTypeInput, config: AwsConfig): AwsCloudFormationPublishTypeOutput
  recordHandlerProgress(input: AwsCloudFormationRecordHandlerProgressInput!, config: AwsConfig): JSON
  registerPublisher(input: AwsCloudFormationRegisterPublisherInput, config: AwsConfig): AwsCloudFormationRegisterPublisherOutput
  registerType(input: AwsCloudFormationRegisterTypeInput!, config: AwsConfig): AwsCloudFormationRegisterTypeOutput
  setStackPolicy(input: AwsCloudFormationSetStackPolicyInput!, config: AwsConfig): JSON
  setTypeConfiguration(input: AwsCloudFormationSetTypeConfigurationInput!, config: AwsConfig): AwsCloudFormationSetTypeConfigurationOutput
  setTypeDefaultVersion(input: AwsCloudFormationSetTypeDefaultVersionInput, config: AwsConfig): JSON
  signalResource(input: AwsCloudFormationSignalResourceInput!, config: AwsConfig): JSON
  stopStackSetOperation(input: AwsCloudFormationStopStackSetOperationInput!, config: AwsConfig): JSON
  testType(input: AwsCloudFormationTestTypeInput, config: AwsConfig): AwsCloudFormationTestTypeOutput
  updateStack(input: AwsCloudFormationUpdateStackInput!, config: AwsConfig): AwsCloudFormationUpdateStackOutput
  updateStackInstances(input: AwsCloudFormationUpdateStackInstancesInput!, config: AwsConfig): AwsCloudFormationUpdateStackInstancesOutput
  updateStackSet(input: AwsCloudFormationUpdateStackSetInput!, config: AwsConfig): AwsCloudFormationUpdateStackSetOutput
  updateTerminationProtection(input: AwsCloudFormationUpdateTerminationProtectionInput!, config: AwsConfig): AwsCloudFormationUpdateTerminationProtectionOutput
  validateTemplate(input: AwsCloudFormationValidateTemplateInput, config: AwsConfig): AwsCloudFormationValidateTemplateOutput
}

type AwsCloudFormationActivateTypeOutput {
  Arn: String
}

input AwsCloudFormationActivateTypeInput {
  Type: String
  PublicTypeArn: String
  PublisherId: String
  TypeName: String
  TypeNameAlias: String
  AutoUpdate: Boolean
  LoggingConfig: AwsCloudFormationS7Input
  ExecutionRoleArn: String
  VersionBump: String
  MajorVersion: JSON
}

input AwsCloudFormationS7Input {
  LogRoleArn: String!
  LogGroupName: String!
}

type AwsCloudFormationBatchDescribeTypeConfigurationsOutput {
  Errors: [AwsCloudFormationBatchDescribeTypeConfigurationsOutputErrors]
  UnprocessedTypeConfigurations: [AwsCloudFormationSg]
  TypeConfigurations: [AwsCloudFormationBatchDescribeTypeConfigurationsOutputTypeConfigurations]
}

type AwsCloudFormationBatchDescribeTypeConfigurationsOutputErrors {
  ErrorCode: String
  ErrorMessage: String
  TypeConfigurationIdentifier: AwsCloudFormationSg
}

type AwsCloudFormationSg {
  TypeArn: String
  TypeConfigurationAlias: String
  TypeConfigurationArn: String
  Type: String
  TypeName: String
}

type AwsCloudFormationBatchDescribeTypeConfigurationsOutputTypeConfigurations {
  Arn: String
  Alias: String
  Configuration: String
  LastUpdated: Date
  TypeArn: String
  TypeName: String
  IsDefaultConfiguration: Boolean
}

input AwsCloudFormationBatchDescribeTypeConfigurationsInput {
  TypeConfigurationIdentifiers: [AwsCloudFormationSgInput]!
}

input AwsCloudFormationSgInput {
  TypeArn: String
  TypeConfigurationAlias: String
  TypeConfigurationArn: String
  Type: String
  TypeName: String
}

input AwsCloudFormationCancelUpdateStackInput {
  StackName: String!
  ClientRequestToken: String
}

input AwsCloudFormationContinueUpdateRollbackInput {
  StackName: String!
  RoleARN: String
  ResourcesToSkip: [String]
  ClientRequestToken: String
}

type AwsCloudFormationCreateChangeSetOutput {
  Id: String
  StackId: String
}

input AwsCloudFormationCreateChangeSetInput {
  StackName: String!
  TemplateBody: String
  TemplateURL: String
  UsePreviousTemplate: Boolean
  Parameters: [AwsCloudFormationS18Input]
  Capabilities: [String]
  ResourceTypes: [String]
  RoleARN: String
  RollbackConfiguration: AwsCloudFormationS1hInput
  NotificationARNs: [String]
  Tags: [AwsCloudFormationS1pInput]
  ChangeSetName: String!
  ClientToken: String
  Description: String
  ChangeSetType: String
  ResourcesToImport: [AwsCloudFormationCreateChangeSetResourcesToImportInput]
  IncludeNestedStacks: Boolean
}

input AwsCloudFormationS18Input {
  ParameterKey: String
  ParameterValue: String
  UsePreviousValue: Boolean
  ResolvedValue: String
}

input AwsCloudFormationS1hInput {
  RollbackTriggers: [AwsCloudFormationS1hRollbackTriggersInput]
  MonitoringTimeInMinutes: Int
}

input AwsCloudFormationS1hRollbackTriggersInput {
  Arn: String!
  Type: String!
}

input AwsCloudFormationS1pInput {
  Key: String!
  Value: String!
}

input AwsCloudFormationCreateChangeSetResourcesToImportInput {
  ResourceType: String!
  LogicalResourceId: String!
  ResourceIdentifier: JSON!
}

type AwsCloudFormationCreateStackOutput {
  StackId: String
}

input AwsCloudFormationCreateStackInput {
  StackName: String!
  TemplateBody: String
  TemplateURL: String
  Parameters: [AwsCloudFormationS18Input]
  DisableRollback: Boolean
  RollbackConfiguration: AwsCloudFormationS1hInput
  TimeoutInMinutes: Int
  NotificationARNs: [String]
  Capabilities: [String]
  ResourceTypes: [String]
  RoleARN: String
  OnFailure: String
  StackPolicyBody: String
  StackPolicyURL: String
  Tags: [AwsCloudFormationS1pInput]
  ClientRequestToken: String
  EnableTerminationProtection: Boolean
}

type AwsCloudFormationCreateStackInstancesOutput {
  OperationId: String
}

input AwsCloudFormationCreateStackInstancesInput {
  StackSetName: String!
  Accounts: [String]
  DeploymentTargets: AwsCloudFormationS2jInput
  Regions: [String]!
  ParameterOverrides: [AwsCloudFormationS18Input]
  OperationPreferences: AwsCloudFormationS2pInput
  OperationId: String
  CallAs: String
}

input AwsCloudFormationS2jInput {
  Accounts: [String]
  AccountsUrl: String
  OrganizationalUnitIds: [String]
}

input AwsCloudFormationS2pInput {
  RegionConcurrencyType: String
  RegionOrder: [String]
  FailureToleranceCount: Int
  FailureTolerancePercentage: Int
  MaxConcurrentCount: Int
  MaxConcurrentPercentage: Int
}

type AwsCloudFormationCreateStackSetOutput {
  StackSetId: String
}

input AwsCloudFormationCreateStackSetInput {
  StackSetName: String!
  Description: String
  TemplateBody: String
  TemplateURL: String
  Parameters: [AwsCloudFormationS18Input]
  Capabilities: [String]
  Tags: [AwsCloudFormationS1pInput]
  AdministrationRoleARN: String
  ExecutionRoleName: String
  PermissionModel: String
  AutoDeployment: AwsCloudFormationS30Input
  CallAs: String
  ClientRequestToken: String
}

input AwsCloudFormationS30Input {
  Enabled: Boolean
  RetainStacksOnAccountRemoval: Boolean
}

input AwsCloudFormationDeactivateTypeInput {
  TypeName: String
  Type: String
  Arn: String
}

input AwsCloudFormationDeleteChangeSetInput {
  ChangeSetName: String!
  StackName: String
}

input AwsCloudFormationDeleteStackInput {
  StackName: String!
  RetainResources: [String]
  RoleARN: String
  ClientRequestToken: String
}

type AwsCloudFormationDeleteStackInstancesOutput {
  OperationId: String
}

input AwsCloudFormationDeleteStackInstancesInput {
  StackSetName: String!
  Accounts: [String]
  DeploymentTargets: AwsCloudFormationS2jInput
  Regions: [String]!
  OperationPreferences: AwsCloudFormationS2pInput
  RetainStacks: Boolean!
  OperationId: String
  CallAs: String
}

input AwsCloudFormationDeleteStackSetInput {
  StackSetName: String!
  CallAs: String
}

input AwsCloudFormationDeregisterTypeInput {
  Arn: String
  Type: String
  TypeName: String
  VersionId: String
}

type AwsCloudFormationDescribeAccountLimitsOutput {
  AccountLimits: [AwsCloudFormationDescribeAccountLimitsOutputAccountLimits]
  NextToken: String
}

type AwsCloudFormationDescribeAccountLimitsOutputAccountLimits {
  Name: String
  Value: Int
}

input AwsCloudFormationDescribeAccountLimitsInput {
  NextToken: String
}

type AwsCloudFormationDescribeChangeSetOutput {
  ChangeSetName: String
  ChangeSetId: String
  StackId: String
  StackName: String
  Description: String
  Parameters: [AwsCloudFormationS18]
  CreationTime: Date
  ExecutionStatus: String
  Status: String
  StatusReason: String
  NotificationARNs: [String]
  RollbackConfiguration: AwsCloudFormationS1h
  Capabilities: [String]
  Tags: [AwsCloudFormationS1p]
  Changes: [AwsCloudFormationDescribeChangeSetOutputChanges]
  NextToken: String
  IncludeNestedStacks: Boolean
  ParentChangeSetId: String
  RootChangeSetId: String
}

type AwsCloudFormationS18 {
  ParameterKey: String
  ParameterValue: String
  UsePreviousValue: Boolean
  ResolvedValue: String
}

type AwsCloudFormationS1h {
  RollbackTriggers: [AwsCloudFormationS1hRollbackTriggers]
  MonitoringTimeInMinutes: Int
}

type AwsCloudFormationS1hRollbackTriggers {
  Arn: String!
  Type: String!
}

type AwsCloudFormationS1p {
  Key: String!
  Value: String!
}

type AwsCloudFormationDescribeChangeSetOutputChanges {
  Type: String
  ResourceChange: AwsCloudFormationDescribeChangeSetOutputChangesResourceChange
}

type AwsCloudFormationDescribeChangeSetOutputChangesResourceChange {
  Action: String
  LogicalResourceId: String
  PhysicalResourceId: String
  ResourceType: String
  Replacement: String
  Scope: [String]
  Details: [AwsCloudFormationDescribeChangeSetOutputChangesResourceChangeDetails]
  ChangeSetId: String
  ModuleInfo: AwsCloudFormationS4f
}

type AwsCloudFormationDescribeChangeSetOutputChangesResourceChangeDetails {
  Target: AwsCloudFormationDescribeChangeSetOutputChangesResourceChangeDetailsTarget
  Evaluation: String
  ChangeSource: String
  CausingEntity: String
}

type AwsCloudFormationDescribeChangeSetOutputChangesResourceChangeDetailsTarget {
  Attribute: String
  Name: String
  RequiresRecreation: String
}

type AwsCloudFormationS4f {
  TypeHierarchy: String
  LogicalIdHierarchy: String
}

input AwsCloudFormationDescribeChangeSetInput {
  ChangeSetName: String!
  StackName: String
  NextToken: String
}

type AwsCloudFormationDescribePublisherOutput {
  PublisherId: String
  PublisherStatus: String
  IdentityProvider: String
  PublisherProfile: String
}

input AwsCloudFormationDescribePublisherInput {
  PublisherId: String
}

type AwsCloudFormationDescribeStackDriftDetectionStatusOutput {
  StackId: String!
  StackDriftDetectionId: String!
  StackDriftStatus: String
  DetectionStatus: String!
  DetectionStatusReason: String
  DriftedStackResourceCount: Int
  Timestamp: Date!
}

input AwsCloudFormationDescribeStackDriftDetectionStatusInput {
  StackDriftDetectionId: String!
}

type AwsCloudFormationDescribeStackEventsOutput {
  StackEvents: [AwsCloudFormationDescribeStackEventsOutputStackEvents]
  NextToken: String
}

type AwsCloudFormationDescribeStackEventsOutputStackEvents {
  StackId: String!
  EventId: String!
  StackName: String!
  LogicalResourceId: String
  PhysicalResourceId: String
  ResourceType: String
  Timestamp: Date!
  ResourceStatus: String
  ResourceStatusReason: String
  ResourceProperties: String
  ClientRequestToken: String
}

input AwsCloudFormationDescribeStackEventsInput {
  StackName: String
  NextToken: String
}

type AwsCloudFormationDescribeStackInstanceOutput {
  StackInstance: AwsCloudFormationDescribeStackInstanceOutputStackInstance
}

type AwsCloudFormationDescribeStackInstanceOutputStackInstance {
  StackSetId: String
  Region: String
  Account: String
  StackId: String
  ParameterOverrides: [AwsCloudFormationS18]
  Status: String
  StackInstanceStatus: AwsCloudFormationS56
  StatusReason: String
  OrganizationalUnitId: String
  DriftStatus: String
  LastDriftCheckTimestamp: Date
}

type AwsCloudFormationS56 {
  DetailedStatus: String
}

input AwsCloudFormationDescribeStackInstanceInput {
  StackSetName: String!
  StackInstanceAccount: String!
  StackInstanceRegion: String!
  CallAs: String
}

type AwsCloudFormationDescribeStackResourceOutput {
  StackResourceDetail: AwsCloudFormationDescribeStackResourceOutputStackResourceDetail
}

type AwsCloudFormationDescribeStackResourceOutputStackResourceDetail {
  StackName: String
  StackId: String
  LogicalResourceId: String!
  PhysicalResourceId: String
  ResourceType: String!
  LastUpdatedTimestamp: Date!
  ResourceStatus: String!
  ResourceStatusReason: String
  Description: String
  Metadata: String
  DriftInformation: AwsCloudFormationS5d
  ModuleInfo: AwsCloudFormationS4f
}

type AwsCloudFormationS5d {
  StackResourceDriftStatus: String!
  LastCheckTimestamp: Date
}

input AwsCloudFormationDescribeStackResourceInput {
  StackName: String!
  LogicalResourceId: String!
}

type AwsCloudFormationDescribeStackResourceDriftsOutput {
  StackResourceDrifts: [AwsCloudFormationS5k]!
  NextToken: String
}

type AwsCloudFormationS5k {
  StackId: String!
  LogicalResourceId: String!
  PhysicalResourceId: String
  PhysicalResourceIdContext: [AwsCloudFormationS5kPhysicalResourceIdContext]
  ResourceType: String!
  ExpectedProperties: String
  ActualProperties: String
  PropertyDifferences: [AwsCloudFormationS5kPropertyDifferences]
  StackResourceDriftStatus: String!
  Timestamp: Date!
  ModuleInfo: AwsCloudFormationS4f
}

type AwsCloudFormationS5kPhysicalResourceIdContext {
  Key: String!
  Value: String!
}

type AwsCloudFormationS5kPropertyDifferences {
  PropertyPath: String!
  ExpectedValue: String!
  ActualValue: String!
  DifferenceType: String!
}

input AwsCloudFormationDescribeStackResourceDriftsInput {
  StackName: String!
  StackResourceDriftStatusFilters: [String]
  NextToken: String
  MaxResults: Int
}

type AwsCloudFormationDescribeStackResourcesOutput {
  StackResources: [AwsCloudFormationDescribeStackResourcesOutputStackResources]
}

type AwsCloudFormationDescribeStackResourcesOutputStackResources {
  StackName: String
  StackId: String
  LogicalResourceId: String!
  PhysicalResourceId: String
  ResourceType: String!
  Timestamp: Date!
  ResourceStatus: String!
  ResourceStatusReason: String
  Description: String
  DriftInformation: AwsCloudFormationS5d
  ModuleInfo: AwsCloudFormationS4f
}

input AwsCloudFormationDescribeStackResourcesInput {
  StackName: String
  LogicalResourceId: String
  PhysicalResourceId: String
}

type AwsCloudFormationDescribeStackSetOutput {
  StackSet: AwsCloudFormationDescribeStackSetOutputStackSet
}

type AwsCloudFormationDescribeStackSetOutputStackSet {
  StackSetName: String
  StackSetId: String
  Description: String
  Status: String
  TemplateBody: String
  Parameters: [AwsCloudFormationS18]
  Capabilities: [String]
  Tags: [AwsCloudFormationS1p]
  StackSetARN: String
  AdministrationRoleARN: String
  ExecutionRoleName: String
  StackSetDriftDetectionDetails: AwsCloudFormationS64
  AutoDeployment: AwsCloudFormationS30
  PermissionModel: String
  OrganizationalUnitIds: [String]
}

type AwsCloudFormationS64 {
  DriftStatus: String
  DriftDetectionStatus: String
  LastDriftCheckTimestamp: Date
  TotalStackInstancesCount: Int
  DriftedStackInstancesCount: Int
  InSyncStackInstancesCount: Int
  InProgressStackInstancesCount: Int
  FailedStackInstancesCount: Int
}

type AwsCloudFormationS30 {
  Enabled: Boolean
  RetainStacksOnAccountRemoval: Boolean
}

input AwsCloudFormationDescribeStackSetInput {
  StackSetName: String!
  CallAs: String
}

type AwsCloudFormationDescribeStackSetOperationOutput {
  StackSetOperation: AwsCloudFormationDescribeStackSetOperationOutputStackSetOperation
}

type AwsCloudFormationDescribeStackSetOperationOutputStackSetOperation {
  OperationId: String
  StackSetId: String
  Action: String
  Status: String
  OperationPreferences: AwsCloudFormationS2p
  RetainStacks: Boolean
  AdministrationRoleARN: String
  ExecutionRoleName: String
  CreationTimestamp: Date
  EndTimestamp: Date
  DeploymentTargets: AwsCloudFormationS2j
  StackSetDriftDetectionDetails: AwsCloudFormationS64
}

type AwsCloudFormationS2p {
  RegionConcurrencyType: String
  RegionOrder: [String]
  FailureToleranceCount: Int
  FailureTolerancePercentage: Int
  MaxConcurrentCount: Int
  MaxConcurrentPercentage: Int
}

type AwsCloudFormationS2j {
  Accounts: [String]
  AccountsUrl: String
  OrganizationalUnitIds: [String]
}

input AwsCloudFormationDescribeStackSetOperationInput {
  StackSetName: String!
  OperationId: String!
  CallAs: String
}

type AwsCloudFormationDescribeStacksOutput {
  Stacks: [AwsCloudFormationDescribeStacksOutputStacks]
  NextToken: String
}

type AwsCloudFormationDescribeStacksOutputStacks {
  StackId: String
  StackName: String!
  ChangeSetId: String
  Description: String
  Parameters: [AwsCloudFormationS18]
  CreationTime: Date!
  DeletionTime: Date
  LastUpdatedTime: Date
  RollbackConfiguration: AwsCloudFormationS1h
  StackStatus: String!
  StackStatusReason: String
  DisableRollback: Boolean
  NotificationARNs: [String]
  TimeoutInMinutes: Int
  Capabilities: [String]
  Outputs: [AwsCloudFormationDescribeStacksOutputStacksOutputs]
  RoleARN: String
  Tags: [AwsCloudFormationS1p]
  EnableTerminationProtection: Boolean
  ParentId: String
  RootId: String
  DriftInformation: AwsCloudFormationDescribeStacksOutputStacksDriftInformation
}

type AwsCloudFormationDescribeStacksOutputStacksOutputs {
  OutputKey: String
  OutputValue: String
  Description: String
  ExportName: String
}

type AwsCloudFormationDescribeStacksOutputStacksDriftInformation {
  StackDriftStatus: String!
  LastCheckTimestamp: Date
}

input AwsCloudFormationDescribeStacksInput {
  StackName: String
  NextToken: String
}

type AwsCloudFormationDescribeTypeOutput {
  Arn: String
  Type: String
  TypeName: String
  DefaultVersionId: String
  IsDefaultVersion: Boolean
  TypeTestsStatus: String
  TypeTestsStatusDescription: String
  Description: String
  Schema: String
  ProvisioningType: String
  DeprecatedStatus: String
  LoggingConfig: AwsCloudFormationS7
  RequiredActivatedTypes: [AwsCloudFormationDescribeTypeOutputRequiredActivatedTypes]
  ExecutionRoleArn: String
  Visibility: String
  SourceUrl: String
  DocumentationUrl: String
  LastUpdated: Date
  TimeCreated: Date
  ConfigurationSchema: String
  PublisherId: String
  OriginalTypeName: String
  OriginalTypeArn: String
  PublicVersionNumber: String
  LatestPublicVersion: String
  IsActivated: Boolean
  AutoUpdate: Boolean
}

type AwsCloudFormationS7 {
  LogRoleArn: String!
  LogGroupName: String!
}

type AwsCloudFormationDescribeTypeOutputRequiredActivatedTypes {
  TypeNameAlias: String
  OriginalTypeName: String
  PublisherId: String
  SupportedMajorVersions: [Int]
}

input AwsCloudFormationDescribeTypeInput {
  Type: String
  TypeName: String
  Arn: String
  VersionId: String
  PublisherId: String
  PublicVersionNumber: String
}

type AwsCloudFormationDescribeTypeRegistrationOutput {
  ProgressStatus: String
  Description: String
  TypeArn: String
  TypeVersionArn: String
}

input AwsCloudFormationDescribeTypeRegistrationInput {
  RegistrationToken: String!
}

type AwsCloudFormationDetectStackDriftOutput {
  StackDriftDetectionId: String!
}

input AwsCloudFormationDetectStackDriftInput {
  StackName: String!
  LogicalResourceIds: [String]
}

type AwsCloudFormationDetectStackResourceDriftOutput {
  StackResourceDrift: AwsCloudFormationS5k!
}

input AwsCloudFormationDetectStackResourceDriftInput {
  StackName: String!
  LogicalResourceId: String!
}

type AwsCloudFormationDetectStackSetDriftOutput {
  OperationId: String
}

input AwsCloudFormationDetectStackSetDriftInput {
  StackSetName: String!
  OperationPreferences: AwsCloudFormationS2pInput
  OperationId: String
  CallAs: String
}

type AwsCloudFormationEstimateTemplateCostOutput {
  Url: String
}

input AwsCloudFormationEstimateTemplateCostInput {
  TemplateBody: String
  TemplateURL: String
  Parameters: [AwsCloudFormationS18Input]
}

input AwsCloudFormationExecuteChangeSetInput {
  ChangeSetName: String!
  StackName: String
  ClientRequestToken: String
}

type AwsCloudFormationGetStackPolicyOutput {
  StackPolicyBody: String
}

input AwsCloudFormationGetStackPolicyInput {
  StackName: String!
}

type AwsCloudFormationGetTemplateOutput {
  TemplateBody: String
  StagesAvailable: [String]
}

input AwsCloudFormationGetTemplateInput {
  StackName: String
  ChangeSetName: String
  TemplateStage: String
}

type AwsCloudFormationGetTemplateSummaryOutput {
  Parameters: [AwsCloudFormationGetTemplateSummaryOutputParameters]
  Description: String
  Capabilities: [String]
  CapabilitiesReason: String
  ResourceTypes: [String]
  Version: String
  Metadata: String
  DeclaredTransforms: [String]
  ResourceIdentifierSummaries: [AwsCloudFormationGetTemplateSummaryOutputResourceIdentifierSummaries]
}

type AwsCloudFormationGetTemplateSummaryOutputParameters {
  ParameterKey: String
  DefaultValue: String
  ParameterType: String
  NoEcho: Boolean
  Description: String
  ParameterConstraints: AwsCloudFormationGetTemplateSummaryOutputParametersParameterConstraints
}

type AwsCloudFormationGetTemplateSummaryOutputParametersParameterConstraints {
  AllowedValues: [String]
}

type AwsCloudFormationGetTemplateSummaryOutputResourceIdentifierSummaries {
  ResourceType: String
  LogicalResourceIds: [String]
  ResourceIdentifiers: [String]
}

input AwsCloudFormationGetTemplateSummaryInput {
  TemplateBody: String
  TemplateURL: String
  StackName: String
  StackSetName: String
  CallAs: String
}

type AwsCloudFormationListChangeSetsOutput {
  Summaries: [AwsCloudFormationListChangeSetsOutputSummaries]
  NextToken: String
}

type AwsCloudFormationListChangeSetsOutputSummaries {
  StackId: String
  StackName: String
  ChangeSetId: String
  ChangeSetName: String
  ExecutionStatus: String
  Status: String
  StatusReason: String
  CreationTime: Date
  Description: String
  IncludeNestedStacks: Boolean
  ParentChangeSetId: String
  RootChangeSetId: String
}

input AwsCloudFormationListChangeSetsInput {
  StackName: String!
  NextToken: String
}

type AwsCloudFormationListExportsOutput {
  Exports: [AwsCloudFormationListExportsOutputExports]
  NextToken: String
}

type AwsCloudFormationListExportsOutputExports {
  ExportingStackId: String
  Name: String
  Value: String
}

input AwsCloudFormationListExportsInput {
  NextToken: String
}

type AwsCloudFormationListImportsOutput {
  Imports: [String]
  NextToken: String
}

input AwsCloudFormationListImportsInput {
  ExportName: String!
  NextToken: String
}

type AwsCloudFormationListStackInstancesOutput {
  Summaries: [AwsCloudFormationListStackInstancesOutputSummaries]
  NextToken: String
}

type AwsCloudFormationListStackInstancesOutputSummaries {
  StackSetId: String
  Region: String
  Account: String
  StackId: String
  Status: String
  StatusReason: String
  StackInstanceStatus: AwsCloudFormationS56
  OrganizationalUnitId: String
  DriftStatus: String
  LastDriftCheckTimestamp: Date
}

input AwsCloudFormationListStackInstancesInput {
  StackSetName: String!
  NextToken: String
  MaxResults: Int
  Filters: [AwsCloudFormationListStackInstancesFiltersInput]
  StackInstanceAccount: String
  StackInstanceRegion: String
  CallAs: String
}

input AwsCloudFormationListStackInstancesFiltersInput {
  Name: String
  Values: String
}

type AwsCloudFormationListStackResourcesOutput {
  StackResourceSummaries: [AwsCloudFormationListStackResourcesOutputStackResourceSummaries]
  NextToken: String
}

type AwsCloudFormationListStackResourcesOutputStackResourceSummaries {
  LogicalResourceId: String!
  PhysicalResourceId: String
  ResourceType: String!
  LastUpdatedTimestamp: Date!
  ResourceStatus: String!
  ResourceStatusReason: String
  DriftInformation: AwsCloudFormationListStackResourcesOutputStackResourceSummariesDriftInformation
  ModuleInfo: AwsCloudFormationS4f
}

type AwsCloudFormationListStackResourcesOutputStackResourceSummariesDriftInformation {
  StackResourceDriftStatus: String!
  LastCheckTimestamp: Date
}

input AwsCloudFormationListStackResourcesInput {
  StackName: String!
  NextToken: String
}

type AwsCloudFormationListStackSetOperationResultsOutput {
  Summaries: [AwsCloudFormationListStackSetOperationResultsOutputSummaries]
  NextToken: String
}

type AwsCloudFormationListStackSetOperationResultsOutputSummaries {
  Account: String
  Region: String
  Status: String
  StatusReason: String
  AccountGateResult: AwsCloudFormationListStackSetOperationResultsOutputSummariesAccountGateResult
  OrganizationalUnitId: String
}

type AwsCloudFormationListStackSetOperationResultsOutputSummariesAccountGateResult {
  Status: String
  StatusReason: String
}

input AwsCloudFormationListStackSetOperationResultsInput {
  StackSetName: String!
  OperationId: String!
  NextToken: String
  MaxResults: Int
  CallAs: String
}

type AwsCloudFormationListStackSetOperationsOutput {
  Summaries: [AwsCloudFormationListStackSetOperationsOutputSummaries]
  NextToken: String
}

type AwsCloudFormationListStackSetOperationsOutputSummaries {
  OperationId: String
  Action: String
  Status: String
  CreationTimestamp: Date
  EndTimestamp: Date
}

input AwsCloudFormationListStackSetOperationsInput {
  StackSetName: String!
  NextToken: String
  MaxResults: Int
  CallAs: String
}

type AwsCloudFormationListStackSetsOutput {
  Summaries: [AwsCloudFormationListStackSetsOutputSummaries]
  NextToken: String
}

type AwsCloudFormationListStackSetsOutputSummaries {
  StackSetName: String
  StackSetId: String
  Description: String
  Status: String
  AutoDeployment: AwsCloudFormationS30
  PermissionModel: String
  DriftStatus: String
  LastDriftCheckTimestamp: Date
}

input AwsCloudFormationListStackSetsInput {
  NextToken: String
  MaxResults: Int
  Status: String
  CallAs: String
}

type AwsCloudFormationListStacksOutput {
  StackSummaries: [AwsCloudFormationListStacksOutputStackSummaries]
  NextToken: String
}

type AwsCloudFormationListStacksOutputStackSummaries {
  StackId: String
  StackName: String!
  TemplateDescription: String
  CreationTime: Date!
  LastUpdatedTime: Date
  DeletionTime: Date
  StackStatus: String!
  StackStatusReason: String
  ParentId: String
  RootId: String
  DriftInformation: AwsCloudFormationListStacksOutputStackSummariesDriftInformation
}

type AwsCloudFormationListStacksOutputStackSummariesDriftInformation {
  StackDriftStatus: String!
  LastCheckTimestamp: Date
}

input AwsCloudFormationListStacksInput {
  NextToken: String
  StackStatusFilter: [String]
}

type AwsCloudFormationListTypeRegistrationsOutput {
  RegistrationTokenList: [String]
  NextToken: String
}

input AwsCloudFormationListTypeRegistrationsInput {
  Type: String
  TypeName: String
  TypeArn: String
  RegistrationStatusFilter: String
  MaxResults: Int
  NextToken: String
}

type AwsCloudFormationListTypeVersionsOutput {
  TypeVersionSummaries: [AwsCloudFormationListTypeVersionsOutputTypeVersionSummaries]
  NextToken: String
}

type AwsCloudFormationListTypeVersionsOutputTypeVersionSummaries {
  Type: String
  TypeName: String
  VersionId: String
  IsDefaultVersion: Boolean
  Arn: String
  TimeCreated: Date
  Description: String
  PublicVersionNumber: String
}

input AwsCloudFormationListTypeVersionsInput {
  Type: String
  TypeName: String
  Arn: String
  MaxResults: Int
  NextToken: String
  DeprecatedStatus: String
  PublisherId: String
}

type AwsCloudFormationListTypesOutput {
  TypeSummaries: [AwsCloudFormationListTypesOutputTypeSummaries]
  NextToken: String
}

type AwsCloudFormationListTypesOutputTypeSummaries {
  Type: String
  TypeName: String
  DefaultVersionId: String
  TypeArn: String
  LastUpdated: Date
  Description: String
  PublisherId: String
  OriginalTypeName: String
  PublicVersionNumber: String
  LatestPublicVersion: String
  PublisherIdentity: String
  PublisherName: String
  IsActivated: Boolean
}

input AwsCloudFormationListTypesInput {
  Visibility: String
  ProvisioningType: String
  DeprecatedStatus: String
  Type: String
  Filters: AwsCloudFormationListTypesFiltersInput
  MaxResults: Int
  NextToken: String
}

input AwsCloudFormationListTypesFiltersInput {
  Category: String
  PublisherId: String
  TypeNamePrefix: String
}

type AwsCloudFormationPublishTypeOutput {
  PublicTypeArn: String
}

input AwsCloudFormationPublishTypeInput {
  Type: String
  Arn: String
  TypeName: String
  PublicVersionNumber: String
}

input AwsCloudFormationRecordHandlerProgressInput {
  BearerToken: String!
  OperationStatus: String!
  CurrentOperationStatus: String
  StatusMessage: String
  ErrorCode: String
  ResourceModel: String
  ClientRequestToken: String
}

type AwsCloudFormationRegisterPublisherOutput {
  PublisherId: String
}

input AwsCloudFormationRegisterPublisherInput {
  AcceptTermsAndConditions: Boolean
  ConnectionArn: String
}

type AwsCloudFormationRegisterTypeOutput {
  RegistrationToken: String
}

input AwsCloudFormationRegisterTypeInput {
  Type: String
  TypeName: String!
  SchemaHandlerPackage: String!
  LoggingConfig: AwsCloudFormationS7Input
  ExecutionRoleArn: String
  ClientRequestToken: String
}

input AwsCloudFormationSetStackPolicyInput {
  StackName: String!
  StackPolicyBody: String
  StackPolicyURL: String
}

type AwsCloudFormationSetTypeConfigurationOutput {
  ConfigurationArn: String
}

input AwsCloudFormationSetTypeConfigurationInput {
  TypeArn: String
  Configuration: String!
  ConfigurationAlias: String
  TypeName: String
  Type: String
}

input AwsCloudFormationSetTypeDefaultVersionInput {
  Arn: String
  Type: String
  TypeName: String
  VersionId: String
}

input AwsCloudFormationSignalResourceInput {
  StackName: String!
  LogicalResourceId: String!
  UniqueId: String!
  Status: String!
}

input AwsCloudFormationStopStackSetOperationInput {
  StackSetName: String!
  OperationId: String!
  CallAs: String
}

type AwsCloudFormationTestTypeOutput {
  TypeVersionArn: String
}

input AwsCloudFormationTestTypeInput {
  Arn: String
  Type: String
  TypeName: String
  VersionId: String
  LogDeliveryBucket: String
}

type AwsCloudFormationUpdateStackOutput {
  StackId: String
}

input AwsCloudFormationUpdateStackInput {
  StackName: String!
  TemplateBody: String
  TemplateURL: String
  UsePreviousTemplate: Boolean
  StackPolicyDuringUpdateBody: String
  StackPolicyDuringUpdateURL: String
  Parameters: [AwsCloudFormationS18Input]
  Capabilities: [String]
  ResourceTypes: [String]
  RoleARN: String
  RollbackConfiguration: AwsCloudFormationS1hInput
  StackPolicyBody: String
  StackPolicyURL: String
  NotificationARNs: [String]
  Tags: [AwsCloudFormationS1pInput]
  ClientRequestToken: String
}

type AwsCloudFormationUpdateStackInstancesOutput {
  OperationId: String
}

input AwsCloudFormationUpdateStackInstancesInput {
  StackSetName: String!
  Accounts: [String]
  DeploymentTargets: AwsCloudFormationS2jInput
  Regions: [String]!
  ParameterOverrides: [AwsCloudFormationS18Input]
  OperationPreferences: AwsCloudFormationS2pInput
  OperationId: String
  CallAs: String
}

type AwsCloudFormationUpdateStackSetOutput {
  OperationId: String
}

input AwsCloudFormationUpdateStackSetInput {
  StackSetName: String!
  Description: String
  TemplateBody: String
  TemplateURL: String
  UsePreviousTemplate: Boolean
  Parameters: [AwsCloudFormationS18Input]
  Capabilities: [String]
  Tags: [AwsCloudFormationS1pInput]
  OperationPreferences: AwsCloudFormationS2pInput
  AdministrationRoleARN: String
  ExecutionRoleName: String
  DeploymentTargets: AwsCloudFormationS2jInput
  PermissionModel: String
  AutoDeployment: AwsCloudFormationS30Input
  OperationId: String
  Accounts: [String]
  Regions: [String]
  CallAs: String
}

type AwsCloudFormationUpdateTerminationProtectionOutput {
  StackId: String
}

input AwsCloudFormationUpdateTerminationProtectionInput {
  EnableTerminationProtection: Boolean!
  StackName: String!
}

type AwsCloudFormationValidateTemplateOutput {
  Parameters: [AwsCloudFormationValidateTemplateOutputParameters]
  Description: String
  Capabilities: [String]
  CapabilitiesReason: String
  DeclaredTransforms: [String]
}

type AwsCloudFormationValidateTemplateOutputParameters {
  ParameterKey: String
  DefaultValue: String
  NoEcho: Boolean
  Description: String
}

input AwsCloudFormationValidateTemplateInput {
  TemplateBody: String
  TemplateURL: String
}

"""Amazon CloudFront (2020-05-31)"""
type AwsCloudFront {
  createCachePolicy(input: AwsCloudFrontCreateCachePolicyInput!, config: AwsConfig): AwsCloudFrontCreateCachePolicyOutput
  createCloudFrontOriginAccessIdentity(input: AwsCloudFrontCreateCloudFrontOriginAccessIdentityInput!, config: AwsConfig): AwsCloudFrontCreateCloudFrontOriginAccessIdentityOutput
  createDistribution(input: AwsCloudFrontCreateDistributionInput!, config: AwsConfig): AwsCloudFrontCreateDistributionOutput
  createDistributionWithTags(input: AwsCloudFrontCreateDistributionWithTagsInput!, config: AwsConfig): AwsCloudFrontCreateDistributionWithTagsOutput
  createFieldLevelEncryptionConfig(input: AwsCloudFrontCreateFieldLevelEncryptionConfigInput!, config: AwsConfig): AwsCloudFrontCreateFieldLevelEncryptionConfigOutput
  createFieldLevelEncryptionProfile(input: AwsCloudFrontCreateFieldLevelEncryptionProfileInput!, config: AwsConfig): AwsCloudFrontCreateFieldLevelEncryptionProfileOutput
  createFunction(input: AwsCloudFrontCreateFunctionInput!, config: AwsConfig): AwsCloudFrontCreateFunctionOutput
  createInvalidation(input: AwsCloudFrontCreateInvalidationInput!, config: AwsConfig): AwsCloudFrontCreateInvalidationOutput
  createKeyGroup(input: AwsCloudFrontCreateKeyGroupInput!, config: AwsConfig): AwsCloudFrontCreateKeyGroupOutput
  createMonitoringSubscription(input: AwsCloudFrontCreateMonitoringSubscriptionInput!, config: AwsConfig): AwsCloudFrontCreateMonitoringSubscriptionOutput
  createOriginRequestPolicy(input: AwsCloudFrontCreateOriginRequestPolicyInput!, config: AwsConfig): AwsCloudFrontCreateOriginRequestPolicyOutput
  createPublicKey(input: AwsCloudFrontCreatePublicKeyInput!, config: AwsConfig): AwsCloudFrontCreatePublicKeyOutput
  createRealtimeLogConfig(input: AwsCloudFrontCreateRealtimeLogConfigInput!, config: AwsConfig): AwsCloudFrontCreateRealtimeLogConfigOutput
  createStreamingDistribution(input: AwsCloudFrontCreateStreamingDistributionInput!, config: AwsConfig): AwsCloudFrontCreateStreamingDistributionOutput
  createStreamingDistributionWithTags(input: AwsCloudFrontCreateStreamingDistributionWithTagsInput!, config: AwsConfig): AwsCloudFrontCreateStreamingDistributionWithTagsOutput
  deleteCachePolicy(input: AwsCloudFrontDeleteCachePolicyInput!, config: AwsConfig): JSON
  deleteCloudFrontOriginAccessIdentity(input: AwsCloudFrontDeleteCloudFrontOriginAccessIdentityInput!, config: AwsConfig): JSON
  deleteDistribution(input: AwsCloudFrontDeleteDistributionInput!, config: AwsConfig): JSON
  deleteFieldLevelEncryptionConfig(input: AwsCloudFrontDeleteFieldLevelEncryptionConfigInput!, config: AwsConfig): JSON
  deleteFieldLevelEncryptionProfile(input: AwsCloudFrontDeleteFieldLevelEncryptionProfileInput!, config: AwsConfig): JSON
  deleteFunction(input: AwsCloudFrontDeleteFunctionInput!, config: AwsConfig): JSON
  deleteKeyGroup(input: AwsCloudFrontDeleteKeyGroupInput!, config: AwsConfig): JSON
  deleteMonitoringSubscription(input: AwsCloudFrontDeleteMonitoringSubscriptionInput!, config: AwsConfig): JSON
  deleteOriginRequestPolicy(input: AwsCloudFrontDeleteOriginRequestPolicyInput!, config: AwsConfig): JSON
  deletePublicKey(input: AwsCloudFrontDeletePublicKeyInput!, config: AwsConfig): JSON
  deleteRealtimeLogConfig(input: AwsCloudFrontDeleteRealtimeLogConfigInput, config: AwsConfig): JSON
  deleteStreamingDistribution(input: AwsCloudFrontDeleteStreamingDistributionInput!, config: AwsConfig): JSON
  describeFunction(input: AwsCloudFrontDescribeFunctionInput!, config: AwsConfig): AwsCloudFrontDescribeFunctionOutput
  getCachePolicy(input: AwsCloudFrontGetCachePolicyInput!, config: AwsConfig): AwsCloudFrontGetCachePolicyOutput
  getCachePolicyConfig(input: AwsCloudFrontGetCachePolicyConfigInput!, config: AwsConfig): AwsCloudFrontGetCachePolicyConfigOutput
  getCloudFrontOriginAccessIdentity(input: AwsCloudFrontGetCloudFrontOriginAccessIdentityInput!, config: AwsConfig): AwsCloudFrontGetCloudFrontOriginAccessIdentityOutput
  getCloudFrontOriginAccessIdentityConfig(input: AwsCloudFrontGetCloudFrontOriginAccessIdentityConfigInput!, config: AwsConfig): AwsCloudFrontGetCloudFrontOriginAccessIdentityConfigOutput
  getDistribution(input: AwsCloudFrontGetDistributionInput!, config: AwsConfig): AwsCloudFrontGetDistributionOutput
  getDistributionConfig(input: AwsCloudFrontGetDistributionConfigInput!, config: AwsConfig): AwsCloudFrontGetDistributionConfigOutput
  getFieldLevelEncryption(input: AwsCloudFrontGetFieldLevelEncryptionInput!, config: AwsConfig): AwsCloudFrontGetFieldLevelEncryptionOutput
  getFieldLevelEncryptionConfig(input: AwsCloudFrontGetFieldLevelEncryptionConfigInput!, config: AwsConfig): AwsCloudFrontGetFieldLevelEncryptionConfigOutput
  getFieldLevelEncryptionProfile(input: AwsCloudFrontGetFieldLevelEncryptionProfileInput!, config: AwsConfig): AwsCloudFrontGetFieldLevelEncryptionProfileOutput
  getFieldLevelEncryptionProfileConfig(input: AwsCloudFrontGetFieldLevelEncryptionProfileConfigInput!, config: AwsConfig): AwsCloudFrontGetFieldLevelEncryptionProfileConfigOutput
  getFunction(input: AwsCloudFrontGetFunctionInput!, config: AwsConfig): AwsCloudFrontGetFunctionOutput
  getInvalidation(input: AwsCloudFrontGetInvalidationInput!, config: AwsConfig): AwsCloudFrontGetInvalidationOutput
  getKeyGroup(input: AwsCloudFrontGetKeyGroupInput!, config: AwsConfig): AwsCloudFrontGetKeyGroupOutput
  getKeyGroupConfig(input: AwsCloudFrontGetKeyGroupConfigInput!, config: AwsConfig): AwsCloudFrontGetKeyGroupConfigOutput
  getMonitoringSubscription(input: AwsCloudFrontGetMonitoringSubscriptionInput!, config: AwsConfig): AwsCloudFrontGetMonitoringSubscriptionOutput
  getOriginRequestPolicy(input: AwsCloudFrontGetOriginRequestPolicyInput!, config: AwsConfig): AwsCloudFrontGetOriginRequestPolicyOutput
  getOriginRequestPolicyConfig(input: AwsCloudFrontGetOriginRequestPolicyConfigInput!, config: AwsConfig): AwsCloudFrontGetOriginRequestPolicyConfigOutput
  getPublicKey(input: AwsCloudFrontGetPublicKeyInput!, config: AwsConfig): AwsCloudFrontGetPublicKeyOutput
  getPublicKeyConfig(input: AwsCloudFrontGetPublicKeyConfigInput!, config: AwsConfig): AwsCloudFrontGetPublicKeyConfigOutput
  getRealtimeLogConfig(input: AwsCloudFrontGetRealtimeLogConfigInput, config: AwsConfig): AwsCloudFrontGetRealtimeLogConfigOutput
  getStreamingDistribution(input: AwsCloudFrontGetStreamingDistributionInput!, config: AwsConfig): AwsCloudFrontGetStreamingDistributionOutput
  getStreamingDistributionConfig(input: AwsCloudFrontGetStreamingDistributionConfigInput!, config: AwsConfig): AwsCloudFrontGetStreamingDistributionConfigOutput
  listCachePolicies(input: AwsCloudFrontListCachePoliciesInput, config: AwsConfig): AwsCloudFrontListCachePoliciesOutput
  listCloudFrontOriginAccessIdentities(input: AwsCloudFrontListCloudFrontOriginAccessIdentitiesInput, config: AwsConfig): AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutput
  listDistributions(input: AwsCloudFrontListDistributionsInput, config: AwsConfig): AwsCloudFrontListDistributionsOutput
  listDistributionsByCachePolicyId(input: AwsCloudFrontListDistributionsByCachePolicyIdInput!, config: AwsConfig): AwsCloudFrontListDistributionsByCachePolicyIdOutput
  listDistributionsByKeyGroup(input: AwsCloudFrontListDistributionsByKeyGroupInput!, config: AwsConfig): AwsCloudFrontListDistributionsByKeyGroupOutput
  listDistributionsByOriginRequestPolicyId(input: AwsCloudFrontListDistributionsByOriginRequestPolicyIdInput!, config: AwsConfig): AwsCloudFrontListDistributionsByOriginRequestPolicyIdOutput
  listDistributionsByRealtimeLogConfig(input: AwsCloudFrontListDistributionsByRealtimeLogConfigInput, config: AwsConfig): AwsCloudFrontListDistributionsByRealtimeLogConfigOutput
  listDistributionsByWebACLId(input: AwsCloudFrontListDistributionsByWebACLIdInput!, config: AwsConfig): AwsCloudFrontListDistributionsByWebACLIdOutput
  listFieldLevelEncryptionConfigs(input: AwsCloudFrontListFieldLevelEncryptionConfigsInput, config: AwsConfig): AwsCloudFrontListFieldLevelEncryptionConfigsOutput
  listFieldLevelEncryptionProfiles(input: AwsCloudFrontListFieldLevelEncryptionProfilesInput, config: AwsConfig): AwsCloudFrontListFieldLevelEncryptionProfilesOutput
  listFunctions(input: AwsCloudFrontListFunctionsInput, config: AwsConfig): AwsCloudFrontListFunctionsOutput
  listInvalidations(input: AwsCloudFrontListInvalidationsInput!, config: AwsConfig): AwsCloudFrontListInvalidationsOutput
  listKeyGroups(input: AwsCloudFrontListKeyGroupsInput, config: AwsConfig): AwsCloudFrontListKeyGroupsOutput
  listOriginRequestPolicies(input: AwsCloudFrontListOriginRequestPoliciesInput, config: AwsConfig): AwsCloudFrontListOriginRequestPoliciesOutput
  listPublicKeys(input: AwsCloudFrontListPublicKeysInput, config: AwsConfig): AwsCloudFrontListPublicKeysOutput
  listRealtimeLogConfigs(input: AwsCloudFrontListRealtimeLogConfigsInput, config: AwsConfig): AwsCloudFrontListRealtimeLogConfigsOutput
  listStreamingDistributions(input: AwsCloudFrontListStreamingDistributionsInput, config: AwsConfig): AwsCloudFrontListStreamingDistributionsOutput
  listTagsForResource(input: AwsCloudFrontListTagsForResourceInput!, config: AwsConfig): AwsCloudFrontListTagsForResourceOutput
  publishFunction(input: AwsCloudFrontPublishFunctionInput!, config: AwsConfig): AwsCloudFrontPublishFunctionOutput
  tagResource(input: AwsCloudFrontTagResourceInput!, config: AwsConfig): JSON
  testFunction(input: AwsCloudFrontTestFunctionInput!, config: AwsConfig): AwsCloudFrontTestFunctionOutput
  untagResource(input: AwsCloudFrontUntagResourceInput!, config: AwsConfig): JSON
  updateCachePolicy(input: AwsCloudFrontUpdateCachePolicyInput!, config: AwsConfig): AwsCloudFrontUpdateCachePolicyOutput
  updateCloudFrontOriginAccessIdentity(input: AwsCloudFrontUpdateCloudFrontOriginAccessIdentityInput!, config: AwsConfig): AwsCloudFrontUpdateCloudFrontOriginAccessIdentityOutput
  updateDistribution(input: AwsCloudFrontUpdateDistributionInput!, config: AwsConfig): AwsCloudFrontUpdateDistributionOutput
  updateFieldLevelEncryptionConfig(input: AwsCloudFrontUpdateFieldLevelEncryptionConfigInput!, config: AwsConfig): AwsCloudFrontUpdateFieldLevelEncryptionConfigOutput
  updateFieldLevelEncryptionProfile(input: AwsCloudFrontUpdateFieldLevelEncryptionProfileInput!, config: AwsConfig): AwsCloudFrontUpdateFieldLevelEncryptionProfileOutput
  updateFunction(input: AwsCloudFrontUpdateFunctionInput!, config: AwsConfig): AwsCloudFrontUpdateFunctionOutput
  updateKeyGroup(input: AwsCloudFrontUpdateKeyGroupInput!, config: AwsConfig): AwsCloudFrontUpdateKeyGroupOutput
  updateOriginRequestPolicy(input: AwsCloudFrontUpdateOriginRequestPolicyInput!, config: AwsConfig): AwsCloudFrontUpdateOriginRequestPolicyOutput
  updatePublicKey(input: AwsCloudFrontUpdatePublicKeyInput!, config: AwsConfig): AwsCloudFrontUpdatePublicKeyOutput
  updateRealtimeLogConfig(input: AwsCloudFrontUpdateRealtimeLogConfigInput, config: AwsConfig): AwsCloudFrontUpdateRealtimeLogConfigOutput
  updateStreamingDistribution(input: AwsCloudFrontUpdateStreamingDistributionInput!, config: AwsConfig): AwsCloudFrontUpdateStreamingDistributionOutput
}

type AwsCloudFrontCreateCachePolicyOutput {
  CachePolicy: AwsCloudFrontSl
  Location: String
  ETag: String
}

type AwsCloudFrontSl {
  Id: String!
  LastModifiedTime: Date!
  CachePolicyConfig: AwsCloudFrontS2!
}

type AwsCloudFrontS2 {
  Comment: String
  Name: String!
  DefaultTTL: JSON
  MaxTTL: JSON
  MinTTL: JSON!
  ParametersInCacheKeyAndForwardedToOrigin: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOrigin
}

type AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOrigin {
  EnableAcceptEncodingGzip: Boolean!
  EnableAcceptEncodingBrotli: Boolean
  HeadersConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginHeadersConfig!
  CookiesConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginCookiesConfig!
  QueryStringsConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginQueryStringsConfig!
}

type AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginHeadersConfig {
  HeaderBehavior: String!
  Headers: AwsCloudFrontS9
}

type AwsCloudFrontS9 {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginCookiesConfig {
  CookieBehavior: String!
  Cookies: AwsCloudFrontSe
}

type AwsCloudFrontSe {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginQueryStringsConfig {
  QueryStringBehavior: String!
  QueryStrings: AwsCloudFrontSi
}

type AwsCloudFrontSi {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontCreateCachePolicyInput {
  CachePolicyConfig: AwsCloudFrontS2Input!
}

input AwsCloudFrontS2Input {
  Comment: String
  Name: String!
  DefaultTTL: JSON
  MaxTTL: JSON
  MinTTL: JSON!
  ParametersInCacheKeyAndForwardedToOrigin: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginInput
}

input AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginInput {
  EnableAcceptEncodingGzip: Boolean!
  EnableAcceptEncodingBrotli: Boolean
  HeadersConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginHeadersConfigInput!
  CookiesConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginCookiesConfigInput!
  QueryStringsConfig: AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginQueryStringsConfigInput!
}

input AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginHeadersConfigInput {
  HeaderBehavior: String!
  Headers: AwsCloudFrontS9Input
}

input AwsCloudFrontS9Input {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginCookiesConfigInput {
  CookieBehavior: String!
  Cookies: AwsCloudFrontSeInput
}

input AwsCloudFrontSeInput {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontS2ParametersInCacheKeyAndForwardedToOriginQueryStringsConfigInput {
  QueryStringBehavior: String!
  QueryStrings: AwsCloudFrontSiInput
}

input AwsCloudFrontSiInput {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontCreateCloudFrontOriginAccessIdentityOutput {
  CloudFrontOriginAccessIdentity: AwsCloudFrontSq
  Location: String
  ETag: String
}

type AwsCloudFrontSq {
  Id: String!
  S3CanonicalUserId: String!
  CloudFrontOriginAccessIdentityConfig: AwsCloudFrontSo
}

type AwsCloudFrontSo {
  CallerReference: String!
  Comment: String!
}

input AwsCloudFrontCreateCloudFrontOriginAccessIdentityInput {
  CloudFrontOriginAccessIdentityConfig: AwsCloudFrontSoInput!
}

input AwsCloudFrontSoInput {
  CallerReference: String!
  Comment: String!
}

type AwsCloudFrontCreateDistributionOutput {
  Distribution: AwsCloudFrontS2p
  Location: String
  ETag: String
}

type AwsCloudFrontS2p {
  Id: String!
  ARN: String!
  Status: String!
  LastModifiedTime: Date!
  InProgressInvalidationBatches: Int!
  DomainName: String!
  ActiveTrustedSigners: AwsCloudFrontS2q
  ActiveTrustedKeyGroups: AwsCloudFrontS2pActiveTrustedKeyGroups
  DistributionConfig: AwsCloudFrontSs!
  AliasICPRecordals: [AwsCloudFrontS2y]
}

type AwsCloudFrontS2q {
  Enabled: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontS2qItems]
}

type AwsCloudFrontS2qItems {
  AwsAccountNumber: String
  KeyPairIds: AwsCloudFrontS2t
}

type AwsCloudFrontS2t {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS2pActiveTrustedKeyGroups {
  Enabled: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontS2pActiveTrustedKeyGroupsItems]
}

type AwsCloudFrontS2pActiveTrustedKeyGroupsItems {
  KeyGroupId: String
  KeyPairIds: AwsCloudFrontS2t
}

type AwsCloudFrontSs {
  CallerReference: String!
  Aliases: AwsCloudFrontSt
  DefaultRootObject: String
  Origins: AwsCloudFrontSv!
  OriginGroups: AwsCloudFrontS19
  DefaultCacheBehavior: AwsCloudFrontS1i!
  CacheBehaviors: AwsCloudFrontS26
  CustomErrorResponses: AwsCloudFrontS29
  Comment: String!
  Logging: AwsCloudFrontSsLogging
  PriceClass: String
  Enabled: Boolean!
  ViewerCertificate: AwsCloudFrontS2f
  Restrictions: AwsCloudFrontS2j
  WebACLId: String
  HttpVersion: String
  IsIPV6Enabled: Boolean
}

type AwsCloudFrontSt {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontSv {
  Quantity: Int!
  Items: [AwsCloudFrontSvItems]!
}

type AwsCloudFrontSvItems {
  Id: String!
  DomainName: String!
  OriginPath: String
  CustomHeaders: AwsCloudFrontSvItemsCustomHeaders
  S3OriginConfig: AwsCloudFrontSvItemsS3OriginConfig
  CustomOriginConfig: AwsCloudFrontSvItemsCustomOriginConfig
  ConnectionAttempts: Int
  ConnectionTimeout: Int
  OriginShield: AwsCloudFrontSvItemsOriginShield
}

type AwsCloudFrontSvItemsCustomHeaders {
  Quantity: Int!
  Items: [AwsCloudFrontSvItemsCustomHeadersItems]
}

type AwsCloudFrontSvItemsCustomHeadersItems {
  HeaderName: String!
  HeaderValue: String!
}

type AwsCloudFrontSvItemsS3OriginConfig {
  OriginAccessIdentity: String!
}

type AwsCloudFrontSvItemsCustomOriginConfig {
  HTTPPort: Int!
  HTTPSPort: Int!
  OriginProtocolPolicy: String!
  OriginSslProtocols: AwsCloudFrontSvItemsCustomOriginConfigOriginSslProtocols
  OriginReadTimeout: Int
  OriginKeepaliveTimeout: Int
}

type AwsCloudFrontSvItemsCustomOriginConfigOriginSslProtocols {
  Quantity: Int!
  Items: [String]!
}

type AwsCloudFrontSvItemsOriginShield {
  Enabled: Boolean!
  OriginShieldRegion: String
}

type AwsCloudFrontS19 {
  Quantity: Int!
  Items: [AwsCloudFrontS19Items]
}

type AwsCloudFrontS19Items {
  Id: String!
  FailoverCriteria: AwsCloudFrontS19ItemsFailoverCriteria!
  Members: AwsCloudFrontS19ItemsMembers!
}

type AwsCloudFrontS19ItemsFailoverCriteria {
  StatusCodes: AwsCloudFrontS19ItemsFailoverCriteriaStatusCodes!
}

type AwsCloudFrontS19ItemsFailoverCriteriaStatusCodes {
  Quantity: Int!
  Items: [Int]!
}

type AwsCloudFrontS19ItemsMembers {
  Quantity: Int!
  Items: [AwsCloudFrontS19ItemsMembersItems]!
}

type AwsCloudFrontS19ItemsMembersItems {
  OriginId: String!
}

type AwsCloudFrontS1i {
  TargetOriginId: String!
  TrustedSigners: AwsCloudFrontS1j
  TrustedKeyGroups: AwsCloudFrontS1l
  ViewerProtocolPolicy: String!
  AllowedMethods: AwsCloudFrontS1o
  SmoothStreaming: Boolean
  Compress: Boolean
  LambdaFunctionAssociations: AwsCloudFrontS1s
  FunctionAssociations: AwsCloudFrontS1x
  FieldLevelEncryptionId: String
  RealtimeLogConfigArn: String
  CachePolicyId: String
  OriginRequestPolicyId: String
  ForwardedValues: AwsCloudFrontS21
  MinTTL: JSON
  DefaultTTL: JSON
  MaxTTL: JSON
}

type AwsCloudFrontS1j {
  Enabled: Boolean!
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS1l {
  Enabled: Boolean!
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS1o {
  Quantity: Int!
  Items: [String]!
  CachedMethods: AwsCloudFrontS1oCachedMethods
}

type AwsCloudFrontS1oCachedMethods {
  Quantity: Int!
  Items: [String]!
}

type AwsCloudFrontS1s {
  Quantity: Int!
  Items: [AwsCloudFrontS1sItems]
}

type AwsCloudFrontS1sItems {
  LambdaFunctionARN: String!
  EventType: String!
  IncludeBody: Boolean
}

type AwsCloudFrontS1x {
  Quantity: Int!
  Items: [AwsCloudFrontS1xItems]
}

type AwsCloudFrontS1xItems {
  FunctionARN: String!
  EventType: String!
}

type AwsCloudFrontS21 {
  QueryString: Boolean!
  Cookies: AwsCloudFrontS21Cookies!
  Headers: AwsCloudFrontS9
  QueryStringCacheKeys: AwsCloudFrontS21QueryStringCacheKeys
}

type AwsCloudFrontS21Cookies {
  Forward: String!
  WhitelistedNames: AwsCloudFrontSe
}

type AwsCloudFrontS21QueryStringCacheKeys {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS26 {
  Quantity: Int!
  Items: [AwsCloudFrontS26Items]
}

type AwsCloudFrontS26Items {
  PathPattern: String!
  TargetOriginId: String!
  TrustedSigners: AwsCloudFrontS1j
  TrustedKeyGroups: AwsCloudFrontS1l
  ViewerProtocolPolicy: String!
  AllowedMethods: AwsCloudFrontS1o
  SmoothStreaming: Boolean
  Compress: Boolean
  LambdaFunctionAssociations: AwsCloudFrontS1s
  FunctionAssociations: AwsCloudFrontS1x
  FieldLevelEncryptionId: String
  RealtimeLogConfigArn: String
  CachePolicyId: String
  OriginRequestPolicyId: String
  ForwardedValues: AwsCloudFrontS21
  MinTTL: JSON
  DefaultTTL: JSON
  MaxTTL: JSON
}

type AwsCloudFrontS29 {
  Quantity: Int!
  Items: [AwsCloudFrontS29Items]
}

type AwsCloudFrontS29Items {
  ErrorCode: Int!
  ResponsePagePath: String
  ResponseCode: String
  ErrorCachingMinTTL: JSON
}

type AwsCloudFrontSsLogging {
  Enabled: Boolean!
  IncludeCookies: Boolean!
  Bucket: String!
  Prefix: String!
}

type AwsCloudFrontS2f {
  CloudFrontDefaultCertificate: Boolean
  IAMCertificateId: String
  ACMCertificateArn: String
  SSLSupportMethod: String
  MinimumProtocolVersion: String
  Certificate: String
  CertificateSource: String
}

type AwsCloudFrontS2j {
  GeoRestriction: AwsCloudFrontS2jGeoRestriction!
}

type AwsCloudFrontS2jGeoRestriction {
  RestrictionType: String!
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontS2y {
  CNAME: String
  ICPRecordalStatus: String
}

input AwsCloudFrontCreateDistributionInput {
  DistributionConfig: AwsCloudFrontSsInput!
}

input AwsCloudFrontSsInput {
  CallerReference: String!
  Aliases: AwsCloudFrontStInput
  DefaultRootObject: String
  Origins: AwsCloudFrontSvInput!
  OriginGroups: AwsCloudFrontS19Input
  DefaultCacheBehavior: AwsCloudFrontS1iInput!
  CacheBehaviors: AwsCloudFrontS26Input
  CustomErrorResponses: AwsCloudFrontS29Input
  Comment: String!
  Logging: AwsCloudFrontSsLoggingInput
  PriceClass: String
  Enabled: Boolean!
  ViewerCertificate: AwsCloudFrontS2fInput
  Restrictions: AwsCloudFrontS2jInput
  WebACLId: String
  HttpVersion: String
  IsIPV6Enabled: Boolean
}

input AwsCloudFrontStInput {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontSvInput {
  Quantity: Int!
  Items: [AwsCloudFrontSvItemsInput]!
}

input AwsCloudFrontSvItemsInput {
  Id: String!
  DomainName: String!
  OriginPath: String
  CustomHeaders: AwsCloudFrontSvItemsCustomHeadersInput
  S3OriginConfig: AwsCloudFrontSvItemsS3OriginConfigInput
  CustomOriginConfig: AwsCloudFrontSvItemsCustomOriginConfigInput
  ConnectionAttempts: Int
  ConnectionTimeout: Int
  OriginShield: AwsCloudFrontSvItemsOriginShieldInput
}

input AwsCloudFrontSvItemsCustomHeadersInput {
  Quantity: Int!
  Items: [AwsCloudFrontSvItemsCustomHeadersItemsInput]
}

input AwsCloudFrontSvItemsCustomHeadersItemsInput {
  HeaderName: String!
  HeaderValue: String!
}

input AwsCloudFrontSvItemsS3OriginConfigInput {
  OriginAccessIdentity: String!
}

input AwsCloudFrontSvItemsCustomOriginConfigInput {
  HTTPPort: Int!
  HTTPSPort: Int!
  OriginProtocolPolicy: String!
  OriginSslProtocols: AwsCloudFrontSvItemsCustomOriginConfigOriginSslProtocolsInput
  OriginReadTimeout: Int
  OriginKeepaliveTimeout: Int
}

input AwsCloudFrontSvItemsCustomOriginConfigOriginSslProtocolsInput {
  Quantity: Int!
  Items: [String]!
}

input AwsCloudFrontSvItemsOriginShieldInput {
  Enabled: Boolean!
  OriginShieldRegion: String
}

input AwsCloudFrontS19Input {
  Quantity: Int!
  Items: [AwsCloudFrontS19ItemsInput]
}

input AwsCloudFrontS19ItemsInput {
  Id: String!
  FailoverCriteria: AwsCloudFrontS19ItemsFailoverCriteriaInput!
  Members: AwsCloudFrontS19ItemsMembersInput!
}

input AwsCloudFrontS19ItemsFailoverCriteriaInput {
  StatusCodes: AwsCloudFrontS19ItemsFailoverCriteriaStatusCodesInput!
}

input AwsCloudFrontS19ItemsFailoverCriteriaStatusCodesInput {
  Quantity: Int!
  Items: [Int]!
}

input AwsCloudFrontS19ItemsMembersInput {
  Quantity: Int!
  Items: [AwsCloudFrontS19ItemsMembersItemsInput]!
}

input AwsCloudFrontS19ItemsMembersItemsInput {
  OriginId: String!
}

input AwsCloudFrontS1iInput {
  TargetOriginId: String!
  TrustedSigners: AwsCloudFrontS1jInput
  TrustedKeyGroups: AwsCloudFrontS1lInput
  ViewerProtocolPolicy: String!
  AllowedMethods: AwsCloudFrontS1oInput
  SmoothStreaming: Boolean
  Compress: Boolean
  LambdaFunctionAssociations: AwsCloudFrontS1sInput
  FunctionAssociations: AwsCloudFrontS1xInput
  FieldLevelEncryptionId: String
  RealtimeLogConfigArn: String
  CachePolicyId: String
  OriginRequestPolicyId: String
  ForwardedValues: AwsCloudFrontS21Input
  MinTTL: JSON
  DefaultTTL: JSON
  MaxTTL: JSON
}

input AwsCloudFrontS1jInput {
  Enabled: Boolean!
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontS1lInput {
  Enabled: Boolean!
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontS1oInput {
  Quantity: Int!
  Items: [String]!
  CachedMethods: AwsCloudFrontS1oCachedMethodsInput
}

input AwsCloudFrontS1oCachedMethodsInput {
  Quantity: Int!
  Items: [String]!
}

input AwsCloudFrontS1sInput {
  Quantity: Int!
  Items: [AwsCloudFrontS1sItemsInput]
}

input AwsCloudFrontS1sItemsInput {
  LambdaFunctionARN: String!
  EventType: String!
  IncludeBody: Boolean
}

input AwsCloudFrontS1xInput {
  Quantity: Int!
  Items: [AwsCloudFrontS1xItemsInput]
}

input AwsCloudFrontS1xItemsInput {
  FunctionARN: String!
  EventType: String!
}

input AwsCloudFrontS21Input {
  QueryString: Boolean!
  Cookies: AwsCloudFrontS21CookiesInput!
  Headers: AwsCloudFrontS9Input
  QueryStringCacheKeys: AwsCloudFrontS21QueryStringCacheKeysInput
}

input AwsCloudFrontS21CookiesInput {
  Forward: String!
  WhitelistedNames: AwsCloudFrontSeInput
}

input AwsCloudFrontS21QueryStringCacheKeysInput {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontS26Input {
  Quantity: Int!
  Items: [AwsCloudFrontS26ItemsInput]
}

input AwsCloudFrontS26ItemsInput {
  PathPattern: String!
  TargetOriginId: String!
  TrustedSigners: AwsCloudFrontS1jInput
  TrustedKeyGroups: AwsCloudFrontS1lInput
  ViewerProtocolPolicy: String!
  AllowedMethods: AwsCloudFrontS1oInput
  SmoothStreaming: Boolean
  Compress: Boolean
  LambdaFunctionAssociations: AwsCloudFrontS1sInput
  FunctionAssociations: AwsCloudFrontS1xInput
  FieldLevelEncryptionId: String
  RealtimeLogConfigArn: String
  CachePolicyId: String
  OriginRequestPolicyId: String
  ForwardedValues: AwsCloudFrontS21Input
  MinTTL: JSON
  DefaultTTL: JSON
  MaxTTL: JSON
}

input AwsCloudFrontS29Input {
  Quantity: Int!
  Items: [AwsCloudFrontS29ItemsInput]
}

input AwsCloudFrontS29ItemsInput {
  ErrorCode: Int!
  ResponsePagePath: String
  ResponseCode: String
  ErrorCachingMinTTL: JSON
}

input AwsCloudFrontSsLoggingInput {
  Enabled: Boolean!
  IncludeCookies: Boolean!
  Bucket: String!
  Prefix: String!
}

input AwsCloudFrontS2fInput {
  CloudFrontDefaultCertificate: Boolean
  IAMCertificateId: String
  ACMCertificateArn: String
  SSLSupportMethod: String
  MinimumProtocolVersion: String
  Certificate: String
  CertificateSource: String
}

input AwsCloudFrontS2jInput {
  GeoRestriction: AwsCloudFrontS2jGeoRestrictionInput!
}

input AwsCloudFrontS2jGeoRestrictionInput {
  RestrictionType: String!
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontCreateDistributionWithTagsOutput {
  Distribution: AwsCloudFrontS2p
  Location: String
  ETag: String
}

input AwsCloudFrontCreateDistributionWithTagsInput {
  DistributionConfigWithTags: AwsCloudFrontCreateDistributionWithTagsDistributionConfigWithTagsInput!
}

input AwsCloudFrontCreateDistributionWithTagsDistributionConfigWithTagsInput {
  DistributionConfig: AwsCloudFrontSsInput!
  Tags: AwsCloudFrontS33Input!
}

input AwsCloudFrontS33Input {
  Items: [AwsCloudFrontS33ItemsInput]
}

input AwsCloudFrontS33ItemsInput {
  Key: String!
  Value: String
}

type AwsCloudFrontCreateFieldLevelEncryptionConfigOutput {
  FieldLevelEncryption: AwsCloudFrontS3l
  Location: String
  ETag: String
}

type AwsCloudFrontS3l {
  Id: String!
  LastModifiedTime: Date!
  FieldLevelEncryptionConfig: AwsCloudFrontS3a!
}

type AwsCloudFrontS3a {
  CallerReference: String!
  Comment: String
  QueryArgProfileConfig: AwsCloudFrontS3b
  ContentTypeProfileConfig: AwsCloudFrontS3f
}

type AwsCloudFrontS3b {
  ForwardWhenQueryArgProfileIsUnknown: Boolean!
  QueryArgProfiles: AwsCloudFrontS3bQueryArgProfiles
}

type AwsCloudFrontS3bQueryArgProfiles {
  Quantity: Int!
  Items: [AwsCloudFrontS3bQueryArgProfilesItems]
}

type AwsCloudFrontS3bQueryArgProfilesItems {
  QueryArg: String!
  ProfileId: String!
}

type AwsCloudFrontS3f {
  ForwardWhenContentTypeIsUnknown: Boolean!
  ContentTypeProfiles: AwsCloudFrontS3fContentTypeProfiles
}

type AwsCloudFrontS3fContentTypeProfiles {
  Quantity: Int!
  Items: [AwsCloudFrontS3fContentTypeProfilesItems]
}

type AwsCloudFrontS3fContentTypeProfilesItems {
  Format: String!
  ProfileId: String
  ContentType: String!
}

input AwsCloudFrontCreateFieldLevelEncryptionConfigInput {
  FieldLevelEncryptionConfig: AwsCloudFrontS3aInput!
}

input AwsCloudFrontS3aInput {
  CallerReference: String!
  Comment: String
  QueryArgProfileConfig: AwsCloudFrontS3bInput
  ContentTypeProfileConfig: AwsCloudFrontS3fInput
}

input AwsCloudFrontS3bInput {
  ForwardWhenQueryArgProfileIsUnknown: Boolean!
  QueryArgProfiles: AwsCloudFrontS3bQueryArgProfilesInput
}

input AwsCloudFrontS3bQueryArgProfilesInput {
  Quantity: Int!
  Items: [AwsCloudFrontS3bQueryArgProfilesItemsInput]
}

input AwsCloudFrontS3bQueryArgProfilesItemsInput {
  QueryArg: String!
  ProfileId: String!
}

input AwsCloudFrontS3fInput {
  ForwardWhenContentTypeIsUnknown: Boolean!
  ContentTypeProfiles: AwsCloudFrontS3fContentTypeProfilesInput
}

input AwsCloudFrontS3fContentTypeProfilesInput {
  Quantity: Int!
  Items: [AwsCloudFrontS3fContentTypeProfilesItemsInput]
}

input AwsCloudFrontS3fContentTypeProfilesItemsInput {
  Format: String!
  ProfileId: String
  ContentType: String!
}

type AwsCloudFrontCreateFieldLevelEncryptionProfileOutput {
  FieldLevelEncryptionProfile: AwsCloudFrontS3u
  Location: String
  ETag: String
}

type AwsCloudFrontS3u {
  Id: String!
  LastModifiedTime: Date!
  FieldLevelEncryptionProfileConfig: AwsCloudFrontS3n!
}

type AwsCloudFrontS3n {
  Name: String!
  CallerReference: String!
  Comment: String
  EncryptionEntities: AwsCloudFrontS3o!
}

type AwsCloudFrontS3o {
  Quantity: Int!
  Items: [AwsCloudFrontS3oItems]
}

type AwsCloudFrontS3oItems {
  PublicKeyId: String!
  ProviderId: String!
  FieldPatterns: AwsCloudFrontS3oItemsFieldPatterns!
}

type AwsCloudFrontS3oItemsFieldPatterns {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontCreateFieldLevelEncryptionProfileInput {
  FieldLevelEncryptionProfileConfig: AwsCloudFrontS3nInput!
}

input AwsCloudFrontS3nInput {
  Name: String!
  CallerReference: String!
  Comment: String
  EncryptionEntities: AwsCloudFrontS3oInput!
}

input AwsCloudFrontS3oInput {
  Quantity: Int!
  Items: [AwsCloudFrontS3oItemsInput]
}

input AwsCloudFrontS3oItemsInput {
  PublicKeyId: String!
  ProviderId: String!
  FieldPatterns: AwsCloudFrontS3oItemsFieldPatternsInput!
}

input AwsCloudFrontS3oItemsFieldPatternsInput {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontCreateFunctionOutput {
  FunctionSummary: AwsCloudFrontS41
  Location: String
  ETag: String
}

type AwsCloudFrontS41 {
  Name: String!
  Status: String
  FunctionConfig: AwsCloudFrontS3x!
  FunctionMetadata: AwsCloudFrontS41FunctionMetadata!
}

type AwsCloudFrontS3x {
  Comment: String!
  Runtime: String!
}

type AwsCloudFrontS41FunctionMetadata {
  FunctionARN: String!
  Stage: String
  CreatedTime: Date
  LastModifiedTime: Date!
}

input AwsCloudFrontCreateFunctionInput {
  Name: String!
  FunctionConfig: AwsCloudFrontS3xInput!
  FunctionCode: JSON!
}

input AwsCloudFrontS3xInput {
  Comment: String!
  Runtime: String!
}

type AwsCloudFrontCreateInvalidationOutput {
  Location: String
  Invalidation: AwsCloudFrontS49
}

type AwsCloudFrontS49 {
  Id: String!
  Status: String!
  CreateTime: Date!
  InvalidationBatch: AwsCloudFrontS45!
}

type AwsCloudFrontS45 {
  Paths: AwsCloudFrontS45Paths!
  CallerReference: String!
}

type AwsCloudFrontS45Paths {
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontCreateInvalidationInput {
  DistributionId: String!
  InvalidationBatch: AwsCloudFrontS45Input!
}

input AwsCloudFrontS45Input {
  Paths: AwsCloudFrontS45PathsInput!
  CallerReference: String!
}

input AwsCloudFrontS45PathsInput {
  Quantity: Int!
  Items: [String]
}

type AwsCloudFrontCreateKeyGroupOutput {
  KeyGroup: AwsCloudFrontS4e
  Location: String
  ETag: String
}

type AwsCloudFrontS4e {
  Id: String!
  LastModifiedTime: Date!
  KeyGroupConfig: AwsCloudFrontS4b!
}

type AwsCloudFrontS4b {
  Name: String!
  Items: [String]!
  Comment: String
}

input AwsCloudFrontCreateKeyGroupInput {
  KeyGroupConfig: AwsCloudFrontS4bInput!
}

input AwsCloudFrontS4bInput {
  Name: String!
  Items: [String]!
  Comment: String
}

type AwsCloudFrontCreateMonitoringSubscriptionOutput {
  MonitoringSubscription: AwsCloudFrontS4g
}

type AwsCloudFrontS4g {
  RealtimeMetricsSubscriptionConfig: AwsCloudFrontS4gRealtimeMetricsSubscriptionConfig
}

type AwsCloudFrontS4gRealtimeMetricsSubscriptionConfig {
  RealtimeMetricsSubscriptionStatus: String!
}

input AwsCloudFrontCreateMonitoringSubscriptionInput {
  DistributionId: String!
  MonitoringSubscription: AwsCloudFrontS4gInput!
}

input AwsCloudFrontS4gInput {
  RealtimeMetricsSubscriptionConfig: AwsCloudFrontS4gRealtimeMetricsSubscriptionConfigInput
}

input AwsCloudFrontS4gRealtimeMetricsSubscriptionConfigInput {
  RealtimeMetricsSubscriptionStatus: String!
}

type AwsCloudFrontCreateOriginRequestPolicyOutput {
  OriginRequestPolicy: AwsCloudFrontS4t
  Location: String
  ETag: String
}

type AwsCloudFrontS4t {
  Id: String!
  LastModifiedTime: Date!
  OriginRequestPolicyConfig: AwsCloudFrontS4l!
}

type AwsCloudFrontS4l {
  Comment: String
  Name: String!
  HeadersConfig: AwsCloudFrontS4lHeadersConfig!
  CookiesConfig: AwsCloudFrontS4lCookiesConfig!
  QueryStringsConfig: AwsCloudFrontS4lQueryStringsConfig!
}

type AwsCloudFrontS4lHeadersConfig {
  HeaderBehavior: String!
  Headers: AwsCloudFrontS9
}

type AwsCloudFrontS4lCookiesConfig {
  CookieBehavior: String!
  Cookies: AwsCloudFrontSe
}

type AwsCloudFrontS4lQueryStringsConfig {
  QueryStringBehavior: String!
  QueryStrings: AwsCloudFrontSi
}

input AwsCloudFrontCreateOriginRequestPolicyInput {
  OriginRequestPolicyConfig: AwsCloudFrontS4lInput!
}

input AwsCloudFrontS4lInput {
  Comment: String
  Name: String!
  HeadersConfig: AwsCloudFrontS4lHeadersConfigInput!
  CookiesConfig: AwsCloudFrontS4lCookiesConfigInput!
  QueryStringsConfig: AwsCloudFrontS4lQueryStringsConfigInput!
}

input AwsCloudFrontS4lHeadersConfigInput {
  HeaderBehavior: String!
  Headers: AwsCloudFrontS9Input
}

input AwsCloudFrontS4lCookiesConfigInput {
  CookieBehavior: String!
  Cookies: AwsCloudFrontSeInput
}

input AwsCloudFrontS4lQueryStringsConfigInput {
  QueryStringBehavior: String!
  QueryStrings: AwsCloudFrontSiInput
}

type AwsCloudFrontCreatePublicKeyOutput {
  PublicKey: AwsCloudFrontS4x
  Location: String
  ETag: String
}

type AwsCloudFrontS4x {
  Id: String!
  CreatedTime: Date!
  PublicKeyConfig: AwsCloudFrontS4v!
}

type AwsCloudFrontS4v {
  CallerReference: String!
  Name: String!
  EncodedKey: String!
  Comment: String
}

input AwsCloudFrontCreatePublicKeyInput {
  PublicKeyConfig: AwsCloudFrontS4vInput!
}

input AwsCloudFrontS4vInput {
  CallerReference: String!
  Name: String!
  EncodedKey: String!
  Comment: String
}

type AwsCloudFrontCreateRealtimeLogConfigOutput {
  RealtimeLogConfig: AwsCloudFrontS54
}

type AwsCloudFrontS54 {
  ARN: String!
  Name: String!
  SamplingRate: JSON!
  EndPoints: [AwsCloudFrontS4z]!
  Fields: [String]!
}

type AwsCloudFrontS4z {
  StreamType: String!
  KinesisStreamConfig: AwsCloudFrontS4zKinesisStreamConfig
}

type AwsCloudFrontS4zKinesisStreamConfig {
  RoleARN: String!
  StreamARN: String!
}

input AwsCloudFrontCreateRealtimeLogConfigInput {
  EndPoints: [AwsCloudFrontS4zInput]!
  Fields: [String]!
  Name: String!
  SamplingRate: JSON!
}

input AwsCloudFrontS4zInput {
  StreamType: String!
  KinesisStreamConfig: AwsCloudFrontS4zKinesisStreamConfigInput
}

input AwsCloudFrontS4zKinesisStreamConfigInput {
  RoleARN: String!
  StreamARN: String!
}

type AwsCloudFrontCreateStreamingDistributionOutput {
  StreamingDistribution: AwsCloudFrontS5a
  Location: String
  ETag: String
}

type AwsCloudFrontS5a {
  Id: String!
  ARN: String!
  Status: String!
  LastModifiedTime: Date
  DomainName: String!
  ActiveTrustedSigners: AwsCloudFrontS2q!
  StreamingDistributionConfig: AwsCloudFrontS56!
}

type AwsCloudFrontS56 {
  CallerReference: String!
  S3Origin: AwsCloudFrontS57!
  Aliases: AwsCloudFrontSt
  Comment: String!
  Logging: AwsCloudFrontS56Logging
  TrustedSigners: AwsCloudFrontS1j!
  PriceClass: String
  Enabled: Boolean!
}

type AwsCloudFrontS57 {
  DomainName: String!
  OriginAccessIdentity: String!
}

type AwsCloudFrontS56Logging {
  Enabled: Boolean!
  Bucket: String!
  Prefix: String!
}

input AwsCloudFrontCreateStreamingDistributionInput {
  StreamingDistributionConfig: AwsCloudFrontS56Input!
}

input AwsCloudFrontS56Input {
  CallerReference: String!
  S3Origin: AwsCloudFrontS57Input!
  Aliases: AwsCloudFrontStInput
  Comment: String!
  Logging: AwsCloudFrontS56LoggingInput
  TrustedSigners: AwsCloudFrontS1jInput!
  PriceClass: String
  Enabled: Boolean!
}

input AwsCloudFrontS57Input {
  DomainName: String!
  OriginAccessIdentity: String!
}

input AwsCloudFrontS56LoggingInput {
  Enabled: Boolean!
  Bucket: String!
  Prefix: String!
}

type AwsCloudFrontCreateStreamingDistributionWithTagsOutput {
  StreamingDistribution: AwsCloudFrontS5a
  Location: String
  ETag: String
}

input AwsCloudFrontCreateStreamingDistributionWithTagsInput {
  StreamingDistributionConfigWithTags: AwsCloudFrontCreateStreamingDistributionWithTagsStreamingDistributionConfigWithTagsInput!
}

input AwsCloudFrontCreateStreamingDistributionWithTagsStreamingDistributionConfigWithTagsInput {
  StreamingDistributionConfig: AwsCloudFrontS56Input!
  Tags: AwsCloudFrontS33Input!
}

input AwsCloudFrontDeleteCachePolicyInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteCloudFrontOriginAccessIdentityInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteDistributionInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteFieldLevelEncryptionConfigInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteFieldLevelEncryptionProfileInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteFunctionInput {
  Name: String!
  IfMatch: String!
}

input AwsCloudFrontDeleteKeyGroupInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteMonitoringSubscriptionInput {
  DistributionId: String!
}

input AwsCloudFrontDeleteOriginRequestPolicyInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeletePublicKeyInput {
  Id: String!
  IfMatch: String
}

input AwsCloudFrontDeleteRealtimeLogConfigInput {
  Name: String
  ARN: String
}

input AwsCloudFrontDeleteStreamingDistributionInput {
  Id: String!
  IfMatch: String
}

type AwsCloudFrontDescribeFunctionOutput {
  FunctionSummary: AwsCloudFrontS41
  ETag: String
}

input AwsCloudFrontDescribeFunctionInput {
  Name: String!
  Stage: String
}

type AwsCloudFrontGetCachePolicyOutput {
  CachePolicy: AwsCloudFrontSl
  ETag: String
}

input AwsCloudFrontGetCachePolicyInput {
  Id: String!
}

type AwsCloudFrontGetCachePolicyConfigOutput {
  CachePolicyConfig: AwsCloudFrontS2
  ETag: String
}

input AwsCloudFrontGetCachePolicyConfigInput {
  Id: String!
}

type AwsCloudFrontGetCloudFrontOriginAccessIdentityOutput {
  CloudFrontOriginAccessIdentity: AwsCloudFrontSq
  ETag: String
}

input AwsCloudFrontGetCloudFrontOriginAccessIdentityInput {
  Id: String!
}

type AwsCloudFrontGetCloudFrontOriginAccessIdentityConfigOutput {
  CloudFrontOriginAccessIdentityConfig: AwsCloudFrontSo
  ETag: String
}

input AwsCloudFrontGetCloudFrontOriginAccessIdentityConfigInput {
  Id: String!
}

type AwsCloudFrontGetDistributionOutput {
  Distribution: AwsCloudFrontS2p
  ETag: String
}

input AwsCloudFrontGetDistributionInput {
  Id: String!
}

type AwsCloudFrontGetDistributionConfigOutput {
  DistributionConfig: AwsCloudFrontSs
  ETag: String
}

input AwsCloudFrontGetDistributionConfigInput {
  Id: String!
}

type AwsCloudFrontGetFieldLevelEncryptionOutput {
  FieldLevelEncryption: AwsCloudFrontS3l
  ETag: String
}

input AwsCloudFrontGetFieldLevelEncryptionInput {
  Id: String!
}

type AwsCloudFrontGetFieldLevelEncryptionConfigOutput {
  FieldLevelEncryptionConfig: AwsCloudFrontS3a
  ETag: String
}

input AwsCloudFrontGetFieldLevelEncryptionConfigInput {
  Id: String!
}

type AwsCloudFrontGetFieldLevelEncryptionProfileOutput {
  FieldLevelEncryptionProfile: AwsCloudFrontS3u
  ETag: String
}

input AwsCloudFrontGetFieldLevelEncryptionProfileInput {
  Id: String!
}

type AwsCloudFrontGetFieldLevelEncryptionProfileConfigOutput {
  FieldLevelEncryptionProfileConfig: AwsCloudFrontS3n
  ETag: String
}

input AwsCloudFrontGetFieldLevelEncryptionProfileConfigInput {
  Id: String!
}

type AwsCloudFrontGetFunctionOutput {
  FunctionCode: JSON
  ETag: String
  ContentType: String
}

input AwsCloudFrontGetFunctionInput {
  Name: String!
  Stage: String
}

type AwsCloudFrontGetInvalidationOutput {
  Invalidation: AwsCloudFrontS49
}

input AwsCloudFrontGetInvalidationInput {
  DistributionId: String!
  Id: String!
}

type AwsCloudFrontGetKeyGroupOutput {
  KeyGroup: AwsCloudFrontS4e
  ETag: String
}

input AwsCloudFrontGetKeyGroupInput {
  Id: String!
}

type AwsCloudFrontGetKeyGroupConfigOutput {
  KeyGroupConfig: AwsCloudFrontS4b
  ETag: String
}

input AwsCloudFrontGetKeyGroupConfigInput {
  Id: String!
}

type AwsCloudFrontGetMonitoringSubscriptionOutput {
  MonitoringSubscription: AwsCloudFrontS4g
}

input AwsCloudFrontGetMonitoringSubscriptionInput {
  DistributionId: String!
}

type AwsCloudFrontGetOriginRequestPolicyOutput {
  OriginRequestPolicy: AwsCloudFrontS4t
  ETag: String
}

input AwsCloudFrontGetOriginRequestPolicyInput {
  Id: String!
}

type AwsCloudFrontGetOriginRequestPolicyConfigOutput {
  OriginRequestPolicyConfig: AwsCloudFrontS4l
  ETag: String
}

input AwsCloudFrontGetOriginRequestPolicyConfigInput {
  Id: String!
}

type AwsCloudFrontGetPublicKeyOutput {
  PublicKey: AwsCloudFrontS4x
  ETag: String
}

input AwsCloudFrontGetPublicKeyInput {
  Id: String!
}

type AwsCloudFrontGetPublicKeyConfigOutput {
  PublicKeyConfig: AwsCloudFrontS4v
  ETag: String
}

input AwsCloudFrontGetPublicKeyConfigInput {
  Id: String!
}

type AwsCloudFrontGetRealtimeLogConfigOutput {
  RealtimeLogConfig: AwsCloudFrontS54
}

input AwsCloudFrontGetRealtimeLogConfigInput {
  Name: String
  ARN: String
}

type AwsCloudFrontGetStreamingDistributionOutput {
  StreamingDistribution: AwsCloudFrontS5a
  ETag: String
}

input AwsCloudFrontGetStreamingDistributionInput {
  Id: String!
}

type AwsCloudFrontGetStreamingDistributionConfigOutput {
  StreamingDistributionConfig: AwsCloudFrontS56
  ETag: String
}

input AwsCloudFrontGetStreamingDistributionConfigInput {
  Id: String!
}

type AwsCloudFrontListCachePoliciesOutput {
  CachePolicyList: AwsCloudFrontListCachePoliciesOutputCachePolicyList
}

type AwsCloudFrontListCachePoliciesOutputCachePolicyList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListCachePoliciesOutputCachePolicyListItems]
}

type AwsCloudFrontListCachePoliciesOutputCachePolicyListItems {
  Type: String!
  CachePolicy: AwsCloudFrontSl!
}

input AwsCloudFrontListCachePoliciesInput {
  Type: String
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutput {
  CloudFrontOriginAccessIdentityList: AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutputCloudFrontOriginAccessIdentityList
}

type AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutputCloudFrontOriginAccessIdentityList {
  Marker: String!
  NextMarker: String
  MaxItems: Int!
  IsTruncated: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutputCloudFrontOriginAccessIdentityListItems]
}

type AwsCloudFrontListCloudFrontOriginAccessIdentitiesOutputCloudFrontOriginAccessIdentityListItems {
  Id: String!
  S3CanonicalUserId: String!
  Comment: String!
}

input AwsCloudFrontListCloudFrontOriginAccessIdentitiesInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListDistributionsOutput {
  DistributionList: AwsCloudFrontS7e
}

type AwsCloudFrontS7e {
  Marker: String!
  NextMarker: String
  MaxItems: Int!
  IsTruncated: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontS7eItems]
}

type AwsCloudFrontS7eItems {
  Id: String!
  ARN: String!
  Status: String!
  LastModifiedTime: Date!
  DomainName: String!
  Aliases: AwsCloudFrontSt!
  Origins: AwsCloudFrontSv!
  OriginGroups: AwsCloudFrontS19
  DefaultCacheBehavior: AwsCloudFrontS1i!
  CacheBehaviors: AwsCloudFrontS26!
  CustomErrorResponses: AwsCloudFrontS29!
  Comment: String!
  PriceClass: String!
  Enabled: Boolean!
  ViewerCertificate: AwsCloudFrontS2f!
  Restrictions: AwsCloudFrontS2j!
  WebACLId: String!
  HttpVersion: String!
  IsIPV6Enabled: Boolean!
  AliasICPRecordals: [AwsCloudFrontS2y]
}

input AwsCloudFrontListDistributionsInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListDistributionsByCachePolicyIdOutput {
  DistributionIdList: AwsCloudFrontS7j
}

type AwsCloudFrontS7j {
  Marker: String!
  NextMarker: String
  MaxItems: Int!
  IsTruncated: Boolean!
  Quantity: Int!
  Items: [String]
}

input AwsCloudFrontListDistributionsByCachePolicyIdInput {
  Marker: String
  MaxItems: String
  CachePolicyId: String!
}

type AwsCloudFrontListDistributionsByKeyGroupOutput {
  DistributionIdList: AwsCloudFrontS7j
}

input AwsCloudFrontListDistributionsByKeyGroupInput {
  Marker: String
  MaxItems: String
  KeyGroupId: String!
}

type AwsCloudFrontListDistributionsByOriginRequestPolicyIdOutput {
  DistributionIdList: AwsCloudFrontS7j
}

input AwsCloudFrontListDistributionsByOriginRequestPolicyIdInput {
  Marker: String
  MaxItems: String
  OriginRequestPolicyId: String!
}

type AwsCloudFrontListDistributionsByRealtimeLogConfigOutput {
  DistributionList: AwsCloudFrontS7e
}

input AwsCloudFrontListDistributionsByRealtimeLogConfigInput {
  Marker: String
  MaxItems: String
  RealtimeLogConfigName: String
  RealtimeLogConfigArn: String
}

type AwsCloudFrontListDistributionsByWebACLIdOutput {
  DistributionList: AwsCloudFrontS7e
}

input AwsCloudFrontListDistributionsByWebACLIdInput {
  Marker: String
  MaxItems: String
  WebACLId: String!
}

type AwsCloudFrontListFieldLevelEncryptionConfigsOutput {
  FieldLevelEncryptionList: AwsCloudFrontListFieldLevelEncryptionConfigsOutputFieldLevelEncryptionList
}

type AwsCloudFrontListFieldLevelEncryptionConfigsOutputFieldLevelEncryptionList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListFieldLevelEncryptionConfigsOutputFieldLevelEncryptionListItems]
}

type AwsCloudFrontListFieldLevelEncryptionConfigsOutputFieldLevelEncryptionListItems {
  Id: String!
  LastModifiedTime: Date!
  Comment: String
  QueryArgProfileConfig: AwsCloudFrontS3b
  ContentTypeProfileConfig: AwsCloudFrontS3f
}

input AwsCloudFrontListFieldLevelEncryptionConfigsInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListFieldLevelEncryptionProfilesOutput {
  FieldLevelEncryptionProfileList: AwsCloudFrontListFieldLevelEncryptionProfilesOutputFieldLevelEncryptionProfileList
}

type AwsCloudFrontListFieldLevelEncryptionProfilesOutputFieldLevelEncryptionProfileList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListFieldLevelEncryptionProfilesOutputFieldLevelEncryptionProfileListItems]
}

type AwsCloudFrontListFieldLevelEncryptionProfilesOutputFieldLevelEncryptionProfileListItems {
  Id: String!
  LastModifiedTime: Date!
  Name: String!
  EncryptionEntities: AwsCloudFrontS3o!
  Comment: String
}

input AwsCloudFrontListFieldLevelEncryptionProfilesInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListFunctionsOutput {
  FunctionList: AwsCloudFrontListFunctionsOutputFunctionList
}

type AwsCloudFrontListFunctionsOutputFunctionList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontS41]
}

input AwsCloudFrontListFunctionsInput {
  Marker: String
  MaxItems: String
  Stage: String
}

type AwsCloudFrontListInvalidationsOutput {
  InvalidationList: AwsCloudFrontListInvalidationsOutputInvalidationList
}

type AwsCloudFrontListInvalidationsOutputInvalidationList {
  Marker: String!
  NextMarker: String
  MaxItems: Int!
  IsTruncated: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontListInvalidationsOutputInvalidationListItems]
}

type AwsCloudFrontListInvalidationsOutputInvalidationListItems {
  Id: String!
  CreateTime: Date!
  Status: String!
}

input AwsCloudFrontListInvalidationsInput {
  DistributionId: String!
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListKeyGroupsOutput {
  KeyGroupList: AwsCloudFrontListKeyGroupsOutputKeyGroupList
}

type AwsCloudFrontListKeyGroupsOutputKeyGroupList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListKeyGroupsOutputKeyGroupListItems]
}

type AwsCloudFrontListKeyGroupsOutputKeyGroupListItems {
  KeyGroup: AwsCloudFrontS4e!
}

input AwsCloudFrontListKeyGroupsInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListOriginRequestPoliciesOutput {
  OriginRequestPolicyList: AwsCloudFrontListOriginRequestPoliciesOutputOriginRequestPolicyList
}

type AwsCloudFrontListOriginRequestPoliciesOutputOriginRequestPolicyList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListOriginRequestPoliciesOutputOriginRequestPolicyListItems]
}

type AwsCloudFrontListOriginRequestPoliciesOutputOriginRequestPolicyListItems {
  Type: String!
  OriginRequestPolicy: AwsCloudFrontS4t!
}

input AwsCloudFrontListOriginRequestPoliciesInput {
  Type: String
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListPublicKeysOutput {
  PublicKeyList: AwsCloudFrontListPublicKeysOutputPublicKeyList
}

type AwsCloudFrontListPublicKeysOutputPublicKeyList {
  NextMarker: String
  MaxItems: Int!
  Quantity: Int!
  Items: [AwsCloudFrontListPublicKeysOutputPublicKeyListItems]
}

type AwsCloudFrontListPublicKeysOutputPublicKeyListItems {
  Id: String!
  Name: String!
  CreatedTime: Date!
  EncodedKey: String!
  Comment: String
}

input AwsCloudFrontListPublicKeysInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListRealtimeLogConfigsOutput {
  RealtimeLogConfigs: AwsCloudFrontListRealtimeLogConfigsOutputRealtimeLogConfigs
}

type AwsCloudFrontListRealtimeLogConfigsOutputRealtimeLogConfigs {
  MaxItems: Int!
  Items: [AwsCloudFrontS54]
  IsTruncated: Boolean!
  Marker: String!
  NextMarker: String
}

input AwsCloudFrontListRealtimeLogConfigsInput {
  MaxItems: String
  Marker: String
}

type AwsCloudFrontListStreamingDistributionsOutput {
  StreamingDistributionList: AwsCloudFrontListStreamingDistributionsOutputStreamingDistributionList
}

type AwsCloudFrontListStreamingDistributionsOutputStreamingDistributionList {
  Marker: String!
  NextMarker: String
  MaxItems: Int!
  IsTruncated: Boolean!
  Quantity: Int!
  Items: [AwsCloudFrontListStreamingDistributionsOutputStreamingDistributionListItems]
}

type AwsCloudFrontListStreamingDistributionsOutputStreamingDistributionListItems {
  Id: String!
  ARN: String!
  Status: String!
  LastModifiedTime: Date!
  DomainName: String!
  S3Origin: AwsCloudFrontS57!
  Aliases: AwsCloudFrontSt!
  TrustedSigners: AwsCloudFrontS1j!
  Comment: String!
  PriceClass: String!
  Enabled: Boolean!
}

input AwsCloudFrontListStreamingDistributionsInput {
  Marker: String
  MaxItems: String
}

type AwsCloudFrontListTagsForResourceOutput {
  Tags: AwsCloudFrontS33!
}

type AwsCloudFrontS33 {
  Items: [AwsCloudFrontS33Items]
}

type AwsCloudFrontS33Items {
  Key: String!
  Value: String
}

input AwsCloudFrontListTagsForResourceInput {
  Resource: String!
}

type AwsCloudFrontPublishFunctionOutput {
  FunctionSummary: AwsCloudFrontS41
}

input AwsCloudFrontPublishFunctionInput {
  Name: String!
  IfMatch: String!
}

input AwsCloudFrontTagResourceInput {
  Resource: String!
  Tags: AwsCloudFrontS33Input!
}

type AwsCloudFrontTestFunctionOutput {
  TestResult: AwsCloudFrontTestFunctionOutputTestResult
}

type AwsCloudFrontTestFunctionOutputTestResult {
  FunctionSummary: AwsCloudFrontS41
  ComputeUtilization: String
  FunctionExecutionLogs: [String]
  FunctionErrorMessage: String
  FunctionOutput: String
}

input AwsCloudFrontTestFunctionInput {
  Name: String!
  IfMatch: String!
  Stage: String
  EventObject: JSON!
}

input AwsCloudFrontUntagResourceInput {
  Resource: String!
  TagKeys: AwsCloudFrontUntagResourceTagKeysInput!
}

input AwsCloudFrontUntagResourceTagKeysInput {
  Items: [String]
}

type AwsCloudFrontUpdateCachePolicyOutput {
  CachePolicy: AwsCloudFrontSl
  ETag: String
}

input AwsCloudFrontUpdateCachePolicyInput {
  CachePolicyConfig: AwsCloudFrontS2Input!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateCloudFrontOriginAccessIdentityOutput {
  CloudFrontOriginAccessIdentity: AwsCloudFrontSq
  ETag: String
}

input AwsCloudFrontUpdateCloudFrontOriginAccessIdentityInput {
  CloudFrontOriginAccessIdentityConfig: AwsCloudFrontSoInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateDistributionOutput {
  Distribution: AwsCloudFrontS2p
  ETag: String
}

input AwsCloudFrontUpdateDistributionInput {
  DistributionConfig: AwsCloudFrontSsInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateFieldLevelEncryptionConfigOutput {
  FieldLevelEncryption: AwsCloudFrontS3l
  ETag: String
}

input AwsCloudFrontUpdateFieldLevelEncryptionConfigInput {
  FieldLevelEncryptionConfig: AwsCloudFrontS3aInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateFieldLevelEncryptionProfileOutput {
  FieldLevelEncryptionProfile: AwsCloudFrontS3u
  ETag: String
}

input AwsCloudFrontUpdateFieldLevelEncryptionProfileInput {
  FieldLevelEncryptionProfileConfig: AwsCloudFrontS3nInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateFunctionOutput {
  FunctionSummary: AwsCloudFrontS41
  ETag: String
}

input AwsCloudFrontUpdateFunctionInput {
  Name: String!
  IfMatch: String!
  FunctionConfig: AwsCloudFrontS3xInput!
  FunctionCode: JSON!
}

type AwsCloudFrontUpdateKeyGroupOutput {
  KeyGroup: AwsCloudFrontS4e
  ETag: String
}

input AwsCloudFrontUpdateKeyGroupInput {
  KeyGroupConfig: AwsCloudFrontS4bInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateOriginRequestPolicyOutput {
  OriginRequestPolicy: AwsCloudFrontS4t
  ETag: String
}

input AwsCloudFrontUpdateOriginRequestPolicyInput {
  OriginRequestPolicyConfig: AwsCloudFrontS4lInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdatePublicKeyOutput {
  PublicKey: AwsCloudFrontS4x
  ETag: String
}

input AwsCloudFrontUpdatePublicKeyInput {
  PublicKeyConfig: AwsCloudFrontS4vInput!
  Id: String!
  IfMatch: String
}

type AwsCloudFrontUpdateRealtimeLogConfigOutput {
  RealtimeLogConfig: AwsCloudFrontS54
}

input AwsCloudFrontUpdateRealtimeLogConfigInput {
  EndPoints: [AwsCloudFrontS4zInput]
  Fields: [String]
  Name: String
  ARN: String
  SamplingRate: JSON
}

type AwsCloudFrontUpdateStreamingDistributionOutput {
  StreamingDistribution: AwsCloudFrontS5a
  ETag: String
}

input AwsCloudFrontUpdateStreamingDistributionInput {
  StreamingDistributionConfig: AwsCloudFrontS56Input!
  Id: String!
  IfMatch: String
}

"""Amazon CloudHSM (2014-05-30)"""
type AwsCloudHSM {
  addTagsToResource(input: AwsCloudHSMAddTagsToResourceInput!, config: AwsConfig): AwsCloudHSMAddTagsToResourceOutput
  createHapg(input: AwsCloudHSMCreateHapgInput!, config: AwsConfig): AwsCloudHSMCreateHapgOutput
  createHsm(input: AwsCloudHSMCreateHsmInput!, config: AwsConfig): AwsCloudHSMCreateHsmOutput
  createLunaClient(input: AwsCloudHSMCreateLunaClientInput!, config: AwsConfig): AwsCloudHSMCreateLunaClientOutput
  deleteHapg(input: AwsCloudHSMDeleteHapgInput!, config: AwsConfig): AwsCloudHSMDeleteHapgOutput
  deleteHsm(input: AwsCloudHSMDeleteHsmInput!, config: AwsConfig): AwsCloudHSMDeleteHsmOutput
  deleteLunaClient(input: AwsCloudHSMDeleteLunaClientInput!, config: AwsConfig): AwsCloudHSMDeleteLunaClientOutput
  describeHapg(input: AwsCloudHSMDescribeHapgInput!, config: AwsConfig): AwsCloudHSMDescribeHapgOutput
  describeHsm(input: AwsCloudHSMDescribeHsmInput, config: AwsConfig): AwsCloudHSMDescribeHsmOutput
  describeLunaClient(input: AwsCloudHSMDescribeLunaClientInput, config: AwsConfig): AwsCloudHSMDescribeLunaClientOutput
  getConfig(input: AwsCloudHSMGetConfigInput!, config: AwsConfig): AwsCloudHSMGetConfigOutput
  listAvailableZones(input: JSON, config: AwsConfig): AwsCloudHSMListAvailableZonesOutput
  listHapgs(input: AwsCloudHSMListHapgsInput, config: AwsConfig): AwsCloudHSMListHapgsOutput
  listHsms(input: AwsCloudHSMListHsmsInput, config: AwsConfig): AwsCloudHSMListHsmsOutput
  listLunaClients(input: AwsCloudHSMListLunaClientsInput, config: AwsConfig): AwsCloudHSMListLunaClientsOutput
  listTagsForResource(input: AwsCloudHSMListTagsForResourceInput!, config: AwsConfig): AwsCloudHSMListTagsForResourceOutput
  modifyHapg(input: AwsCloudHSMModifyHapgInput!, config: AwsConfig): AwsCloudHSMModifyHapgOutput
  modifyHsm(input: AwsCloudHSMModifyHsmInput!, config: AwsConfig): AwsCloudHSMModifyHsmOutput
  modifyLunaClient(input: AwsCloudHSMModifyLunaClientInput!, config: AwsConfig): AwsCloudHSMModifyLunaClientOutput
  removeTagsFromResource(input: AwsCloudHSMRemoveTagsFromResourceInput!, config: AwsConfig): AwsCloudHSMRemoveTagsFromResourceOutput
}

type AwsCloudHSMAddTagsToResourceOutput {
  Status: String!
}

input AwsCloudHSMAddTagsToResourceInput {
  ResourceArn: String!
  TagList: [AwsCloudHSMS3Input]!
}

input AwsCloudHSMS3Input {
  Key: String!
  Value: String!
}

type AwsCloudHSMCreateHapgOutput {
  HapgArn: String
}

input AwsCloudHSMCreateHapgInput {
  Label: String!
}

type AwsCloudHSMCreateHsmOutput {
  HsmArn: String
}

input AwsCloudHSMCreateHsmInput {
  SubnetId: String!
  SshKey: String!
  EniIp: String
  IamRoleArn: String!
  ExternalId: String
  SubscriptionType: String!
  ClientToken: String
  SyslogIp: String
}

type AwsCloudHSMCreateLunaClientOutput {
  ClientArn: String
}

input AwsCloudHSMCreateLunaClientInput {
  Label: String
  Certificate: String!
}

type AwsCloudHSMDeleteHapgOutput {
  Status: String!
}

input AwsCloudHSMDeleteHapgInput {
  HapgArn: String!
}

type AwsCloudHSMDeleteHsmOutput {
  Status: String!
}

input AwsCloudHSMDeleteHsmInput {
  HsmArn: String!
}

type AwsCloudHSMDeleteLunaClientOutput {
  Status: String!
}

input AwsCloudHSMDeleteLunaClientInput {
  ClientArn: String!
}

type AwsCloudHSMDescribeHapgOutput {
  HapgArn: String
  HapgSerial: String
  HsmsLastActionFailed: [String]
  HsmsPendingDeletion: [String]
  HsmsPendingRegistration: [String]
  Label: String
  LastModifiedTimestamp: String
  PartitionSerialList: [String]
  State: String
}

input AwsCloudHSMDescribeHapgInput {
  HapgArn: String!
}

type AwsCloudHSMDescribeHsmOutput {
  HsmArn: String
  Status: String
  StatusDetails: String
  AvailabilityZone: String
  EniId: String
  EniIp: String
  SubscriptionType: String
  SubscriptionStartDate: String
  SubscriptionEndDate: String
  VpcId: String
  SubnetId: String
  IamRoleArn: String
  SerialNumber: String
  VendorName: String
  HsmType: String
  SoftwareVersion: String
  SshPublicKey: String
  SshKeyLastUpdated: String
  ServerCertUri: String
  ServerCertLastUpdated: String
  Partitions: [String]
}

input AwsCloudHSMDescribeHsmInput {
  HsmArn: String
  HsmSerialNumber: String
}

type AwsCloudHSMDescribeLunaClientOutput {
  ClientArn: String
  Certificate: String
  CertificateFingerprint: String
  LastModifiedTimestamp: String
  Label: String
}

input AwsCloudHSMDescribeLunaClientInput {
  ClientArn: String
  CertificateFingerprint: String
}

type AwsCloudHSMGetConfigOutput {
  ConfigType: String
  ConfigFile: String
  ConfigCred: String
}

input AwsCloudHSMGetConfigInput {
  ClientArn: String!
  ClientVersion: String!
  HapgList: [String]!
}

type AwsCloudHSMListAvailableZonesOutput {
  AZList: [String]
}

type AwsCloudHSMListHapgsOutput {
  HapgList: [String]!
  NextToken: String
}

input AwsCloudHSMListHapgsInput {
  NextToken: String
}

type AwsCloudHSMListHsmsOutput {
  HsmList: [String]
  NextToken: String
}

input AwsCloudHSMListHsmsInput {
  NextToken: String
}

type AwsCloudHSMListLunaClientsOutput {
  ClientList: [String]!
  NextToken: String
}

input AwsCloudHSMListLunaClientsInput {
  NextToken: String
}

type AwsCloudHSMListTagsForResourceOutput {
  TagList: [AwsCloudHSMS3]!
}

type AwsCloudHSMS3 {
  Key: String!
  Value: String!
}

input AwsCloudHSMListTagsForResourceInput {
  ResourceArn: String!
}

type AwsCloudHSMModifyHapgOutput {
  HapgArn: String
}

input AwsCloudHSMModifyHapgInput {
  HapgArn: String!
  Label: String
  PartitionSerialList: [String]
}

type AwsCloudHSMModifyHsmOutput {
  HsmArn: String
}

input AwsCloudHSMModifyHsmInput {
  HsmArn: String!
  SubnetId: String
  EniIp: String
  IamRoleArn: String
  ExternalId: String
  SyslogIp: String
}

type AwsCloudHSMModifyLunaClientOutput {
  ClientArn: String
}

input AwsCloudHSMModifyLunaClientInput {
  ClientArn: String!
  Certificate: String!
}

type AwsCloudHSMRemoveTagsFromResourceOutput {
  Status: String!
}

input AwsCloudHSMRemoveTagsFromResourceInput {
  ResourceArn: String!
  TagKeyList: [String]!
}

"""AWS CloudHSM V2 (2017-04-28)"""
type AwsCloudHSMV2 {
  copyBackupToRegion(input: AwsCloudHSMV2CopyBackupToRegionInput!, config: AwsConfig): AwsCloudHSMV2CopyBackupToRegionOutput
  createCluster(input: AwsCloudHSMV2CreateClusterInput!, config: AwsConfig): AwsCloudHSMV2CreateClusterOutput
  createHsm(input: AwsCloudHSMV2CreateHsmInput!, config: AwsConfig): AwsCloudHSMV2CreateHsmOutput
  deleteBackup(input: AwsCloudHSMV2DeleteBackupInput!, config: AwsConfig): AwsCloudHSMV2DeleteBackupOutput
  deleteCluster(input: AwsCloudHSMV2DeleteClusterInput!, config: AwsConfig): AwsCloudHSMV2DeleteClusterOutput
  deleteHsm(input: AwsCloudHSMV2DeleteHsmInput!, config: AwsConfig): AwsCloudHSMV2DeleteHsmOutput
  describeBackups(input: AwsCloudHSMV2DescribeBackupsInput, config: AwsConfig): AwsCloudHSMV2DescribeBackupsOutput
  describeClusters(input: AwsCloudHSMV2DescribeClustersInput, config: AwsConfig): AwsCloudHSMV2DescribeClustersOutput
  initializeCluster(input: AwsCloudHSMV2InitializeClusterInput!, config: AwsConfig): AwsCloudHSMV2InitializeClusterOutput
  listTags(input: AwsCloudHSMV2ListTagsInput!, config: AwsConfig): AwsCloudHSMV2ListTagsOutput
  modifyBackupAttributes(input: AwsCloudHSMV2ModifyBackupAttributesInput!, config: AwsConfig): AwsCloudHSMV2ModifyBackupAttributesOutput
  modifyCluster(input: AwsCloudHSMV2ModifyClusterInput!, config: AwsConfig): AwsCloudHSMV2ModifyClusterOutput
  restoreBackup(input: AwsCloudHSMV2RestoreBackupInput!, config: AwsConfig): AwsCloudHSMV2RestoreBackupOutput
  tagResource(input: AwsCloudHSMV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCloudHSMV2UntagResourceInput!, config: AwsConfig): JSON
}

type AwsCloudHSMV2CopyBackupToRegionOutput {
  DestinationBackup: AwsCloudHSMV2CopyBackupToRegionOutputDestinationBackup
}

type AwsCloudHSMV2CopyBackupToRegionOutputDestinationBackup {
  CreateTimestamp: Date
  SourceRegion: String
  SourceBackup: String
  SourceCluster: String
}

input AwsCloudHSMV2CopyBackupToRegionInput {
  DestinationRegion: String!
  BackupId: String!
  TagList: [AwsCloudHSMV2S4Input]
}

input AwsCloudHSMV2S4Input {
  Key: String!
  Value: String!
}

type AwsCloudHSMV2CreateClusterOutput {
  Cluster: AwsCloudHSMV2Sk
}

type AwsCloudHSMV2Sk {
  BackupPolicy: String
  BackupRetentionPolicy: AwsCloudHSMV2Sd
  ClusterId: String
  CreateTimestamp: Date
  Hsms: [AwsCloudHSMV2Sn]
  HsmType: String
  PreCoPassword: String
  SecurityGroup: String
  SourceBackupId: String
  State: String
  StateMessage: String
  SubnetMapping: JSON
  VpcId: String
  Certificates: AwsCloudHSMV2SkCertificates
  TagList: [AwsCloudHSMV2S4]
}

type AwsCloudHSMV2Sd {
  Type: String
  Value: String
}

type AwsCloudHSMV2Sn {
  AvailabilityZone: String
  ClusterId: String
  SubnetId: String
  EniId: String
  EniIp: String
  HsmId: String!
  State: String
  StateMessage: String
}

type AwsCloudHSMV2SkCertificates {
  ClusterCsr: String
  HsmCertificate: String
  AwsHardwareCertificate: String
  ManufacturerHardwareCertificate: String
  ClusterCertificate: String
}

type AwsCloudHSMV2S4 {
  Key: String!
  Value: String!
}

input AwsCloudHSMV2CreateClusterInput {
  BackupRetentionPolicy: AwsCloudHSMV2SdInput
  HsmType: String!
  SourceBackupId: String
  SubnetIds: [String]!
  TagList: [AwsCloudHSMV2S4Input]
}

input AwsCloudHSMV2SdInput {
  Type: String
  Value: String
}

type AwsCloudHSMV2CreateHsmOutput {
  Hsm: AwsCloudHSMV2Sn
}

input AwsCloudHSMV2CreateHsmInput {
  ClusterId: String!
  AvailabilityZone: String!
  IpAddress: String
}

type AwsCloudHSMV2DeleteBackupOutput {
  Backup: AwsCloudHSMV2S16
}

type AwsCloudHSMV2S16 {
  BackupId: String!
  BackupState: String
  ClusterId: String
  CreateTimestamp: Date
  CopyTimestamp: Date
  NeverExpires: Boolean
  SourceRegion: String
  SourceBackup: String
  SourceCluster: String
  DeleteTimestamp: Date
  TagList: [AwsCloudHSMV2S4]
}

input AwsCloudHSMV2DeleteBackupInput {
  BackupId: String!
}

type AwsCloudHSMV2DeleteClusterOutput {
  Cluster: AwsCloudHSMV2Sk
}

input AwsCloudHSMV2DeleteClusterInput {
  ClusterId: String!
}

type AwsCloudHSMV2DeleteHsmOutput {
  HsmId: String
}

input AwsCloudHSMV2DeleteHsmInput {
  ClusterId: String!
  HsmId: String
  EniId: String
  EniIp: String
}

type AwsCloudHSMV2DescribeBackupsOutput {
  Backups: [AwsCloudHSMV2S16]
  NextToken: String
}

input AwsCloudHSMV2DescribeBackupsInput {
  NextToken: String
  MaxResults: Int
  Filters: JSON
  SortAscending: Boolean
}

type AwsCloudHSMV2DescribeClustersOutput {
  Clusters: [AwsCloudHSMV2Sk]
  NextToken: String
}

input AwsCloudHSMV2DescribeClustersInput {
  Filters: JSON
  NextToken: String
  MaxResults: Int
}

type AwsCloudHSMV2InitializeClusterOutput {
  State: String
  StateMessage: String
}

input AwsCloudHSMV2InitializeClusterInput {
  ClusterId: String!
  SignedCert: String!
  TrustAnchor: String!
}

type AwsCloudHSMV2ListTagsOutput {
  TagList: [AwsCloudHSMV2S4]!
  NextToken: String
}

input AwsCloudHSMV2ListTagsInput {
  ResourceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsCloudHSMV2ModifyBackupAttributesOutput {
  Backup: AwsCloudHSMV2S16
}

input AwsCloudHSMV2ModifyBackupAttributesInput {
  BackupId: String!
  NeverExpires: Boolean!
}

type AwsCloudHSMV2ModifyClusterOutput {
  Cluster: AwsCloudHSMV2Sk
}

input AwsCloudHSMV2ModifyClusterInput {
  BackupRetentionPolicy: AwsCloudHSMV2SdInput!
  ClusterId: String!
}

type AwsCloudHSMV2RestoreBackupOutput {
  Backup: AwsCloudHSMV2S16
}

input AwsCloudHSMV2RestoreBackupInput {
  BackupId: String!
}

input AwsCloudHSMV2TagResourceInput {
  ResourceId: String!
  TagList: [AwsCloudHSMV2S4Input]!
}

input AwsCloudHSMV2UntagResourceInput {
  ResourceId: String!
  TagKeyList: [String]!
}

"""Amazon CloudSearch (2013-01-01)"""
type AwsCloudSearch {
  buildSuggesters(input: AwsCloudSearchBuildSuggestersInput!, config: AwsConfig): AwsCloudSearchBuildSuggestersOutput
  createDomain(input: AwsCloudSearchCreateDomainInput!, config: AwsConfig): AwsCloudSearchCreateDomainOutput
  defineAnalysisScheme(input: AwsCloudSearchDefineAnalysisSchemeInput!, config: AwsConfig): AwsCloudSearchDefineAnalysisSchemeOutput
  defineExpression(input: AwsCloudSearchDefineExpressionInput!, config: AwsConfig): AwsCloudSearchDefineExpressionOutput
  defineIndexField(input: AwsCloudSearchDefineIndexFieldInput!, config: AwsConfig): AwsCloudSearchDefineIndexFieldOutput
  defineSuggester(input: AwsCloudSearchDefineSuggesterInput!, config: AwsConfig): AwsCloudSearchDefineSuggesterOutput
  deleteAnalysisScheme(input: AwsCloudSearchDeleteAnalysisSchemeInput!, config: AwsConfig): AwsCloudSearchDeleteAnalysisSchemeOutput
  deleteDomain(input: AwsCloudSearchDeleteDomainInput!, config: AwsConfig): AwsCloudSearchDeleteDomainOutput
  deleteExpression(input: AwsCloudSearchDeleteExpressionInput!, config: AwsConfig): AwsCloudSearchDeleteExpressionOutput
  deleteIndexField(input: AwsCloudSearchDeleteIndexFieldInput!, config: AwsConfig): AwsCloudSearchDeleteIndexFieldOutput
  deleteSuggester(input: AwsCloudSearchDeleteSuggesterInput!, config: AwsConfig): AwsCloudSearchDeleteSuggesterOutput
  describeAnalysisSchemes(input: AwsCloudSearchDescribeAnalysisSchemesInput!, config: AwsConfig): AwsCloudSearchDescribeAnalysisSchemesOutput
  describeAvailabilityOptions(input: AwsCloudSearchDescribeAvailabilityOptionsInput!, config: AwsConfig): AwsCloudSearchDescribeAvailabilityOptionsOutput
  describeDomainEndpointOptions(input: AwsCloudSearchDescribeDomainEndpointOptionsInput!, config: AwsConfig): AwsCloudSearchDescribeDomainEndpointOptionsOutput
  describeDomains(input: AwsCloudSearchDescribeDomainsInput, config: AwsConfig): AwsCloudSearchDescribeDomainsOutput
  describeExpressions(input: AwsCloudSearchDescribeExpressionsInput!, config: AwsConfig): AwsCloudSearchDescribeExpressionsOutput
  describeIndexFields(input: AwsCloudSearchDescribeIndexFieldsInput!, config: AwsConfig): AwsCloudSearchDescribeIndexFieldsOutput
  describeScalingParameters(input: AwsCloudSearchDescribeScalingParametersInput!, config: AwsConfig): AwsCloudSearchDescribeScalingParametersOutput
  describeServiceAccessPolicies(input: AwsCloudSearchDescribeServiceAccessPoliciesInput!, config: AwsConfig): AwsCloudSearchDescribeServiceAccessPoliciesOutput
  describeSuggesters(input: AwsCloudSearchDescribeSuggestersInput!, config: AwsConfig): AwsCloudSearchDescribeSuggestersOutput
  indexDocuments(input: AwsCloudSearchIndexDocumentsInput!, config: AwsConfig): AwsCloudSearchIndexDocumentsOutput
  listDomainNames(config: AwsConfig): AwsCloudSearchListDomainNamesOutput
  updateAvailabilityOptions(input: AwsCloudSearchUpdateAvailabilityOptionsInput!, config: AwsConfig): AwsCloudSearchUpdateAvailabilityOptionsOutput
  updateDomainEndpointOptions(input: AwsCloudSearchUpdateDomainEndpointOptionsInput!, config: AwsConfig): AwsCloudSearchUpdateDomainEndpointOptionsOutput
  updateScalingParameters(input: AwsCloudSearchUpdateScalingParametersInput!, config: AwsConfig): AwsCloudSearchUpdateScalingParametersOutput
  updateServiceAccessPolicies(input: AwsCloudSearchUpdateServiceAccessPoliciesInput!, config: AwsConfig): AwsCloudSearchUpdateServiceAccessPoliciesOutput
}

type AwsCloudSearchBuildSuggestersOutput {
  FieldNames: [String]
}

input AwsCloudSearchBuildSuggestersInput {
  DomainName: String!
}

type AwsCloudSearchCreateDomainOutput {
  DomainStatus: AwsCloudSearchS8
}

type AwsCloudSearchS8 {
  DomainId: String!
  DomainName: String!
  ARN: String
  Created: Boolean
  Deleted: Boolean
  DocService: AwsCloudSearchSc
  SearchService: AwsCloudSearchSc
  RequiresIndexDocuments: Boolean!
  Processing: Boolean
  SearchInstanceType: String
  SearchPartitionCount: Int
  SearchInstanceCount: Int
  Limits: AwsCloudSearchS8Limits
}

type AwsCloudSearchSc {
  Endpoint: String
}

type AwsCloudSearchS8Limits {
  MaximumReplicationCount: Int!
  MaximumPartitionCount: Int!
}

input AwsCloudSearchCreateDomainInput {
  DomainName: String!
}

type AwsCloudSearchDefineAnalysisSchemeOutput {
  AnalysisScheme: AwsCloudSearchSs!
}

type AwsCloudSearchSs {
  Options: AwsCloudSearchSl!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchSl {
  AnalysisSchemeName: String!
  AnalysisSchemeLanguage: String!
  AnalysisOptions: AwsCloudSearchSlAnalysisOptions
}

type AwsCloudSearchSlAnalysisOptions {
  Synonyms: String
  Stopwords: String
  StemmingDictionary: String
  JapaneseTokenizationDictionary: String
  AlgorithmicStemming: String
}

type AwsCloudSearchSt {
  CreationDate: Date!
  UpdateDate: Date!
  UpdateVersion: Int
  State: String!
  PendingDeletion: Boolean
}

input AwsCloudSearchDefineAnalysisSchemeInput {
  DomainName: String!
  AnalysisScheme: AwsCloudSearchSlInput!
}

input AwsCloudSearchSlInput {
  AnalysisSchemeName: String!
  AnalysisSchemeLanguage: String!
  AnalysisOptions: AwsCloudSearchSlAnalysisOptionsInput
}

input AwsCloudSearchSlAnalysisOptionsInput {
  Synonyms: String
  Stopwords: String
  StemmingDictionary: String
  JapaneseTokenizationDictionary: String
  AlgorithmicStemming: String
}

type AwsCloudSearchDefineExpressionOutput {
  Expression: AwsCloudSearchS11!
}

type AwsCloudSearchS11 {
  Options: AwsCloudSearchSy!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchSy {
  ExpressionName: String!
  ExpressionValue: String!
}

input AwsCloudSearchDefineExpressionInput {
  DomainName: String!
  Expression: AwsCloudSearchSyInput!
}

input AwsCloudSearchSyInput {
  ExpressionName: String!
  ExpressionValue: String!
}

type AwsCloudSearchDefineIndexFieldOutput {
  IndexField: AwsCloudSearchS1n!
}

type AwsCloudSearchS1n {
  Options: AwsCloudSearchS13!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchS13 {
  IndexFieldName: String!
  IndexFieldType: String!
  IntOptions: AwsCloudSearchS13IntOptions
  DoubleOptions: AwsCloudSearchS13DoubleOptions
  LiteralOptions: AwsCloudSearchS13LiteralOptions
  TextOptions: AwsCloudSearchS13TextOptions
  DateOptions: AwsCloudSearchS13DateOptions
  LatLonOptions: AwsCloudSearchS13LatLonOptions
  IntArrayOptions: AwsCloudSearchS13IntArrayOptions
  DoubleArrayOptions: AwsCloudSearchS13DoubleArrayOptions
  LiteralArrayOptions: AwsCloudSearchS13LiteralArrayOptions
  TextArrayOptions: AwsCloudSearchS13TextArrayOptions
  DateArrayOptions: AwsCloudSearchS13DateArrayOptions
}

type AwsCloudSearchS13IntOptions {
  DefaultValue: JSON
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

type AwsCloudSearchS13DoubleOptions {
  DefaultValue: JSON
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

type AwsCloudSearchS13LiteralOptions {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

type AwsCloudSearchS13TextOptions {
  DefaultValue: String
  SourceField: String
  ReturnEnabled: Boolean
  SortEnabled: Boolean
  HighlightEnabled: Boolean
  AnalysisScheme: String
}

type AwsCloudSearchS13DateOptions {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

type AwsCloudSearchS13LatLonOptions {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

type AwsCloudSearchS13IntArrayOptions {
  DefaultValue: JSON
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

type AwsCloudSearchS13DoubleArrayOptions {
  DefaultValue: JSON
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

type AwsCloudSearchS13LiteralArrayOptions {
  DefaultValue: String
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

type AwsCloudSearchS13TextArrayOptions {
  DefaultValue: String
  SourceFields: String
  ReturnEnabled: Boolean
  HighlightEnabled: Boolean
  AnalysisScheme: String
}

type AwsCloudSearchS13DateArrayOptions {
  DefaultValue: String
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

input AwsCloudSearchDefineIndexFieldInput {
  DomainName: String!
  IndexField: AwsCloudSearchS13Input!
}

input AwsCloudSearchS13Input {
  IndexFieldName: String!
  IndexFieldType: String!
  IntOptions: AwsCloudSearchS13IntOptionsInput
  DoubleOptions: AwsCloudSearchS13DoubleOptionsInput
  LiteralOptions: AwsCloudSearchS13LiteralOptionsInput
  TextOptions: AwsCloudSearchS13TextOptionsInput
  DateOptions: AwsCloudSearchS13DateOptionsInput
  LatLonOptions: AwsCloudSearchS13LatLonOptionsInput
  IntArrayOptions: AwsCloudSearchS13IntArrayOptionsInput
  DoubleArrayOptions: AwsCloudSearchS13DoubleArrayOptionsInput
  LiteralArrayOptions: AwsCloudSearchS13LiteralArrayOptionsInput
  TextArrayOptions: AwsCloudSearchS13TextArrayOptionsInput
  DateArrayOptions: AwsCloudSearchS13DateArrayOptionsInput
}

input AwsCloudSearchS13IntOptionsInput {
  DefaultValue: JSON
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

input AwsCloudSearchS13DoubleOptionsInput {
  DefaultValue: JSON
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

input AwsCloudSearchS13LiteralOptionsInput {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

input AwsCloudSearchS13TextOptionsInput {
  DefaultValue: String
  SourceField: String
  ReturnEnabled: Boolean
  SortEnabled: Boolean
  HighlightEnabled: Boolean
  AnalysisScheme: String
}

input AwsCloudSearchS13DateOptionsInput {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

input AwsCloudSearchS13LatLonOptionsInput {
  DefaultValue: String
  SourceField: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
  SortEnabled: Boolean
}

input AwsCloudSearchS13IntArrayOptionsInput {
  DefaultValue: JSON
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

input AwsCloudSearchS13DoubleArrayOptionsInput {
  DefaultValue: JSON
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

input AwsCloudSearchS13LiteralArrayOptionsInput {
  DefaultValue: String
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

input AwsCloudSearchS13TextArrayOptionsInput {
  DefaultValue: String
  SourceFields: String
  ReturnEnabled: Boolean
  HighlightEnabled: Boolean
  AnalysisScheme: String
}

input AwsCloudSearchS13DateArrayOptionsInput {
  DefaultValue: String
  SourceFields: String
  FacetEnabled: Boolean
  SearchEnabled: Boolean
  ReturnEnabled: Boolean
}

type AwsCloudSearchDefineSuggesterOutput {
  Suggester: AwsCloudSearchS1t!
}

type AwsCloudSearchS1t {
  Options: AwsCloudSearchS1p!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchS1p {
  SuggesterName: String!
  DocumentSuggesterOptions: AwsCloudSearchS1pDocumentSuggesterOptions!
}

type AwsCloudSearchS1pDocumentSuggesterOptions {
  SourceField: String!
  FuzzyMatching: String
  SortExpression: String
}

input AwsCloudSearchDefineSuggesterInput {
  DomainName: String!
  Suggester: AwsCloudSearchS1pInput!
}

input AwsCloudSearchS1pInput {
  SuggesterName: String!
  DocumentSuggesterOptions: AwsCloudSearchS1pDocumentSuggesterOptionsInput!
}

input AwsCloudSearchS1pDocumentSuggesterOptionsInput {
  SourceField: String!
  FuzzyMatching: String
  SortExpression: String
}

type AwsCloudSearchDeleteAnalysisSchemeOutput {
  AnalysisScheme: AwsCloudSearchSs!
}

input AwsCloudSearchDeleteAnalysisSchemeInput {
  DomainName: String!
  AnalysisSchemeName: String!
}

type AwsCloudSearchDeleteDomainOutput {
  DomainStatus: AwsCloudSearchS8
}

input AwsCloudSearchDeleteDomainInput {
  DomainName: String!
}

type AwsCloudSearchDeleteExpressionOutput {
  Expression: AwsCloudSearchS11!
}

input AwsCloudSearchDeleteExpressionInput {
  DomainName: String!
  ExpressionName: String!
}

type AwsCloudSearchDeleteIndexFieldOutput {
  IndexField: AwsCloudSearchS1n!
}

input AwsCloudSearchDeleteIndexFieldInput {
  DomainName: String!
  IndexFieldName: String!
}

type AwsCloudSearchDeleteSuggesterOutput {
  Suggester: AwsCloudSearchS1t!
}

input AwsCloudSearchDeleteSuggesterInput {
  DomainName: String!
  SuggesterName: String!
}

type AwsCloudSearchDescribeAnalysisSchemesOutput {
  AnalysisSchemes: [AwsCloudSearchSs]!
}

input AwsCloudSearchDescribeAnalysisSchemesInput {
  DomainName: String!
  AnalysisSchemeNames: [String]
  Deployed: Boolean
}

type AwsCloudSearchDescribeAvailabilityOptionsOutput {
  AvailabilityOptions: AwsCloudSearchS2a
}

type AwsCloudSearchS2a {
  Options: Boolean!
  Status: AwsCloudSearchSt!
}

input AwsCloudSearchDescribeAvailabilityOptionsInput {
  DomainName: String!
  Deployed: Boolean
}

type AwsCloudSearchDescribeDomainEndpointOptionsOutput {
  DomainEndpointOptions: AwsCloudSearchS2e
}

type AwsCloudSearchS2e {
  Options: AwsCloudSearchS2f!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchS2f {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
}

input AwsCloudSearchDescribeDomainEndpointOptionsInput {
  DomainName: String!
  Deployed: Boolean
}

type AwsCloudSearchDescribeDomainsOutput {
  DomainStatusList: [AwsCloudSearchS8]!
}

input AwsCloudSearchDescribeDomainsInput {
  DomainNames: [String]
}

type AwsCloudSearchDescribeExpressionsOutput {
  Expressions: [AwsCloudSearchS11]!
}

input AwsCloudSearchDescribeExpressionsInput {
  DomainName: String!
  ExpressionNames: [String]
  Deployed: Boolean
}

type AwsCloudSearchDescribeIndexFieldsOutput {
  IndexFields: [AwsCloudSearchS1n]!
}

input AwsCloudSearchDescribeIndexFieldsInput {
  DomainName: String!
  FieldNames: [String]
  Deployed: Boolean
}

type AwsCloudSearchDescribeScalingParametersOutput {
  ScalingParameters: AwsCloudSearchS2u!
}

type AwsCloudSearchS2u {
  Options: AwsCloudSearchS2v!
  Status: AwsCloudSearchSt!
}

type AwsCloudSearchS2v {
  DesiredInstanceType: String
  DesiredReplicationCount: Int
  DesiredPartitionCount: Int
}

input AwsCloudSearchDescribeScalingParametersInput {
  DomainName: String!
}

type AwsCloudSearchDescribeServiceAccessPoliciesOutput {
  AccessPolicies: AwsCloudSearchS2z!
}

type AwsCloudSearchS2z {
  Options: String!
  Status: AwsCloudSearchSt!
}

input AwsCloudSearchDescribeServiceAccessPoliciesInput {
  DomainName: String!
  Deployed: Boolean
}

type AwsCloudSearchDescribeSuggestersOutput {
  Suggesters: [AwsCloudSearchS1t]!
}

input AwsCloudSearchDescribeSuggestersInput {
  DomainName: String!
  SuggesterNames: [String]
  Deployed: Boolean
}

type AwsCloudSearchIndexDocumentsOutput {
  FieldNames: [String]
}

input AwsCloudSearchIndexDocumentsInput {
  DomainName: String!
}

type AwsCloudSearchListDomainNamesOutput {
  DomainNames: JSON
}

type AwsCloudSearchUpdateAvailabilityOptionsOutput {
  AvailabilityOptions: AwsCloudSearchS2a
}

input AwsCloudSearchUpdateAvailabilityOptionsInput {
  DomainName: String!
  MultiAZ: Boolean!
}

type AwsCloudSearchUpdateDomainEndpointOptionsOutput {
  DomainEndpointOptions: AwsCloudSearchS2e
}

input AwsCloudSearchUpdateDomainEndpointOptionsInput {
  DomainName: String!
  DomainEndpointOptions: AwsCloudSearchS2fInput!
}

input AwsCloudSearchS2fInput {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
}

type AwsCloudSearchUpdateScalingParametersOutput {
  ScalingParameters: AwsCloudSearchS2u!
}

input AwsCloudSearchUpdateScalingParametersInput {
  DomainName: String!
  ScalingParameters: AwsCloudSearchS2vInput!
}

input AwsCloudSearchS2vInput {
  DesiredInstanceType: String
  DesiredReplicationCount: Int
  DesiredPartitionCount: Int
}

type AwsCloudSearchUpdateServiceAccessPoliciesOutput {
  AccessPolicies: AwsCloudSearchS2z!
}

input AwsCloudSearchUpdateServiceAccessPoliciesInput {
  DomainName: String!
  AccessPolicies: String!
}

"""Amazon CloudSearch Domain (2013-01-01)"""
type AwsCloudSearchDomain {
  search(input: AwsCloudSearchDomainSearchInput!, config: AwsConfig): AwsCloudSearchDomainSearchOutput
  suggest(input: AwsCloudSearchDomainSuggestInput!, config: AwsConfig): AwsCloudSearchDomainSuggestOutput
  uploadDocuments(input: AwsCloudSearchDomainUploadDocumentsInput!, config: AwsConfig): AwsCloudSearchDomainUploadDocumentsOutput
}

type AwsCloudSearchDomainSearchOutput {
  status: AwsCloudSearchDomainSearchOutputStatus
  hits: AwsCloudSearchDomainSearchOutputHits
  facets: JSON
  stats: JSON
}

type AwsCloudSearchDomainSearchOutputStatus {
  timems: JSON
  rid: String
}

type AwsCloudSearchDomainSearchOutputHits {
  found: JSON
  start: JSON
  cursor: String
  hit: [AwsCloudSearchDomainSearchOutputHitsHit]
}

type AwsCloudSearchDomainSearchOutputHitsHit {
  id: String
  fields: JSON
  exprs: JSON
  highlights: JSON
}

input AwsCloudSearchDomainSearchInput {
  cursor: String
  expr: String
  facet: String
  filterQuery: String
  highlight: String
  partial: Boolean
  query: String!
  queryOptions: String
  queryParser: String
  return: String
  size: JSON
  sort: String
  start: JSON
  stats: String
}

type AwsCloudSearchDomainSuggestOutput {
  status: AwsCloudSearchDomainSuggestOutputStatus
  suggest: AwsCloudSearchDomainSuggestOutputSuggest
}

type AwsCloudSearchDomainSuggestOutputStatus {
  timems: JSON
  rid: String
}

type AwsCloudSearchDomainSuggestOutputSuggest {
  query: String
  found: JSON
  suggestions: [AwsCloudSearchDomainSuggestOutputSuggestSuggestions]
}

type AwsCloudSearchDomainSuggestOutputSuggestSuggestions {
  suggestion: String
  score: JSON
  id: String
}

input AwsCloudSearchDomainSuggestInput {
  query: String!
  suggester: String!
  size: JSON
}

type AwsCloudSearchDomainUploadDocumentsOutput {
  status: String
  adds: JSON
  deletes: JSON
  warnings: [AwsCloudSearchDomainUploadDocumentsOutputWarnings]
}

type AwsCloudSearchDomainUploadDocumentsOutputWarnings {
  message: String
}

input AwsCloudSearchDomainUploadDocumentsInput {
  documents: JSON!
  contentType: String!
}

"""AWS CloudTrail (2013-11-01)"""
type AwsCloudTrail {
  addTags(input: AwsCloudTrailAddTagsInput!, config: AwsConfig): JSON
  createTrail(input: AwsCloudTrailCreateTrailInput!, config: AwsConfig): AwsCloudTrailCreateTrailOutput
  deleteTrail(input: AwsCloudTrailDeleteTrailInput!, config: AwsConfig): JSON
  describeTrails(input: AwsCloudTrailDescribeTrailsInput, config: AwsConfig): AwsCloudTrailDescribeTrailsOutput
  getEventSelectors(input: AwsCloudTrailGetEventSelectorsInput!, config: AwsConfig): AwsCloudTrailGetEventSelectorsOutput
  getInsightSelectors(input: AwsCloudTrailGetInsightSelectorsInput!, config: AwsConfig): AwsCloudTrailGetInsightSelectorsOutput
  getTrail(input: AwsCloudTrailGetTrailInput!, config: AwsConfig): AwsCloudTrailGetTrailOutput
  getTrailStatus(input: AwsCloudTrailGetTrailStatusInput!, config: AwsConfig): AwsCloudTrailGetTrailStatusOutput
  listPublicKeys(input: AwsCloudTrailListPublicKeysInput, config: AwsConfig): AwsCloudTrailListPublicKeysOutput
  listTags(input: AwsCloudTrailListTagsInput!, config: AwsConfig): AwsCloudTrailListTagsOutput
  listTrails(input: AwsCloudTrailListTrailsInput, config: AwsConfig): AwsCloudTrailListTrailsOutput
  lookupEvents(input: AwsCloudTrailLookupEventsInput, config: AwsConfig): AwsCloudTrailLookupEventsOutput
  putEventSelectors(input: AwsCloudTrailPutEventSelectorsInput!, config: AwsConfig): AwsCloudTrailPutEventSelectorsOutput
  putInsightSelectors(input: AwsCloudTrailPutInsightSelectorsInput!, config: AwsConfig): AwsCloudTrailPutInsightSelectorsOutput
  removeTags(input: AwsCloudTrailRemoveTagsInput!, config: AwsConfig): JSON
  startLogging(input: AwsCloudTrailStartLoggingInput!, config: AwsConfig): JSON
  stopLogging(input: AwsCloudTrailStopLoggingInput!, config: AwsConfig): JSON
  updateTrail(input: AwsCloudTrailUpdateTrailInput!, config: AwsConfig): AwsCloudTrailUpdateTrailOutput
}

input AwsCloudTrailAddTagsInput {
  ResourceId: String!
  TagsList: [AwsCloudTrailS3Input]
}

input AwsCloudTrailS3Input {
  Key: String!
  Value: String
}

type AwsCloudTrailCreateTrailOutput {
  Name: String
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicName: String
  SnsTopicARN: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  TrailARN: String
  LogFileValidationEnabled: Boolean
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  KmsKeyId: String
  IsOrganizationTrail: Boolean
}

input AwsCloudTrailCreateTrailInput {
  Name: String!
  S3BucketName: String!
  S3KeyPrefix: String
  SnsTopicName: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  EnableLogFileValidation: Boolean
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  KmsKeyId: String
  IsOrganizationTrail: Boolean
  TagsList: [AwsCloudTrailS3Input]
}

input AwsCloudTrailDeleteTrailInput {
  Name: String!
}

type AwsCloudTrailDescribeTrailsOutput {
  trailList: [AwsCloudTrailSf]
}

type AwsCloudTrailSf {
  Name: String
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicName: String
  SnsTopicARN: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  HomeRegion: String
  TrailARN: String
  LogFileValidationEnabled: Boolean
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  KmsKeyId: String
  HasCustomEventSelectors: Boolean
  HasInsightSelectors: Boolean
  IsOrganizationTrail: Boolean
}

input AwsCloudTrailDescribeTrailsInput {
  trailNameList: [String]
  includeShadowTrails: Boolean
}

type AwsCloudTrailGetEventSelectorsOutput {
  TrailARN: String
  EventSelectors: [AwsCloudTrailSi]
  AdvancedEventSelectors: [AwsCloudTrailSp]
}

type AwsCloudTrailSi {
  ReadWriteType: String
  IncludeManagementEvents: Boolean
  DataResources: [AwsCloudTrailSiDataResources]
  ExcludeManagementEventSources: [String]
}

type AwsCloudTrailSiDataResources {
  Type: String
  Values: [String]
}

type AwsCloudTrailSp {
  Name: String
  FieldSelectors: [AwsCloudTrailSpFieldSelectors]!
}

type AwsCloudTrailSpFieldSelectors {
  Field: String!
  Equals: [String]
  StartsWith: [String]
  EndsWith: [String]
  NotEquals: [String]
  NotStartsWith: [String]
  NotEndsWith: [String]
}

input AwsCloudTrailGetEventSelectorsInput {
  TrailName: String!
}

type AwsCloudTrailGetInsightSelectorsOutput {
  TrailARN: String
  InsightSelectors: [AwsCloudTrailSz]
}

type AwsCloudTrailSz {
  InsightType: String
}

input AwsCloudTrailGetInsightSelectorsInput {
  TrailName: String!
}

type AwsCloudTrailGetTrailOutput {
  Trail: AwsCloudTrailSf
}

input AwsCloudTrailGetTrailInput {
  Name: String!
}

type AwsCloudTrailGetTrailStatusOutput {
  IsLogging: Boolean
  LatestDeliveryError: String
  LatestNotificationError: String
  LatestDeliveryTime: Date
  LatestNotificationTime: Date
  StartLoggingTime: Date
  StopLoggingTime: Date
  LatestCloudWatchLogsDeliveryError: String
  LatestCloudWatchLogsDeliveryTime: Date
  LatestDigestDeliveryTime: Date
  LatestDigestDeliveryError: String
  LatestDeliveryAttemptTime: String
  LatestNotificationAttemptTime: String
  LatestNotificationAttemptSucceeded: String
  LatestDeliveryAttemptSucceeded: String
  TimeLoggingStarted: String
  TimeLoggingStopped: String
}

input AwsCloudTrailGetTrailStatusInput {
  Name: String!
}

type AwsCloudTrailListPublicKeysOutput {
  PublicKeyList: [AwsCloudTrailListPublicKeysOutputPublicKeyList]
  NextToken: String
}

type AwsCloudTrailListPublicKeysOutputPublicKeyList {
  Value: JSON
  ValidityStartTime: Date
  ValidityEndTime: Date
  Fingerprint: String
}

input AwsCloudTrailListPublicKeysInput {
  StartTime: Date
  EndTime: Date
  NextToken: String
}

type AwsCloudTrailListTagsOutput {
  ResourceTagList: [AwsCloudTrailListTagsOutputResourceTagList]
  NextToken: String
}

type AwsCloudTrailListTagsOutputResourceTagList {
  ResourceId: String
  TagsList: [AwsCloudTrailS3]
}

type AwsCloudTrailS3 {
  Key: String!
  Value: String
}

input AwsCloudTrailListTagsInput {
  ResourceIdList: [String]!
  NextToken: String
}

type AwsCloudTrailListTrailsOutput {
  Trails: [AwsCloudTrailListTrailsOutputTrails]
  NextToken: String
}

type AwsCloudTrailListTrailsOutputTrails {
  TrailARN: String
  Name: String
  HomeRegion: String
}

input AwsCloudTrailListTrailsInput {
  NextToken: String
}

type AwsCloudTrailLookupEventsOutput {
  Events: [AwsCloudTrailLookupEventsOutputEvents]
  NextToken: String
}

type AwsCloudTrailLookupEventsOutputEvents {
  EventId: String
  EventName: String
  ReadOnly: String
  AccessKeyId: String
  EventTime: Date
  EventSource: String
  Username: String
  Resources: [AwsCloudTrailLookupEventsOutputEventsResources]
  CloudTrailEvent: String
}

type AwsCloudTrailLookupEventsOutputEventsResources {
  ResourceType: String
  ResourceName: String
}

input AwsCloudTrailLookupEventsInput {
  LookupAttributes: [AwsCloudTrailLookupEventsLookupAttributesInput]
  StartTime: Date
  EndTime: Date
  EventCategory: String
  MaxResults: Int
  NextToken: String
}

input AwsCloudTrailLookupEventsLookupAttributesInput {
  AttributeKey: String!
  AttributeValue: String!
}

type AwsCloudTrailPutEventSelectorsOutput {
  TrailARN: String
  EventSelectors: [AwsCloudTrailSi]
  AdvancedEventSelectors: [AwsCloudTrailSp]
}

input AwsCloudTrailPutEventSelectorsInput {
  TrailName: String!
  EventSelectors: [AwsCloudTrailSiInput]
  AdvancedEventSelectors: [AwsCloudTrailSpInput]
}

input AwsCloudTrailSiInput {
  ReadWriteType: String
  IncludeManagementEvents: Boolean
  DataResources: [AwsCloudTrailSiDataResourcesInput]
  ExcludeManagementEventSources: [String]
}

input AwsCloudTrailSiDataResourcesInput {
  Type: String
  Values: [String]
}

input AwsCloudTrailSpInput {
  Name: String
  FieldSelectors: [AwsCloudTrailSpFieldSelectorsInput]!
}

input AwsCloudTrailSpFieldSelectorsInput {
  Field: String!
  Equals: [String]
  StartsWith: [String]
  EndsWith: [String]
  NotEquals: [String]
  NotStartsWith: [String]
  NotEndsWith: [String]
}

type AwsCloudTrailPutInsightSelectorsOutput {
  TrailARN: String
  InsightSelectors: [AwsCloudTrailSz]
}

input AwsCloudTrailPutInsightSelectorsInput {
  TrailName: String!
  InsightSelectors: [AwsCloudTrailSzInput]!
}

input AwsCloudTrailSzInput {
  InsightType: String
}

input AwsCloudTrailRemoveTagsInput {
  ResourceId: String!
  TagsList: [AwsCloudTrailS3Input]
}

input AwsCloudTrailStartLoggingInput {
  Name: String!
}

input AwsCloudTrailStopLoggingInput {
  Name: String!
}

type AwsCloudTrailUpdateTrailOutput {
  Name: String
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicName: String
  SnsTopicARN: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  TrailARN: String
  LogFileValidationEnabled: Boolean
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  KmsKeyId: String
  IsOrganizationTrail: Boolean
}

input AwsCloudTrailUpdateTrailInput {
  Name: String!
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicName: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  EnableLogFileValidation: Boolean
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  KmsKeyId: String
  IsOrganizationTrail: Boolean
}

"""Amazon CloudWatch (2010-08-01)"""
type AwsCloudWatch {
  deleteAlarms(input: AwsCloudWatchDeleteAlarmsInput!, config: AwsConfig): JSON
  deleteAnomalyDetector(input: AwsCloudWatchDeleteAnomalyDetectorInput!, config: AwsConfig): JSON
  deleteDashboards(input: AwsCloudWatchDeleteDashboardsInput!, config: AwsConfig): JSON
  deleteInsightRules(input: AwsCloudWatchDeleteInsightRulesInput!, config: AwsConfig): AwsCloudWatchDeleteInsightRulesOutput
  deleteMetricStream(input: AwsCloudWatchDeleteMetricStreamInput!, config: AwsConfig): JSON
  describeAlarmHistory(input: AwsCloudWatchDescribeAlarmHistoryInput, config: AwsConfig): AwsCloudWatchDescribeAlarmHistoryOutput
  describeAlarms(input: AwsCloudWatchDescribeAlarmsInput, config: AwsConfig): AwsCloudWatchDescribeAlarmsOutput
  describeAlarmsForMetric(input: AwsCloudWatchDescribeAlarmsForMetricInput!, config: AwsConfig): AwsCloudWatchDescribeAlarmsForMetricOutput
  describeAnomalyDetectors(input: AwsCloudWatchDescribeAnomalyDetectorsInput, config: AwsConfig): AwsCloudWatchDescribeAnomalyDetectorsOutput
  describeInsightRules(input: AwsCloudWatchDescribeInsightRulesInput, config: AwsConfig): AwsCloudWatchDescribeInsightRulesOutput
  disableAlarmActions(input: AwsCloudWatchDisableAlarmActionsInput!, config: AwsConfig): JSON
  disableInsightRules(input: AwsCloudWatchDisableInsightRulesInput!, config: AwsConfig): AwsCloudWatchDisableInsightRulesOutput
  enableAlarmActions(input: AwsCloudWatchEnableAlarmActionsInput!, config: AwsConfig): JSON
  enableInsightRules(input: AwsCloudWatchEnableInsightRulesInput!, config: AwsConfig): AwsCloudWatchEnableInsightRulesOutput
  getDashboard(input: AwsCloudWatchGetDashboardInput!, config: AwsConfig): AwsCloudWatchGetDashboardOutput
  getInsightRuleReport(input: AwsCloudWatchGetInsightRuleReportInput!, config: AwsConfig): AwsCloudWatchGetInsightRuleReportOutput
  getMetricData(input: AwsCloudWatchGetMetricDataInput!, config: AwsConfig): AwsCloudWatchGetMetricDataOutput
  getMetricStatistics(input: AwsCloudWatchGetMetricStatisticsInput!, config: AwsConfig): AwsCloudWatchGetMetricStatisticsOutput
  getMetricStream(input: AwsCloudWatchGetMetricStreamInput!, config: AwsConfig): AwsCloudWatchGetMetricStreamOutput
  getMetricWidgetImage(input: AwsCloudWatchGetMetricWidgetImageInput!, config: AwsConfig): AwsCloudWatchGetMetricWidgetImageOutput
  listDashboards(input: AwsCloudWatchListDashboardsInput, config: AwsConfig): AwsCloudWatchListDashboardsOutput
  listMetricStreams(input: AwsCloudWatchListMetricStreamsInput, config: AwsConfig): AwsCloudWatchListMetricStreamsOutput
  listMetrics(input: AwsCloudWatchListMetricsInput, config: AwsConfig): AwsCloudWatchListMetricsOutput
  listTagsForResource(input: AwsCloudWatchListTagsForResourceInput!, config: AwsConfig): AwsCloudWatchListTagsForResourceOutput
  putAnomalyDetector(input: AwsCloudWatchPutAnomalyDetectorInput!, config: AwsConfig): JSON
  putCompositeAlarm(input: AwsCloudWatchPutCompositeAlarmInput!, config: AwsConfig): JSON
  putDashboard(input: AwsCloudWatchPutDashboardInput!, config: AwsConfig): AwsCloudWatchPutDashboardOutput
  putInsightRule(input: AwsCloudWatchPutInsightRuleInput!, config: AwsConfig): JSON
  putMetricAlarm(input: AwsCloudWatchPutMetricAlarmInput!, config: AwsConfig): JSON
  putMetricData(input: AwsCloudWatchPutMetricDataInput!, config: AwsConfig): JSON
  putMetricStream(input: AwsCloudWatchPutMetricStreamInput!, config: AwsConfig): AwsCloudWatchPutMetricStreamOutput
  setAlarmState(input: AwsCloudWatchSetAlarmStateInput!, config: AwsConfig): JSON
  startMetricStreams(input: AwsCloudWatchStartMetricStreamsInput!, config: AwsConfig): JSON
  stopMetricStreams(input: AwsCloudWatchStopMetricStreamsInput!, config: AwsConfig): JSON
  tagResource(input: AwsCloudWatchTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCloudWatchUntagResourceInput!, config: AwsConfig): JSON
}

input AwsCloudWatchDeleteAlarmsInput {
  AlarmNames: [String]!
}

input AwsCloudWatchDeleteAnomalyDetectorInput {
  Namespace: String!
  MetricName: String!
  Dimensions: [AwsCloudWatchS7Input]
  Stat: String!
}

input AwsCloudWatchS7Input {
  Name: String!
  Value: String!
}

input AwsCloudWatchDeleteDashboardsInput {
  DashboardNames: [String]!
}

type AwsCloudWatchDeleteInsightRulesOutput {
  Failures: [AwsCloudWatchSl]
}

type AwsCloudWatchSl {
  FailureResource: String
  ExceptionType: String
  FailureCode: String
  FailureDescription: String
}

input AwsCloudWatchDeleteInsightRulesInput {
  RuleNames: [String]!
}

input AwsCloudWatchDeleteMetricStreamInput {
  Name: String!
}

type AwsCloudWatchDescribeAlarmHistoryOutput {
  AlarmHistoryItems: [AwsCloudWatchDescribeAlarmHistoryOutputAlarmHistoryItems]
  NextToken: String
}

type AwsCloudWatchDescribeAlarmHistoryOutputAlarmHistoryItems {
  AlarmName: String
  AlarmType: String
  Timestamp: Date
  HistoryItemType: String
  HistorySummary: String
  HistoryData: String
}

input AwsCloudWatchDescribeAlarmHistoryInput {
  AlarmName: String
  AlarmTypes: [String]
  HistoryItemType: String
  StartDate: Date
  EndDate: Date
  MaxRecords: Int
  NextToken: String
  ScanBy: String
}

type AwsCloudWatchDescribeAlarmsOutput {
  CompositeAlarms: [AwsCloudWatchDescribeAlarmsOutputCompositeAlarms]
  MetricAlarms: [AwsCloudWatchS1m]
  NextToken: String
}

type AwsCloudWatchDescribeAlarmsOutputCompositeAlarms {
  ActionsEnabled: Boolean
  AlarmActions: [String]
  AlarmArn: String
  AlarmConfigurationUpdatedTimestamp: Date
  AlarmDescription: String
  AlarmName: String
  AlarmRule: String
  InsufficientDataActions: [String]
  OKActions: [String]
  StateReason: String
  StateReasonData: String
  StateUpdatedTimestamp: Date
  StateValue: String
}

type AwsCloudWatchS1m {
  AlarmName: String
  AlarmArn: String
  AlarmDescription: String
  AlarmConfigurationUpdatedTimestamp: Date
  ActionsEnabled: Boolean
  OKActions: [String]
  AlarmActions: [String]
  InsufficientDataActions: [String]
  StateValue: String
  StateReason: String
  StateReasonData: String
  StateUpdatedTimestamp: Date
  MetricName: String
  Namespace: String
  Statistic: String
  ExtendedStatistic: String
  Dimensions: [AwsCloudWatchS7]
  Period: Int
  Unit: String
  EvaluationPeriods: Int
  DatapointsToAlarm: Int
  Threshold: JSON
  ComparisonOperator: String
  TreatMissingData: String
  EvaluateLowSampleCountPercentile: String
  Metrics: [AwsCloudWatchS1y]
  ThresholdMetricId: String
}

type AwsCloudWatchS7 {
  Name: String!
  Value: String!
}

type AwsCloudWatchS1y {
  Id: String!
  MetricStat: AwsCloudWatchS1yMetricStat
  Expression: String
  Label: String
  ReturnData: Boolean
  Period: Int
}

type AwsCloudWatchS1yMetricStat {
  Metric: AwsCloudWatchS22!
  Period: Int!
  Stat: String!
  Unit: String
}

type AwsCloudWatchS22 {
  Namespace: String
  MetricName: String
  Dimensions: [AwsCloudWatchS7]
}

input AwsCloudWatchDescribeAlarmsInput {
  AlarmNames: [String]
  AlarmNamePrefix: String
  AlarmTypes: [String]
  ChildrenOfAlarmName: String
  ParentsOfAlarmName: String
  StateValue: String
  ActionPrefix: String
  MaxRecords: Int
  NextToken: String
}

type AwsCloudWatchDescribeAlarmsForMetricOutput {
  MetricAlarms: [AwsCloudWatchS1m]
}

input AwsCloudWatchDescribeAlarmsForMetricInput {
  MetricName: String!
  Namespace: String!
  Statistic: String
  ExtendedStatistic: String
  Dimensions: [AwsCloudWatchS7Input]
  Period: Int
  Unit: String
}

type AwsCloudWatchDescribeAnomalyDetectorsOutput {
  AnomalyDetectors: [AwsCloudWatchDescribeAnomalyDetectorsOutputAnomalyDetectors]
  NextToken: String
}

type AwsCloudWatchDescribeAnomalyDetectorsOutputAnomalyDetectors {
  Namespace: String
  MetricName: String
  Dimensions: [AwsCloudWatchS7]
  Stat: String
  Configuration: AwsCloudWatchS2e
  StateValue: String
}

type AwsCloudWatchS2e {
  ExcludedTimeRanges: [AwsCloudWatchS2eExcludedTimeRanges]
  MetricTimezone: String
}

type AwsCloudWatchS2eExcludedTimeRanges {
  StartTime: Date!
  EndTime: Date!
}

input AwsCloudWatchDescribeAnomalyDetectorsInput {
  NextToken: String
  MaxResults: Int
  Namespace: String
  MetricName: String
  Dimensions: [AwsCloudWatchS7Input]
}

type AwsCloudWatchDescribeInsightRulesOutput {
  NextToken: String
  InsightRules: [AwsCloudWatchDescribeInsightRulesOutputInsightRules]
}

type AwsCloudWatchDescribeInsightRulesOutputInsightRules {
  Name: String!
  State: String!
  Schema: String!
  Definition: String!
}

input AwsCloudWatchDescribeInsightRulesInput {
  NextToken: String
  MaxResults: Int
}

input AwsCloudWatchDisableAlarmActionsInput {
  AlarmNames: [String]!
}

type AwsCloudWatchDisableInsightRulesOutput {
  Failures: [AwsCloudWatchSl]
}

input AwsCloudWatchDisableInsightRulesInput {
  RuleNames: [String]!
}

input AwsCloudWatchEnableAlarmActionsInput {
  AlarmNames: [String]!
}

type AwsCloudWatchEnableInsightRulesOutput {
  Failures: [AwsCloudWatchSl]
}

input AwsCloudWatchEnableInsightRulesInput {
  RuleNames: [String]!
}

type AwsCloudWatchGetDashboardOutput {
  DashboardArn: String
  DashboardBody: String
  DashboardName: String
}

input AwsCloudWatchGetDashboardInput {
  DashboardName: String!
}

type AwsCloudWatchGetInsightRuleReportOutput {
  KeyLabels: [String]
  AggregationStatistic: String
  AggregateValue: JSON
  ApproximateUniqueCount: JSON
  Contributors: [AwsCloudWatchGetInsightRuleReportOutputContributors]
  MetricDatapoints: [AwsCloudWatchGetInsightRuleReportOutputMetricDatapoints]
}

type AwsCloudWatchGetInsightRuleReportOutputContributors {
  Keys: [String]!
  ApproximateAggregateValue: JSON!
  Datapoints: [AwsCloudWatchGetInsightRuleReportOutputContributorsDatapoints]!
}

type AwsCloudWatchGetInsightRuleReportOutputContributorsDatapoints {
  Timestamp: Date!
  ApproximateValue: JSON!
}

type AwsCloudWatchGetInsightRuleReportOutputMetricDatapoints {
  Timestamp: Date!
  UniqueContributors: JSON
  MaxContributorValue: JSON
  SampleCount: JSON
  Average: JSON
  Sum: JSON
  Minimum: JSON
  Maximum: JSON
}

input AwsCloudWatchGetInsightRuleReportInput {
  RuleName: String!
  StartTime: Date!
  EndTime: Date!
  Period: Int!
  MaxContributorCount: Int
  Metrics: [String]
  OrderBy: String
}

type AwsCloudWatchGetMetricDataOutput {
  MetricDataResults: [AwsCloudWatchGetMetricDataOutputMetricDataResults]
  NextToken: String
  Messages: [AwsCloudWatchS3v]
}

type AwsCloudWatchGetMetricDataOutputMetricDataResults {
  Id: String
  Label: String
  Timestamps: [Date]
  Values: [JSON]
  StatusCode: String
  Messages: [AwsCloudWatchS3v]
}

type AwsCloudWatchS3v {
  Code: String
  Value: String
}

input AwsCloudWatchGetMetricDataInput {
  MetricDataQueries: [AwsCloudWatchS1yInput]!
  StartTime: Date!
  EndTime: Date!
  NextToken: String
  ScanBy: String
  MaxDatapoints: Int
  LabelOptions: AwsCloudWatchGetMetricDataLabelOptionsInput
}

input AwsCloudWatchS1yInput {
  Id: String!
  MetricStat: AwsCloudWatchS1yMetricStatInput
  Expression: String
  Label: String
  ReturnData: Boolean
  Period: Int
}

input AwsCloudWatchS1yMetricStatInput {
  Metric: AwsCloudWatchS22Input!
  Period: Int!
  Stat: String!
  Unit: String
}

input AwsCloudWatchS22Input {
  Namespace: String
  MetricName: String
  Dimensions: [AwsCloudWatchS7Input]
}

input AwsCloudWatchGetMetricDataLabelOptionsInput {
  Timezone: String
}

type AwsCloudWatchGetMetricStatisticsOutput {
  Label: String
  Datapoints: [AwsCloudWatchGetMetricStatisticsOutputDatapoints]
}

type AwsCloudWatchGetMetricStatisticsOutputDatapoints {
  Timestamp: Date
  SampleCount: JSON
  Average: JSON
  Sum: JSON
  Minimum: JSON
  Maximum: JSON
  Unit: String
  ExtendedStatistics: JSON
}

input AwsCloudWatchGetMetricStatisticsInput {
  Namespace: String!
  MetricName: String!
  Dimensions: [AwsCloudWatchS7Input]
  StartTime: Date!
  EndTime: Date!
  Period: Int!
  Statistics: [String]
  ExtendedStatistics: [String]
  Unit: String
}

type AwsCloudWatchGetMetricStreamOutput {
  Arn: String
  Name: String
  IncludeFilters: [AwsCloudWatchS49]
  ExcludeFilters: [AwsCloudWatchS49]
  FirehoseArn: String
  RoleArn: String
  State: String
  CreationDate: Date
  LastUpdateDate: Date
  OutputFormat: String
}

type AwsCloudWatchS49 {
  Namespace: String
}

input AwsCloudWatchGetMetricStreamInput {
  Name: String!
}

type AwsCloudWatchGetMetricWidgetImageOutput {
  MetricWidgetImage: JSON
}

input AwsCloudWatchGetMetricWidgetImageInput {
  MetricWidget: String!
  OutputFormat: String
}

type AwsCloudWatchListDashboardsOutput {
  DashboardEntries: [AwsCloudWatchListDashboardsOutputDashboardEntries]
  NextToken: String
}

type AwsCloudWatchListDashboardsOutputDashboardEntries {
  DashboardName: String
  DashboardArn: String
  LastModified: Date
  Size: JSON
}

input AwsCloudWatchListDashboardsInput {
  DashboardNamePrefix: String
  NextToken: String
}

type AwsCloudWatchListMetricStreamsOutput {
  NextToken: String
  Entries: [AwsCloudWatchListMetricStreamsOutputEntries]
}

type AwsCloudWatchListMetricStreamsOutputEntries {
  Arn: String
  CreationDate: Date
  LastUpdateDate: Date
  Name: String
  FirehoseArn: String
  State: String
  OutputFormat: String
}

input AwsCloudWatchListMetricStreamsInput {
  NextToken: String
  MaxResults: Int
}

type AwsCloudWatchListMetricsOutput {
  Metrics: [AwsCloudWatchS22]
  NextToken: String
}

input AwsCloudWatchListMetricsInput {
  Namespace: String
  MetricName: String
  Dimensions: [AwsCloudWatchListMetricsDimensionsInput]
  NextToken: String
  RecentlyActive: String
}

input AwsCloudWatchListMetricsDimensionsInput {
  Name: String!
  Value: String
}

type AwsCloudWatchListTagsForResourceOutput {
  Tags: [AwsCloudWatchS52]
}

type AwsCloudWatchS52 {
  Key: String!
  Value: String!
}

input AwsCloudWatchListTagsForResourceInput {
  ResourceARN: String!
}

input AwsCloudWatchPutAnomalyDetectorInput {
  Namespace: String!
  MetricName: String!
  Dimensions: [AwsCloudWatchS7Input]
  Stat: String!
  Configuration: AwsCloudWatchS2eInput
}

input AwsCloudWatchS2eInput {
  ExcludedTimeRanges: [AwsCloudWatchS2eExcludedTimeRangesInput]
  MetricTimezone: String
}

input AwsCloudWatchS2eExcludedTimeRangesInput {
  StartTime: Date!
  EndTime: Date!
}

input AwsCloudWatchPutCompositeAlarmInput {
  ActionsEnabled: Boolean
  AlarmActions: [String]
  AlarmDescription: String
  AlarmName: String!
  AlarmRule: String!
  InsufficientDataActions: [String]
  OKActions: [String]
  Tags: [AwsCloudWatchS52Input]
}

input AwsCloudWatchS52Input {
  Key: String!
  Value: String!
}

type AwsCloudWatchPutDashboardOutput {
  DashboardValidationMessages: [AwsCloudWatchPutDashboardOutputDashboardValidationMessages]
}

type AwsCloudWatchPutDashboardOutputDashboardValidationMessages {
  DataPath: String
  Message: String
}

input AwsCloudWatchPutDashboardInput {
  DashboardName: String!
  DashboardBody: String!
}

input AwsCloudWatchPutInsightRuleInput {
  RuleName: String!
  RuleState: String
  RuleDefinition: String!
  Tags: [AwsCloudWatchS52Input]
}

input AwsCloudWatchPutMetricAlarmInput {
  AlarmName: String!
  AlarmDescription: String
  ActionsEnabled: Boolean
  OKActions: [String]
  AlarmActions: [String]
  InsufficientDataActions: [String]
  MetricName: String
  Namespace: String
  Statistic: String
  ExtendedStatistic: String
  Dimensions: [AwsCloudWatchS7Input]
  Period: Int
  Unit: String
  EvaluationPeriods: Int!
  DatapointsToAlarm: Int
  Threshold: JSON
  ComparisonOperator: String!
  TreatMissingData: String
  EvaluateLowSampleCountPercentile: String
  Metrics: [AwsCloudWatchS1yInput]
  Tags: [AwsCloudWatchS52Input]
  ThresholdMetricId: String
}

input AwsCloudWatchPutMetricDataInput {
  Namespace: String!
  MetricData: [AwsCloudWatchPutMetricDataMetricDataInput]!
}

input AwsCloudWatchPutMetricDataMetricDataInput {
  MetricName: String!
  Dimensions: [AwsCloudWatchS7Input]
  Timestamp: Date
  Value: JSON
  StatisticValues: AwsCloudWatchPutMetricDataMetricDataStatisticValuesInput
  Values: [JSON]
  Counts: [JSON]
  Unit: String
  StorageResolution: Int
}

input AwsCloudWatchPutMetricDataMetricDataStatisticValuesInput {
  SampleCount: JSON!
  Sum: JSON!
  Minimum: JSON!
  Maximum: JSON!
}

type AwsCloudWatchPutMetricStreamOutput {
  Arn: String
}

input AwsCloudWatchPutMetricStreamInput {
  Name: String!
  IncludeFilters: [AwsCloudWatchS49Input]
  ExcludeFilters: [AwsCloudWatchS49Input]
  FirehoseArn: String!
  RoleArn: String!
  OutputFormat: String!
  Tags: [AwsCloudWatchS52Input]
}

input AwsCloudWatchS49Input {
  Namespace: String
}

input AwsCloudWatchSetAlarmStateInput {
  AlarmName: String!
  StateValue: String!
  StateReason: String!
  StateReasonData: String
}

input AwsCloudWatchStartMetricStreamsInput {
  Names: [String]!
}

input AwsCloudWatchStopMetricStreamsInput {
  Names: [String]!
}

input AwsCloudWatchTagResourceInput {
  ResourceARN: String!
  Tags: [AwsCloudWatchS52Input]!
}

input AwsCloudWatchUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

"""Amazon CloudWatch Events (2015-10-07)"""
type AwsCloudWatchEvents {
  activateEventSource(input: AwsCloudWatchEventsActivateEventSourceInput!, config: AwsConfig): JSON
  cancelReplay(input: AwsCloudWatchEventsCancelReplayInput!, config: AwsConfig): AwsCloudWatchEventsCancelReplayOutput
  createApiDestination(input: AwsCloudWatchEventsCreateApiDestinationInput!, config: AwsConfig): AwsCloudWatchEventsCreateApiDestinationOutput
  createArchive(input: AwsCloudWatchEventsCreateArchiveInput!, config: AwsConfig): AwsCloudWatchEventsCreateArchiveOutput
  createConnection(input: AwsCloudWatchEventsCreateConnectionInput!, config: AwsConfig): AwsCloudWatchEventsCreateConnectionOutput
  createEventBus(input: AwsCloudWatchEventsCreateEventBusInput!, config: AwsConfig): AwsCloudWatchEventsCreateEventBusOutput
  createPartnerEventSource(input: AwsCloudWatchEventsCreatePartnerEventSourceInput!, config: AwsConfig): AwsCloudWatchEventsCreatePartnerEventSourceOutput
  deactivateEventSource(input: AwsCloudWatchEventsDeactivateEventSourceInput!, config: AwsConfig): JSON
  deauthorizeConnection(input: AwsCloudWatchEventsDeauthorizeConnectionInput!, config: AwsConfig): AwsCloudWatchEventsDeauthorizeConnectionOutput
  deleteApiDestination(input: AwsCloudWatchEventsDeleteApiDestinationInput!, config: AwsConfig): JSON
  deleteArchive(input: AwsCloudWatchEventsDeleteArchiveInput!, config: AwsConfig): JSON
  deleteConnection(input: AwsCloudWatchEventsDeleteConnectionInput!, config: AwsConfig): AwsCloudWatchEventsDeleteConnectionOutput
  deleteEventBus(input: AwsCloudWatchEventsDeleteEventBusInput!, config: AwsConfig): JSON
  deletePartnerEventSource(input: AwsCloudWatchEventsDeletePartnerEventSourceInput!, config: AwsConfig): JSON
  deleteRule(input: AwsCloudWatchEventsDeleteRuleInput!, config: AwsConfig): JSON
  describeApiDestination(input: AwsCloudWatchEventsDescribeApiDestinationInput!, config: AwsConfig): AwsCloudWatchEventsDescribeApiDestinationOutput
  describeArchive(input: AwsCloudWatchEventsDescribeArchiveInput!, config: AwsConfig): AwsCloudWatchEventsDescribeArchiveOutput
  describeConnection(input: AwsCloudWatchEventsDescribeConnectionInput!, config: AwsConfig): AwsCloudWatchEventsDescribeConnectionOutput
  describeEventBus(input: AwsCloudWatchEventsDescribeEventBusInput, config: AwsConfig): AwsCloudWatchEventsDescribeEventBusOutput
  describeEventSource(input: AwsCloudWatchEventsDescribeEventSourceInput!, config: AwsConfig): AwsCloudWatchEventsDescribeEventSourceOutput
  describePartnerEventSource(input: AwsCloudWatchEventsDescribePartnerEventSourceInput!, config: AwsConfig): AwsCloudWatchEventsDescribePartnerEventSourceOutput
  describeReplay(input: AwsCloudWatchEventsDescribeReplayInput!, config: AwsConfig): AwsCloudWatchEventsDescribeReplayOutput
  describeRule(input: AwsCloudWatchEventsDescribeRuleInput!, config: AwsConfig): AwsCloudWatchEventsDescribeRuleOutput
  disableRule(input: AwsCloudWatchEventsDisableRuleInput!, config: AwsConfig): JSON
  enableRule(input: AwsCloudWatchEventsEnableRuleInput!, config: AwsConfig): JSON
  listApiDestinations(input: AwsCloudWatchEventsListApiDestinationsInput, config: AwsConfig): AwsCloudWatchEventsListApiDestinationsOutput
  listArchives(input: AwsCloudWatchEventsListArchivesInput, config: AwsConfig): AwsCloudWatchEventsListArchivesOutput
  listConnections(input: AwsCloudWatchEventsListConnectionsInput, config: AwsConfig): AwsCloudWatchEventsListConnectionsOutput
  listEventBuses(input: AwsCloudWatchEventsListEventBusesInput, config: AwsConfig): AwsCloudWatchEventsListEventBusesOutput
  listEventSources(input: AwsCloudWatchEventsListEventSourcesInput, config: AwsConfig): AwsCloudWatchEventsListEventSourcesOutput
  listPartnerEventSourceAccounts(input: AwsCloudWatchEventsListPartnerEventSourceAccountsInput!, config: AwsConfig): AwsCloudWatchEventsListPartnerEventSourceAccountsOutput
  listPartnerEventSources(input: AwsCloudWatchEventsListPartnerEventSourcesInput!, config: AwsConfig): AwsCloudWatchEventsListPartnerEventSourcesOutput
  listReplays(input: AwsCloudWatchEventsListReplaysInput, config: AwsConfig): AwsCloudWatchEventsListReplaysOutput
  listRuleNamesByTarget(input: AwsCloudWatchEventsListRuleNamesByTargetInput!, config: AwsConfig): AwsCloudWatchEventsListRuleNamesByTargetOutput
  listRules(input: AwsCloudWatchEventsListRulesInput, config: AwsConfig): AwsCloudWatchEventsListRulesOutput
  listTagsForResource(input: AwsCloudWatchEventsListTagsForResourceInput!, config: AwsConfig): AwsCloudWatchEventsListTagsForResourceOutput
  listTargetsByRule(input: AwsCloudWatchEventsListTargetsByRuleInput!, config: AwsConfig): AwsCloudWatchEventsListTargetsByRuleOutput
  putEvents(input: AwsCloudWatchEventsPutEventsInput!, config: AwsConfig): AwsCloudWatchEventsPutEventsOutput
  putPartnerEvents(input: AwsCloudWatchEventsPutPartnerEventsInput!, config: AwsConfig): AwsCloudWatchEventsPutPartnerEventsOutput
  putPermission(input: AwsCloudWatchEventsPutPermissionInput, config: AwsConfig): JSON
  putRule(input: AwsCloudWatchEventsPutRuleInput!, config: AwsConfig): AwsCloudWatchEventsPutRuleOutput
  putTargets(input: AwsCloudWatchEventsPutTargetsInput!, config: AwsConfig): AwsCloudWatchEventsPutTargetsOutput
  removePermission(input: AwsCloudWatchEventsRemovePermissionInput, config: AwsConfig): JSON
  removeTargets(input: AwsCloudWatchEventsRemoveTargetsInput!, config: AwsConfig): AwsCloudWatchEventsRemoveTargetsOutput
  startReplay(input: AwsCloudWatchEventsStartReplayInput!, config: AwsConfig): AwsCloudWatchEventsStartReplayOutput
  tagResource(input: AwsCloudWatchEventsTagResourceInput!, config: AwsConfig): JSON
  testEventPattern(input: AwsCloudWatchEventsTestEventPatternInput!, config: AwsConfig): AwsCloudWatchEventsTestEventPatternOutput
  untagResource(input: AwsCloudWatchEventsUntagResourceInput!, config: AwsConfig): JSON
  updateApiDestination(input: AwsCloudWatchEventsUpdateApiDestinationInput!, config: AwsConfig): AwsCloudWatchEventsUpdateApiDestinationOutput
  updateArchive(input: AwsCloudWatchEventsUpdateArchiveInput!, config: AwsConfig): AwsCloudWatchEventsUpdateArchiveOutput
  updateConnection(input: AwsCloudWatchEventsUpdateConnectionInput!, config: AwsConfig): AwsCloudWatchEventsUpdateConnectionOutput
}

input AwsCloudWatchEventsActivateEventSourceInput {
  Name: String!
}

type AwsCloudWatchEventsCancelReplayOutput {
  ReplayArn: String
  State: String
  StateReason: String
}

input AwsCloudWatchEventsCancelReplayInput {
  ReplayName: String!
}

type AwsCloudWatchEventsCreateApiDestinationOutput {
  ApiDestinationArn: String
  ApiDestinationState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsCloudWatchEventsCreateApiDestinationInput {
  Name: String!
  Description: String
  ConnectionArn: String!
  InvocationEndpoint: String!
  HttpMethod: String!
  InvocationRateLimitPerSecond: Int
}

type AwsCloudWatchEventsCreateArchiveOutput {
  ArchiveArn: String
  State: String
  StateReason: String
  CreationTime: Date
}

input AwsCloudWatchEventsCreateArchiveInput {
  ArchiveName: String!
  EventSourceArn: String!
  Description: String
  EventPattern: String
  RetentionDays: Int
}

type AwsCloudWatchEventsCreateConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsCloudWatchEventsCreateConnectionInput {
  Name: String!
  Description: String
  AuthorizationType: String!
  AuthParameters: AwsCloudWatchEventsCreateConnectionAuthParametersInput!
}

input AwsCloudWatchEventsCreateConnectionAuthParametersInput {
  BasicAuthParameters: AwsCloudWatchEventsCreateConnectionAuthParametersBasicAuthParametersInput
  OAuthParameters: AwsCloudWatchEventsCreateConnectionAuthParametersOAuthParametersInput
  ApiKeyAuthParameters: AwsCloudWatchEventsCreateConnectionAuthParametersApiKeyAuthParametersInput
  InvocationHttpParameters: AwsCloudWatchEventsS14Input
}

input AwsCloudWatchEventsCreateConnectionAuthParametersBasicAuthParametersInput {
  Username: String!
  Password: String!
}

input AwsCloudWatchEventsCreateConnectionAuthParametersOAuthParametersInput {
  ClientParameters: AwsCloudWatchEventsCreateConnectionAuthParametersOAuthParametersClientParametersInput!
  AuthorizationEndpoint: String!
  HttpMethod: String!
  OAuthHttpParameters: AwsCloudWatchEventsS14Input
}

input AwsCloudWatchEventsCreateConnectionAuthParametersOAuthParametersClientParametersInput {
  ClientID: String!
  ClientSecret: String!
}

input AwsCloudWatchEventsS14Input {
  HeaderParameters: [AwsCloudWatchEventsS14HeaderParametersInput]
  QueryStringParameters: [AwsCloudWatchEventsS14QueryStringParametersInput]
  BodyParameters: [AwsCloudWatchEventsS14BodyParametersInput]
}

input AwsCloudWatchEventsS14HeaderParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsCloudWatchEventsS14QueryStringParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsCloudWatchEventsS14BodyParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsCloudWatchEventsCreateConnectionAuthParametersApiKeyAuthParametersInput {
  ApiKeyName: String!
  ApiKeyValue: String!
}

type AwsCloudWatchEventsCreateEventBusOutput {
  EventBusArn: String
}

input AwsCloudWatchEventsCreateEventBusInput {
  Name: String!
  EventSourceName: String
  Tags: [AwsCloudWatchEventsS1mInput]
}

input AwsCloudWatchEventsS1mInput {
  Key: String!
  Value: String!
}

type AwsCloudWatchEventsCreatePartnerEventSourceOutput {
  EventSourceArn: String
}

input AwsCloudWatchEventsCreatePartnerEventSourceInput {
  Name: String!
  Account: String!
}

input AwsCloudWatchEventsDeactivateEventSourceInput {
  Name: String!
}

type AwsCloudWatchEventsDeauthorizeConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsCloudWatchEventsDeauthorizeConnectionInput {
  Name: String!
}

input AwsCloudWatchEventsDeleteApiDestinationInput {
  Name: String!
}

input AwsCloudWatchEventsDeleteArchiveInput {
  ArchiveName: String!
}

type AwsCloudWatchEventsDeleteConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsCloudWatchEventsDeleteConnectionInput {
  Name: String!
}

input AwsCloudWatchEventsDeleteEventBusInput {
  Name: String!
}

input AwsCloudWatchEventsDeletePartnerEventSourceInput {
  Name: String!
  Account: String!
}

input AwsCloudWatchEventsDeleteRuleInput {
  Name: String!
  EventBusName: String
  Force: Boolean
}

type AwsCloudWatchEventsDescribeApiDestinationOutput {
  ApiDestinationArn: String
  Name: String
  Description: String
  ApiDestinationState: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsCloudWatchEventsDescribeApiDestinationInput {
  Name: String!
}

type AwsCloudWatchEventsDescribeArchiveOutput {
  ArchiveArn: String
  ArchiveName: String
  EventSourceArn: String
  Description: String
  EventPattern: String
  State: String
  StateReason: String
  RetentionDays: Int
  SizeBytes: JSON
  EventCount: JSON
  CreationTime: Date
}

input AwsCloudWatchEventsDescribeArchiveInput {
  ArchiveName: String!
}

type AwsCloudWatchEventsDescribeConnectionOutput {
  ConnectionArn: String
  Name: String
  Description: String
  ConnectionState: String
  StateReason: String
  AuthorizationType: String
  SecretArn: String
  AuthParameters: AwsCloudWatchEventsDescribeConnectionOutputAuthParameters
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

type AwsCloudWatchEventsDescribeConnectionOutputAuthParameters {
  BasicAuthParameters: AwsCloudWatchEventsDescribeConnectionOutputAuthParametersBasicAuthParameters
  OAuthParameters: AwsCloudWatchEventsDescribeConnectionOutputAuthParametersOAuthParameters
  ApiKeyAuthParameters: AwsCloudWatchEventsDescribeConnectionOutputAuthParametersApiKeyAuthParameters
  InvocationHttpParameters: AwsCloudWatchEventsS14
}

type AwsCloudWatchEventsDescribeConnectionOutputAuthParametersBasicAuthParameters {
  Username: String
}

type AwsCloudWatchEventsDescribeConnectionOutputAuthParametersOAuthParameters {
  ClientParameters: AwsCloudWatchEventsDescribeConnectionOutputAuthParametersOAuthParametersClientParameters
  AuthorizationEndpoint: String
  HttpMethod: String
  OAuthHttpParameters: AwsCloudWatchEventsS14
}

type AwsCloudWatchEventsDescribeConnectionOutputAuthParametersOAuthParametersClientParameters {
  ClientID: String
}

type AwsCloudWatchEventsS14 {
  HeaderParameters: [AwsCloudWatchEventsS14HeaderParameters]
  QueryStringParameters: [AwsCloudWatchEventsS14QueryStringParameters]
  BodyParameters: [AwsCloudWatchEventsS14BodyParameters]
}

type AwsCloudWatchEventsS14HeaderParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsCloudWatchEventsS14QueryStringParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsCloudWatchEventsS14BodyParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsCloudWatchEventsDescribeConnectionOutputAuthParametersApiKeyAuthParameters {
  ApiKeyName: String
}

input AwsCloudWatchEventsDescribeConnectionInput {
  Name: String!
}

type AwsCloudWatchEventsDescribeEventBusOutput {
  Name: String
  Arn: String
  Policy: String
}

input AwsCloudWatchEventsDescribeEventBusInput {
  Name: String
}

type AwsCloudWatchEventsDescribeEventSourceOutput {
  Arn: String
  CreatedBy: String
  CreationTime: Date
  ExpirationTime: Date
  Name: String
  State: String
}

input AwsCloudWatchEventsDescribeEventSourceInput {
  Name: String!
}

type AwsCloudWatchEventsDescribePartnerEventSourceOutput {
  Arn: String
  Name: String
}

input AwsCloudWatchEventsDescribePartnerEventSourceInput {
  Name: String!
}

type AwsCloudWatchEventsDescribeReplayOutput {
  ReplayName: String
  ReplayArn: String
  Description: String
  State: String
  StateReason: String
  EventSourceArn: String
  Destination: AwsCloudWatchEventsS2w
  EventStartTime: Date
  EventEndTime: Date
  EventLastReplayedTime: Date
  ReplayStartTime: Date
  ReplayEndTime: Date
}

type AwsCloudWatchEventsS2w {
  Arn: String!
  FilterArns: [String]
}

input AwsCloudWatchEventsDescribeReplayInput {
  ReplayName: String!
}

type AwsCloudWatchEventsDescribeRuleOutput {
  Name: String
  Arn: String
  EventPattern: String
  ScheduleExpression: String
  State: String
  Description: String
  RoleArn: String
  ManagedBy: String
  EventBusName: String
  CreatedBy: String
}

input AwsCloudWatchEventsDescribeRuleInput {
  Name: String!
  EventBusName: String
}

input AwsCloudWatchEventsDisableRuleInput {
  Name: String!
  EventBusName: String
}

input AwsCloudWatchEventsEnableRuleInput {
  Name: String!
  EventBusName: String
}

type AwsCloudWatchEventsListApiDestinationsOutput {
  ApiDestinations: [AwsCloudWatchEventsListApiDestinationsOutputApiDestinations]
  NextToken: String
}

type AwsCloudWatchEventsListApiDestinationsOutputApiDestinations {
  ApiDestinationArn: String
  Name: String
  ApiDestinationState: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsCloudWatchEventsListApiDestinationsInput {
  NamePrefix: String
  ConnectionArn: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListArchivesOutput {
  Archives: [AwsCloudWatchEventsListArchivesOutputArchives]
  NextToken: String
}

type AwsCloudWatchEventsListArchivesOutputArchives {
  ArchiveName: String
  EventSourceArn: String
  State: String
  StateReason: String
  RetentionDays: Int
  SizeBytes: JSON
  EventCount: JSON
  CreationTime: Date
}

input AwsCloudWatchEventsListArchivesInput {
  NamePrefix: String
  EventSourceArn: String
  State: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListConnectionsOutput {
  Connections: [AwsCloudWatchEventsListConnectionsOutputConnections]
  NextToken: String
}

type AwsCloudWatchEventsListConnectionsOutputConnections {
  ConnectionArn: String
  Name: String
  ConnectionState: String
  StateReason: String
  AuthorizationType: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsCloudWatchEventsListConnectionsInput {
  NamePrefix: String
  ConnectionState: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListEventBusesOutput {
  EventBuses: [AwsCloudWatchEventsListEventBusesOutputEventBuses]
  NextToken: String
}

type AwsCloudWatchEventsListEventBusesOutputEventBuses {
  Name: String
  Arn: String
  Policy: String
}

input AwsCloudWatchEventsListEventBusesInput {
  NamePrefix: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListEventSourcesOutput {
  EventSources: [AwsCloudWatchEventsListEventSourcesOutputEventSources]
  NextToken: String
}

type AwsCloudWatchEventsListEventSourcesOutputEventSources {
  Arn: String
  CreatedBy: String
  CreationTime: Date
  ExpirationTime: Date
  Name: String
  State: String
}

input AwsCloudWatchEventsListEventSourcesInput {
  NamePrefix: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListPartnerEventSourceAccountsOutput {
  PartnerEventSourceAccounts: [AwsCloudWatchEventsListPartnerEventSourceAccountsOutputPartnerEventSourceAccounts]
  NextToken: String
}

type AwsCloudWatchEventsListPartnerEventSourceAccountsOutputPartnerEventSourceAccounts {
  Account: String
  CreationTime: Date
  ExpirationTime: Date
  State: String
}

input AwsCloudWatchEventsListPartnerEventSourceAccountsInput {
  EventSourceName: String!
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListPartnerEventSourcesOutput {
  PartnerEventSources: [AwsCloudWatchEventsListPartnerEventSourcesOutputPartnerEventSources]
  NextToken: String
}

type AwsCloudWatchEventsListPartnerEventSourcesOutputPartnerEventSources {
  Arn: String
  Name: String
}

input AwsCloudWatchEventsListPartnerEventSourcesInput {
  NamePrefix: String!
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListReplaysOutput {
  Replays: [AwsCloudWatchEventsListReplaysOutputReplays]
  NextToken: String
}

type AwsCloudWatchEventsListReplaysOutputReplays {
  ReplayName: String
  EventSourceArn: String
  State: String
  StateReason: String
  EventStartTime: Date
  EventEndTime: Date
  EventLastReplayedTime: Date
  ReplayStartTime: Date
  ReplayEndTime: Date
}

input AwsCloudWatchEventsListReplaysInput {
  NamePrefix: String
  State: String
  EventSourceArn: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListRuleNamesByTargetOutput {
  RuleNames: [String]
  NextToken: String
}

input AwsCloudWatchEventsListRuleNamesByTargetInput {
  TargetArn: String!
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListRulesOutput {
  Rules: [AwsCloudWatchEventsListRulesOutputRules]
  NextToken: String
}

type AwsCloudWatchEventsListRulesOutputRules {
  Name: String
  Arn: String
  EventPattern: String
  State: String
  Description: String
  ScheduleExpression: String
  RoleArn: String
  ManagedBy: String
  EventBusName: String
}

input AwsCloudWatchEventsListRulesInput {
  NamePrefix: String
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsListTagsForResourceOutput {
  Tags: [AwsCloudWatchEventsS1m]
}

type AwsCloudWatchEventsS1m {
  Key: String!
  Value: String!
}

input AwsCloudWatchEventsListTagsForResourceInput {
  ResourceARN: String!
}

type AwsCloudWatchEventsListTargetsByRuleOutput {
  Targets: [AwsCloudWatchEventsS4l]
  NextToken: String
}

type AwsCloudWatchEventsS4l {
  Id: String!
  Arn: String!
  RoleArn: String
  Input: String
  InputPath: String
  InputTransformer: AwsCloudWatchEventsS4lInputTransformer
  KinesisParameters: AwsCloudWatchEventsS4lKinesisParameters
  RunCommandParameters: AwsCloudWatchEventsS4lRunCommandParameters
  EcsParameters: AwsCloudWatchEventsS4lEcsParameters
  BatchParameters: AwsCloudWatchEventsS4lBatchParameters
  SqsParameters: AwsCloudWatchEventsS4lSqsParameters
  HttpParameters: AwsCloudWatchEventsS4lHttpParameters
  RedshiftDataParameters: AwsCloudWatchEventsS4lRedshiftDataParameters
  SageMakerPipelineParameters: AwsCloudWatchEventsS4lSageMakerPipelineParameters
  DeadLetterConfig: AwsCloudWatchEventsS4lDeadLetterConfig
  RetryPolicy: AwsCloudWatchEventsS4lRetryPolicy
}

type AwsCloudWatchEventsS4lInputTransformer {
  InputPathsMap: JSON
  InputTemplate: String!
}

type AwsCloudWatchEventsS4lKinesisParameters {
  PartitionKeyPath: String!
}

type AwsCloudWatchEventsS4lRunCommandParameters {
  RunCommandTargets: [AwsCloudWatchEventsS4lRunCommandParametersRunCommandTargets]!
}

type AwsCloudWatchEventsS4lRunCommandParametersRunCommandTargets {
  Key: String!
  Values: [String]!
}

type AwsCloudWatchEventsS4lEcsParameters {
  TaskDefinitionArn: String!
  TaskCount: Int
  LaunchType: String
  NetworkConfiguration: AwsCloudWatchEventsS4lEcsParametersNetworkConfiguration
  PlatformVersion: String
  Group: String
  CapacityProviderStrategy: [AwsCloudWatchEventsS4lEcsParametersCapacityProviderStrategy]
  EnableECSManagedTags: Boolean
  EnableExecuteCommand: Boolean
  PlacementConstraints: [AwsCloudWatchEventsS4lEcsParametersPlacementConstraints]
  PlacementStrategy: [AwsCloudWatchEventsS4lEcsParametersPlacementStrategy]
  PropagateTags: String
  ReferenceId: String
  Tags: [AwsCloudWatchEventsS1m]
}

type AwsCloudWatchEventsS4lEcsParametersNetworkConfiguration {
  awsvpcConfiguration: AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationAwsvpcConfiguration
}

type AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationAwsvpcConfiguration {
  Subnets: [String]!
  SecurityGroups: [String]
  AssignPublicIp: String
}

type AwsCloudWatchEventsS4lEcsParametersCapacityProviderStrategy {
  capacityProvider: String!
  weight: Int
  base: Int
}

type AwsCloudWatchEventsS4lEcsParametersPlacementConstraints {
  type: String
  expression: String
}

type AwsCloudWatchEventsS4lEcsParametersPlacementStrategy {
  type: String
  field: String
}

type AwsCloudWatchEventsS4lBatchParameters {
  JobDefinition: String!
  JobName: String!
  ArrayProperties: AwsCloudWatchEventsS4lBatchParametersArrayProperties
  RetryStrategy: AwsCloudWatchEventsS4lBatchParametersRetryStrategy
}

type AwsCloudWatchEventsS4lBatchParametersArrayProperties {
  Size: Int
}

type AwsCloudWatchEventsS4lBatchParametersRetryStrategy {
  Attempts: Int
}

type AwsCloudWatchEventsS4lSqsParameters {
  MessageGroupId: String
}

type AwsCloudWatchEventsS4lHttpParameters {
  PathParameterValues: [String]
  HeaderParameters: JSON
  QueryStringParameters: JSON
}

type AwsCloudWatchEventsS4lRedshiftDataParameters {
  SecretManagerArn: String
  Database: String!
  DbUser: String
  Sql: String!
  StatementName: String
  WithEvent: Boolean
}

type AwsCloudWatchEventsS4lSageMakerPipelineParameters {
  PipelineParameterList: [AwsCloudWatchEventsS4lSageMakerPipelineParametersPipelineParameterList]
}

type AwsCloudWatchEventsS4lSageMakerPipelineParametersPipelineParameterList {
  Name: String!
  Value: String!
}

type AwsCloudWatchEventsS4lDeadLetterConfig {
  Arn: String
}

type AwsCloudWatchEventsS4lRetryPolicy {
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
}

input AwsCloudWatchEventsListTargetsByRuleInput {
  Rule: String!
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsCloudWatchEventsPutEventsOutput {
  FailedEntryCount: Int
  Entries: [AwsCloudWatchEventsPutEventsOutputEntries]
}

type AwsCloudWatchEventsPutEventsOutputEntries {
  EventId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsCloudWatchEventsPutEventsInput {
  Entries: [AwsCloudWatchEventsPutEventsEntriesInput]!
}

input AwsCloudWatchEventsPutEventsEntriesInput {
  Time: Date
  Source: String
  Resources: [String]
  DetailType: String
  Detail: String
  EventBusName: String
  TraceHeader: String
}

type AwsCloudWatchEventsPutPartnerEventsOutput {
  FailedEntryCount: Int
  Entries: [AwsCloudWatchEventsPutPartnerEventsOutputEntries]
}

type AwsCloudWatchEventsPutPartnerEventsOutputEntries {
  EventId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsCloudWatchEventsPutPartnerEventsInput {
  Entries: [AwsCloudWatchEventsPutPartnerEventsEntriesInput]!
}

input AwsCloudWatchEventsPutPartnerEventsEntriesInput {
  Time: Date
  Source: String
  Resources: [String]
  DetailType: String
  Detail: String
}

input AwsCloudWatchEventsPutPermissionInput {
  EventBusName: String
  Action: String
  Principal: String
  StatementId: String
  Condition: AwsCloudWatchEventsPutPermissionConditionInput
  Policy: String
}

input AwsCloudWatchEventsPutPermissionConditionInput {
  Type: String!
  Key: String!
  Value: String!
}

type AwsCloudWatchEventsPutRuleOutput {
  RuleArn: String
}

input AwsCloudWatchEventsPutRuleInput {
  Name: String!
  ScheduleExpression: String
  EventPattern: String
  State: String
  Description: String
  RoleArn: String
  Tags: [AwsCloudWatchEventsS1mInput]
  EventBusName: String
}

type AwsCloudWatchEventsPutTargetsOutput {
  FailedEntryCount: Int
  FailedEntries: [AwsCloudWatchEventsPutTargetsOutputFailedEntries]
}

type AwsCloudWatchEventsPutTargetsOutputFailedEntries {
  TargetId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsCloudWatchEventsPutTargetsInput {
  Rule: String!
  EventBusName: String
  Targets: [AwsCloudWatchEventsS4lInput]!
}

input AwsCloudWatchEventsS4lInput {
  Id: String!
  Arn: String!
  RoleArn: String
  Input: String
  InputPath: String
  InputTransformer: AwsCloudWatchEventsS4lInputTransformerInput
  KinesisParameters: AwsCloudWatchEventsS4lKinesisParametersInput
  RunCommandParameters: AwsCloudWatchEventsS4lRunCommandParametersInput
  EcsParameters: AwsCloudWatchEventsS4lEcsParametersInput
  BatchParameters: AwsCloudWatchEventsS4lBatchParametersInput
  SqsParameters: AwsCloudWatchEventsS4lSqsParametersInput
  HttpParameters: AwsCloudWatchEventsS4lHttpParametersInput
  RedshiftDataParameters: AwsCloudWatchEventsS4lRedshiftDataParametersInput
  SageMakerPipelineParameters: AwsCloudWatchEventsS4lSageMakerPipelineParametersInput
  DeadLetterConfig: AwsCloudWatchEventsS4lDeadLetterConfigInput
  RetryPolicy: AwsCloudWatchEventsS4lRetryPolicyInput
}

input AwsCloudWatchEventsS4lInputTransformerInput {
  InputPathsMap: JSON
  InputTemplate: String!
}

input AwsCloudWatchEventsS4lKinesisParametersInput {
  PartitionKeyPath: String!
}

input AwsCloudWatchEventsS4lRunCommandParametersInput {
  RunCommandTargets: [AwsCloudWatchEventsS4lRunCommandParametersRunCommandTargetsInput]!
}

input AwsCloudWatchEventsS4lRunCommandParametersRunCommandTargetsInput {
  Key: String!
  Values: [String]!
}

input AwsCloudWatchEventsS4lEcsParametersInput {
  TaskDefinitionArn: String!
  TaskCount: Int
  LaunchType: String
  NetworkConfiguration: AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationInput
  PlatformVersion: String
  Group: String
  CapacityProviderStrategy: [AwsCloudWatchEventsS4lEcsParametersCapacityProviderStrategyInput]
  EnableECSManagedTags: Boolean
  EnableExecuteCommand: Boolean
  PlacementConstraints: [AwsCloudWatchEventsS4lEcsParametersPlacementConstraintsInput]
  PlacementStrategy: [AwsCloudWatchEventsS4lEcsParametersPlacementStrategyInput]
  PropagateTags: String
  ReferenceId: String
  Tags: [AwsCloudWatchEventsS1mInput]
}

input AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationInput {
  awsvpcConfiguration: AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationAwsvpcConfigurationInput
}

input AwsCloudWatchEventsS4lEcsParametersNetworkConfigurationAwsvpcConfigurationInput {
  Subnets: [String]!
  SecurityGroups: [String]
  AssignPublicIp: String
}

input AwsCloudWatchEventsS4lEcsParametersCapacityProviderStrategyInput {
  capacityProvider: String!
  weight: Int
  base: Int
}

input AwsCloudWatchEventsS4lEcsParametersPlacementConstraintsInput {
  type: String
  expression: String
}

input AwsCloudWatchEventsS4lEcsParametersPlacementStrategyInput {
  type: String
  field: String
}

input AwsCloudWatchEventsS4lBatchParametersInput {
  JobDefinition: String!
  JobName: String!
  ArrayProperties: AwsCloudWatchEventsS4lBatchParametersArrayPropertiesInput
  RetryStrategy: AwsCloudWatchEventsS4lBatchParametersRetryStrategyInput
}

input AwsCloudWatchEventsS4lBatchParametersArrayPropertiesInput {
  Size: Int
}

input AwsCloudWatchEventsS4lBatchParametersRetryStrategyInput {
  Attempts: Int
}

input AwsCloudWatchEventsS4lSqsParametersInput {
  MessageGroupId: String
}

input AwsCloudWatchEventsS4lHttpParametersInput {
  PathParameterValues: [String]
  HeaderParameters: JSON
  QueryStringParameters: JSON
}

input AwsCloudWatchEventsS4lRedshiftDataParametersInput {
  SecretManagerArn: String
  Database: String!
  DbUser: String
  Sql: String!
  StatementName: String
  WithEvent: Boolean
}

input AwsCloudWatchEventsS4lSageMakerPipelineParametersInput {
  PipelineParameterList: [AwsCloudWatchEventsS4lSageMakerPipelineParametersPipelineParameterListInput]
}

input AwsCloudWatchEventsS4lSageMakerPipelineParametersPipelineParameterListInput {
  Name: String!
  Value: String!
}

input AwsCloudWatchEventsS4lDeadLetterConfigInput {
  Arn: String
}

input AwsCloudWatchEventsS4lRetryPolicyInput {
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
}

input AwsCloudWatchEventsRemovePermissionInput {
  StatementId: String
  RemoveAllPermissions: Boolean
  EventBusName: String
}

type AwsCloudWatchEventsRemoveTargetsOutput {
  FailedEntryCount: Int
  FailedEntries: [AwsCloudWatchEventsRemoveTargetsOutputFailedEntries]
}

type AwsCloudWatchEventsRemoveTargetsOutputFailedEntries {
  TargetId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsCloudWatchEventsRemoveTargetsInput {
  Rule: String!
  EventBusName: String
  Ids: [String]!
  Force: Boolean
}

type AwsCloudWatchEventsStartReplayOutput {
  ReplayArn: String
  State: String
  StateReason: String
  ReplayStartTime: Date
}

input AwsCloudWatchEventsStartReplayInput {
  ReplayName: String!
  Description: String
  EventSourceArn: String!
  EventStartTime: Date!
  EventEndTime: Date!
  Destination: AwsCloudWatchEventsS2wInput!
}

input AwsCloudWatchEventsS2wInput {
  Arn: String!
  FilterArns: [String]
}

input AwsCloudWatchEventsTagResourceInput {
  ResourceARN: String!
  Tags: [AwsCloudWatchEventsS1mInput]!
}

type AwsCloudWatchEventsTestEventPatternOutput {
  Result: Boolean
}

input AwsCloudWatchEventsTestEventPatternInput {
  EventPattern: String!
  Event: String!
}

input AwsCloudWatchEventsUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsCloudWatchEventsUpdateApiDestinationOutput {
  ApiDestinationArn: String
  ApiDestinationState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsCloudWatchEventsUpdateApiDestinationInput {
  Name: String!
  Description: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
}

type AwsCloudWatchEventsUpdateArchiveOutput {
  ArchiveArn: String
  State: String
  StateReason: String
  CreationTime: Date
}

input AwsCloudWatchEventsUpdateArchiveInput {
  ArchiveName: String!
  Description: String
  EventPattern: String
  RetentionDays: Int
}

type AwsCloudWatchEventsUpdateConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsCloudWatchEventsUpdateConnectionInput {
  Name: String!
  Description: String
  AuthorizationType: String
  AuthParameters: AwsCloudWatchEventsUpdateConnectionAuthParametersInput
}

input AwsCloudWatchEventsUpdateConnectionAuthParametersInput {
  BasicAuthParameters: AwsCloudWatchEventsUpdateConnectionAuthParametersBasicAuthParametersInput
  OAuthParameters: AwsCloudWatchEventsUpdateConnectionAuthParametersOAuthParametersInput
  ApiKeyAuthParameters: AwsCloudWatchEventsUpdateConnectionAuthParametersApiKeyAuthParametersInput
  InvocationHttpParameters: AwsCloudWatchEventsS14Input
}

input AwsCloudWatchEventsUpdateConnectionAuthParametersBasicAuthParametersInput {
  Username: String
  Password: String
}

input AwsCloudWatchEventsUpdateConnectionAuthParametersOAuthParametersInput {
  ClientParameters: AwsCloudWatchEventsUpdateConnectionAuthParametersOAuthParametersClientParametersInput
  AuthorizationEndpoint: String
  HttpMethod: String
  OAuthHttpParameters: AwsCloudWatchEventsS14Input
}

input AwsCloudWatchEventsUpdateConnectionAuthParametersOAuthParametersClientParametersInput {
  ClientID: String
  ClientSecret: String
}

input AwsCloudWatchEventsUpdateConnectionAuthParametersApiKeyAuthParametersInput {
  ApiKeyName: String
  ApiKeyValue: String
}

"""Amazon CloudWatch Logs (2014-03-28)"""
type AwsCloudWatchLogs {
  associateKmsKey(input: AwsCloudWatchLogsAssociateKmsKeyInput!, config: AwsConfig): JSON
  cancelExportTask(input: AwsCloudWatchLogsCancelExportTaskInput!, config: AwsConfig): JSON
  createExportTask(input: AwsCloudWatchLogsCreateExportTaskInput!, config: AwsConfig): AwsCloudWatchLogsCreateExportTaskOutput
  createLogGroup(input: AwsCloudWatchLogsCreateLogGroupInput!, config: AwsConfig): JSON
  createLogStream(input: AwsCloudWatchLogsCreateLogStreamInput!, config: AwsConfig): JSON
  deleteDestination(input: AwsCloudWatchLogsDeleteDestinationInput!, config: AwsConfig): JSON
  deleteLogGroup(input: AwsCloudWatchLogsDeleteLogGroupInput!, config: AwsConfig): JSON
  deleteLogStream(input: AwsCloudWatchLogsDeleteLogStreamInput!, config: AwsConfig): JSON
  deleteMetricFilter(input: AwsCloudWatchLogsDeleteMetricFilterInput!, config: AwsConfig): JSON
  deleteQueryDefinition(input: AwsCloudWatchLogsDeleteQueryDefinitionInput!, config: AwsConfig): AwsCloudWatchLogsDeleteQueryDefinitionOutput
  deleteResourcePolicy(input: AwsCloudWatchLogsDeleteResourcePolicyInput, config: AwsConfig): JSON
  deleteRetentionPolicy(input: AwsCloudWatchLogsDeleteRetentionPolicyInput!, config: AwsConfig): JSON
  deleteSubscriptionFilter(input: AwsCloudWatchLogsDeleteSubscriptionFilterInput!, config: AwsConfig): JSON
  describeDestinations(input: AwsCloudWatchLogsDescribeDestinationsInput, config: AwsConfig): AwsCloudWatchLogsDescribeDestinationsOutput
  describeExportTasks(input: AwsCloudWatchLogsDescribeExportTasksInput, config: AwsConfig): AwsCloudWatchLogsDescribeExportTasksOutput
  describeLogGroups(input: AwsCloudWatchLogsDescribeLogGroupsInput, config: AwsConfig): AwsCloudWatchLogsDescribeLogGroupsOutput
  describeLogStreams(input: AwsCloudWatchLogsDescribeLogStreamsInput!, config: AwsConfig): AwsCloudWatchLogsDescribeLogStreamsOutput
  describeMetricFilters(input: AwsCloudWatchLogsDescribeMetricFiltersInput, config: AwsConfig): AwsCloudWatchLogsDescribeMetricFiltersOutput
  describeQueries(input: AwsCloudWatchLogsDescribeQueriesInput, config: AwsConfig): AwsCloudWatchLogsDescribeQueriesOutput
  describeQueryDefinitions(input: AwsCloudWatchLogsDescribeQueryDefinitionsInput, config: AwsConfig): AwsCloudWatchLogsDescribeQueryDefinitionsOutput
  describeResourcePolicies(input: AwsCloudWatchLogsDescribeResourcePoliciesInput, config: AwsConfig): AwsCloudWatchLogsDescribeResourcePoliciesOutput
  describeSubscriptionFilters(input: AwsCloudWatchLogsDescribeSubscriptionFiltersInput!, config: AwsConfig): AwsCloudWatchLogsDescribeSubscriptionFiltersOutput
  disassociateKmsKey(input: AwsCloudWatchLogsDisassociateKmsKeyInput!, config: AwsConfig): JSON
  filterLogEvents(input: AwsCloudWatchLogsFilterLogEventsInput!, config: AwsConfig): AwsCloudWatchLogsFilterLogEventsOutput
  getLogEvents(input: AwsCloudWatchLogsGetLogEventsInput!, config: AwsConfig): AwsCloudWatchLogsGetLogEventsOutput
  getLogGroupFields(input: AwsCloudWatchLogsGetLogGroupFieldsInput!, config: AwsConfig): AwsCloudWatchLogsGetLogGroupFieldsOutput
  getLogRecord(input: AwsCloudWatchLogsGetLogRecordInput!, config: AwsConfig): AwsCloudWatchLogsGetLogRecordOutput
  getQueryResults(input: AwsCloudWatchLogsGetQueryResultsInput!, config: AwsConfig): AwsCloudWatchLogsGetQueryResultsOutput
  listTagsLogGroup(input: AwsCloudWatchLogsListTagsLogGroupInput!, config: AwsConfig): AwsCloudWatchLogsListTagsLogGroupOutput
  putDestination(input: AwsCloudWatchLogsPutDestinationInput!, config: AwsConfig): AwsCloudWatchLogsPutDestinationOutput
  putDestinationPolicy(input: AwsCloudWatchLogsPutDestinationPolicyInput!, config: AwsConfig): JSON
  putLogEvents(input: AwsCloudWatchLogsPutLogEventsInput!, config: AwsConfig): AwsCloudWatchLogsPutLogEventsOutput
  putMetricFilter(input: AwsCloudWatchLogsPutMetricFilterInput!, config: AwsConfig): JSON
  putQueryDefinition(input: AwsCloudWatchLogsPutQueryDefinitionInput!, config: AwsConfig): AwsCloudWatchLogsPutQueryDefinitionOutput
  putResourcePolicy(input: AwsCloudWatchLogsPutResourcePolicyInput, config: AwsConfig): AwsCloudWatchLogsPutResourcePolicyOutput
  putRetentionPolicy(input: AwsCloudWatchLogsPutRetentionPolicyInput!, config: AwsConfig): JSON
  putSubscriptionFilter(input: AwsCloudWatchLogsPutSubscriptionFilterInput!, config: AwsConfig): JSON
  startQuery(input: AwsCloudWatchLogsStartQueryInput!, config: AwsConfig): AwsCloudWatchLogsStartQueryOutput
  stopQuery(input: AwsCloudWatchLogsStopQueryInput!, config: AwsConfig): AwsCloudWatchLogsStopQueryOutput
  tagLogGroup(input: AwsCloudWatchLogsTagLogGroupInput!, config: AwsConfig): JSON
  testMetricFilter(input: AwsCloudWatchLogsTestMetricFilterInput!, config: AwsConfig): AwsCloudWatchLogsTestMetricFilterOutput
  untagLogGroup(input: AwsCloudWatchLogsUntagLogGroupInput!, config: AwsConfig): JSON
}

input AwsCloudWatchLogsAssociateKmsKeyInput {
  logGroupName: String!
  kmsKeyId: String!
}

input AwsCloudWatchLogsCancelExportTaskInput {
  taskId: String!
}

type AwsCloudWatchLogsCreateExportTaskOutput {
  taskId: String
}

input AwsCloudWatchLogsCreateExportTaskInput {
  taskName: String
  logGroupName: String!
  logStreamNamePrefix: String
  from: JSON!
  to: JSON!
  destination: String!
  destinationPrefix: String
}

input AwsCloudWatchLogsCreateLogGroupInput {
  logGroupName: String!
  kmsKeyId: String
  tags: JSON
}

input AwsCloudWatchLogsCreateLogStreamInput {
  logGroupName: String!
  logStreamName: String!
}

input AwsCloudWatchLogsDeleteDestinationInput {
  destinationName: String!
}

input AwsCloudWatchLogsDeleteLogGroupInput {
  logGroupName: String!
}

input AwsCloudWatchLogsDeleteLogStreamInput {
  logGroupName: String!
  logStreamName: String!
}

input AwsCloudWatchLogsDeleteMetricFilterInput {
  logGroupName: String!
  filterName: String!
}

type AwsCloudWatchLogsDeleteQueryDefinitionOutput {
  success: Boolean
}

input AwsCloudWatchLogsDeleteQueryDefinitionInput {
  queryDefinitionId: String!
}

input AwsCloudWatchLogsDeleteResourcePolicyInput {
  policyName: String
}

input AwsCloudWatchLogsDeleteRetentionPolicyInput {
  logGroupName: String!
}

input AwsCloudWatchLogsDeleteSubscriptionFilterInput {
  logGroupName: String!
  filterName: String!
}

type AwsCloudWatchLogsDescribeDestinationsOutput {
  destinations: [AwsCloudWatchLogsS11]
  nextToken: String
}

type AwsCloudWatchLogsS11 {
  destinationName: String
  targetArn: String
  roleArn: String
  accessPolicy: String
  arn: String
  creationTime: JSON
}

input AwsCloudWatchLogsDescribeDestinationsInput {
  DestinationNamePrefix: String
  nextToken: String
  limit: Int
}

type AwsCloudWatchLogsDescribeExportTasksOutput {
  exportTasks: [AwsCloudWatchLogsDescribeExportTasksOutputExportTasks]
  nextToken: String
}

type AwsCloudWatchLogsDescribeExportTasksOutputExportTasks {
  taskId: String
  taskName: String
  logGroupName: String
  from: JSON
  to: JSON
  destination: String
  destinationPrefix: String
  status: AwsCloudWatchLogsDescribeExportTasksOutputExportTasksStatus
  executionInfo: AwsCloudWatchLogsDescribeExportTasksOutputExportTasksExecutionInfo
}

type AwsCloudWatchLogsDescribeExportTasksOutputExportTasksStatus {
  code: String
  message: String
}

type AwsCloudWatchLogsDescribeExportTasksOutputExportTasksExecutionInfo {
  creationTime: JSON
  completionTime: JSON
}

input AwsCloudWatchLogsDescribeExportTasksInput {
  taskId: String
  statusCode: String
  nextToken: String
  limit: Int
}

type AwsCloudWatchLogsDescribeLogGroupsOutput {
  logGroups: [AwsCloudWatchLogsDescribeLogGroupsOutputLogGroups]
  nextToken: String
}

type AwsCloudWatchLogsDescribeLogGroupsOutputLogGroups {
  logGroupName: String
  creationTime: JSON
  retentionInDays: Int
  metricFilterCount: Int
  arn: String
  storedBytes: JSON
  kmsKeyId: String
}

input AwsCloudWatchLogsDescribeLogGroupsInput {
  logGroupNamePrefix: String
  nextToken: String
  limit: Int
}

type AwsCloudWatchLogsDescribeLogStreamsOutput {
  logStreams: [AwsCloudWatchLogsDescribeLogStreamsOutputLogStreams]
  nextToken: String
}

type AwsCloudWatchLogsDescribeLogStreamsOutputLogStreams {
  logStreamName: String
  creationTime: JSON
  firstEventTimestamp: JSON
  lastEventTimestamp: JSON
  lastIngestionTime: JSON
  uploadSequenceToken: String
  arn: String
  storedBytes: JSON
}

input AwsCloudWatchLogsDescribeLogStreamsInput {
  logGroupName: String!
  logStreamNamePrefix: String
  orderBy: String
  descending: Boolean
  nextToken: String
  limit: Int
}

type AwsCloudWatchLogsDescribeMetricFiltersOutput {
  metricFilters: [AwsCloudWatchLogsDescribeMetricFiltersOutputMetricFilters]
  nextToken: String
}

type AwsCloudWatchLogsDescribeMetricFiltersOutputMetricFilters {
  filterName: String
  filterPattern: String
  metricTransformations: [AwsCloudWatchLogsS1z]
  creationTime: JSON
  logGroupName: String
}

type AwsCloudWatchLogsS1z {
  metricName: String!
  metricNamespace: String!
  metricValue: String!
  defaultValue: JSON
  dimensions: JSON
  unit: String
}

input AwsCloudWatchLogsDescribeMetricFiltersInput {
  logGroupName: String
  filterNamePrefix: String
  nextToken: String
  limit: Int
  metricName: String
  metricNamespace: String
}

type AwsCloudWatchLogsDescribeQueriesOutput {
  queries: [AwsCloudWatchLogsDescribeQueriesOutputQueries]
  nextToken: String
}

type AwsCloudWatchLogsDescribeQueriesOutputQueries {
  queryId: String
  queryString: String
  status: String
  createTime: JSON
  logGroupName: String
}

input AwsCloudWatchLogsDescribeQueriesInput {
  logGroupName: String
  status: String
  maxResults: Int
  nextToken: String
}

type AwsCloudWatchLogsDescribeQueryDefinitionsOutput {
  queryDefinitions: [AwsCloudWatchLogsDescribeQueryDefinitionsOutputQueryDefinitions]
  nextToken: String
}

type AwsCloudWatchLogsDescribeQueryDefinitionsOutputQueryDefinitions {
  queryDefinitionId: String
  name: String
  queryString: String
  lastModified: JSON
  logGroupNames: [String]
}

input AwsCloudWatchLogsDescribeQueryDefinitionsInput {
  queryDefinitionNamePrefix: String
  maxResults: Int
  nextToken: String
}

type AwsCloudWatchLogsDescribeResourcePoliciesOutput {
  resourcePolicies: [AwsCloudWatchLogsS2p]
  nextToken: String
}

type AwsCloudWatchLogsS2p {
  policyName: String
  policyDocument: String
  lastUpdatedTime: JSON
}

input AwsCloudWatchLogsDescribeResourcePoliciesInput {
  nextToken: String
  limit: Int
}

type AwsCloudWatchLogsDescribeSubscriptionFiltersOutput {
  subscriptionFilters: [AwsCloudWatchLogsDescribeSubscriptionFiltersOutputSubscriptionFilters]
  nextToken: String
}

type AwsCloudWatchLogsDescribeSubscriptionFiltersOutputSubscriptionFilters {
  filterName: String
  logGroupName: String
  filterPattern: String
  destinationArn: String
  roleArn: String
  distribution: String
  creationTime: JSON
}

input AwsCloudWatchLogsDescribeSubscriptionFiltersInput {
  logGroupName: String!
  filterNamePrefix: String
  nextToken: String
  limit: Int
}

input AwsCloudWatchLogsDisassociateKmsKeyInput {
  logGroupName: String!
}

type AwsCloudWatchLogsFilterLogEventsOutput {
  events: [AwsCloudWatchLogsFilterLogEventsOutputEvents]
  searchedLogStreams: [AwsCloudWatchLogsFilterLogEventsOutputSearchedLogStreams]
  nextToken: String
}

type AwsCloudWatchLogsFilterLogEventsOutputEvents {
  logStreamName: String
  timestamp: JSON
  message: String
  ingestionTime: JSON
  eventId: String
}

type AwsCloudWatchLogsFilterLogEventsOutputSearchedLogStreams {
  logStreamName: String
  searchedCompletely: Boolean
}

input AwsCloudWatchLogsFilterLogEventsInput {
  logGroupName: String!
  logStreamNames: [String]
  logStreamNamePrefix: String
  startTime: JSON
  endTime: JSON
  filterPattern: String
  nextToken: String
  limit: Int
  interleaved: Boolean
}

type AwsCloudWatchLogsGetLogEventsOutput {
  events: [AwsCloudWatchLogsGetLogEventsOutputEvents]
  nextForwardToken: String
  nextBackwardToken: String
}

type AwsCloudWatchLogsGetLogEventsOutputEvents {
  timestamp: JSON
  message: String
  ingestionTime: JSON
}

input AwsCloudWatchLogsGetLogEventsInput {
  logGroupName: String!
  logStreamName: String!
  startTime: JSON
  endTime: JSON
  nextToken: String
  limit: Int
  startFromHead: Boolean
}

type AwsCloudWatchLogsGetLogGroupFieldsOutput {
  logGroupFields: [AwsCloudWatchLogsGetLogGroupFieldsOutputLogGroupFields]
}

type AwsCloudWatchLogsGetLogGroupFieldsOutputLogGroupFields {
  name: String
  percent: Int
}

input AwsCloudWatchLogsGetLogGroupFieldsInput {
  logGroupName: String!
  time: JSON
}

type AwsCloudWatchLogsGetLogRecordOutput {
  logRecord: JSON
}

input AwsCloudWatchLogsGetLogRecordInput {
  logRecordPointer: String!
}

type AwsCloudWatchLogsGetQueryResultsOutput {
  results: [[AwsCloudWatchLogsGetQueryResultsOutputResults]]
  statistics: AwsCloudWatchLogsGetQueryResultsOutputStatistics
  status: String
}

type AwsCloudWatchLogsGetQueryResultsOutputResults {
  field: String
  value: String
}

type AwsCloudWatchLogsGetQueryResultsOutputStatistics {
  recordsMatched: JSON
  recordsScanned: JSON
  bytesScanned: JSON
}

input AwsCloudWatchLogsGetQueryResultsInput {
  queryId: String!
}

type AwsCloudWatchLogsListTagsLogGroupOutput {
  tags: JSON
}

input AwsCloudWatchLogsListTagsLogGroupInput {
  logGroupName: String!
}

type AwsCloudWatchLogsPutDestinationOutput {
  destination: AwsCloudWatchLogsS11
}

input AwsCloudWatchLogsPutDestinationInput {
  destinationName: String!
  targetArn: String!
  roleArn: String!
}

input AwsCloudWatchLogsPutDestinationPolicyInput {
  destinationName: String!
  accessPolicy: String!
}

type AwsCloudWatchLogsPutLogEventsOutput {
  nextSequenceToken: String
  rejectedLogEventsInfo: AwsCloudWatchLogsPutLogEventsOutputRejectedLogEventsInfo
}

type AwsCloudWatchLogsPutLogEventsOutputRejectedLogEventsInfo {
  tooNewLogEventStartIndex: Int
  tooOldLogEventEndIndex: Int
  expiredLogEventEndIndex: Int
}

input AwsCloudWatchLogsPutLogEventsInput {
  logGroupName: String!
  logStreamName: String!
  logEvents: [AwsCloudWatchLogsPutLogEventsLogEventsInput]!
  sequenceToken: String
}

input AwsCloudWatchLogsPutLogEventsLogEventsInput {
  timestamp: JSON!
  message: String!
}

input AwsCloudWatchLogsPutMetricFilterInput {
  logGroupName: String!
  filterName: String!
  filterPattern: String!
  metricTransformations: [AwsCloudWatchLogsS1zInput]!
}

input AwsCloudWatchLogsS1zInput {
  metricName: String!
  metricNamespace: String!
  metricValue: String!
  defaultValue: JSON
  dimensions: JSON
  unit: String
}

type AwsCloudWatchLogsPutQueryDefinitionOutput {
  queryDefinitionId: String
}

input AwsCloudWatchLogsPutQueryDefinitionInput {
  name: String!
  queryDefinitionId: String
  logGroupNames: [String]
  queryString: String!
}

type AwsCloudWatchLogsPutResourcePolicyOutput {
  resourcePolicy: AwsCloudWatchLogsS2p
}

input AwsCloudWatchLogsPutResourcePolicyInput {
  policyName: String
  policyDocument: String
}

input AwsCloudWatchLogsPutRetentionPolicyInput {
  logGroupName: String!
  retentionInDays: Int!
}

input AwsCloudWatchLogsPutSubscriptionFilterInput {
  logGroupName: String!
  filterName: String!
  filterPattern: String!
  destinationArn: String!
  roleArn: String
  distribution: String
}

type AwsCloudWatchLogsStartQueryOutput {
  queryId: String
}

input AwsCloudWatchLogsStartQueryInput {
  logGroupName: String
  logGroupNames: [String]
  startTime: JSON!
  endTime: JSON!
  queryString: String!
  limit: Int
}

type AwsCloudWatchLogsStopQueryOutput {
  success: Boolean
}

input AwsCloudWatchLogsStopQueryInput {
  queryId: String!
}

input AwsCloudWatchLogsTagLogGroupInput {
  logGroupName: String!
  tags: JSON!
}

type AwsCloudWatchLogsTestMetricFilterOutput {
  matches: [AwsCloudWatchLogsTestMetricFilterOutputMatches]
}

type AwsCloudWatchLogsTestMetricFilterOutputMatches {
  eventNumber: JSON
  eventMessage: String
  extractedValues: JSON
}

input AwsCloudWatchLogsTestMetricFilterInput {
  filterPattern: String!
  logEventMessages: [String]!
}

input AwsCloudWatchLogsUntagLogGroupInput {
  logGroupName: String!
  tags: [String]!
}

"""CodeArtifact (2018-09-22)"""
type AwsCodeArtifact {
  associateExternalConnection(input: AwsCodeArtifactAssociateExternalConnectionInput!, config: AwsConfig): AwsCodeArtifactAssociateExternalConnectionOutput
  copyPackageVersions(input: AwsCodeArtifactCopyPackageVersionsInput!, config: AwsConfig): AwsCodeArtifactCopyPackageVersionsOutput
  createDomain(input: AwsCodeArtifactCreateDomainInput!, config: AwsConfig): AwsCodeArtifactCreateDomainOutput
  createRepository(input: AwsCodeArtifactCreateRepositoryInput!, config: AwsConfig): AwsCodeArtifactCreateRepositoryOutput
  deleteDomain(input: AwsCodeArtifactDeleteDomainInput!, config: AwsConfig): AwsCodeArtifactDeleteDomainOutput
  deleteDomainPermissionsPolicy(input: AwsCodeArtifactDeleteDomainPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactDeleteDomainPermissionsPolicyOutput
  deletePackageVersions(input: AwsCodeArtifactDeletePackageVersionsInput!, config: AwsConfig): AwsCodeArtifactDeletePackageVersionsOutput
  deleteRepository(input: AwsCodeArtifactDeleteRepositoryInput!, config: AwsConfig): AwsCodeArtifactDeleteRepositoryOutput
  deleteRepositoryPermissionsPolicy(input: AwsCodeArtifactDeleteRepositoryPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactDeleteRepositoryPermissionsPolicyOutput
  describeDomain(input: AwsCodeArtifactDescribeDomainInput!, config: AwsConfig): AwsCodeArtifactDescribeDomainOutput
  describePackageVersion(input: AwsCodeArtifactDescribePackageVersionInput!, config: AwsConfig): AwsCodeArtifactDescribePackageVersionOutput
  describeRepository(input: AwsCodeArtifactDescribeRepositoryInput!, config: AwsConfig): AwsCodeArtifactDescribeRepositoryOutput
  disassociateExternalConnection(input: AwsCodeArtifactDisassociateExternalConnectionInput!, config: AwsConfig): AwsCodeArtifactDisassociateExternalConnectionOutput
  disposePackageVersions(input: AwsCodeArtifactDisposePackageVersionsInput!, config: AwsConfig): AwsCodeArtifactDisposePackageVersionsOutput
  getAuthorizationToken(input: AwsCodeArtifactGetAuthorizationTokenInput!, config: AwsConfig): AwsCodeArtifactGetAuthorizationTokenOutput
  getDomainPermissionsPolicy(input: AwsCodeArtifactGetDomainPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactGetDomainPermissionsPolicyOutput
  getPackageVersionAsset(input: AwsCodeArtifactGetPackageVersionAssetInput!, config: AwsConfig): AwsCodeArtifactGetPackageVersionAssetOutput
  getPackageVersionReadme(input: AwsCodeArtifactGetPackageVersionReadmeInput!, config: AwsConfig): AwsCodeArtifactGetPackageVersionReadmeOutput
  getRepositoryEndpoint(input: AwsCodeArtifactGetRepositoryEndpointInput!, config: AwsConfig): AwsCodeArtifactGetRepositoryEndpointOutput
  getRepositoryPermissionsPolicy(input: AwsCodeArtifactGetRepositoryPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactGetRepositoryPermissionsPolicyOutput
  listDomains(input: AwsCodeArtifactListDomainsInput, config: AwsConfig): AwsCodeArtifactListDomainsOutput
  listPackageVersionAssets(input: AwsCodeArtifactListPackageVersionAssetsInput!, config: AwsConfig): AwsCodeArtifactListPackageVersionAssetsOutput
  listPackageVersionDependencies(input: AwsCodeArtifactListPackageVersionDependenciesInput!, config: AwsConfig): AwsCodeArtifactListPackageVersionDependenciesOutput
  listPackageVersions(input: AwsCodeArtifactListPackageVersionsInput!, config: AwsConfig): AwsCodeArtifactListPackageVersionsOutput
  listPackages(input: AwsCodeArtifactListPackagesInput!, config: AwsConfig): AwsCodeArtifactListPackagesOutput
  listRepositories(input: AwsCodeArtifactListRepositoriesInput, config: AwsConfig): AwsCodeArtifactListRepositoriesOutput
  listRepositoriesInDomain(input: AwsCodeArtifactListRepositoriesInDomainInput!, config: AwsConfig): AwsCodeArtifactListRepositoriesInDomainOutput
  listTagsForResource(input: AwsCodeArtifactListTagsForResourceInput!, config: AwsConfig): AwsCodeArtifactListTagsForResourceOutput
  putDomainPermissionsPolicy(input: AwsCodeArtifactPutDomainPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactPutDomainPermissionsPolicyOutput
  putRepositoryPermissionsPolicy(input: AwsCodeArtifactPutRepositoryPermissionsPolicyInput!, config: AwsConfig): AwsCodeArtifactPutRepositoryPermissionsPolicyOutput
  tagResource(input: AwsCodeArtifactTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodeArtifactUntagResourceInput!, config: AwsConfig): JSON
  updatePackageVersionsStatus(input: AwsCodeArtifactUpdatePackageVersionsStatusInput!, config: AwsConfig): AwsCodeArtifactUpdatePackageVersionsStatusOutput
  updateRepository(input: AwsCodeArtifactUpdateRepositoryInput!, config: AwsConfig): AwsCodeArtifactUpdateRepositoryOutput
}

type AwsCodeArtifactAssociateExternalConnectionOutput {
  repository: AwsCodeArtifactS7
}

type AwsCodeArtifactS7 {
  name: String
  administratorAccount: String
  domainName: String
  domainOwner: String
  arn: String
  description: String
  upstreams: [AwsCodeArtifactS7Upstreams]
  externalConnections: [AwsCodeArtifactS7ExternalConnections]
}

type AwsCodeArtifactS7Upstreams {
  repositoryName: String
}

type AwsCodeArtifactS7ExternalConnections {
  externalConnectionName: String
  packageFormat: String
  status: String
}

input AwsCodeArtifactAssociateExternalConnectionInput {
  domain: String!
  domainOwner: String
  repository: String!
  externalConnection: String!
}

type AwsCodeArtifactCopyPackageVersionsOutput {
  successfulVersions: JSON
  failedVersions: JSON
}

input AwsCodeArtifactCopyPackageVersionsInput {
  domain: String!
  domainOwner: String
  sourceRepository: String!
  destinationRepository: String!
  format: String!
  namespace: String
  package: String!
  versions: [String]
  versionRevisions: JSON
  allowOverwrite: Boolean
  includeFromUpstream: Boolean
}

type AwsCodeArtifactCreateDomainOutput {
  domain: AwsCodeArtifactS13
}

type AwsCodeArtifactS13 {
  name: String
  owner: String
  arn: String
  status: String
  createdTime: Date
  encryptionKey: String
  repositoryCount: Int
  assetSizeBytes: JSON
  s3BucketArn: String
}

input AwsCodeArtifactCreateDomainInput {
  domain: String!
  encryptionKey: String
  tags: [AwsCodeArtifactSyInput]
}

input AwsCodeArtifactSyInput {
  key: String!
  value: String!
}

type AwsCodeArtifactCreateRepositoryOutput {
  repository: AwsCodeArtifactS7
}

input AwsCodeArtifactCreateRepositoryInput {
  domain: String!
  domainOwner: String
  repository: String!
  description: String
  upstreams: [AwsCodeArtifactS19Input]
  tags: [AwsCodeArtifactSyInput]
}

input AwsCodeArtifactS19Input {
  repositoryName: String!
}

type AwsCodeArtifactDeleteDomainOutput {
  domain: AwsCodeArtifactS13
}

input AwsCodeArtifactDeleteDomainInput {
  domain: String!
  domainOwner: String
}

type AwsCodeArtifactDeleteDomainPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

type AwsCodeArtifactS1h {
  resourceArn: String
  revision: String
  document: String
}

input AwsCodeArtifactDeleteDomainPermissionsPolicyInput {
  domain: String!
  domainOwner: String
  policyRevision: String
}

type AwsCodeArtifactDeletePackageVersionsOutput {
  successfulVersions: JSON
  failedVersions: JSON
}

input AwsCodeArtifactDeletePackageVersionsInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  versions: [String]!
  expectedStatus: String
}

type AwsCodeArtifactDeleteRepositoryOutput {
  repository: AwsCodeArtifactS7
}

input AwsCodeArtifactDeleteRepositoryInput {
  domain: String!
  domainOwner: String
  repository: String!
}

type AwsCodeArtifactDeleteRepositoryPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

input AwsCodeArtifactDeleteRepositoryPermissionsPolicyInput {
  domain: String!
  domainOwner: String
  repository: String!
  policyRevision: String
}

type AwsCodeArtifactDescribeDomainOutput {
  domain: AwsCodeArtifactS13
}

input AwsCodeArtifactDescribeDomainInput {
  domain: String!
  domainOwner: String
}

type AwsCodeArtifactDescribePackageVersionOutput {
  packageVersion: AwsCodeArtifactDescribePackageVersionOutputPackageVersion!
}

type AwsCodeArtifactDescribePackageVersionOutputPackageVersion {
  format: String
  namespace: String
  packageName: String
  displayName: String
  version: String
  summary: String
  homePage: String
  sourceCodeRepository: String
  publishedTime: Date
  licenses: [AwsCodeArtifactDescribePackageVersionOutputPackageVersionLicenses]
  revision: String
  status: String
}

type AwsCodeArtifactDescribePackageVersionOutputPackageVersionLicenses {
  name: String
  url: String
}

input AwsCodeArtifactDescribePackageVersionInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  packageVersion: String!
}

type AwsCodeArtifactDescribeRepositoryOutput {
  repository: AwsCodeArtifactS7
}

input AwsCodeArtifactDescribeRepositoryInput {
  domain: String!
  domainOwner: String
  repository: String!
}

type AwsCodeArtifactDisassociateExternalConnectionOutput {
  repository: AwsCodeArtifactS7
}

input AwsCodeArtifactDisassociateExternalConnectionInput {
  domain: String!
  domainOwner: String
  repository: String!
  externalConnection: String!
}

type AwsCodeArtifactDisposePackageVersionsOutput {
  successfulVersions: JSON
  failedVersions: JSON
}

input AwsCodeArtifactDisposePackageVersionsInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  versions: [String]!
  versionRevisions: JSON
  expectedStatus: String
}

type AwsCodeArtifactGetAuthorizationTokenOutput {
  authorizationToken: String
  expiration: Date
}

input AwsCodeArtifactGetAuthorizationTokenInput {
  domain: String!
  domainOwner: String
  durationSeconds: JSON
}

type AwsCodeArtifactGetDomainPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

input AwsCodeArtifactGetDomainPermissionsPolicyInput {
  domain: String!
  domainOwner: String
}

type AwsCodeArtifactGetPackageVersionAssetOutput {
  asset: JSON
  assetName: String
  packageVersion: String
  packageVersionRevision: String
}

input AwsCodeArtifactGetPackageVersionAssetInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  packageVersion: String!
  asset: String!
  packageVersionRevision: String
}

type AwsCodeArtifactGetPackageVersionReadmeOutput {
  format: String
  namespace: String
  package: String
  version: String
  versionRevision: String
  readme: String
}

input AwsCodeArtifactGetPackageVersionReadmeInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  packageVersion: String!
}

type AwsCodeArtifactGetRepositoryEndpointOutput {
  repositoryEndpoint: String
}

input AwsCodeArtifactGetRepositoryEndpointInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
}

type AwsCodeArtifactGetRepositoryPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

input AwsCodeArtifactGetRepositoryPermissionsPolicyInput {
  domain: String!
  domainOwner: String
  repository: String!
}

type AwsCodeArtifactListDomainsOutput {
  domains: [AwsCodeArtifactListDomainsOutputDomains]
  nextToken: String
}

type AwsCodeArtifactListDomainsOutputDomains {
  name: String
  owner: String
  arn: String
  status: String
  createdTime: Date
  encryptionKey: String
}

input AwsCodeArtifactListDomainsInput {
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListPackageVersionAssetsOutput {
  format: String
  namespace: String
  package: String
  version: String
  versionRevision: String
  nextToken: String
  assets: [AwsCodeArtifactListPackageVersionAssetsOutputAssets]
}

type AwsCodeArtifactListPackageVersionAssetsOutputAssets {
  name: String!
  size: JSON
  hashes: JSON
}

input AwsCodeArtifactListPackageVersionAssetsInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  packageVersion: String!
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListPackageVersionDependenciesOutput {
  format: String
  namespace: String
  package: String
  version: String
  versionRevision: String
  nextToken: String
  dependencies: [AwsCodeArtifactListPackageVersionDependenciesOutputDependencies]
}

type AwsCodeArtifactListPackageVersionDependenciesOutputDependencies {
  namespace: String
  package: String
  dependencyType: String
  versionRequirement: String
}

input AwsCodeArtifactListPackageVersionDependenciesInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  packageVersion: String!
  nextToken: String
}

type AwsCodeArtifactListPackageVersionsOutput {
  defaultDisplayVersion: String
  format: String
  namespace: String
  package: String
  versions: [AwsCodeArtifactListPackageVersionsOutputVersions]
  nextToken: String
}

type AwsCodeArtifactListPackageVersionsOutputVersions {
  version: String!
  revision: String
  status: String!
}

input AwsCodeArtifactListPackageVersionsInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  status: String
  sortBy: String
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListPackagesOutput {
  packages: [AwsCodeArtifactListPackagesOutputPackages]
  nextToken: String
}

type AwsCodeArtifactListPackagesOutputPackages {
  format: String
  namespace: String
  package: String
}

input AwsCodeArtifactListPackagesInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String
  namespace: String
  packagePrefix: String
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListRepositoriesOutput {
  repositories: [AwsCodeArtifactS3f]
  nextToken: String
}

type AwsCodeArtifactS3f {
  name: String
  administratorAccount: String
  domainName: String
  domainOwner: String
  arn: String
  description: String
}

input AwsCodeArtifactListRepositoriesInput {
  repositoryPrefix: String
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListRepositoriesInDomainOutput {
  repositories: [AwsCodeArtifactS3f]
  nextToken: String
}

input AwsCodeArtifactListRepositoriesInDomainInput {
  domain: String!
  domainOwner: String
  administratorAccount: String
  repositoryPrefix: String
  maxResults: Int
  nextToken: String
}

type AwsCodeArtifactListTagsForResourceOutput {
  tags: [AwsCodeArtifactSy]
}

type AwsCodeArtifactSy {
  key: String!
  value: String!
}

input AwsCodeArtifactListTagsForResourceInput {
  resourceArn: String!
}

type AwsCodeArtifactPutDomainPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

input AwsCodeArtifactPutDomainPermissionsPolicyInput {
  domain: String!
  domainOwner: String
  policyRevision: String
  policyDocument: String!
}

type AwsCodeArtifactPutRepositoryPermissionsPolicyOutput {
  policy: AwsCodeArtifactS1h
}

input AwsCodeArtifactPutRepositoryPermissionsPolicyInput {
  domain: String!
  domainOwner: String
  repository: String!
  policyRevision: String
  policyDocument: String!
}

input AwsCodeArtifactTagResourceInput {
  resourceArn: String!
  tags: [AwsCodeArtifactSyInput]!
}

input AwsCodeArtifactUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsCodeArtifactUpdatePackageVersionsStatusOutput {
  successfulVersions: JSON
  failedVersions: JSON
}

input AwsCodeArtifactUpdatePackageVersionsStatusInput {
  domain: String!
  domainOwner: String
  repository: String!
  format: String!
  namespace: String
  package: String!
  versions: [String]!
  versionRevisions: JSON
  expectedStatus: String
  targetStatus: String!
}

type AwsCodeArtifactUpdateRepositoryOutput {
  repository: AwsCodeArtifactS7
}

input AwsCodeArtifactUpdateRepositoryInput {
  domain: String!
  domainOwner: String
  repository: String!
  description: String
  upstreams: [AwsCodeArtifactS19Input]
}

"""AWS CodeBuild (2016-10-06)"""
type AwsCodeBuild {
  batchDeleteBuilds(input: AwsCodeBuildBatchDeleteBuildsInput!, config: AwsConfig): AwsCodeBuildBatchDeleteBuildsOutput
  batchGetBuildBatches(input: AwsCodeBuildBatchGetBuildBatchesInput!, config: AwsConfig): AwsCodeBuildBatchGetBuildBatchesOutput
  batchGetBuilds(input: AwsCodeBuildBatchGetBuildsInput!, config: AwsConfig): AwsCodeBuildBatchGetBuildsOutput
  batchGetProjects(input: AwsCodeBuildBatchGetProjectsInput!, config: AwsConfig): AwsCodeBuildBatchGetProjectsOutput
  batchGetReportGroups(input: AwsCodeBuildBatchGetReportGroupsInput!, config: AwsConfig): AwsCodeBuildBatchGetReportGroupsOutput
  batchGetReports(input: AwsCodeBuildBatchGetReportsInput!, config: AwsConfig): AwsCodeBuildBatchGetReportsOutput
  createProject(input: AwsCodeBuildCreateProjectInput!, config: AwsConfig): AwsCodeBuildCreateProjectOutput
  createReportGroup(input: AwsCodeBuildCreateReportGroupInput!, config: AwsConfig): AwsCodeBuildCreateReportGroupOutput
  createWebhook(input: AwsCodeBuildCreateWebhookInput!, config: AwsConfig): AwsCodeBuildCreateWebhookOutput
  deleteBuildBatch(input: AwsCodeBuildDeleteBuildBatchInput!, config: AwsConfig): AwsCodeBuildDeleteBuildBatchOutput
  deleteProject(input: AwsCodeBuildDeleteProjectInput!, config: AwsConfig): JSON
  deleteReport(input: AwsCodeBuildDeleteReportInput!, config: AwsConfig): JSON
  deleteReportGroup(input: AwsCodeBuildDeleteReportGroupInput!, config: AwsConfig): JSON
  deleteResourcePolicy(input: AwsCodeBuildDeleteResourcePolicyInput!, config: AwsConfig): JSON
  deleteSourceCredentials(input: AwsCodeBuildDeleteSourceCredentialsInput!, config: AwsConfig): AwsCodeBuildDeleteSourceCredentialsOutput
  deleteWebhook(input: AwsCodeBuildDeleteWebhookInput!, config: AwsConfig): JSON
  describeCodeCoverages(input: AwsCodeBuildDescribeCodeCoveragesInput!, config: AwsConfig): AwsCodeBuildDescribeCodeCoveragesOutput
  describeTestCases(input: AwsCodeBuildDescribeTestCasesInput!, config: AwsConfig): AwsCodeBuildDescribeTestCasesOutput
  getReportGroupTrend(input: AwsCodeBuildGetReportGroupTrendInput!, config: AwsConfig): AwsCodeBuildGetReportGroupTrendOutput
  getResourcePolicy(input: AwsCodeBuildGetResourcePolicyInput!, config: AwsConfig): AwsCodeBuildGetResourcePolicyOutput
  importSourceCredentials(input: AwsCodeBuildImportSourceCredentialsInput!, config: AwsConfig): AwsCodeBuildImportSourceCredentialsOutput
  invalidateProjectCache(input: AwsCodeBuildInvalidateProjectCacheInput!, config: AwsConfig): JSON
  listBuildBatches(input: AwsCodeBuildListBuildBatchesInput, config: AwsConfig): AwsCodeBuildListBuildBatchesOutput
  listBuildBatchesForProject(input: AwsCodeBuildListBuildBatchesForProjectInput, config: AwsConfig): AwsCodeBuildListBuildBatchesForProjectOutput
  listBuilds(input: AwsCodeBuildListBuildsInput, config: AwsConfig): AwsCodeBuildListBuildsOutput
  listBuildsForProject(input: AwsCodeBuildListBuildsForProjectInput!, config: AwsConfig): AwsCodeBuildListBuildsForProjectOutput
  listCuratedEnvironmentImages(input: JSON, config: AwsConfig): AwsCodeBuildListCuratedEnvironmentImagesOutput
  listProjects(input: AwsCodeBuildListProjectsInput, config: AwsConfig): AwsCodeBuildListProjectsOutput
  listReportGroups(input: AwsCodeBuildListReportGroupsInput, config: AwsConfig): AwsCodeBuildListReportGroupsOutput
  listReports(input: AwsCodeBuildListReportsInput, config: AwsConfig): AwsCodeBuildListReportsOutput
  listReportsForReportGroup(input: AwsCodeBuildListReportsForReportGroupInput!, config: AwsConfig): AwsCodeBuildListReportsForReportGroupOutput
  listSharedProjects(input: AwsCodeBuildListSharedProjectsInput, config: AwsConfig): AwsCodeBuildListSharedProjectsOutput
  listSharedReportGroups(input: AwsCodeBuildListSharedReportGroupsInput, config: AwsConfig): AwsCodeBuildListSharedReportGroupsOutput
  listSourceCredentials(input: JSON, config: AwsConfig): AwsCodeBuildListSourceCredentialsOutput
  putResourcePolicy(input: AwsCodeBuildPutResourcePolicyInput!, config: AwsConfig): AwsCodeBuildPutResourcePolicyOutput
  retryBuild(input: AwsCodeBuildRetryBuildInput, config: AwsConfig): AwsCodeBuildRetryBuildOutput
  retryBuildBatch(input: AwsCodeBuildRetryBuildBatchInput, config: AwsConfig): AwsCodeBuildRetryBuildBatchOutput
  startBuild(input: AwsCodeBuildStartBuildInput!, config: AwsConfig): AwsCodeBuildStartBuildOutput
  startBuildBatch(input: AwsCodeBuildStartBuildBatchInput!, config: AwsConfig): AwsCodeBuildStartBuildBatchOutput
  stopBuild(input: AwsCodeBuildStopBuildInput!, config: AwsConfig): AwsCodeBuildStopBuildOutput
  stopBuildBatch(input: AwsCodeBuildStopBuildBatchInput!, config: AwsConfig): AwsCodeBuildStopBuildBatchOutput
  updateProject(input: AwsCodeBuildUpdateProjectInput!, config: AwsConfig): AwsCodeBuildUpdateProjectOutput
  updateReportGroup(input: AwsCodeBuildUpdateReportGroupInput!, config: AwsConfig): AwsCodeBuildUpdateReportGroupOutput
  updateWebhook(input: AwsCodeBuildUpdateWebhookInput!, config: AwsConfig): AwsCodeBuildUpdateWebhookOutput
}

type AwsCodeBuildBatchDeleteBuildsOutput {
  buildsDeleted: [String]
  buildsNotDeleted: [AwsCodeBuildS5]
}

type AwsCodeBuildS5 {
  id: String
  statusCode: String
}

input AwsCodeBuildBatchDeleteBuildsInput {
  ids: [String]!
}

type AwsCodeBuildBatchGetBuildBatchesOutput {
  buildBatches: [AwsCodeBuildSc]
  buildBatchesNotFound: [String]
}

type AwsCodeBuildSc {
  id: String
  arn: String
  startTime: Date
  endTime: Date
  currentPhase: String
  buildBatchStatus: String
  sourceVersion: String
  resolvedSourceVersion: String
  projectName: String
  phases: [AwsCodeBuildScPhases]
  source: AwsCodeBuildSl
  secondarySources: [AwsCodeBuildSl]
  secondarySourceVersions: [AwsCodeBuildSu]
  artifacts: AwsCodeBuildSw
  secondaryArtifacts: [AwsCodeBuildSw]
  cache: AwsCodeBuildSy
  environment: AwsCodeBuildS12
  serviceRole: String
  logConfig: AwsCodeBuildS1b
  buildTimeoutInMinutes: Int
  queuedTimeoutInMinutes: Int
  complete: Boolean
  initiator: String
  vpcConfig: AwsCodeBuildS1h
  encryptionKey: String
  buildBatchNumber: JSON
  fileSystemLocations: [AwsCodeBuildS1k]
  buildBatchConfig: AwsCodeBuildS1n
  buildGroups: [AwsCodeBuildScBuildGroups]
  debugSessionEnabled: Boolean
}

type AwsCodeBuildScPhases {
  phaseType: String
  phaseStatus: String
  startTime: Date
  endTime: Date
  durationInSeconds: JSON
  contexts: [AwsCodeBuildSj]
}

type AwsCodeBuildSj {
  statusCode: String
  message: String
}

type AwsCodeBuildSl {
  type: String!
  location: String
  gitCloneDepth: Int
  gitSubmodulesConfig: AwsCodeBuildSo
  buildspec: String
  auth: AwsCodeBuildSq
  reportBuildStatus: Boolean
  buildStatusConfig: AwsCodeBuildSs
  insecureSsl: Boolean
  sourceIdentifier: String
}

type AwsCodeBuildSo {
  fetchSubmodules: Boolean!
}

type AwsCodeBuildSq {
  type: String!
  resource: String
}

type AwsCodeBuildSs {
  context: String
  targetUrl: String
}

type AwsCodeBuildSu {
  sourceIdentifier: String!
  sourceVersion: String!
}

type AwsCodeBuildSw {
  location: String
  sha256sum: String
  md5sum: String
  overrideArtifactName: Boolean
  encryptionDisabled: Boolean
  artifactIdentifier: String
}

type AwsCodeBuildSy {
  type: String!
  location: String
  modes: [String]
}

type AwsCodeBuildS12 {
  type: String!
  image: String!
  computeType: String!
  environmentVariables: [AwsCodeBuildS15]
  privilegedMode: Boolean
  certificate: String
  registryCredential: AwsCodeBuildS18
  imagePullCredentialsType: String
}

type AwsCodeBuildS15 {
  name: String!
  value: String!
  type: String
}

type AwsCodeBuildS18 {
  credential: String!
  credentialProvider: String!
}

type AwsCodeBuildS1b {
  cloudWatchLogs: AwsCodeBuildS1c
  s3Logs: AwsCodeBuildS1e
}

type AwsCodeBuildS1c {
  status: String!
  groupName: String
  streamName: String
}

type AwsCodeBuildS1e {
  status: String!
  location: String
  encryptionDisabled: Boolean
}

type AwsCodeBuildS1h {
  vpcId: String
  subnets: [String]
  securityGroupIds: [String]
}

type AwsCodeBuildS1k {
  type: String
  location: String
  mountPoint: String
  identifier: String
  mountOptions: String
}

type AwsCodeBuildS1n {
  serviceRole: String
  combineArtifacts: Boolean
  restrictions: AwsCodeBuildS1nRestrictions
  timeoutInMins: Int
}

type AwsCodeBuildS1nRestrictions {
  maximumBuildsAllowed: Int
  computeTypesAllowed: [String]
}

type AwsCodeBuildScBuildGroups {
  identifier: String
  dependsOn: [String]
  ignoreFailure: Boolean
  currentBuildSummary: AwsCodeBuildS1t
  priorBuildSummaryList: [AwsCodeBuildS1t]
}

type AwsCodeBuildS1t {
  arn: String
  requestedOn: Date
  buildStatus: String
  primaryArtifact: AwsCodeBuildS1u
  secondaryArtifacts: [AwsCodeBuildS1u]
}

type AwsCodeBuildS1u {
  type: String
  location: String
  identifier: String
}

input AwsCodeBuildBatchGetBuildBatchesInput {
  ids: [String]!
}

type AwsCodeBuildBatchGetBuildsOutput {
  builds: [AwsCodeBuildS21]
  buildsNotFound: [String]
}

type AwsCodeBuildS21 {
  id: String
  arn: String
  buildNumber: JSON
  startTime: Date
  endTime: Date
  currentPhase: String
  buildStatus: String
  sourceVersion: String
  resolvedSourceVersion: String
  projectName: String
  phases: [AwsCodeBuildS21Phases]
  source: AwsCodeBuildSl
  secondarySources: [AwsCodeBuildSl]
  secondarySourceVersions: [AwsCodeBuildSu]
  artifacts: AwsCodeBuildSw
  secondaryArtifacts: [AwsCodeBuildSw]
  cache: AwsCodeBuildSy
  environment: AwsCodeBuildS12
  serviceRole: String
  logs: AwsCodeBuildS21Logs
  timeoutInMinutes: Int
  queuedTimeoutInMinutes: Int
  buildComplete: Boolean
  initiator: String
  vpcConfig: AwsCodeBuildS1h
  networkInterface: AwsCodeBuildS21NetworkInterface
  encryptionKey: String
  exportedEnvironmentVariables: [AwsCodeBuildS21ExportedEnvironmentVariables]
  reportArns: [String]
  fileSystemLocations: [AwsCodeBuildS1k]
  debugSession: AwsCodeBuildS21DebugSession
  buildBatchArn: String
}

type AwsCodeBuildS21Phases {
  phaseType: String
  phaseStatus: String
  startTime: Date
  endTime: Date
  durationInSeconds: JSON
  contexts: [AwsCodeBuildSj]
}

type AwsCodeBuildS21Logs {
  groupName: String
  streamName: String
  deepLink: String
  s3DeepLink: String
  cloudWatchLogsArn: String
  s3LogsArn: String
  cloudWatchLogs: AwsCodeBuildS1c
  s3Logs: AwsCodeBuildS1e
}

type AwsCodeBuildS21NetworkInterface {
  subnetId: String
  networkInterfaceId: String
}

type AwsCodeBuildS21ExportedEnvironmentVariables {
  name: String
  value: String
}

type AwsCodeBuildS21DebugSession {
  sessionEnabled: Boolean
  sessionTarget: String
}

input AwsCodeBuildBatchGetBuildsInput {
  ids: [String]!
}

type AwsCodeBuildBatchGetProjectsOutput {
  projects: [AwsCodeBuildS2f]
  projectsNotFound: [String]
}

type AwsCodeBuildS2f {
  name: String
  arn: String
  description: String
  source: AwsCodeBuildSl
  secondarySources: [AwsCodeBuildSl]
  sourceVersion: String
  secondarySourceVersions: [AwsCodeBuildSu]
  artifacts: AwsCodeBuildS2i
  secondaryArtifacts: [AwsCodeBuildS2i]
  cache: AwsCodeBuildSy
  environment: AwsCodeBuildS12
  serviceRole: String
  timeoutInMinutes: Int
  queuedTimeoutInMinutes: Int
  encryptionKey: String
  tags: [AwsCodeBuildS2n]
  created: Date
  lastModified: Date
  webhook: AwsCodeBuildS2r
  vpcConfig: AwsCodeBuildS1h
  badge: AwsCodeBuildS2fBadge
  logsConfig: AwsCodeBuildS1b
  fileSystemLocations: [AwsCodeBuildS1k]
  buildBatchConfig: AwsCodeBuildS1n
  concurrentBuildLimit: Int
}

type AwsCodeBuildS2i {
  type: String!
  location: String
  path: String
  namespaceType: String
  name: String
  packaging: String
  overrideArtifactName: Boolean
  encryptionDisabled: Boolean
  artifactIdentifier: String
}

type AwsCodeBuildS2n {
  key: String
  value: String
}

type AwsCodeBuildS2r {
  url: String
  payloadUrl: String
  secret: String
  branchFilter: String
  filterGroups: [[AwsCodeBuildS2s]]
  buildType: String
  lastModifiedSecret: Date
}

type AwsCodeBuildS2s {
  type: String!
  pattern: String!
  excludeMatchedPattern: Boolean
}

type AwsCodeBuildS2fBadge {
  badgeEnabled: Boolean
  badgeRequestUrl: String
}

input AwsCodeBuildBatchGetProjectsInput {
  names: [String]!
}

type AwsCodeBuildBatchGetReportGroupsOutput {
  reportGroups: [AwsCodeBuildS32]
  reportGroupsNotFound: [String]
}

type AwsCodeBuildS32 {
  arn: String
  name: String
  type: String
  exportConfig: AwsCodeBuildS35
  created: Date
  lastModified: Date
  tags: [AwsCodeBuildS2n]
  status: String
}

type AwsCodeBuildS35 {
  exportConfigType: String
  s3Destination: AwsCodeBuildS35S3Destination
}

type AwsCodeBuildS35S3Destination {
  bucket: String
  bucketOwner: String
  path: String
  packaging: String
  encryptionKey: String
  encryptionDisabled: Boolean
}

input AwsCodeBuildBatchGetReportGroupsInput {
  reportGroupArns: [String]!
}

type AwsCodeBuildBatchGetReportsOutput {
  reports: [AwsCodeBuildBatchGetReportsOutputReports]
  reportsNotFound: [String]
}

type AwsCodeBuildBatchGetReportsOutputReports {
  arn: String
  type: String
  name: String
  reportGroupArn: String
  executionId: String
  status: String
  created: Date
  expired: Date
  exportConfig: AwsCodeBuildS35
  truncated: Boolean
  testSummary: AwsCodeBuildBatchGetReportsOutputReportsTestSummary
  codeCoverageSummary: AwsCodeBuildBatchGetReportsOutputReportsCodeCoverageSummary
}

type AwsCodeBuildBatchGetReportsOutputReportsTestSummary {
  total: Int!
  statusCounts: JSON!
  durationInNanoSeconds: JSON!
}

type AwsCodeBuildBatchGetReportsOutputReportsCodeCoverageSummary {
  lineCoveragePercentage: JSON
  linesCovered: Int
  linesMissed: Int
  branchCoveragePercentage: JSON
  branchesCovered: Int
  branchesMissed: Int
}

input AwsCodeBuildBatchGetReportsInput {
  reportArns: [String]!
}

type AwsCodeBuildCreateProjectOutput {
  project: AwsCodeBuildS2f
}

input AwsCodeBuildCreateProjectInput {
  name: String!
  description: String
  source: AwsCodeBuildSlInput!
  secondarySources: [AwsCodeBuildSlInput]
  sourceVersion: String
  secondarySourceVersions: [AwsCodeBuildSuInput]
  artifacts: AwsCodeBuildS2iInput!
  secondaryArtifacts: [AwsCodeBuildS2iInput]
  cache: AwsCodeBuildSyInput
  environment: AwsCodeBuildS12Input!
  serviceRole: String!
  timeoutInMinutes: Int
  queuedTimeoutInMinutes: Int
  encryptionKey: String
  tags: [AwsCodeBuildS2nInput]
  vpcConfig: AwsCodeBuildS1hInput
  badgeEnabled: Boolean
  logsConfig: AwsCodeBuildS1bInput
  fileSystemLocations: [AwsCodeBuildS1kInput]
  buildBatchConfig: AwsCodeBuildS1nInput
  concurrentBuildLimit: Int
}

input AwsCodeBuildSlInput {
  type: String!
  location: String
  gitCloneDepth: Int
  gitSubmodulesConfig: AwsCodeBuildSoInput
  buildspec: String
  auth: AwsCodeBuildSqInput
  reportBuildStatus: Boolean
  buildStatusConfig: AwsCodeBuildSsInput
  insecureSsl: Boolean
  sourceIdentifier: String
}

input AwsCodeBuildSoInput {
  fetchSubmodules: Boolean!
}

input AwsCodeBuildSqInput {
  type: String!
  resource: String
}

input AwsCodeBuildSsInput {
  context: String
  targetUrl: String
}

input AwsCodeBuildSuInput {
  sourceIdentifier: String!
  sourceVersion: String!
}

input AwsCodeBuildS2iInput {
  type: String!
  location: String
  path: String
  namespaceType: String
  name: String
  packaging: String
  overrideArtifactName: Boolean
  encryptionDisabled: Boolean
  artifactIdentifier: String
}

input AwsCodeBuildSyInput {
  type: String!
  location: String
  modes: [String]
}

input AwsCodeBuildS12Input {
  type: String!
  image: String!
  computeType: String!
  environmentVariables: [AwsCodeBuildS15Input]
  privilegedMode: Boolean
  certificate: String
  registryCredential: AwsCodeBuildS18Input
  imagePullCredentialsType: String
}

input AwsCodeBuildS15Input {
  name: String!
  value: String!
  type: String
}

input AwsCodeBuildS18Input {
  credential: String!
  credentialProvider: String!
}

input AwsCodeBuildS2nInput {
  key: String
  value: String
}

input AwsCodeBuildS1hInput {
  vpcId: String
  subnets: [String]
  securityGroupIds: [String]
}

input AwsCodeBuildS1bInput {
  cloudWatchLogs: AwsCodeBuildS1cInput
  s3Logs: AwsCodeBuildS1eInput
}

input AwsCodeBuildS1cInput {
  status: String!
  groupName: String
  streamName: String
}

input AwsCodeBuildS1eInput {
  status: String!
  location: String
  encryptionDisabled: Boolean
}

input AwsCodeBuildS1kInput {
  type: String
  location: String
  mountPoint: String
  identifier: String
  mountOptions: String
}

input AwsCodeBuildS1nInput {
  serviceRole: String
  combineArtifacts: Boolean
  restrictions: AwsCodeBuildS1nRestrictionsInput
  timeoutInMins: Int
}

input AwsCodeBuildS1nRestrictionsInput {
  maximumBuildsAllowed: Int
  computeTypesAllowed: [String]
}

type AwsCodeBuildCreateReportGroupOutput {
  reportGroup: AwsCodeBuildS32
}

input AwsCodeBuildCreateReportGroupInput {
  name: String!
  type: String!
  exportConfig: AwsCodeBuildS35Input!
  tags: [AwsCodeBuildS2nInput]
}

input AwsCodeBuildS35Input {
  exportConfigType: String
  s3Destination: AwsCodeBuildS35S3DestinationInput
}

input AwsCodeBuildS35S3DestinationInput {
  bucket: String
  bucketOwner: String
  path: String
  packaging: String
  encryptionKey: String
  encryptionDisabled: Boolean
}

type AwsCodeBuildCreateWebhookOutput {
  webhook: AwsCodeBuildS2r
}

input AwsCodeBuildCreateWebhookInput {
  projectName: String!
  branchFilter: String
  filterGroups: [[AwsCodeBuildS2sInput]]
  buildType: String
}

input AwsCodeBuildS2sInput {
  type: String!
  pattern: String!
  excludeMatchedPattern: Boolean
}

type AwsCodeBuildDeleteBuildBatchOutput {
  statusCode: String
  buildsDeleted: [String]
  buildsNotDeleted: [AwsCodeBuildS5]
}

input AwsCodeBuildDeleteBuildBatchInput {
  id: String!
}

input AwsCodeBuildDeleteProjectInput {
  name: String!
}

input AwsCodeBuildDeleteReportInput {
  arn: String!
}

input AwsCodeBuildDeleteReportGroupInput {
  arn: String!
  deleteReports: Boolean
}

input AwsCodeBuildDeleteResourcePolicyInput {
  resourceArn: String!
}

type AwsCodeBuildDeleteSourceCredentialsOutput {
  arn: String
}

input AwsCodeBuildDeleteSourceCredentialsInput {
  arn: String!
}

input AwsCodeBuildDeleteWebhookInput {
  projectName: String!
}

type AwsCodeBuildDescribeCodeCoveragesOutput {
  nextToken: String
  codeCoverages: [AwsCodeBuildDescribeCodeCoveragesOutputCodeCoverages]
}

type AwsCodeBuildDescribeCodeCoveragesOutputCodeCoverages {
  id: String
  reportARN: String
  filePath: String
  lineCoveragePercentage: JSON
  linesCovered: Int
  linesMissed: Int
  branchCoveragePercentage: JSON
  branchesCovered: Int
  branchesMissed: Int
  expired: Date
}

input AwsCodeBuildDescribeCodeCoveragesInput {
  reportArn: String!
  nextToken: String
  maxResults: Int
  sortOrder: String
  sortBy: String
  minLineCoveragePercentage: JSON
  maxLineCoveragePercentage: JSON
}

type AwsCodeBuildDescribeTestCasesOutput {
  nextToken: String
  testCases: [AwsCodeBuildDescribeTestCasesOutputTestCases]
}

type AwsCodeBuildDescribeTestCasesOutputTestCases {
  reportArn: String
  testRawDataPath: String
  prefix: String
  name: String
  status: String
  durationInNanoSeconds: JSON
  message: String
  expired: Date
}

input AwsCodeBuildDescribeTestCasesInput {
  reportArn: String!
  nextToken: String
  maxResults: Int
  filter: AwsCodeBuildDescribeTestCasesFilterInput
}

input AwsCodeBuildDescribeTestCasesFilterInput {
  status: String
  keyword: String
}

type AwsCodeBuildGetReportGroupTrendOutput {
  stats: AwsCodeBuildGetReportGroupTrendOutputStats
  rawData: [AwsCodeBuildGetReportGroupTrendOutputRawData]
}

type AwsCodeBuildGetReportGroupTrendOutputStats {
  average: String
  max: String
  min: String
}

type AwsCodeBuildGetReportGroupTrendOutputRawData {
  reportArn: String
  data: String
}

input AwsCodeBuildGetReportGroupTrendInput {
  reportGroupArn: String!
  numOfReports: Int
  trendField: String!
}

type AwsCodeBuildGetResourcePolicyOutput {
  policy: String
}

input AwsCodeBuildGetResourcePolicyInput {
  resourceArn: String!
}

type AwsCodeBuildImportSourceCredentialsOutput {
  arn: String
}

input AwsCodeBuildImportSourceCredentialsInput {
  username: String
  token: String!
  serverType: String!
  authType: String!
  shouldOverwrite: Boolean
}

input AwsCodeBuildInvalidateProjectCacheInput {
  projectName: String!
}

type AwsCodeBuildListBuildBatchesOutput {
  ids: [String]
  nextToken: String
}

input AwsCodeBuildListBuildBatchesInput {
  filter: AwsCodeBuildS4xInput
  maxResults: Int
  sortOrder: String
  nextToken: String
}

input AwsCodeBuildS4xInput {
  status: String
}

type AwsCodeBuildListBuildBatchesForProjectOutput {
  ids: [String]
  nextToken: String
}

input AwsCodeBuildListBuildBatchesForProjectInput {
  projectName: String
  filter: AwsCodeBuildS4xInput
  maxResults: Int
  sortOrder: String
  nextToken: String
}

type AwsCodeBuildListBuildsOutput {
  ids: [String]
  nextToken: String
}

input AwsCodeBuildListBuildsInput {
  sortOrder: String
  nextToken: String
}

type AwsCodeBuildListBuildsForProjectOutput {
  ids: [String]
  nextToken: String
}

input AwsCodeBuildListBuildsForProjectInput {
  projectName: String!
  sortOrder: String
  nextToken: String
}

type AwsCodeBuildListCuratedEnvironmentImagesOutput {
  platforms: [AwsCodeBuildListCuratedEnvironmentImagesOutputPlatforms]
}

type AwsCodeBuildListCuratedEnvironmentImagesOutputPlatforms {
  platform: String
  languages: [AwsCodeBuildListCuratedEnvironmentImagesOutputPlatformsLanguages]
}

type AwsCodeBuildListCuratedEnvironmentImagesOutputPlatformsLanguages {
  language: String
  images: [AwsCodeBuildListCuratedEnvironmentImagesOutputPlatformsLanguagesImages]
}

type AwsCodeBuildListCuratedEnvironmentImagesOutputPlatformsLanguagesImages {
  name: String
  description: String
  versions: [String]
}

type AwsCodeBuildListProjectsOutput {
  nextToken: String
  projects: [String]
}

input AwsCodeBuildListProjectsInput {
  sortBy: String
  sortOrder: String
  nextToken: String
}

type AwsCodeBuildListReportGroupsOutput {
  nextToken: String
  reportGroups: [String]
}

input AwsCodeBuildListReportGroupsInput {
  sortOrder: String
  sortBy: String
  nextToken: String
  maxResults: Int
}

type AwsCodeBuildListReportsOutput {
  nextToken: String
  reports: [String]
}

input AwsCodeBuildListReportsInput {
  sortOrder: String
  nextToken: String
  maxResults: Int
  filter: AwsCodeBuildS5nInput
}

input AwsCodeBuildS5nInput {
  status: String
}

type AwsCodeBuildListReportsForReportGroupOutput {
  nextToken: String
  reports: [String]
}

input AwsCodeBuildListReportsForReportGroupInput {
  reportGroupArn: String!
  nextToken: String
  sortOrder: String
  maxResults: Int
  filter: AwsCodeBuildS5nInput
}

type AwsCodeBuildListSharedProjectsOutput {
  nextToken: String
  projects: [String]
}

input AwsCodeBuildListSharedProjectsInput {
  sortBy: String
  sortOrder: String
  maxResults: Int
  nextToken: String
}

type AwsCodeBuildListSharedReportGroupsOutput {
  nextToken: String
  reportGroups: [String]
}

input AwsCodeBuildListSharedReportGroupsInput {
  sortOrder: String
  sortBy: String
  nextToken: String
  maxResults: Int
}

type AwsCodeBuildListSourceCredentialsOutput {
  sourceCredentialsInfos: [AwsCodeBuildListSourceCredentialsOutputSourceCredentialsInfos]
}

type AwsCodeBuildListSourceCredentialsOutputSourceCredentialsInfos {
  arn: String
  serverType: String
  authType: String
}

type AwsCodeBuildPutResourcePolicyOutput {
  resourceArn: String
}

input AwsCodeBuildPutResourcePolicyInput {
  policy: String!
  resourceArn: String!
}

type AwsCodeBuildRetryBuildOutput {
  build: AwsCodeBuildS21
}

input AwsCodeBuildRetryBuildInput {
  id: String
  idempotencyToken: String
}

type AwsCodeBuildRetryBuildBatchOutput {
  buildBatch: AwsCodeBuildSc
}

input AwsCodeBuildRetryBuildBatchInput {
  id: String
  idempotencyToken: String
  retryType: String
}

type AwsCodeBuildStartBuildOutput {
  build: AwsCodeBuildS21
}

input AwsCodeBuildStartBuildInput {
  projectName: String!
  secondarySourcesOverride: [AwsCodeBuildSlInput]
  secondarySourcesVersionOverride: [AwsCodeBuildSuInput]
  sourceVersion: String
  artifactsOverride: AwsCodeBuildS2iInput
  secondaryArtifactsOverride: [AwsCodeBuildS2iInput]
  environmentVariablesOverride: [AwsCodeBuildS15Input]
  sourceTypeOverride: String
  sourceLocationOverride: String
  sourceAuthOverride: AwsCodeBuildSqInput
  gitCloneDepthOverride: Int
  gitSubmodulesConfigOverride: AwsCodeBuildSoInput
  buildspecOverride: String
  insecureSslOverride: Boolean
  reportBuildStatusOverride: Boolean
  buildStatusConfigOverride: AwsCodeBuildSsInput
  environmentTypeOverride: String
  imageOverride: String
  computeTypeOverride: String
  certificateOverride: String
  cacheOverride: AwsCodeBuildSyInput
  serviceRoleOverride: String
  privilegedModeOverride: Boolean
  timeoutInMinutesOverride: Int
  queuedTimeoutInMinutesOverride: Int
  encryptionKeyOverride: String
  idempotencyToken: String
  logsConfigOverride: AwsCodeBuildS1bInput
  registryCredentialOverride: AwsCodeBuildS18Input
  imagePullCredentialsTypeOverride: String
  debugSessionEnabled: Boolean
}

type AwsCodeBuildStartBuildBatchOutput {
  buildBatch: AwsCodeBuildSc
}

input AwsCodeBuildStartBuildBatchInput {
  projectName: String!
  secondarySourcesOverride: [AwsCodeBuildSlInput]
  secondarySourcesVersionOverride: [AwsCodeBuildSuInput]
  sourceVersion: String
  artifactsOverride: AwsCodeBuildS2iInput
  secondaryArtifactsOverride: [AwsCodeBuildS2iInput]
  environmentVariablesOverride: [AwsCodeBuildS15Input]
  sourceTypeOverride: String
  sourceLocationOverride: String
  sourceAuthOverride: AwsCodeBuildSqInput
  gitCloneDepthOverride: Int
  gitSubmodulesConfigOverride: AwsCodeBuildSoInput
  buildspecOverride: String
  insecureSslOverride: Boolean
  reportBuildBatchStatusOverride: Boolean
  environmentTypeOverride: String
  imageOverride: String
  computeTypeOverride: String
  certificateOverride: String
  cacheOverride: AwsCodeBuildSyInput
  serviceRoleOverride: String
  privilegedModeOverride: Boolean
  buildTimeoutInMinutesOverride: Int
  queuedTimeoutInMinutesOverride: Int
  encryptionKeyOverride: String
  idempotencyToken: String
  logsConfigOverride: AwsCodeBuildS1bInput
  registryCredentialOverride: AwsCodeBuildS18Input
  imagePullCredentialsTypeOverride: String
  buildBatchConfigOverride: AwsCodeBuildS1nInput
  debugSessionEnabled: Boolean
}

type AwsCodeBuildStopBuildOutput {
  build: AwsCodeBuildS21
}

input AwsCodeBuildStopBuildInput {
  id: String!
}

type AwsCodeBuildStopBuildBatchOutput {
  buildBatch: AwsCodeBuildSc
}

input AwsCodeBuildStopBuildBatchInput {
  id: String!
}

type AwsCodeBuildUpdateProjectOutput {
  project: AwsCodeBuildS2f
}

input AwsCodeBuildUpdateProjectInput {
  name: String!
  description: String
  source: AwsCodeBuildSlInput
  secondarySources: [AwsCodeBuildSlInput]
  sourceVersion: String
  secondarySourceVersions: [AwsCodeBuildSuInput]
  artifacts: AwsCodeBuildS2iInput
  secondaryArtifacts: [AwsCodeBuildS2iInput]
  cache: AwsCodeBuildSyInput
  environment: AwsCodeBuildS12Input
  serviceRole: String
  timeoutInMinutes: Int
  queuedTimeoutInMinutes: Int
  encryptionKey: String
  tags: [AwsCodeBuildS2nInput]
  vpcConfig: AwsCodeBuildS1hInput
  badgeEnabled: Boolean
  logsConfig: AwsCodeBuildS1bInput
  fileSystemLocations: [AwsCodeBuildS1kInput]
  buildBatchConfig: AwsCodeBuildS1nInput
  concurrentBuildLimit: Int
}

type AwsCodeBuildUpdateReportGroupOutput {
  reportGroup: AwsCodeBuildS32
}

input AwsCodeBuildUpdateReportGroupInput {
  arn: String!
  exportConfig: AwsCodeBuildS35Input
  tags: [AwsCodeBuildS2nInput]
}

type AwsCodeBuildUpdateWebhookOutput {
  webhook: AwsCodeBuildS2r
}

input AwsCodeBuildUpdateWebhookInput {
  projectName: String!
  branchFilter: String
  rotateSecret: Boolean
  filterGroups: [[AwsCodeBuildS2sInput]]
  buildType: String
}

"""AWS CodeCommit (2015-04-13)"""
type AwsCodeCommit {
  associateApprovalRuleTemplateWithRepository(input: AwsCodeCommitAssociateApprovalRuleTemplateWithRepositoryInput!, config: AwsConfig): JSON
  batchAssociateApprovalRuleTemplateWithRepositories(input: AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesInput!, config: AwsConfig): AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesOutput
  batchDescribeMergeConflicts(input: AwsCodeCommitBatchDescribeMergeConflictsInput!, config: AwsConfig): AwsCodeCommitBatchDescribeMergeConflictsOutput
  batchDisassociateApprovalRuleTemplateFromRepositories(input: AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesInput!, config: AwsConfig): AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesOutput
  batchGetCommits(input: AwsCodeCommitBatchGetCommitsInput!, config: AwsConfig): AwsCodeCommitBatchGetCommitsOutput
  batchGetRepositories(input: AwsCodeCommitBatchGetRepositoriesInput!, config: AwsConfig): AwsCodeCommitBatchGetRepositoriesOutput
  createApprovalRuleTemplate(input: AwsCodeCommitCreateApprovalRuleTemplateInput!, config: AwsConfig): AwsCodeCommitCreateApprovalRuleTemplateOutput
  createBranch(input: AwsCodeCommitCreateBranchInput!, config: AwsConfig): JSON
  createCommit(input: AwsCodeCommitCreateCommitInput!, config: AwsConfig): AwsCodeCommitCreateCommitOutput
  createPullRequest(input: AwsCodeCommitCreatePullRequestInput!, config: AwsConfig): AwsCodeCommitCreatePullRequestOutput
  createPullRequestApprovalRule(input: AwsCodeCommitCreatePullRequestApprovalRuleInput!, config: AwsConfig): AwsCodeCommitCreatePullRequestApprovalRuleOutput
  createRepository(input: AwsCodeCommitCreateRepositoryInput!, config: AwsConfig): AwsCodeCommitCreateRepositoryOutput
  createUnreferencedMergeCommit(input: AwsCodeCommitCreateUnreferencedMergeCommitInput!, config: AwsConfig): AwsCodeCommitCreateUnreferencedMergeCommitOutput
  deleteApprovalRuleTemplate(input: AwsCodeCommitDeleteApprovalRuleTemplateInput!, config: AwsConfig): AwsCodeCommitDeleteApprovalRuleTemplateOutput
  deleteBranch(input: AwsCodeCommitDeleteBranchInput!, config: AwsConfig): AwsCodeCommitDeleteBranchOutput
  deleteCommentContent(input: AwsCodeCommitDeleteCommentContentInput!, config: AwsConfig): AwsCodeCommitDeleteCommentContentOutput
  deleteFile(input: AwsCodeCommitDeleteFileInput!, config: AwsConfig): AwsCodeCommitDeleteFileOutput
  deletePullRequestApprovalRule(input: AwsCodeCommitDeletePullRequestApprovalRuleInput!, config: AwsConfig): AwsCodeCommitDeletePullRequestApprovalRuleOutput
  deleteRepository(input: AwsCodeCommitDeleteRepositoryInput!, config: AwsConfig): AwsCodeCommitDeleteRepositoryOutput
  describeMergeConflicts(input: AwsCodeCommitDescribeMergeConflictsInput!, config: AwsConfig): AwsCodeCommitDescribeMergeConflictsOutput
  describePullRequestEvents(input: AwsCodeCommitDescribePullRequestEventsInput!, config: AwsConfig): AwsCodeCommitDescribePullRequestEventsOutput
  disassociateApprovalRuleTemplateFromRepository(input: AwsCodeCommitDisassociateApprovalRuleTemplateFromRepositoryInput!, config: AwsConfig): JSON
  evaluatePullRequestApprovalRules(input: AwsCodeCommitEvaluatePullRequestApprovalRulesInput!, config: AwsConfig): AwsCodeCommitEvaluatePullRequestApprovalRulesOutput
  getApprovalRuleTemplate(input: AwsCodeCommitGetApprovalRuleTemplateInput!, config: AwsConfig): AwsCodeCommitGetApprovalRuleTemplateOutput
  getBlob(input: AwsCodeCommitGetBlobInput!, config: AwsConfig): AwsCodeCommitGetBlobOutput
  getBranch(input: AwsCodeCommitGetBranchInput, config: AwsConfig): AwsCodeCommitGetBranchOutput
  getComment(input: AwsCodeCommitGetCommentInput!, config: AwsConfig): AwsCodeCommitGetCommentOutput
  getCommentReactions(input: AwsCodeCommitGetCommentReactionsInput!, config: AwsConfig): AwsCodeCommitGetCommentReactionsOutput
  getCommentsForComparedCommit(input: AwsCodeCommitGetCommentsForComparedCommitInput!, config: AwsConfig): AwsCodeCommitGetCommentsForComparedCommitOutput
  getCommentsForPullRequest(input: AwsCodeCommitGetCommentsForPullRequestInput!, config: AwsConfig): AwsCodeCommitGetCommentsForPullRequestOutput
  getCommit(input: AwsCodeCommitGetCommitInput!, config: AwsConfig): AwsCodeCommitGetCommitOutput
  getDifferences(input: AwsCodeCommitGetDifferencesInput!, config: AwsConfig): AwsCodeCommitGetDifferencesOutput
  getFile(input: AwsCodeCommitGetFileInput!, config: AwsConfig): AwsCodeCommitGetFileOutput
  getFolder(input: AwsCodeCommitGetFolderInput!, config: AwsConfig): AwsCodeCommitGetFolderOutput
  getMergeCommit(input: AwsCodeCommitGetMergeCommitInput!, config: AwsConfig): AwsCodeCommitGetMergeCommitOutput
  getMergeConflicts(input: AwsCodeCommitGetMergeConflictsInput!, config: AwsConfig): AwsCodeCommitGetMergeConflictsOutput
  getMergeOptions(input: AwsCodeCommitGetMergeOptionsInput!, config: AwsConfig): AwsCodeCommitGetMergeOptionsOutput
  getPullRequest(input: AwsCodeCommitGetPullRequestInput!, config: AwsConfig): AwsCodeCommitGetPullRequestOutput
  getPullRequestApprovalStates(input: AwsCodeCommitGetPullRequestApprovalStatesInput!, config: AwsConfig): AwsCodeCommitGetPullRequestApprovalStatesOutput
  getPullRequestOverrideState(input: AwsCodeCommitGetPullRequestOverrideStateInput!, config: AwsConfig): AwsCodeCommitGetPullRequestOverrideStateOutput
  getRepository(input: AwsCodeCommitGetRepositoryInput!, config: AwsConfig): AwsCodeCommitGetRepositoryOutput
  getRepositoryTriggers(input: AwsCodeCommitGetRepositoryTriggersInput!, config: AwsConfig): AwsCodeCommitGetRepositoryTriggersOutput
  listApprovalRuleTemplates(input: AwsCodeCommitListApprovalRuleTemplatesInput, config: AwsConfig): AwsCodeCommitListApprovalRuleTemplatesOutput
  listAssociatedApprovalRuleTemplatesForRepository(input: AwsCodeCommitListAssociatedApprovalRuleTemplatesForRepositoryInput!, config: AwsConfig): AwsCodeCommitListAssociatedApprovalRuleTemplatesForRepositoryOutput
  listBranches(input: AwsCodeCommitListBranchesInput!, config: AwsConfig): AwsCodeCommitListBranchesOutput
  listPullRequests(input: AwsCodeCommitListPullRequestsInput!, config: AwsConfig): AwsCodeCommitListPullRequestsOutput
  listRepositories(input: AwsCodeCommitListRepositoriesInput, config: AwsConfig): AwsCodeCommitListRepositoriesOutput
  listRepositoriesForApprovalRuleTemplate(input: AwsCodeCommitListRepositoriesForApprovalRuleTemplateInput!, config: AwsConfig): AwsCodeCommitListRepositoriesForApprovalRuleTemplateOutput
  listTagsForResource(input: AwsCodeCommitListTagsForResourceInput!, config: AwsConfig): AwsCodeCommitListTagsForResourceOutput
  mergeBranchesByFastForward(input: AwsCodeCommitMergeBranchesByFastForwardInput!, config: AwsConfig): AwsCodeCommitMergeBranchesByFastForwardOutput
  mergeBranchesBySquash(input: AwsCodeCommitMergeBranchesBySquashInput!, config: AwsConfig): AwsCodeCommitMergeBranchesBySquashOutput
  mergeBranchesByThreeWay(input: AwsCodeCommitMergeBranchesByThreeWayInput!, config: AwsConfig): AwsCodeCommitMergeBranchesByThreeWayOutput
  mergePullRequestByFastForward(input: AwsCodeCommitMergePullRequestByFastForwardInput!, config: AwsConfig): AwsCodeCommitMergePullRequestByFastForwardOutput
  mergePullRequestBySquash(input: AwsCodeCommitMergePullRequestBySquashInput!, config: AwsConfig): AwsCodeCommitMergePullRequestBySquashOutput
  mergePullRequestByThreeWay(input: AwsCodeCommitMergePullRequestByThreeWayInput!, config: AwsConfig): AwsCodeCommitMergePullRequestByThreeWayOutput
  overridePullRequestApprovalRules(input: AwsCodeCommitOverridePullRequestApprovalRulesInput!, config: AwsConfig): JSON
  postCommentForComparedCommit(input: AwsCodeCommitPostCommentForComparedCommitInput!, config: AwsConfig): AwsCodeCommitPostCommentForComparedCommitOutput
  postCommentForPullRequest(input: AwsCodeCommitPostCommentForPullRequestInput!, config: AwsConfig): AwsCodeCommitPostCommentForPullRequestOutput
  postCommentReply(input: AwsCodeCommitPostCommentReplyInput!, config: AwsConfig): AwsCodeCommitPostCommentReplyOutput
  putCommentReaction(input: AwsCodeCommitPutCommentReactionInput!, config: AwsConfig): JSON
  putFile(input: AwsCodeCommitPutFileInput!, config: AwsConfig): AwsCodeCommitPutFileOutput
  putRepositoryTriggers(input: AwsCodeCommitPutRepositoryTriggersInput!, config: AwsConfig): AwsCodeCommitPutRepositoryTriggersOutput
  tagResource(input: AwsCodeCommitTagResourceInput!, config: AwsConfig): JSON
  testRepositoryTriggers(input: AwsCodeCommitTestRepositoryTriggersInput!, config: AwsConfig): AwsCodeCommitTestRepositoryTriggersOutput
  untagResource(input: AwsCodeCommitUntagResourceInput!, config: AwsConfig): JSON
  updateApprovalRuleTemplateContent(input: AwsCodeCommitUpdateApprovalRuleTemplateContentInput!, config: AwsConfig): AwsCodeCommitUpdateApprovalRuleTemplateContentOutput
  updateApprovalRuleTemplateDescription(input: AwsCodeCommitUpdateApprovalRuleTemplateDescriptionInput!, config: AwsConfig): AwsCodeCommitUpdateApprovalRuleTemplateDescriptionOutput
  updateApprovalRuleTemplateName(input: AwsCodeCommitUpdateApprovalRuleTemplateNameInput!, config: AwsConfig): AwsCodeCommitUpdateApprovalRuleTemplateNameOutput
  updateComment(input: AwsCodeCommitUpdateCommentInput!, config: AwsConfig): AwsCodeCommitUpdateCommentOutput
  updateDefaultBranch(input: AwsCodeCommitUpdateDefaultBranchInput!, config: AwsConfig): JSON
  updatePullRequestApprovalRuleContent(input: AwsCodeCommitUpdatePullRequestApprovalRuleContentInput!, config: AwsConfig): AwsCodeCommitUpdatePullRequestApprovalRuleContentOutput
  updatePullRequestApprovalState(input: AwsCodeCommitUpdatePullRequestApprovalStateInput!, config: AwsConfig): JSON
  updatePullRequestDescription(input: AwsCodeCommitUpdatePullRequestDescriptionInput!, config: AwsConfig): AwsCodeCommitUpdatePullRequestDescriptionOutput
  updatePullRequestStatus(input: AwsCodeCommitUpdatePullRequestStatusInput!, config: AwsConfig): AwsCodeCommitUpdatePullRequestStatusOutput
  updatePullRequestTitle(input: AwsCodeCommitUpdatePullRequestTitleInput!, config: AwsConfig): AwsCodeCommitUpdatePullRequestTitleOutput
  updateRepositoryDescription(input: AwsCodeCommitUpdateRepositoryDescriptionInput!, config: AwsConfig): JSON
  updateRepositoryName(input: AwsCodeCommitUpdateRepositoryNameInput!, config: AwsConfig): JSON
}

input AwsCodeCommitAssociateApprovalRuleTemplateWithRepositoryInput {
  approvalRuleTemplateName: String!
  repositoryName: String!
}

type AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesOutput {
  associatedRepositoryNames: [String]!
  errors: [AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesOutputErrors]!
}

type AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesOutputErrors {
  repositoryName: String
  errorCode: String
  errorMessage: String
}

input AwsCodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesInput {
  approvalRuleTemplateName: String!
  repositoryNames: [String]!
}

type AwsCodeCommitBatchDescribeMergeConflictsOutput {
  conflicts: [AwsCodeCommitBatchDescribeMergeConflictsOutputConflicts]!
  nextToken: String
  errors: [AwsCodeCommitBatchDescribeMergeConflictsOutputErrors]
  destinationCommitId: String!
  sourceCommitId: String!
  baseCommitId: String
}

type AwsCodeCommitBatchDescribeMergeConflictsOutputConflicts {
  conflictMetadata: AwsCodeCommitSn
  mergeHunks: [AwsCodeCommitS12]
}

type AwsCodeCommitSn {
  filePath: String
  fileSizes: AwsCodeCommitSnFileSizes
  fileModes: AwsCodeCommitSnFileModes
  objectTypes: AwsCodeCommitSnObjectTypes
  numberOfConflicts: Int
  isBinaryFile: AwsCodeCommitSnIsBinaryFile
  contentConflict: Boolean
  fileModeConflict: Boolean
  objectTypeConflict: Boolean
  mergeOperations: AwsCodeCommitSnMergeOperations
}

type AwsCodeCommitSnFileSizes {
  source: JSON
  destination: JSON
  base: JSON
}

type AwsCodeCommitSnFileModes {
  source: String
  destination: String
  base: String
}

type AwsCodeCommitSnObjectTypes {
  source: String
  destination: String
  base: String
}

type AwsCodeCommitSnIsBinaryFile {
  source: Boolean
  destination: Boolean
  base: Boolean
}

type AwsCodeCommitSnMergeOperations {
  source: String
  destination: String
}

type AwsCodeCommitS12 {
  isConflict: Boolean
  source: AwsCodeCommitS15
  destination: AwsCodeCommitS15
  base: AwsCodeCommitS15
}

type AwsCodeCommitS15 {
  startLine: Int
  endLine: Int
  hunkContent: String
}

type AwsCodeCommitBatchDescribeMergeConflictsOutputErrors {
  filePath: String!
  exceptionName: String!
  message: String!
}

input AwsCodeCommitBatchDescribeMergeConflictsInput {
  repositoryName: String!
  destinationCommitSpecifier: String!
  sourceCommitSpecifier: String!
  mergeOption: String!
  maxMergeHunks: Int
  maxConflictFiles: Int
  filePaths: [String]
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  nextToken: String
}

type AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesOutput {
  disassociatedRepositoryNames: [String]!
  errors: [AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesOutputErrors]!
}

type AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesOutputErrors {
  repositoryName: String
  errorCode: String
  errorMessage: String
}

input AwsCodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesInput {
  approvalRuleTemplateName: String!
  repositoryNames: [String]!
}

type AwsCodeCommitBatchGetCommitsOutput {
  commits: [AwsCodeCommitS1l]
  errors: [AwsCodeCommitBatchGetCommitsOutputErrors]
}

type AwsCodeCommitS1l {
  commitId: String
  treeId: String
  parents: [String]
  message: String
  author: AwsCodeCommitS1n
  committer: AwsCodeCommitS1n
  additionalData: String
}

type AwsCodeCommitS1n {
  name: String
  email: String
  date: String
}

type AwsCodeCommitBatchGetCommitsOutputErrors {
  commitId: String
  errorCode: String
  errorMessage: String
}

input AwsCodeCommitBatchGetCommitsInput {
  commitIds: [String]!
  repositoryName: String!
}

type AwsCodeCommitBatchGetRepositoriesOutput {
  repositories: [AwsCodeCommitS1x]
  repositoriesNotFound: [String]
}

type AwsCodeCommitS1x {
  accountId: String
  repositoryId: String
  repositoryName: String
  repositoryDescription: String
  defaultBranch: String
  lastModifiedDate: Date
  creationDate: Date
  cloneUrlHttp: String
  cloneUrlSsh: String
  Arn: String
}

input AwsCodeCommitBatchGetRepositoriesInput {
  repositoryNames: [String]!
}

type AwsCodeCommitCreateApprovalRuleTemplateOutput {
  approvalRuleTemplate: AwsCodeCommitS2c!
}

type AwsCodeCommitS2c {
  approvalRuleTemplateId: String
  approvalRuleTemplateName: String
  approvalRuleTemplateDescription: String
  approvalRuleTemplateContent: String
  ruleContentSha256: String
  lastModifiedDate: Date
  creationDate: Date
  lastModifiedUser: String
}

input AwsCodeCommitCreateApprovalRuleTemplateInput {
  approvalRuleTemplateName: String!
  approvalRuleTemplateContent: String!
  approvalRuleTemplateDescription: String
}

input AwsCodeCommitCreateBranchInput {
  repositoryName: String!
  branchName: String!
  commitId: String!
}

type AwsCodeCommitCreateCommitOutput {
  commitId: String
  treeId: String
  filesAdded: [AwsCodeCommitS2t]
  filesUpdated: [AwsCodeCommitS2t]
  filesDeleted: [AwsCodeCommitS2t]
}

type AwsCodeCommitS2t {
  absolutePath: String
  blobId: String
  fileMode: String
}

input AwsCodeCommitCreateCommitInput {
  repositoryName: String!
  branchName: String!
  parentCommitId: String
  authorName: String
  email: String
  commitMessage: String
  keepEmptyFolders: Boolean
  putFiles: [AwsCodeCommitCreateCommitPutFilesInput]
  deleteFiles: [AwsCodeCommitS2oInput]
  setFileModes: [AwsCodeCommitS2qInput]
}

input AwsCodeCommitCreateCommitPutFilesInput {
  filePath: String!
  fileMode: String
  fileContent: JSON
  sourceFile: AwsCodeCommitCreateCommitPutFilesSourceFileInput
}

input AwsCodeCommitCreateCommitPutFilesSourceFileInput {
  filePath: String!
  isMove: Boolean
}

input AwsCodeCommitS2oInput {
  filePath: String!
}

input AwsCodeCommitS2qInput {
  filePath: String!
  fileMode: String!
}

type AwsCodeCommitCreatePullRequestOutput {
  pullRequest: AwsCodeCommitS33!
}

type AwsCodeCommitS33 {
  pullRequestId: String
  title: String
  description: String
  lastActivityDate: Date
  creationDate: Date
  pullRequestStatus: String
  authorArn: String
  pullRequestTargets: [AwsCodeCommitS33PullRequestTargets]
  clientRequestToken: String
  revisionId: String
  approvalRules: [AwsCodeCommitS3c]
}

type AwsCodeCommitS33PullRequestTargets {
  repositoryName: String
  sourceReference: String
  destinationReference: String
  destinationCommit: String
  sourceCommit: String
  mergeBase: String
  mergeMetadata: AwsCodeCommitS38
}

type AwsCodeCommitS38 {
  isMerged: Boolean
  mergedBy: String
  mergeCommitId: String
  mergeOption: String
}

type AwsCodeCommitS3c {
  approvalRuleId: String
  approvalRuleName: String
  approvalRuleContent: String
  ruleContentSha256: String
  lastModifiedDate: Date
  creationDate: Date
  lastModifiedUser: String
  originApprovalRuleTemplate: AwsCodeCommitS3cOriginApprovalRuleTemplate
}

type AwsCodeCommitS3cOriginApprovalRuleTemplate {
  approvalRuleTemplateId: String
  approvalRuleTemplateName: String
}

input AwsCodeCommitCreatePullRequestInput {
  title: String!
  description: String
  targets: [AwsCodeCommitCreatePullRequestTargetsInput]!
  clientRequestToken: String
}

input AwsCodeCommitCreatePullRequestTargetsInput {
  repositoryName: String!
  sourceReference: String!
  destinationReference: String
}

type AwsCodeCommitCreatePullRequestApprovalRuleOutput {
  approvalRule: AwsCodeCommitS3c!
}

input AwsCodeCommitCreatePullRequestApprovalRuleInput {
  pullRequestId: String!
  approvalRuleName: String!
  approvalRuleContent: String!
}

type AwsCodeCommitCreateRepositoryOutput {
  repositoryMetadata: AwsCodeCommitS1x
}

input AwsCodeCommitCreateRepositoryInput {
  repositoryName: String!
  repositoryDescription: String
  tags: JSON
}

type AwsCodeCommitCreateUnreferencedMergeCommitOutput {
  commitId: String
  treeId: String
}

input AwsCodeCommitCreateUnreferencedMergeCommitInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  mergeOption: String!
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  authorName: String
  email: String
  commitMessage: String
  keepEmptyFolders: Boolean
  conflictResolution: AwsCodeCommitS3pInput
}

input AwsCodeCommitS3pInput {
  replaceContents: [AwsCodeCommitS3pReplaceContentsInput]
  deleteFiles: [AwsCodeCommitS2oInput]
  setFileModes: [AwsCodeCommitS2qInput]
}

input AwsCodeCommitS3pReplaceContentsInput {
  filePath: String!
  replacementType: String!
  content: JSON
  fileMode: String
}

type AwsCodeCommitDeleteApprovalRuleTemplateOutput {
  approvalRuleTemplateId: String!
}

input AwsCodeCommitDeleteApprovalRuleTemplateInput {
  approvalRuleTemplateName: String!
}

type AwsCodeCommitDeleteBranchOutput {
  deletedBranch: AwsCodeCommitS3y
}

type AwsCodeCommitS3y {
  branchName: String
  commitId: String
}

input AwsCodeCommitDeleteBranchInput {
  repositoryName: String!
  branchName: String!
}

type AwsCodeCommitDeleteCommentContentOutput {
  comment: AwsCodeCommitS42
}

type AwsCodeCommitS42 {
  commentId: String
  content: String
  inReplyTo: String
  creationDate: Date
  lastModifiedDate: Date
  authorArn: String
  deleted: Boolean
  clientRequestToken: String
  callerReactions: [String]
  reactionCounts: JSON
}

input AwsCodeCommitDeleteCommentContentInput {
  commentId: String!
}

type AwsCodeCommitDeleteFileOutput {
  commitId: String!
  blobId: String!
  treeId: String!
  filePath: String!
}

input AwsCodeCommitDeleteFileInput {
  repositoryName: String!
  branchName: String!
  filePath: String!
  parentCommitId: String!
  keepEmptyFolders: Boolean
  commitMessage: String
  name: String
  email: String
}

type AwsCodeCommitDeletePullRequestApprovalRuleOutput {
  approvalRuleId: String!
}

input AwsCodeCommitDeletePullRequestApprovalRuleInput {
  pullRequestId: String!
  approvalRuleName: String!
}

type AwsCodeCommitDeleteRepositoryOutput {
  repositoryId: String
}

input AwsCodeCommitDeleteRepositoryInput {
  repositoryName: String!
}

type AwsCodeCommitDescribeMergeConflictsOutput {
  conflictMetadata: AwsCodeCommitSn!
  mergeHunks: [AwsCodeCommitS12]!
  nextToken: String
  destinationCommitId: String!
  sourceCommitId: String!
  baseCommitId: String
}

input AwsCodeCommitDescribeMergeConflictsInput {
  repositoryName: String!
  destinationCommitSpecifier: String!
  sourceCommitSpecifier: String!
  mergeOption: String!
  maxMergeHunks: Int
  filePath: String!
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  nextToken: String
}

type AwsCodeCommitDescribePullRequestEventsOutput {
  pullRequestEvents: [AwsCodeCommitDescribePullRequestEventsOutputPullRequestEvents]!
  nextToken: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEvents {
  pullRequestId: String
  eventDate: Date
  pullRequestEventType: String
  actorArn: String
  pullRequestCreatedEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestCreatedEventMetadata
  pullRequestStatusChangedEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestStatusChangedEventMetadata
  pullRequestSourceReferenceUpdatedEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestSourceReferenceUpdatedEventMetadata
  pullRequestMergedStateChangedEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestMergedStateChangedEventMetadata
  approvalRuleEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalRuleEventMetadata
  approvalStateChangedEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalStateChangedEventMetadata
  approvalRuleOverriddenEventMetadata: AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalRuleOverriddenEventMetadata
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestCreatedEventMetadata {
  repositoryName: String
  sourceCommitId: String
  destinationCommitId: String
  mergeBase: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestStatusChangedEventMetadata {
  pullRequestStatus: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestSourceReferenceUpdatedEventMetadata {
  repositoryName: String
  beforeCommitId: String
  afterCommitId: String
  mergeBase: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsPullRequestMergedStateChangedEventMetadata {
  repositoryName: String
  destinationReference: String
  mergeMetadata: AwsCodeCommitS38
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalRuleEventMetadata {
  approvalRuleName: String
  approvalRuleId: String
  approvalRuleContent: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalStateChangedEventMetadata {
  revisionId: String
  approvalStatus: String
}

type AwsCodeCommitDescribePullRequestEventsOutputPullRequestEventsApprovalRuleOverriddenEventMetadata {
  revisionId: String
  overrideStatus: String
}

input AwsCodeCommitDescribePullRequestEventsInput {
  pullRequestId: String!
  pullRequestEventType: String
  actorArn: String
  nextToken: String
  maxResults: Int
}

input AwsCodeCommitDisassociateApprovalRuleTemplateFromRepositoryInput {
  approvalRuleTemplateName: String!
  repositoryName: String!
}

type AwsCodeCommitEvaluatePullRequestApprovalRulesOutput {
  evaluation: AwsCodeCommitEvaluatePullRequestApprovalRulesOutputEvaluation!
}

type AwsCodeCommitEvaluatePullRequestApprovalRulesOutputEvaluation {
  approved: Boolean
  overridden: Boolean
  approvalRulesSatisfied: [String]
  approvalRulesNotSatisfied: [String]
}

input AwsCodeCommitEvaluatePullRequestApprovalRulesInput {
  pullRequestId: String!
  revisionId: String!
}

type AwsCodeCommitGetApprovalRuleTemplateOutput {
  approvalRuleTemplate: AwsCodeCommitS2c!
}

input AwsCodeCommitGetApprovalRuleTemplateInput {
  approvalRuleTemplateName: String!
}

type AwsCodeCommitGetBlobOutput {
  content: JSON!
}

input AwsCodeCommitGetBlobInput {
  repositoryName: String!
  blobId: String!
}

type AwsCodeCommitGetBranchOutput {
  branch: AwsCodeCommitS3y
}

input AwsCodeCommitGetBranchInput {
  repositoryName: String
  branchName: String
}

type AwsCodeCommitGetCommentOutput {
  comment: AwsCodeCommitS42
}

input AwsCodeCommitGetCommentInput {
  commentId: String!
}

type AwsCodeCommitGetCommentReactionsOutput {
  reactionsForComment: [AwsCodeCommitGetCommentReactionsOutputReactionsForComment]!
  nextToken: String
}

type AwsCodeCommitGetCommentReactionsOutputReactionsForComment {
  reaction: AwsCodeCommitGetCommentReactionsOutputReactionsForCommentReaction
  reactionUsers: [String]
  reactionsFromDeletedUsersCount: Int
}

type AwsCodeCommitGetCommentReactionsOutputReactionsForCommentReaction {
  emoji: String
  shortCode: String
  unicode: String
}

input AwsCodeCommitGetCommentReactionsInput {
  commentId: String!
  reactionUserArn: String
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitGetCommentsForComparedCommitOutput {
  commentsForComparedCommitData: [AwsCodeCommitGetCommentsForComparedCommitOutputCommentsForComparedCommitData]
  nextToken: String
}

type AwsCodeCommitGetCommentsForComparedCommitOutputCommentsForComparedCommitData {
  repositoryName: String
  beforeCommitId: String
  afterCommitId: String
  beforeBlobId: String
  afterBlobId: String
  location: AwsCodeCommitS5q
  comments: [AwsCodeCommitS42]
}

type AwsCodeCommitS5q {
  filePath: String
  filePosition: JSON
  relativeFileVersion: String
}

input AwsCodeCommitGetCommentsForComparedCommitInput {
  repositoryName: String!
  beforeCommitId: String
  afterCommitId: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitGetCommentsForPullRequestOutput {
  commentsForPullRequestData: [AwsCodeCommitGetCommentsForPullRequestOutputCommentsForPullRequestData]
  nextToken: String
}

type AwsCodeCommitGetCommentsForPullRequestOutputCommentsForPullRequestData {
  pullRequestId: String
  repositoryName: String
  beforeCommitId: String
  afterCommitId: String
  beforeBlobId: String
  afterBlobId: String
  location: AwsCodeCommitS5q
  comments: [AwsCodeCommitS42]
}

input AwsCodeCommitGetCommentsForPullRequestInput {
  pullRequestId: String!
  repositoryName: String
  beforeCommitId: String
  afterCommitId: String
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitGetCommitOutput {
  commit: AwsCodeCommitS1l!
}

input AwsCodeCommitGetCommitInput {
  repositoryName: String!
  commitId: String!
}

type AwsCodeCommitGetDifferencesOutput {
  differences: [AwsCodeCommitGetDifferencesOutputDifferences]
  NextToken: String
}

type AwsCodeCommitGetDifferencesOutputDifferences {
  beforeBlob: AwsCodeCommitS65
  afterBlob: AwsCodeCommitS65
  changeType: String
}

type AwsCodeCommitS65 {
  blobId: String
  path: String
  mode: String
}

input AwsCodeCommitGetDifferencesInput {
  repositoryName: String!
  beforeCommitSpecifier: String
  afterCommitSpecifier: String!
  beforePath: String
  afterPath: String
  MaxResults: Int
  NextToken: String
}

type AwsCodeCommitGetFileOutput {
  commitId: String!
  blobId: String!
  filePath: String!
  fileMode: String!
  fileSize: JSON!
  fileContent: JSON!
}

input AwsCodeCommitGetFileInput {
  repositoryName: String!
  commitSpecifier: String
  filePath: String!
}

type AwsCodeCommitGetFolderOutput {
  commitId: String!
  folderPath: String!
  treeId: String
  subFolders: [AwsCodeCommitGetFolderOutputSubFolders]
  files: [AwsCodeCommitGetFolderOutputFiles]
  symbolicLinks: [AwsCodeCommitGetFolderOutputSymbolicLinks]
  subModules: [AwsCodeCommitGetFolderOutputSubModules]
}

type AwsCodeCommitGetFolderOutputSubFolders {
  treeId: String
  absolutePath: String
  relativePath: String
}

type AwsCodeCommitGetFolderOutputFiles {
  blobId: String
  absolutePath: String
  relativePath: String
  fileMode: String
}

type AwsCodeCommitGetFolderOutputSymbolicLinks {
  blobId: String
  absolutePath: String
  relativePath: String
  fileMode: String
}

type AwsCodeCommitGetFolderOutputSubModules {
  commitId: String
  absolutePath: String
  relativePath: String
}

input AwsCodeCommitGetFolderInput {
  repositoryName: String!
  commitSpecifier: String
  folderPath: String!
}

type AwsCodeCommitGetMergeCommitOutput {
  sourceCommitId: String
  destinationCommitId: String
  baseCommitId: String
  mergedCommitId: String
}

input AwsCodeCommitGetMergeCommitInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  conflictDetailLevel: String
  conflictResolutionStrategy: String
}

type AwsCodeCommitGetMergeConflictsOutput {
  mergeable: Boolean!
  destinationCommitId: String!
  sourceCommitId: String!
  baseCommitId: String
  conflictMetadataList: [AwsCodeCommitSn]!
  nextToken: String
}

input AwsCodeCommitGetMergeConflictsInput {
  repositoryName: String!
  destinationCommitSpecifier: String!
  sourceCommitSpecifier: String!
  mergeOption: String!
  conflictDetailLevel: String
  maxConflictFiles: Int
  conflictResolutionStrategy: String
  nextToken: String
}

type AwsCodeCommitGetMergeOptionsOutput {
  mergeOptions: [String]!
  sourceCommitId: String!
  destinationCommitId: String!
  baseCommitId: String!
}

input AwsCodeCommitGetMergeOptionsInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  conflictDetailLevel: String
  conflictResolutionStrategy: String
}

type AwsCodeCommitGetPullRequestOutput {
  pullRequest: AwsCodeCommitS33!
}

input AwsCodeCommitGetPullRequestInput {
  pullRequestId: String!
}

type AwsCodeCommitGetPullRequestApprovalStatesOutput {
  approvals: [AwsCodeCommitGetPullRequestApprovalStatesOutputApprovals]
}

type AwsCodeCommitGetPullRequestApprovalStatesOutputApprovals {
  userArn: String
  approvalState: String
}

input AwsCodeCommitGetPullRequestApprovalStatesInput {
  pullRequestId: String!
  revisionId: String!
}

type AwsCodeCommitGetPullRequestOverrideStateOutput {
  overridden: Boolean
  overrider: String
}

input AwsCodeCommitGetPullRequestOverrideStateInput {
  pullRequestId: String!
  revisionId: String!
}

type AwsCodeCommitGetRepositoryOutput {
  repositoryMetadata: AwsCodeCommitS1x
}

input AwsCodeCommitGetRepositoryInput {
  repositoryName: String!
}

type AwsCodeCommitGetRepositoryTriggersOutput {
  configurationId: String
  triggers: [AwsCodeCommitS76]
}

type AwsCodeCommitS76 {
  name: String!
  destinationArn: String!
  customData: String
  branches: [String]
  events: [String]!
}

input AwsCodeCommitGetRepositoryTriggersInput {
  repositoryName: String!
}

type AwsCodeCommitListApprovalRuleTemplatesOutput {
  approvalRuleTemplateNames: [String]
  nextToken: String
}

input AwsCodeCommitListApprovalRuleTemplatesInput {
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitListAssociatedApprovalRuleTemplatesForRepositoryOutput {
  approvalRuleTemplateNames: [String]
  nextToken: String
}

input AwsCodeCommitListAssociatedApprovalRuleTemplatesForRepositoryInput {
  repositoryName: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitListBranchesOutput {
  branches: [String]
  nextToken: String
}

input AwsCodeCommitListBranchesInput {
  repositoryName: String!
  nextToken: String
}

type AwsCodeCommitListPullRequestsOutput {
  pullRequestIds: [String]!
  nextToken: String
}

input AwsCodeCommitListPullRequestsInput {
  repositoryName: String!
  authorArn: String
  pullRequestStatus: String
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitListRepositoriesOutput {
  repositories: [AwsCodeCommitListRepositoriesOutputRepositories]
  nextToken: String
}

type AwsCodeCommitListRepositoriesOutputRepositories {
  repositoryName: String
  repositoryId: String
}

input AwsCodeCommitListRepositoriesInput {
  nextToken: String
  sortBy: String
  order: String
}

type AwsCodeCommitListRepositoriesForApprovalRuleTemplateOutput {
  repositoryNames: [String]
  nextToken: String
}

input AwsCodeCommitListRepositoriesForApprovalRuleTemplateInput {
  approvalRuleTemplateName: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeCommitListTagsForResourceOutput {
  tags: JSON
  nextToken: String
}

input AwsCodeCommitListTagsForResourceInput {
  resourceArn: String!
  nextToken: String
}

type AwsCodeCommitMergeBranchesByFastForwardOutput {
  commitId: String
  treeId: String
}

input AwsCodeCommitMergeBranchesByFastForwardInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  targetBranch: String
}

type AwsCodeCommitMergeBranchesBySquashOutput {
  commitId: String
  treeId: String
}

input AwsCodeCommitMergeBranchesBySquashInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  targetBranch: String
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  authorName: String
  email: String
  commitMessage: String
  keepEmptyFolders: Boolean
  conflictResolution: AwsCodeCommitS3pInput
}

type AwsCodeCommitMergeBranchesByThreeWayOutput {
  commitId: String
  treeId: String
}

input AwsCodeCommitMergeBranchesByThreeWayInput {
  repositoryName: String!
  sourceCommitSpecifier: String!
  destinationCommitSpecifier: String!
  targetBranch: String
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  authorName: String
  email: String
  commitMessage: String
  keepEmptyFolders: Boolean
  conflictResolution: AwsCodeCommitS3pInput
}

type AwsCodeCommitMergePullRequestByFastForwardOutput {
  pullRequest: AwsCodeCommitS33
}

input AwsCodeCommitMergePullRequestByFastForwardInput {
  pullRequestId: String!
  repositoryName: String!
  sourceCommitId: String
}

type AwsCodeCommitMergePullRequestBySquashOutput {
  pullRequest: AwsCodeCommitS33
}

input AwsCodeCommitMergePullRequestBySquashInput {
  pullRequestId: String!
  repositoryName: String!
  sourceCommitId: String
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  commitMessage: String
  authorName: String
  email: String
  keepEmptyFolders: Boolean
  conflictResolution: AwsCodeCommitS3pInput
}

type AwsCodeCommitMergePullRequestByThreeWayOutput {
  pullRequest: AwsCodeCommitS33
}

input AwsCodeCommitMergePullRequestByThreeWayInput {
  pullRequestId: String!
  repositoryName: String!
  sourceCommitId: String
  conflictDetailLevel: String
  conflictResolutionStrategy: String
  commitMessage: String
  authorName: String
  email: String
  keepEmptyFolders: Boolean
  conflictResolution: AwsCodeCommitS3pInput
}

input AwsCodeCommitOverridePullRequestApprovalRulesInput {
  pullRequestId: String!
  revisionId: String!
  overrideStatus: String!
}

type AwsCodeCommitPostCommentForComparedCommitOutput {
  repositoryName: String
  beforeCommitId: String
  afterCommitId: String
  beforeBlobId: String
  afterBlobId: String
  location: AwsCodeCommitS5q
  comment: AwsCodeCommitS42
}

input AwsCodeCommitPostCommentForComparedCommitInput {
  repositoryName: String!
  beforeCommitId: String
  afterCommitId: String!
  location: AwsCodeCommitS5qInput
  content: String!
  clientRequestToken: String
}

input AwsCodeCommitS5qInput {
  filePath: String
  filePosition: JSON
  relativeFileVersion: String
}

type AwsCodeCommitPostCommentForPullRequestOutput {
  repositoryName: String
  pullRequestId: String
  beforeCommitId: String
  afterCommitId: String
  beforeBlobId: String
  afterBlobId: String
  location: AwsCodeCommitS5q
  comment: AwsCodeCommitS42
}

input AwsCodeCommitPostCommentForPullRequestInput {
  pullRequestId: String!
  repositoryName: String!
  beforeCommitId: String!
  afterCommitId: String!
  location: AwsCodeCommitS5qInput
  content: String!
  clientRequestToken: String
}

type AwsCodeCommitPostCommentReplyOutput {
  comment: AwsCodeCommitS42
}

input AwsCodeCommitPostCommentReplyInput {
  inReplyTo: String!
  clientRequestToken: String
  content: String!
}

input AwsCodeCommitPutCommentReactionInput {
  commentId: String!
  reactionValue: String!
}

type AwsCodeCommitPutFileOutput {
  commitId: String!
  blobId: String!
  treeId: String!
}

input AwsCodeCommitPutFileInput {
  repositoryName: String!
  branchName: String!
  fileContent: JSON!
  filePath: String!
  fileMode: String
  parentCommitId: String
  commitMessage: String
  name: String
  email: String
}

type AwsCodeCommitPutRepositoryTriggersOutput {
  configurationId: String
}

input AwsCodeCommitPutRepositoryTriggersInput {
  repositoryName: String!
  triggers: [AwsCodeCommitS76Input]!
}

input AwsCodeCommitS76Input {
  name: String!
  destinationArn: String!
  customData: String
  branches: [String]
  events: [String]!
}

input AwsCodeCommitTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

type AwsCodeCommitTestRepositoryTriggersOutput {
  successfulExecutions: [String]
  failedExecutions: [AwsCodeCommitTestRepositoryTriggersOutputFailedExecutions]
}

type AwsCodeCommitTestRepositoryTriggersOutputFailedExecutions {
  trigger: String
  failureMessage: String
}

input AwsCodeCommitTestRepositoryTriggersInput {
  repositoryName: String!
  triggers: [AwsCodeCommitS76Input]!
}

input AwsCodeCommitUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsCodeCommitUpdateApprovalRuleTemplateContentOutput {
  approvalRuleTemplate: AwsCodeCommitS2c!
}

input AwsCodeCommitUpdateApprovalRuleTemplateContentInput {
  approvalRuleTemplateName: String!
  newRuleContent: String!
  existingRuleContentSha256: String
}

type AwsCodeCommitUpdateApprovalRuleTemplateDescriptionOutput {
  approvalRuleTemplate: AwsCodeCommitS2c!
}

input AwsCodeCommitUpdateApprovalRuleTemplateDescriptionInput {
  approvalRuleTemplateName: String!
  approvalRuleTemplateDescription: String!
}

type AwsCodeCommitUpdateApprovalRuleTemplateNameOutput {
  approvalRuleTemplate: AwsCodeCommitS2c!
}

input AwsCodeCommitUpdateApprovalRuleTemplateNameInput {
  oldApprovalRuleTemplateName: String!
  newApprovalRuleTemplateName: String!
}

type AwsCodeCommitUpdateCommentOutput {
  comment: AwsCodeCommitS42
}

input AwsCodeCommitUpdateCommentInput {
  commentId: String!
  content: String!
}

input AwsCodeCommitUpdateDefaultBranchInput {
  repositoryName: String!
  defaultBranchName: String!
}

type AwsCodeCommitUpdatePullRequestApprovalRuleContentOutput {
  approvalRule: AwsCodeCommitS3c!
}

input AwsCodeCommitUpdatePullRequestApprovalRuleContentInput {
  pullRequestId: String!
  approvalRuleName: String!
  existingRuleContentSha256: String
  newRuleContent: String!
}

input AwsCodeCommitUpdatePullRequestApprovalStateInput {
  pullRequestId: String!
  revisionId: String!
  approvalState: String!
}

type AwsCodeCommitUpdatePullRequestDescriptionOutput {
  pullRequest: AwsCodeCommitS33!
}

input AwsCodeCommitUpdatePullRequestDescriptionInput {
  pullRequestId: String!
  description: String!
}

type AwsCodeCommitUpdatePullRequestStatusOutput {
  pullRequest: AwsCodeCommitS33!
}

input AwsCodeCommitUpdatePullRequestStatusInput {
  pullRequestId: String!
  pullRequestStatus: String!
}

type AwsCodeCommitUpdatePullRequestTitleOutput {
  pullRequest: AwsCodeCommitS33!
}

input AwsCodeCommitUpdatePullRequestTitleInput {
  pullRequestId: String!
  title: String!
}

input AwsCodeCommitUpdateRepositoryDescriptionInput {
  repositoryName: String!
  repositoryDescription: String
}

input AwsCodeCommitUpdateRepositoryNameInput {
  oldName: String!
  newName: String!
}

"""AWS CodeDeploy (2014-10-06)"""
type AwsCodeDeploy {
  addTagsToOnPremisesInstances(input: AwsCodeDeployAddTagsToOnPremisesInstancesInput!, config: AwsConfig): JSON
  batchGetApplicationRevisions(input: AwsCodeDeployBatchGetApplicationRevisionsInput!, config: AwsConfig): AwsCodeDeployBatchGetApplicationRevisionsOutput
  batchGetApplications(input: AwsCodeDeployBatchGetApplicationsInput!, config: AwsConfig): AwsCodeDeployBatchGetApplicationsOutput
  batchGetDeploymentGroups(input: AwsCodeDeployBatchGetDeploymentGroupsInput!, config: AwsConfig): AwsCodeDeployBatchGetDeploymentGroupsOutput
  batchGetDeploymentInstances(input: AwsCodeDeployBatchGetDeploymentInstancesInput!, config: AwsConfig): AwsCodeDeployBatchGetDeploymentInstancesOutput
  batchGetDeploymentTargets(input: AwsCodeDeployBatchGetDeploymentTargetsInput, config: AwsConfig): AwsCodeDeployBatchGetDeploymentTargetsOutput
  batchGetDeployments(input: AwsCodeDeployBatchGetDeploymentsInput!, config: AwsConfig): AwsCodeDeployBatchGetDeploymentsOutput
  batchGetOnPremisesInstances(input: AwsCodeDeployBatchGetOnPremisesInstancesInput!, config: AwsConfig): AwsCodeDeployBatchGetOnPremisesInstancesOutput
  continueDeployment(input: AwsCodeDeployContinueDeploymentInput, config: AwsConfig): JSON
  createApplication(input: AwsCodeDeployCreateApplicationInput!, config: AwsConfig): AwsCodeDeployCreateApplicationOutput
  createDeployment(input: AwsCodeDeployCreateDeploymentInput!, config: AwsConfig): AwsCodeDeployCreateDeploymentOutput
  createDeploymentConfig(input: AwsCodeDeployCreateDeploymentConfigInput!, config: AwsConfig): AwsCodeDeployCreateDeploymentConfigOutput
  createDeploymentGroup(input: AwsCodeDeployCreateDeploymentGroupInput!, config: AwsConfig): AwsCodeDeployCreateDeploymentGroupOutput
  deleteApplication(input: AwsCodeDeployDeleteApplicationInput!, config: AwsConfig): JSON
  deleteDeploymentConfig(input: AwsCodeDeployDeleteDeploymentConfigInput!, config: AwsConfig): JSON
  deleteDeploymentGroup(input: AwsCodeDeployDeleteDeploymentGroupInput!, config: AwsConfig): AwsCodeDeployDeleteDeploymentGroupOutput
  deleteGitHubAccountToken(input: AwsCodeDeployDeleteGitHubAccountTokenInput, config: AwsConfig): AwsCodeDeployDeleteGitHubAccountTokenOutput
  deleteResourcesByExternalId(input: AwsCodeDeployDeleteResourcesByExternalIdInput, config: AwsConfig): JSON
  deregisterOnPremisesInstance(input: AwsCodeDeployDeregisterOnPremisesInstanceInput!, config: AwsConfig): JSON
  getApplication(input: AwsCodeDeployGetApplicationInput!, config: AwsConfig): AwsCodeDeployGetApplicationOutput
  getApplicationRevision(input: AwsCodeDeployGetApplicationRevisionInput!, config: AwsConfig): AwsCodeDeployGetApplicationRevisionOutput
  getDeployment(input: AwsCodeDeployGetDeploymentInput!, config: AwsConfig): AwsCodeDeployGetDeploymentOutput
  getDeploymentConfig(input: AwsCodeDeployGetDeploymentConfigInput!, config: AwsConfig): AwsCodeDeployGetDeploymentConfigOutput
  getDeploymentGroup(input: AwsCodeDeployGetDeploymentGroupInput!, config: AwsConfig): AwsCodeDeployGetDeploymentGroupOutput
  getDeploymentInstance(input: AwsCodeDeployGetDeploymentInstanceInput!, config: AwsConfig): AwsCodeDeployGetDeploymentInstanceOutput
  getDeploymentTarget(input: AwsCodeDeployGetDeploymentTargetInput, config: AwsConfig): AwsCodeDeployGetDeploymentTargetOutput
  getOnPremisesInstance(input: AwsCodeDeployGetOnPremisesInstanceInput!, config: AwsConfig): AwsCodeDeployGetOnPremisesInstanceOutput
  listApplicationRevisions(input: AwsCodeDeployListApplicationRevisionsInput!, config: AwsConfig): AwsCodeDeployListApplicationRevisionsOutput
  listApplications(input: AwsCodeDeployListApplicationsInput, config: AwsConfig): AwsCodeDeployListApplicationsOutput
  listDeploymentConfigs(input: AwsCodeDeployListDeploymentConfigsInput, config: AwsConfig): AwsCodeDeployListDeploymentConfigsOutput
  listDeploymentGroups(input: AwsCodeDeployListDeploymentGroupsInput!, config: AwsConfig): AwsCodeDeployListDeploymentGroupsOutput
  listDeploymentInstances(input: AwsCodeDeployListDeploymentInstancesInput!, config: AwsConfig): AwsCodeDeployListDeploymentInstancesOutput
  listDeploymentTargets(input: AwsCodeDeployListDeploymentTargetsInput, config: AwsConfig): AwsCodeDeployListDeploymentTargetsOutput
  listDeployments(input: AwsCodeDeployListDeploymentsInput, config: AwsConfig): AwsCodeDeployListDeploymentsOutput
  listGitHubAccountTokenNames(input: AwsCodeDeployListGitHubAccountTokenNamesInput, config: AwsConfig): AwsCodeDeployListGitHubAccountTokenNamesOutput
  listOnPremisesInstances(input: AwsCodeDeployListOnPremisesInstancesInput, config: AwsConfig): AwsCodeDeployListOnPremisesInstancesOutput
  listTagsForResource(input: AwsCodeDeployListTagsForResourceInput!, config: AwsConfig): AwsCodeDeployListTagsForResourceOutput
  putLifecycleEventHookExecutionStatus(input: AwsCodeDeployPutLifecycleEventHookExecutionStatusInput, config: AwsConfig): AwsCodeDeployPutLifecycleEventHookExecutionStatusOutput
  registerApplicationRevision(input: AwsCodeDeployRegisterApplicationRevisionInput!, config: AwsConfig): JSON
  registerOnPremisesInstance(input: AwsCodeDeployRegisterOnPremisesInstanceInput!, config: AwsConfig): JSON
  removeTagsFromOnPremisesInstances(input: AwsCodeDeployRemoveTagsFromOnPremisesInstancesInput!, config: AwsConfig): JSON
  skipWaitTimeForInstanceTermination(input: AwsCodeDeploySkipWaitTimeForInstanceTerminationInput, config: AwsConfig): JSON
  stopDeployment(input: AwsCodeDeployStopDeploymentInput!, config: AwsConfig): AwsCodeDeployStopDeploymentOutput
  tagResource(input: AwsCodeDeployTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodeDeployUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsCodeDeployUpdateApplicationInput, config: AwsConfig): JSON
  updateDeploymentGroup(input: AwsCodeDeployUpdateDeploymentGroupInput!, config: AwsConfig): AwsCodeDeployUpdateDeploymentGroupOutput
}

input AwsCodeDeployAddTagsToOnPremisesInstancesInput {
  tags: [AwsCodeDeployS2Input]!
  instanceNames: [String]!
}

input AwsCodeDeployS2Input {
  Key: String
  Value: String
}

type AwsCodeDeployBatchGetApplicationRevisionsOutput {
  applicationName: String
  errorMessage: String
  revisions: [AwsCodeDeployBatchGetApplicationRevisionsOutputRevisions]
}

type AwsCodeDeployBatchGetApplicationRevisionsOutputRevisions {
  revisionLocation: AwsCodeDeploySb
  genericRevisionInfo: AwsCodeDeploySu
}

type AwsCodeDeploySb {
  revisionType: String
  s3Location: AwsCodeDeploySbS3Location
  gitHubLocation: AwsCodeDeploySbGitHubLocation
  string: AwsCodeDeploySbString
  appSpecContent: AwsCodeDeploySbAppSpecContent
}

type AwsCodeDeploySbS3Location {
  bucket: String
  key: String
  bundleType: String
  version: String
  eTag: String
}

type AwsCodeDeploySbGitHubLocation {
  repository: String
  commitId: String
}

type AwsCodeDeploySbString {
  content: String
  sha256: String
}

type AwsCodeDeploySbAppSpecContent {
  content: String
  sha256: String
}

type AwsCodeDeploySu {
  description: String
  deploymentGroups: [String]
  firstUsedTime: Date
  lastUsedTime: Date
  registerTime: Date
}

input AwsCodeDeployBatchGetApplicationRevisionsInput {
  applicationName: String!
  revisions: [AwsCodeDeploySbInput]!
}

input AwsCodeDeploySbInput {
  revisionType: String
  s3Location: AwsCodeDeploySbS3LocationInput
  gitHubLocation: AwsCodeDeploySbGitHubLocationInput
  string: AwsCodeDeploySbStringInput
  appSpecContent: AwsCodeDeploySbAppSpecContentInput
}

input AwsCodeDeploySbS3LocationInput {
  bucket: String
  key: String
  bundleType: String
  version: String
  eTag: String
}

input AwsCodeDeploySbGitHubLocationInput {
  repository: String
  commitId: String
}

input AwsCodeDeploySbStringInput {
  content: String
  sha256: String
}

input AwsCodeDeploySbAppSpecContentInput {
  content: String
  sha256: String
}

type AwsCodeDeployBatchGetApplicationsOutput {
  applicationsInfo: [AwsCodeDeployS13]
}

type AwsCodeDeployS13 {
  applicationId: String
  applicationName: String
  createTime: Date
  linkedToGitHub: Boolean
  gitHubAccountName: String
  computePlatform: String
}

input AwsCodeDeployBatchGetApplicationsInput {
  applicationNames: [String]!
}

type AwsCodeDeployBatchGetDeploymentGroupsOutput {
  deploymentGroupsInfo: [AwsCodeDeployS1b]
  errorMessage: String
}

type AwsCodeDeployS1b {
  applicationName: String
  deploymentGroupId: String
  deploymentGroupName: String
  deploymentConfigName: String
  ec2TagFilters: [AwsCodeDeployS1e]
  onPremisesInstanceTagFilters: [AwsCodeDeployS1h]
  autoScalingGroups: [AwsCodeDeployS1k]
  serviceRoleArn: String
  targetRevision: AwsCodeDeploySb
  triggerConfigurations: [AwsCodeDeployS1p]
  alarmConfiguration: AwsCodeDeployS1v
  autoRollbackConfiguration: AwsCodeDeployS1z
  deploymentStyle: AwsCodeDeployS22
  outdatedInstancesStrategy: String
  blueGreenDeploymentConfiguration: AwsCodeDeployS26
  loadBalancerInfo: AwsCodeDeployS2e
  lastSuccessfulDeployment: AwsCodeDeployS2q
  lastAttemptedDeployment: AwsCodeDeployS2q
  ec2TagSet: AwsCodeDeployS2t
  onPremisesTagSet: AwsCodeDeployS2v
  computePlatform: String
  ecsServices: [AwsCodeDeployS2x]
}

type AwsCodeDeployS1e {
  Key: String
  Value: String
  Type: String
}

type AwsCodeDeployS1h {
  Key: String
  Value: String
  Type: String
}

type AwsCodeDeployS1k {
  name: String
  hook: String
}

type AwsCodeDeployS1p {
  triggerName: String
  triggerTargetArn: String
  triggerEvents: [String]
}

type AwsCodeDeployS1v {
  enabled: Boolean
  ignorePollAlarmFailure: Boolean
  alarms: [AwsCodeDeployS1vAlarms]
}

type AwsCodeDeployS1vAlarms {
  name: String
}

type AwsCodeDeployS1z {
  enabled: Boolean
  events: [String]
}

type AwsCodeDeployS22 {
  deploymentType: String
  deploymentOption: String
}

type AwsCodeDeployS26 {
  terminateBlueInstancesOnDeploymentSuccess: AwsCodeDeployS26TerminateBlueInstancesOnDeploymentSuccess
  deploymentReadyOption: AwsCodeDeployS26DeploymentReadyOption
  greenFleetProvisioningOption: AwsCodeDeployS26GreenFleetProvisioningOption
}

type AwsCodeDeployS26TerminateBlueInstancesOnDeploymentSuccess {
  action: String
  terminationWaitTimeInMinutes: Int
}

type AwsCodeDeployS26DeploymentReadyOption {
  actionOnTimeout: String
  waitTimeInMinutes: Int
}

type AwsCodeDeployS26GreenFleetProvisioningOption {
  action: String
}

type AwsCodeDeployS2e {
  elbInfoList: [AwsCodeDeployS2eElbInfoList]
  targetGroupInfoList: [AwsCodeDeployS2j]
  targetGroupPairInfoList: [AwsCodeDeployS2eTargetGroupPairInfoList]
}

type AwsCodeDeployS2eElbInfoList {
  name: String
}

type AwsCodeDeployS2j {
  name: String
}

type AwsCodeDeployS2eTargetGroupPairInfoList {
  targetGroups: [AwsCodeDeployS2j]
  prodTrafficRoute: AwsCodeDeployS2n
  testTrafficRoute: AwsCodeDeployS2n
}

type AwsCodeDeployS2n {
  listenerArns: [String]
}

type AwsCodeDeployS2q {
  deploymentId: String
  status: String
  endTime: Date
  createTime: Date
}

type AwsCodeDeployS2t {
  ec2TagSetList: [[AwsCodeDeployS1e]]
}

type AwsCodeDeployS2v {
  onPremisesTagSetList: [[AwsCodeDeployS1h]]
}

type AwsCodeDeployS2x {
  serviceName: String
  clusterName: String
}

input AwsCodeDeployBatchGetDeploymentGroupsInput {
  applicationName: String!
  deploymentGroupNames: [String]!
}

type AwsCodeDeployBatchGetDeploymentInstancesOutput {
  instancesSummary: [AwsCodeDeployS36]
  errorMessage: String
}

type AwsCodeDeployS36 {
  deploymentId: String
  instanceId: String
  status: String
  lastUpdatedAt: Date
  lifecycleEvents: [AwsCodeDeployS38]
  instanceType: String
}

type AwsCodeDeployS38 {
  lifecycleEventName: String
  diagnostics: AwsCodeDeployS38Diagnostics
  startTime: Date
  endTime: Date
  status: String
}

type AwsCodeDeployS38Diagnostics {
  errorCode: String
  scriptName: String
  message: String
  logTail: String
}

input AwsCodeDeployBatchGetDeploymentInstancesInput {
  deploymentId: String!
  instanceIds: [String]!
}

type AwsCodeDeployBatchGetDeploymentTargetsOutput {
  deploymentTargets: [AwsCodeDeployS3n]
}

type AwsCodeDeployS3n {
  deploymentTargetType: String
  instanceTarget: AwsCodeDeployS3nInstanceTarget
  lambdaTarget: AwsCodeDeployS3nLambdaTarget
  ecsTarget: AwsCodeDeployS3nEcsTarget
  cloudFormationTarget: AwsCodeDeployS3nCloudFormationTarget
}

type AwsCodeDeployS3nInstanceTarget {
  deploymentId: String
  targetId: String
  targetArn: String
  status: String
  lastUpdatedAt: Date
  lifecycleEvents: [AwsCodeDeployS38]
  instanceLabel: String
}

type AwsCodeDeployS3nLambdaTarget {
  deploymentId: String
  targetId: String
  targetArn: String
  status: String
  lastUpdatedAt: Date
  lifecycleEvents: [AwsCodeDeployS38]
  lambdaFunctionInfo: AwsCodeDeployS3nLambdaTargetLambdaFunctionInfo
}

type AwsCodeDeployS3nLambdaTargetLambdaFunctionInfo {
  functionName: String
  functionAlias: String
  currentVersion: String
  targetVersion: String
  targetVersionWeight: JSON
}

type AwsCodeDeployS3nEcsTarget {
  deploymentId: String
  targetId: String
  targetArn: String
  lastUpdatedAt: Date
  lifecycleEvents: [AwsCodeDeployS38]
  status: String
  taskSetsInfo: [AwsCodeDeployS3nEcsTargetTaskSetsInfo]
}

type AwsCodeDeployS3nEcsTargetTaskSetsInfo {
  identifer: String
  desiredCount: JSON
  pendingCount: JSON
  runningCount: JSON
  status: String
  trafficWeight: JSON
  targetGroup: AwsCodeDeployS2j
  taskSetLabel: String
}

type AwsCodeDeployS3nCloudFormationTarget {
  deploymentId: String
  targetId: String
  lastUpdatedAt: Date
  lifecycleEvents: [AwsCodeDeployS38]
  status: String
  resourceType: String
  targetVersionWeight: JSON
}

input AwsCodeDeployBatchGetDeploymentTargetsInput {
  deploymentId: String
  targetIds: [String]
}

type AwsCodeDeployBatchGetDeploymentsOutput {
  deploymentsInfo: [AwsCodeDeployS4c]
}

type AwsCodeDeployS4c {
  applicationName: String
  deploymentGroupName: String
  deploymentConfigName: String
  deploymentId: String
  previousRevision: AwsCodeDeploySb
  revision: AwsCodeDeploySb
  status: String
  errorInformation: AwsCodeDeployS4cErrorInformation
  createTime: Date
  startTime: Date
  completeTime: Date
  deploymentOverview: AwsCodeDeployS4cDeploymentOverview
  description: String
  creator: String
  ignoreApplicationStopFailures: Boolean
  autoRollbackConfiguration: AwsCodeDeployS1z
  updateOutdatedInstancesOnly: Boolean
  rollbackInfo: AwsCodeDeployS4cRollbackInfo
  deploymentStyle: AwsCodeDeployS22
  targetInstances: AwsCodeDeployS4j
  instanceTerminationWaitTimeStarted: Boolean
  blueGreenDeploymentConfiguration: AwsCodeDeployS26
  loadBalancerInfo: AwsCodeDeployS2e
  additionalDeploymentStatusInfo: String
  fileExistsBehavior: String
  deploymentStatusMessages: [String]
  computePlatform: String
  externalId: String
  relatedDeployments: AwsCodeDeployS4cRelatedDeployments
}

type AwsCodeDeployS4cErrorInformation {
  code: String
  message: String
}

type AwsCodeDeployS4cDeploymentOverview {
  Pending: JSON
  InProgress: JSON
  Succeeded: JSON
  Failed: JSON
  Skipped: JSON
  Ready: JSON
}

type AwsCodeDeployS4cRollbackInfo {
  rollbackDeploymentId: String
  rollbackTriggeringDeploymentId: String
  rollbackMessage: String
}

type AwsCodeDeployS4j {
  tagFilters: [AwsCodeDeployS1e]
  autoScalingGroups: [String]
  ec2TagSet: AwsCodeDeployS2t
}

type AwsCodeDeployS4cRelatedDeployments {
  autoUpdateOutdatedInstancesRootDeploymentId: String
  autoUpdateOutdatedInstancesDeploymentIds: [String]
}

input AwsCodeDeployBatchGetDeploymentsInput {
  deploymentIds: [String]!
}

type AwsCodeDeployBatchGetOnPremisesInstancesOutput {
  instanceInfos: [AwsCodeDeployS4t]
}

type AwsCodeDeployS4t {
  instanceName: String
  iamSessionArn: String
  iamUserArn: String
  instanceArn: String
  registerTime: Date
  deregisterTime: Date
  tags: [AwsCodeDeployS2]
}

type AwsCodeDeployS2 {
  Key: String
  Value: String
}

input AwsCodeDeployBatchGetOnPremisesInstancesInput {
  instanceNames: [String]!
}

input AwsCodeDeployContinueDeploymentInput {
  deploymentId: String
  deploymentWaitType: String
}

type AwsCodeDeployCreateApplicationOutput {
  applicationId: String
}

input AwsCodeDeployCreateApplicationInput {
  applicationName: String!
  computePlatform: String
  tags: [AwsCodeDeployS2Input]
}

type AwsCodeDeployCreateDeploymentOutput {
  deploymentId: String
}

input AwsCodeDeployCreateDeploymentInput {
  applicationName: String!
  deploymentGroupName: String
  revision: AwsCodeDeploySbInput
  deploymentConfigName: String
  description: String
  ignoreApplicationStopFailures: Boolean
  targetInstances: AwsCodeDeployS4jInput
  autoRollbackConfiguration: AwsCodeDeployS1zInput
  updateOutdatedInstancesOnly: Boolean
  fileExistsBehavior: String
}

input AwsCodeDeployS4jInput {
  tagFilters: [AwsCodeDeployS1eInput]
  autoScalingGroups: [String]
  ec2TagSet: AwsCodeDeployS2tInput
}

input AwsCodeDeployS1eInput {
  Key: String
  Value: String
  Type: String
}

input AwsCodeDeployS2tInput {
  ec2TagSetList: [[AwsCodeDeployS1eInput]]
}

input AwsCodeDeployS1zInput {
  enabled: Boolean
  events: [String]
}

type AwsCodeDeployCreateDeploymentConfigOutput {
  deploymentConfigId: String
}

input AwsCodeDeployCreateDeploymentConfigInput {
  deploymentConfigName: String!
  minimumHealthyHosts: AwsCodeDeployS54Input
  trafficRoutingConfig: AwsCodeDeployS57Input
  computePlatform: String
}

input AwsCodeDeployS54Input {
  type: String
  value: Int
}

input AwsCodeDeployS57Input {
  type: String
  timeBasedCanary: AwsCodeDeployS57TimeBasedCanaryInput
  timeBasedLinear: AwsCodeDeployS57TimeBasedLinearInput
}

input AwsCodeDeployS57TimeBasedCanaryInput {
  canaryPercentage: Int
  canaryInterval: Int
}

input AwsCodeDeployS57TimeBasedLinearInput {
  linearPercentage: Int
  linearInterval: Int
}

type AwsCodeDeployCreateDeploymentGroupOutput {
  deploymentGroupId: String
}

input AwsCodeDeployCreateDeploymentGroupInput {
  applicationName: String!
  deploymentGroupName: String!
  deploymentConfigName: String
  ec2TagFilters: [AwsCodeDeployS1eInput]
  onPremisesInstanceTagFilters: [AwsCodeDeployS1hInput]
  autoScalingGroups: [String]
  serviceRoleArn: String!
  triggerConfigurations: [AwsCodeDeployS1pInput]
  alarmConfiguration: AwsCodeDeployS1vInput
  autoRollbackConfiguration: AwsCodeDeployS1zInput
  outdatedInstancesStrategy: String
  deploymentStyle: AwsCodeDeployS22Input
  blueGreenDeploymentConfiguration: AwsCodeDeployS26Input
  loadBalancerInfo: AwsCodeDeployS2eInput
  ec2TagSet: AwsCodeDeployS2tInput
  ecsServices: [AwsCodeDeployS2xInput]
  onPremisesTagSet: AwsCodeDeployS2vInput
  tags: [AwsCodeDeployS2Input]
}

input AwsCodeDeployS1hInput {
  Key: String
  Value: String
  Type: String
}

input AwsCodeDeployS1pInput {
  triggerName: String
  triggerTargetArn: String
  triggerEvents: [String]
}

input AwsCodeDeployS1vInput {
  enabled: Boolean
  ignorePollAlarmFailure: Boolean
  alarms: [AwsCodeDeployS1vAlarmsInput]
}

input AwsCodeDeployS1vAlarmsInput {
  name: String
}

input AwsCodeDeployS22Input {
  deploymentType: String
  deploymentOption: String
}

input AwsCodeDeployS26Input {
  terminateBlueInstancesOnDeploymentSuccess: AwsCodeDeployS26TerminateBlueInstancesOnDeploymentSuccessInput
  deploymentReadyOption: AwsCodeDeployS26DeploymentReadyOptionInput
  greenFleetProvisioningOption: AwsCodeDeployS26GreenFleetProvisioningOptionInput
}

input AwsCodeDeployS26TerminateBlueInstancesOnDeploymentSuccessInput {
  action: String
  terminationWaitTimeInMinutes: Int
}

input AwsCodeDeployS26DeploymentReadyOptionInput {
  actionOnTimeout: String
  waitTimeInMinutes: Int
}

input AwsCodeDeployS26GreenFleetProvisioningOptionInput {
  action: String
}

input AwsCodeDeployS2eInput {
  elbInfoList: [AwsCodeDeployS2eElbInfoListInput]
  targetGroupInfoList: [AwsCodeDeployS2jInput]
  targetGroupPairInfoList: [AwsCodeDeployS2eTargetGroupPairInfoListInput]
}

input AwsCodeDeployS2eElbInfoListInput {
  name: String
}

input AwsCodeDeployS2jInput {
  name: String
}

input AwsCodeDeployS2eTargetGroupPairInfoListInput {
  targetGroups: [AwsCodeDeployS2jInput]
  prodTrafficRoute: AwsCodeDeployS2nInput
  testTrafficRoute: AwsCodeDeployS2nInput
}

input AwsCodeDeployS2nInput {
  listenerArns: [String]
}

input AwsCodeDeployS2xInput {
  serviceName: String
  clusterName: String
}

input AwsCodeDeployS2vInput {
  onPremisesTagSetList: [[AwsCodeDeployS1hInput]]
}

input AwsCodeDeployDeleteApplicationInput {
  applicationName: String!
}

input AwsCodeDeployDeleteDeploymentConfigInput {
  deploymentConfigName: String!
}

type AwsCodeDeployDeleteDeploymentGroupOutput {
  hooksNotCleanedUp: [AwsCodeDeployS1k]
}

input AwsCodeDeployDeleteDeploymentGroupInput {
  applicationName: String!
  deploymentGroupName: String!
}

type AwsCodeDeployDeleteGitHubAccountTokenOutput {
  tokenName: String
}

input AwsCodeDeployDeleteGitHubAccountTokenInput {
  tokenName: String
}

input AwsCodeDeployDeleteResourcesByExternalIdInput {
  externalId: String
}

input AwsCodeDeployDeregisterOnPremisesInstanceInput {
  instanceName: String!
}

type AwsCodeDeployGetApplicationOutput {
  application: AwsCodeDeployS13
}

input AwsCodeDeployGetApplicationInput {
  applicationName: String!
}

type AwsCodeDeployGetApplicationRevisionOutput {
  applicationName: String
  revision: AwsCodeDeploySb
  revisionInfo: AwsCodeDeploySu
}

input AwsCodeDeployGetApplicationRevisionInput {
  applicationName: String!
  revision: AwsCodeDeploySbInput!
}

type AwsCodeDeployGetDeploymentOutput {
  deploymentInfo: AwsCodeDeployS4c
}

input AwsCodeDeployGetDeploymentInput {
  deploymentId: String!
}

type AwsCodeDeployGetDeploymentConfigOutput {
  deploymentConfigInfo: AwsCodeDeployGetDeploymentConfigOutputDeploymentConfigInfo
}

type AwsCodeDeployGetDeploymentConfigOutputDeploymentConfigInfo {
  deploymentConfigId: String
  deploymentConfigName: String
  minimumHealthyHosts: AwsCodeDeployS54
  createTime: Date
  computePlatform: String
  trafficRoutingConfig: AwsCodeDeployS57
}

type AwsCodeDeployS54 {
  type: String
  value: Int
}

type AwsCodeDeployS57 {
  type: String
  timeBasedCanary: AwsCodeDeployS57TimeBasedCanary
  timeBasedLinear: AwsCodeDeployS57TimeBasedLinear
}

type AwsCodeDeployS57TimeBasedCanary {
  canaryPercentage: Int
  canaryInterval: Int
}

type AwsCodeDeployS57TimeBasedLinear {
  linearPercentage: Int
  linearInterval: Int
}

input AwsCodeDeployGetDeploymentConfigInput {
  deploymentConfigName: String!
}

type AwsCodeDeployGetDeploymentGroupOutput {
  deploymentGroupInfo: AwsCodeDeployS1b
}

input AwsCodeDeployGetDeploymentGroupInput {
  applicationName: String!
  deploymentGroupName: String!
}

type AwsCodeDeployGetDeploymentInstanceOutput {
  instanceSummary: AwsCodeDeployS36
}

input AwsCodeDeployGetDeploymentInstanceInput {
  deploymentId: String!
  instanceId: String!
}

type AwsCodeDeployGetDeploymentTargetOutput {
  deploymentTarget: AwsCodeDeployS3n
}

input AwsCodeDeployGetDeploymentTargetInput {
  deploymentId: String
  targetId: String
}

type AwsCodeDeployGetOnPremisesInstanceOutput {
  instanceInfo: AwsCodeDeployS4t
}

input AwsCodeDeployGetOnPremisesInstanceInput {
  instanceName: String!
}

type AwsCodeDeployListApplicationRevisionsOutput {
  revisions: [AwsCodeDeploySb]
  nextToken: String
}

input AwsCodeDeployListApplicationRevisionsInput {
  applicationName: String!
  sortBy: String
  sortOrder: String
  s3Bucket: String
  s3KeyPrefix: String
  deployed: String
  nextToken: String
}

type AwsCodeDeployListApplicationsOutput {
  applications: [String]
  nextToken: String
}

input AwsCodeDeployListApplicationsInput {
  nextToken: String
}

type AwsCodeDeployListDeploymentConfigsOutput {
  deploymentConfigsList: [String]
  nextToken: String
}

input AwsCodeDeployListDeploymentConfigsInput {
  nextToken: String
}

type AwsCodeDeployListDeploymentGroupsOutput {
  applicationName: String
  deploymentGroups: [String]
  nextToken: String
}

input AwsCodeDeployListDeploymentGroupsInput {
  applicationName: String!
  nextToken: String
}

type AwsCodeDeployListDeploymentInstancesOutput {
  instancesList: [String]
  nextToken: String
}

input AwsCodeDeployListDeploymentInstancesInput {
  deploymentId: String!
  nextToken: String
  instanceStatusFilter: [String]
  instanceTypeFilter: [String]
}

type AwsCodeDeployListDeploymentTargetsOutput {
  targetIds: [String]
  nextToken: String
}

input AwsCodeDeployListDeploymentTargetsInput {
  deploymentId: String
  nextToken: String
  targetFilters: JSON
}

type AwsCodeDeployListDeploymentsOutput {
  deployments: [String]
  nextToken: String
}

input AwsCodeDeployListDeploymentsInput {
  applicationName: String
  deploymentGroupName: String
  externalId: String
  includeOnlyStatuses: [String]
  createTimeRange: AwsCodeDeployListDeploymentsCreateTimeRangeInput
  nextToken: String
}

input AwsCodeDeployListDeploymentsCreateTimeRangeInput {
  start: Date
  end: Date
}

type AwsCodeDeployListGitHubAccountTokenNamesOutput {
  tokenNameList: [String]
  nextToken: String
}

input AwsCodeDeployListGitHubAccountTokenNamesInput {
  nextToken: String
}

type AwsCodeDeployListOnPremisesInstancesOutput {
  instanceNames: [String]
  nextToken: String
}

input AwsCodeDeployListOnPremisesInstancesInput {
  registrationStatus: String
  tagFilters: [AwsCodeDeployS1hInput]
  nextToken: String
}

type AwsCodeDeployListTagsForResourceOutput {
  Tags: [AwsCodeDeployS2]
  NextToken: String
}

input AwsCodeDeployListTagsForResourceInput {
  ResourceArn: String!
  NextToken: String
}

type AwsCodeDeployPutLifecycleEventHookExecutionStatusOutput {
  lifecycleEventHookExecutionId: String
}

input AwsCodeDeployPutLifecycleEventHookExecutionStatusInput {
  deploymentId: String
  lifecycleEventHookExecutionId: String
  status: String
}

input AwsCodeDeployRegisterApplicationRevisionInput {
  applicationName: String!
  description: String
  revision: AwsCodeDeploySbInput!
}

input AwsCodeDeployRegisterOnPremisesInstanceInput {
  instanceName: String!
  iamSessionArn: String
  iamUserArn: String
}

input AwsCodeDeployRemoveTagsFromOnPremisesInstancesInput {
  tags: [AwsCodeDeployS2Input]!
  instanceNames: [String]!
}

input AwsCodeDeploySkipWaitTimeForInstanceTerminationInput {
  deploymentId: String
}

type AwsCodeDeployStopDeploymentOutput {
  status: String
  statusMessage: String
}

input AwsCodeDeployStopDeploymentInput {
  deploymentId: String!
  autoRollbackEnabled: Boolean
}

input AwsCodeDeployTagResourceInput {
  ResourceArn: String!
  Tags: [AwsCodeDeployS2Input]!
}

input AwsCodeDeployUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsCodeDeployUpdateApplicationInput {
  applicationName: String
  newApplicationName: String
}

type AwsCodeDeployUpdateDeploymentGroupOutput {
  hooksNotCleanedUp: [AwsCodeDeployS1k]
}

input AwsCodeDeployUpdateDeploymentGroupInput {
  applicationName: String!
  currentDeploymentGroupName: String!
  newDeploymentGroupName: String
  deploymentConfigName: String
  ec2TagFilters: [AwsCodeDeployS1eInput]
  onPremisesInstanceTagFilters: [AwsCodeDeployS1hInput]
  autoScalingGroups: [String]
  serviceRoleArn: String
  triggerConfigurations: [AwsCodeDeployS1pInput]
  alarmConfiguration: AwsCodeDeployS1vInput
  autoRollbackConfiguration: AwsCodeDeployS1zInput
  outdatedInstancesStrategy: String
  deploymentStyle: AwsCodeDeployS22Input
  blueGreenDeploymentConfiguration: AwsCodeDeployS26Input
  loadBalancerInfo: AwsCodeDeployS2eInput
  ec2TagSet: AwsCodeDeployS2tInput
  ecsServices: [AwsCodeDeployS2xInput]
  onPremisesTagSet: AwsCodeDeployS2vInput
}

"""Amazon CodeGuru Profiler (2019-07-18)"""
type AwsCodeGuruProfiler {
  addNotificationChannels(input: AwsCodeGuruProfilerAddNotificationChannelsInput!, config: AwsConfig): AwsCodeGuruProfilerAddNotificationChannelsOutput
  batchGetFrameMetricData(input: AwsCodeGuruProfilerBatchGetFrameMetricDataInput!, config: AwsConfig): AwsCodeGuruProfilerBatchGetFrameMetricDataOutput
  configureAgent(input: AwsCodeGuruProfilerConfigureAgentInput!, config: AwsConfig): AwsCodeGuruProfilerConfigureAgentOutput
  createProfilingGroup(input: AwsCodeGuruProfilerCreateProfilingGroupInput!, config: AwsConfig): AwsCodeGuruProfilerCreateProfilingGroupOutput
  deleteProfilingGroup(input: AwsCodeGuruProfilerDeleteProfilingGroupInput!, config: AwsConfig): JSON
  describeProfilingGroup(input: AwsCodeGuruProfilerDescribeProfilingGroupInput!, config: AwsConfig): AwsCodeGuruProfilerDescribeProfilingGroupOutput
  getFindingsReportAccountSummary(input: AwsCodeGuruProfilerGetFindingsReportAccountSummaryInput, config: AwsConfig): AwsCodeGuruProfilerGetFindingsReportAccountSummaryOutput
  getNotificationConfiguration(input: AwsCodeGuruProfilerGetNotificationConfigurationInput!, config: AwsConfig): AwsCodeGuruProfilerGetNotificationConfigurationOutput
  getPolicy(input: AwsCodeGuruProfilerGetPolicyInput!, config: AwsConfig): AwsCodeGuruProfilerGetPolicyOutput
  getProfile(input: AwsCodeGuruProfilerGetProfileInput!, config: AwsConfig): AwsCodeGuruProfilerGetProfileOutput
  getRecommendations(input: AwsCodeGuruProfilerGetRecommendationsInput!, config: AwsConfig): AwsCodeGuruProfilerGetRecommendationsOutput
  listFindingsReports(input: AwsCodeGuruProfilerListFindingsReportsInput!, config: AwsConfig): AwsCodeGuruProfilerListFindingsReportsOutput
  listProfileTimes(input: AwsCodeGuruProfilerListProfileTimesInput!, config: AwsConfig): AwsCodeGuruProfilerListProfileTimesOutput
  listProfilingGroups(input: AwsCodeGuruProfilerListProfilingGroupsInput, config: AwsConfig): AwsCodeGuruProfilerListProfilingGroupsOutput
  listTagsForResource(input: AwsCodeGuruProfilerListTagsForResourceInput!, config: AwsConfig): AwsCodeGuruProfilerListTagsForResourceOutput
  postAgentProfile(input: AwsCodeGuruProfilerPostAgentProfileInput!, config: AwsConfig): JSON
  putPermission(input: AwsCodeGuruProfilerPutPermissionInput!, config: AwsConfig): AwsCodeGuruProfilerPutPermissionOutput
  removeNotificationChannel(input: AwsCodeGuruProfilerRemoveNotificationChannelInput!, config: AwsConfig): AwsCodeGuruProfilerRemoveNotificationChannelOutput
  removePermission(input: AwsCodeGuruProfilerRemovePermissionInput!, config: AwsConfig): AwsCodeGuruProfilerRemovePermissionOutput
  submitFeedback(input: AwsCodeGuruProfilerSubmitFeedbackInput!, config: AwsConfig): JSON
  tagResource(input: AwsCodeGuruProfilerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodeGuruProfilerUntagResourceInput!, config: AwsConfig): JSON
  updateProfilingGroup(input: AwsCodeGuruProfilerUpdateProfilingGroupInput!, config: AwsConfig): AwsCodeGuruProfilerUpdateProfilingGroupOutput
}

type AwsCodeGuruProfilerAddNotificationChannelsOutput {
  notificationConfiguration: AwsCodeGuruProfilerSa
}

type AwsCodeGuruProfilerSa {
  channels: [AwsCodeGuruProfilerS2]
}

type AwsCodeGuruProfilerS2 {
  eventPublishers: [String]!
  id: String
  uri: String!
}

input AwsCodeGuruProfilerAddNotificationChannelsInput {
  channels: [AwsCodeGuruProfilerS2Input]!
  profilingGroupName: String!
}

input AwsCodeGuruProfilerS2Input {
  eventPublishers: [String]!
  id: String
  uri: String!
}

type AwsCodeGuruProfilerBatchGetFrameMetricDataOutput {
  endTime: Date!
  endTimes: [AwsCodeGuruProfilerSl]!
  frameMetricData: [AwsCodeGuruProfilerBatchGetFrameMetricDataOutputFrameMetricData]!
  resolution: String!
  startTime: Date!
  unprocessedEndTimes: JSON!
}

type AwsCodeGuruProfilerSl {
  value: Date!
}

type AwsCodeGuruProfilerBatchGetFrameMetricDataOutputFrameMetricData {
  frameMetric: AwsCodeGuruProfilerSe!
  values: [JSON]!
}

type AwsCodeGuruProfilerSe {
  frameName: String!
  threadStates: [String]!
  type: String!
}

input AwsCodeGuruProfilerBatchGetFrameMetricDataInput {
  endTime: Date
  frameMetrics: [AwsCodeGuruProfilerSeInput]
  period: String
  profilingGroupName: String!
  startTime: Date
  targetResolution: String
}

input AwsCodeGuruProfilerSeInput {
  frameName: String!
  threadStates: [String]!
  type: String!
}

type AwsCodeGuruProfilerConfigureAgentOutput {
  configuration: AwsCodeGuruProfilerConfigureAgentOutputConfiguration!
}

type AwsCodeGuruProfilerConfigureAgentOutputConfiguration {
  agentParameters: JSON
  periodInSeconds: Int!
  shouldProfile: Boolean!
}

input AwsCodeGuruProfilerConfigureAgentInput {
  fleetInstanceId: String
  metadata: JSON
  profilingGroupName: String!
}

type AwsCodeGuruProfilerCreateProfilingGroupOutput {
  profilingGroup: AwsCodeGuruProfilerS18!
}

type AwsCodeGuruProfilerS18 {
  agentOrchestrationConfig: AwsCodeGuruProfilerS13
  arn: String
  computePlatform: String
  createdAt: Date
  name: String
  profilingStatus: AwsCodeGuruProfilerS18ProfilingStatus
  tags: JSON
  updatedAt: Date
}

type AwsCodeGuruProfilerS13 {
  profilingEnabled: Boolean!
}

type AwsCodeGuruProfilerS18ProfilingStatus {
  latestAgentOrchestratedAt: Date
  latestAgentProfileReportedAt: Date
  latestAggregatedProfile: AwsCodeGuruProfilerS18ProfilingStatusLatestAggregatedProfile
}

type AwsCodeGuruProfilerS18ProfilingStatusLatestAggregatedProfile {
  period: String
  start: Date
}

input AwsCodeGuruProfilerCreateProfilingGroupInput {
  agentOrchestrationConfig: AwsCodeGuruProfilerS13Input
  clientToken: String!
  computePlatform: String
  profilingGroupName: String!
  tags: JSON
}

input AwsCodeGuruProfilerS13Input {
  profilingEnabled: Boolean!
}

input AwsCodeGuruProfilerDeleteProfilingGroupInput {
  profilingGroupName: String!
}

type AwsCodeGuruProfilerDescribeProfilingGroupOutput {
  profilingGroup: AwsCodeGuruProfilerS18!
}

input AwsCodeGuruProfilerDescribeProfilingGroupInput {
  profilingGroupName: String!
}

type AwsCodeGuruProfilerGetFindingsReportAccountSummaryOutput {
  nextToken: String
  reportSummaries: [AwsCodeGuruProfilerS1k]!
}

type AwsCodeGuruProfilerS1k {
  id: String
  profileEndTime: Date
  profileStartTime: Date
  profilingGroupName: String
  totalNumberOfFindings: Int
}

input AwsCodeGuruProfilerGetFindingsReportAccountSummaryInput {
  dailyReportsOnly: Boolean
  maxResults: Int
  nextToken: String
}

type AwsCodeGuruProfilerGetNotificationConfigurationOutput {
  notificationConfiguration: AwsCodeGuruProfilerSa!
}

input AwsCodeGuruProfilerGetNotificationConfigurationInput {
  profilingGroupName: String!
}

type AwsCodeGuruProfilerGetPolicyOutput {
  policy: String!
  revisionId: String!
}

input AwsCodeGuruProfilerGetPolicyInput {
  profilingGroupName: String!
}

type AwsCodeGuruProfilerGetProfileOutput {
  contentEncoding: String
  contentType: String!
  profile: JSON!
}

input AwsCodeGuruProfilerGetProfileInput {
  accept: String
  endTime: Date
  maxDepth: Int
  period: String
  profilingGroupName: String!
  startTime: Date
}

type AwsCodeGuruProfilerGetRecommendationsOutput {
  anomalies: [AwsCodeGuruProfilerGetRecommendationsOutputAnomalies]!
  profileEndTime: Date!
  profileStartTime: Date!
  profilingGroupName: String!
  recommendations: [AwsCodeGuruProfilerGetRecommendationsOutputRecommendations]!
}

type AwsCodeGuruProfilerGetRecommendationsOutputAnomalies {
  instances: [AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesInstances]!
  metric: AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesMetric!
  reason: String!
}

type AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesInstances {
  endTime: Date
  id: String!
  startTime: Date!
  userFeedback: AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesInstancesUserFeedback
}

type AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesInstancesUserFeedback {
  type: String!
}

type AwsCodeGuruProfilerGetRecommendationsOutputAnomaliesMetric {
  frameName: String!
  threadStates: [String]!
  type: String!
}

type AwsCodeGuruProfilerGetRecommendationsOutputRecommendations {
  allMatchesCount: Int!
  allMatchesSum: JSON!
  endTime: Date!
  pattern: AwsCodeGuruProfilerGetRecommendationsOutputRecommendationsPattern!
  startTime: Date!
  topMatches: [AwsCodeGuruProfilerGetRecommendationsOutputRecommendationsTopMatches]!
}

type AwsCodeGuruProfilerGetRecommendationsOutputRecommendationsPattern {
  countersToAggregate: [String]
  description: String
  id: String
  name: String
  resolutionSteps: String
  targetFrames: [[String]]
  thresholdPercent: JSON
}

type AwsCodeGuruProfilerGetRecommendationsOutputRecommendationsTopMatches {
  frameAddress: String
  targetFramesIndex: Int
  thresholdBreachValue: JSON
}

input AwsCodeGuruProfilerGetRecommendationsInput {
  endTime: Date!
  locale: String
  profilingGroupName: String!
  startTime: Date!
}

type AwsCodeGuruProfilerListFindingsReportsOutput {
  findingsReportSummaries: [AwsCodeGuruProfilerS1k]!
  nextToken: String
}

input AwsCodeGuruProfilerListFindingsReportsInput {
  dailyReportsOnly: Boolean
  endTime: Date!
  maxResults: Int
  nextToken: String
  profilingGroupName: String!
  startTime: Date!
}

type AwsCodeGuruProfilerListProfileTimesOutput {
  nextToken: String
  profileTimes: [AwsCodeGuruProfilerListProfileTimesOutputProfileTimes]!
}

type AwsCodeGuruProfilerListProfileTimesOutputProfileTimes {
  start: Date
}

input AwsCodeGuruProfilerListProfileTimesInput {
  endTime: Date!
  maxResults: Int
  nextToken: String
  orderBy: String
  period: String!
  profilingGroupName: String!
  startTime: Date!
}

type AwsCodeGuruProfilerListProfilingGroupsOutput {
  nextToken: String
  profilingGroupNames: [String]!
  profilingGroups: [AwsCodeGuruProfilerS18]
}

input AwsCodeGuruProfilerListProfilingGroupsInput {
  includeDescription: Boolean
  maxResults: Int
  nextToken: String
}

type AwsCodeGuruProfilerListTagsForResourceOutput {
  tags: JSON
}

input AwsCodeGuruProfilerListTagsForResourceInput {
  resourceArn: String!
}

input AwsCodeGuruProfilerPostAgentProfileInput {
  agentProfile: JSON!
  contentType: String!
  profileToken: String
  profilingGroupName: String!
}

type AwsCodeGuruProfilerPutPermissionOutput {
  policy: String!
  revisionId: String!
}

input AwsCodeGuruProfilerPutPermissionInput {
  actionGroup: String!
  principals: [String]!
  profilingGroupName: String!
  revisionId: String
}

type AwsCodeGuruProfilerRemoveNotificationChannelOutput {
  notificationConfiguration: AwsCodeGuruProfilerSa
}

input AwsCodeGuruProfilerRemoveNotificationChannelInput {
  channelId: String!
  profilingGroupName: String!
}

type AwsCodeGuruProfilerRemovePermissionOutput {
  policy: String!
  revisionId: String!
}

input AwsCodeGuruProfilerRemovePermissionInput {
  actionGroup: String!
  profilingGroupName: String!
  revisionId: String!
}

input AwsCodeGuruProfilerSubmitFeedbackInput {
  anomalyInstanceId: String!
  comment: String
  profilingGroupName: String!
  type: String!
}

input AwsCodeGuruProfilerTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsCodeGuruProfilerUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsCodeGuruProfilerUpdateProfilingGroupOutput {
  profilingGroup: AwsCodeGuruProfilerS18!
}

input AwsCodeGuruProfilerUpdateProfilingGroupInput {
  agentOrchestrationConfig: AwsCodeGuruProfilerS13Input!
  profilingGroupName: String!
}

"""Amazon CodeGuru Reviewer (2019-09-19)"""
type AwsCodeGuruReviewer {
  associateRepository(input: AwsCodeGuruReviewerAssociateRepositoryInput!, config: AwsConfig): AwsCodeGuruReviewerAssociateRepositoryOutput
  createCodeReview(input: AwsCodeGuruReviewerCreateCodeReviewInput!, config: AwsConfig): AwsCodeGuruReviewerCreateCodeReviewOutput
  describeCodeReview(input: AwsCodeGuruReviewerDescribeCodeReviewInput!, config: AwsConfig): AwsCodeGuruReviewerDescribeCodeReviewOutput
  describeRecommendationFeedback(input: AwsCodeGuruReviewerDescribeRecommendationFeedbackInput!, config: AwsConfig): AwsCodeGuruReviewerDescribeRecommendationFeedbackOutput
  describeRepositoryAssociation(input: AwsCodeGuruReviewerDescribeRepositoryAssociationInput!, config: AwsConfig): AwsCodeGuruReviewerDescribeRepositoryAssociationOutput
  disassociateRepository(input: AwsCodeGuruReviewerDisassociateRepositoryInput!, config: AwsConfig): AwsCodeGuruReviewerDisassociateRepositoryOutput
  listCodeReviews(input: AwsCodeGuruReviewerListCodeReviewsInput!, config: AwsConfig): AwsCodeGuruReviewerListCodeReviewsOutput
  listRecommendationFeedback(input: AwsCodeGuruReviewerListRecommendationFeedbackInput!, config: AwsConfig): AwsCodeGuruReviewerListRecommendationFeedbackOutput
  listRecommendations(input: AwsCodeGuruReviewerListRecommendationsInput!, config: AwsConfig): AwsCodeGuruReviewerListRecommendationsOutput
  listRepositoryAssociations(input: AwsCodeGuruReviewerListRepositoryAssociationsInput, config: AwsConfig): AwsCodeGuruReviewerListRepositoryAssociationsOutput
  listTagsForResource(input: AwsCodeGuruReviewerListTagsForResourceInput!, config: AwsConfig): AwsCodeGuruReviewerListTagsForResourceOutput
  putRecommendationFeedback(input: AwsCodeGuruReviewerPutRecommendationFeedbackInput!, config: AwsConfig): JSON
  tagResource(input: AwsCodeGuruReviewerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodeGuruReviewerUntagResourceInput!, config: AwsConfig): JSON
}

type AwsCodeGuruReviewerAssociateRepositoryOutput {
  RepositoryAssociation: AwsCodeGuruReviewerSi
  Tags: JSON
}

type AwsCodeGuruReviewerSi {
  AssociationId: String
  AssociationArn: String
  ConnectionArn: String
  Name: String
  Owner: String
  ProviderType: String
  State: String
  StateReason: String
  LastUpdatedTimeStamp: Date
  CreatedTimeStamp: Date
  KMSKeyDetails: AwsCodeGuruReviewerSe
  S3RepositoryDetails: AwsCodeGuruReviewerSp
}

type AwsCodeGuruReviewerSe {
  KMSKeyId: String
  EncryptionOption: String
}

type AwsCodeGuruReviewerSp {
  BucketName: String
  CodeArtifacts: AwsCodeGuruReviewerSpCodeArtifacts
}

type AwsCodeGuruReviewerSpCodeArtifacts {
  SourceCodeArtifactsObjectKey: String!
  BuildArtifactsObjectKey: String
}

input AwsCodeGuruReviewerAssociateRepositoryInput {
  Repository: AwsCodeGuruReviewerAssociateRepositoryRepositoryInput!
  ClientRequestToken: String
  Tags: JSON
  KMSKeyDetails: AwsCodeGuruReviewerSeInput
}

input AwsCodeGuruReviewerAssociateRepositoryRepositoryInput {
  CodeCommit: AwsCodeGuruReviewerAssociateRepositoryRepositoryCodeCommitInput
  Bitbucket: AwsCodeGuruReviewerS5Input
  GitHubEnterpriseServer: AwsCodeGuruReviewerS5Input
  S3Bucket: AwsCodeGuruReviewerAssociateRepositoryRepositoryS3BucketInput
}

input AwsCodeGuruReviewerAssociateRepositoryRepositoryCodeCommitInput {
  Name: String!
}

input AwsCodeGuruReviewerS5Input {
  Name: String!
  ConnectionArn: String!
  Owner: String!
}

input AwsCodeGuruReviewerAssociateRepositoryRepositoryS3BucketInput {
  Name: String!
  BucketName: String!
}

input AwsCodeGuruReviewerSeInput {
  KMSKeyId: String
  EncryptionOption: String
}

type AwsCodeGuruReviewerCreateCodeReviewOutput {
  CodeReview: AwsCodeGuruReviewerS1f
}

type AwsCodeGuruReviewerS1f {
  Name: String
  CodeReviewArn: String
  RepositoryName: String
  Owner: String
  ProviderType: String
  State: String
  StateReason: String
  CreatedTimeStamp: Date
  LastUpdatedTimeStamp: Date
  Type: String
  PullRequestId: String
  SourceCodeType: AwsCodeGuruReviewerS10
  AssociationArn: String
  Metrics: AwsCodeGuruReviewerS1fMetrics
  AnalysisTypes: [String]
}

type AwsCodeGuruReviewerS10 {
  CommitDiff: AwsCodeGuruReviewerS10CommitDiff
  RepositoryHead: AwsCodeGuruReviewerSy
  BranchDiff: AwsCodeGuruReviewerS10BranchDiff
  S3BucketRepository: AwsCodeGuruReviewerS10S3BucketRepository
  RequestMetadata: AwsCodeGuruReviewerS10RequestMetadata
}

type AwsCodeGuruReviewerS10CommitDiff {
  SourceCommit: String
  DestinationCommit: String
  MergeBaseCommit: String
}

type AwsCodeGuruReviewerSy {
  BranchName: String!
}

type AwsCodeGuruReviewerS10BranchDiff {
  SourceBranchName: String!
  DestinationBranchName: String!
}

type AwsCodeGuruReviewerS10S3BucketRepository {
  Name: String!
  Details: AwsCodeGuruReviewerSp
}

type AwsCodeGuruReviewerS10RequestMetadata {
  RequestId: String
  Requester: String
  EventInfo: AwsCodeGuruReviewerS10RequestMetadataEventInfo
  VendorName: String
}

type AwsCodeGuruReviewerS10RequestMetadataEventInfo {
  Name: String
  State: String
}

type AwsCodeGuruReviewerS1fMetrics {
  MeteredLinesOfCodeCount: JSON
  FindingsCount: JSON
}

input AwsCodeGuruReviewerCreateCodeReviewInput {
  Name: String!
  RepositoryAssociationArn: String!
  Type: AwsCodeGuruReviewerCreateCodeReviewTypeInput!
  ClientRequestToken: String
}

input AwsCodeGuruReviewerCreateCodeReviewTypeInput {
  RepositoryAnalysis: AwsCodeGuruReviewerCreateCodeReviewTypeRepositoryAnalysisInput!
  AnalysisTypes: [String]
}

input AwsCodeGuruReviewerCreateCodeReviewTypeRepositoryAnalysisInput {
  RepositoryHead: AwsCodeGuruReviewerSyInput
  SourceCodeType: AwsCodeGuruReviewerS10Input
}

input AwsCodeGuruReviewerSyInput {
  BranchName: String!
}

input AwsCodeGuruReviewerS10Input {
  CommitDiff: AwsCodeGuruReviewerS10CommitDiffInput
  RepositoryHead: AwsCodeGuruReviewerSyInput
  BranchDiff: AwsCodeGuruReviewerS10BranchDiffInput
  S3BucketRepository: AwsCodeGuruReviewerS10S3BucketRepositoryInput
  RequestMetadata: AwsCodeGuruReviewerS10RequestMetadataInput
}

input AwsCodeGuruReviewerS10CommitDiffInput {
  SourceCommit: String
  DestinationCommit: String
  MergeBaseCommit: String
}

input AwsCodeGuruReviewerS10BranchDiffInput {
  SourceBranchName: String!
  DestinationBranchName: String!
}

input AwsCodeGuruReviewerS10S3BucketRepositoryInput {
  Name: String!
  Details: AwsCodeGuruReviewerSpInput
}

input AwsCodeGuruReviewerSpInput {
  BucketName: String
  CodeArtifacts: AwsCodeGuruReviewerSpCodeArtifactsInput
}

input AwsCodeGuruReviewerSpCodeArtifactsInput {
  SourceCodeArtifactsObjectKey: String!
  BuildArtifactsObjectKey: String
}

input AwsCodeGuruReviewerS10RequestMetadataInput {
  RequestId: String
  Requester: String
  EventInfo: AwsCodeGuruReviewerS10RequestMetadataEventInfoInput
  VendorName: String
}

input AwsCodeGuruReviewerS10RequestMetadataEventInfoInput {
  Name: String
  State: String
}

type AwsCodeGuruReviewerDescribeCodeReviewOutput {
  CodeReview: AwsCodeGuruReviewerS1f
}

input AwsCodeGuruReviewerDescribeCodeReviewInput {
  CodeReviewArn: String!
}

type AwsCodeGuruReviewerDescribeRecommendationFeedbackOutput {
  RecommendationFeedback: AwsCodeGuruReviewerDescribeRecommendationFeedbackOutputRecommendationFeedback
}

type AwsCodeGuruReviewerDescribeRecommendationFeedbackOutputRecommendationFeedback {
  CodeReviewArn: String
  RecommendationId: String
  Reactions: [String]
  UserId: String
  CreatedTimeStamp: Date
  LastUpdatedTimeStamp: Date
}

input AwsCodeGuruReviewerDescribeRecommendationFeedbackInput {
  CodeReviewArn: String!
  RecommendationId: String!
  UserId: String
}

type AwsCodeGuruReviewerDescribeRepositoryAssociationOutput {
  RepositoryAssociation: AwsCodeGuruReviewerSi
  Tags: JSON
}

input AwsCodeGuruReviewerDescribeRepositoryAssociationInput {
  AssociationArn: String!
}

type AwsCodeGuruReviewerDisassociateRepositoryOutput {
  RepositoryAssociation: AwsCodeGuruReviewerSi
  Tags: JSON
}

input AwsCodeGuruReviewerDisassociateRepositoryInput {
  AssociationArn: String!
}

type AwsCodeGuruReviewerListCodeReviewsOutput {
  CodeReviewSummaries: [AwsCodeGuruReviewerListCodeReviewsOutputCodeReviewSummaries]
  NextToken: String
}

type AwsCodeGuruReviewerListCodeReviewsOutputCodeReviewSummaries {
  Name: String
  CodeReviewArn: String
  RepositoryName: String
  Owner: String
  ProviderType: String
  State: String
  CreatedTimeStamp: Date
  LastUpdatedTimeStamp: Date
  Type: String
  PullRequestId: String
  MetricsSummary: AwsCodeGuruReviewerListCodeReviewsOutputCodeReviewSummariesMetricsSummary
  SourceCodeType: AwsCodeGuruReviewerS10
}

type AwsCodeGuruReviewerListCodeReviewsOutputCodeReviewSummariesMetricsSummary {
  MeteredLinesOfCodeCount: JSON
  FindingsCount: JSON
}

input AwsCodeGuruReviewerListCodeReviewsInput {
  ProviderTypes: [String]
  States: [String]
  RepositoryNames: [String]
  Type: String!
  MaxResults: Int
  NextToken: String
}

type AwsCodeGuruReviewerListRecommendationFeedbackOutput {
  RecommendationFeedbackSummaries: [AwsCodeGuruReviewerListRecommendationFeedbackOutputRecommendationFeedbackSummaries]
  NextToken: String
}

type AwsCodeGuruReviewerListRecommendationFeedbackOutputRecommendationFeedbackSummaries {
  RecommendationId: String
  Reactions: [String]
  UserId: String
}

input AwsCodeGuruReviewerListRecommendationFeedbackInput {
  NextToken: String
  MaxResults: Int
  CodeReviewArn: String!
  UserIds: [String]
  RecommendationIds: [String]
}

type AwsCodeGuruReviewerListRecommendationsOutput {
  RecommendationSummaries: [AwsCodeGuruReviewerListRecommendationsOutputRecommendationSummaries]
  NextToken: String
}

type AwsCodeGuruReviewerListRecommendationsOutputRecommendationSummaries {
  FilePath: String
  RecommendationId: String
  StartLine: Int
  EndLine: Int
  Description: String
  RecommendationCategory: String
}

input AwsCodeGuruReviewerListRecommendationsInput {
  NextToken: String
  MaxResults: Int
  CodeReviewArn: String!
}

type AwsCodeGuruReviewerListRepositoryAssociationsOutput {
  RepositoryAssociationSummaries: [AwsCodeGuruReviewerListRepositoryAssociationsOutputRepositoryAssociationSummaries]
  NextToken: String
}

type AwsCodeGuruReviewerListRepositoryAssociationsOutputRepositoryAssociationSummaries {
  AssociationArn: String
  ConnectionArn: String
  LastUpdatedTimeStamp: Date
  AssociationId: String
  Name: String
  Owner: String
  ProviderType: String
  State: String
}

input AwsCodeGuruReviewerListRepositoryAssociationsInput {
  ProviderTypes: [String]
  States: [String]
  Names: [String]
  Owners: [String]
  MaxResults: Int
  NextToken: String
}

type AwsCodeGuruReviewerListTagsForResourceOutput {
  Tags: JSON
}

input AwsCodeGuruReviewerListTagsForResourceInput {
  resourceArn: String!
}

input AwsCodeGuruReviewerPutRecommendationFeedbackInput {
  CodeReviewArn: String!
  RecommendationId: String!
  Reactions: [String]!
}

input AwsCodeGuruReviewerTagResourceInput {
  resourceArn: String!
  Tags: JSON!
}

input AwsCodeGuruReviewerUntagResourceInput {
  resourceArn: String!
  TagKeys: [String]!
}

"""AWS CodePipeline (2015-07-09)"""
type AwsCodePipeline {
  acknowledgeJob(input: AwsCodePipelineAcknowledgeJobInput!, config: AwsConfig): AwsCodePipelineAcknowledgeJobOutput
  acknowledgeThirdPartyJob(input: AwsCodePipelineAcknowledgeThirdPartyJobInput!, config: AwsConfig): AwsCodePipelineAcknowledgeThirdPartyJobOutput
  createCustomActionType(input: AwsCodePipelineCreateCustomActionTypeInput!, config: AwsConfig): AwsCodePipelineCreateCustomActionTypeOutput
  createPipeline(input: AwsCodePipelineCreatePipelineInput!, config: AwsConfig): AwsCodePipelineCreatePipelineOutput
  deleteCustomActionType(input: AwsCodePipelineDeleteCustomActionTypeInput!, config: AwsConfig): JSON
  deletePipeline(input: AwsCodePipelineDeletePipelineInput!, config: AwsConfig): JSON
  deleteWebhook(input: AwsCodePipelineDeleteWebhookInput!, config: AwsConfig): JSON
  deregisterWebhookWithThirdParty(input: AwsCodePipelineDeregisterWebhookWithThirdPartyInput, config: AwsConfig): JSON
  disableStageTransition(input: AwsCodePipelineDisableStageTransitionInput!, config: AwsConfig): JSON
  enableStageTransition(input: AwsCodePipelineEnableStageTransitionInput!, config: AwsConfig): JSON
  getActionType(input: AwsCodePipelineGetActionTypeInput!, config: AwsConfig): AwsCodePipelineGetActionTypeOutput
  getJobDetails(input: AwsCodePipelineGetJobDetailsInput!, config: AwsConfig): AwsCodePipelineGetJobDetailsOutput
  getPipeline(input: AwsCodePipelineGetPipelineInput!, config: AwsConfig): AwsCodePipelineGetPipelineOutput
  getPipelineExecution(input: AwsCodePipelineGetPipelineExecutionInput!, config: AwsConfig): AwsCodePipelineGetPipelineExecutionOutput
  getPipelineState(input: AwsCodePipelineGetPipelineStateInput!, config: AwsConfig): AwsCodePipelineGetPipelineStateOutput
  getThirdPartyJobDetails(input: AwsCodePipelineGetThirdPartyJobDetailsInput!, config: AwsConfig): AwsCodePipelineGetThirdPartyJobDetailsOutput
  listActionExecutions(input: AwsCodePipelineListActionExecutionsInput!, config: AwsConfig): AwsCodePipelineListActionExecutionsOutput
  listActionTypes(input: AwsCodePipelineListActionTypesInput, config: AwsConfig): AwsCodePipelineListActionTypesOutput
  listPipelineExecutions(input: AwsCodePipelineListPipelineExecutionsInput!, config: AwsConfig): AwsCodePipelineListPipelineExecutionsOutput
  listPipelines(input: AwsCodePipelineListPipelinesInput, config: AwsConfig): AwsCodePipelineListPipelinesOutput
  listTagsForResource(input: AwsCodePipelineListTagsForResourceInput!, config: AwsConfig): AwsCodePipelineListTagsForResourceOutput
  listWebhooks(input: AwsCodePipelineListWebhooksInput, config: AwsConfig): AwsCodePipelineListWebhooksOutput
  pollForJobs(input: AwsCodePipelinePollForJobsInput!, config: AwsConfig): AwsCodePipelinePollForJobsOutput
  pollForThirdPartyJobs(input: AwsCodePipelinePollForThirdPartyJobsInput!, config: AwsConfig): AwsCodePipelinePollForThirdPartyJobsOutput
  putActionRevision(input: AwsCodePipelinePutActionRevisionInput!, config: AwsConfig): AwsCodePipelinePutActionRevisionOutput
  putApprovalResult(input: AwsCodePipelinePutApprovalResultInput!, config: AwsConfig): AwsCodePipelinePutApprovalResultOutput
  putJobFailureResult(input: AwsCodePipelinePutJobFailureResultInput!, config: AwsConfig): JSON
  putJobSuccessResult(input: AwsCodePipelinePutJobSuccessResultInput!, config: AwsConfig): JSON
  putThirdPartyJobFailureResult(input: AwsCodePipelinePutThirdPartyJobFailureResultInput!, config: AwsConfig): JSON
  putThirdPartyJobSuccessResult(input: AwsCodePipelinePutThirdPartyJobSuccessResultInput!, config: AwsConfig): JSON
  putWebhook(input: AwsCodePipelinePutWebhookInput!, config: AwsConfig): AwsCodePipelinePutWebhookOutput
  registerWebhookWithThirdParty(input: AwsCodePipelineRegisterWebhookWithThirdPartyInput, config: AwsConfig): JSON
  retryStageExecution(input: AwsCodePipelineRetryStageExecutionInput!, config: AwsConfig): AwsCodePipelineRetryStageExecutionOutput
  startPipelineExecution(input: AwsCodePipelineStartPipelineExecutionInput!, config: AwsConfig): AwsCodePipelineStartPipelineExecutionOutput
  stopPipelineExecution(input: AwsCodePipelineStopPipelineExecutionInput!, config: AwsConfig): AwsCodePipelineStopPipelineExecutionOutput
  tagResource(input: AwsCodePipelineTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodePipelineUntagResourceInput!, config: AwsConfig): JSON
  updateActionType(input: AwsCodePipelineUpdateActionTypeInput!, config: AwsConfig): JSON
  updatePipeline(input: AwsCodePipelineUpdatePipelineInput!, config: AwsConfig): AwsCodePipelineUpdatePipelineOutput
}

type AwsCodePipelineAcknowledgeJobOutput {
  status: String
}

input AwsCodePipelineAcknowledgeJobInput {
  jobId: String!
  nonce: String!
}

type AwsCodePipelineAcknowledgeThirdPartyJobOutput {
  status: String
}

input AwsCodePipelineAcknowledgeThirdPartyJobInput {
  jobId: String!
  nonce: String!
  clientToken: String!
}

type AwsCodePipelineCreateCustomActionTypeOutput {
  actionType: AwsCodePipelineSv!
  tags: [AwsCodePipelineSq]
}

type AwsCodePipelineSv {
  id: AwsCodePipelineSw!
  settings: AwsCodePipelineSe
  actionConfigurationProperties: [AwsCodePipelineSh]
  inputArtifactDetails: AwsCodePipelineSn!
  outputArtifactDetails: AwsCodePipelineSn!
}

type AwsCodePipelineSw {
  category: String!
  owner: String!
  provider: String!
  version: String!
}

type AwsCodePipelineSe {
  thirdPartyConfigurationUrl: String
  entityUrlTemplate: String
  executionUrlTemplate: String
  revisionUrlTemplate: String
}

type AwsCodePipelineSh {
  name: String!
  required: Boolean!
  key: Boolean!
  secret: Boolean!
  queryable: Boolean
  description: String
  type: String
}

type AwsCodePipelineSn {
  minimumCount: Int!
  maximumCount: Int!
}

type AwsCodePipelineSq {
  key: String!
  value: String!
}

input AwsCodePipelineCreateCustomActionTypeInput {
  category: String!
  provider: String!
  version: String!
  settings: AwsCodePipelineSeInput
  configurationProperties: [AwsCodePipelineShInput]
  inputArtifactDetails: AwsCodePipelineSnInput!
  outputArtifactDetails: AwsCodePipelineSnInput!
  tags: [AwsCodePipelineSqInput]
}

input AwsCodePipelineSeInput {
  thirdPartyConfigurationUrl: String
  entityUrlTemplate: String
  executionUrlTemplate: String
  revisionUrlTemplate: String
}

input AwsCodePipelineShInput {
  name: String!
  required: Boolean!
  key: Boolean!
  secret: Boolean!
  queryable: Boolean
  description: String
  type: String
}

input AwsCodePipelineSnInput {
  minimumCount: Int!
  maximumCount: Int!
}

input AwsCodePipelineSqInput {
  key: String!
  value: String!
}

type AwsCodePipelineCreatePipelineOutput {
  pipeline: AwsCodePipelineSz
  tags: [AwsCodePipelineSq]
}

type AwsCodePipelineSz {
  name: String!
  roleArn: String!
  artifactStore: AwsCodePipelineS12
  artifactStores: JSON
  stages: [AwsCodePipelineSzStages]!
  version: Int
}

type AwsCodePipelineS12 {
  type: String!
  location: String!
  encryptionKey: AwsCodePipelineS15
}

type AwsCodePipelineS15 {
  id: String!
  type: String!
}

type AwsCodePipelineSzStages {
  name: String!
  blockers: [AwsCodePipelineSzStagesBlockers]
  actions: [AwsCodePipelineSzStagesActions]!
}

type AwsCodePipelineSzStagesBlockers {
  name: String!
  type: String!
}

type AwsCodePipelineSzStagesActions {
  name: String!
  actionTypeId: AwsCodePipelineSw!
  runOrder: Int
  configuration: JSON
  outputArtifacts: [AwsCodePipelineSzStagesActionsOutputArtifacts]
  inputArtifacts: [AwsCodePipelineSzStagesActionsInputArtifacts]
  roleArn: String
  region: String
  namespace: String
}

type AwsCodePipelineSzStagesActionsOutputArtifacts {
  name: String!
}

type AwsCodePipelineSzStagesActionsInputArtifacts {
  name: String!
}

input AwsCodePipelineCreatePipelineInput {
  pipeline: AwsCodePipelineSzInput!
  tags: [AwsCodePipelineSqInput]
}

input AwsCodePipelineSzInput {
  name: String!
  roleArn: String!
  artifactStore: AwsCodePipelineS12Input
  artifactStores: JSON
  stages: [AwsCodePipelineSzStagesInput]!
  version: Int
}

input AwsCodePipelineS12Input {
  type: String!
  location: String!
  encryptionKey: AwsCodePipelineS15Input
}

input AwsCodePipelineS15Input {
  id: String!
  type: String!
}

input AwsCodePipelineSzStagesInput {
  name: String!
  blockers: [AwsCodePipelineSzStagesBlockersInput]
  actions: [AwsCodePipelineSzStagesActionsInput]!
}

input AwsCodePipelineSzStagesBlockersInput {
  name: String!
  type: String!
}

input AwsCodePipelineSzStagesActionsInput {
  name: String!
  actionTypeId: AwsCodePipelineSwInput!
  runOrder: Int
  configuration: JSON
  outputArtifacts: [AwsCodePipelineSzStagesActionsOutputArtifactsInput]
  inputArtifacts: [AwsCodePipelineSzStagesActionsInputArtifactsInput]
  roleArn: String
  region: String
  namespace: String
}

input AwsCodePipelineSwInput {
  category: String!
  owner: String!
  provider: String!
  version: String!
}

input AwsCodePipelineSzStagesActionsOutputArtifactsInput {
  name: String!
}

input AwsCodePipelineSzStagesActionsInputArtifactsInput {
  name: String!
}

input AwsCodePipelineDeleteCustomActionTypeInput {
  category: String!
  provider: String!
  version: String!
}

input AwsCodePipelineDeletePipelineInput {
  name: String!
}

input AwsCodePipelineDeleteWebhookInput {
  name: String!
}

input AwsCodePipelineDeregisterWebhookWithThirdPartyInput {
  webhookName: String
}

input AwsCodePipelineDisableStageTransitionInput {
  pipelineName: String!
  stageName: String!
  transitionType: String!
  reason: String!
}

input AwsCodePipelineEnableStageTransitionInput {
  pipelineName: String!
  stageName: String!
  transitionType: String!
}

type AwsCodePipelineGetActionTypeOutput {
  actionType: AwsCodePipelineS29
}

type AwsCodePipelineS29 {
  description: String
  executor: AwsCodePipelineS29Executor!
  id: AwsCodePipelineS29Id!
  inputArtifactDetails: AwsCodePipelineS2o!
  outputArtifactDetails: AwsCodePipelineS2o!
  permissions: AwsCodePipelineS29Permissions
  properties: [AwsCodePipelineS29Properties]
  urls: AwsCodePipelineS29Urls
}

type AwsCodePipelineS29Executor {
  configuration: AwsCodePipelineS29ExecutorConfiguration!
  type: String!
  policyStatementsTemplate: String
  jobTimeout: Int
}

type AwsCodePipelineS29ExecutorConfiguration {
  lambdaExecutorConfiguration: AwsCodePipelineS29ExecutorConfigurationLambdaExecutorConfiguration
  jobWorkerExecutorConfiguration: AwsCodePipelineS29ExecutorConfigurationJobWorkerExecutorConfiguration
}

type AwsCodePipelineS29ExecutorConfigurationLambdaExecutorConfiguration {
  lambdaFunctionArn: String!
}

type AwsCodePipelineS29ExecutorConfigurationJobWorkerExecutorConfiguration {
  pollingAccounts: [String]
  pollingServicePrincipals: [String]
}

type AwsCodePipelineS29Id {
  category: String!
  owner: String!
  provider: String!
  version: String!
}

type AwsCodePipelineS2o {
  minimumCount: Int!
  maximumCount: Int!
}

type AwsCodePipelineS29Permissions {
  allowedAccounts: [String]!
}

type AwsCodePipelineS29Properties {
  name: String!
  optional: Boolean!
  key: Boolean!
  noEcho: Boolean!
  queryable: Boolean
  description: String
}

type AwsCodePipelineS29Urls {
  configurationUrl: String
  entityUrlTemplate: String
  executionUrlTemplate: String
  revisionUrlTemplate: String
}

input AwsCodePipelineGetActionTypeInput {
  category: String!
  owner: String!
  provider: String!
  version: String!
}

type AwsCodePipelineGetJobDetailsOutput {
  jobDetails: AwsCodePipelineGetJobDetailsOutputJobDetails
}

type AwsCodePipelineGetJobDetailsOutputJobDetails {
  id: String
  data: AwsCodePipelineS31
  accountId: String
}

type AwsCodePipelineS31 {
  actionTypeId: AwsCodePipelineSw
  actionConfiguration: AwsCodePipelineS32
  pipelineContext: AwsCodePipelineS33
  inputArtifacts: [AwsCodePipelineS39]
  outputArtifacts: [AwsCodePipelineS39]
  artifactCredentials: AwsCodePipelineS3h
  continuationToken: String
  encryptionKey: AwsCodePipelineS15
}

type AwsCodePipelineS32 {
  configuration: JSON
}

type AwsCodePipelineS33 {
  pipelineName: String
  stage: AwsCodePipelineS33Stage
  action: AwsCodePipelineS33Action
  pipelineArn: String
  pipelineExecutionId: String
}

type AwsCodePipelineS33Stage {
  name: String
}

type AwsCodePipelineS33Action {
  name: String
  actionExecutionId: String
}

type AwsCodePipelineS39 {
  name: String
  revision: String
  location: AwsCodePipelineS39Location
}

type AwsCodePipelineS39Location {
  type: String
  s3Location: AwsCodePipelineS39LocationS3Location
}

type AwsCodePipelineS39LocationS3Location {
  bucketName: String!
  objectKey: String!
}

type AwsCodePipelineS3h {
  accessKeyId: String!
  secretAccessKey: String!
  sessionToken: String!
}

input AwsCodePipelineGetJobDetailsInput {
  jobId: String!
}

type AwsCodePipelineGetPipelineOutput {
  pipeline: AwsCodePipelineSz
  metadata: AwsCodePipelineGetPipelineOutputMetadata
}

type AwsCodePipelineGetPipelineOutputMetadata {
  pipelineArn: String
  created: Date
  updated: Date
}

input AwsCodePipelineGetPipelineInput {
  name: String!
  version: Int
}

type AwsCodePipelineGetPipelineExecutionOutput {
  pipelineExecution: AwsCodePipelineGetPipelineExecutionOutputPipelineExecution
}

type AwsCodePipelineGetPipelineExecutionOutputPipelineExecution {
  pipelineName: String
  pipelineVersion: Int
  pipelineExecutionId: String
  status: String
  statusSummary: String
  artifactRevisions: [AwsCodePipelineGetPipelineExecutionOutputPipelineExecutionArtifactRevisions]
}

type AwsCodePipelineGetPipelineExecutionOutputPipelineExecutionArtifactRevisions {
  name: String
  revisionId: String
  revisionChangeIdentifier: String
  revisionSummary: String
  created: Date
  revisionUrl: String
}

input AwsCodePipelineGetPipelineExecutionInput {
  pipelineName: String!
  pipelineExecutionId: String!
}

type AwsCodePipelineGetPipelineStateOutput {
  pipelineName: String
  pipelineVersion: Int
  stageStates: [AwsCodePipelineGetPipelineStateOutputStageStates]
  created: Date
  updated: Date
}

type AwsCodePipelineGetPipelineStateOutputStageStates {
  stageName: String
  inboundExecution: AwsCodePipelineS43
  inboundTransitionState: AwsCodePipelineGetPipelineStateOutputStageStatesInboundTransitionState
  actionStates: [AwsCodePipelineGetPipelineStateOutputStageStatesActionStates]
  latestExecution: AwsCodePipelineS43
}

type AwsCodePipelineS43 {
  pipelineExecutionId: String!
  status: String!
}

type AwsCodePipelineGetPipelineStateOutputStageStatesInboundTransitionState {
  enabled: Boolean
  lastChangedBy: String
  lastChangedAt: Date
  disabledReason: String
}

type AwsCodePipelineGetPipelineStateOutputStageStatesActionStates {
  actionName: String
  currentRevision: AwsCodePipelineS4b
  latestExecution: AwsCodePipelineGetPipelineStateOutputStageStatesActionStatesLatestExecution
  entityUrl: String
  revisionUrl: String
}

type AwsCodePipelineS4b {
  revisionId: String!
  revisionChangeId: String!
  created: Date!
}

type AwsCodePipelineGetPipelineStateOutputStageStatesActionStatesLatestExecution {
  actionExecutionId: String
  status: String
  summary: String
  lastStatusChange: Date
  token: String
  lastUpdatedBy: String
  externalExecutionId: String
  externalExecutionUrl: String
  percentComplete: Int
  errorDetails: AwsCodePipelineGetPipelineStateOutputStageStatesActionStatesLatestExecutionErrorDetails
}

type AwsCodePipelineGetPipelineStateOutputStageStatesActionStatesLatestExecutionErrorDetails {
  code: String
  message: String
}

input AwsCodePipelineGetPipelineStateInput {
  name: String!
}

type AwsCodePipelineGetThirdPartyJobDetailsOutput {
  jobDetails: AwsCodePipelineGetThirdPartyJobDetailsOutputJobDetails
}

type AwsCodePipelineGetThirdPartyJobDetailsOutputJobDetails {
  id: String
  data: AwsCodePipelineGetThirdPartyJobDetailsOutputJobDetailsData
  nonce: String
}

type AwsCodePipelineGetThirdPartyJobDetailsOutputJobDetailsData {
  actionTypeId: AwsCodePipelineSw
  actionConfiguration: AwsCodePipelineS32
  pipelineContext: AwsCodePipelineS33
  inputArtifacts: [AwsCodePipelineS39]
  outputArtifacts: [AwsCodePipelineS39]
  artifactCredentials: AwsCodePipelineS3h
  continuationToken: String
  encryptionKey: AwsCodePipelineS15
}

input AwsCodePipelineGetThirdPartyJobDetailsInput {
  jobId: String!
  clientToken: String!
}

type AwsCodePipelineListActionExecutionsOutput {
  actionExecutionDetails: [AwsCodePipelineListActionExecutionsOutputActionExecutionDetails]
  nextToken: String
}

type AwsCodePipelineListActionExecutionsOutputActionExecutionDetails {
  pipelineExecutionId: String
  actionExecutionId: String
  pipelineVersion: Int
  stageName: String
  actionName: String
  startTime: Date
  lastUpdateTime: Date
  status: String
  input: AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsInput
  output: AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsOutput
}

type AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsInput {
  actionTypeId: AwsCodePipelineSw
  configuration: JSON
  resolvedConfiguration: JSON
  roleArn: String
  region: String
  inputArtifacts: [AwsCodePipelineS50]
  namespace: String
}

type AwsCodePipelineS50 {
  name: String
  s3location: AwsCodePipelineS50S3location
}

type AwsCodePipelineS50S3location {
  bucket: String
  key: String
}

type AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsOutput {
  outputArtifacts: [AwsCodePipelineS50]
  executionResult: AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsOutputExecutionResult
  outputVariables: JSON
}

type AwsCodePipelineListActionExecutionsOutputActionExecutionDetailsOutputExecutionResult {
  externalExecutionId: String
  externalExecutionSummary: String
  externalExecutionUrl: String
}

input AwsCodePipelineListActionExecutionsInput {
  pipelineName: String!
  filter: AwsCodePipelineListActionExecutionsFilterInput
  maxResults: Int
  nextToken: String
}

input AwsCodePipelineListActionExecutionsFilterInput {
  pipelineExecutionId: String
}

type AwsCodePipelineListActionTypesOutput {
  actionTypes: [AwsCodePipelineSv]!
  nextToken: String
}

input AwsCodePipelineListActionTypesInput {
  actionOwnerFilter: String
  nextToken: String
  regionFilter: String
}

type AwsCodePipelineListPipelineExecutionsOutput {
  pipelineExecutionSummaries: [AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummaries]
  nextToken: String
}

type AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummaries {
  pipelineExecutionId: String
  status: String
  startTime: Date
  lastUpdateTime: Date
  sourceRevisions: [AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesSourceRevisions]
  trigger: AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesTrigger
  stopTrigger: AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesStopTrigger
}

type AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesSourceRevisions {
  actionName: String!
  revisionId: String
  revisionSummary: String
  revisionUrl: String
}

type AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesTrigger {
  triggerType: String
  triggerDetail: String
}

type AwsCodePipelineListPipelineExecutionsOutputPipelineExecutionSummariesStopTrigger {
  reason: String
}

input AwsCodePipelineListPipelineExecutionsInput {
  pipelineName: String!
  maxResults: Int
  nextToken: String
}

type AwsCodePipelineListPipelinesOutput {
  pipelines: [AwsCodePipelineListPipelinesOutputPipelines]
  nextToken: String
}

type AwsCodePipelineListPipelinesOutputPipelines {
  name: String
  version: Int
  created: Date
  updated: Date
}

input AwsCodePipelineListPipelinesInput {
  nextToken: String
  maxResults: Int
}

type AwsCodePipelineListTagsForResourceOutput {
  tags: [AwsCodePipelineSq]
  nextToken: String
}

input AwsCodePipelineListTagsForResourceInput {
  resourceArn: String!
  nextToken: String
  maxResults: Int
}

type AwsCodePipelineListWebhooksOutput {
  webhooks: [AwsCodePipelineS61]
  NextToken: String
}

type AwsCodePipelineS61 {
  definition: AwsCodePipelineS62!
  url: String!
  errorMessage: String
  errorCode: String
  lastTriggered: Date
  arn: String
  tags: [AwsCodePipelineSq]
}

type AwsCodePipelineS62 {
  name: String!
  targetPipeline: String!
  targetAction: String!
  filters: [AwsCodePipelineS62Filters]!
  authentication: String!
  authenticationConfiguration: AwsCodePipelineS62AuthenticationConfiguration!
}

type AwsCodePipelineS62Filters {
  jsonPath: String!
  matchEquals: String
}

type AwsCodePipelineS62AuthenticationConfiguration {
  AllowedIPRange: String
  SecretToken: String
}

input AwsCodePipelineListWebhooksInput {
  NextToken: String
  MaxResults: Int
}

type AwsCodePipelinePollForJobsOutput {
  jobs: [AwsCodePipelinePollForJobsOutputJobs]
}

type AwsCodePipelinePollForJobsOutputJobs {
  id: String
  data: AwsCodePipelineS31
  nonce: String
  accountId: String
}

input AwsCodePipelinePollForJobsInput {
  actionTypeId: AwsCodePipelineSwInput!
  maxBatchSize: Int
  queryParam: JSON
}

type AwsCodePipelinePollForThirdPartyJobsOutput {
  jobs: [AwsCodePipelinePollForThirdPartyJobsOutputJobs]
}

type AwsCodePipelinePollForThirdPartyJobsOutputJobs {
  clientId: String
  jobId: String
}

input AwsCodePipelinePollForThirdPartyJobsInput {
  actionTypeId: AwsCodePipelineSwInput!
  maxBatchSize: Int
}

type AwsCodePipelinePutActionRevisionOutput {
  newRevision: Boolean
  pipelineExecutionId: String
}

input AwsCodePipelinePutActionRevisionInput {
  pipelineName: String!
  stageName: String!
  actionName: String!
  actionRevision: AwsCodePipelineS4bInput!
}

input AwsCodePipelineS4bInput {
  revisionId: String!
  revisionChangeId: String!
  created: Date!
}

type AwsCodePipelinePutApprovalResultOutput {
  approvedAt: Date
}

input AwsCodePipelinePutApprovalResultInput {
  pipelineName: String!
  stageName: String!
  actionName: String!
  result: AwsCodePipelinePutApprovalResultResultInput!
  token: String!
}

input AwsCodePipelinePutApprovalResultResultInput {
  summary: String!
  status: String!
}

input AwsCodePipelinePutJobFailureResultInput {
  jobId: String!
  failureDetails: AwsCodePipelineS71Input!
}

input AwsCodePipelineS71Input {
  type: String!
  message: String!
  externalExecutionId: String
}

input AwsCodePipelinePutJobSuccessResultInput {
  jobId: String!
  currentRevision: AwsCodePipelineS74Input
  continuationToken: String
  executionDetails: AwsCodePipelineS76Input
  outputVariables: JSON
}

input AwsCodePipelineS74Input {
  revision: String!
  changeIdentifier: String!
  created: Date
  revisionSummary: String
}

input AwsCodePipelineS76Input {
  summary: String
  externalExecutionId: String
  percentComplete: Int
}

input AwsCodePipelinePutThirdPartyJobFailureResultInput {
  jobId: String!
  clientToken: String!
  failureDetails: AwsCodePipelineS71Input!
}

input AwsCodePipelinePutThirdPartyJobSuccessResultInput {
  jobId: String!
  clientToken: String!
  currentRevision: AwsCodePipelineS74Input
  continuationToken: String
  executionDetails: AwsCodePipelineS76Input
}

type AwsCodePipelinePutWebhookOutput {
  webhook: AwsCodePipelineS61
}

input AwsCodePipelinePutWebhookInput {
  webhook: AwsCodePipelineS62Input!
  tags: [AwsCodePipelineSqInput]
}

input AwsCodePipelineS62Input {
  name: String!
  targetPipeline: String!
  targetAction: String!
  filters: [AwsCodePipelineS62FiltersInput]!
  authentication: String!
  authenticationConfiguration: AwsCodePipelineS62AuthenticationConfigurationInput!
}

input AwsCodePipelineS62FiltersInput {
  jsonPath: String!
  matchEquals: String
}

input AwsCodePipelineS62AuthenticationConfigurationInput {
  AllowedIPRange: String
  SecretToken: String
}

input AwsCodePipelineRegisterWebhookWithThirdPartyInput {
  webhookName: String
}

type AwsCodePipelineRetryStageExecutionOutput {
  pipelineExecutionId: String
}

input AwsCodePipelineRetryStageExecutionInput {
  pipelineName: String!
  stageName: String!
  pipelineExecutionId: String!
  retryMode: String!
}

type AwsCodePipelineStartPipelineExecutionOutput {
  pipelineExecutionId: String
}

input AwsCodePipelineStartPipelineExecutionInput {
  name: String!
  clientRequestToken: String
}

type AwsCodePipelineStopPipelineExecutionOutput {
  pipelineExecutionId: String
}

input AwsCodePipelineStopPipelineExecutionInput {
  pipelineName: String!
  pipelineExecutionId: String!
  abandon: Boolean
  reason: String
}

input AwsCodePipelineTagResourceInput {
  resourceArn: String!
  tags: [AwsCodePipelineSqInput]!
}

input AwsCodePipelineUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsCodePipelineUpdateActionTypeInput {
  actionType: AwsCodePipelineS29Input!
}

input AwsCodePipelineS29Input {
  description: String
  executor: AwsCodePipelineS29ExecutorInput!
  id: AwsCodePipelineS29IdInput!
  inputArtifactDetails: AwsCodePipelineS2oInput!
  outputArtifactDetails: AwsCodePipelineS2oInput!
  permissions: AwsCodePipelineS29PermissionsInput
  properties: [AwsCodePipelineS29PropertiesInput]
  urls: AwsCodePipelineS29UrlsInput
}

input AwsCodePipelineS29ExecutorInput {
  configuration: AwsCodePipelineS29ExecutorConfigurationInput!
  type: String!
  policyStatementsTemplate: String
  jobTimeout: Int
}

input AwsCodePipelineS29ExecutorConfigurationInput {
  lambdaExecutorConfiguration: AwsCodePipelineS29ExecutorConfigurationLambdaExecutorConfigurationInput
  jobWorkerExecutorConfiguration: AwsCodePipelineS29ExecutorConfigurationJobWorkerExecutorConfigurationInput
}

input AwsCodePipelineS29ExecutorConfigurationLambdaExecutorConfigurationInput {
  lambdaFunctionArn: String!
}

input AwsCodePipelineS29ExecutorConfigurationJobWorkerExecutorConfigurationInput {
  pollingAccounts: [String]
  pollingServicePrincipals: [String]
}

input AwsCodePipelineS29IdInput {
  category: String!
  owner: String!
  provider: String!
  version: String!
}

input AwsCodePipelineS2oInput {
  minimumCount: Int!
  maximumCount: Int!
}

input AwsCodePipelineS29PermissionsInput {
  allowedAccounts: [String]!
}

input AwsCodePipelineS29PropertiesInput {
  name: String!
  optional: Boolean!
  key: Boolean!
  noEcho: Boolean!
  queryable: Boolean
  description: String
}

input AwsCodePipelineS29UrlsInput {
  configurationUrl: String
  entityUrlTemplate: String
  executionUrlTemplate: String
  revisionUrlTemplate: String
}

type AwsCodePipelineUpdatePipelineOutput {
  pipeline: AwsCodePipelineSz
}

input AwsCodePipelineUpdatePipelineInput {
  pipeline: AwsCodePipelineSzInput!
}

"""AWS CodeStar (2017-04-19)"""
type AwsCodeStar {
  associateTeamMember(input: AwsCodeStarAssociateTeamMemberInput!, config: AwsConfig): AwsCodeStarAssociateTeamMemberOutput
  createProject(input: AwsCodeStarCreateProjectInput!, config: AwsConfig): AwsCodeStarCreateProjectOutput
  createUserProfile(input: AwsCodeStarCreateUserProfileInput!, config: AwsConfig): AwsCodeStarCreateUserProfileOutput
  deleteProject(input: AwsCodeStarDeleteProjectInput!, config: AwsConfig): AwsCodeStarDeleteProjectOutput
  deleteUserProfile(input: AwsCodeStarDeleteUserProfileInput!, config: AwsConfig): AwsCodeStarDeleteUserProfileOutput
  describeProject(input: AwsCodeStarDescribeProjectInput!, config: AwsConfig): AwsCodeStarDescribeProjectOutput
  describeUserProfile(input: AwsCodeStarDescribeUserProfileInput!, config: AwsConfig): AwsCodeStarDescribeUserProfileOutput
  disassociateTeamMember(input: AwsCodeStarDisassociateTeamMemberInput!, config: AwsConfig): JSON
  listProjects(input: AwsCodeStarListProjectsInput, config: AwsConfig): AwsCodeStarListProjectsOutput
  listResources(input: AwsCodeStarListResourcesInput!, config: AwsConfig): AwsCodeStarListResourcesOutput
  listTagsForProject(input: AwsCodeStarListTagsForProjectInput!, config: AwsConfig): AwsCodeStarListTagsForProjectOutput
  listTeamMembers(input: AwsCodeStarListTeamMembersInput!, config: AwsConfig): AwsCodeStarListTeamMembersOutput
  listUserProfiles(input: AwsCodeStarListUserProfilesInput, config: AwsConfig): AwsCodeStarListUserProfilesOutput
  tagProject(input: AwsCodeStarTagProjectInput!, config: AwsConfig): AwsCodeStarTagProjectOutput
  untagProject(input: AwsCodeStarUntagProjectInput!, config: AwsConfig): JSON
  updateProject(input: AwsCodeStarUpdateProjectInput!, config: AwsConfig): JSON
  updateTeamMember(input: AwsCodeStarUpdateTeamMemberInput!, config: AwsConfig): AwsCodeStarUpdateTeamMemberOutput
  updateUserProfile(input: AwsCodeStarUpdateUserProfileInput!, config: AwsConfig): AwsCodeStarUpdateUserProfileOutput
}

type AwsCodeStarAssociateTeamMemberOutput {
  clientRequestToken: String
}

input AwsCodeStarAssociateTeamMemberInput {
  projectId: String!
  clientRequestToken: String
  userArn: String!
  projectRole: String!
  remoteAccessAllowed: Boolean
}

type AwsCodeStarCreateProjectOutput {
  id: String!
  arn: String!
  clientRequestToken: String
  projectTemplateId: String
}

input AwsCodeStarCreateProjectInput {
  name: String!
  id: String!
  description: String
  clientRequestToken: String
  sourceCode: [AwsCodeStarCreateProjectSourceCodeInput]
  toolchain: AwsCodeStarCreateProjectToolchainInput
  tags: JSON
}

input AwsCodeStarCreateProjectSourceCodeInput {
  source: AwsCodeStarCreateProjectSourceCodeSourceInput!
  destination: AwsCodeStarCreateProjectSourceCodeDestinationInput!
}

input AwsCodeStarCreateProjectSourceCodeSourceInput {
  s3: AwsCodeStarSeInput!
}

input AwsCodeStarSeInput {
  bucketName: String
  bucketKey: String
}

input AwsCodeStarCreateProjectSourceCodeDestinationInput {
  codeCommit: AwsCodeStarCreateProjectSourceCodeDestinationCodeCommitInput
  gitHub: AwsCodeStarCreateProjectSourceCodeDestinationGitHubInput
}

input AwsCodeStarCreateProjectSourceCodeDestinationCodeCommitInput {
  name: String!
}

input AwsCodeStarCreateProjectSourceCodeDestinationGitHubInput {
  name: String!
  description: String
  type: String!
  owner: String!
  privateRepository: Boolean!
  issuesEnabled: Boolean!
  token: String!
}

input AwsCodeStarCreateProjectToolchainInput {
  source: AwsCodeStarCreateProjectToolchainSourceInput!
  roleArn: String
  stackParameters: JSON
}

input AwsCodeStarCreateProjectToolchainSourceInput {
  s3: AwsCodeStarSeInput!
}

type AwsCodeStarCreateUserProfileOutput {
  userArn: String!
  displayName: String
  emailAddress: String
  sshPublicKey: String
  createdTimestamp: Date
  lastModifiedTimestamp: Date
}

input AwsCodeStarCreateUserProfileInput {
  userArn: String!
  displayName: String!
  emailAddress: String!
  sshPublicKey: String
}

type AwsCodeStarDeleteProjectOutput {
  stackId: String
  projectArn: String
}

input AwsCodeStarDeleteProjectInput {
  id: String!
  clientRequestToken: String
  deleteStack: Boolean
}

type AwsCodeStarDeleteUserProfileOutput {
  userArn: String!
}

input AwsCodeStarDeleteUserProfileInput {
  userArn: String!
}

type AwsCodeStarDescribeProjectOutput {
  name: String
  id: String
  arn: String
  description: String
  clientRequestToken: String
  createdTimeStamp: Date
  stackId: String
  projectTemplateId: String
  status: AwsCodeStarDescribeProjectOutputStatus
}

type AwsCodeStarDescribeProjectOutputStatus {
  state: String!
  reason: String
}

input AwsCodeStarDescribeProjectInput {
  id: String!
}

type AwsCodeStarDescribeUserProfileOutput {
  userArn: String!
  displayName: String
  emailAddress: String
  sshPublicKey: String
  createdTimestamp: Date!
  lastModifiedTimestamp: Date!
}

input AwsCodeStarDescribeUserProfileInput {
  userArn: String!
}

input AwsCodeStarDisassociateTeamMemberInput {
  projectId: String!
  userArn: String!
}

type AwsCodeStarListProjectsOutput {
  projects: [AwsCodeStarListProjectsOutputProjects]!
  nextToken: String
}

type AwsCodeStarListProjectsOutputProjects {
  projectId: String
  projectArn: String
}

input AwsCodeStarListProjectsInput {
  nextToken: String
  maxResults: Int
}

type AwsCodeStarListResourcesOutput {
  resources: [AwsCodeStarListResourcesOutputResources]
  nextToken: String
}

type AwsCodeStarListResourcesOutputResources {
  id: String!
}

input AwsCodeStarListResourcesInput {
  projectId: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeStarListTagsForProjectOutput {
  tags: JSON
  nextToken: String
}

input AwsCodeStarListTagsForProjectInput {
  id: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeStarListTeamMembersOutput {
  teamMembers: [AwsCodeStarListTeamMembersOutputTeamMembers]!
  nextToken: String
}

type AwsCodeStarListTeamMembersOutputTeamMembers {
  userArn: String!
  projectRole: String!
  remoteAccessAllowed: Boolean
}

input AwsCodeStarListTeamMembersInput {
  projectId: String!
  nextToken: String
  maxResults: Int
}

type AwsCodeStarListUserProfilesOutput {
  userProfiles: [AwsCodeStarListUserProfilesOutputUserProfiles]!
  nextToken: String
}

type AwsCodeStarListUserProfilesOutputUserProfiles {
  userArn: String
  displayName: String
  emailAddress: String
  sshPublicKey: String
}

input AwsCodeStarListUserProfilesInput {
  nextToken: String
  maxResults: Int
}

type AwsCodeStarTagProjectOutput {
  tags: JSON
}

input AwsCodeStarTagProjectInput {
  id: String!
  tags: JSON!
}

input AwsCodeStarUntagProjectInput {
  id: String!
  tags: [String]!
}

input AwsCodeStarUpdateProjectInput {
  id: String!
  name: String
  description: String
}

type AwsCodeStarUpdateTeamMemberOutput {
  userArn: String
  projectRole: String
  remoteAccessAllowed: Boolean
}

input AwsCodeStarUpdateTeamMemberInput {
  projectId: String!
  userArn: String!
  projectRole: String
  remoteAccessAllowed: Boolean
}

type AwsCodeStarUpdateUserProfileOutput {
  userArn: String!
  displayName: String
  emailAddress: String
  sshPublicKey: String
  createdTimestamp: Date
  lastModifiedTimestamp: Date
}

input AwsCodeStarUpdateUserProfileInput {
  userArn: String!
  displayName: String
  emailAddress: String
  sshPublicKey: String
}

"""AWS CodeStar Notifications (2019-10-15)"""
type AwsCodeStarNotifications {
  createNotificationRule(input: AwsCodeStarNotificationsCreateNotificationRuleInput!, config: AwsConfig): AwsCodeStarNotificationsCreateNotificationRuleOutput
  deleteNotificationRule(input: AwsCodeStarNotificationsDeleteNotificationRuleInput!, config: AwsConfig): AwsCodeStarNotificationsDeleteNotificationRuleOutput
  deleteTarget(input: AwsCodeStarNotificationsDeleteTargetInput!, config: AwsConfig): JSON
  describeNotificationRule(input: AwsCodeStarNotificationsDescribeNotificationRuleInput!, config: AwsConfig): AwsCodeStarNotificationsDescribeNotificationRuleOutput
  listEventTypes(input: AwsCodeStarNotificationsListEventTypesInput, config: AwsConfig): AwsCodeStarNotificationsListEventTypesOutput
  listNotificationRules(input: AwsCodeStarNotificationsListNotificationRulesInput, config: AwsConfig): AwsCodeStarNotificationsListNotificationRulesOutput
  listTagsForResource(input: AwsCodeStarNotificationsListTagsForResourceInput!, config: AwsConfig): AwsCodeStarNotificationsListTagsForResourceOutput
  listTargets(input: AwsCodeStarNotificationsListTargetsInput, config: AwsConfig): AwsCodeStarNotificationsListTargetsOutput
  subscribe(input: AwsCodeStarNotificationsSubscribeInput!, config: AwsConfig): AwsCodeStarNotificationsSubscribeOutput
  tagResource(input: AwsCodeStarNotificationsTagResourceInput!, config: AwsConfig): AwsCodeStarNotificationsTagResourceOutput
  unsubscribe(input: AwsCodeStarNotificationsUnsubscribeInput!, config: AwsConfig): AwsCodeStarNotificationsUnsubscribeOutput
  untagResource(input: AwsCodeStarNotificationsUntagResourceInput!, config: AwsConfig): JSON
  updateNotificationRule(input: AwsCodeStarNotificationsUpdateNotificationRuleInput!, config: AwsConfig): JSON
}

type AwsCodeStarNotificationsCreateNotificationRuleOutput {
  Arn: String
}

input AwsCodeStarNotificationsCreateNotificationRuleInput {
  Name: String!
  EventTypeIds: [String]!
  Resource: String!
  Targets: [AwsCodeStarNotificationsS7Input]!
  DetailType: String!
  ClientRequestToken: String
  Tags: JSON
  Status: String
}

input AwsCodeStarNotificationsS7Input {
  TargetType: String
  TargetAddress: String
}

type AwsCodeStarNotificationsDeleteNotificationRuleOutput {
  Arn: String
}

input AwsCodeStarNotificationsDeleteNotificationRuleInput {
  Arn: String!
}

input AwsCodeStarNotificationsDeleteTargetInput {
  TargetAddress: String!
  ForceUnsubscribeAll: Boolean
}

type AwsCodeStarNotificationsDescribeNotificationRuleOutput {
  Arn: String!
  Name: String
  EventTypes: [AwsCodeStarNotificationsSp]
  Resource: String
  Targets: [AwsCodeStarNotificationsSu]
  DetailType: String
  CreatedBy: String
  Status: String
  CreatedTimestamp: Date
  LastModifiedTimestamp: Date
  Tags: JSON
}

type AwsCodeStarNotificationsSp {
  EventTypeId: String
  ServiceName: String
  EventTypeName: String
  ResourceType: String
}

type AwsCodeStarNotificationsSu {
  TargetAddress: String
  TargetType: String
  TargetStatus: String
}

input AwsCodeStarNotificationsDescribeNotificationRuleInput {
  Arn: String!
}

type AwsCodeStarNotificationsListEventTypesOutput {
  EventTypes: [AwsCodeStarNotificationsSp]
  NextToken: String
}

input AwsCodeStarNotificationsListEventTypesInput {
  Filters: [AwsCodeStarNotificationsListEventTypesFiltersInput]
  NextToken: String
  MaxResults: Int
}

input AwsCodeStarNotificationsListEventTypesFiltersInput {
  Name: String!
  Value: String!
}

type AwsCodeStarNotificationsListNotificationRulesOutput {
  NextToken: String
  NotificationRules: [AwsCodeStarNotificationsListNotificationRulesOutputNotificationRules]
}

type AwsCodeStarNotificationsListNotificationRulesOutputNotificationRules {
  Id: String
  Arn: String
}

input AwsCodeStarNotificationsListNotificationRulesInput {
  Filters: [AwsCodeStarNotificationsListNotificationRulesFiltersInput]
  NextToken: String
  MaxResults: Int
}

input AwsCodeStarNotificationsListNotificationRulesFiltersInput {
  Name: String!
  Value: String!
}

type AwsCodeStarNotificationsListTagsForResourceOutput {
  Tags: JSON
}

input AwsCodeStarNotificationsListTagsForResourceInput {
  Arn: String!
}

type AwsCodeStarNotificationsListTargetsOutput {
  Targets: [AwsCodeStarNotificationsSu]
  NextToken: String
}

input AwsCodeStarNotificationsListTargetsInput {
  Filters: [AwsCodeStarNotificationsListTargetsFiltersInput]
  NextToken: String
  MaxResults: Int
}

input AwsCodeStarNotificationsListTargetsFiltersInput {
  Name: String!
  Value: String!
}

type AwsCodeStarNotificationsSubscribeOutput {
  Arn: String
}

input AwsCodeStarNotificationsSubscribeInput {
  Arn: String!
  Target: AwsCodeStarNotificationsS7Input!
  ClientRequestToken: String
}

type AwsCodeStarNotificationsTagResourceOutput {
  Tags: JSON
}

input AwsCodeStarNotificationsTagResourceInput {
  Arn: String!
  Tags: JSON!
}

type AwsCodeStarNotificationsUnsubscribeOutput {
  Arn: String!
}

input AwsCodeStarNotificationsUnsubscribeInput {
  Arn: String!
  TargetAddress: String!
}

input AwsCodeStarNotificationsUntagResourceInput {
  Arn: String!
  TagKeys: [String]!
}

input AwsCodeStarNotificationsUpdateNotificationRuleInput {
  Arn: String!
  Name: String
  Status: String
  EventTypeIds: [String]
  Targets: [AwsCodeStarNotificationsS7Input]
  DetailType: String
}

"""AWS CodeStar connections (2019-12-01)"""
type AwsCodeStarconnections {
  createConnection(input: AwsCodeStarconnectionsCreateConnectionInput!, config: AwsConfig): AwsCodeStarconnectionsCreateConnectionOutput
  createHost(input: AwsCodeStarconnectionsCreateHostInput!, config: AwsConfig): AwsCodeStarconnectionsCreateHostOutput
  deleteConnection(input: AwsCodeStarconnectionsDeleteConnectionInput!, config: AwsConfig): JSON
  deleteHost(input: AwsCodeStarconnectionsDeleteHostInput!, config: AwsConfig): JSON
  getConnection(input: AwsCodeStarconnectionsGetConnectionInput!, config: AwsConfig): AwsCodeStarconnectionsGetConnectionOutput
  getHost(input: AwsCodeStarconnectionsGetHostInput!, config: AwsConfig): AwsCodeStarconnectionsGetHostOutput
  listConnections(input: AwsCodeStarconnectionsListConnectionsInput, config: AwsConfig): AwsCodeStarconnectionsListConnectionsOutput
  listHosts(input: AwsCodeStarconnectionsListHostsInput, config: AwsConfig): AwsCodeStarconnectionsListHostsOutput
  listTagsForResource(input: AwsCodeStarconnectionsListTagsForResourceInput!, config: AwsConfig): AwsCodeStarconnectionsListTagsForResourceOutput
  tagResource(input: AwsCodeStarconnectionsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCodeStarconnectionsUntagResourceInput!, config: AwsConfig): JSON
  updateHost(input: AwsCodeStarconnectionsUpdateHostInput!, config: AwsConfig): JSON
}

type AwsCodeStarconnectionsCreateConnectionOutput {
  ConnectionArn: String!
  Tags: [AwsCodeStarconnectionsS4]
}

type AwsCodeStarconnectionsS4 {
  Key: String!
  Value: String!
}

input AwsCodeStarconnectionsCreateConnectionInput {
  ProviderType: String
  ConnectionName: String!
  Tags: [AwsCodeStarconnectionsS4Input]
  HostArn: String
}

input AwsCodeStarconnectionsS4Input {
  Key: String!
  Value: String!
}

type AwsCodeStarconnectionsCreateHostOutput {
  HostArn: String
  Tags: [AwsCodeStarconnectionsS4]
}

input AwsCodeStarconnectionsCreateHostInput {
  Name: String!
  ProviderType: String!
  ProviderEndpoint: String!
  VpcConfiguration: AwsCodeStarconnectionsSeInput
  Tags: [AwsCodeStarconnectionsS4Input]
}

input AwsCodeStarconnectionsSeInput {
  VpcId: String!
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
  TlsCertificate: String
}

input AwsCodeStarconnectionsDeleteConnectionInput {
  ConnectionArn: String!
}

input AwsCodeStarconnectionsDeleteHostInput {
  HostArn: String!
}

type AwsCodeStarconnectionsGetConnectionOutput {
  Connection: AwsCodeStarconnectionsSs
}

type AwsCodeStarconnectionsSs {
  ConnectionName: String
  ConnectionArn: String
  ProviderType: String
  OwnerAccountId: String
  ConnectionStatus: String
  HostArn: String
}

input AwsCodeStarconnectionsGetConnectionInput {
  ConnectionArn: String!
}

type AwsCodeStarconnectionsGetHostOutput {
  Name: String
  Status: String
  ProviderType: String
  ProviderEndpoint: String
  VpcConfiguration: AwsCodeStarconnectionsSe
}

type AwsCodeStarconnectionsSe {
  VpcId: String!
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
  TlsCertificate: String
}

input AwsCodeStarconnectionsGetHostInput {
  HostArn: String!
}

type AwsCodeStarconnectionsListConnectionsOutput {
  Connections: [AwsCodeStarconnectionsSs]
  NextToken: String
}

input AwsCodeStarconnectionsListConnectionsInput {
  ProviderTypeFilter: String
  HostArnFilter: String
  MaxResults: Int
  NextToken: String
}

type AwsCodeStarconnectionsListHostsOutput {
  Hosts: [AwsCodeStarconnectionsListHostsOutputHosts]
  NextToken: String
}

type AwsCodeStarconnectionsListHostsOutputHosts {
  Name: String
  HostArn: String
  ProviderType: String
  ProviderEndpoint: String
  VpcConfiguration: AwsCodeStarconnectionsSe
  Status: String
  StatusMessage: String
}

input AwsCodeStarconnectionsListHostsInput {
  MaxResults: Int
  NextToken: String
}

type AwsCodeStarconnectionsListTagsForResourceOutput {
  Tags: [AwsCodeStarconnectionsS4]
}

input AwsCodeStarconnectionsListTagsForResourceInput {
  ResourceArn: String!
}

input AwsCodeStarconnectionsTagResourceInput {
  ResourceArn: String!
  Tags: [AwsCodeStarconnectionsS4Input]!
}

input AwsCodeStarconnectionsUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsCodeStarconnectionsUpdateHostInput {
  HostArn: String!
  ProviderEndpoint: String
  VpcConfiguration: AwsCodeStarconnectionsSeInput
}

"""Amazon Cognito Identity (2014-06-30)"""
type AwsCognitoIdentity {
  createIdentityPool(input: AwsCognitoIdentityCreateIdentityPoolInput!, config: AwsConfig): JSON
  deleteIdentities(input: AwsCognitoIdentityDeleteIdentitiesInput!, config: AwsConfig): AwsCognitoIdentityDeleteIdentitiesOutput
  deleteIdentityPool(input: AwsCognitoIdentityDeleteIdentityPoolInput!, config: AwsConfig): JSON
  describeIdentity(input: AwsCognitoIdentityDescribeIdentityInput!, config: AwsConfig): JSON
  describeIdentityPool(input: AwsCognitoIdentityDescribeIdentityPoolInput!, config: AwsConfig): JSON
  getCredentialsForIdentity(input: AwsCognitoIdentityGetCredentialsForIdentityInput!, config: AwsConfig): AwsCognitoIdentityGetCredentialsForIdentityOutput
  getId(input: AwsCognitoIdentityGetIdInput!, config: AwsConfig): AwsCognitoIdentityGetIdOutput
  getIdentityPoolRoles(input: AwsCognitoIdentityGetIdentityPoolRolesInput!, config: AwsConfig): AwsCognitoIdentityGetIdentityPoolRolesOutput
  getOpenIdToken(input: AwsCognitoIdentityGetOpenIdTokenInput!, config: AwsConfig): AwsCognitoIdentityGetOpenIdTokenOutput
  getOpenIdTokenForDeveloperIdentity(input: AwsCognitoIdentityGetOpenIdTokenForDeveloperIdentityInput!, config: AwsConfig): AwsCognitoIdentityGetOpenIdTokenForDeveloperIdentityOutput
  getPrincipalTagAttributeMap(input: AwsCognitoIdentityGetPrincipalTagAttributeMapInput!, config: AwsConfig): AwsCognitoIdentityGetPrincipalTagAttributeMapOutput
  listIdentities(input: AwsCognitoIdentityListIdentitiesInput!, config: AwsConfig): AwsCognitoIdentityListIdentitiesOutput
  listIdentityPools(input: AwsCognitoIdentityListIdentityPoolsInput!, config: AwsConfig): AwsCognitoIdentityListIdentityPoolsOutput
  listTagsForResource(input: AwsCognitoIdentityListTagsForResourceInput!, config: AwsConfig): AwsCognitoIdentityListTagsForResourceOutput
  lookupDeveloperIdentity(input: AwsCognitoIdentityLookupDeveloperIdentityInput!, config: AwsConfig): AwsCognitoIdentityLookupDeveloperIdentityOutput
  mergeDeveloperIdentities(input: AwsCognitoIdentityMergeDeveloperIdentitiesInput!, config: AwsConfig): AwsCognitoIdentityMergeDeveloperIdentitiesOutput
  setIdentityPoolRoles(input: AwsCognitoIdentitySetIdentityPoolRolesInput!, config: AwsConfig): JSON
  setPrincipalTagAttributeMap(input: AwsCognitoIdentitySetPrincipalTagAttributeMapInput!, config: AwsConfig): AwsCognitoIdentitySetPrincipalTagAttributeMapOutput
  tagResource(input: AwsCognitoIdentityTagResourceInput!, config: AwsConfig): JSON
  unlinkDeveloperIdentity(input: AwsCognitoIdentityUnlinkDeveloperIdentityInput!, config: AwsConfig): JSON
  unlinkIdentity(input: AwsCognitoIdentityUnlinkIdentityInput!, config: AwsConfig): JSON
  untagResource(input: AwsCognitoIdentityUntagResourceInput!, config: AwsConfig): JSON
  updateIdentityPool(input: JSON, config: AwsConfig): JSON
}

input AwsCognitoIdentityCreateIdentityPoolInput {
  IdentityPoolName: String!
  AllowUnauthenticatedIdentities: Boolean!
  AllowClassicFlow: Boolean
  SupportedLoginProviders: JSON
  DeveloperProviderName: String
  OpenIdConnectProviderARNs: [String]
  CognitoIdentityProviders: [AwsCognitoIdentitySbInput]
  SamlProviderARNs: [String]
  IdentityPoolTags: JSON
}

input AwsCognitoIdentitySbInput {
  ProviderName: String
  ClientId: String
  ServerSideTokenCheck: Boolean
}

type AwsCognitoIdentityDeleteIdentitiesOutput {
  UnprocessedIdentityIds: [AwsCognitoIdentityDeleteIdentitiesOutputUnprocessedIdentityIds]
}

type AwsCognitoIdentityDeleteIdentitiesOutputUnprocessedIdentityIds {
  IdentityId: String
  ErrorCode: String
}

input AwsCognitoIdentityDeleteIdentitiesInput {
  IdentityIdsToDelete: [String]!
}

input AwsCognitoIdentityDeleteIdentityPoolInput {
  IdentityPoolId: String!
}

input AwsCognitoIdentityDescribeIdentityInput {
  IdentityId: String!
}

input AwsCognitoIdentityDescribeIdentityPoolInput {
  IdentityPoolId: String!
}

type AwsCognitoIdentityGetCredentialsForIdentityOutput {
  IdentityId: String
  Credentials: AwsCognitoIdentityGetCredentialsForIdentityOutputCredentials
}

type AwsCognitoIdentityGetCredentialsForIdentityOutputCredentials {
  AccessKeyId: String
  SecretKey: String
  SessionToken: String
  Expiration: Date
}

input AwsCognitoIdentityGetCredentialsForIdentityInput {
  IdentityId: String!
  Logins: JSON
  CustomRoleArn: String
}

type AwsCognitoIdentityGetIdOutput {
  IdentityId: String
}

input AwsCognitoIdentityGetIdInput {
  AccountId: String
  IdentityPoolId: String!
  Logins: JSON
}

type AwsCognitoIdentityGetIdentityPoolRolesOutput {
  IdentityPoolId: String
  Roles: JSON
  RoleMappings: JSON
}

input AwsCognitoIdentityGetIdentityPoolRolesInput {
  IdentityPoolId: String!
}

type AwsCognitoIdentityGetOpenIdTokenOutput {
  IdentityId: String
  Token: String
}

input AwsCognitoIdentityGetOpenIdTokenInput {
  IdentityId: String!
  Logins: JSON
}

type AwsCognitoIdentityGetOpenIdTokenForDeveloperIdentityOutput {
  IdentityId: String
  Token: String
}

input AwsCognitoIdentityGetOpenIdTokenForDeveloperIdentityInput {
  IdentityPoolId: String!
  IdentityId: String
  Logins: JSON!
  PrincipalTags: JSON
  TokenDuration: JSON
}

type AwsCognitoIdentityGetPrincipalTagAttributeMapOutput {
  IdentityPoolId: String
  IdentityProviderName: String
  UseDefaults: Boolean
  PrincipalTags: JSON
}

input AwsCognitoIdentityGetPrincipalTagAttributeMapInput {
  IdentityPoolId: String!
  IdentityProviderName: String!
}

type AwsCognitoIdentityListIdentitiesOutput {
  IdentityPoolId: String
  Identities: [AwsCognitoIdentitySv]
  NextToken: String
}

type AwsCognitoIdentitySv {
  IdentityId: String
  Logins: [String]
  CreationDate: Date
  LastModifiedDate: Date
}

input AwsCognitoIdentityListIdentitiesInput {
  IdentityPoolId: String!
  MaxResults: Int!
  NextToken: String
  HideDisabled: Boolean
}

type AwsCognitoIdentityListIdentityPoolsOutput {
  IdentityPools: [AwsCognitoIdentityListIdentityPoolsOutputIdentityPools]
  NextToken: String
}

type AwsCognitoIdentityListIdentityPoolsOutputIdentityPools {
  IdentityPoolId: String
  IdentityPoolName: String
}

input AwsCognitoIdentityListIdentityPoolsInput {
  MaxResults: Int!
  NextToken: String
}

type AwsCognitoIdentityListTagsForResourceOutput {
  Tags: JSON
}

input AwsCognitoIdentityListTagsForResourceInput {
  ResourceArn: String!
}

type AwsCognitoIdentityLookupDeveloperIdentityOutput {
  IdentityId: String
  DeveloperUserIdentifierList: [String]
  NextToken: String
}

input AwsCognitoIdentityLookupDeveloperIdentityInput {
  IdentityPoolId: String!
  IdentityId: String
  DeveloperUserIdentifier: String
  MaxResults: Int
  NextToken: String
}

type AwsCognitoIdentityMergeDeveloperIdentitiesOutput {
  IdentityId: String
}

input AwsCognitoIdentityMergeDeveloperIdentitiesInput {
  SourceUserIdentifier: String!
  DestinationUserIdentifier: String!
  DeveloperProviderName: String!
  IdentityPoolId: String!
}

input AwsCognitoIdentitySetIdentityPoolRolesInput {
  IdentityPoolId: String!
  Roles: JSON!
  RoleMappings: JSON
}

type AwsCognitoIdentitySetPrincipalTagAttributeMapOutput {
  IdentityPoolId: String
  IdentityProviderName: String
  UseDefaults: Boolean
  PrincipalTags: JSON
}

input AwsCognitoIdentitySetPrincipalTagAttributeMapInput {
  IdentityPoolId: String!
  IdentityProviderName: String!
  UseDefaults: Boolean
  PrincipalTags: JSON
}

input AwsCognitoIdentityTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsCognitoIdentityUnlinkDeveloperIdentityInput {
  IdentityId: String!
  IdentityPoolId: String!
  DeveloperProviderName: String!
  DeveloperUserIdentifier: String!
}

input AwsCognitoIdentityUnlinkIdentityInput {
  IdentityId: String!
  Logins: JSON!
  LoginsToRemove: [String]!
}

input AwsCognitoIdentityUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""Amazon Cognito Identity Provider (2016-04-18)"""
type AwsCognitoIdentityServiceProvider {
  addCustomAttributes(input: AwsCognitoIdentityServiceProviderAddCustomAttributesInput!, config: AwsConfig): JSON
  adminAddUserToGroup(input: AwsCognitoIdentityServiceProviderAdminAddUserToGroupInput!, config: AwsConfig): JSON
  adminConfirmSignUp(input: AwsCognitoIdentityServiceProviderAdminConfirmSignUpInput!, config: AwsConfig): JSON
  adminCreateUser(input: AwsCognitoIdentityServiceProviderAdminCreateUserInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminCreateUserOutput
  adminDeleteUser(input: AwsCognitoIdentityServiceProviderAdminDeleteUserInput!, config: AwsConfig): JSON
  adminDeleteUserAttributes(input: AwsCognitoIdentityServiceProviderAdminDeleteUserAttributesInput!, config: AwsConfig): JSON
  adminDisableProviderForUser(input: AwsCognitoIdentityServiceProviderAdminDisableProviderForUserInput!, config: AwsConfig): JSON
  adminDisableUser(input: AwsCognitoIdentityServiceProviderAdminDisableUserInput!, config: AwsConfig): JSON
  adminEnableUser(input: AwsCognitoIdentityServiceProviderAdminEnableUserInput!, config: AwsConfig): JSON
  adminForgetDevice(input: AwsCognitoIdentityServiceProviderAdminForgetDeviceInput!, config: AwsConfig): JSON
  adminGetDevice(input: AwsCognitoIdentityServiceProviderAdminGetDeviceInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminGetDeviceOutput
  adminGetUser(input: AwsCognitoIdentityServiceProviderAdminGetUserInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminGetUserOutput
  adminInitiateAuth(input: AwsCognitoIdentityServiceProviderAdminInitiateAuthInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminInitiateAuthOutput
  adminLinkProviderForUser(input: AwsCognitoIdentityServiceProviderAdminLinkProviderForUserInput!, config: AwsConfig): JSON
  adminListDevices(input: AwsCognitoIdentityServiceProviderAdminListDevicesInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminListDevicesOutput
  adminListGroupsForUser(input: AwsCognitoIdentityServiceProviderAdminListGroupsForUserInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminListGroupsForUserOutput
  adminListUserAuthEvents(input: AwsCognitoIdentityServiceProviderAdminListUserAuthEventsInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutput
  adminRemoveUserFromGroup(input: AwsCognitoIdentityServiceProviderAdminRemoveUserFromGroupInput!, config: AwsConfig): JSON
  adminResetUserPassword(input: AwsCognitoIdentityServiceProviderAdminResetUserPasswordInput!, config: AwsConfig): JSON
  adminRespondToAuthChallenge(input: AwsCognitoIdentityServiceProviderAdminRespondToAuthChallengeInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderAdminRespondToAuthChallengeOutput
  adminSetUserMFAPreference(input: AwsCognitoIdentityServiceProviderAdminSetUserMFAPreferenceInput!, config: AwsConfig): JSON
  adminSetUserPassword(input: AwsCognitoIdentityServiceProviderAdminSetUserPasswordInput!, config: AwsConfig): JSON
  adminSetUserSettings(input: AwsCognitoIdentityServiceProviderAdminSetUserSettingsInput!, config: AwsConfig): JSON
  adminUpdateAuthEventFeedback(input: AwsCognitoIdentityServiceProviderAdminUpdateAuthEventFeedbackInput!, config: AwsConfig): JSON
  adminUpdateDeviceStatus(input: AwsCognitoIdentityServiceProviderAdminUpdateDeviceStatusInput!, config: AwsConfig): JSON
  adminUpdateUserAttributes(input: AwsCognitoIdentityServiceProviderAdminUpdateUserAttributesInput!, config: AwsConfig): JSON
  adminUserGlobalSignOut(input: AwsCognitoIdentityServiceProviderAdminUserGlobalSignOutInput!, config: AwsConfig): JSON
  associateSoftwareToken(input: AwsCognitoIdentityServiceProviderAssociateSoftwareTokenInput, config: AwsConfig): AwsCognitoIdentityServiceProviderAssociateSoftwareTokenOutput
  changePassword(input: AwsCognitoIdentityServiceProviderChangePasswordInput!, config: AwsConfig): JSON
  confirmDevice(input: AwsCognitoIdentityServiceProviderConfirmDeviceInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderConfirmDeviceOutput
  confirmForgotPassword(input: AwsCognitoIdentityServiceProviderConfirmForgotPasswordInput!, config: AwsConfig): JSON
  confirmSignUp(input: AwsCognitoIdentityServiceProviderConfirmSignUpInput!, config: AwsConfig): JSON
  createGroup(input: AwsCognitoIdentityServiceProviderCreateGroupInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateGroupOutput
  createIdentityProvider(input: AwsCognitoIdentityServiceProviderCreateIdentityProviderInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateIdentityProviderOutput
  createResourceServer(input: AwsCognitoIdentityServiceProviderCreateResourceServerInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateResourceServerOutput
  createUserImportJob(input: AwsCognitoIdentityServiceProviderCreateUserImportJobInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateUserImportJobOutput
  createUserPool(input: AwsCognitoIdentityServiceProviderCreateUserPoolInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateUserPoolOutput
  createUserPoolClient(input: AwsCognitoIdentityServiceProviderCreateUserPoolClientInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateUserPoolClientOutput
  createUserPoolDomain(input: AwsCognitoIdentityServiceProviderCreateUserPoolDomainInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderCreateUserPoolDomainOutput
  deleteGroup(input: AwsCognitoIdentityServiceProviderDeleteGroupInput!, config: AwsConfig): JSON
  deleteIdentityProvider(input: AwsCognitoIdentityServiceProviderDeleteIdentityProviderInput!, config: AwsConfig): JSON
  deleteResourceServer(input: AwsCognitoIdentityServiceProviderDeleteResourceServerInput!, config: AwsConfig): JSON
  deleteUser(input: AwsCognitoIdentityServiceProviderDeleteUserInput!, config: AwsConfig): JSON
  deleteUserAttributes(input: AwsCognitoIdentityServiceProviderDeleteUserAttributesInput!, config: AwsConfig): JSON
  deleteUserPool(input: AwsCognitoIdentityServiceProviderDeleteUserPoolInput!, config: AwsConfig): JSON
  deleteUserPoolClient(input: AwsCognitoIdentityServiceProviderDeleteUserPoolClientInput!, config: AwsConfig): JSON
  deleteUserPoolDomain(input: AwsCognitoIdentityServiceProviderDeleteUserPoolDomainInput!, config: AwsConfig): JSON
  describeIdentityProvider(input: AwsCognitoIdentityServiceProviderDescribeIdentityProviderInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeIdentityProviderOutput
  describeResourceServer(input: AwsCognitoIdentityServiceProviderDescribeResourceServerInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeResourceServerOutput
  describeRiskConfiguration(input: AwsCognitoIdentityServiceProviderDescribeRiskConfigurationInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeRiskConfigurationOutput
  describeUserImportJob(input: AwsCognitoIdentityServiceProviderDescribeUserImportJobInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeUserImportJobOutput
  describeUserPool(input: AwsCognitoIdentityServiceProviderDescribeUserPoolInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeUserPoolOutput
  describeUserPoolClient(input: AwsCognitoIdentityServiceProviderDescribeUserPoolClientInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeUserPoolClientOutput
  describeUserPoolDomain(input: AwsCognitoIdentityServiceProviderDescribeUserPoolDomainInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderDescribeUserPoolDomainOutput
  forgetDevice(input: AwsCognitoIdentityServiceProviderForgetDeviceInput!, config: AwsConfig): JSON
  forgotPassword(input: AwsCognitoIdentityServiceProviderForgotPasswordInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderForgotPasswordOutput
  getCSVHeader(input: AwsCognitoIdentityServiceProviderGetCSVHeaderInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetCSVHeaderOutput
  getDevice(input: AwsCognitoIdentityServiceProviderGetDeviceInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetDeviceOutput
  getGroup(input: AwsCognitoIdentityServiceProviderGetGroupInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetGroupOutput
  getIdentityProviderByIdentifier(input: AwsCognitoIdentityServiceProviderGetIdentityProviderByIdentifierInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetIdentityProviderByIdentifierOutput
  getSigningCertificate(input: AwsCognitoIdentityServiceProviderGetSigningCertificateInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetSigningCertificateOutput
  getUICustomization(input: AwsCognitoIdentityServiceProviderGetUICustomizationInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetUICustomizationOutput
  getUser(input: AwsCognitoIdentityServiceProviderGetUserInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetUserOutput
  getUserAttributeVerificationCode(input: AwsCognitoIdentityServiceProviderGetUserAttributeVerificationCodeInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetUserAttributeVerificationCodeOutput
  getUserPoolMfaConfig(input: AwsCognitoIdentityServiceProviderGetUserPoolMfaConfigInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderGetUserPoolMfaConfigOutput
  globalSignOut(input: AwsCognitoIdentityServiceProviderGlobalSignOutInput!, config: AwsConfig): JSON
  initiateAuth(input: AwsCognitoIdentityServiceProviderInitiateAuthInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderInitiateAuthOutput
  listDevices(input: AwsCognitoIdentityServiceProviderListDevicesInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListDevicesOutput
  listGroups(input: AwsCognitoIdentityServiceProviderListGroupsInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListGroupsOutput
  listIdentityProviders(input: AwsCognitoIdentityServiceProviderListIdentityProvidersInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListIdentityProvidersOutput
  listResourceServers(input: AwsCognitoIdentityServiceProviderListResourceServersInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListResourceServersOutput
  listTagsForResource(input: AwsCognitoIdentityServiceProviderListTagsForResourceInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListTagsForResourceOutput
  listUserImportJobs(input: AwsCognitoIdentityServiceProviderListUserImportJobsInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListUserImportJobsOutput
  listUserPoolClients(input: AwsCognitoIdentityServiceProviderListUserPoolClientsInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListUserPoolClientsOutput
  listUserPools(input: AwsCognitoIdentityServiceProviderListUserPoolsInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListUserPoolsOutput
  listUsers(input: AwsCognitoIdentityServiceProviderListUsersInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListUsersOutput
  listUsersInGroup(input: AwsCognitoIdentityServiceProviderListUsersInGroupInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderListUsersInGroupOutput
  resendConfirmationCode(input: AwsCognitoIdentityServiceProviderResendConfirmationCodeInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderResendConfirmationCodeOutput
  respondToAuthChallenge(input: AwsCognitoIdentityServiceProviderRespondToAuthChallengeInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderRespondToAuthChallengeOutput
  revokeToken(input: AwsCognitoIdentityServiceProviderRevokeTokenInput!, config: AwsConfig): JSON
  setRiskConfiguration(input: AwsCognitoIdentityServiceProviderSetRiskConfigurationInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderSetRiskConfigurationOutput
  setUICustomization(input: AwsCognitoIdentityServiceProviderSetUICustomizationInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderSetUICustomizationOutput
  setUserMFAPreference(input: AwsCognitoIdentityServiceProviderSetUserMFAPreferenceInput!, config: AwsConfig): JSON
  setUserPoolMfaConfig(input: AwsCognitoIdentityServiceProviderSetUserPoolMfaConfigInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderSetUserPoolMfaConfigOutput
  setUserSettings(input: AwsCognitoIdentityServiceProviderSetUserSettingsInput!, config: AwsConfig): JSON
  signUp(input: AwsCognitoIdentityServiceProviderSignUpInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderSignUpOutput
  startUserImportJob(input: AwsCognitoIdentityServiceProviderStartUserImportJobInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderStartUserImportJobOutput
  stopUserImportJob(input: AwsCognitoIdentityServiceProviderStopUserImportJobInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderStopUserImportJobOutput
  tagResource(input: AwsCognitoIdentityServiceProviderTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCognitoIdentityServiceProviderUntagResourceInput!, config: AwsConfig): JSON
  updateAuthEventFeedback(input: AwsCognitoIdentityServiceProviderUpdateAuthEventFeedbackInput!, config: AwsConfig): JSON
  updateDeviceStatus(input: AwsCognitoIdentityServiceProviderUpdateDeviceStatusInput!, config: AwsConfig): JSON
  updateGroup(input: AwsCognitoIdentityServiceProviderUpdateGroupInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateGroupOutput
  updateIdentityProvider(input: AwsCognitoIdentityServiceProviderUpdateIdentityProviderInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateIdentityProviderOutput
  updateResourceServer(input: AwsCognitoIdentityServiceProviderUpdateResourceServerInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateResourceServerOutput
  updateUserAttributes(input: AwsCognitoIdentityServiceProviderUpdateUserAttributesInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateUserAttributesOutput
  updateUserPool(input: AwsCognitoIdentityServiceProviderUpdateUserPoolInput!, config: AwsConfig): JSON
  updateUserPoolClient(input: AwsCognitoIdentityServiceProviderUpdateUserPoolClientInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateUserPoolClientOutput
  updateUserPoolDomain(input: AwsCognitoIdentityServiceProviderUpdateUserPoolDomainInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderUpdateUserPoolDomainOutput
  verifySoftwareToken(input: AwsCognitoIdentityServiceProviderVerifySoftwareTokenInput!, config: AwsConfig): AwsCognitoIdentityServiceProviderVerifySoftwareTokenOutput
  verifyUserAttribute(input: AwsCognitoIdentityServiceProviderVerifyUserAttributeInput!, config: AwsConfig): JSON
}

input AwsCognitoIdentityServiceProviderAddCustomAttributesInput {
  UserPoolId: String!
  CustomAttributes: [AwsCognitoIdentityServiceProviderS4Input]!
}

input AwsCognitoIdentityServiceProviderS4Input {
  Name: String
  AttributeDataType: String
  DeveloperOnlyAttribute: Boolean
  Mutable: Boolean
  Required: Boolean
  NumberAttributeConstraints: AwsCognitoIdentityServiceProviderS4NumberAttributeConstraintsInput
  StringAttributeConstraints: AwsCognitoIdentityServiceProviderS4StringAttributeConstraintsInput
}

input AwsCognitoIdentityServiceProviderS4NumberAttributeConstraintsInput {
  MinValue: String
  MaxValue: String
}

input AwsCognitoIdentityServiceProviderS4StringAttributeConstraintsInput {
  MinLength: String
  MaxLength: String
}

input AwsCognitoIdentityServiceProviderAdminAddUserToGroupInput {
  UserPoolId: String!
  Username: String!
  GroupName: String!
}

input AwsCognitoIdentityServiceProviderAdminConfirmSignUpInput {
  UserPoolId: String!
  Username: String!
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderAdminCreateUserOutput {
  User: AwsCognitoIdentityServiceProviderSt
}

type AwsCognitoIdentityServiceProviderSt {
  Username: String
  Attributes: [AwsCognitoIdentityServiceProviderSj]
  UserCreateDate: Date
  UserLastModifiedDate: Date
  Enabled: Boolean
  UserStatus: String
  MFAOptions: [AwsCognitoIdentityServiceProviderSw]
}

type AwsCognitoIdentityServiceProviderSj {
  Name: String!
  Value: String
}

type AwsCognitoIdentityServiceProviderSw {
  DeliveryMedium: String
  AttributeName: String
}

input AwsCognitoIdentityServiceProviderAdminCreateUserInput {
  UserPoolId: String!
  Username: String!
  UserAttributes: [AwsCognitoIdentityServiceProviderSjInput]
  ValidationData: [AwsCognitoIdentityServiceProviderSjInput]
  TemporaryPassword: String
  ForceAliasCreation: Boolean
  MessageAction: String
  DesiredDeliveryMediums: [String]
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderSjInput {
  Name: String!
  Value: String
}

input AwsCognitoIdentityServiceProviderAdminDeleteUserInput {
  UserPoolId: String!
  Username: String!
}

input AwsCognitoIdentityServiceProviderAdminDeleteUserAttributesInput {
  UserPoolId: String!
  Username: String!
  UserAttributeNames: [String]!
}

input AwsCognitoIdentityServiceProviderAdminDisableProviderForUserInput {
  UserPoolId: String!
  User: AwsCognitoIdentityServiceProviderS13Input!
}

input AwsCognitoIdentityServiceProviderS13Input {
  ProviderName: String
  ProviderAttributeName: String
  ProviderAttributeValue: String
}

input AwsCognitoIdentityServiceProviderAdminDisableUserInput {
  UserPoolId: String!
  Username: String!
}

input AwsCognitoIdentityServiceProviderAdminEnableUserInput {
  UserPoolId: String!
  Username: String!
}

input AwsCognitoIdentityServiceProviderAdminForgetDeviceInput {
  UserPoolId: String!
  Username: String!
  DeviceKey: String!
}

type AwsCognitoIdentityServiceProviderAdminGetDeviceOutput {
  Device: AwsCognitoIdentityServiceProviderS1e!
}

type AwsCognitoIdentityServiceProviderS1e {
  DeviceKey: String
  DeviceAttributes: [AwsCognitoIdentityServiceProviderSj]
  DeviceCreateDate: Date
  DeviceLastModifiedDate: Date
  DeviceLastAuthenticatedDate: Date
}

input AwsCognitoIdentityServiceProviderAdminGetDeviceInput {
  DeviceKey: String!
  UserPoolId: String!
  Username: String!
}

type AwsCognitoIdentityServiceProviderAdminGetUserOutput {
  Username: String!
  UserAttributes: [AwsCognitoIdentityServiceProviderSj]
  UserCreateDate: Date
  UserLastModifiedDate: Date
  Enabled: Boolean
  UserStatus: String
  MFAOptions: [AwsCognitoIdentityServiceProviderSw]
  PreferredMfaSetting: String
  UserMFASettingList: [String]
}

input AwsCognitoIdentityServiceProviderAdminGetUserInput {
  UserPoolId: String!
  Username: String!
}

type AwsCognitoIdentityServiceProviderAdminInitiateAuthOutput {
  ChallengeName: String
  Session: String
  ChallengeParameters: JSON
  AuthenticationResult: AwsCognitoIdentityServiceProviderS1u
}

type AwsCognitoIdentityServiceProviderS1u {
  AccessToken: String
  ExpiresIn: Int
  TokenType: String
  RefreshToken: String
  IdToken: String
  NewDeviceMetadata: AwsCognitoIdentityServiceProviderS1uNewDeviceMetadata
}

type AwsCognitoIdentityServiceProviderS1uNewDeviceMetadata {
  DeviceKey: String
  DeviceGroupKey: String
}

input AwsCognitoIdentityServiceProviderAdminInitiateAuthInput {
  UserPoolId: String!
  ClientId: String!
  AuthFlow: String!
  AuthParameters: JSON
  ClientMetadata: JSON
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  ContextData: AwsCognitoIdentityServiceProviderS1nInput
}

input AwsCognitoIdentityServiceProviderS1mInput {
  AnalyticsEndpointId: String
}

input AwsCognitoIdentityServiceProviderS1nInput {
  IpAddress: String!
  ServerName: String!
  ServerPath: String!
  HttpHeaders: [AwsCognitoIdentityServiceProviderS1nHttpHeadersInput]!
  EncodedData: String
}

input AwsCognitoIdentityServiceProviderS1nHttpHeadersInput {
  headerName: String
  headerValue: String
}

input AwsCognitoIdentityServiceProviderAdminLinkProviderForUserInput {
  UserPoolId: String!
  DestinationUser: AwsCognitoIdentityServiceProviderS13Input!
  SourceUser: AwsCognitoIdentityServiceProviderS13Input!
}

type AwsCognitoIdentityServiceProviderAdminListDevicesOutput {
  Devices: [AwsCognitoIdentityServiceProviderS1e]
  PaginationToken: String
}

input AwsCognitoIdentityServiceProviderAdminListDevicesInput {
  UserPoolId: String!
  Username: String!
  Limit: Int
  PaginationToken: String
}

type AwsCognitoIdentityServiceProviderAdminListGroupsForUserOutput {
  Groups: [AwsCognitoIdentityServiceProviderS29]
  NextToken: String
}

type AwsCognitoIdentityServiceProviderS29 {
  GroupName: String
  UserPoolId: String
  Description: String
  RoleArn: String
  Precedence: Int
  LastModifiedDate: Date
  CreationDate: Date
}

input AwsCognitoIdentityServiceProviderAdminListGroupsForUserInput {
  Username: String!
  UserPoolId: String!
  Limit: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutput {
  AuthEvents: [AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEvents]
  NextToken: String
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEvents {
  EventId: String
  EventType: String
  CreationDate: Date
  EventResponse: String
  EventRisk: AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventRisk
  ChallengeResponses: [AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsChallengeResponses]
  EventContextData: AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventContextData
  EventFeedback: AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventFeedback
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventRisk {
  RiskDecision: String
  RiskLevel: String
  CompromisedCredentialsDetected: Boolean
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsChallengeResponses {
  ChallengeName: String
  ChallengeResponse: String
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventContextData {
  IpAddress: String
  DeviceName: String
  Timezone: String
  City: String
  Country: String
}

type AwsCognitoIdentityServiceProviderAdminListUserAuthEventsOutputAuthEventsEventFeedback {
  FeedbackValue: String!
  Provider: String!
  FeedbackDate: Date
}

input AwsCognitoIdentityServiceProviderAdminListUserAuthEventsInput {
  UserPoolId: String!
  Username: String!
  MaxResults: Int
  NextToken: String
}

input AwsCognitoIdentityServiceProviderAdminRemoveUserFromGroupInput {
  UserPoolId: String!
  Username: String!
  GroupName: String!
}

input AwsCognitoIdentityServiceProviderAdminResetUserPasswordInput {
  UserPoolId: String!
  Username: String!
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderAdminRespondToAuthChallengeOutput {
  ChallengeName: String
  Session: String
  ChallengeParameters: JSON
  AuthenticationResult: AwsCognitoIdentityServiceProviderS1u
}

input AwsCognitoIdentityServiceProviderAdminRespondToAuthChallengeInput {
  UserPoolId: String!
  ClientId: String!
  ChallengeName: String!
  ChallengeResponses: JSON
  Session: String
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  ContextData: AwsCognitoIdentityServiceProviderS1nInput
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderAdminSetUserMFAPreferenceInput {
  SMSMfaSettings: AwsCognitoIdentityServiceProviderS31Input
  SoftwareTokenMfaSettings: AwsCognitoIdentityServiceProviderS32Input
  Username: String!
  UserPoolId: String!
}

input AwsCognitoIdentityServiceProviderS31Input {
  Enabled: Boolean
  PreferredMfa: Boolean
}

input AwsCognitoIdentityServiceProviderS32Input {
  Enabled: Boolean
  PreferredMfa: Boolean
}

input AwsCognitoIdentityServiceProviderAdminSetUserPasswordInput {
  UserPoolId: String!
  Username: String!
  Password: String!
  Permanent: Boolean
}

input AwsCognitoIdentityServiceProviderAdminSetUserSettingsInput {
  UserPoolId: String!
  Username: String!
  MFAOptions: [AwsCognitoIdentityServiceProviderSwInput]!
}

input AwsCognitoIdentityServiceProviderSwInput {
  DeliveryMedium: String
  AttributeName: String
}

input AwsCognitoIdentityServiceProviderAdminUpdateAuthEventFeedbackInput {
  UserPoolId: String!
  Username: String!
  EventId: String!
  FeedbackValue: String!
}

input AwsCognitoIdentityServiceProviderAdminUpdateDeviceStatusInput {
  UserPoolId: String!
  Username: String!
  DeviceKey: String!
  DeviceRememberedStatus: String
}

input AwsCognitoIdentityServiceProviderAdminUpdateUserAttributesInput {
  UserPoolId: String!
  Username: String!
  UserAttributes: [AwsCognitoIdentityServiceProviderSjInput]!
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderAdminUserGlobalSignOutInput {
  UserPoolId: String!
  Username: String!
}

type AwsCognitoIdentityServiceProviderAssociateSoftwareTokenOutput {
  SecretCode: String
  Session: String
}

input AwsCognitoIdentityServiceProviderAssociateSoftwareTokenInput {
  AccessToken: String
  Session: String
}

input AwsCognitoIdentityServiceProviderChangePasswordInput {
  PreviousPassword: String!
  ProposedPassword: String!
  AccessToken: String!
}

type AwsCognitoIdentityServiceProviderConfirmDeviceOutput {
  UserConfirmationNecessary: Boolean
}

input AwsCognitoIdentityServiceProviderConfirmDeviceInput {
  AccessToken: String!
  DeviceKey: String!
  DeviceSecretVerifierConfig: AwsCognitoIdentityServiceProviderConfirmDeviceDeviceSecretVerifierConfigInput
  DeviceName: String
}

input AwsCognitoIdentityServiceProviderConfirmDeviceDeviceSecretVerifierConfigInput {
  PasswordVerifier: String
  Salt: String
}

input AwsCognitoIdentityServiceProviderConfirmForgotPasswordInput {
  ClientId: String!
  SecretHash: String
  Username: String!
  ConfirmationCode: String!
  Password: String!
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderS3uInput {
  EncodedData: String
}

input AwsCognitoIdentityServiceProviderConfirmSignUpInput {
  ClientId: String!
  SecretHash: String
  Username: String!
  ConfirmationCode: String!
  ForceAliasCreation: Boolean
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderCreateGroupOutput {
  Group: AwsCognitoIdentityServiceProviderS29
}

input AwsCognitoIdentityServiceProviderCreateGroupInput {
  GroupName: String!
  UserPoolId: String!
  Description: String
  RoleArn: String
  Precedence: Int
}

type AwsCognitoIdentityServiceProviderCreateIdentityProviderOutput {
  IdentityProvider: AwsCognitoIdentityServiceProviderS49!
}

type AwsCognitoIdentityServiceProviderS49 {
  UserPoolId: String
  ProviderName: String
  ProviderType: String
  ProviderDetails: JSON
  AttributeMapping: JSON
  IdpIdentifiers: [String]
  LastModifiedDate: Date
  CreationDate: Date
}

input AwsCognitoIdentityServiceProviderCreateIdentityProviderInput {
  UserPoolId: String!
  ProviderName: String!
  ProviderType: String!
  ProviderDetails: JSON!
  AttributeMapping: JSON
  IdpIdentifiers: [String]
}

type AwsCognitoIdentityServiceProviderCreateResourceServerOutput {
  ResourceServer: AwsCognitoIdentityServiceProviderS4i!
}

type AwsCognitoIdentityServiceProviderS4i {
  UserPoolId: String
  Identifier: String
  Name: String
  Scopes: [AwsCognitoIdentityServiceProviderS4d]
}

type AwsCognitoIdentityServiceProviderS4d {
  ScopeName: String!
  ScopeDescription: String!
}

input AwsCognitoIdentityServiceProviderCreateResourceServerInput {
  UserPoolId: String!
  Identifier: String!
  Name: String!
  Scopes: [AwsCognitoIdentityServiceProviderS4dInput]
}

input AwsCognitoIdentityServiceProviderS4dInput {
  ScopeName: String!
  ScopeDescription: String!
}

type AwsCognitoIdentityServiceProviderCreateUserImportJobOutput {
  UserImportJob: AwsCognitoIdentityServiceProviderS4m
}

type AwsCognitoIdentityServiceProviderS4m {
  JobName: String
  JobId: String
  UserPoolId: String
  PreSignedUrl: String
  CreationDate: Date
  StartDate: Date
  CompletionDate: Date
  Status: String
  CloudWatchLogsRoleArn: String
  ImportedUsers: JSON
  SkippedUsers: JSON
  FailedUsers: JSON
  CompletionMessage: String
}

input AwsCognitoIdentityServiceProviderCreateUserImportJobInput {
  JobName: String!
  UserPoolId: String!
  CloudWatchLogsRoleArn: String!
}

type AwsCognitoIdentityServiceProviderCreateUserPoolOutput {
  UserPool: AwsCognitoIdentityServiceProviderS63
}

type AwsCognitoIdentityServiceProviderS63 {
  Id: String
  Name: String
  Policies: AwsCognitoIdentityServiceProviderS4u
  LambdaConfig: AwsCognitoIdentityServiceProviderS4y
  Status: String
  LastModifiedDate: Date
  CreationDate: Date
  SchemaAttributes: [AwsCognitoIdentityServiceProviderS4]
  AutoVerifiedAttributes: [String]
  AliasAttributes: [String]
  UsernameAttributes: [String]
  SmsVerificationMessage: String
  EmailVerificationMessage: String
  EmailVerificationSubject: String
  VerificationMessageTemplate: AwsCognitoIdentityServiceProviderS5c
  SmsAuthenticationMessage: String
  MfaConfiguration: String
  DeviceConfiguration: AwsCognitoIdentityServiceProviderS5h
  EstimatedNumberOfUsers: Int
  EmailConfiguration: AwsCognitoIdentityServiceProviderS5i
  SmsConfiguration: AwsCognitoIdentityServiceProviderS5m
  UserPoolTags: JSON
  SmsConfigurationFailure: String
  EmailConfigurationFailure: String
  Domain: String
  CustomDomain: String
  AdminCreateUserConfig: AwsCognitoIdentityServiceProviderS5q
  UserPoolAddOns: AwsCognitoIdentityServiceProviderS5u
  UsernameConfiguration: AwsCognitoIdentityServiceProviderS5w
  Arn: String
  AccountRecoverySetting: AwsCognitoIdentityServiceProviderS5x
}

type AwsCognitoIdentityServiceProviderS4u {
  PasswordPolicy: AwsCognitoIdentityServiceProviderS4uPasswordPolicy
}

type AwsCognitoIdentityServiceProviderS4uPasswordPolicy {
  MinimumLength: Int
  RequireUppercase: Boolean
  RequireLowercase: Boolean
  RequireNumbers: Boolean
  RequireSymbols: Boolean
  TemporaryPasswordValidityDays: Int
}

type AwsCognitoIdentityServiceProviderS4y {
  PreSignUp: String
  CustomMessage: String
  PostConfirmation: String
  PreAuthentication: String
  PostAuthentication: String
  DefineAuthChallenge: String
  CreateAuthChallenge: String
  VerifyAuthChallengeResponse: String
  PreTokenGeneration: String
  UserMigration: String
  CustomSMSSender: AwsCognitoIdentityServiceProviderS4yCustomSMSSender
  CustomEmailSender: AwsCognitoIdentityServiceProviderS4yCustomEmailSender
  KMSKeyID: String
}

type AwsCognitoIdentityServiceProviderS4yCustomSMSSender {
  LambdaVersion: String!
  LambdaArn: String!
}

type AwsCognitoIdentityServiceProviderS4yCustomEmailSender {
  LambdaVersion: String!
  LambdaArn: String!
}

type AwsCognitoIdentityServiceProviderS4 {
  Name: String
  AttributeDataType: String
  DeveloperOnlyAttribute: Boolean
  Mutable: Boolean
  Required: Boolean
  NumberAttributeConstraints: AwsCognitoIdentityServiceProviderS4NumberAttributeConstraints
  StringAttributeConstraints: AwsCognitoIdentityServiceProviderS4StringAttributeConstraints
}

type AwsCognitoIdentityServiceProviderS4NumberAttributeConstraints {
  MinValue: String
  MaxValue: String
}

type AwsCognitoIdentityServiceProviderS4StringAttributeConstraints {
  MinLength: String
  MaxLength: String
}

type AwsCognitoIdentityServiceProviderS5c {
  SmsMessage: String
  EmailMessage: String
  EmailSubject: String
  EmailMessageByLink: String
  EmailSubjectByLink: String
  DefaultEmailOption: String
}

type AwsCognitoIdentityServiceProviderS5h {
  ChallengeRequiredOnNewDevice: Boolean
  DeviceOnlyRememberedOnUserPrompt: Boolean
}

type AwsCognitoIdentityServiceProviderS5i {
  SourceArn: String
  ReplyToEmailAddress: String
  EmailSendingAccount: String
  From: String
  ConfigurationSet: String
}

type AwsCognitoIdentityServiceProviderS5m {
  SnsCallerArn: String!
  ExternalId: String
}

type AwsCognitoIdentityServiceProviderS5q {
  AllowAdminCreateUserOnly: Boolean
  UnusedAccountValidityDays: Int
  InviteMessageTemplate: AwsCognitoIdentityServiceProviderS5qInviteMessageTemplate
}

type AwsCognitoIdentityServiceProviderS5qInviteMessageTemplate {
  SMSMessage: String
  EmailMessage: String
  EmailSubject: String
}

type AwsCognitoIdentityServiceProviderS5u {
  AdvancedSecurityMode: String!
}

type AwsCognitoIdentityServiceProviderS5w {
  CaseSensitive: Boolean!
}

type AwsCognitoIdentityServiceProviderS5x {
  RecoveryMechanisms: [AwsCognitoIdentityServiceProviderS5xRecoveryMechanisms]
}

type AwsCognitoIdentityServiceProviderS5xRecoveryMechanisms {
  Priority: Int!
  Name: String!
}

input AwsCognitoIdentityServiceProviderCreateUserPoolInput {
  PoolName: String!
  Policies: AwsCognitoIdentityServiceProviderS4uInput
  LambdaConfig: AwsCognitoIdentityServiceProviderS4yInput
  AutoVerifiedAttributes: [String]
  AliasAttributes: [String]
  UsernameAttributes: [String]
  SmsVerificationMessage: String
  EmailVerificationMessage: String
  EmailVerificationSubject: String
  VerificationMessageTemplate: AwsCognitoIdentityServiceProviderS5cInput
  SmsAuthenticationMessage: String
  MfaConfiguration: String
  DeviceConfiguration: AwsCognitoIdentityServiceProviderS5hInput
  EmailConfiguration: AwsCognitoIdentityServiceProviderS5iInput
  SmsConfiguration: AwsCognitoIdentityServiceProviderS5mInput
  UserPoolTags: JSON
  AdminCreateUserConfig: AwsCognitoIdentityServiceProviderS5qInput
  Schema: [AwsCognitoIdentityServiceProviderS4Input]
  UserPoolAddOns: AwsCognitoIdentityServiceProviderS5uInput
  UsernameConfiguration: AwsCognitoIdentityServiceProviderS5wInput
  AccountRecoverySetting: AwsCognitoIdentityServiceProviderS5xInput
}

input AwsCognitoIdentityServiceProviderS4uInput {
  PasswordPolicy: AwsCognitoIdentityServiceProviderS4uPasswordPolicyInput
}

input AwsCognitoIdentityServiceProviderS4uPasswordPolicyInput {
  MinimumLength: Int
  RequireUppercase: Boolean
  RequireLowercase: Boolean
  RequireNumbers: Boolean
  RequireSymbols: Boolean
  TemporaryPasswordValidityDays: Int
}

input AwsCognitoIdentityServiceProviderS4yInput {
  PreSignUp: String
  CustomMessage: String
  PostConfirmation: String
  PreAuthentication: String
  PostAuthentication: String
  DefineAuthChallenge: String
  CreateAuthChallenge: String
  VerifyAuthChallengeResponse: String
  PreTokenGeneration: String
  UserMigration: String
  CustomSMSSender: AwsCognitoIdentityServiceProviderS4yCustomSMSSenderInput
  CustomEmailSender: AwsCognitoIdentityServiceProviderS4yCustomEmailSenderInput
  KMSKeyID: String
}

input AwsCognitoIdentityServiceProviderS4yCustomSMSSenderInput {
  LambdaVersion: String!
  LambdaArn: String!
}

input AwsCognitoIdentityServiceProviderS4yCustomEmailSenderInput {
  LambdaVersion: String!
  LambdaArn: String!
}

input AwsCognitoIdentityServiceProviderS5cInput {
  SmsMessage: String
  EmailMessage: String
  EmailSubject: String
  EmailMessageByLink: String
  EmailSubjectByLink: String
  DefaultEmailOption: String
}

input AwsCognitoIdentityServiceProviderS5hInput {
  ChallengeRequiredOnNewDevice: Boolean
  DeviceOnlyRememberedOnUserPrompt: Boolean
}

input AwsCognitoIdentityServiceProviderS5iInput {
  SourceArn: String
  ReplyToEmailAddress: String
  EmailSendingAccount: String
  From: String
  ConfigurationSet: String
}

input AwsCognitoIdentityServiceProviderS5mInput {
  SnsCallerArn: String!
  ExternalId: String
}

input AwsCognitoIdentityServiceProviderS5qInput {
  AllowAdminCreateUserOnly: Boolean
  UnusedAccountValidityDays: Int
  InviteMessageTemplate: AwsCognitoIdentityServiceProviderS5qInviteMessageTemplateInput
}

input AwsCognitoIdentityServiceProviderS5qInviteMessageTemplateInput {
  SMSMessage: String
  EmailMessage: String
  EmailSubject: String
}

input AwsCognitoIdentityServiceProviderS5uInput {
  AdvancedSecurityMode: String!
}

input AwsCognitoIdentityServiceProviderS5wInput {
  CaseSensitive: Boolean!
}

input AwsCognitoIdentityServiceProviderS5xInput {
  RecoveryMechanisms: [AwsCognitoIdentityServiceProviderS5xRecoveryMechanismsInput]
}

input AwsCognitoIdentityServiceProviderS5xRecoveryMechanismsInput {
  Priority: Int!
  Name: String!
}

type AwsCognitoIdentityServiceProviderCreateUserPoolClientOutput {
  UserPoolClient: AwsCognitoIdentityServiceProviderS6u
}

type AwsCognitoIdentityServiceProviderS6u {
  UserPoolId: String
  ClientName: String
  ClientId: String
  ClientSecret: String
  LastModifiedDate: Date
  CreationDate: Date
  RefreshTokenValidity: Int
  AccessTokenValidity: Int
  IdTokenValidity: Int
  TokenValidityUnits: AwsCognitoIdentityServiceProviderS6c
  ReadAttributes: [String]
  WriteAttributes: [String]
  ExplicitAuthFlows: [String]
  SupportedIdentityProviders: [String]
  CallbackURLs: [String]
  LogoutURLs: [String]
  DefaultRedirectURI: String
  AllowedOAuthFlows: [String]
  AllowedOAuthScopes: [String]
  AllowedOAuthFlowsUserPoolClient: Boolean
  AnalyticsConfiguration: AwsCognitoIdentityServiceProviderS6q
  PreventUserExistenceErrors: String
  EnableTokenRevocation: Boolean
}

type AwsCognitoIdentityServiceProviderS6c {
  AccessToken: String
  IdToken: String
  RefreshToken: String
}

type AwsCognitoIdentityServiceProviderS6q {
  ApplicationId: String
  ApplicationArn: String
  RoleArn: String
  ExternalId: String
  UserDataShared: Boolean
}

input AwsCognitoIdentityServiceProviderCreateUserPoolClientInput {
  UserPoolId: String!
  ClientName: String!
  GenerateSecret: Boolean
  RefreshTokenValidity: Int
  AccessTokenValidity: Int
  IdTokenValidity: Int
  TokenValidityUnits: AwsCognitoIdentityServiceProviderS6cInput
  ReadAttributes: [String]
  WriteAttributes: [String]
  ExplicitAuthFlows: [String]
  SupportedIdentityProviders: [String]
  CallbackURLs: [String]
  LogoutURLs: [String]
  DefaultRedirectURI: String
  AllowedOAuthFlows: [String]
  AllowedOAuthScopes: [String]
  AllowedOAuthFlowsUserPoolClient: Boolean
  AnalyticsConfiguration: AwsCognitoIdentityServiceProviderS6qInput
  PreventUserExistenceErrors: String
  EnableTokenRevocation: Boolean
}

input AwsCognitoIdentityServiceProviderS6cInput {
  AccessToken: String
  IdToken: String
  RefreshToken: String
}

input AwsCognitoIdentityServiceProviderS6qInput {
  ApplicationId: String
  ApplicationArn: String
  RoleArn: String
  ExternalId: String
  UserDataShared: Boolean
}

type AwsCognitoIdentityServiceProviderCreateUserPoolDomainOutput {
  CloudFrontDomain: String
}

input AwsCognitoIdentityServiceProviderCreateUserPoolDomainInput {
  Domain: String!
  UserPoolId: String!
  CustomDomainConfig: AwsCognitoIdentityServiceProviderS6xInput
}

input AwsCognitoIdentityServiceProviderS6xInput {
  CertificateArn: String!
}

input AwsCognitoIdentityServiceProviderDeleteGroupInput {
  GroupName: String!
  UserPoolId: String!
}

input AwsCognitoIdentityServiceProviderDeleteIdentityProviderInput {
  UserPoolId: String!
  ProviderName: String!
}

input AwsCognitoIdentityServiceProviderDeleteResourceServerInput {
  UserPoolId: String!
  Identifier: String!
}

input AwsCognitoIdentityServiceProviderDeleteUserInput {
  AccessToken: String!
}

input AwsCognitoIdentityServiceProviderDeleteUserAttributesInput {
  UserAttributeNames: [String]!
  AccessToken: String!
}

input AwsCognitoIdentityServiceProviderDeleteUserPoolInput {
  UserPoolId: String!
}

input AwsCognitoIdentityServiceProviderDeleteUserPoolClientInput {
  UserPoolId: String!
  ClientId: String!
}

input AwsCognitoIdentityServiceProviderDeleteUserPoolDomainInput {
  Domain: String!
  UserPoolId: String!
}

type AwsCognitoIdentityServiceProviderDescribeIdentityProviderOutput {
  IdentityProvider: AwsCognitoIdentityServiceProviderS49!
}

input AwsCognitoIdentityServiceProviderDescribeIdentityProviderInput {
  UserPoolId: String!
  ProviderName: String!
}

type AwsCognitoIdentityServiceProviderDescribeResourceServerOutput {
  ResourceServer: AwsCognitoIdentityServiceProviderS4i!
}

input AwsCognitoIdentityServiceProviderDescribeResourceServerInput {
  UserPoolId: String!
  Identifier: String!
}

type AwsCognitoIdentityServiceProviderDescribeRiskConfigurationOutput {
  RiskConfiguration: AwsCognitoIdentityServiceProviderS7f!
}

type AwsCognitoIdentityServiceProviderS7f {
  UserPoolId: String
  ClientId: String
  CompromisedCredentialsRiskConfiguration: AwsCognitoIdentityServiceProviderS7g
  AccountTakeoverRiskConfiguration: AwsCognitoIdentityServiceProviderS7l
  RiskExceptionConfiguration: AwsCognitoIdentityServiceProviderS7u
  LastModifiedDate: Date
}

type AwsCognitoIdentityServiceProviderS7g {
  EventFilter: [String]
  Actions: AwsCognitoIdentityServiceProviderS7gActions!
}

type AwsCognitoIdentityServiceProviderS7gActions {
  EventAction: String!
}

type AwsCognitoIdentityServiceProviderS7l {
  NotifyConfiguration: AwsCognitoIdentityServiceProviderS7lNotifyConfiguration
  Actions: AwsCognitoIdentityServiceProviderS7lActions!
}

type AwsCognitoIdentityServiceProviderS7lNotifyConfiguration {
  From: String
  ReplyTo: String
  SourceArn: String!
  BlockEmail: AwsCognitoIdentityServiceProviderS7n
  NoActionEmail: AwsCognitoIdentityServiceProviderS7n
  MfaEmail: AwsCognitoIdentityServiceProviderS7n
}

type AwsCognitoIdentityServiceProviderS7n {
  Subject: String!
  HtmlBody: String
  TextBody: String
}

type AwsCognitoIdentityServiceProviderS7lActions {
  LowAction: AwsCognitoIdentityServiceProviderS7r
  MediumAction: AwsCognitoIdentityServiceProviderS7r
  HighAction: AwsCognitoIdentityServiceProviderS7r
}

type AwsCognitoIdentityServiceProviderS7r {
  Notify: Boolean!
  EventAction: String!
}

type AwsCognitoIdentityServiceProviderS7u {
  BlockedIPRangeList: [String]
  SkippedIPRangeList: [String]
}

input AwsCognitoIdentityServiceProviderDescribeRiskConfigurationInput {
  UserPoolId: String!
  ClientId: String
}

type AwsCognitoIdentityServiceProviderDescribeUserImportJobOutput {
  UserImportJob: AwsCognitoIdentityServiceProviderS4m
}

input AwsCognitoIdentityServiceProviderDescribeUserImportJobInput {
  UserPoolId: String!
  JobId: String!
}

type AwsCognitoIdentityServiceProviderDescribeUserPoolOutput {
  UserPool: AwsCognitoIdentityServiceProviderS63
}

input AwsCognitoIdentityServiceProviderDescribeUserPoolInput {
  UserPoolId: String!
}

type AwsCognitoIdentityServiceProviderDescribeUserPoolClientOutput {
  UserPoolClient: AwsCognitoIdentityServiceProviderS6u
}

input AwsCognitoIdentityServiceProviderDescribeUserPoolClientInput {
  UserPoolId: String!
  ClientId: String!
}

type AwsCognitoIdentityServiceProviderDescribeUserPoolDomainOutput {
  DomainDescription: AwsCognitoIdentityServiceProviderDescribeUserPoolDomainOutputDomainDescription
}

type AwsCognitoIdentityServiceProviderDescribeUserPoolDomainOutputDomainDescription {
  UserPoolId: String
  AWSAccountId: String
  Domain: String
  S3Bucket: String
  CloudFrontDistribution: String
  Version: String
  Status: String
  CustomDomainConfig: AwsCognitoIdentityServiceProviderS6x
}

type AwsCognitoIdentityServiceProviderS6x {
  CertificateArn: String!
}

input AwsCognitoIdentityServiceProviderDescribeUserPoolDomainInput {
  Domain: String!
}

input AwsCognitoIdentityServiceProviderForgetDeviceInput {
  AccessToken: String
  DeviceKey: String!
}

type AwsCognitoIdentityServiceProviderForgotPasswordOutput {
  CodeDeliveryDetails: AwsCognitoIdentityServiceProviderS8d
}

type AwsCognitoIdentityServiceProviderS8d {
  Destination: String
  DeliveryMedium: String
  AttributeName: String
}

input AwsCognitoIdentityServiceProviderForgotPasswordInput {
  ClientId: String!
  SecretHash: String
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  Username: String!
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderGetCSVHeaderOutput {
  UserPoolId: String
  CSVHeader: [String]
}

input AwsCognitoIdentityServiceProviderGetCSVHeaderInput {
  UserPoolId: String!
}

type AwsCognitoIdentityServiceProviderGetDeviceOutput {
  Device: AwsCognitoIdentityServiceProviderS1e!
}

input AwsCognitoIdentityServiceProviderGetDeviceInput {
  DeviceKey: String!
  AccessToken: String
}

type AwsCognitoIdentityServiceProviderGetGroupOutput {
  Group: AwsCognitoIdentityServiceProviderS29
}

input AwsCognitoIdentityServiceProviderGetGroupInput {
  GroupName: String!
  UserPoolId: String!
}

type AwsCognitoIdentityServiceProviderGetIdentityProviderByIdentifierOutput {
  IdentityProvider: AwsCognitoIdentityServiceProviderS49!
}

input AwsCognitoIdentityServiceProviderGetIdentityProviderByIdentifierInput {
  UserPoolId: String!
  IdpIdentifier: String!
}

type AwsCognitoIdentityServiceProviderGetSigningCertificateOutput {
  Certificate: String
}

input AwsCognitoIdentityServiceProviderGetSigningCertificateInput {
  UserPoolId: String!
}

type AwsCognitoIdentityServiceProviderGetUICustomizationOutput {
  UICustomization: AwsCognitoIdentityServiceProviderS8r!
}

type AwsCognitoIdentityServiceProviderS8r {
  UserPoolId: String
  ClientId: String
  ImageUrl: String
  CSS: String
  CSSVersion: String
  LastModifiedDate: Date
  CreationDate: Date
}

input AwsCognitoIdentityServiceProviderGetUICustomizationInput {
  UserPoolId: String!
  ClientId: String
}

type AwsCognitoIdentityServiceProviderGetUserOutput {
  Username: String!
  UserAttributes: [AwsCognitoIdentityServiceProviderSj]!
  MFAOptions: [AwsCognitoIdentityServiceProviderSw]
  PreferredMfaSetting: String
  UserMFASettingList: [String]
}

input AwsCognitoIdentityServiceProviderGetUserInput {
  AccessToken: String!
}

type AwsCognitoIdentityServiceProviderGetUserAttributeVerificationCodeOutput {
  CodeDeliveryDetails: AwsCognitoIdentityServiceProviderS8d
}

input AwsCognitoIdentityServiceProviderGetUserAttributeVerificationCodeInput {
  AccessToken: String!
  AttributeName: String!
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderGetUserPoolMfaConfigOutput {
  SmsMfaConfiguration: AwsCognitoIdentityServiceProviderS91
  SoftwareTokenMfaConfiguration: AwsCognitoIdentityServiceProviderS92
  MfaConfiguration: String
}

type AwsCognitoIdentityServiceProviderS91 {
  SmsAuthenticationMessage: String
  SmsConfiguration: AwsCognitoIdentityServiceProviderS5m
}

type AwsCognitoIdentityServiceProviderS92 {
  Enabled: Boolean
}

input AwsCognitoIdentityServiceProviderGetUserPoolMfaConfigInput {
  UserPoolId: String!
}

input AwsCognitoIdentityServiceProviderGlobalSignOutInput {
  AccessToken: String!
}

type AwsCognitoIdentityServiceProviderInitiateAuthOutput {
  ChallengeName: String
  Session: String
  ChallengeParameters: JSON
  AuthenticationResult: AwsCognitoIdentityServiceProviderS1u
}

input AwsCognitoIdentityServiceProviderInitiateAuthInput {
  AuthFlow: String!
  AuthParameters: JSON
  ClientMetadata: JSON
  ClientId: String!
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
}

type AwsCognitoIdentityServiceProviderListDevicesOutput {
  Devices: [AwsCognitoIdentityServiceProviderS1e]
  PaginationToken: String
}

input AwsCognitoIdentityServiceProviderListDevicesInput {
  AccessToken: String!
  Limit: Int
  PaginationToken: String
}

type AwsCognitoIdentityServiceProviderListGroupsOutput {
  Groups: [AwsCognitoIdentityServiceProviderS29]
  NextToken: String
}

input AwsCognitoIdentityServiceProviderListGroupsInput {
  UserPoolId: String!
  Limit: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListIdentityProvidersOutput {
  Providers: [AwsCognitoIdentityServiceProviderListIdentityProvidersOutputProviders]!
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListIdentityProvidersOutputProviders {
  ProviderName: String
  ProviderType: String
  LastModifiedDate: Date
  CreationDate: Date
}

input AwsCognitoIdentityServiceProviderListIdentityProvidersInput {
  UserPoolId: String!
  MaxResults: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListResourceServersOutput {
  ResourceServers: [AwsCognitoIdentityServiceProviderS4i]!
  NextToken: String
}

input AwsCognitoIdentityServiceProviderListResourceServersInput {
  UserPoolId: String!
  MaxResults: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListTagsForResourceOutput {
  Tags: JSON
}

input AwsCognitoIdentityServiceProviderListTagsForResourceInput {
  ResourceArn: String!
}

type AwsCognitoIdentityServiceProviderListUserImportJobsOutput {
  UserImportJobs: [AwsCognitoIdentityServiceProviderS4m]
  PaginationToken: String
}

input AwsCognitoIdentityServiceProviderListUserImportJobsInput {
  UserPoolId: String!
  MaxResults: Int!
  PaginationToken: String
}

type AwsCognitoIdentityServiceProviderListUserPoolClientsOutput {
  UserPoolClients: [AwsCognitoIdentityServiceProviderListUserPoolClientsOutputUserPoolClients]
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListUserPoolClientsOutputUserPoolClients {
  ClientId: String
  UserPoolId: String
  ClientName: String
}

input AwsCognitoIdentityServiceProviderListUserPoolClientsInput {
  UserPoolId: String!
  MaxResults: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListUserPoolsOutput {
  UserPools: [AwsCognitoIdentityServiceProviderListUserPoolsOutputUserPools]
  NextToken: String
}

type AwsCognitoIdentityServiceProviderListUserPoolsOutputUserPools {
  Id: String
  Name: String
  LambdaConfig: AwsCognitoIdentityServiceProviderS4y
  Status: String
  LastModifiedDate: Date
  CreationDate: Date
}

input AwsCognitoIdentityServiceProviderListUserPoolsInput {
  NextToken: String
  MaxResults: Int!
}

type AwsCognitoIdentityServiceProviderListUsersOutput {
  Users: [AwsCognitoIdentityServiceProviderSt]
  PaginationToken: String
}

input AwsCognitoIdentityServiceProviderListUsersInput {
  UserPoolId: String!
  AttributesToGet: [String]
  Limit: Int
  PaginationToken: String
  Filter: String
}

type AwsCognitoIdentityServiceProviderListUsersInGroupOutput {
  Users: [AwsCognitoIdentityServiceProviderSt]
  NextToken: String
}

input AwsCognitoIdentityServiceProviderListUsersInGroupInput {
  UserPoolId: String!
  GroupName: String!
  Limit: Int
  NextToken: String
}

type AwsCognitoIdentityServiceProviderResendConfirmationCodeOutput {
  CodeDeliveryDetails: AwsCognitoIdentityServiceProviderS8d
}

input AwsCognitoIdentityServiceProviderResendConfirmationCodeInput {
  ClientId: String!
  SecretHash: String
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  Username: String!
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderRespondToAuthChallengeOutput {
  ChallengeName: String
  Session: String
  ChallengeParameters: JSON
  AuthenticationResult: AwsCognitoIdentityServiceProviderS1u
}

input AwsCognitoIdentityServiceProviderRespondToAuthChallengeInput {
  ClientId: String!
  ChallengeName: String!
  Session: String
  ChallengeResponses: JSON
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderRevokeTokenInput {
  Token: String!
  ClientId: String!
  ClientSecret: String
}

type AwsCognitoIdentityServiceProviderSetRiskConfigurationOutput {
  RiskConfiguration: AwsCognitoIdentityServiceProviderS7f!
}

input AwsCognitoIdentityServiceProviderSetRiskConfigurationInput {
  UserPoolId: String!
  ClientId: String
  CompromisedCredentialsRiskConfiguration: AwsCognitoIdentityServiceProviderS7gInput
  AccountTakeoverRiskConfiguration: AwsCognitoIdentityServiceProviderS7lInput
  RiskExceptionConfiguration: AwsCognitoIdentityServiceProviderS7uInput
}

input AwsCognitoIdentityServiceProviderS7gInput {
  EventFilter: [String]
  Actions: AwsCognitoIdentityServiceProviderS7gActionsInput!
}

input AwsCognitoIdentityServiceProviderS7gActionsInput {
  EventAction: String!
}

input AwsCognitoIdentityServiceProviderS7lInput {
  NotifyConfiguration: AwsCognitoIdentityServiceProviderS7lNotifyConfigurationInput
  Actions: AwsCognitoIdentityServiceProviderS7lActionsInput!
}

input AwsCognitoIdentityServiceProviderS7lNotifyConfigurationInput {
  From: String
  ReplyTo: String
  SourceArn: String!
  BlockEmail: AwsCognitoIdentityServiceProviderS7nInput
  NoActionEmail: AwsCognitoIdentityServiceProviderS7nInput
  MfaEmail: AwsCognitoIdentityServiceProviderS7nInput
}

input AwsCognitoIdentityServiceProviderS7nInput {
  Subject: String!
  HtmlBody: String
  TextBody: String
}

input AwsCognitoIdentityServiceProviderS7lActionsInput {
  LowAction: AwsCognitoIdentityServiceProviderS7rInput
  MediumAction: AwsCognitoIdentityServiceProviderS7rInput
  HighAction: AwsCognitoIdentityServiceProviderS7rInput
}

input AwsCognitoIdentityServiceProviderS7rInput {
  Notify: Boolean!
  EventAction: String!
}

input AwsCognitoIdentityServiceProviderS7uInput {
  BlockedIPRangeList: [String]
  SkippedIPRangeList: [String]
}

type AwsCognitoIdentityServiceProviderSetUICustomizationOutput {
  UICustomization: AwsCognitoIdentityServiceProviderS8r!
}

input AwsCognitoIdentityServiceProviderSetUICustomizationInput {
  UserPoolId: String!
  ClientId: String
  CSS: String
  ImageFile: JSON
}

input AwsCognitoIdentityServiceProviderSetUserMFAPreferenceInput {
  SMSMfaSettings: AwsCognitoIdentityServiceProviderS31Input
  SoftwareTokenMfaSettings: AwsCognitoIdentityServiceProviderS32Input
  AccessToken: String!
}

type AwsCognitoIdentityServiceProviderSetUserPoolMfaConfigOutput {
  SmsMfaConfiguration: AwsCognitoIdentityServiceProviderS91
  SoftwareTokenMfaConfiguration: AwsCognitoIdentityServiceProviderS92
  MfaConfiguration: String
}

input AwsCognitoIdentityServiceProviderSetUserPoolMfaConfigInput {
  UserPoolId: String!
  SmsMfaConfiguration: AwsCognitoIdentityServiceProviderS91Input
  SoftwareTokenMfaConfiguration: AwsCognitoIdentityServiceProviderS92Input
  MfaConfiguration: String
}

input AwsCognitoIdentityServiceProviderS91Input {
  SmsAuthenticationMessage: String
  SmsConfiguration: AwsCognitoIdentityServiceProviderS5mInput
}

input AwsCognitoIdentityServiceProviderS92Input {
  Enabled: Boolean
}

input AwsCognitoIdentityServiceProviderSetUserSettingsInput {
  AccessToken: String!
  MFAOptions: [AwsCognitoIdentityServiceProviderSwInput]!
}

type AwsCognitoIdentityServiceProviderSignUpOutput {
  UserConfirmed: Boolean!
  CodeDeliveryDetails: AwsCognitoIdentityServiceProviderS8d
  UserSub: String!
}

input AwsCognitoIdentityServiceProviderSignUpInput {
  ClientId: String!
  SecretHash: String
  Username: String!
  Password: String!
  UserAttributes: [AwsCognitoIdentityServiceProviderSjInput]
  ValidationData: [AwsCognitoIdentityServiceProviderSjInput]
  AnalyticsMetadata: AwsCognitoIdentityServiceProviderS1mInput
  UserContextData: AwsCognitoIdentityServiceProviderS3uInput
  ClientMetadata: JSON
}

type AwsCognitoIdentityServiceProviderStartUserImportJobOutput {
  UserImportJob: AwsCognitoIdentityServiceProviderS4m
}

input AwsCognitoIdentityServiceProviderStartUserImportJobInput {
  UserPoolId: String!
  JobId: String!
}

type AwsCognitoIdentityServiceProviderStopUserImportJobOutput {
  UserImportJob: AwsCognitoIdentityServiceProviderS4m
}

input AwsCognitoIdentityServiceProviderStopUserImportJobInput {
  UserPoolId: String!
  JobId: String!
}

input AwsCognitoIdentityServiceProviderTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsCognitoIdentityServiceProviderUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsCognitoIdentityServiceProviderUpdateAuthEventFeedbackInput {
  UserPoolId: String!
  Username: String!
  EventId: String!
  FeedbackToken: String!
  FeedbackValue: String!
}

input AwsCognitoIdentityServiceProviderUpdateDeviceStatusInput {
  AccessToken: String!
  DeviceKey: String!
  DeviceRememberedStatus: String
}

type AwsCognitoIdentityServiceProviderUpdateGroupOutput {
  Group: AwsCognitoIdentityServiceProviderS29
}

input AwsCognitoIdentityServiceProviderUpdateGroupInput {
  GroupName: String!
  UserPoolId: String!
  Description: String
  RoleArn: String
  Precedence: Int
}

type AwsCognitoIdentityServiceProviderUpdateIdentityProviderOutput {
  IdentityProvider: AwsCognitoIdentityServiceProviderS49!
}

input AwsCognitoIdentityServiceProviderUpdateIdentityProviderInput {
  UserPoolId: String!
  ProviderName: String!
  ProviderDetails: JSON
  AttributeMapping: JSON
  IdpIdentifiers: [String]
}

type AwsCognitoIdentityServiceProviderUpdateResourceServerOutput {
  ResourceServer: AwsCognitoIdentityServiceProviderS4i!
}

input AwsCognitoIdentityServiceProviderUpdateResourceServerInput {
  UserPoolId: String!
  Identifier: String!
  Name: String!
  Scopes: [AwsCognitoIdentityServiceProviderS4dInput]
}

type AwsCognitoIdentityServiceProviderUpdateUserAttributesOutput {
  CodeDeliveryDetailsList: [AwsCognitoIdentityServiceProviderS8d]
}

input AwsCognitoIdentityServiceProviderUpdateUserAttributesInput {
  UserAttributes: [AwsCognitoIdentityServiceProviderSjInput]!
  AccessToken: String!
  ClientMetadata: JSON
}

input AwsCognitoIdentityServiceProviderUpdateUserPoolInput {
  UserPoolId: String!
  Policies: AwsCognitoIdentityServiceProviderS4uInput
  LambdaConfig: AwsCognitoIdentityServiceProviderS4yInput
  AutoVerifiedAttributes: [String]
  SmsVerificationMessage: String
  EmailVerificationMessage: String
  EmailVerificationSubject: String
  VerificationMessageTemplate: AwsCognitoIdentityServiceProviderS5cInput
  SmsAuthenticationMessage: String
  MfaConfiguration: String
  DeviceConfiguration: AwsCognitoIdentityServiceProviderS5hInput
  EmailConfiguration: AwsCognitoIdentityServiceProviderS5iInput
  SmsConfiguration: AwsCognitoIdentityServiceProviderS5mInput
  UserPoolTags: JSON
  AdminCreateUserConfig: AwsCognitoIdentityServiceProviderS5qInput
  UserPoolAddOns: AwsCognitoIdentityServiceProviderS5uInput
  AccountRecoverySetting: AwsCognitoIdentityServiceProviderS5xInput
}

type AwsCognitoIdentityServiceProviderUpdateUserPoolClientOutput {
  UserPoolClient: AwsCognitoIdentityServiceProviderS6u
}

input AwsCognitoIdentityServiceProviderUpdateUserPoolClientInput {
  UserPoolId: String!
  ClientId: String!
  ClientName: String
  RefreshTokenValidity: Int
  AccessTokenValidity: Int
  IdTokenValidity: Int
  TokenValidityUnits: AwsCognitoIdentityServiceProviderS6cInput
  ReadAttributes: [String]
  WriteAttributes: [String]
  ExplicitAuthFlows: [String]
  SupportedIdentityProviders: [String]
  CallbackURLs: [String]
  LogoutURLs: [String]
  DefaultRedirectURI: String
  AllowedOAuthFlows: [String]
  AllowedOAuthScopes: [String]
  AllowedOAuthFlowsUserPoolClient: Boolean
  AnalyticsConfiguration: AwsCognitoIdentityServiceProviderS6qInput
  PreventUserExistenceErrors: String
  EnableTokenRevocation: Boolean
}

type AwsCognitoIdentityServiceProviderUpdateUserPoolDomainOutput {
  CloudFrontDomain: String
}

input AwsCognitoIdentityServiceProviderUpdateUserPoolDomainInput {
  Domain: String!
  UserPoolId: String!
  CustomDomainConfig: AwsCognitoIdentityServiceProviderS6xInput!
}

type AwsCognitoIdentityServiceProviderVerifySoftwareTokenOutput {
  Status: String
  Session: String
}

input AwsCognitoIdentityServiceProviderVerifySoftwareTokenInput {
  AccessToken: String
  Session: String
  UserCode: String!
  FriendlyDeviceName: String
}

input AwsCognitoIdentityServiceProviderVerifyUserAttributeInput {
  AccessToken: String!
  AttributeName: String!
  Code: String!
}

"""Amazon Cognito Sync (2014-06-30)"""
type AwsCognitoSync {
  bulkPublish(input: AwsCognitoSyncBulkPublishInput!, config: AwsConfig): AwsCognitoSyncBulkPublishOutput
  deleteDataset(input: AwsCognitoSyncDeleteDatasetInput!, config: AwsConfig): AwsCognitoSyncDeleteDatasetOutput
  describeDataset(input: AwsCognitoSyncDescribeDatasetInput!, config: AwsConfig): AwsCognitoSyncDescribeDatasetOutput
  describeIdentityPoolUsage(input: AwsCognitoSyncDescribeIdentityPoolUsageInput!, config: AwsConfig): AwsCognitoSyncDescribeIdentityPoolUsageOutput
  describeIdentityUsage(input: AwsCognitoSyncDescribeIdentityUsageInput!, config: AwsConfig): AwsCognitoSyncDescribeIdentityUsageOutput
  getBulkPublishDetails(input: AwsCognitoSyncGetBulkPublishDetailsInput!, config: AwsConfig): AwsCognitoSyncGetBulkPublishDetailsOutput
  getCognitoEvents(input: AwsCognitoSyncGetCognitoEventsInput!, config: AwsConfig): AwsCognitoSyncGetCognitoEventsOutput
  getIdentityPoolConfiguration(input: AwsCognitoSyncGetIdentityPoolConfigurationInput!, config: AwsConfig): AwsCognitoSyncGetIdentityPoolConfigurationOutput
  listDatasets(input: AwsCognitoSyncListDatasetsInput!, config: AwsConfig): AwsCognitoSyncListDatasetsOutput
  listIdentityPoolUsage(input: AwsCognitoSyncListIdentityPoolUsageInput, config: AwsConfig): AwsCognitoSyncListIdentityPoolUsageOutput
  listRecords(input: AwsCognitoSyncListRecordsInput!, config: AwsConfig): AwsCognitoSyncListRecordsOutput
  registerDevice(input: AwsCognitoSyncRegisterDeviceInput!, config: AwsConfig): AwsCognitoSyncRegisterDeviceOutput
  setCognitoEvents(input: AwsCognitoSyncSetCognitoEventsInput!, config: AwsConfig): JSON
  setIdentityPoolConfiguration(input: AwsCognitoSyncSetIdentityPoolConfigurationInput!, config: AwsConfig): AwsCognitoSyncSetIdentityPoolConfigurationOutput
  subscribeToDataset(input: AwsCognitoSyncSubscribeToDatasetInput!, config: AwsConfig): JSON
  unsubscribeFromDataset(input: AwsCognitoSyncUnsubscribeFromDatasetInput!, config: AwsConfig): JSON
  updateRecords(input: AwsCognitoSyncUpdateRecordsInput!, config: AwsConfig): AwsCognitoSyncUpdateRecordsOutput
}

type AwsCognitoSyncBulkPublishOutput {
  IdentityPoolId: String
}

input AwsCognitoSyncBulkPublishInput {
  IdentityPoolId: String!
}

type AwsCognitoSyncDeleteDatasetOutput {
  Dataset: AwsCognitoSyncS8
}

type AwsCognitoSyncS8 {
  IdentityId: String
  DatasetName: String
  CreationDate: Date
  LastModifiedDate: Date
  LastModifiedBy: String
  DataStorage: JSON
  NumRecords: JSON
}

input AwsCognitoSyncDeleteDatasetInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
}

type AwsCognitoSyncDescribeDatasetOutput {
  Dataset: AwsCognitoSyncS8
}

input AwsCognitoSyncDescribeDatasetInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
}

type AwsCognitoSyncDescribeIdentityPoolUsageOutput {
  IdentityPoolUsage: AwsCognitoSyncSg
}

type AwsCognitoSyncSg {
  IdentityPoolId: String
  SyncSessionsCount: JSON
  DataStorage: JSON
  LastModifiedDate: Date
}

input AwsCognitoSyncDescribeIdentityPoolUsageInput {
  IdentityPoolId: String!
}

type AwsCognitoSyncDescribeIdentityUsageOutput {
  IdentityUsage: AwsCognitoSyncDescribeIdentityUsageOutputIdentityUsage
}

type AwsCognitoSyncDescribeIdentityUsageOutputIdentityUsage {
  IdentityId: String
  IdentityPoolId: String
  LastModifiedDate: Date
  DatasetCount: Int
  DataStorage: JSON
}

input AwsCognitoSyncDescribeIdentityUsageInput {
  IdentityPoolId: String!
  IdentityId: String!
}

type AwsCognitoSyncGetBulkPublishDetailsOutput {
  IdentityPoolId: String
  BulkPublishStartTime: Date
  BulkPublishCompleteTime: Date
  BulkPublishStatus: String
  FailureMessage: String
}

input AwsCognitoSyncGetBulkPublishDetailsInput {
  IdentityPoolId: String!
}

type AwsCognitoSyncGetCognitoEventsOutput {
  Events: JSON
}

input AwsCognitoSyncGetCognitoEventsInput {
  IdentityPoolId: String!
}

type AwsCognitoSyncGetIdentityPoolConfigurationOutput {
  IdentityPoolId: String
  PushSync: AwsCognitoSyncSv
  CognitoStreams: AwsCognitoSyncSz
}

type AwsCognitoSyncSv {
  ApplicationArns: [String]
  RoleArn: String
}

type AwsCognitoSyncSz {
  StreamName: String
  RoleArn: String
  StreamingStatus: String
}

input AwsCognitoSyncGetIdentityPoolConfigurationInput {
  IdentityPoolId: String!
}

type AwsCognitoSyncListDatasetsOutput {
  Datasets: [AwsCognitoSyncS8]
  Count: Int
  NextToken: String
}

input AwsCognitoSyncListDatasetsInput {
  IdentityPoolId: String!
  IdentityId: String!
  NextToken: String
  MaxResults: Int
}

type AwsCognitoSyncListIdentityPoolUsageOutput {
  IdentityPoolUsages: [AwsCognitoSyncSg]
  MaxResults: Int
  Count: Int
  NextToken: String
}

input AwsCognitoSyncListIdentityPoolUsageInput {
  NextToken: String
  MaxResults: Int
}

type AwsCognitoSyncListRecordsOutput {
  Records: [AwsCognitoSyncS1c]
  NextToken: String
  Count: Int
  DatasetSyncCount: JSON
  LastModifiedBy: String
  MergedDatasetNames: [String]
  DatasetExists: Boolean
  DatasetDeletedAfterRequestedSyncCount: Boolean
  SyncSessionToken: String
}

type AwsCognitoSyncS1c {
  Key: String
  Value: String
  SyncCount: JSON
  LastModifiedDate: Date
  LastModifiedBy: String
  DeviceLastModifiedDate: Date
}

input AwsCognitoSyncListRecordsInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
  LastSyncCount: JSON
  NextToken: String
  MaxResults: Int
  SyncSessionToken: String
}

type AwsCognitoSyncRegisterDeviceOutput {
  DeviceId: String
}

input AwsCognitoSyncRegisterDeviceInput {
  IdentityPoolId: String!
  IdentityId: String!
  Platform: String!
  Token: String!
}

input AwsCognitoSyncSetCognitoEventsInput {
  IdentityPoolId: String!
  Events: JSON!
}

type AwsCognitoSyncSetIdentityPoolConfigurationOutput {
  IdentityPoolId: String
  PushSync: AwsCognitoSyncSv
  CognitoStreams: AwsCognitoSyncSz
}

input AwsCognitoSyncSetIdentityPoolConfigurationInput {
  IdentityPoolId: String!
  PushSync: AwsCognitoSyncSvInput
  CognitoStreams: AwsCognitoSyncSzInput
}

input AwsCognitoSyncSvInput {
  ApplicationArns: [String]
  RoleArn: String
}

input AwsCognitoSyncSzInput {
  StreamName: String
  RoleArn: String
  StreamingStatus: String
}

input AwsCognitoSyncSubscribeToDatasetInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
  DeviceId: String!
}

input AwsCognitoSyncUnsubscribeFromDatasetInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
  DeviceId: String!
}

type AwsCognitoSyncUpdateRecordsOutput {
  Records: [AwsCognitoSyncS1c]
}

input AwsCognitoSyncUpdateRecordsInput {
  IdentityPoolId: String!
  IdentityId: String!
  DatasetName: String!
  DeviceId: String
  RecordPatches: [AwsCognitoSyncUpdateRecordsRecordPatchesInput]
  SyncSessionToken: String!
  ClientContext: String
}

input AwsCognitoSyncUpdateRecordsRecordPatchesInput {
  Op: String!
  Key: String!
  Value: String
  SyncCount: JSON!
  DeviceLastModifiedDate: Date
}

"""Amazon Comprehend (2017-11-27)"""
type AwsComprehend {
  batchDetectDominantLanguage(input: AwsComprehendBatchDetectDominantLanguageInput!, config: AwsConfig): AwsComprehendBatchDetectDominantLanguageOutput
  batchDetectEntities(input: AwsComprehendBatchDetectEntitiesInput!, config: AwsConfig): AwsComprehendBatchDetectEntitiesOutput
  batchDetectKeyPhrases(input: AwsComprehendBatchDetectKeyPhrasesInput!, config: AwsConfig): AwsComprehendBatchDetectKeyPhrasesOutput
  batchDetectSentiment(input: AwsComprehendBatchDetectSentimentInput!, config: AwsConfig): AwsComprehendBatchDetectSentimentOutput
  batchDetectSyntax(input: AwsComprehendBatchDetectSyntaxInput!, config: AwsConfig): AwsComprehendBatchDetectSyntaxOutput
  classifyDocument(input: AwsComprehendClassifyDocumentInput!, config: AwsConfig): AwsComprehendClassifyDocumentOutput
  containsPiiEntities(input: AwsComprehendContainsPiiEntitiesInput!, config: AwsConfig): AwsComprehendContainsPiiEntitiesOutput
  createDocumentClassifier(input: AwsComprehendCreateDocumentClassifierInput!, config: AwsConfig): AwsComprehendCreateDocumentClassifierOutput
  createEndpoint(input: AwsComprehendCreateEndpointInput!, config: AwsConfig): AwsComprehendCreateEndpointOutput
  createEntityRecognizer(input: AwsComprehendCreateEntityRecognizerInput!, config: AwsConfig): AwsComprehendCreateEntityRecognizerOutput
  deleteDocumentClassifier(input: AwsComprehendDeleteDocumentClassifierInput!, config: AwsConfig): JSON
  deleteEndpoint(input: AwsComprehendDeleteEndpointInput!, config: AwsConfig): JSON
  deleteEntityRecognizer(input: AwsComprehendDeleteEntityRecognizerInput!, config: AwsConfig): JSON
  describeDocumentClassificationJob(input: AwsComprehendDescribeDocumentClassificationJobInput!, config: AwsConfig): AwsComprehendDescribeDocumentClassificationJobOutput
  describeDocumentClassifier(input: AwsComprehendDescribeDocumentClassifierInput!, config: AwsConfig): AwsComprehendDescribeDocumentClassifierOutput
  describeDominantLanguageDetectionJob(input: AwsComprehendDescribeDominantLanguageDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeDominantLanguageDetectionJobOutput
  describeEndpoint(input: AwsComprehendDescribeEndpointInput!, config: AwsConfig): AwsComprehendDescribeEndpointOutput
  describeEntitiesDetectionJob(input: AwsComprehendDescribeEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeEntitiesDetectionJobOutput
  describeEntityRecognizer(input: AwsComprehendDescribeEntityRecognizerInput!, config: AwsConfig): AwsComprehendDescribeEntityRecognizerOutput
  describeEventsDetectionJob(input: AwsComprehendDescribeEventsDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeEventsDetectionJobOutput
  describeKeyPhrasesDetectionJob(input: AwsComprehendDescribeKeyPhrasesDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeKeyPhrasesDetectionJobOutput
  describePiiEntitiesDetectionJob(input: AwsComprehendDescribePiiEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendDescribePiiEntitiesDetectionJobOutput
  describeSentimentDetectionJob(input: AwsComprehendDescribeSentimentDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeSentimentDetectionJobOutput
  describeTopicsDetectionJob(input: AwsComprehendDescribeTopicsDetectionJobInput!, config: AwsConfig): AwsComprehendDescribeTopicsDetectionJobOutput
  detectDominantLanguage(input: AwsComprehendDetectDominantLanguageInput!, config: AwsConfig): AwsComprehendDetectDominantLanguageOutput
  detectEntities(input: AwsComprehendDetectEntitiesInput!, config: AwsConfig): AwsComprehendDetectEntitiesOutput
  detectKeyPhrases(input: AwsComprehendDetectKeyPhrasesInput!, config: AwsConfig): AwsComprehendDetectKeyPhrasesOutput
  detectPiiEntities(input: AwsComprehendDetectPiiEntitiesInput!, config: AwsConfig): AwsComprehendDetectPiiEntitiesOutput
  detectSentiment(input: AwsComprehendDetectSentimentInput!, config: AwsConfig): AwsComprehendDetectSentimentOutput
  detectSyntax(input: AwsComprehendDetectSyntaxInput!, config: AwsConfig): AwsComprehendDetectSyntaxOutput
  listDocumentClassificationJobs(input: AwsComprehendListDocumentClassificationJobsInput, config: AwsConfig): AwsComprehendListDocumentClassificationJobsOutput
  listDocumentClassifiers(input: AwsComprehendListDocumentClassifiersInput, config: AwsConfig): AwsComprehendListDocumentClassifiersOutput
  listDominantLanguageDetectionJobs(input: AwsComprehendListDominantLanguageDetectionJobsInput, config: AwsConfig): AwsComprehendListDominantLanguageDetectionJobsOutput
  listEndpoints(input: AwsComprehendListEndpointsInput, config: AwsConfig): AwsComprehendListEndpointsOutput
  listEntitiesDetectionJobs(input: AwsComprehendListEntitiesDetectionJobsInput, config: AwsConfig): AwsComprehendListEntitiesDetectionJobsOutput
  listEntityRecognizers(input: AwsComprehendListEntityRecognizersInput, config: AwsConfig): AwsComprehendListEntityRecognizersOutput
  listEventsDetectionJobs(input: AwsComprehendListEventsDetectionJobsInput, config: AwsConfig): AwsComprehendListEventsDetectionJobsOutput
  listKeyPhrasesDetectionJobs(input: AwsComprehendListKeyPhrasesDetectionJobsInput, config: AwsConfig): AwsComprehendListKeyPhrasesDetectionJobsOutput
  listPiiEntitiesDetectionJobs(input: AwsComprehendListPiiEntitiesDetectionJobsInput, config: AwsConfig): AwsComprehendListPiiEntitiesDetectionJobsOutput
  listSentimentDetectionJobs(input: AwsComprehendListSentimentDetectionJobsInput, config: AwsConfig): AwsComprehendListSentimentDetectionJobsOutput
  listTagsForResource(input: AwsComprehendListTagsForResourceInput!, config: AwsConfig): AwsComprehendListTagsForResourceOutput
  listTopicsDetectionJobs(input: AwsComprehendListTopicsDetectionJobsInput, config: AwsConfig): AwsComprehendListTopicsDetectionJobsOutput
  startDocumentClassificationJob(input: AwsComprehendStartDocumentClassificationJobInput!, config: AwsConfig): AwsComprehendStartDocumentClassificationJobOutput
  startDominantLanguageDetectionJob(input: AwsComprehendStartDominantLanguageDetectionJobInput!, config: AwsConfig): AwsComprehendStartDominantLanguageDetectionJobOutput
  startEntitiesDetectionJob(input: AwsComprehendStartEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendStartEntitiesDetectionJobOutput
  startEventsDetectionJob(input: AwsComprehendStartEventsDetectionJobInput!, config: AwsConfig): AwsComprehendStartEventsDetectionJobOutput
  startKeyPhrasesDetectionJob(input: AwsComprehendStartKeyPhrasesDetectionJobInput!, config: AwsConfig): AwsComprehendStartKeyPhrasesDetectionJobOutput
  startPiiEntitiesDetectionJob(input: AwsComprehendStartPiiEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendStartPiiEntitiesDetectionJobOutput
  startSentimentDetectionJob(input: AwsComprehendStartSentimentDetectionJobInput!, config: AwsConfig): AwsComprehendStartSentimentDetectionJobOutput
  startTopicsDetectionJob(input: AwsComprehendStartTopicsDetectionJobInput!, config: AwsConfig): AwsComprehendStartTopicsDetectionJobOutput
  stopDominantLanguageDetectionJob(input: AwsComprehendStopDominantLanguageDetectionJobInput!, config: AwsConfig): AwsComprehendStopDominantLanguageDetectionJobOutput
  stopEntitiesDetectionJob(input: AwsComprehendStopEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendStopEntitiesDetectionJobOutput
  stopEventsDetectionJob(input: AwsComprehendStopEventsDetectionJobInput!, config: AwsConfig): AwsComprehendStopEventsDetectionJobOutput
  stopKeyPhrasesDetectionJob(input: AwsComprehendStopKeyPhrasesDetectionJobInput!, config: AwsConfig): AwsComprehendStopKeyPhrasesDetectionJobOutput
  stopPiiEntitiesDetectionJob(input: AwsComprehendStopPiiEntitiesDetectionJobInput!, config: AwsConfig): AwsComprehendStopPiiEntitiesDetectionJobOutput
  stopSentimentDetectionJob(input: AwsComprehendStopSentimentDetectionJobInput!, config: AwsConfig): AwsComprehendStopSentimentDetectionJobOutput
  stopTrainingDocumentClassifier(input: AwsComprehendStopTrainingDocumentClassifierInput!, config: AwsConfig): JSON
  stopTrainingEntityRecognizer(input: AwsComprehendStopTrainingEntityRecognizerInput!, config: AwsConfig): JSON
  tagResource(input: AwsComprehendTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsComprehendUntagResourceInput!, config: AwsConfig): JSON
  updateEndpoint(input: AwsComprehendUpdateEndpointInput!, config: AwsConfig): JSON
}

type AwsComprehendBatchDetectDominantLanguageOutput {
  ResultList: [AwsComprehendBatchDetectDominantLanguageOutputResultList]!
  ErrorList: [AwsComprehendSc]!
}

type AwsComprehendBatchDetectDominantLanguageOutputResultList {
  Index: Int
  Languages: [AwsComprehendS8]
}

type AwsComprehendS8 {
  LanguageCode: String
  Score: Float
}

type AwsComprehendSc {
  Index: Int
  ErrorCode: String
  ErrorMessage: String
}

input AwsComprehendBatchDetectDominantLanguageInput {
  TextList: [String]!
}

type AwsComprehendBatchDetectEntitiesOutput {
  ResultList: [AwsComprehendBatchDetectEntitiesOutputResultList]!
  ErrorList: [AwsComprehendSc]!
}

type AwsComprehendBatchDetectEntitiesOutputResultList {
  Index: Int
  Entities: [AwsComprehendSj]
}

type AwsComprehendSj {
  Score: Float
  Type: String
  Text: String
  BeginOffset: Int
  EndOffset: Int
}

input AwsComprehendBatchDetectEntitiesInput {
  TextList: [String]!
  LanguageCode: String!
}

type AwsComprehendBatchDetectKeyPhrasesOutput {
  ResultList: [AwsComprehendBatchDetectKeyPhrasesOutputResultList]!
  ErrorList: [AwsComprehendSc]!
}

type AwsComprehendBatchDetectKeyPhrasesOutputResultList {
  Index: Int
  KeyPhrases: [AwsComprehendSq]
}

type AwsComprehendSq {
  Score: Float
  Text: String
  BeginOffset: Int
  EndOffset: Int
}

input AwsComprehendBatchDetectKeyPhrasesInput {
  TextList: [String]!
  LanguageCode: String!
}

type AwsComprehendBatchDetectSentimentOutput {
  ResultList: [AwsComprehendBatchDetectSentimentOutputResultList]!
  ErrorList: [AwsComprehendSc]!
}

type AwsComprehendBatchDetectSentimentOutputResultList {
  Index: Int
  Sentiment: String
  SentimentScore: AwsComprehendSx
}

type AwsComprehendSx {
  Positive: Float
  Negative: Float
  Neutral: Float
  Mixed: Float
}

input AwsComprehendBatchDetectSentimentInput {
  TextList: [String]!
  LanguageCode: String!
}

type AwsComprehendBatchDetectSyntaxOutput {
  ResultList: [AwsComprehendBatchDetectSyntaxOutputResultList]!
  ErrorList: [AwsComprehendSc]!
}

type AwsComprehendBatchDetectSyntaxOutputResultList {
  Index: Int
  SyntaxTokens: [AwsComprehendS13]
}

type AwsComprehendS13 {
  TokenId: Int
  Text: String
  BeginOffset: Int
  EndOffset: Int
  PartOfSpeech: AwsComprehendS13PartOfSpeech
}

type AwsComprehendS13PartOfSpeech {
  Tag: String
  Score: Float
}

input AwsComprehendBatchDetectSyntaxInput {
  TextList: [String]!
  LanguageCode: String!
}

type AwsComprehendClassifyDocumentOutput {
  Classes: [AwsComprehendClassifyDocumentOutputClasses]
  Labels: [AwsComprehendClassifyDocumentOutputLabels]
}

type AwsComprehendClassifyDocumentOutputClasses {
  Name: String
  Score: Float
}

type AwsComprehendClassifyDocumentOutputLabels {
  Name: String
  Score: Float
}

input AwsComprehendClassifyDocumentInput {
  Text: String!
  EndpointArn: String!
}

type AwsComprehendContainsPiiEntitiesOutput {
  Labels: [AwsComprehendContainsPiiEntitiesOutputLabels]
}

type AwsComprehendContainsPiiEntitiesOutputLabels {
  Name: String
  Score: Float
}

input AwsComprehendContainsPiiEntitiesInput {
  Text: String!
  LanguageCode: String!
}

type AwsComprehendCreateDocumentClassifierOutput {
  DocumentClassifierArn: String
}

input AwsComprehendCreateDocumentClassifierInput {
  DocumentClassifierName: String!
  DataAccessRoleArn: String!
  Tags: [AwsComprehendS1mInput]
  InputDataConfig: AwsComprehendS1qInput!
  OutputDataConfig: AwsComprehendS1yInput
  ClientRequestToken: String
  LanguageCode: String!
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
  Mode: String
  ModelKmsKeyId: String
}

input AwsComprehendS1mInput {
  Key: String!
  Value: String
}

input AwsComprehendS1qInput {
  DataFormat: String
  S3Uri: String
  LabelDelimiter: String
  AugmentedManifests: [AwsComprehendS1vInput]
}

input AwsComprehendS1vInput {
  S3Uri: String!
  AttributeNames: [String]!
}

input AwsComprehendS1yInput {
  S3Uri: String
  KmsKeyId: String
}

input AwsComprehendS21Input {
  SecurityGroupIds: [String]!
  Subnets: [String]!
}

type AwsComprehendCreateEndpointOutput {
  EndpointArn: String
}

input AwsComprehendCreateEndpointInput {
  EndpointName: String!
  ModelArn: String!
  DesiredInferenceUnits: Int!
  ClientRequestToken: String
  Tags: [AwsComprehendS1mInput]
  DataAccessRoleArn: String
}

type AwsComprehendCreateEntityRecognizerOutput {
  EntityRecognizerArn: String
}

input AwsComprehendCreateEntityRecognizerInput {
  RecognizerName: String!
  DataAccessRoleArn: String!
  Tags: [AwsComprehendS1mInput]
  InputDataConfig: AwsComprehendS2gInput!
  ClientRequestToken: String
  LanguageCode: String!
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
  ModelKmsKeyId: String
}

input AwsComprehendS2gInput {
  DataFormat: String
  EntityTypes: [AwsComprehendS2gEntityTypesInput]!
  Documents: AwsComprehendS2gDocumentsInput
  Annotations: AwsComprehendS2gAnnotationsInput
  EntityList: AwsComprehendS2gEntityListInput
  AugmentedManifests: [AwsComprehendS1vInput]
}

input AwsComprehendS2gEntityTypesInput {
  Type: String!
}

input AwsComprehendS2gDocumentsInput {
  S3Uri: String!
}

input AwsComprehendS2gAnnotationsInput {
  S3Uri: String!
}

input AwsComprehendS2gEntityListInput {
  S3Uri: String!
}

input AwsComprehendDeleteDocumentClassifierInput {
  DocumentClassifierArn: String!
}

input AwsComprehendDeleteEndpointInput {
  EndpointArn: String!
}

input AwsComprehendDeleteEntityRecognizerInput {
  EntityRecognizerArn: String!
}

type AwsComprehendDescribeDocumentClassificationJobOutput {
  DocumentClassificationJobProperties: AwsComprehendS30
}

type AwsComprehendS30 {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  DocumentClassifierArn: String
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

type AwsComprehendS35 {
  S3Uri: String!
  InputFormat: String
}

type AwsComprehendS37 {
  S3Uri: String!
  KmsKeyId: String
}

type AwsComprehendS21 {
  SecurityGroupIds: [String]!
  Subnets: [String]!
}

input AwsComprehendDescribeDocumentClassificationJobInput {
  JobId: String!
}

type AwsComprehendDescribeDocumentClassifierOutput {
  DocumentClassifierProperties: AwsComprehendS3a
}

type AwsComprehendS3a {
  DocumentClassifierArn: String
  LanguageCode: String
  Status: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  TrainingStartTime: Date
  TrainingEndTime: Date
  InputDataConfig: AwsComprehendS1q
  OutputDataConfig: AwsComprehendS1y
  ClassifierMetadata: AwsComprehendS3aClassifierMetadata
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
  Mode: String
  ModelKmsKeyId: String
}

type AwsComprehendS1q {
  DataFormat: String
  S3Uri: String
  LabelDelimiter: String
  AugmentedManifests: [AwsComprehendS1v]
}

type AwsComprehendS1v {
  S3Uri: String!
  AttributeNames: [String]!
}

type AwsComprehendS1y {
  S3Uri: String
  KmsKeyId: String
}

type AwsComprehendS3aClassifierMetadata {
  NumberOfLabels: Int
  NumberOfTrainedDocuments: Int
  NumberOfTestDocuments: Int
  EvaluationMetrics: AwsComprehendS3aClassifierMetadataEvaluationMetrics
}

type AwsComprehendS3aClassifierMetadataEvaluationMetrics {
  Accuracy: JSON
  Precision: JSON
  Recall: JSON
  F1Score: JSON
  MicroPrecision: JSON
  MicroRecall: JSON
  MicroF1Score: JSON
  HammingLoss: JSON
}

input AwsComprehendDescribeDocumentClassifierInput {
  DocumentClassifierArn: String!
}

type AwsComprehendDescribeDominantLanguageDetectionJobOutput {
  DominantLanguageDetectionJobProperties: AwsComprehendS3h
}

type AwsComprehendS3h {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

input AwsComprehendDescribeDominantLanguageDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribeEndpointOutput {
  EndpointProperties: AwsComprehendS3k
}

type AwsComprehendS3k {
  EndpointArn: String
  Status: String
  Message: String
  ModelArn: String
  DesiredInferenceUnits: Int
  CurrentInferenceUnits: Int
  CreationTime: Date
  LastModifiedTime: Date
  DataAccessRoleArn: String
}

input AwsComprehendDescribeEndpointInput {
  EndpointArn: String!
}

type AwsComprehendDescribeEntitiesDetectionJobOutput {
  EntitiesDetectionJobProperties: AwsComprehendS3o
}

type AwsComprehendS3o {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  EntityRecognizerArn: String
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  LanguageCode: String
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

input AwsComprehendDescribeEntitiesDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribeEntityRecognizerOutput {
  EntityRecognizerProperties: AwsComprehendS3r
}

type AwsComprehendS3r {
  EntityRecognizerArn: String
  LanguageCode: String
  Status: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  TrainingStartTime: Date
  TrainingEndTime: Date
  InputDataConfig: AwsComprehendS2g
  RecognizerMetadata: AwsComprehendS3rRecognizerMetadata
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
  ModelKmsKeyId: String
}

type AwsComprehendS2g {
  DataFormat: String
  EntityTypes: [AwsComprehendS2gEntityTypes]!
  Documents: AwsComprehendS2gDocuments
  Annotations: AwsComprehendS2gAnnotations
  EntityList: AwsComprehendS2gEntityList
  AugmentedManifests: [AwsComprehendS1v]
}

type AwsComprehendS2gEntityTypes {
  Type: String!
}

type AwsComprehendS2gDocuments {
  S3Uri: String!
}

type AwsComprehendS2gAnnotations {
  S3Uri: String!
}

type AwsComprehendS2gEntityList {
  S3Uri: String!
}

type AwsComprehendS3rRecognizerMetadata {
  NumberOfTrainedDocuments: Int
  NumberOfTestDocuments: Int
  EvaluationMetrics: AwsComprehendS3rRecognizerMetadataEvaluationMetrics
  EntityTypes: [AwsComprehendS3rRecognizerMetadataEntityTypes]
}

type AwsComprehendS3rRecognizerMetadataEvaluationMetrics {
  Precision: JSON
  Recall: JSON
  F1Score: JSON
}

type AwsComprehendS3rRecognizerMetadataEntityTypes {
  Type: String
  EvaluationMetrics: AwsComprehendS3rRecognizerMetadataEntityTypesEvaluationMetrics
  NumberOfTrainMentions: Int
}

type AwsComprehendS3rRecognizerMetadataEntityTypesEvaluationMetrics {
  Precision: JSON
  Recall: JSON
  F1Score: JSON
}

input AwsComprehendDescribeEntityRecognizerInput {
  EntityRecognizerArn: String!
}

type AwsComprehendDescribeEventsDetectionJobOutput {
  EventsDetectionJobProperties: AwsComprehendS3z
}

type AwsComprehendS3z {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  LanguageCode: String
  DataAccessRoleArn: String
  TargetEventTypes: [String]
}

input AwsComprehendDescribeEventsDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribeKeyPhrasesDetectionJobOutput {
  KeyPhrasesDetectionJobProperties: AwsComprehendS44
}

type AwsComprehendS44 {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  LanguageCode: String
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

input AwsComprehendDescribeKeyPhrasesDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribePiiEntitiesDetectionJobOutput {
  PiiEntitiesDetectionJobProperties: AwsComprehendS47
}

type AwsComprehendS47 {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS47OutputDataConfig
  RedactionConfig: AwsComprehendS49
  LanguageCode: String
  DataAccessRoleArn: String
  Mode: String
}

type AwsComprehendS47OutputDataConfig {
  S3Uri: String!
  KmsKeyId: String
}

type AwsComprehendS49 {
  PiiEntityTypes: [String]
  MaskMode: String
  MaskCharacter: String
}

input AwsComprehendDescribePiiEntitiesDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribeSentimentDetectionJobOutput {
  SentimentDetectionJobProperties: AwsComprehendS4g
}

type AwsComprehendS4g {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  LanguageCode: String
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

input AwsComprehendDescribeSentimentDetectionJobInput {
  JobId: String!
}

type AwsComprehendDescribeTopicsDetectionJobOutput {
  TopicsDetectionJobProperties: AwsComprehendS4j
}

type AwsComprehendS4j {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  InputDataConfig: AwsComprehendS35
  OutputDataConfig: AwsComprehendS37
  NumberOfTopics: Int
  DataAccessRoleArn: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21
}

input AwsComprehendDescribeTopicsDetectionJobInput {
  JobId: String!
}

type AwsComprehendDetectDominantLanguageOutput {
  Languages: [AwsComprehendS8]
}

input AwsComprehendDetectDominantLanguageInput {
  Text: String!
}

type AwsComprehendDetectEntitiesOutput {
  Entities: [AwsComprehendSj]
}

input AwsComprehendDetectEntitiesInput {
  Text: String!
  LanguageCode: String
  EndpointArn: String
}

type AwsComprehendDetectKeyPhrasesOutput {
  KeyPhrases: [AwsComprehendSq]
}

input AwsComprehendDetectKeyPhrasesInput {
  Text: String!
  LanguageCode: String!
}

type AwsComprehendDetectPiiEntitiesOutput {
  Entities: [AwsComprehendDetectPiiEntitiesOutputEntities]
}

type AwsComprehendDetectPiiEntitiesOutputEntities {
  Score: Float
  Type: String
  BeginOffset: Int
  EndOffset: Int
}

input AwsComprehendDetectPiiEntitiesInput {
  Text: String!
  LanguageCode: String!
}

type AwsComprehendDetectSentimentOutput {
  Sentiment: String
  SentimentScore: AwsComprehendSx
}

input AwsComprehendDetectSentimentInput {
  Text: String!
  LanguageCode: String!
}

type AwsComprehendDetectSyntaxOutput {
  SyntaxTokens: [AwsComprehendS13]
}

input AwsComprehendDetectSyntaxInput {
  Text: String!
  LanguageCode: String!
}

type AwsComprehendListDocumentClassificationJobsOutput {
  DocumentClassificationJobPropertiesList: [AwsComprehendS30]
  NextToken: String
}

input AwsComprehendListDocumentClassificationJobsInput {
  Filter: AwsComprehendListDocumentClassificationJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListDocumentClassificationJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListDocumentClassifiersOutput {
  DocumentClassifierPropertiesList: [AwsComprehendS3a]
  NextToken: String
}

input AwsComprehendListDocumentClassifiersInput {
  Filter: AwsComprehendListDocumentClassifiersFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListDocumentClassifiersFilterInput {
  Status: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListDominantLanguageDetectionJobsOutput {
  DominantLanguageDetectionJobPropertiesList: [AwsComprehendS3h]
  NextToken: String
}

input AwsComprehendListDominantLanguageDetectionJobsInput {
  Filter: AwsComprehendListDominantLanguageDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListDominantLanguageDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListEndpointsOutput {
  EndpointPropertiesList: [AwsComprehendS3k]
  NextToken: String
}

input AwsComprehendListEndpointsInput {
  Filter: AwsComprehendListEndpointsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListEndpointsFilterInput {
  ModelArn: String
  Status: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsComprehendListEntitiesDetectionJobsOutput {
  EntitiesDetectionJobPropertiesList: [AwsComprehendS3o]
  NextToken: String
}

input AwsComprehendListEntitiesDetectionJobsInput {
  Filter: AwsComprehendListEntitiesDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListEntitiesDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListEntityRecognizersOutput {
  EntityRecognizerPropertiesList: [AwsComprehendS3r]
  NextToken: String
}

input AwsComprehendListEntityRecognizersInput {
  Filter: AwsComprehendListEntityRecognizersFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListEntityRecognizersFilterInput {
  Status: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListEventsDetectionJobsOutput {
  EventsDetectionJobPropertiesList: [AwsComprehendS3z]
  NextToken: String
}

input AwsComprehendListEventsDetectionJobsInput {
  Filter: AwsComprehendListEventsDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListEventsDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListKeyPhrasesDetectionJobsOutput {
  KeyPhrasesDetectionJobPropertiesList: [AwsComprehendS44]
  NextToken: String
}

input AwsComprehendListKeyPhrasesDetectionJobsInput {
  Filter: AwsComprehendListKeyPhrasesDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListKeyPhrasesDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListPiiEntitiesDetectionJobsOutput {
  PiiEntitiesDetectionJobPropertiesList: [AwsComprehendS47]
  NextToken: String
}

input AwsComprehendListPiiEntitiesDetectionJobsInput {
  Filter: AwsComprehendListPiiEntitiesDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListPiiEntitiesDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListSentimentDetectionJobsOutput {
  SentimentDetectionJobPropertiesList: [AwsComprehendS4g]
  NextToken: String
}

input AwsComprehendListSentimentDetectionJobsInput {
  Filter: AwsComprehendListSentimentDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListSentimentDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendListTagsForResourceOutput {
  ResourceArn: String
  Tags: [AwsComprehendS1m]
}

type AwsComprehendS1m {
  Key: String!
  Value: String
}

input AwsComprehendListTagsForResourceInput {
  ResourceArn: String!
}

type AwsComprehendListTopicsDetectionJobsOutput {
  TopicsDetectionJobPropertiesList: [AwsComprehendS4j]
  NextToken: String
}

input AwsComprehendListTopicsDetectionJobsInput {
  Filter: AwsComprehendListTopicsDetectionJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsComprehendListTopicsDetectionJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendStartDocumentClassificationJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartDocumentClassificationJobInput {
  JobName: String
  DocumentClassifierArn: String!
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

input AwsComprehendS35Input {
  S3Uri: String!
  InputFormat: String
}

input AwsComprehendS37Input {
  S3Uri: String!
  KmsKeyId: String
}

type AwsComprehendStartDominantLanguageDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartDominantLanguageDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

type AwsComprehendStartEntitiesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartEntitiesDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  EntityRecognizerArn: String
  LanguageCode: String!
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

type AwsComprehendStartEventsDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartEventsDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  LanguageCode: String!
  ClientRequestToken: String
  TargetEventTypes: [String]!
}

type AwsComprehendStartKeyPhrasesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartKeyPhrasesDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  LanguageCode: String!
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

type AwsComprehendStartPiiEntitiesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartPiiEntitiesDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  Mode: String!
  RedactionConfig: AwsComprehendS49Input
  DataAccessRoleArn: String!
  JobName: String
  LanguageCode: String!
  ClientRequestToken: String
}

input AwsComprehendS49Input {
  PiiEntityTypes: [String]
  MaskMode: String
  MaskCharacter: String
}

type AwsComprehendStartSentimentDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartSentimentDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  LanguageCode: String!
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

type AwsComprehendStartTopicsDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStartTopicsDetectionJobInput {
  InputDataConfig: AwsComprehendS35Input!
  OutputDataConfig: AwsComprehendS37Input!
  DataAccessRoleArn: String!
  JobName: String
  NumberOfTopics: Int
  ClientRequestToken: String
  VolumeKmsKeyId: String
  VpcConfig: AwsComprehendS21Input
}

type AwsComprehendStopDominantLanguageDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopDominantLanguageDetectionJobInput {
  JobId: String!
}

type AwsComprehendStopEntitiesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopEntitiesDetectionJobInput {
  JobId: String!
}

type AwsComprehendStopEventsDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopEventsDetectionJobInput {
  JobId: String!
}

type AwsComprehendStopKeyPhrasesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopKeyPhrasesDetectionJobInput {
  JobId: String!
}

type AwsComprehendStopPiiEntitiesDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopPiiEntitiesDetectionJobInput {
  JobId: String!
}

type AwsComprehendStopSentimentDetectionJobOutput {
  JobId: String
  JobStatus: String
}

input AwsComprehendStopSentimentDetectionJobInput {
  JobId: String!
}

input AwsComprehendStopTrainingDocumentClassifierInput {
  DocumentClassifierArn: String!
}

input AwsComprehendStopTrainingEntityRecognizerInput {
  EntityRecognizerArn: String!
}

input AwsComprehendTagResourceInput {
  ResourceArn: String!
  Tags: [AwsComprehendS1mInput]!
}

input AwsComprehendUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsComprehendUpdateEndpointInput {
  EndpointArn: String!
  DesiredInferenceUnits: Int!
}

"""AWS Comprehend Medical (2018-10-30)"""
type AwsComprehendMedical {
  describeEntitiesDetectionV2Job(input: AwsComprehendMedicalDescribeEntitiesDetectionV2JobInput!, config: AwsConfig): AwsComprehendMedicalDescribeEntitiesDetectionV2JobOutput
  describeICD10CMInferenceJob(input: AwsComprehendMedicalDescribeICD10CMInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalDescribeICD10CMInferenceJobOutput
  describePHIDetectionJob(input: AwsComprehendMedicalDescribePHIDetectionJobInput!, config: AwsConfig): AwsComprehendMedicalDescribePHIDetectionJobOutput
  describeRxNormInferenceJob(input: AwsComprehendMedicalDescribeRxNormInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalDescribeRxNormInferenceJobOutput
  detectEntities(input: AwsComprehendMedicalDetectEntitiesInput!, config: AwsConfig): AwsComprehendMedicalDetectEntitiesOutput
  detectEntitiesV2(input: AwsComprehendMedicalDetectEntitiesV2Input!, config: AwsConfig): AwsComprehendMedicalDetectEntitiesV2Output
  detectPHI(input: AwsComprehendMedicalDetectPHIInput!, config: AwsConfig): AwsComprehendMedicalDetectPHIOutput
  inferICD10CM(input: AwsComprehendMedicalInferICD10CMInput!, config: AwsConfig): AwsComprehendMedicalInferICD10CMOutput
  inferRxNorm(input: AwsComprehendMedicalInferRxNormInput!, config: AwsConfig): AwsComprehendMedicalInferRxNormOutput
  listEntitiesDetectionV2Jobs(input: AwsComprehendMedicalListEntitiesDetectionV2JobsInput, config: AwsConfig): AwsComprehendMedicalListEntitiesDetectionV2JobsOutput
  listICD10CMInferenceJobs(input: AwsComprehendMedicalListICD10CMInferenceJobsInput, config: AwsConfig): AwsComprehendMedicalListICD10CMInferenceJobsOutput
  listPHIDetectionJobs(input: AwsComprehendMedicalListPHIDetectionJobsInput, config: AwsConfig): AwsComprehendMedicalListPHIDetectionJobsOutput
  listRxNormInferenceJobs(input: AwsComprehendMedicalListRxNormInferenceJobsInput, config: AwsConfig): AwsComprehendMedicalListRxNormInferenceJobsOutput
  startEntitiesDetectionV2Job(input: AwsComprehendMedicalStartEntitiesDetectionV2JobInput!, config: AwsConfig): AwsComprehendMedicalStartEntitiesDetectionV2JobOutput
  startICD10CMInferenceJob(input: AwsComprehendMedicalStartICD10CMInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalStartICD10CMInferenceJobOutput
  startPHIDetectionJob(input: AwsComprehendMedicalStartPHIDetectionJobInput!, config: AwsConfig): AwsComprehendMedicalStartPHIDetectionJobOutput
  startRxNormInferenceJob(input: AwsComprehendMedicalStartRxNormInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalStartRxNormInferenceJobOutput
  stopEntitiesDetectionV2Job(input: AwsComprehendMedicalStopEntitiesDetectionV2JobInput!, config: AwsConfig): AwsComprehendMedicalStopEntitiesDetectionV2JobOutput
  stopICD10CMInferenceJob(input: AwsComprehendMedicalStopICD10CMInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalStopICD10CMInferenceJobOutput
  stopPHIDetectionJob(input: AwsComprehendMedicalStopPHIDetectionJobInput!, config: AwsConfig): AwsComprehendMedicalStopPHIDetectionJobOutput
  stopRxNormInferenceJob(input: AwsComprehendMedicalStopRxNormInferenceJobInput!, config: AwsConfig): AwsComprehendMedicalStopRxNormInferenceJobOutput
}

type AwsComprehendMedicalDescribeEntitiesDetectionV2JobOutput {
  ComprehendMedicalAsyncJobProperties: AwsComprehendMedicalS4
}

type AwsComprehendMedicalS4 {
  JobId: String
  JobName: String
  JobStatus: String
  Message: String
  SubmitTime: Date
  EndTime: Date
  ExpirationTime: Date
  InputDataConfig: AwsComprehendMedicalS9
  OutputDataConfig: AwsComprehendMedicalSc
  LanguageCode: String
  DataAccessRoleArn: String
  ManifestFilePath: String
  KMSKey: String
  ModelVersion: String
}

type AwsComprehendMedicalS9 {
  S3Bucket: String!
  S3Key: String
}

type AwsComprehendMedicalSc {
  S3Bucket: String!
  S3Key: String
}

input AwsComprehendMedicalDescribeEntitiesDetectionV2JobInput {
  JobId: String!
}

type AwsComprehendMedicalDescribeICD10CMInferenceJobOutput {
  ComprehendMedicalAsyncJobProperties: AwsComprehendMedicalS4
}

input AwsComprehendMedicalDescribeICD10CMInferenceJobInput {
  JobId: String!
}

type AwsComprehendMedicalDescribePHIDetectionJobOutput {
  ComprehendMedicalAsyncJobProperties: AwsComprehendMedicalS4
}

input AwsComprehendMedicalDescribePHIDetectionJobInput {
  JobId: String!
}

type AwsComprehendMedicalDescribeRxNormInferenceJobOutput {
  ComprehendMedicalAsyncJobProperties: AwsComprehendMedicalS4
}

input AwsComprehendMedicalDescribeRxNormInferenceJobInput {
  JobId: String!
}

type AwsComprehendMedicalDetectEntitiesOutput {
  Entities: [AwsComprehendMedicalSr]!
  UnmappedAttributes: [AwsComprehendMedicalS14]
  PaginationToken: String
  ModelVersion: String!
}

type AwsComprehendMedicalSr {
  Id: Int
  BeginOffset: Int
  EndOffset: Int
  Score: Float
  Text: String
  Category: String
  Type: String
  Traits: [AwsComprehendMedicalSy]
  Attributes: [AwsComprehendMedicalS12]
}

type AwsComprehendMedicalSy {
  Name: String
  Score: Float
}

type AwsComprehendMedicalS12 {
  Type: String
  Score: Float
  RelationshipScore: Float
  RelationshipType: String
  Id: Int
  BeginOffset: Int
  EndOffset: Int
  Text: String
  Category: String
  Traits: [AwsComprehendMedicalSy]
}

type AwsComprehendMedicalS14 {
  Type: String
  Attribute: AwsComprehendMedicalS12
}

input AwsComprehendMedicalDetectEntitiesInput {
  Text: String!
}

type AwsComprehendMedicalDetectEntitiesV2Output {
  Entities: [AwsComprehendMedicalSr]!
  UnmappedAttributes: [AwsComprehendMedicalS14]
  PaginationToken: String
  ModelVersion: String!
}

input AwsComprehendMedicalDetectEntitiesV2Input {
  Text: String!
}

type AwsComprehendMedicalDetectPHIOutput {
  Entities: [AwsComprehendMedicalSr]!
  PaginationToken: String
  ModelVersion: String!
}

input AwsComprehendMedicalDetectPHIInput {
  Text: String!
}

type AwsComprehendMedicalInferICD10CMOutput {
  Entities: [AwsComprehendMedicalInferICD10CMOutputEntities]!
  PaginationToken: String
  ModelVersion: String
}

type AwsComprehendMedicalInferICD10CMOutputEntities {
  Id: Int
  Text: String
  Category: String
  Type: String
  Score: Float
  BeginOffset: Int
  EndOffset: Int
  Attributes: [AwsComprehendMedicalInferICD10CMOutputEntitiesAttributes]
  Traits: [AwsComprehendMedicalS1k]
  ICD10CMConcepts: [AwsComprehendMedicalInferICD10CMOutputEntitiesICD10CMConcepts]
}

type AwsComprehendMedicalInferICD10CMOutputEntitiesAttributes {
  Type: String
  Score: Float
  RelationshipScore: Float
  Id: Int
  BeginOffset: Int
  EndOffset: Int
  Text: String
  Traits: [AwsComprehendMedicalS1k]
  Category: String
  RelationshipType: String
}

type AwsComprehendMedicalS1k {
  Name: String
  Score: Float
}

type AwsComprehendMedicalInferICD10CMOutputEntitiesICD10CMConcepts {
  Description: String
  Code: String
  Score: Float
}

input AwsComprehendMedicalInferICD10CMInput {
  Text: String!
}

type AwsComprehendMedicalInferRxNormOutput {
  Entities: [AwsComprehendMedicalInferRxNormOutputEntities]!
  PaginationToken: String
  ModelVersion: String
}

type AwsComprehendMedicalInferRxNormOutputEntities {
  Id: Int
  Text: String
  Category: String
  Type: String
  Score: Float
  BeginOffset: Int
  EndOffset: Int
  Attributes: [AwsComprehendMedicalInferRxNormOutputEntitiesAttributes]
  Traits: [AwsComprehendMedicalS1z]
  RxNormConcepts: [AwsComprehendMedicalInferRxNormOutputEntitiesRxNormConcepts]
}

type AwsComprehendMedicalInferRxNormOutputEntitiesAttributes {
  Type: String
  Score: Float
  RelationshipScore: Float
  Id: Int
  BeginOffset: Int
  EndOffset: Int
  Text: String
  Traits: [AwsComprehendMedicalS1z]
}

type AwsComprehendMedicalS1z {
  Name: String
  Score: Float
}

type AwsComprehendMedicalInferRxNormOutputEntitiesRxNormConcepts {
  Description: String
  Code: String
  Score: Float
}

input AwsComprehendMedicalInferRxNormInput {
  Text: String!
}

type AwsComprehendMedicalListEntitiesDetectionV2JobsOutput {
  ComprehendMedicalAsyncJobPropertiesList: [AwsComprehendMedicalS4]
  NextToken: String
}

input AwsComprehendMedicalListEntitiesDetectionV2JobsInput {
  Filter: AwsComprehendMedicalS25Input
  NextToken: String
  MaxResults: Int
}

input AwsComprehendMedicalS25Input {
  JobName: String
  JobStatus: String
  SubmitTimeBefore: Date
  SubmitTimeAfter: Date
}

type AwsComprehendMedicalListICD10CMInferenceJobsOutput {
  ComprehendMedicalAsyncJobPropertiesList: [AwsComprehendMedicalS4]
  NextToken: String
}

input AwsComprehendMedicalListICD10CMInferenceJobsInput {
  Filter: AwsComprehendMedicalS25Input
  NextToken: String
  MaxResults: Int
}

type AwsComprehendMedicalListPHIDetectionJobsOutput {
  ComprehendMedicalAsyncJobPropertiesList: [AwsComprehendMedicalS4]
  NextToken: String
}

input AwsComprehendMedicalListPHIDetectionJobsInput {
  Filter: AwsComprehendMedicalS25Input
  NextToken: String
  MaxResults: Int
}

type AwsComprehendMedicalListRxNormInferenceJobsOutput {
  ComprehendMedicalAsyncJobPropertiesList: [AwsComprehendMedicalS4]
  NextToken: String
}

input AwsComprehendMedicalListRxNormInferenceJobsInput {
  Filter: AwsComprehendMedicalS25Input
  NextToken: String
  MaxResults: Int
}

type AwsComprehendMedicalStartEntitiesDetectionV2JobOutput {
  JobId: String
}

input AwsComprehendMedicalStartEntitiesDetectionV2JobInput {
  InputDataConfig: AwsComprehendMedicalS9Input!
  OutputDataConfig: AwsComprehendMedicalScInput!
  DataAccessRoleArn: String!
  JobName: String
  ClientRequestToken: String
  KMSKey: String
  LanguageCode: String!
}

input AwsComprehendMedicalS9Input {
  S3Bucket: String!
  S3Key: String
}

input AwsComprehendMedicalScInput {
  S3Bucket: String!
  S3Key: String
}

type AwsComprehendMedicalStartICD10CMInferenceJobOutput {
  JobId: String
}

input AwsComprehendMedicalStartICD10CMInferenceJobInput {
  InputDataConfig: AwsComprehendMedicalS9Input!
  OutputDataConfig: AwsComprehendMedicalScInput!
  DataAccessRoleArn: String!
  JobName: String
  ClientRequestToken: String
  KMSKey: String
  LanguageCode: String!
}

type AwsComprehendMedicalStartPHIDetectionJobOutput {
  JobId: String
}

input AwsComprehendMedicalStartPHIDetectionJobInput {
  InputDataConfig: AwsComprehendMedicalS9Input!
  OutputDataConfig: AwsComprehendMedicalScInput!
  DataAccessRoleArn: String!
  JobName: String
  ClientRequestToken: String
  KMSKey: String
  LanguageCode: String!
}

type AwsComprehendMedicalStartRxNormInferenceJobOutput {
  JobId: String
}

input AwsComprehendMedicalStartRxNormInferenceJobInput {
  InputDataConfig: AwsComprehendMedicalS9Input!
  OutputDataConfig: AwsComprehendMedicalScInput!
  DataAccessRoleArn: String!
  JobName: String
  ClientRequestToken: String
  KMSKey: String
  LanguageCode: String!
}

type AwsComprehendMedicalStopEntitiesDetectionV2JobOutput {
  JobId: String
}

input AwsComprehendMedicalStopEntitiesDetectionV2JobInput {
  JobId: String!
}

type AwsComprehendMedicalStopICD10CMInferenceJobOutput {
  JobId: String
}

input AwsComprehendMedicalStopICD10CMInferenceJobInput {
  JobId: String!
}

type AwsComprehendMedicalStopPHIDetectionJobOutput {
  JobId: String
}

input AwsComprehendMedicalStopPHIDetectionJobInput {
  JobId: String!
}

type AwsComprehendMedicalStopRxNormInferenceJobOutput {
  JobId: String
}

input AwsComprehendMedicalStopRxNormInferenceJobInput {
  JobId: String!
}

"""AWS Compute Optimizer (2019-11-01)"""
type AwsComputeOptimizer {
  describeRecommendationExportJobs(input: AwsComputeOptimizerDescribeRecommendationExportJobsInput, config: AwsConfig): AwsComputeOptimizerDescribeRecommendationExportJobsOutput
  exportAutoScalingGroupRecommendations(input: AwsComputeOptimizerExportAutoScalingGroupRecommendationsInput!, config: AwsConfig): AwsComputeOptimizerExportAutoScalingGroupRecommendationsOutput
  exportEBSVolumeRecommendations(input: AwsComputeOptimizerExportEBSVolumeRecommendationsInput!, config: AwsConfig): AwsComputeOptimizerExportEBSVolumeRecommendationsOutput
  exportEC2InstanceRecommendations(input: AwsComputeOptimizerExportEC2InstanceRecommendationsInput!, config: AwsConfig): AwsComputeOptimizerExportEC2InstanceRecommendationsOutput
  exportLambdaFunctionRecommendations(input: AwsComputeOptimizerExportLambdaFunctionRecommendationsInput!, config: AwsConfig): AwsComputeOptimizerExportLambdaFunctionRecommendationsOutput
  getAutoScalingGroupRecommendations(input: AwsComputeOptimizerGetAutoScalingGroupRecommendationsInput, config: AwsConfig): AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutput
  getEBSVolumeRecommendations(input: AwsComputeOptimizerGetEBSVolumeRecommendationsInput, config: AwsConfig): AwsComputeOptimizerGetEBSVolumeRecommendationsOutput
  getEC2InstanceRecommendations(input: AwsComputeOptimizerGetEC2InstanceRecommendationsInput, config: AwsConfig): AwsComputeOptimizerGetEC2InstanceRecommendationsOutput
  getEC2RecommendationProjectedMetrics(input: AwsComputeOptimizerGetEC2RecommendationProjectedMetricsInput!, config: AwsConfig): AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutput
  getEnrollmentStatus(input: JSON, config: AwsConfig): AwsComputeOptimizerGetEnrollmentStatusOutput
  getLambdaFunctionRecommendations(input: AwsComputeOptimizerGetLambdaFunctionRecommendationsInput, config: AwsConfig): AwsComputeOptimizerGetLambdaFunctionRecommendationsOutput
  getRecommendationSummaries(input: AwsComputeOptimizerGetRecommendationSummariesInput, config: AwsConfig): AwsComputeOptimizerGetRecommendationSummariesOutput
  updateEnrollmentStatus(input: AwsComputeOptimizerUpdateEnrollmentStatusInput!, config: AwsConfig): AwsComputeOptimizerUpdateEnrollmentStatusOutput
}

type AwsComputeOptimizerDescribeRecommendationExportJobsOutput {
  recommendationExportJobs: [AwsComputeOptimizerDescribeRecommendationExportJobsOutputRecommendationExportJobs]
  nextToken: String
}

type AwsComputeOptimizerDescribeRecommendationExportJobsOutputRecommendationExportJobs {
  jobId: String
  destination: AwsComputeOptimizerDescribeRecommendationExportJobsOutputRecommendationExportJobsDestination
  resourceType: String
  status: String
  creationTimestamp: Date
  lastUpdatedTimestamp: Date
  failureReason: String
}

type AwsComputeOptimizerDescribeRecommendationExportJobsOutputRecommendationExportJobsDestination {
  s3: AwsComputeOptimizerSf
}

type AwsComputeOptimizerSf {
  bucket: String
  key: String
  metadataKey: String
}

input AwsComputeOptimizerDescribeRecommendationExportJobsInput {
  jobIds: [String]
  filters: [AwsComputeOptimizerDescribeRecommendationExportJobsFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsComputeOptimizerDescribeRecommendationExportJobsFiltersInput {
  name: String
  values: [String]
}

type AwsComputeOptimizerExportAutoScalingGroupRecommendationsOutput {
  jobId: String
  s3Destination: AwsComputeOptimizerSf
}

input AwsComputeOptimizerExportAutoScalingGroupRecommendationsInput {
  accountIds: [String]
  filters: [AwsComputeOptimizerSrInput]
  fieldsToExport: [String]
  s3DestinationConfig: AwsComputeOptimizerSwInput!
  fileFormat: String
  includeMemberAccounts: Boolean
}

input AwsComputeOptimizerSrInput {
  name: String
  values: [String]
}

input AwsComputeOptimizerSwInput {
  bucket: String
  keyPrefix: String
}

type AwsComputeOptimizerExportEBSVolumeRecommendationsOutput {
  jobId: String
  s3Destination: AwsComputeOptimizerSf
}

input AwsComputeOptimizerExportEBSVolumeRecommendationsInput {
  accountIds: [String]
  filters: [AwsComputeOptimizerS12Input]
  fieldsToExport: [String]
  s3DestinationConfig: AwsComputeOptimizerSwInput!
  fileFormat: String
  includeMemberAccounts: Boolean
}

input AwsComputeOptimizerS12Input {
  name: String
  values: [String]
}

type AwsComputeOptimizerExportEC2InstanceRecommendationsOutput {
  jobId: String
  s3Destination: AwsComputeOptimizerSf
}

input AwsComputeOptimizerExportEC2InstanceRecommendationsInput {
  accountIds: [String]
  filters: [AwsComputeOptimizerSrInput]
  fieldsToExport: [String]
  s3DestinationConfig: AwsComputeOptimizerSwInput!
  fileFormat: String
  includeMemberAccounts: Boolean
}

type AwsComputeOptimizerExportLambdaFunctionRecommendationsOutput {
  jobId: String
  s3Destination: AwsComputeOptimizerSf
}

input AwsComputeOptimizerExportLambdaFunctionRecommendationsInput {
  accountIds: [String]
  filters: [AwsComputeOptimizerS1dInput]
  fieldsToExport: [String]
  s3DestinationConfig: AwsComputeOptimizerSwInput!
  fileFormat: String
  includeMemberAccounts: Boolean
}

input AwsComputeOptimizerS1dInput {
  name: String
  values: [String]
}

type AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutput {
  nextToken: String
  autoScalingGroupRecommendations: [AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutputAutoScalingGroupRecommendations]
  errors: [AwsComputeOptimizerS28]
}

type AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutputAutoScalingGroupRecommendations {
  accountId: String
  autoScalingGroupArn: String
  autoScalingGroupName: String
  finding: String
  utilizationMetrics: [AwsComputeOptimizerS1s]
  lookBackPeriodInDays: JSON
  currentConfiguration: AwsComputeOptimizerS1x
  recommendationOptions: [AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutputAutoScalingGroupRecommendationsRecommendationOptions]
  lastRefreshTimestamp: Date
}

type AwsComputeOptimizerS1s {
  name: String
  statistic: String
  value: JSON
}

type AwsComputeOptimizerS1x {
  desiredCapacity: Int
  minSize: Int
  maxSize: Int
  instanceType: String
}

type AwsComputeOptimizerGetAutoScalingGroupRecommendationsOutputAutoScalingGroupRecommendationsRecommendationOptions {
  configuration: AwsComputeOptimizerS1x
  projectedUtilizationMetrics: [AwsComputeOptimizerS1s]
  performanceRisk: JSON
  rank: Int
}

type AwsComputeOptimizerS28 {
  identifier: String
  code: String
  message: String
}

input AwsComputeOptimizerGetAutoScalingGroupRecommendationsInput {
  accountIds: [String]
  autoScalingGroupArns: [String]
  nextToken: String
  maxResults: Int
  filters: [AwsComputeOptimizerSrInput]
}

type AwsComputeOptimizerGetEBSVolumeRecommendationsOutput {
  nextToken: String
  volumeRecommendations: [AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendations]
  errors: [AwsComputeOptimizerS28]
}

type AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendations {
  volumeArn: String
  accountId: String
  currentConfiguration: AwsComputeOptimizerS2j
  finding: String
  utilizationMetrics: [AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendationsUtilizationMetrics]
  lookBackPeriodInDays: JSON
  volumeRecommendationOptions: [AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendationsVolumeRecommendationOptions]
  lastRefreshTimestamp: Date
}

type AwsComputeOptimizerS2j {
  volumeType: String
  volumeSize: Int
  volumeBaselineIOPS: Int
  volumeBurstIOPS: Int
  volumeBaselineThroughput: Int
  volumeBurstThroughput: Int
}

type AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendationsUtilizationMetrics {
  name: String
  statistic: String
  value: JSON
}

type AwsComputeOptimizerGetEBSVolumeRecommendationsOutputVolumeRecommendationsVolumeRecommendationOptions {
  configuration: AwsComputeOptimizerS2j
  performanceRisk: JSON
  rank: Int
}

input AwsComputeOptimizerGetEBSVolumeRecommendationsInput {
  volumeArns: [String]
  nextToken: String
  maxResults: Int
  filters: [AwsComputeOptimizerS12Input]
  accountIds: [String]
}

type AwsComputeOptimizerGetEC2InstanceRecommendationsOutput {
  nextToken: String
  instanceRecommendations: [AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendations]
  errors: [AwsComputeOptimizerS28]
}

type AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendations {
  instanceArn: String
  accountId: String
  instanceName: String
  currentInstanceType: String
  finding: String
  findingReasonCodes: [String]
  utilizationMetrics: [AwsComputeOptimizerS1s]
  lookBackPeriodInDays: JSON
  recommendationOptions: [AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendationsRecommendationOptions]
  recommendationSources: [AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendationsRecommendationSources]
  lastRefreshTimestamp: Date
}

type AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendationsRecommendationOptions {
  instanceType: String
  projectedUtilizationMetrics: [AwsComputeOptimizerS1s]
  platformDifferences: [String]
  performanceRisk: JSON
  rank: Int
}

type AwsComputeOptimizerGetEC2InstanceRecommendationsOutputInstanceRecommendationsRecommendationSources {
  recommendationSourceArn: String
  recommendationSourceType: String
}

input AwsComputeOptimizerGetEC2InstanceRecommendationsInput {
  instanceArns: [String]
  nextToken: String
  maxResults: Int
  filters: [AwsComputeOptimizerSrInput]
  accountIds: [String]
}

type AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutput {
  recommendedOptionProjectedMetrics: [AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutputRecommendedOptionProjectedMetrics]
}

type AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutputRecommendedOptionProjectedMetrics {
  recommendedInstanceType: String
  rank: Int
  projectedMetrics: [AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutputRecommendedOptionProjectedMetricsProjectedMetrics]
}

type AwsComputeOptimizerGetEC2RecommendationProjectedMetricsOutputRecommendedOptionProjectedMetricsProjectedMetrics {
  name: String
  timestamps: [Date]
  values: [JSON]
}

input AwsComputeOptimizerGetEC2RecommendationProjectedMetricsInput {
  instanceArn: String!
  stat: String!
  period: Int!
  startTime: Date!
  endTime: Date!
}

type AwsComputeOptimizerGetEnrollmentStatusOutput {
  status: String
  statusReason: String
  memberAccountsEnrolled: Boolean
}

type AwsComputeOptimizerGetLambdaFunctionRecommendationsOutput {
  nextToken: String
  lambdaFunctionRecommendations: [AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendations]
}

type AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendations {
  functionArn: String
  functionVersion: String
  accountId: String
  currentMemorySize: Int
  numberOfInvocations: JSON
  utilizationMetrics: [AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsUtilizationMetrics]
  lookbackPeriodInDays: JSON
  lastRefreshTimestamp: Date
  finding: String
  findingReasonCodes: [String]
  memorySizeRecommendationOptions: [AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsMemorySizeRecommendationOptions]
}

type AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsUtilizationMetrics {
  name: String
  statistic: String
  value: JSON
}

type AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsMemorySizeRecommendationOptions {
  rank: Int
  memorySize: Int
  projectedUtilizationMetrics: [AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsMemorySizeRecommendationOptionsProjectedUtilizationMetrics]
}

type AwsComputeOptimizerGetLambdaFunctionRecommendationsOutputLambdaFunctionRecommendationsMemorySizeRecommendationOptionsProjectedUtilizationMetrics {
  name: String
  statistic: String
  value: JSON
}

input AwsComputeOptimizerGetLambdaFunctionRecommendationsInput {
  functionArns: [String]
  accountIds: [String]
  filters: [AwsComputeOptimizerS1dInput]
  nextToken: String
  maxResults: Int
}

type AwsComputeOptimizerGetRecommendationSummariesOutput {
  nextToken: String
  recommendationSummaries: [AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummaries]
}

type AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummaries {
  summaries: [AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummariesSummaries]
  recommendationResourceType: String
  accountId: String
}

type AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummariesSummaries {
  name: String
  value: JSON
  reasonCodeSummaries: [AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummariesSummariesReasonCodeSummaries]
}

type AwsComputeOptimizerGetRecommendationSummariesOutputRecommendationSummariesSummariesReasonCodeSummaries {
  name: String
  value: JSON
}

input AwsComputeOptimizerGetRecommendationSummariesInput {
  accountIds: [String]
  nextToken: String
  maxResults: Int
}

type AwsComputeOptimizerUpdateEnrollmentStatusOutput {
  status: String
  statusReason: String
}

input AwsComputeOptimizerUpdateEnrollmentStatusInput {
  status: String!
  includeMemberAccounts: Boolean
}

"""AWS Config (2014-11-12)"""
type AwsConfigService {
  batchGetAggregateResourceConfig(input: AwsConfigServiceBatchGetAggregateResourceConfigInput!, config: AwsConfig): AwsConfigServiceBatchGetAggregateResourceConfigOutput
  batchGetResourceConfig(input: AwsConfigServiceBatchGetResourceConfigInput!, config: AwsConfig): AwsConfigServiceBatchGetResourceConfigOutput
  deleteAggregationAuthorization(input: AwsConfigServiceDeleteAggregationAuthorizationInput!, config: AwsConfig): JSON
  deleteConfigRule(input: AwsConfigServiceDeleteConfigRuleInput!, config: AwsConfig): JSON
  deleteConfigurationAggregator(input: AwsConfigServiceDeleteConfigurationAggregatorInput!, config: AwsConfig): JSON
  deleteConfigurationRecorder(input: AwsConfigServiceDeleteConfigurationRecorderInput!, config: AwsConfig): JSON
  deleteConformancePack(input: AwsConfigServiceDeleteConformancePackInput!, config: AwsConfig): JSON
  deleteDeliveryChannel(input: AwsConfigServiceDeleteDeliveryChannelInput!, config: AwsConfig): JSON
  deleteEvaluationResults(input: AwsConfigServiceDeleteEvaluationResultsInput!, config: AwsConfig): JSON
  deleteOrganizationConfigRule(input: AwsConfigServiceDeleteOrganizationConfigRuleInput!, config: AwsConfig): JSON
  deleteOrganizationConformancePack(input: AwsConfigServiceDeleteOrganizationConformancePackInput!, config: AwsConfig): JSON
  deletePendingAggregationRequest(input: AwsConfigServiceDeletePendingAggregationRequestInput!, config: AwsConfig): JSON
  deleteRemediationConfiguration(input: AwsConfigServiceDeleteRemediationConfigurationInput!, config: AwsConfig): JSON
  deleteRemediationExceptions(input: AwsConfigServiceDeleteRemediationExceptionsInput!, config: AwsConfig): AwsConfigServiceDeleteRemediationExceptionsOutput
  deleteResourceConfig(input: AwsConfigServiceDeleteResourceConfigInput!, config: AwsConfig): JSON
  deleteRetentionConfiguration(input: AwsConfigServiceDeleteRetentionConfigurationInput!, config: AwsConfig): JSON
  deleteStoredQuery(input: AwsConfigServiceDeleteStoredQueryInput!, config: AwsConfig): JSON
  deliverConfigSnapshot(input: AwsConfigServiceDeliverConfigSnapshotInput!, config: AwsConfig): AwsConfigServiceDeliverConfigSnapshotOutput
  describeAggregateComplianceByConfigRules(input: AwsConfigServiceDescribeAggregateComplianceByConfigRulesInput!, config: AwsConfig): AwsConfigServiceDescribeAggregateComplianceByConfigRulesOutput
  describeAggregateComplianceByConformancePacks(input: AwsConfigServiceDescribeAggregateComplianceByConformancePacksInput!, config: AwsConfig): AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutput
  describeAggregationAuthorizations(input: AwsConfigServiceDescribeAggregationAuthorizationsInput, config: AwsConfig): AwsConfigServiceDescribeAggregationAuthorizationsOutput
  describeComplianceByConfigRule(input: AwsConfigServiceDescribeComplianceByConfigRuleInput, config: AwsConfig): AwsConfigServiceDescribeComplianceByConfigRuleOutput
  describeComplianceByResource(input: AwsConfigServiceDescribeComplianceByResourceInput, config: AwsConfig): AwsConfigServiceDescribeComplianceByResourceOutput
  describeConfigRuleEvaluationStatus(input: AwsConfigServiceDescribeConfigRuleEvaluationStatusInput, config: AwsConfig): AwsConfigServiceDescribeConfigRuleEvaluationStatusOutput
  describeConfigRules(input: AwsConfigServiceDescribeConfigRulesInput, config: AwsConfig): AwsConfigServiceDescribeConfigRulesOutput
  describeConfigurationAggregatorSourcesStatus(input: AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusInput!, config: AwsConfig): AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusOutput
  describeConfigurationAggregators(input: AwsConfigServiceDescribeConfigurationAggregatorsInput, config: AwsConfig): AwsConfigServiceDescribeConfigurationAggregatorsOutput
  describeConfigurationRecorderStatus(input: AwsConfigServiceDescribeConfigurationRecorderStatusInput, config: AwsConfig): AwsConfigServiceDescribeConfigurationRecorderStatusOutput
  describeConfigurationRecorders(input: AwsConfigServiceDescribeConfigurationRecordersInput, config: AwsConfig): AwsConfigServiceDescribeConfigurationRecordersOutput
  describeConformancePackCompliance(input: AwsConfigServiceDescribeConformancePackComplianceInput!, config: AwsConfig): AwsConfigServiceDescribeConformancePackComplianceOutput
  describeConformancePackStatus(input: AwsConfigServiceDescribeConformancePackStatusInput, config: AwsConfig): AwsConfigServiceDescribeConformancePackStatusOutput
  describeConformancePacks(input: AwsConfigServiceDescribeConformancePacksInput, config: AwsConfig): AwsConfigServiceDescribeConformancePacksOutput
  describeDeliveryChannelStatus(input: AwsConfigServiceDescribeDeliveryChannelStatusInput, config: AwsConfig): AwsConfigServiceDescribeDeliveryChannelStatusOutput
  describeDeliveryChannels(input: AwsConfigServiceDescribeDeliveryChannelsInput, config: AwsConfig): AwsConfigServiceDescribeDeliveryChannelsOutput
  describeOrganizationConfigRuleStatuses(input: AwsConfigServiceDescribeOrganizationConfigRuleStatusesInput, config: AwsConfig): AwsConfigServiceDescribeOrganizationConfigRuleStatusesOutput
  describeOrganizationConfigRules(input: AwsConfigServiceDescribeOrganizationConfigRulesInput, config: AwsConfig): AwsConfigServiceDescribeOrganizationConfigRulesOutput
  describeOrganizationConformancePackStatuses(input: AwsConfigServiceDescribeOrganizationConformancePackStatusesInput, config: AwsConfig): AwsConfigServiceDescribeOrganizationConformancePackStatusesOutput
  describeOrganizationConformancePacks(input: AwsConfigServiceDescribeOrganizationConformancePacksInput, config: AwsConfig): AwsConfigServiceDescribeOrganizationConformancePacksOutput
  describePendingAggregationRequests(input: AwsConfigServiceDescribePendingAggregationRequestsInput, config: AwsConfig): AwsConfigServiceDescribePendingAggregationRequestsOutput
  describeRemediationConfigurations(input: AwsConfigServiceDescribeRemediationConfigurationsInput!, config: AwsConfig): AwsConfigServiceDescribeRemediationConfigurationsOutput
  describeRemediationExceptions(input: AwsConfigServiceDescribeRemediationExceptionsInput!, config: AwsConfig): AwsConfigServiceDescribeRemediationExceptionsOutput
  describeRemediationExecutionStatus(input: AwsConfigServiceDescribeRemediationExecutionStatusInput!, config: AwsConfig): AwsConfigServiceDescribeRemediationExecutionStatusOutput
  describeRetentionConfigurations(input: AwsConfigServiceDescribeRetentionConfigurationsInput, config: AwsConfig): AwsConfigServiceDescribeRetentionConfigurationsOutput
  getAggregateComplianceDetailsByConfigRule(input: AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleInput!, config: AwsConfig): AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleOutput
  getAggregateConfigRuleComplianceSummary(input: AwsConfigServiceGetAggregateConfigRuleComplianceSummaryInput!, config: AwsConfig): AwsConfigServiceGetAggregateConfigRuleComplianceSummaryOutput
  getAggregateConformancePackComplianceSummary(input: AwsConfigServiceGetAggregateConformancePackComplianceSummaryInput!, config: AwsConfig): AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutput
  getAggregateDiscoveredResourceCounts(input: AwsConfigServiceGetAggregateDiscoveredResourceCountsInput!, config: AwsConfig): AwsConfigServiceGetAggregateDiscoveredResourceCountsOutput
  getAggregateResourceConfig(input: AwsConfigServiceGetAggregateResourceConfigInput!, config: AwsConfig): AwsConfigServiceGetAggregateResourceConfigOutput
  getComplianceDetailsByConfigRule(input: AwsConfigServiceGetComplianceDetailsByConfigRuleInput!, config: AwsConfig): AwsConfigServiceGetComplianceDetailsByConfigRuleOutput
  getComplianceDetailsByResource(input: AwsConfigServiceGetComplianceDetailsByResourceInput!, config: AwsConfig): AwsConfigServiceGetComplianceDetailsByResourceOutput
  getComplianceSummaryByConfigRule(config: AwsConfig): AwsConfigServiceGetComplianceSummaryByConfigRuleOutput
  getComplianceSummaryByResourceType(input: AwsConfigServiceGetComplianceSummaryByResourceTypeInput, config: AwsConfig): AwsConfigServiceGetComplianceSummaryByResourceTypeOutput
  getConformancePackComplianceDetails(input: AwsConfigServiceGetConformancePackComplianceDetailsInput!, config: AwsConfig): AwsConfigServiceGetConformancePackComplianceDetailsOutput
  getConformancePackComplianceSummary(input: AwsConfigServiceGetConformancePackComplianceSummaryInput!, config: AwsConfig): AwsConfigServiceGetConformancePackComplianceSummaryOutput
  getDiscoveredResourceCounts(input: AwsConfigServiceGetDiscoveredResourceCountsInput, config: AwsConfig): AwsConfigServiceGetDiscoveredResourceCountsOutput
  getOrganizationConfigRuleDetailedStatus(input: AwsConfigServiceGetOrganizationConfigRuleDetailedStatusInput!, config: AwsConfig): AwsConfigServiceGetOrganizationConfigRuleDetailedStatusOutput
  getOrganizationConformancePackDetailedStatus(input: AwsConfigServiceGetOrganizationConformancePackDetailedStatusInput!, config: AwsConfig): AwsConfigServiceGetOrganizationConformancePackDetailedStatusOutput
  getResourceConfigHistory(input: AwsConfigServiceGetResourceConfigHistoryInput!, config: AwsConfig): AwsConfigServiceGetResourceConfigHistoryOutput
  getStoredQuery(input: AwsConfigServiceGetStoredQueryInput!, config: AwsConfig): AwsConfigServiceGetStoredQueryOutput
  listAggregateDiscoveredResources(input: AwsConfigServiceListAggregateDiscoveredResourcesInput!, config: AwsConfig): AwsConfigServiceListAggregateDiscoveredResourcesOutput
  listDiscoveredResources(input: AwsConfigServiceListDiscoveredResourcesInput!, config: AwsConfig): AwsConfigServiceListDiscoveredResourcesOutput
  listStoredQueries(input: AwsConfigServiceListStoredQueriesInput, config: AwsConfig): AwsConfigServiceListStoredQueriesOutput
  listTagsForResource(input: AwsConfigServiceListTagsForResourceInput!, config: AwsConfig): AwsConfigServiceListTagsForResourceOutput
  putAggregationAuthorization(input: AwsConfigServicePutAggregationAuthorizationInput!, config: AwsConfig): AwsConfigServicePutAggregationAuthorizationOutput
  putConfigRule(input: AwsConfigServicePutConfigRuleInput!, config: AwsConfig): JSON
  putConfigurationAggregator(input: AwsConfigServicePutConfigurationAggregatorInput!, config: AwsConfig): AwsConfigServicePutConfigurationAggregatorOutput
  putConfigurationRecorder(input: AwsConfigServicePutConfigurationRecorderInput!, config: AwsConfig): JSON
  putConformancePack(input: AwsConfigServicePutConformancePackInput!, config: AwsConfig): AwsConfigServicePutConformancePackOutput
  putDeliveryChannel(input: AwsConfigServicePutDeliveryChannelInput!, config: AwsConfig): JSON
  putEvaluations(input: AwsConfigServicePutEvaluationsInput!, config: AwsConfig): AwsConfigServicePutEvaluationsOutput
  putExternalEvaluation(input: AwsConfigServicePutExternalEvaluationInput!, config: AwsConfig): JSON
  putOrganizationConfigRule(input: AwsConfigServicePutOrganizationConfigRuleInput!, config: AwsConfig): AwsConfigServicePutOrganizationConfigRuleOutput
  putOrganizationConformancePack(input: AwsConfigServicePutOrganizationConformancePackInput!, config: AwsConfig): AwsConfigServicePutOrganizationConformancePackOutput
  putRemediationConfigurations(input: AwsConfigServicePutRemediationConfigurationsInput!, config: AwsConfig): AwsConfigServicePutRemediationConfigurationsOutput
  putRemediationExceptions(input: AwsConfigServicePutRemediationExceptionsInput!, config: AwsConfig): AwsConfigServicePutRemediationExceptionsOutput
  putResourceConfig(input: AwsConfigServicePutResourceConfigInput!, config: AwsConfig): JSON
  putRetentionConfiguration(input: AwsConfigServicePutRetentionConfigurationInput!, config: AwsConfig): AwsConfigServicePutRetentionConfigurationOutput
  putStoredQuery(input: AwsConfigServicePutStoredQueryInput!, config: AwsConfig): AwsConfigServicePutStoredQueryOutput
  selectAggregateResourceConfig(input: AwsConfigServiceSelectAggregateResourceConfigInput!, config: AwsConfig): AwsConfigServiceSelectAggregateResourceConfigOutput
  selectResourceConfig(input: AwsConfigServiceSelectResourceConfigInput!, config: AwsConfig): AwsConfigServiceSelectResourceConfigOutput
  startConfigRulesEvaluation(input: AwsConfigServiceStartConfigRulesEvaluationInput, config: AwsConfig): JSON
  startConfigurationRecorder(input: AwsConfigServiceStartConfigurationRecorderInput!, config: AwsConfig): JSON
  startRemediationExecution(input: AwsConfigServiceStartRemediationExecutionInput!, config: AwsConfig): AwsConfigServiceStartRemediationExecutionOutput
  stopConfigurationRecorder(input: AwsConfigServiceStopConfigurationRecorderInput!, config: AwsConfig): JSON
  tagResource(input: AwsConfigServiceTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsConfigServiceUntagResourceInput!, config: AwsConfig): JSON
}

type AwsConfigServiceBatchGetAggregateResourceConfigOutput {
  BaseConfigurationItems: [AwsConfigServiceSb]
  UnprocessedResourceIdentifiers: [AwsConfigServiceS4]
}

type AwsConfigServiceSb {
  version: String
  accountId: String
  configurationItemCaptureTime: Date
  configurationItemStatus: String
  configurationStateId: String
  arn: String
  resourceType: String
  resourceId: String
  resourceName: String
  awsRegion: String
  availabilityZone: String
  resourceCreationTime: Date
  configuration: String
  supplementaryConfiguration: JSON
}

type AwsConfigServiceS4 {
  SourceAccountId: String!
  SourceRegion: String!
  ResourceId: String!
  ResourceType: String!
  ResourceName: String
}

input AwsConfigServiceBatchGetAggregateResourceConfigInput {
  ConfigurationAggregatorName: String!
  ResourceIdentifiers: [AwsConfigServiceS4Input]!
}

input AwsConfigServiceS4Input {
  SourceAccountId: String!
  SourceRegion: String!
  ResourceId: String!
  ResourceType: String!
  ResourceName: String
}

type AwsConfigServiceBatchGetResourceConfigOutput {
  baseConfigurationItems: [AwsConfigServiceSb]
  unprocessedResourceKeys: [AwsConfigServiceSr]
}

type AwsConfigServiceSr {
  resourceType: String!
  resourceId: String!
}

input AwsConfigServiceBatchGetResourceConfigInput {
  resourceKeys: [AwsConfigServiceSrInput]!
}

input AwsConfigServiceSrInput {
  resourceType: String!
  resourceId: String!
}

input AwsConfigServiceDeleteAggregationAuthorizationInput {
  AuthorizedAccountId: String!
  AuthorizedAwsRegion: String!
}

input AwsConfigServiceDeleteConfigRuleInput {
  ConfigRuleName: String!
}

input AwsConfigServiceDeleteConfigurationAggregatorInput {
  ConfigurationAggregatorName: String!
}

input AwsConfigServiceDeleteConfigurationRecorderInput {
  ConfigurationRecorderName: String!
}

input AwsConfigServiceDeleteConformancePackInput {
  ConformancePackName: String!
}

input AwsConfigServiceDeleteDeliveryChannelInput {
  DeliveryChannelName: String!
}

input AwsConfigServiceDeleteEvaluationResultsInput {
  ConfigRuleName: String!
}

input AwsConfigServiceDeleteOrganizationConfigRuleInput {
  OrganizationConfigRuleName: String!
}

input AwsConfigServiceDeleteOrganizationConformancePackInput {
  OrganizationConformancePackName: String!
}

input AwsConfigServiceDeletePendingAggregationRequestInput {
  RequesterAccountId: String!
  RequesterAwsRegion: String!
}

input AwsConfigServiceDeleteRemediationConfigurationInput {
  ConfigRuleName: String!
  ResourceType: String
}

type AwsConfigServiceDeleteRemediationExceptionsOutput {
  FailedBatches: [AwsConfigServiceDeleteRemediationExceptionsOutputFailedBatches]
}

type AwsConfigServiceDeleteRemediationExceptionsOutputFailedBatches {
  FailureMessage: String
  FailedItems: [AwsConfigServiceS1f]
}

type AwsConfigServiceS1f {
  ResourceType: String
  ResourceId: String
}

input AwsConfigServiceDeleteRemediationExceptionsInput {
  ConfigRuleName: String!
  ResourceKeys: [AwsConfigServiceS1fInput]!
}

input AwsConfigServiceS1fInput {
  ResourceType: String
  ResourceId: String
}

input AwsConfigServiceDeleteResourceConfigInput {
  ResourceType: String!
  ResourceId: String!
}

input AwsConfigServiceDeleteRetentionConfigurationInput {
  RetentionConfigurationName: String!
}

input AwsConfigServiceDeleteStoredQueryInput {
  QueryName: String!
}

type AwsConfigServiceDeliverConfigSnapshotOutput {
  configSnapshotId: String
}

input AwsConfigServiceDeliverConfigSnapshotInput {
  deliveryChannelName: String!
}

type AwsConfigServiceDescribeAggregateComplianceByConfigRulesOutput {
  AggregateComplianceByConfigRules: [AwsConfigServiceDescribeAggregateComplianceByConfigRulesOutputAggregateComplianceByConfigRules]
  NextToken: String
}

type AwsConfigServiceDescribeAggregateComplianceByConfigRulesOutputAggregateComplianceByConfigRules {
  ConfigRuleName: String
  Compliance: AwsConfigServiceS23
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceS23 {
  ComplianceType: String
  ComplianceContributorCount: AwsConfigServiceS24
}

type AwsConfigServiceS24 {
  CappedCount: Int
  CapExceeded: Boolean
}

input AwsConfigServiceDescribeAggregateComplianceByConfigRulesInput {
  ConfigurationAggregatorName: String!
  Filters: AwsConfigServiceDescribeAggregateComplianceByConfigRulesFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceDescribeAggregateComplianceByConfigRulesFiltersInput {
  ConfigRuleName: String
  ComplianceType: String
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutput {
  AggregateComplianceByConformancePacks: [AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutputAggregateComplianceByConformancePacks]
  NextToken: String
}

type AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutputAggregateComplianceByConformancePacks {
  ConformancePackName: String
  Compliance: AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutputAggregateComplianceByConformancePacksCompliance
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceDescribeAggregateComplianceByConformancePacksOutputAggregateComplianceByConformancePacksCompliance {
  ComplianceType: String
  CompliantRuleCount: Int
  NonCompliantRuleCount: Int
  TotalRuleCount: Int
}

input AwsConfigServiceDescribeAggregateComplianceByConformancePacksInput {
  ConfigurationAggregatorName: String!
  Filters: AwsConfigServiceDescribeAggregateComplianceByConformancePacksFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceDescribeAggregateComplianceByConformancePacksFiltersInput {
  ConformancePackName: String
  ComplianceType: String
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceDescribeAggregationAuthorizationsOutput {
  AggregationAuthorizations: [AwsConfigServiceS2i]
  NextToken: String
}

type AwsConfigServiceS2i {
  AggregationAuthorizationArn: String
  AuthorizedAccountId: String
  AuthorizedAwsRegion: String
  CreationTime: Date
}

input AwsConfigServiceDescribeAggregationAuthorizationsInput {
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeComplianceByConfigRuleOutput {
  ComplianceByConfigRules: [AwsConfigServiceDescribeComplianceByConfigRuleOutputComplianceByConfigRules]
  NextToken: String
}

type AwsConfigServiceDescribeComplianceByConfigRuleOutputComplianceByConfigRules {
  ConfigRuleName: String
  Compliance: AwsConfigServiceS23
}

input AwsConfigServiceDescribeComplianceByConfigRuleInput {
  ConfigRuleNames: [String]
  ComplianceTypes: [String]
  NextToken: String
}

type AwsConfigServiceDescribeComplianceByResourceOutput {
  ComplianceByResources: [AwsConfigServiceDescribeComplianceByResourceOutputComplianceByResources]
  NextToken: String
}

type AwsConfigServiceDescribeComplianceByResourceOutputComplianceByResources {
  ResourceType: String
  ResourceId: String
  Compliance: AwsConfigServiceS23
}

input AwsConfigServiceDescribeComplianceByResourceInput {
  ResourceType: String
  ResourceId: String
  ComplianceTypes: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeConfigRuleEvaluationStatusOutput {
  ConfigRulesEvaluationStatus: [AwsConfigServiceDescribeConfigRuleEvaluationStatusOutputConfigRulesEvaluationStatus]
  NextToken: String
}

type AwsConfigServiceDescribeConfigRuleEvaluationStatusOutputConfigRulesEvaluationStatus {
  ConfigRuleName: String
  ConfigRuleArn: String
  ConfigRuleId: String
  LastSuccessfulInvocationTime: Date
  LastFailedInvocationTime: Date
  LastSuccessfulEvaluationTime: Date
  LastFailedEvaluationTime: Date
  FirstActivatedTime: Date
  LastDeactivatedTime: Date
  LastErrorCode: String
  LastErrorMessage: String
  FirstEvaluationStarted: Boolean
}

input AwsConfigServiceDescribeConfigRuleEvaluationStatusInput {
  ConfigRuleNames: [String]
  NextToken: String
  Limit: Int
}

type AwsConfigServiceDescribeConfigRulesOutput {
  ConfigRules: [AwsConfigServiceS33]
  NextToken: String
}

type AwsConfigServiceS33 {
  ConfigRuleName: String
  ConfigRuleArn: String
  ConfigRuleId: String
  Description: String
  Scope: AwsConfigServiceS33Scope
  Source: AwsConfigServiceS33Source!
  InputParameters: String
  MaximumExecutionFrequency: String
  ConfigRuleState: String
  CreatedBy: String
}

type AwsConfigServiceS33Scope {
  ComplianceResourceTypes: [String]
  TagKey: String
  TagValue: String
  ComplianceResourceId: String
}

type AwsConfigServiceS33Source {
  Owner: String!
  SourceIdentifier: String!
  SourceDetails: [AwsConfigServiceS33SourceSourceDetails]
}

type AwsConfigServiceS33SourceSourceDetails {
  EventSource: String
  MessageType: String
  MaximumExecutionFrequency: String
}

input AwsConfigServiceDescribeConfigRulesInput {
  ConfigRuleNames: [String]
  NextToken: String
}

type AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusOutput {
  AggregatedSourceStatusList: [AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusOutputAggregatedSourceStatusList]
  NextToken: String
}

type AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusOutputAggregatedSourceStatusList {
  SourceId: String
  SourceType: String
  AwsRegion: String
  LastUpdateStatus: String
  LastUpdateTime: Date
  LastErrorCode: String
  LastErrorMessage: String
}

input AwsConfigServiceDescribeConfigurationAggregatorSourcesStatusInput {
  ConfigurationAggregatorName: String!
  UpdateStatus: [String]
  NextToken: String
  Limit: Int
}

type AwsConfigServiceDescribeConfigurationAggregatorsOutput {
  ConfigurationAggregators: [AwsConfigServiceS3r]
  NextToken: String
}

type AwsConfigServiceS3r {
  ConfigurationAggregatorName: String
  ConfigurationAggregatorArn: String
  AccountAggregationSources: [AwsConfigServiceS3t]
  OrganizationAggregationSource: AwsConfigServiceS3x
  CreationTime: Date
  LastUpdatedTime: Date
  CreatedBy: String
}

type AwsConfigServiceS3t {
  AccountIds: [String]!
  AllAwsRegions: Boolean
  AwsRegions: [String]
}

type AwsConfigServiceS3x {
  RoleArn: String!
  AwsRegions: [String]
  AllAwsRegions: Boolean
}

input AwsConfigServiceDescribeConfigurationAggregatorsInput {
  ConfigurationAggregatorNames: [String]
  NextToken: String
  Limit: Int
}

type AwsConfigServiceDescribeConfigurationRecorderStatusOutput {
  ConfigurationRecordersStatus: [AwsConfigServiceDescribeConfigurationRecorderStatusOutputConfigurationRecordersStatus]
}

type AwsConfigServiceDescribeConfigurationRecorderStatusOutputConfigurationRecordersStatus {
  name: String
  lastStartTime: Date
  lastStopTime: Date
  recording: Boolean
  lastStatus: String
  lastErrorCode: String
  lastErrorMessage: String
  lastStatusChangeTime: Date
}

input AwsConfigServiceDescribeConfigurationRecorderStatusInput {
  ConfigurationRecorderNames: [String]
}

type AwsConfigServiceDescribeConfigurationRecordersOutput {
  ConfigurationRecorders: [AwsConfigServiceS47]
}

type AwsConfigServiceS47 {
  name: String
  roleARN: String
  recordingGroup: AwsConfigServiceS47RecordingGroup
}

type AwsConfigServiceS47RecordingGroup {
  allSupported: Boolean
  includeGlobalResourceTypes: Boolean
  resourceTypes: [String]
}

input AwsConfigServiceDescribeConfigurationRecordersInput {
  ConfigurationRecorderNames: [String]
}

type AwsConfigServiceDescribeConformancePackComplianceOutput {
  ConformancePackName: String!
  ConformancePackRuleComplianceList: [AwsConfigServiceDescribeConformancePackComplianceOutputConformancePackRuleComplianceList]!
  NextToken: String
}

type AwsConfigServiceDescribeConformancePackComplianceOutputConformancePackRuleComplianceList {
  ConfigRuleName: String
  ComplianceType: String
  Controls: [String]
}

input AwsConfigServiceDescribeConformancePackComplianceInput {
  ConformancePackName: String!
  Filters: AwsConfigServiceDescribeConformancePackComplianceFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceDescribeConformancePackComplianceFiltersInput {
  ConfigRuleNames: [String]
  ComplianceType: String
}

type AwsConfigServiceDescribeConformancePackStatusOutput {
  ConformancePackStatusDetails: [AwsConfigServiceDescribeConformancePackStatusOutputConformancePackStatusDetails]
  NextToken: String
}

type AwsConfigServiceDescribeConformancePackStatusOutputConformancePackStatusDetails {
  ConformancePackName: String!
  ConformancePackId: String!
  ConformancePackArn: String!
  ConformancePackState: String!
  StackArn: String!
  ConformancePackStatusReason: String
  LastUpdateRequestedTime: Date!
  LastUpdateCompletedTime: Date
}

input AwsConfigServiceDescribeConformancePackStatusInput {
  ConformancePackNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeConformancePacksOutput {
  ConformancePackDetails: [AwsConfigServiceDescribeConformancePacksOutputConformancePackDetails]
  NextToken: String
}

type AwsConfigServiceDescribeConformancePacksOutputConformancePackDetails {
  ConformancePackName: String!
  ConformancePackArn: String!
  ConformancePackId: String!
  DeliveryS3Bucket: String
  DeliveryS3KeyPrefix: String
  ConformancePackInputParameters: [AwsConfigServiceS51]
  LastUpdateRequestedTime: Date
  CreatedBy: String
}

type AwsConfigServiceS51 {
  ParameterName: String!
  ParameterValue: String!
}

input AwsConfigServiceDescribeConformancePacksInput {
  ConformancePackNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeDeliveryChannelStatusOutput {
  DeliveryChannelsStatus: [AwsConfigServiceDescribeDeliveryChannelStatusOutputDeliveryChannelsStatus]
}

type AwsConfigServiceDescribeDeliveryChannelStatusOutputDeliveryChannelsStatus {
  name: String
  configSnapshotDeliveryInfo: AwsConfigServiceS5a
  configHistoryDeliveryInfo: AwsConfigServiceS5a
  configStreamDeliveryInfo: AwsConfigServiceDescribeDeliveryChannelStatusOutputDeliveryChannelsStatusConfigStreamDeliveryInfo
}

type AwsConfigServiceS5a {
  lastStatus: String
  lastErrorCode: String
  lastErrorMessage: String
  lastAttemptTime: Date
  lastSuccessfulTime: Date
  nextDeliveryTime: Date
}

type AwsConfigServiceDescribeDeliveryChannelStatusOutputDeliveryChannelsStatusConfigStreamDeliveryInfo {
  lastStatus: String
  lastErrorCode: String
  lastErrorMessage: String
  lastStatusChangeTime: Date
}

input AwsConfigServiceDescribeDeliveryChannelStatusInput {
  DeliveryChannelNames: [String]
}

type AwsConfigServiceDescribeDeliveryChannelsOutput {
  DeliveryChannels: [AwsConfigServiceS5g]
}

type AwsConfigServiceS5g {
  name: String
  s3BucketName: String
  s3KeyPrefix: String
  s3KmsKeyArn: String
  snsTopicARN: String
  configSnapshotDeliveryProperties: AwsConfigServiceS5gConfigSnapshotDeliveryProperties
}

type AwsConfigServiceS5gConfigSnapshotDeliveryProperties {
  deliveryFrequency: String
}

input AwsConfigServiceDescribeDeliveryChannelsInput {
  DeliveryChannelNames: [String]
}

type AwsConfigServiceDescribeOrganizationConfigRuleStatusesOutput {
  OrganizationConfigRuleStatuses: [AwsConfigServiceDescribeOrganizationConfigRuleStatusesOutputOrganizationConfigRuleStatuses]
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConfigRuleStatusesOutputOrganizationConfigRuleStatuses {
  OrganizationConfigRuleName: String!
  OrganizationRuleStatus: String!
  ErrorCode: String
  ErrorMessage: String
  LastUpdateTime: Date
}

input AwsConfigServiceDescribeOrganizationConfigRuleStatusesInput {
  OrganizationConfigRuleNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConfigRulesOutput {
  OrganizationConfigRules: [AwsConfigServiceDescribeOrganizationConfigRulesOutputOrganizationConfigRules]
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConfigRulesOutputOrganizationConfigRules {
  OrganizationConfigRuleName: String!
  OrganizationConfigRuleArn: String!
  OrganizationManagedRuleMetadata: AwsConfigServiceS5t
  OrganizationCustomRuleMetadata: AwsConfigServiceS5y
  ExcludedAccounts: [String]
  LastUpdateTime: Date
}

type AwsConfigServiceS5t {
  Description: String
  RuleIdentifier: String!
  InputParameters: String
  MaximumExecutionFrequency: String
  ResourceTypesScope: [String]
  ResourceIdScope: String
  TagKeyScope: String
  TagValueScope: String
}

type AwsConfigServiceS5y {
  Description: String
  LambdaFunctionArn: String!
  OrganizationConfigRuleTriggerTypes: [String]!
  InputParameters: String
  MaximumExecutionFrequency: String
  ResourceTypesScope: [String]
  ResourceIdScope: String
  TagKeyScope: String
  TagValueScope: String
}

input AwsConfigServiceDescribeOrganizationConfigRulesInput {
  OrganizationConfigRuleNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConformancePackStatusesOutput {
  OrganizationConformancePackStatuses: [AwsConfigServiceDescribeOrganizationConformancePackStatusesOutputOrganizationConformancePackStatuses]
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConformancePackStatusesOutputOrganizationConformancePackStatuses {
  OrganizationConformancePackName: String!
  Status: String!
  ErrorCode: String
  ErrorMessage: String
  LastUpdateTime: Date
}

input AwsConfigServiceDescribeOrganizationConformancePackStatusesInput {
  OrganizationConformancePackNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConformancePacksOutput {
  OrganizationConformancePacks: [AwsConfigServiceDescribeOrganizationConformancePacksOutputOrganizationConformancePacks]
  NextToken: String
}

type AwsConfigServiceDescribeOrganizationConformancePacksOutputOrganizationConformancePacks {
  OrganizationConformancePackName: String!
  OrganizationConformancePackArn: String!
  DeliveryS3Bucket: String
  DeliveryS3KeyPrefix: String
  ConformancePackInputParameters: [AwsConfigServiceS51]
  ExcludedAccounts: [String]
  LastUpdateTime: Date!
}

input AwsConfigServiceDescribeOrganizationConformancePacksInput {
  OrganizationConformancePackNames: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribePendingAggregationRequestsOutput {
  PendingAggregationRequests: [AwsConfigServiceDescribePendingAggregationRequestsOutputPendingAggregationRequests]
  NextToken: String
}

type AwsConfigServiceDescribePendingAggregationRequestsOutputPendingAggregationRequests {
  RequesterAccountId: String
  RequesterAwsRegion: String
}

input AwsConfigServiceDescribePendingAggregationRequestsInput {
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeRemediationConfigurationsOutput {
  RemediationConfigurations: [AwsConfigServiceS6j]
}

type AwsConfigServiceS6j {
  ConfigRuleName: String!
  TargetType: String!
  TargetId: String!
  TargetVersion: String
  Parameters: JSON
  ResourceType: String
  Automatic: Boolean
  ExecutionControls: AwsConfigServiceS6jExecutionControls
  MaximumAutomaticAttempts: Int
  RetryAttemptSeconds: JSON
  Arn: String
  CreatedByService: String
}

type AwsConfigServiceS6jExecutionControls {
  SsmControls: AwsConfigServiceS6jExecutionControlsSsmControls
}

type AwsConfigServiceS6jExecutionControlsSsmControls {
  ConcurrentExecutionRatePercentage: Int
  ErrorPercentage: Int
}

input AwsConfigServiceDescribeRemediationConfigurationsInput {
  ConfigRuleNames: [String]!
}

type AwsConfigServiceDescribeRemediationExceptionsOutput {
  RemediationExceptions: [AwsConfigServiceS6z]
  NextToken: String
}

type AwsConfigServiceS6z {
  ConfigRuleName: String!
  ResourceType: String!
  ResourceId: String!
  Message: String
  ExpirationTime: Date
}

input AwsConfigServiceDescribeRemediationExceptionsInput {
  ConfigRuleName: String!
  ResourceKeys: [AwsConfigServiceS1fInput]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeRemediationExecutionStatusOutput {
  RemediationExecutionStatuses: [AwsConfigServiceDescribeRemediationExecutionStatusOutputRemediationExecutionStatuses]
  NextToken: String
}

type AwsConfigServiceDescribeRemediationExecutionStatusOutputRemediationExecutionStatuses {
  ResourceKey: AwsConfigServiceSr
  State: String
  StepDetails: [AwsConfigServiceDescribeRemediationExecutionStatusOutputRemediationExecutionStatusesStepDetails]
  InvocationTime: Date
  LastUpdatedTime: Date
}

type AwsConfigServiceDescribeRemediationExecutionStatusOutputRemediationExecutionStatusesStepDetails {
  Name: String
  State: String
  ErrorMessage: String
  StartTime: Date
  StopTime: Date
}

input AwsConfigServiceDescribeRemediationExecutionStatusInput {
  ConfigRuleName: String!
  ResourceKeys: [AwsConfigServiceSrInput]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceDescribeRetentionConfigurationsOutput {
  RetentionConfigurations: [AwsConfigServiceS7d]
  NextToken: String
}

type AwsConfigServiceS7d {
  Name: String!
  RetentionPeriodInDays: Int!
}

input AwsConfigServiceDescribeRetentionConfigurationsInput {
  RetentionConfigurationNames: [String]
  NextToken: String
}

type AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleOutput {
  AggregateEvaluationResults: [AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleOutputAggregateEvaluationResults]
  NextToken: String
}

type AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleOutputAggregateEvaluationResults {
  EvaluationResultIdentifier: AwsConfigServiceS7j
  ComplianceType: String
  ResultRecordedTime: Date
  ConfigRuleInvokedTime: Date
  Annotation: String
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceS7j {
  EvaluationResultQualifier: AwsConfigServiceS7jEvaluationResultQualifier
  OrderingTimestamp: Date
}

type AwsConfigServiceS7jEvaluationResultQualifier {
  ConfigRuleName: String
  ResourceType: String
  ResourceId: String
}

input AwsConfigServiceGetAggregateComplianceDetailsByConfigRuleInput {
  ConfigurationAggregatorName: String!
  ConfigRuleName: String!
  AccountId: String!
  AwsRegion: String!
  ComplianceType: String
  Limit: Int
  NextToken: String
}

type AwsConfigServiceGetAggregateConfigRuleComplianceSummaryOutput {
  GroupByKey: String
  AggregateComplianceCounts: [AwsConfigServiceGetAggregateConfigRuleComplianceSummaryOutputAggregateComplianceCounts]
  NextToken: String
}

type AwsConfigServiceGetAggregateConfigRuleComplianceSummaryOutputAggregateComplianceCounts {
  GroupName: String
  ComplianceSummary: AwsConfigServiceS7r
}

type AwsConfigServiceS7r {
  CompliantResourceCount: AwsConfigServiceS24
  NonCompliantResourceCount: AwsConfigServiceS24
  ComplianceSummaryTimestamp: Date
}

input AwsConfigServiceGetAggregateConfigRuleComplianceSummaryInput {
  ConfigurationAggregatorName: String!
  Filters: AwsConfigServiceGetAggregateConfigRuleComplianceSummaryFiltersInput
  GroupByKey: String
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetAggregateConfigRuleComplianceSummaryFiltersInput {
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutput {
  AggregateConformancePackComplianceSummaries: [AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutputAggregateConformancePackComplianceSummaries]
  GroupByKey: String
  NextToken: String
}

type AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutputAggregateConformancePackComplianceSummaries {
  ComplianceSummary: AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutputAggregateConformancePackComplianceSummariesComplianceSummary
  GroupName: String
}

type AwsConfigServiceGetAggregateConformancePackComplianceSummaryOutputAggregateConformancePackComplianceSummariesComplianceSummary {
  CompliantConformancePackCount: Int
  NonCompliantConformancePackCount: Int
}

input AwsConfigServiceGetAggregateConformancePackComplianceSummaryInput {
  ConfigurationAggregatorName: String!
  Filters: AwsConfigServiceGetAggregateConformancePackComplianceSummaryFiltersInput
  GroupByKey: String
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetAggregateConformancePackComplianceSummaryFiltersInput {
  AccountId: String
  AwsRegion: String
}

type AwsConfigServiceGetAggregateDiscoveredResourceCountsOutput {
  TotalDiscoveredResources: JSON!
  GroupByKey: String
  GroupedResourceCounts: [AwsConfigServiceGetAggregateDiscoveredResourceCountsOutputGroupedResourceCounts]
  NextToken: String
}

type AwsConfigServiceGetAggregateDiscoveredResourceCountsOutputGroupedResourceCounts {
  GroupName: String!
  ResourceCount: JSON!
}

input AwsConfigServiceGetAggregateDiscoveredResourceCountsInput {
  ConfigurationAggregatorName: String!
  Filters: AwsConfigServiceGetAggregateDiscoveredResourceCountsFiltersInput
  GroupByKey: String
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetAggregateDiscoveredResourceCountsFiltersInput {
  ResourceType: String
  AccountId: String
  Region: String
}

type AwsConfigServiceGetAggregateResourceConfigOutput {
  ConfigurationItem: AwsConfigServiceS88
}

type AwsConfigServiceS88 {
  version: String
  accountId: String
  configurationItemCaptureTime: Date
  configurationItemStatus: String
  configurationStateId: String
  configurationItemMD5Hash: String
  arn: String
  resourceType: String
  resourceId: String
  resourceName: String
  awsRegion: String
  availabilityZone: String
  resourceCreationTime: Date
  tags: JSON
  relatedEvents: [String]
  relationships: [AwsConfigServiceS88Relationships]
  configuration: String
  supplementaryConfiguration: JSON
}

type AwsConfigServiceS88Relationships {
  resourceType: String
  resourceId: String
  resourceName: String
  relationshipName: String
}

input AwsConfigServiceGetAggregateResourceConfigInput {
  ConfigurationAggregatorName: String!
  ResourceIdentifier: AwsConfigServiceS4Input!
}

type AwsConfigServiceGetComplianceDetailsByConfigRuleOutput {
  EvaluationResults: [AwsConfigServiceS8k]
  NextToken: String
}

type AwsConfigServiceS8k {
  EvaluationResultIdentifier: AwsConfigServiceS7j
  ComplianceType: String
  ResultRecordedTime: Date
  ConfigRuleInvokedTime: Date
  Annotation: String
  ResultToken: String
}

input AwsConfigServiceGetComplianceDetailsByConfigRuleInput {
  ConfigRuleName: String!
  ComplianceTypes: [String]
  Limit: Int
  NextToken: String
}

type AwsConfigServiceGetComplianceDetailsByResourceOutput {
  EvaluationResults: [AwsConfigServiceS8k]
  NextToken: String
}

input AwsConfigServiceGetComplianceDetailsByResourceInput {
  ResourceType: String!
  ResourceId: String!
  ComplianceTypes: [String]
  NextToken: String
}

type AwsConfigServiceGetComplianceSummaryByConfigRuleOutput {
  ComplianceSummary: AwsConfigServiceS7r
}

type AwsConfigServiceGetComplianceSummaryByResourceTypeOutput {
  ComplianceSummariesByResourceType: [AwsConfigServiceGetComplianceSummaryByResourceTypeOutputComplianceSummariesByResourceType]
}

type AwsConfigServiceGetComplianceSummaryByResourceTypeOutputComplianceSummariesByResourceType {
  ResourceType: String
  ComplianceSummary: AwsConfigServiceS7r
}

input AwsConfigServiceGetComplianceSummaryByResourceTypeInput {
  ResourceTypes: [String]
}

type AwsConfigServiceGetConformancePackComplianceDetailsOutput {
  ConformancePackName: String!
  ConformancePackRuleEvaluationResults: [AwsConfigServiceGetConformancePackComplianceDetailsOutputConformancePackRuleEvaluationResults]
  NextToken: String
}

type AwsConfigServiceGetConformancePackComplianceDetailsOutputConformancePackRuleEvaluationResults {
  ComplianceType: String!
  EvaluationResultIdentifier: AwsConfigServiceS7j!
  ConfigRuleInvokedTime: Date!
  ResultRecordedTime: Date!
  Annotation: String
}

input AwsConfigServiceGetConformancePackComplianceDetailsInput {
  ConformancePackName: String!
  Filters: AwsConfigServiceGetConformancePackComplianceDetailsFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetConformancePackComplianceDetailsFiltersInput {
  ConfigRuleNames: [String]
  ComplianceType: String
  ResourceType: String
  ResourceIds: [String]
}

type AwsConfigServiceGetConformancePackComplianceSummaryOutput {
  ConformancePackComplianceSummaryList: [AwsConfigServiceGetConformancePackComplianceSummaryOutputConformancePackComplianceSummaryList]
  NextToken: String
}

type AwsConfigServiceGetConformancePackComplianceSummaryOutputConformancePackComplianceSummaryList {
  ConformancePackName: String!
  ConformancePackComplianceStatus: String!
}

input AwsConfigServiceGetConformancePackComplianceSummaryInput {
  ConformancePackNames: [String]!
  Limit: Int
  NextToken: String
}

type AwsConfigServiceGetDiscoveredResourceCountsOutput {
  totalDiscoveredResources: JSON
  resourceCounts: [AwsConfigServiceGetDiscoveredResourceCountsOutputResourceCounts]
  nextToken: String
}

type AwsConfigServiceGetDiscoveredResourceCountsOutputResourceCounts {
  resourceType: String
  count: JSON
}

input AwsConfigServiceGetDiscoveredResourceCountsInput {
  resourceTypes: [String]
  limit: Int
  nextToken: String
}

type AwsConfigServiceGetOrganizationConfigRuleDetailedStatusOutput {
  OrganizationConfigRuleDetailedStatus: [AwsConfigServiceGetOrganizationConfigRuleDetailedStatusOutputOrganizationConfigRuleDetailedStatus]
  NextToken: String
}

type AwsConfigServiceGetOrganizationConfigRuleDetailedStatusOutputOrganizationConfigRuleDetailedStatus {
  AccountId: String!
  ConfigRuleName: String!
  MemberAccountRuleStatus: String!
  ErrorCode: String
  ErrorMessage: String
  LastUpdateTime: Date
}

input AwsConfigServiceGetOrganizationConfigRuleDetailedStatusInput {
  OrganizationConfigRuleName: String!
  Filters: AwsConfigServiceGetOrganizationConfigRuleDetailedStatusFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetOrganizationConfigRuleDetailedStatusFiltersInput {
  AccountId: String
  MemberAccountRuleStatus: String
}

type AwsConfigServiceGetOrganizationConformancePackDetailedStatusOutput {
  OrganizationConformancePackDetailedStatuses: [AwsConfigServiceGetOrganizationConformancePackDetailedStatusOutputOrganizationConformancePackDetailedStatuses]
  NextToken: String
}

type AwsConfigServiceGetOrganizationConformancePackDetailedStatusOutputOrganizationConformancePackDetailedStatuses {
  AccountId: String!
  ConformancePackName: String!
  Status: String!
  ErrorCode: String
  ErrorMessage: String
  LastUpdateTime: Date
}

input AwsConfigServiceGetOrganizationConformancePackDetailedStatusInput {
  OrganizationConformancePackName: String!
  Filters: AwsConfigServiceGetOrganizationConformancePackDetailedStatusFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceGetOrganizationConformancePackDetailedStatusFiltersInput {
  AccountId: String
  Status: String
}

type AwsConfigServiceGetResourceConfigHistoryOutput {
  configurationItems: [AwsConfigServiceS88]
  nextToken: String
}

input AwsConfigServiceGetResourceConfigHistoryInput {
  resourceType: String!
  resourceId: String!
  laterTime: Date
  earlierTime: Date
  chronologicalOrder: String
  limit: Int
  nextToken: String
}

type AwsConfigServiceGetStoredQueryOutput {
  StoredQuery: AwsConfigServiceS9v
}

type AwsConfigServiceS9v {
  QueryId: String
  QueryArn: String
  QueryName: String!
  Description: String
  Expression: String
}

input AwsConfigServiceGetStoredQueryInput {
  QueryName: String!
}

type AwsConfigServiceListAggregateDiscoveredResourcesOutput {
  ResourceIdentifiers: [AwsConfigServiceS4]
  NextToken: String
}

input AwsConfigServiceListAggregateDiscoveredResourcesInput {
  ConfigurationAggregatorName: String!
  ResourceType: String!
  Filters: AwsConfigServiceListAggregateDiscoveredResourcesFiltersInput
  Limit: Int
  NextToken: String
}

input AwsConfigServiceListAggregateDiscoveredResourcesFiltersInput {
  AccountId: String
  ResourceId: String
  ResourceName: String
  Region: String
}

type AwsConfigServiceListDiscoveredResourcesOutput {
  resourceIdentifiers: [AwsConfigServiceListDiscoveredResourcesOutputResourceIdentifiers]
  nextToken: String
}

type AwsConfigServiceListDiscoveredResourcesOutputResourceIdentifiers {
  resourceType: String
  resourceId: String
  resourceName: String
  resourceDeletionTime: Date
}

input AwsConfigServiceListDiscoveredResourcesInput {
  resourceType: String!
  resourceIds: [String]
  resourceName: String
  limit: Int
  includeDeletedResources: Boolean
  nextToken: String
}

type AwsConfigServiceListStoredQueriesOutput {
  StoredQueryMetadata: [AwsConfigServiceListStoredQueriesOutputStoredQueryMetadata]
  NextToken: String
}

type AwsConfigServiceListStoredQueriesOutputStoredQueryMetadata {
  QueryId: String!
  QueryArn: String!
  QueryName: String!
  Description: String
}

input AwsConfigServiceListStoredQueriesInput {
  NextToken: String
  MaxResults: Int
}

type AwsConfigServiceListTagsForResourceOutput {
  Tags: [AwsConfigServiceSai]
  NextToken: String
}

type AwsConfigServiceSai {
  Key: String
  Value: String
}

input AwsConfigServiceListTagsForResourceInput {
  ResourceArn: String!
  Limit: Int
  NextToken: String
}

type AwsConfigServicePutAggregationAuthorizationOutput {
  AggregationAuthorization: AwsConfigServiceS2i
}

input AwsConfigServicePutAggregationAuthorizationInput {
  AuthorizedAccountId: String!
  AuthorizedAwsRegion: String!
  Tags: [AwsConfigServiceSaiInput]
}

input AwsConfigServiceSaiInput {
  Key: String
  Value: String
}

input AwsConfigServicePutConfigRuleInput {
  ConfigRule: AwsConfigServiceS33Input!
  Tags: [AwsConfigServiceSaiInput]
}

input AwsConfigServiceS33Input {
  ConfigRuleName: String
  ConfigRuleArn: String
  ConfigRuleId: String
  Description: String
  Scope: AwsConfigServiceS33ScopeInput
  Source: AwsConfigServiceS33SourceInput!
  InputParameters: String
  MaximumExecutionFrequency: String
  ConfigRuleState: String
  CreatedBy: String
}

input AwsConfigServiceS33ScopeInput {
  ComplianceResourceTypes: [String]
  TagKey: String
  TagValue: String
  ComplianceResourceId: String
}

input AwsConfigServiceS33SourceInput {
  Owner: String!
  SourceIdentifier: String!
  SourceDetails: [AwsConfigServiceS33SourceSourceDetailsInput]
}

input AwsConfigServiceS33SourceSourceDetailsInput {
  EventSource: String
  MessageType: String
  MaximumExecutionFrequency: String
}

type AwsConfigServicePutConfigurationAggregatorOutput {
  ConfigurationAggregator: AwsConfigServiceS3r
}

input AwsConfigServicePutConfigurationAggregatorInput {
  ConfigurationAggregatorName: String!
  AccountAggregationSources: [AwsConfigServiceS3tInput]
  OrganizationAggregationSource: AwsConfigServiceS3xInput
  Tags: [AwsConfigServiceSaiInput]
}

input AwsConfigServiceS3tInput {
  AccountIds: [String]!
  AllAwsRegions: Boolean
  AwsRegions: [String]
}

input AwsConfigServiceS3xInput {
  RoleArn: String!
  AwsRegions: [String]
  AllAwsRegions: Boolean
}

input AwsConfigServicePutConfigurationRecorderInput {
  ConfigurationRecorder: AwsConfigServiceS47Input!
}

input AwsConfigServiceS47Input {
  name: String
  roleARN: String
  recordingGroup: AwsConfigServiceS47RecordingGroupInput
}

input AwsConfigServiceS47RecordingGroupInput {
  allSupported: Boolean
  includeGlobalResourceTypes: Boolean
  resourceTypes: [String]
}

type AwsConfigServicePutConformancePackOutput {
  ConformancePackArn: String
}

input AwsConfigServicePutConformancePackInput {
  ConformancePackName: String!
  TemplateS3Uri: String
  TemplateBody: String
  DeliveryS3Bucket: String
  DeliveryS3KeyPrefix: String
  ConformancePackInputParameters: [AwsConfigServiceS51Input]
}

input AwsConfigServiceS51Input {
  ParameterName: String!
  ParameterValue: String!
}

input AwsConfigServicePutDeliveryChannelInput {
  DeliveryChannel: AwsConfigServiceS5gInput!
}

input AwsConfigServiceS5gInput {
  name: String
  s3BucketName: String
  s3KeyPrefix: String
  s3KmsKeyArn: String
  snsTopicARN: String
  configSnapshotDeliveryProperties: AwsConfigServiceS5gConfigSnapshotDeliveryPropertiesInput
}

input AwsConfigServiceS5gConfigSnapshotDeliveryPropertiesInput {
  deliveryFrequency: String
}

type AwsConfigServicePutEvaluationsOutput {
  FailedEvaluations: [AwsConfigServiceSay]
}

type AwsConfigServiceSay {
  ComplianceResourceType: String!
  ComplianceResourceId: String!
  ComplianceType: String!
  Annotation: String
  OrderingTimestamp: Date!
}

input AwsConfigServicePutEvaluationsInput {
  Evaluations: [AwsConfigServiceSayInput]
  ResultToken: String!
  TestMode: Boolean
}

input AwsConfigServiceSayInput {
  ComplianceResourceType: String!
  ComplianceResourceId: String!
  ComplianceType: String!
  Annotation: String
  OrderingTimestamp: Date!
}

input AwsConfigServicePutExternalEvaluationInput {
  ConfigRuleName: String!
  ExternalEvaluation: AwsConfigServicePutExternalEvaluationExternalEvaluationInput!
}

input AwsConfigServicePutExternalEvaluationExternalEvaluationInput {
  ComplianceResourceType: String!
  ComplianceResourceId: String!
  ComplianceType: String!
  Annotation: String
  OrderingTimestamp: Date!
}

type AwsConfigServicePutOrganizationConfigRuleOutput {
  OrganizationConfigRuleArn: String
}

input AwsConfigServicePutOrganizationConfigRuleInput {
  OrganizationConfigRuleName: String!
  OrganizationManagedRuleMetadata: AwsConfigServiceS5tInput
  OrganizationCustomRuleMetadata: AwsConfigServiceS5yInput
  ExcludedAccounts: [String]
}

input AwsConfigServiceS5tInput {
  Description: String
  RuleIdentifier: String!
  InputParameters: String
  MaximumExecutionFrequency: String
  ResourceTypesScope: [String]
  ResourceIdScope: String
  TagKeyScope: String
  TagValueScope: String
}

input AwsConfigServiceS5yInput {
  Description: String
  LambdaFunctionArn: String!
  OrganizationConfigRuleTriggerTypes: [String]!
  InputParameters: String
  MaximumExecutionFrequency: String
  ResourceTypesScope: [String]
  ResourceIdScope: String
  TagKeyScope: String
  TagValueScope: String
}

type AwsConfigServicePutOrganizationConformancePackOutput {
  OrganizationConformancePackArn: String
}

input AwsConfigServicePutOrganizationConformancePackInput {
  OrganizationConformancePackName: String!
  TemplateS3Uri: String
  TemplateBody: String
  DeliveryS3Bucket: String
  DeliveryS3KeyPrefix: String
  ConformancePackInputParameters: [AwsConfigServiceS51Input]
  ExcludedAccounts: [String]
}

type AwsConfigServicePutRemediationConfigurationsOutput {
  FailedBatches: [AwsConfigServicePutRemediationConfigurationsOutputFailedBatches]
}

type AwsConfigServicePutRemediationConfigurationsOutputFailedBatches {
  FailureMessage: String
  FailedItems: [AwsConfigServiceS6j]
}

input AwsConfigServicePutRemediationConfigurationsInput {
  RemediationConfigurations: [AwsConfigServiceS6jInput]!
}

input AwsConfigServiceS6jInput {
  ConfigRuleName: String!
  TargetType: String!
  TargetId: String!
  TargetVersion: String
  Parameters: JSON
  ResourceType: String
  Automatic: Boolean
  ExecutionControls: AwsConfigServiceS6jExecutionControlsInput
  MaximumAutomaticAttempts: Int
  RetryAttemptSeconds: JSON
  Arn: String
  CreatedByService: String
}

input AwsConfigServiceS6jExecutionControlsInput {
  SsmControls: AwsConfigServiceS6jExecutionControlsSsmControlsInput
}

input AwsConfigServiceS6jExecutionControlsSsmControlsInput {
  ConcurrentExecutionRatePercentage: Int
  ErrorPercentage: Int
}

type AwsConfigServicePutRemediationExceptionsOutput {
  FailedBatches: [AwsConfigServicePutRemediationExceptionsOutputFailedBatches]
}

type AwsConfigServicePutRemediationExceptionsOutputFailedBatches {
  FailureMessage: String
  FailedItems: [AwsConfigServiceS6z]
}

input AwsConfigServicePutRemediationExceptionsInput {
  ConfigRuleName: String!
  ResourceKeys: [AwsConfigServiceS1fInput]!
  Message: String
  ExpirationTime: Date
}

input AwsConfigServicePutResourceConfigInput {
  ResourceType: String!
  SchemaVersionId: String!
  ResourceId: String!
  ResourceName: String
  Configuration: String!
  Tags: JSON
}

type AwsConfigServicePutRetentionConfigurationOutput {
  RetentionConfiguration: AwsConfigServiceS7d
}

input AwsConfigServicePutRetentionConfigurationInput {
  RetentionPeriodInDays: Int!
}

type AwsConfigServicePutStoredQueryOutput {
  QueryArn: String
}

input AwsConfigServicePutStoredQueryInput {
  StoredQuery: AwsConfigServiceS9vInput!
  Tags: [AwsConfigServiceSaiInput]
}

input AwsConfigServiceS9vInput {
  QueryId: String
  QueryArn: String
  QueryName: String!
  Description: String
  Expression: String
}

type AwsConfigServiceSelectAggregateResourceConfigOutput {
  Results: [String]
  QueryInfo: AwsConfigServiceSbr
  NextToken: String
}

type AwsConfigServiceSbr {
  SelectFields: [AwsConfigServiceSbrSelectFields]
}

type AwsConfigServiceSbrSelectFields {
  Name: String
}

input AwsConfigServiceSelectAggregateResourceConfigInput {
  Expression: String!
  ConfigurationAggregatorName: String!
  Limit: Int
  MaxResults: Int
  NextToken: String
}

type AwsConfigServiceSelectResourceConfigOutput {
  Results: [String]
  QueryInfo: AwsConfigServiceSbr
  NextToken: String
}

input AwsConfigServiceSelectResourceConfigInput {
  Expression: String!
  Limit: Int
  NextToken: String
}

input AwsConfigServiceStartConfigRulesEvaluationInput {
  ConfigRuleNames: [String]
}

input AwsConfigServiceStartConfigurationRecorderInput {
  ConfigurationRecorderName: String!
}

type AwsConfigServiceStartRemediationExecutionOutput {
  FailureMessage: String
  FailedItems: [AwsConfigServiceSr]
}

input AwsConfigServiceStartRemediationExecutionInput {
  ConfigRuleName: String!
  ResourceKeys: [AwsConfigServiceSrInput]!
}

input AwsConfigServiceStopConfigurationRecorderInput {
  ConfigurationRecorderName: String!
}

input AwsConfigServiceTagResourceInput {
  ResourceArn: String!
  Tags: [AwsConfigServiceSaiInput]!
}

input AwsConfigServiceUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""Amazon Connect Service (2017-08-08)"""
type AwsConnect {
  associateApprovedOrigin(input: AwsConnectAssociateApprovedOriginInput!, config: AwsConfig): JSON
  associateBot(input: AwsConnectAssociateBotInput!, config: AwsConfig): JSON
  associateInstanceStorageConfig(input: AwsConnectAssociateInstanceStorageConfigInput!, config: AwsConfig): AwsConnectAssociateInstanceStorageConfigOutput
  associateLambdaFunction(input: AwsConnectAssociateLambdaFunctionInput!, config: AwsConfig): JSON
  associateLexBot(input: AwsConnectAssociateLexBotInput!, config: AwsConfig): JSON
  associateQueueQuickConnects(input: AwsConnectAssociateQueueQuickConnectsInput!, config: AwsConfig): JSON
  associateRoutingProfileQueues(input: AwsConnectAssociateRoutingProfileQueuesInput!, config: AwsConfig): JSON
  associateSecurityKey(input: AwsConnectAssociateSecurityKeyInput!, config: AwsConfig): AwsConnectAssociateSecurityKeyOutput
  createContactFlow(input: AwsConnectCreateContactFlowInput!, config: AwsConfig): AwsConnectCreateContactFlowOutput
  createInstance(input: AwsConnectCreateInstanceInput!, config: AwsConfig): AwsConnectCreateInstanceOutput
  createIntegrationAssociation(input: AwsConnectCreateIntegrationAssociationInput!, config: AwsConfig): AwsConnectCreateIntegrationAssociationOutput
  createQueue(input: AwsConnectCreateQueueInput!, config: AwsConfig): AwsConnectCreateQueueOutput
  createQuickConnect(input: AwsConnectCreateQuickConnectInput!, config: AwsConfig): AwsConnectCreateQuickConnectOutput
  createRoutingProfile(input: AwsConnectCreateRoutingProfileInput!, config: AwsConfig): AwsConnectCreateRoutingProfileOutput
  createUseCase(input: AwsConnectCreateUseCaseInput!, config: AwsConfig): AwsConnectCreateUseCaseOutput
  createUser(input: AwsConnectCreateUserInput!, config: AwsConfig): AwsConnectCreateUserOutput
  createUserHierarchyGroup(input: AwsConnectCreateUserHierarchyGroupInput!, config: AwsConfig): AwsConnectCreateUserHierarchyGroupOutput
  deleteInstance(input: AwsConnectDeleteInstanceInput!, config: AwsConfig): JSON
  deleteIntegrationAssociation(input: AwsConnectDeleteIntegrationAssociationInput!, config: AwsConfig): JSON
  deleteQuickConnect(input: AwsConnectDeleteQuickConnectInput!, config: AwsConfig): JSON
  deleteUseCase(input: AwsConnectDeleteUseCaseInput!, config: AwsConfig): JSON
  deleteUser(input: AwsConnectDeleteUserInput!, config: AwsConfig): JSON
  deleteUserHierarchyGroup(input: AwsConnectDeleteUserHierarchyGroupInput!, config: AwsConfig): JSON
  describeContactFlow(input: AwsConnectDescribeContactFlowInput!, config: AwsConfig): AwsConnectDescribeContactFlowOutput
  describeHoursOfOperation(input: AwsConnectDescribeHoursOfOperationInput!, config: AwsConfig): AwsConnectDescribeHoursOfOperationOutput
  describeInstance(input: AwsConnectDescribeInstanceInput!, config: AwsConfig): AwsConnectDescribeInstanceOutput
  describeInstanceAttribute(input: AwsConnectDescribeInstanceAttributeInput!, config: AwsConfig): AwsConnectDescribeInstanceAttributeOutput
  describeInstanceStorageConfig(input: AwsConnectDescribeInstanceStorageConfigInput!, config: AwsConfig): AwsConnectDescribeInstanceStorageConfigOutput
  describeQueue(input: AwsConnectDescribeQueueInput!, config: AwsConfig): AwsConnectDescribeQueueOutput
  describeQuickConnect(input: AwsConnectDescribeQuickConnectInput!, config: AwsConfig): AwsConnectDescribeQuickConnectOutput
  describeRoutingProfile(input: AwsConnectDescribeRoutingProfileInput!, config: AwsConfig): AwsConnectDescribeRoutingProfileOutput
  describeUser(input: AwsConnectDescribeUserInput!, config: AwsConfig): AwsConnectDescribeUserOutput
  describeUserHierarchyGroup(input: AwsConnectDescribeUserHierarchyGroupInput!, config: AwsConfig): AwsConnectDescribeUserHierarchyGroupOutput
  describeUserHierarchyStructure(input: AwsConnectDescribeUserHierarchyStructureInput!, config: AwsConfig): AwsConnectDescribeUserHierarchyStructureOutput
  disassociateApprovedOrigin(input: AwsConnectDisassociateApprovedOriginInput!, config: AwsConfig): JSON
  disassociateBot(input: AwsConnectDisassociateBotInput!, config: AwsConfig): JSON
  disassociateInstanceStorageConfig(input: AwsConnectDisassociateInstanceStorageConfigInput!, config: AwsConfig): JSON
  disassociateLambdaFunction(input: AwsConnectDisassociateLambdaFunctionInput!, config: AwsConfig): JSON
  disassociateLexBot(input: AwsConnectDisassociateLexBotInput!, config: AwsConfig): JSON
  disassociateQueueQuickConnects(input: AwsConnectDisassociateQueueQuickConnectsInput!, config: AwsConfig): JSON
  disassociateRoutingProfileQueues(input: AwsConnectDisassociateRoutingProfileQueuesInput!, config: AwsConfig): JSON
  disassociateSecurityKey(input: AwsConnectDisassociateSecurityKeyInput!, config: AwsConfig): JSON
  getContactAttributes(input: AwsConnectGetContactAttributesInput!, config: AwsConfig): AwsConnectGetContactAttributesOutput
  getCurrentMetricData(input: AwsConnectGetCurrentMetricDataInput!, config: AwsConfig): AwsConnectGetCurrentMetricDataOutput
  getFederationToken(input: AwsConnectGetFederationTokenInput!, config: AwsConfig): AwsConnectGetFederationTokenOutput
  getMetricData(input: AwsConnectGetMetricDataInput!, config: AwsConfig): AwsConnectGetMetricDataOutput
  listApprovedOrigins(input: AwsConnectListApprovedOriginsInput!, config: AwsConfig): AwsConnectListApprovedOriginsOutput
  listBots(input: AwsConnectListBotsInput!, config: AwsConfig): AwsConnectListBotsOutput
  listContactFlows(input: AwsConnectListContactFlowsInput!, config: AwsConfig): AwsConnectListContactFlowsOutput
  listHoursOfOperations(input: AwsConnectListHoursOfOperationsInput!, config: AwsConfig): AwsConnectListHoursOfOperationsOutput
  listInstanceAttributes(input: AwsConnectListInstanceAttributesInput!, config: AwsConfig): AwsConnectListInstanceAttributesOutput
  listInstanceStorageConfigs(input: AwsConnectListInstanceStorageConfigsInput!, config: AwsConfig): AwsConnectListInstanceStorageConfigsOutput
  listInstances(input: AwsConnectListInstancesInput, config: AwsConfig): AwsConnectListInstancesOutput
  listIntegrationAssociations(input: AwsConnectListIntegrationAssociationsInput!, config: AwsConfig): AwsConnectListIntegrationAssociationsOutput
  listLambdaFunctions(input: AwsConnectListLambdaFunctionsInput!, config: AwsConfig): AwsConnectListLambdaFunctionsOutput
  listLexBots(input: AwsConnectListLexBotsInput!, config: AwsConfig): AwsConnectListLexBotsOutput
  listPhoneNumbers(input: AwsConnectListPhoneNumbersInput!, config: AwsConfig): AwsConnectListPhoneNumbersOutput
  listPrompts(input: AwsConnectListPromptsInput!, config: AwsConfig): AwsConnectListPromptsOutput
  listQueueQuickConnects(input: AwsConnectListQueueQuickConnectsInput!, config: AwsConfig): AwsConnectListQueueQuickConnectsOutput
  listQueues(input: AwsConnectListQueuesInput!, config: AwsConfig): AwsConnectListQueuesOutput
  listQuickConnects(input: AwsConnectListQuickConnectsInput!, config: AwsConfig): AwsConnectListQuickConnectsOutput
  listRoutingProfileQueues(input: AwsConnectListRoutingProfileQueuesInput!, config: AwsConfig): AwsConnectListRoutingProfileQueuesOutput
  listRoutingProfiles(input: AwsConnectListRoutingProfilesInput!, config: AwsConfig): AwsConnectListRoutingProfilesOutput
  listSecurityKeys(input: AwsConnectListSecurityKeysInput!, config: AwsConfig): AwsConnectListSecurityKeysOutput
  listSecurityProfiles(input: AwsConnectListSecurityProfilesInput!, config: AwsConfig): AwsConnectListSecurityProfilesOutput
  listTagsForResource(input: AwsConnectListTagsForResourceInput!, config: AwsConfig): AwsConnectListTagsForResourceOutput
  listUseCases(input: AwsConnectListUseCasesInput!, config: AwsConfig): AwsConnectListUseCasesOutput
  listUserHierarchyGroups(input: AwsConnectListUserHierarchyGroupsInput!, config: AwsConfig): AwsConnectListUserHierarchyGroupsOutput
  listUsers(input: AwsConnectListUsersInput!, config: AwsConfig): AwsConnectListUsersOutput
  resumeContactRecording(input: AwsConnectResumeContactRecordingInput!, config: AwsConfig): JSON
  startChatContact(input: AwsConnectStartChatContactInput!, config: AwsConfig): AwsConnectStartChatContactOutput
  startContactRecording(input: AwsConnectStartContactRecordingInput!, config: AwsConfig): JSON
  startOutboundVoiceContact(input: AwsConnectStartOutboundVoiceContactInput!, config: AwsConfig): AwsConnectStartOutboundVoiceContactOutput
  startTaskContact(input: AwsConnectStartTaskContactInput!, config: AwsConfig): AwsConnectStartTaskContactOutput
  stopContact(input: AwsConnectStopContactInput!, config: AwsConfig): JSON
  stopContactRecording(input: AwsConnectStopContactRecordingInput!, config: AwsConfig): JSON
  suspendContactRecording(input: AwsConnectSuspendContactRecordingInput!, config: AwsConfig): JSON
  tagResource(input: AwsConnectTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsConnectUntagResourceInput!, config: AwsConfig): JSON
  updateContactAttributes(input: AwsConnectUpdateContactAttributesInput!, config: AwsConfig): JSON
  updateContactFlowContent(input: AwsConnectUpdateContactFlowContentInput!, config: AwsConfig): JSON
  updateContactFlowName(input: AwsConnectUpdateContactFlowNameInput!, config: AwsConfig): JSON
  updateInstanceAttribute(input: AwsConnectUpdateInstanceAttributeInput!, config: AwsConfig): JSON
  updateInstanceStorageConfig(input: AwsConnectUpdateInstanceStorageConfigInput!, config: AwsConfig): JSON
  updateQueueHoursOfOperation(input: AwsConnectUpdateQueueHoursOfOperationInput!, config: AwsConfig): JSON
  updateQueueMaxContacts(input: AwsConnectUpdateQueueMaxContactsInput!, config: AwsConfig): JSON
  updateQueueName(input: AwsConnectUpdateQueueNameInput!, config: AwsConfig): JSON
  updateQueueOutboundCallerConfig(input: AwsConnectUpdateQueueOutboundCallerConfigInput!, config: AwsConfig): JSON
  updateQueueStatus(input: AwsConnectUpdateQueueStatusInput!, config: AwsConfig): JSON
  updateQuickConnectConfig(input: AwsConnectUpdateQuickConnectConfigInput!, config: AwsConfig): JSON
  updateQuickConnectName(input: AwsConnectUpdateQuickConnectNameInput!, config: AwsConfig): JSON
  updateRoutingProfileConcurrency(input: AwsConnectUpdateRoutingProfileConcurrencyInput!, config: AwsConfig): JSON
  updateRoutingProfileDefaultOutboundQueue(input: AwsConnectUpdateRoutingProfileDefaultOutboundQueueInput!, config: AwsConfig): JSON
  updateRoutingProfileName(input: AwsConnectUpdateRoutingProfileNameInput!, config: AwsConfig): JSON
  updateRoutingProfileQueues(input: AwsConnectUpdateRoutingProfileQueuesInput!, config: AwsConfig): JSON
  updateUserHierarchy(input: AwsConnectUpdateUserHierarchyInput!, config: AwsConfig): JSON
  updateUserHierarchyGroupName(input: AwsConnectUpdateUserHierarchyGroupNameInput!, config: AwsConfig): JSON
  updateUserHierarchyStructure(input: AwsConnectUpdateUserHierarchyStructureInput!, config: AwsConfig): JSON
  updateUserIdentityInfo(input: AwsConnectUpdateUserIdentityInfoInput!, config: AwsConfig): JSON
  updateUserPhoneConfig(input: AwsConnectUpdateUserPhoneConfigInput!, config: AwsConfig): JSON
  updateUserRoutingProfile(input: AwsConnectUpdateUserRoutingProfileInput!, config: AwsConfig): JSON
  updateUserSecurityProfiles(input: AwsConnectUpdateUserSecurityProfilesInput!, config: AwsConfig): JSON
}

input AwsConnectAssociateApprovedOriginInput {
  InstanceId: String!
  Origin: String!
}

input AwsConnectAssociateBotInput {
  InstanceId: String!
  LexBot: AwsConnectS5Input
  LexV2Bot: AwsConnectS8Input
}

input AwsConnectS5Input {
  Name: String
  LexRegion: String
}

input AwsConnectS8Input {
  AliasArn: String
}

type AwsConnectAssociateInstanceStorageConfigOutput {
  AssociationId: String
}

input AwsConnectAssociateInstanceStorageConfigInput {
  InstanceId: String!
  ResourceType: String!
  StorageConfig: AwsConnectScInput!
}

input AwsConnectScInput {
  AssociationId: String
  StorageType: String!
  S3Config: AwsConnectScS3ConfigInput
  KinesisVideoStreamConfig: AwsConnectScKinesisVideoStreamConfigInput
  KinesisStreamConfig: AwsConnectScKinesisStreamConfigInput
  KinesisFirehoseConfig: AwsConnectScKinesisFirehoseConfigInput
}

input AwsConnectScS3ConfigInput {
  BucketName: String!
  BucketPrefix: String!
  EncryptionConfig: AwsConnectSiInput
}

input AwsConnectSiInput {
  EncryptionType: String!
  KeyId: String!
}

input AwsConnectScKinesisVideoStreamConfigInput {
  Prefix: String!
  RetentionPeriodHours: Int!
  EncryptionConfig: AwsConnectSiInput!
}

input AwsConnectScKinesisStreamConfigInput {
  StreamArn: String!
}

input AwsConnectScKinesisFirehoseConfigInput {
  FirehoseArn: String!
}

input AwsConnectAssociateLambdaFunctionInput {
  InstanceId: String!
  FunctionArn: String!
}

input AwsConnectAssociateLexBotInput {
  InstanceId: String!
  LexBot: AwsConnectS5Input!
}

input AwsConnectAssociateQueueQuickConnectsInput {
  InstanceId: String!
  QueueId: String!
  QuickConnectIds: [String]!
}

input AwsConnectAssociateRoutingProfileQueuesInput {
  InstanceId: String!
  RoutingProfileId: String!
  QueueConfigs: [AwsConnectS10Input]!
}

input AwsConnectS10Input {
  QueueReference: AwsConnectS12Input!
  Priority: Int!
  Delay: Int!
}

input AwsConnectS12Input {
  QueueId: String!
  Channel: String!
}

type AwsConnectAssociateSecurityKeyOutput {
  AssociationId: String
}

input AwsConnectAssociateSecurityKeyInput {
  InstanceId: String!
  Key: String!
}

type AwsConnectCreateContactFlowOutput {
  ContactFlowId: String
  ContactFlowArn: String
}

input AwsConnectCreateContactFlowInput {
  InstanceId: String!
  Name: String!
  Type: String!
  Description: String
  Content: String!
  Tags: JSON
}

type AwsConnectCreateInstanceOutput {
  Id: String
  Arn: String
}

input AwsConnectCreateInstanceInput {
  ClientToken: String
  IdentityManagementType: String!
  InstanceAlias: String
  DirectoryId: String
  InboundCallsEnabled: Boolean!
  OutboundCallsEnabled: Boolean!
}

type AwsConnectCreateIntegrationAssociationOutput {
  IntegrationAssociationId: String
  IntegrationAssociationArn: String
}

input AwsConnectCreateIntegrationAssociationInput {
  InstanceId: String!
  IntegrationType: String!
  IntegrationArn: String!
  SourceApplicationUrl: String!
  SourceApplicationName: String!
  SourceType: String!
  Tags: JSON
}

type AwsConnectCreateQueueOutput {
  QueueArn: String
  QueueId: String
}

input AwsConnectCreateQueueInput {
  InstanceId: String!
  Name: String!
  Description: String
  OutboundCallerConfig: AwsConnectS21Input
  HoursOfOperationId: String!
  MaxContacts: Int
  QuickConnectIds: [String]
  Tags: JSON
}

input AwsConnectS21Input {
  OutboundCallerIdName: String
  OutboundCallerIdNumberId: String
  OutboundFlowId: String
}

type AwsConnectCreateQuickConnectOutput {
  QuickConnectARN: String
  QuickConnectId: String
}

input AwsConnectCreateQuickConnectInput {
  InstanceId: String!
  Name: String!
  Description: String
  QuickConnectConfig: AwsConnectS2aInput!
  Tags: JSON
}

input AwsConnectS2aInput {
  QuickConnectType: String!
  UserConfig: AwsConnectS2aUserConfigInput
  QueueConfig: AwsConnectS2aQueueConfigInput
  PhoneConfig: AwsConnectS2aPhoneConfigInput
}

input AwsConnectS2aUserConfigInput {
  UserId: String!
  ContactFlowId: String!
}

input AwsConnectS2aQueueConfigInput {
  QueueId: String!
  ContactFlowId: String!
}

input AwsConnectS2aPhoneConfigInput {
  PhoneNumber: String!
}

type AwsConnectCreateRoutingProfileOutput {
  RoutingProfileArn: String
  RoutingProfileId: String
}

input AwsConnectCreateRoutingProfileInput {
  InstanceId: String!
  Name: String!
  Description: String!
  DefaultOutboundQueueId: String!
  QueueConfigs: [AwsConnectS10Input]
  MediaConcurrencies: [AwsConnectS2lInput]!
  Tags: JSON
}

input AwsConnectS2lInput {
  Channel: String!
  Concurrency: Int!
}

type AwsConnectCreateUseCaseOutput {
  UseCaseId: String
  UseCaseArn: String
}

input AwsConnectCreateUseCaseInput {
  InstanceId: String!
  IntegrationAssociationId: String!
  UseCaseType: String!
  Tags: JSON
}

type AwsConnectCreateUserOutput {
  UserId: String
  UserArn: String
}

input AwsConnectCreateUserInput {
  Username: String!
  Password: String
  IdentityInfo: AwsConnectS2wInput
  PhoneConfig: AwsConnectS30Input!
  DirectoryUserId: String
  SecurityProfileIds: [String]!
  RoutingProfileId: String!
  HierarchyGroupId: String
  InstanceId: String!
  Tags: JSON
}

input AwsConnectS2wInput {
  FirstName: String
  LastName: String
  Email: String
}

input AwsConnectS30Input {
  PhoneType: String!
  AutoAccept: Boolean
  AfterContactWorkTimeLimit: Int
  DeskPhoneNumber: String
}

type AwsConnectCreateUserHierarchyGroupOutput {
  HierarchyGroupId: String
  HierarchyGroupArn: String
}

input AwsConnectCreateUserHierarchyGroupInput {
  Name: String!
  ParentGroupId: String
  InstanceId: String!
}

input AwsConnectDeleteInstanceInput {
  InstanceId: String!
}

input AwsConnectDeleteIntegrationAssociationInput {
  InstanceId: String!
  IntegrationAssociationId: String!
}

input AwsConnectDeleteQuickConnectInput {
  InstanceId: String!
  QuickConnectId: String!
}

input AwsConnectDeleteUseCaseInput {
  InstanceId: String!
  IntegrationAssociationId: String!
  UseCaseId: String!
}

input AwsConnectDeleteUserInput {
  InstanceId: String!
  UserId: String!
}

input AwsConnectDeleteUserHierarchyGroupInput {
  HierarchyGroupId: String!
  InstanceId: String!
}

type AwsConnectDescribeContactFlowOutput {
  ContactFlow: AwsConnectDescribeContactFlowOutputContactFlow
}

type AwsConnectDescribeContactFlowOutputContactFlow {
  Arn: String
  Id: String
  Name: String
  Type: String
  Description: String
  Content: String
  Tags: JSON
}

input AwsConnectDescribeContactFlowInput {
  InstanceId: String!
  ContactFlowId: String!
}

type AwsConnectDescribeHoursOfOperationOutput {
  HoursOfOperation: AwsConnectDescribeHoursOfOperationOutputHoursOfOperation
}

type AwsConnectDescribeHoursOfOperationOutputHoursOfOperation {
  HoursOfOperationId: String
  HoursOfOperationArn: String
  Name: String
  Description: String
  TimeZone: String
  Config: [AwsConnectDescribeHoursOfOperationOutputHoursOfOperationConfig]
  Tags: JSON
}

type AwsConnectDescribeHoursOfOperationOutputHoursOfOperationConfig {
  Day: String
  StartTime: AwsConnectS3t
  EndTime: AwsConnectS3t
}

type AwsConnectS3t {
  Hours: Int
  Minutes: Int
}

input AwsConnectDescribeHoursOfOperationInput {
  InstanceId: String!
  HoursOfOperationId: String!
}

type AwsConnectDescribeInstanceOutput {
  Instance: AwsConnectDescribeInstanceOutputInstance
}

type AwsConnectDescribeInstanceOutputInstance {
  Id: String
  Arn: String
  IdentityManagementType: String
  InstanceAlias: String
  CreatedTime: Date
  ServiceRole: String
  InstanceStatus: String
  StatusReason: AwsConnectDescribeInstanceOutputInstanceStatusReason
  InboundCallsEnabled: Boolean
  OutboundCallsEnabled: Boolean
}

type AwsConnectDescribeInstanceOutputInstanceStatusReason {
  Message: String
}

input AwsConnectDescribeInstanceInput {
  InstanceId: String!
}

type AwsConnectDescribeInstanceAttributeOutput {
  Attribute: AwsConnectS46
}

type AwsConnectS46 {
  AttributeType: String
  Value: String
}

input AwsConnectDescribeInstanceAttributeInput {
  InstanceId: String!
  AttributeType: String!
}

type AwsConnectDescribeInstanceStorageConfigOutput {
  StorageConfig: AwsConnectSc
}

type AwsConnectSc {
  AssociationId: String
  StorageType: String!
  S3Config: AwsConnectScS3Config
  KinesisVideoStreamConfig: AwsConnectScKinesisVideoStreamConfig
  KinesisStreamConfig: AwsConnectScKinesisStreamConfig
  KinesisFirehoseConfig: AwsConnectScKinesisFirehoseConfig
}

type AwsConnectScS3Config {
  BucketName: String!
  BucketPrefix: String!
  EncryptionConfig: AwsConnectSi
}

type AwsConnectSi {
  EncryptionType: String!
  KeyId: String!
}

type AwsConnectScKinesisVideoStreamConfig {
  Prefix: String!
  RetentionPeriodHours: Int!
  EncryptionConfig: AwsConnectSi!
}

type AwsConnectScKinesisStreamConfig {
  StreamArn: String!
}

type AwsConnectScKinesisFirehoseConfig {
  FirehoseArn: String!
}

input AwsConnectDescribeInstanceStorageConfigInput {
  InstanceId: String!
  AssociationId: String!
  ResourceType: String!
}

type AwsConnectDescribeQueueOutput {
  Queue: AwsConnectDescribeQueueOutputQueue
}

type AwsConnectDescribeQueueOutputQueue {
  Name: String
  QueueArn: String
  QueueId: String
  Description: String
  OutboundCallerConfig: AwsConnectS21
  HoursOfOperationId: String
  MaxContacts: Int
  Status: String
  Tags: JSON
}

type AwsConnectS21 {
  OutboundCallerIdName: String
  OutboundCallerIdNumberId: String
  OutboundFlowId: String
}

input AwsConnectDescribeQueueInput {
  InstanceId: String!
  QueueId: String!
}

type AwsConnectDescribeQuickConnectOutput {
  QuickConnect: AwsConnectDescribeQuickConnectOutputQuickConnect
}

type AwsConnectDescribeQuickConnectOutputQuickConnect {
  QuickConnectARN: String
  QuickConnectId: String
  Name: String
  Description: String
  QuickConnectConfig: AwsConnectS2a
  Tags: JSON
}

type AwsConnectS2a {
  QuickConnectType: String!
  UserConfig: AwsConnectS2aUserConfig
  QueueConfig: AwsConnectS2aQueueConfig
  PhoneConfig: AwsConnectS2aPhoneConfig
}

type AwsConnectS2aUserConfig {
  UserId: String!
  ContactFlowId: String!
}

type AwsConnectS2aQueueConfig {
  QueueId: String!
  ContactFlowId: String!
}

type AwsConnectS2aPhoneConfig {
  PhoneNumber: String!
}

input AwsConnectDescribeQuickConnectInput {
  InstanceId: String!
  QuickConnectId: String!
}

type AwsConnectDescribeRoutingProfileOutput {
  RoutingProfile: AwsConnectDescribeRoutingProfileOutputRoutingProfile
}

type AwsConnectDescribeRoutingProfileOutputRoutingProfile {
  InstanceId: String
  Name: String
  RoutingProfileArn: String
  RoutingProfileId: String
  Description: String
  MediaConcurrencies: [AwsConnectS2l]
  DefaultOutboundQueueId: String
  Tags: JSON
}

type AwsConnectS2l {
  Channel: String!
  Concurrency: Int!
}

input AwsConnectDescribeRoutingProfileInput {
  InstanceId: String!
  RoutingProfileId: String!
}

type AwsConnectDescribeUserOutput {
  User: AwsConnectDescribeUserOutputUser
}

type AwsConnectDescribeUserOutputUser {
  Id: String
  Arn: String
  Username: String
  IdentityInfo: AwsConnectS2w
  PhoneConfig: AwsConnectS30
  DirectoryUserId: String
  SecurityProfileIds: [String]
  RoutingProfileId: String
  HierarchyGroupId: String
  Tags: JSON
}

type AwsConnectS2w {
  FirstName: String
  LastName: String
  Email: String
}

type AwsConnectS30 {
  PhoneType: String!
  AutoAccept: Boolean
  AfterContactWorkTimeLimit: Int
  DeskPhoneNumber: String
}

input AwsConnectDescribeUserInput {
  UserId: String!
  InstanceId: String!
}

type AwsConnectDescribeUserHierarchyGroupOutput {
  HierarchyGroup: AwsConnectDescribeUserHierarchyGroupOutputHierarchyGroup
}

type AwsConnectDescribeUserHierarchyGroupOutputHierarchyGroup {
  Id: String
  Arn: String
  Name: String
  LevelId: String
  HierarchyPath: AwsConnectDescribeUserHierarchyGroupOutputHierarchyGroupHierarchyPath
}

type AwsConnectDescribeUserHierarchyGroupOutputHierarchyGroupHierarchyPath {
  LevelOne: AwsConnectS4s
  LevelTwo: AwsConnectS4s
  LevelThree: AwsConnectS4s
  LevelFour: AwsConnectS4s
  LevelFive: AwsConnectS4s
}

type AwsConnectS4s {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectDescribeUserHierarchyGroupInput {
  HierarchyGroupId: String!
  InstanceId: String!
}

type AwsConnectDescribeUserHierarchyStructureOutput {
  HierarchyStructure: AwsConnectDescribeUserHierarchyStructureOutputHierarchyStructure
}

type AwsConnectDescribeUserHierarchyStructureOutputHierarchyStructure {
  LevelOne: AwsConnectS4w
  LevelTwo: AwsConnectS4w
  LevelThree: AwsConnectS4w
  LevelFour: AwsConnectS4w
  LevelFive: AwsConnectS4w
}

type AwsConnectS4w {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectDescribeUserHierarchyStructureInput {
  InstanceId: String!
}

input AwsConnectDisassociateApprovedOriginInput {
  InstanceId: String!
  Origin: String!
}

input AwsConnectDisassociateBotInput {
  InstanceId: String!
  LexBot: AwsConnectS5Input
  LexV2Bot: AwsConnectS8Input
}

input AwsConnectDisassociateInstanceStorageConfigInput {
  InstanceId: String!
  AssociationId: String!
  ResourceType: String!
}

input AwsConnectDisassociateLambdaFunctionInput {
  InstanceId: String!
  FunctionArn: String!
}

input AwsConnectDisassociateLexBotInput {
  InstanceId: String!
  BotName: String!
  LexRegion: String!
}

input AwsConnectDisassociateQueueQuickConnectsInput {
  InstanceId: String!
  QueueId: String!
  QuickConnectIds: [String]!
}

input AwsConnectDisassociateRoutingProfileQueuesInput {
  InstanceId: String!
  RoutingProfileId: String!
  QueueReferences: [AwsConnectS12Input]!
}

input AwsConnectDisassociateSecurityKeyInput {
  InstanceId: String!
  AssociationId: String!
}

type AwsConnectGetContactAttributesOutput {
  Attributes: JSON
}

input AwsConnectGetContactAttributesInput {
  InstanceId: String!
  InitialContactId: String!
}

type AwsConnectGetCurrentMetricDataOutput {
  NextToken: String
  MetricResults: [AwsConnectGetCurrentMetricDataOutputMetricResults]
  DataSnapshotTime: Date
}

type AwsConnectGetCurrentMetricDataOutputMetricResults {
  Dimensions: AwsConnectS5s
  Collections: [AwsConnectGetCurrentMetricDataOutputMetricResultsCollections]
}

type AwsConnectS5s {
  Queue: AwsConnectS5sQueue
  Channel: String
}

type AwsConnectS5sQueue {
  Id: String
  Arn: String
}

type AwsConnectGetCurrentMetricDataOutputMetricResultsCollections {
  Metric: AwsConnectS5k
  Value: JSON
}

type AwsConnectS5k {
  Name: String
  Unit: String
}

input AwsConnectGetCurrentMetricDataInput {
  InstanceId: String!
  Filters: AwsConnectS5eInput!
  Groupings: [String]
  CurrentMetrics: [AwsConnectS5kInput]!
  NextToken: String
  MaxResults: Int
}

input AwsConnectS5eInput {
  Queues: [String]
  Channels: [String]
}

input AwsConnectS5kInput {
  Name: String
  Unit: String
}

type AwsConnectGetFederationTokenOutput {
  Credentials: AwsConnectGetFederationTokenOutputCredentials
}

type AwsConnectGetFederationTokenOutputCredentials {
  AccessToken: String
  AccessTokenExpiration: Date
  RefreshToken: String
  RefreshTokenExpiration: Date
}

input AwsConnectGetFederationTokenInput {
  InstanceId: String!
}

type AwsConnectGetMetricDataOutput {
  NextToken: String
  MetricResults: [AwsConnectGetMetricDataOutputMetricResults]
}

type AwsConnectGetMetricDataOutputMetricResults {
  Dimensions: AwsConnectS5s
  Collections: [AwsConnectGetMetricDataOutputMetricResultsCollections]
}

type AwsConnectGetMetricDataOutputMetricResultsCollections {
  Metric: AwsConnectS64
  Value: JSON
}

type AwsConnectS64 {
  Name: String
  Threshold: AwsConnectS64Threshold
  Statistic: String
  Unit: String
}

type AwsConnectS64Threshold {
  Comparison: String
  ThresholdValue: JSON
}

input AwsConnectGetMetricDataInput {
  InstanceId: String!
  StartTime: Date!
  EndTime: Date!
  Filters: AwsConnectS5eInput!
  Groupings: [String]
  HistoricalMetrics: [AwsConnectS64Input]!
  NextToken: String
  MaxResults: Int
}

input AwsConnectS64Input {
  Name: String
  Threshold: AwsConnectS64ThresholdInput
  Statistic: String
  Unit: String
}

input AwsConnectS64ThresholdInput {
  Comparison: String
  ThresholdValue: JSON
}

type AwsConnectListApprovedOriginsOutput {
  Origins: [String]
  NextToken: String
}

input AwsConnectListApprovedOriginsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListBotsOutput {
  LexBots: [AwsConnectListBotsOutputLexBots]
  NextToken: String
}

type AwsConnectListBotsOutputLexBots {
  LexBot: AwsConnectS5
  LexV2Bot: AwsConnectS8
}

type AwsConnectS5 {
  Name: String
  LexRegion: String
}

type AwsConnectS8 {
  AliasArn: String
}

input AwsConnectListBotsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
  LexVersion: String!
}

type AwsConnectListContactFlowsOutput {
  ContactFlowSummaryList: [AwsConnectListContactFlowsOutputContactFlowSummaryList]
  NextToken: String
}

type AwsConnectListContactFlowsOutputContactFlowSummaryList {
  Id: String
  Arn: String
  Name: String
  ContactFlowType: String
}

input AwsConnectListContactFlowsInput {
  InstanceId: String!
  ContactFlowTypes: [String]
  NextToken: String
  MaxResults: Int
}

type AwsConnectListHoursOfOperationsOutput {
  HoursOfOperationSummaryList: [AwsConnectListHoursOfOperationsOutputHoursOfOperationSummaryList]
  NextToken: String
}

type AwsConnectListHoursOfOperationsOutputHoursOfOperationSummaryList {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectListHoursOfOperationsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListInstanceAttributesOutput {
  Attributes: [AwsConnectS46]
  NextToken: String
}

input AwsConnectListInstanceAttributesInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListInstanceStorageConfigsOutput {
  StorageConfigs: [AwsConnectSc]
  NextToken: String
}

input AwsConnectListInstanceStorageConfigsInput {
  InstanceId: String!
  ResourceType: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListInstancesOutput {
  InstanceSummaryList: [AwsConnectListInstancesOutputInstanceSummaryList]
  NextToken: String
}

type AwsConnectListInstancesOutputInstanceSummaryList {
  Id: String
  Arn: String
  IdentityManagementType: String
  InstanceAlias: String
  CreatedTime: Date
  ServiceRole: String
  InstanceStatus: String
  InboundCallsEnabled: Boolean
  OutboundCallsEnabled: Boolean
}

input AwsConnectListInstancesInput {
  NextToken: String
  MaxResults: Int
}

type AwsConnectListIntegrationAssociationsOutput {
  IntegrationAssociationSummaryList: [AwsConnectListIntegrationAssociationsOutputIntegrationAssociationSummaryList]
  NextToken: String
}

type AwsConnectListIntegrationAssociationsOutputIntegrationAssociationSummaryList {
  IntegrationAssociationId: String
  IntegrationAssociationArn: String
  InstanceId: String
  IntegrationType: String
  IntegrationArn: String
  SourceApplicationUrl: String
  SourceApplicationName: String
  SourceType: String
}

input AwsConnectListIntegrationAssociationsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListLambdaFunctionsOutput {
  LambdaFunctions: [String]
  NextToken: String
}

input AwsConnectListLambdaFunctionsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListLexBotsOutput {
  LexBots: [AwsConnectS5]
  NextToken: String
}

input AwsConnectListLexBotsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListPhoneNumbersOutput {
  PhoneNumberSummaryList: [AwsConnectListPhoneNumbersOutputPhoneNumberSummaryList]
  NextToken: String
}

type AwsConnectListPhoneNumbersOutputPhoneNumberSummaryList {
  Id: String
  Arn: String
  PhoneNumber: String
  PhoneNumberType: String
  PhoneNumberCountryCode: String
}

input AwsConnectListPhoneNumbersInput {
  InstanceId: String!
  PhoneNumberTypes: [String]
  PhoneNumberCountryCodes: [String]
  NextToken: String
  MaxResults: Int
}

type AwsConnectListPromptsOutput {
  PromptSummaryList: [AwsConnectListPromptsOutputPromptSummaryList]
  NextToken: String
}

type AwsConnectListPromptsOutputPromptSummaryList {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectListPromptsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListQueueQuickConnectsOutput {
  NextToken: String
  QuickConnectSummaryList: [AwsConnectS81]
}

type AwsConnectS81 {
  Id: String
  Arn: String
  Name: String
  QuickConnectType: String
}

input AwsConnectListQueueQuickConnectsInput {
  InstanceId: String!
  QueueId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListQueuesOutput {
  QueueSummaryList: [AwsConnectListQueuesOutputQueueSummaryList]
  NextToken: String
}

type AwsConnectListQueuesOutputQueueSummaryList {
  Id: String
  Arn: String
  Name: String
  QueueType: String
}

input AwsConnectListQueuesInput {
  InstanceId: String!
  QueueTypes: [String]
  NextToken: String
  MaxResults: Int
}

type AwsConnectListQuickConnectsOutput {
  QuickConnectSummaryList: [AwsConnectS81]
  NextToken: String
}

input AwsConnectListQuickConnectsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
  QuickConnectTypes: [String]
}

type AwsConnectListRoutingProfileQueuesOutput {
  NextToken: String
  RoutingProfileQueueConfigSummaryList: [AwsConnectListRoutingProfileQueuesOutputRoutingProfileQueueConfigSummaryList]
}

type AwsConnectListRoutingProfileQueuesOutputRoutingProfileQueueConfigSummaryList {
  QueueId: String!
  QueueArn: String!
  QueueName: String!
  Priority: Int!
  Delay: Int!
  Channel: String!
}

input AwsConnectListRoutingProfileQueuesInput {
  InstanceId: String!
  RoutingProfileId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListRoutingProfilesOutput {
  RoutingProfileSummaryList: [AwsConnectListRoutingProfilesOutputRoutingProfileSummaryList]
  NextToken: String
}

type AwsConnectListRoutingProfilesOutputRoutingProfileSummaryList {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectListRoutingProfilesInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListSecurityKeysOutput {
  SecurityKeys: [AwsConnectListSecurityKeysOutputSecurityKeys]
  NextToken: String
}

type AwsConnectListSecurityKeysOutputSecurityKeys {
  AssociationId: String
  Key: String
  CreationTime: Date
}

input AwsConnectListSecurityKeysInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListSecurityProfilesOutput {
  SecurityProfileSummaryList: [AwsConnectListSecurityProfilesOutputSecurityProfileSummaryList]
  NextToken: String
}

type AwsConnectListSecurityProfilesOutputSecurityProfileSummaryList {
  Id: String
  Arn: String
  Name: String
}

input AwsConnectListSecurityProfilesInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListTagsForResourceOutput {
  tags: JSON
}

input AwsConnectListTagsForResourceInput {
  resourceArn: String!
}

type AwsConnectListUseCasesOutput {
  UseCaseSummaryList: [AwsConnectListUseCasesOutputUseCaseSummaryList]
  NextToken: String
}

type AwsConnectListUseCasesOutputUseCaseSummaryList {
  UseCaseId: String
  UseCaseArn: String
  UseCaseType: String
}

input AwsConnectListUseCasesInput {
  InstanceId: String!
  IntegrationAssociationId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListUserHierarchyGroupsOutput {
  UserHierarchyGroupSummaryList: [AwsConnectS4s]
  NextToken: String
}

input AwsConnectListUserHierarchyGroupsInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsConnectListUsersOutput {
  UserSummaryList: [AwsConnectListUsersOutputUserSummaryList]
  NextToken: String
}

type AwsConnectListUsersOutputUserSummaryList {
  Id: String
  Arn: String
  Username: String
}

input AwsConnectListUsersInput {
  InstanceId: String!
  NextToken: String
  MaxResults: Int
}

input AwsConnectResumeContactRecordingInput {
  InstanceId: String!
  ContactId: String!
  InitialContactId: String!
}

type AwsConnectStartChatContactOutput {
  ContactId: String
  ParticipantId: String
  ParticipantToken: String
}

input AwsConnectStartChatContactInput {
  InstanceId: String!
  ContactFlowId: String!
  Attributes: JSON
  ParticipantDetails: AwsConnectStartChatContactParticipantDetailsInput!
  InitialMessage: AwsConnectStartChatContactInitialMessageInput
  ClientToken: String
}

input AwsConnectStartChatContactParticipantDetailsInput {
  DisplayName: String!
}

input AwsConnectStartChatContactInitialMessageInput {
  ContentType: String!
  Content: String!
}

input AwsConnectStartContactRecordingInput {
  InstanceId: String!
  ContactId: String!
  InitialContactId: String!
  VoiceRecordingConfiguration: AwsConnectStartContactRecordingVoiceRecordingConfigurationInput!
}

input AwsConnectStartContactRecordingVoiceRecordingConfigurationInput {
  VoiceRecordingTrack: String
}

type AwsConnectStartOutboundVoiceContactOutput {
  ContactId: String
}

input AwsConnectStartOutboundVoiceContactInput {
  DestinationPhoneNumber: String!
  ContactFlowId: String!
  InstanceId: String!
  ClientToken: String
  SourcePhoneNumber: String
  QueueId: String
  Attributes: JSON
}

type AwsConnectStartTaskContactOutput {
  ContactId: String
}

input AwsConnectStartTaskContactInput {
  InstanceId: String!
  PreviousContactId: String
  ContactFlowId: String!
  Attributes: JSON
  Name: String!
  References: JSON
  Description: String
  ClientToken: String
}

input AwsConnectStopContactInput {
  ContactId: String!
  InstanceId: String!
}

input AwsConnectStopContactRecordingInput {
  InstanceId: String!
  ContactId: String!
  InitialContactId: String!
}

input AwsConnectSuspendContactRecordingInput {
  InstanceId: String!
  ContactId: String!
  InitialContactId: String!
}

input AwsConnectTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsConnectUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsConnectUpdateContactAttributesInput {
  InitialContactId: String!
  InstanceId: String!
  Attributes: JSON!
}

input AwsConnectUpdateContactFlowContentInput {
  InstanceId: String!
  ContactFlowId: String!
  Content: String!
}

input AwsConnectUpdateContactFlowNameInput {
  InstanceId: String!
  ContactFlowId: String!
  Name: String
  Description: String
}

input AwsConnectUpdateInstanceAttributeInput {
  InstanceId: String!
  AttributeType: String!
  Value: String!
}

input AwsConnectUpdateInstanceStorageConfigInput {
  InstanceId: String!
  AssociationId: String!
  ResourceType: String!
  StorageConfig: AwsConnectScInput!
}

input AwsConnectUpdateQueueHoursOfOperationInput {
  InstanceId: String!
  QueueId: String!
  HoursOfOperationId: String!
}

input AwsConnectUpdateQueueMaxContactsInput {
  InstanceId: String!
  QueueId: String!
  MaxContacts: Int
}

input AwsConnectUpdateQueueNameInput {
  InstanceId: String!
  QueueId: String!
  Name: String
  Description: String
}

input AwsConnectUpdateQueueOutboundCallerConfigInput {
  InstanceId: String!
  QueueId: String!
  OutboundCallerConfig: AwsConnectS21Input!
}

input AwsConnectUpdateQueueStatusInput {
  InstanceId: String!
  QueueId: String!
  Status: String!
}

input AwsConnectUpdateQuickConnectConfigInput {
  InstanceId: String!
  QuickConnectId: String!
  QuickConnectConfig: AwsConnectS2aInput!
}

input AwsConnectUpdateQuickConnectNameInput {
  InstanceId: String!
  QuickConnectId: String!
  Name: String
  Description: String
}

input AwsConnectUpdateRoutingProfileConcurrencyInput {
  InstanceId: String!
  RoutingProfileId: String!
  MediaConcurrencies: [AwsConnectS2lInput]!
}

input AwsConnectUpdateRoutingProfileDefaultOutboundQueueInput {
  InstanceId: String!
  RoutingProfileId: String!
  DefaultOutboundQueueId: String!
}

input AwsConnectUpdateRoutingProfileNameInput {
  InstanceId: String!
  RoutingProfileId: String!
  Name: String
  Description: String
}

input AwsConnectUpdateRoutingProfileQueuesInput {
  InstanceId: String!
  RoutingProfileId: String!
  QueueConfigs: [AwsConnectS10Input]!
}

input AwsConnectUpdateUserHierarchyInput {
  HierarchyGroupId: String
  UserId: String!
  InstanceId: String!
}

input AwsConnectUpdateUserHierarchyGroupNameInput {
  Name: String!
  HierarchyGroupId: String!
  InstanceId: String!
}

input AwsConnectUpdateUserHierarchyStructureInput {
  HierarchyStructure: AwsConnectUpdateUserHierarchyStructureHierarchyStructureInput!
  InstanceId: String!
}

input AwsConnectUpdateUserHierarchyStructureHierarchyStructureInput {
  LevelOne: AwsConnectSatInput
  LevelTwo: AwsConnectSatInput
  LevelThree: AwsConnectSatInput
  LevelFour: AwsConnectSatInput
  LevelFive: AwsConnectSatInput
}

input AwsConnectSatInput {
  Name: String!
}

input AwsConnectUpdateUserIdentityInfoInput {
  IdentityInfo: AwsConnectS2wInput!
  UserId: String!
  InstanceId: String!
}

input AwsConnectUpdateUserPhoneConfigInput {
  PhoneConfig: AwsConnectS30Input!
  UserId: String!
  InstanceId: String!
}

input AwsConnectUpdateUserRoutingProfileInput {
  RoutingProfileId: String!
  UserId: String!
  InstanceId: String!
}

input AwsConnectUpdateUserSecurityProfilesInput {
  SecurityProfileIds: [String]!
  UserId: String!
  InstanceId: String!
}

"""Amazon Connect Contact Lens (2020-08-21)"""
type AwsConnectContactLens {
  listRealtimeContactAnalysisSegments(input: AwsConnectContactLensListRealtimeContactAnalysisSegmentsInput!, config: AwsConfig): AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutput
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutput {
  Segments: [AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegments]!
  NextToken: String
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegments {
  Transcript: AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscript
  Categories: AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsCategories
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscript {
  Id: String!
  ParticipantId: String!
  ParticipantRole: String!
  Content: String!
  BeginOffsetMillis: Int!
  EndOffsetMillis: Int!
  Sentiment: String!
  IssuesDetected: [AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscriptIssuesDetected]
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscriptIssuesDetected {
  CharacterOffsets: AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscriptIssuesDetectedCharacterOffsets!
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsTranscriptIssuesDetectedCharacterOffsets {
  BeginOffsetChar: Int!
  EndOffsetChar: Int!
}

type AwsConnectContactLensListRealtimeContactAnalysisSegmentsOutputSegmentsCategories {
  MatchedCategories: [String]!
  MatchedDetails: JSON!
}

input AwsConnectContactLensListRealtimeContactAnalysisSegmentsInput {
  InstanceId: String!
  ContactId: String!
  MaxResults: Int
  NextToken: String
}

"""Amazon Connect Participant Service (2018-09-07)"""
type AwsConnectParticipant {
  completeAttachmentUpload(input: AwsConnectParticipantCompleteAttachmentUploadInput!, config: AwsConfig): JSON
  createParticipantConnection(input: AwsConnectParticipantCreateParticipantConnectionInput!, config: AwsConfig): AwsConnectParticipantCreateParticipantConnectionOutput
  disconnectParticipant(input: AwsConnectParticipantDisconnectParticipantInput!, config: AwsConfig): JSON
  getAttachment(input: AwsConnectParticipantGetAttachmentInput!, config: AwsConfig): AwsConnectParticipantGetAttachmentOutput
  getTranscript(input: AwsConnectParticipantGetTranscriptInput!, config: AwsConfig): AwsConnectParticipantGetTranscriptOutput
  sendEvent(input: AwsConnectParticipantSendEventInput!, config: AwsConfig): AwsConnectParticipantSendEventOutput
  sendMessage(input: AwsConnectParticipantSendMessageInput!, config: AwsConfig): AwsConnectParticipantSendMessageOutput
  startAttachmentUpload(input: AwsConnectParticipantStartAttachmentUploadInput!, config: AwsConfig): AwsConnectParticipantStartAttachmentUploadOutput
}

input AwsConnectParticipantCompleteAttachmentUploadInput {
  AttachmentIds: [String]!
  ClientToken: String!
  ConnectionToken: String!
}

type AwsConnectParticipantCreateParticipantConnectionOutput {
  Websocket: AwsConnectParticipantCreateParticipantConnectionOutputWebsocket
  ConnectionCredentials: AwsConnectParticipantCreateParticipantConnectionOutputConnectionCredentials
}

type AwsConnectParticipantCreateParticipantConnectionOutputWebsocket {
  Url: String
  ConnectionExpiry: String
}

type AwsConnectParticipantCreateParticipantConnectionOutputConnectionCredentials {
  ConnectionToken: String
  Expiry: String
}

input AwsConnectParticipantCreateParticipantConnectionInput {
  Type: [String]!
  ParticipantToken: String!
}

input AwsConnectParticipantDisconnectParticipantInput {
  ClientToken: String
  ConnectionToken: String!
}

type AwsConnectParticipantGetAttachmentOutput {
  Url: String
  UrlExpiry: String
}

input AwsConnectParticipantGetAttachmentInput {
  AttachmentId: String!
  ConnectionToken: String!
}

type AwsConnectParticipantGetTranscriptOutput {
  InitialContactId: String
  Transcript: [AwsConnectParticipantGetTranscriptOutputTranscript]
  NextToken: String
}

type AwsConnectParticipantGetTranscriptOutputTranscript {
  AbsoluteTime: String
  Content: String
  ContentType: String
  Id: String
  Type: String
  ParticipantId: String
  DisplayName: String
  ParticipantRole: String
  Attachments: [AwsConnectParticipantGetTranscriptOutputTranscriptAttachments]
}

type AwsConnectParticipantGetTranscriptOutputTranscriptAttachments {
  ContentType: String
  AttachmentId: String
  AttachmentName: String
  Status: String
}

input AwsConnectParticipantGetTranscriptInput {
  ContactId: String
  MaxResults: Int
  NextToken: String
  ScanDirection: String
  SortOrder: String
  StartPosition: AwsConnectParticipantGetTranscriptStartPositionInput
  ConnectionToken: String!
}

input AwsConnectParticipantGetTranscriptStartPositionInput {
  Id: String
  AbsoluteTime: String
  MostRecent: Int
}

type AwsConnectParticipantSendEventOutput {
  Id: String
  AbsoluteTime: String
}

input AwsConnectParticipantSendEventInput {
  ContentType: String!
  Content: String
  ClientToken: String
  ConnectionToken: String!
}

type AwsConnectParticipantSendMessageOutput {
  Id: String
  AbsoluteTime: String
}

input AwsConnectParticipantSendMessageInput {
  ContentType: String!
  Content: String!
  ClientToken: String
  ConnectionToken: String!
}

type AwsConnectParticipantStartAttachmentUploadOutput {
  AttachmentId: String
  UploadMetadata: AwsConnectParticipantStartAttachmentUploadOutputUploadMetadata
}

type AwsConnectParticipantStartAttachmentUploadOutputUploadMetadata {
  Url: String
  UrlExpiry: String
  HeadersToInclude: JSON
}

input AwsConnectParticipantStartAttachmentUploadInput {
  ContentType: String!
  AttachmentSizeInBytes: JSON!
  AttachmentName: String!
  ClientToken: String!
  ConnectionToken: String!
}

"""AWS Cost Explorer Service (2017-10-25)"""
type AwsCostExplorer {
  createAnomalyMonitor(input: AwsCostExplorerCreateAnomalyMonitorInput!, config: AwsConfig): AwsCostExplorerCreateAnomalyMonitorOutput
  createAnomalySubscription(input: AwsCostExplorerCreateAnomalySubscriptionInput!, config: AwsConfig): AwsCostExplorerCreateAnomalySubscriptionOutput
  createCostCategoryDefinition(input: AwsCostExplorerCreateCostCategoryDefinitionInput!, config: AwsConfig): AwsCostExplorerCreateCostCategoryDefinitionOutput
  deleteAnomalyMonitor(input: AwsCostExplorerDeleteAnomalyMonitorInput!, config: AwsConfig): JSON
  deleteAnomalySubscription(input: AwsCostExplorerDeleteAnomalySubscriptionInput!, config: AwsConfig): JSON
  deleteCostCategoryDefinition(input: AwsCostExplorerDeleteCostCategoryDefinitionInput!, config: AwsConfig): AwsCostExplorerDeleteCostCategoryDefinitionOutput
  describeCostCategoryDefinition(input: AwsCostExplorerDescribeCostCategoryDefinitionInput!, config: AwsConfig): AwsCostExplorerDescribeCostCategoryDefinitionOutput
  getAnomalies(input: AwsCostExplorerGetAnomaliesInput!, config: AwsConfig): AwsCostExplorerGetAnomaliesOutput
  getAnomalyMonitors(input: AwsCostExplorerGetAnomalyMonitorsInput, config: AwsConfig): AwsCostExplorerGetAnomalyMonitorsOutput
  getAnomalySubscriptions(input: AwsCostExplorerGetAnomalySubscriptionsInput, config: AwsConfig): AwsCostExplorerGetAnomalySubscriptionsOutput
  getCostAndUsage(input: AwsCostExplorerGetCostAndUsageInput!, config: AwsConfig): AwsCostExplorerGetCostAndUsageOutput
  getCostAndUsageWithResources(input: AwsCostExplorerGetCostAndUsageWithResourcesInput!, config: AwsConfig): AwsCostExplorerGetCostAndUsageWithResourcesOutput
  getCostCategories(input: AwsCostExplorerGetCostCategoriesInput!, config: AwsConfig): AwsCostExplorerGetCostCategoriesOutput
  getCostForecast(input: AwsCostExplorerGetCostForecastInput!, config: AwsConfig): AwsCostExplorerGetCostForecastOutput
  getDimensionValues(input: AwsCostExplorerGetDimensionValuesInput!, config: AwsConfig): AwsCostExplorerGetDimensionValuesOutput
  getReservationCoverage(input: AwsCostExplorerGetReservationCoverageInput!, config: AwsConfig): AwsCostExplorerGetReservationCoverageOutput
  getReservationPurchaseRecommendation(input: AwsCostExplorerGetReservationPurchaseRecommendationInput!, config: AwsConfig): AwsCostExplorerGetReservationPurchaseRecommendationOutput
  getReservationUtilization(input: AwsCostExplorerGetReservationUtilizationInput!, config: AwsConfig): AwsCostExplorerGetReservationUtilizationOutput
  getRightsizingRecommendation(input: AwsCostExplorerGetRightsizingRecommendationInput!, config: AwsConfig): AwsCostExplorerGetRightsizingRecommendationOutput
  getSavingsPlansCoverage(input: AwsCostExplorerGetSavingsPlansCoverageInput!, config: AwsConfig): AwsCostExplorerGetSavingsPlansCoverageOutput
  getSavingsPlansPurchaseRecommendation(input: AwsCostExplorerGetSavingsPlansPurchaseRecommendationInput!, config: AwsConfig): AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutput
  getSavingsPlansUtilization(input: AwsCostExplorerGetSavingsPlansUtilizationInput!, config: AwsConfig): AwsCostExplorerGetSavingsPlansUtilizationOutput
  getSavingsPlansUtilizationDetails(input: AwsCostExplorerGetSavingsPlansUtilizationDetailsInput!, config: AwsConfig): AwsCostExplorerGetSavingsPlansUtilizationDetailsOutput
  getTags(input: AwsCostExplorerGetTagsInput!, config: AwsConfig): AwsCostExplorerGetTagsOutput
  getUsageForecast(input: AwsCostExplorerGetUsageForecastInput!, config: AwsConfig): AwsCostExplorerGetUsageForecastOutput
  listCostCategoryDefinitions(input: AwsCostExplorerListCostCategoryDefinitionsInput, config: AwsConfig): AwsCostExplorerListCostCategoryDefinitionsOutput
  provideAnomalyFeedback(input: AwsCostExplorerProvideAnomalyFeedbackInput!, config: AwsConfig): AwsCostExplorerProvideAnomalyFeedbackOutput
  updateAnomalyMonitor(input: AwsCostExplorerUpdateAnomalyMonitorInput!, config: AwsConfig): AwsCostExplorerUpdateAnomalyMonitorOutput
  updateAnomalySubscription(input: AwsCostExplorerUpdateAnomalySubscriptionInput!, config: AwsConfig): AwsCostExplorerUpdateAnomalySubscriptionOutput
  updateCostCategoryDefinition(input: AwsCostExplorerUpdateCostCategoryDefinitionInput!, config: AwsConfig): AwsCostExplorerUpdateCostCategoryDefinitionOutput
}

type AwsCostExplorerCreateAnomalyMonitorOutput {
  MonitorArn: String!
}

input AwsCostExplorerCreateAnomalyMonitorInput {
  AnomalyMonitor: AwsCostExplorerS2Input!
}

input AwsCostExplorerS2Input {
  MonitorArn: String
  MonitorName: String!
  CreationDate: String
  LastUpdatedDate: String
  LastEvaluatedDate: String
  MonitorType: String!
  MonitorDimension: String
  MonitorSpecification: AwsCostExplorerS7Input
  DimensionalValueCount: Int
}

input AwsCostExplorerS7Input {
  Or: [JSON]
  And: [JSON]
  Not: JSON
  Dimensions: AwsCostExplorerS7DimensionsInput
  Tags: AwsCostExplorerSfInput
  CostCategories: AwsCostExplorerS7CostCategoriesInput
}

input AwsCostExplorerS7DimensionsInput {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

input AwsCostExplorerSfInput {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

input AwsCostExplorerS7CostCategoriesInput {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

type AwsCostExplorerCreateAnomalySubscriptionOutput {
  SubscriptionArn: String!
}

input AwsCostExplorerCreateAnomalySubscriptionInput {
  AnomalySubscription: AwsCostExplorerSmInput!
}

input AwsCostExplorerSmInput {
  SubscriptionArn: String
  AccountId: String
  MonitorArnList: [String]!
  Subscribers: [AwsCostExplorerSpInput]!
  Threshold: JSON!
  Frequency: String!
  SubscriptionName: String!
}

input AwsCostExplorerSpInput {
  Address: String
  Type: String
  Status: String
}

type AwsCostExplorerCreateCostCategoryDefinitionOutput {
  CostCategoryArn: String
  EffectiveStart: String
}

input AwsCostExplorerCreateCostCategoryDefinitionInput {
  Name: String!
  RuleVersion: String!
  Rules: [AwsCostExplorerSzInput]!
  DefaultValue: String
}

input AwsCostExplorerSzInput {
  Value: String
  Rule: AwsCostExplorerS7Input
  InheritedValue: AwsCostExplorerSzInheritedValueInput
  Type: String
}

input AwsCostExplorerSzInheritedValueInput {
  DimensionName: String
  DimensionKey: String
}

input AwsCostExplorerDeleteAnomalyMonitorInput {
  MonitorArn: String!
}

input AwsCostExplorerDeleteAnomalySubscriptionInput {
  SubscriptionArn: String!
}

type AwsCostExplorerDeleteCostCategoryDefinitionOutput {
  CostCategoryArn: String
  EffectiveEnd: String
}

input AwsCostExplorerDeleteCostCategoryDefinitionInput {
  CostCategoryArn: String!
}

type AwsCostExplorerDescribeCostCategoryDefinitionOutput {
  CostCategory: AwsCostExplorerDescribeCostCategoryDefinitionOutputCostCategory
}

type AwsCostExplorerDescribeCostCategoryDefinitionOutputCostCategory {
  CostCategoryArn: String!
  EffectiveStart: String!
  EffectiveEnd: String
  Name: String!
  RuleVersion: String!
  Rules: [AwsCostExplorerSz]!
  ProcessingStatus: [AwsCostExplorerS1g]
  DefaultValue: String
}

type AwsCostExplorerSz {
  Value: String
  Rule: AwsCostExplorerS7
  InheritedValue: AwsCostExplorerSzInheritedValue
  Type: String
}

type AwsCostExplorerS7 {
  Or: [JSON]
  And: [JSON]
  Not: JSON
  Dimensions: AwsCostExplorerS7Dimensions
  Tags: AwsCostExplorerSf
  CostCategories: AwsCostExplorerS7CostCategories
}

type AwsCostExplorerS7Dimensions {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

type AwsCostExplorerSf {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

type AwsCostExplorerS7CostCategories {
  Key: String
  Values: [String]
  MatchOptions: [String]
}

type AwsCostExplorerSzInheritedValue {
  DimensionName: String
  DimensionKey: String
}

type AwsCostExplorerS1g {
  Component: String
  Status: String
}

input AwsCostExplorerDescribeCostCategoryDefinitionInput {
  CostCategoryArn: String!
  EffectiveOn: String
}

type AwsCostExplorerGetAnomaliesOutput {
  Anomalies: [AwsCostExplorerGetAnomaliesOutputAnomalies]!
  NextPageToken: String
}

type AwsCostExplorerGetAnomaliesOutputAnomalies {
  AnomalyId: String!
  AnomalyStartDate: String
  AnomalyEndDate: String
  DimensionValue: String
  RootCauses: [AwsCostExplorerGetAnomaliesOutputAnomaliesRootCauses]
  AnomalyScore: AwsCostExplorerGetAnomaliesOutputAnomaliesAnomalyScore!
  Impact: AwsCostExplorerGetAnomaliesOutputAnomaliesImpact!
  MonitorArn: String!
  Feedback: String
}

type AwsCostExplorerGetAnomaliesOutputAnomaliesRootCauses {
  Service: String
  Region: String
  LinkedAccount: String
  UsageType: String
}

type AwsCostExplorerGetAnomaliesOutputAnomaliesAnomalyScore {
  MaxScore: JSON!
  CurrentScore: JSON!
}

type AwsCostExplorerGetAnomaliesOutputAnomaliesImpact {
  MaxImpact: JSON!
  TotalImpact: JSON
}

input AwsCostExplorerGetAnomaliesInput {
  MonitorArn: String
  DateInterval: AwsCostExplorerGetAnomaliesDateIntervalInput!
  Feedback: String
  TotalImpact: AwsCostExplorerGetAnomaliesTotalImpactInput
  NextPageToken: String
  MaxResults: Int
}

input AwsCostExplorerGetAnomaliesDateIntervalInput {
  StartDate: String!
  EndDate: String
}

input AwsCostExplorerGetAnomaliesTotalImpactInput {
  NumericOperator: String!
  StartValue: JSON!
  EndValue: JSON
}

type AwsCostExplorerGetAnomalyMonitorsOutput {
  AnomalyMonitors: [AwsCostExplorerS2]!
  NextPageToken: String
}

type AwsCostExplorerS2 {
  MonitorArn: String
  MonitorName: String!
  CreationDate: String
  LastUpdatedDate: String
  LastEvaluatedDate: String
  MonitorType: String!
  MonitorDimension: String
  MonitorSpecification: AwsCostExplorerS7
  DimensionalValueCount: Int
}

input AwsCostExplorerGetAnomalyMonitorsInput {
  MonitorArnList: [String]
  NextPageToken: String
  MaxResults: Int
}

type AwsCostExplorerGetAnomalySubscriptionsOutput {
  AnomalySubscriptions: [AwsCostExplorerSm]!
  NextPageToken: String
}

type AwsCostExplorerSm {
  SubscriptionArn: String
  AccountId: String
  MonitorArnList: [String]!
  Subscribers: [AwsCostExplorerSp]!
  Threshold: JSON!
  Frequency: String!
  SubscriptionName: String!
}

type AwsCostExplorerSp {
  Address: String
  Type: String
  Status: String
}

input AwsCostExplorerGetAnomalySubscriptionsInput {
  SubscriptionArnList: [String]
  MonitorArn: String
  NextPageToken: String
  MaxResults: Int
}

type AwsCostExplorerGetCostAndUsageOutput {
  NextPageToken: String
  GroupDefinitions: [AwsCostExplorerS2a]
  ResultsByTime: [AwsCostExplorerS2f]
  DimensionValueAttributes: [AwsCostExplorerS2q]
}

type AwsCostExplorerS2a {
  Type: String
  Key: String
}

type AwsCostExplorerS2f {
  TimePeriod: AwsCostExplorerS26
  Total: JSON
  Groups: [AwsCostExplorerS2fGroups]
  Estimated: Boolean
}

type AwsCostExplorerS26 {
  Start: String!
  End: String!
}

type AwsCostExplorerS2fGroups {
  Keys: [String]
  Metrics: JSON
}

type AwsCostExplorerS2q {
  Value: String
  Attributes: JSON
}

input AwsCostExplorerGetCostAndUsageInput {
  TimePeriod: AwsCostExplorerS26Input!
  Granularity: String!
  Filter: AwsCostExplorerS7Input
  Metrics: [String]!
  GroupBy: [AwsCostExplorerS2aInput]
  NextPageToken: String
}

input AwsCostExplorerS26Input {
  Start: String!
  End: String!
}

input AwsCostExplorerS2aInput {
  Type: String
  Key: String
}

type AwsCostExplorerGetCostAndUsageWithResourcesOutput {
  NextPageToken: String
  GroupDefinitions: [AwsCostExplorerS2a]
  ResultsByTime: [AwsCostExplorerS2f]
  DimensionValueAttributes: [AwsCostExplorerS2q]
}

input AwsCostExplorerGetCostAndUsageWithResourcesInput {
  TimePeriod: AwsCostExplorerS26Input!
  Granularity: String!
  Filter: AwsCostExplorerS7Input!
  Metrics: [String]
  GroupBy: [AwsCostExplorerS2aInput]
  NextPageToken: String
}

type AwsCostExplorerGetCostCategoriesOutput {
  NextPageToken: String
  CostCategoryNames: [String]
  CostCategoryValues: [String]
  ReturnSize: Int!
  TotalSize: Int!
}

input AwsCostExplorerGetCostCategoriesInput {
  SearchString: String
  TimePeriod: AwsCostExplorerS26Input!
  CostCategoryName: String
  Filter: AwsCostExplorerS7Input
  SortBy: [AwsCostExplorerS30Input]
  MaxResults: Int
  NextPageToken: String
}

input AwsCostExplorerS30Input {
  Key: String!
  SortOrder: String
}

type AwsCostExplorerGetCostForecastOutput {
  Total: AwsCostExplorerS2i
  ForecastResultsByTime: [AwsCostExplorerS3b]
}

type AwsCostExplorerS2i {
  Amount: String
  Unit: String
}

type AwsCostExplorerS3b {
  TimePeriod: AwsCostExplorerS26
  MeanValue: String
  PredictionIntervalLowerBound: String
  PredictionIntervalUpperBound: String
}

input AwsCostExplorerGetCostForecastInput {
  TimePeriod: AwsCostExplorerS26Input!
  Metric: String!
  Granularity: String!
  Filter: AwsCostExplorerS7Input
  PredictionIntervalLevel: Int
}

type AwsCostExplorerGetDimensionValuesOutput {
  DimensionValues: [AwsCostExplorerS2q]!
  ReturnSize: Int!
  TotalSize: Int!
  NextPageToken: String
}

input AwsCostExplorerGetDimensionValuesInput {
  SearchString: String
  TimePeriod: AwsCostExplorerS26Input!
  Dimension: String!
  Context: String
  Filter: AwsCostExplorerS7Input
  SortBy: [AwsCostExplorerS30Input]
  MaxResults: Int
  NextPageToken: String
}

type AwsCostExplorerGetReservationCoverageOutput {
  CoveragesByTime: [AwsCostExplorerGetReservationCoverageOutputCoveragesByTime]!
  Total: AwsCostExplorerS3m
  NextPageToken: String
}

type AwsCostExplorerGetReservationCoverageOutputCoveragesByTime {
  TimePeriod: AwsCostExplorerS26
  Groups: [AwsCostExplorerGetReservationCoverageOutputCoveragesByTimeGroups]
  Total: AwsCostExplorerS3m
}

type AwsCostExplorerGetReservationCoverageOutputCoveragesByTimeGroups {
  Attributes: JSON
  Coverage: AwsCostExplorerS3m
}

type AwsCostExplorerS3m {
  CoverageHours: AwsCostExplorerS3mCoverageHours
  CoverageNormalizedUnits: AwsCostExplorerS3mCoverageNormalizedUnits
  CoverageCost: AwsCostExplorerS3mCoverageCost
}

type AwsCostExplorerS3mCoverageHours {
  OnDemandHours: String
  ReservedHours: String
  TotalRunningHours: String
  CoverageHoursPercentage: String
}

type AwsCostExplorerS3mCoverageNormalizedUnits {
  OnDemandNormalizedUnits: String
  ReservedNormalizedUnits: String
  TotalRunningNormalizedUnits: String
  CoverageNormalizedUnitsPercentage: String
}

type AwsCostExplorerS3mCoverageCost {
  OnDemandCost: String
}

input AwsCostExplorerGetReservationCoverageInput {
  TimePeriod: AwsCostExplorerS26Input!
  GroupBy: [AwsCostExplorerS2aInput]
  Granularity: String
  Filter: AwsCostExplorerS7Input
  Metrics: [String]
  NextPageToken: String
  SortBy: AwsCostExplorerS30Input
  MaxResults: Int
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutput {
  Metadata: AwsCostExplorerGetReservationPurchaseRecommendationOutputMetadata
  Recommendations: [AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendations]
  NextPageToken: String
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputMetadata {
  RecommendationId: String
  GenerationTimestamp: String
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendations {
  AccountScope: String
  LookbackPeriodInDays: String
  TermInYears: String
  PaymentOption: String
  ServiceSpecification: AwsCostExplorerS44
  RecommendationDetails: [AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetails]
  RecommendationSummary: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationSummary
}

type AwsCostExplorerS44 {
  EC2Specification: AwsCostExplorerS44EC2Specification
}

type AwsCostExplorerS44EC2Specification {
  OfferingClass: String
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetails {
  AccountId: String
  InstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetails
  RecommendedNumberOfInstancesToPurchase: String
  RecommendedNormalizedUnitsToPurchase: String
  MinimumNumberOfInstancesUsedPerHour: String
  MinimumNormalizedUnitsUsedPerHour: String
  MaximumNumberOfInstancesUsedPerHour: String
  MaximumNormalizedUnitsUsedPerHour: String
  AverageNumberOfInstancesUsedPerHour: String
  AverageNormalizedUnitsUsedPerHour: String
  AverageUtilization: String
  EstimatedBreakEvenInMonths: String
  CurrencyCode: String
  EstimatedMonthlySavingsAmount: String
  EstimatedMonthlySavingsPercentage: String
  EstimatedMonthlyOnDemandCost: String
  EstimatedReservationCostForLookbackPeriod: String
  UpfrontCost: String
  RecurringStandardMonthlyCost: String
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetails {
  EC2InstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsEC2InstanceDetails
  RDSInstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsRDSInstanceDetails
  RedshiftInstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsRedshiftInstanceDetails
  ElastiCacheInstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsElastiCacheInstanceDetails
  ESInstanceDetails: AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsESInstanceDetails
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsEC2InstanceDetails {
  Family: String
  InstanceType: String
  Region: String
  AvailabilityZone: String
  Platform: String
  Tenancy: String
  CurrentGeneration: Boolean
  SizeFlexEligible: Boolean
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsRDSInstanceDetails {
  Family: String
  InstanceType: String
  Region: String
  DatabaseEngine: String
  DatabaseEdition: String
  DeploymentOption: String
  LicenseModel: String
  CurrentGeneration: Boolean
  SizeFlexEligible: Boolean
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsRedshiftInstanceDetails {
  Family: String
  NodeType: String
  Region: String
  CurrentGeneration: Boolean
  SizeFlexEligible: Boolean
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsElastiCacheInstanceDetails {
  Family: String
  NodeType: String
  Region: String
  ProductDescription: String
  CurrentGeneration: Boolean
  SizeFlexEligible: Boolean
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationDetailsInstanceDetailsESInstanceDetails {
  InstanceClass: String
  InstanceSize: String
  Region: String
  CurrentGeneration: Boolean
  SizeFlexEligible: Boolean
}

type AwsCostExplorerGetReservationPurchaseRecommendationOutputRecommendationsRecommendationSummary {
  TotalEstimatedMonthlySavingsAmount: String
  TotalEstimatedMonthlySavingsPercentage: String
  CurrencyCode: String
}

input AwsCostExplorerGetReservationPurchaseRecommendationInput {
  AccountId: String
  Service: String!
  Filter: AwsCostExplorerS7Input
  AccountScope: String
  LookbackPeriodInDays: String
  TermInYears: String
  PaymentOption: String
  ServiceSpecification: AwsCostExplorerS44Input
  PageSize: Int
  NextPageToken: String
}

input AwsCostExplorerS44Input {
  EC2Specification: AwsCostExplorerS44EC2SpecificationInput
}

input AwsCostExplorerS44EC2SpecificationInput {
  OfferingClass: String
}

type AwsCostExplorerGetReservationUtilizationOutput {
  UtilizationsByTime: [AwsCostExplorerGetReservationUtilizationOutputUtilizationsByTime]!
  Total: AwsCostExplorerS4t
  NextPageToken: String
}

type AwsCostExplorerGetReservationUtilizationOutputUtilizationsByTime {
  TimePeriod: AwsCostExplorerS26
  Groups: [AwsCostExplorerGetReservationUtilizationOutputUtilizationsByTimeGroups]
  Total: AwsCostExplorerS4t
}

type AwsCostExplorerGetReservationUtilizationOutputUtilizationsByTimeGroups {
  Key: String
  Value: String
  Attributes: JSON
  Utilization: AwsCostExplorerS4t
}

type AwsCostExplorerS4t {
  UtilizationPercentage: String
  UtilizationPercentageInUnits: String
  PurchasedHours: String
  PurchasedUnits: String
  TotalActualHours: String
  TotalActualUnits: String
  UnusedHours: String
  UnusedUnits: String
  OnDemandCostOfRIHoursUsed: String
  NetRISavings: String
  TotalPotentialRISavings: String
  AmortizedUpfrontFee: String
  AmortizedRecurringFee: String
  TotalAmortizedFee: String
  RICostForUnusedHours: String
  RealizedSavings: String
  UnrealizedSavings: String
}

input AwsCostExplorerGetReservationUtilizationInput {
  TimePeriod: AwsCostExplorerS26Input!
  GroupBy: [AwsCostExplorerS2aInput]
  Granularity: String
  Filter: AwsCostExplorerS7Input
  SortBy: AwsCostExplorerS30Input
  NextPageToken: String
  MaxResults: Int
}

type AwsCostExplorerGetRightsizingRecommendationOutput {
  Metadata: AwsCostExplorerGetRightsizingRecommendationOutputMetadata
  Summary: AwsCostExplorerGetRightsizingRecommendationOutputSummary
  RightsizingRecommendations: [AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendations]
  NextPageToken: String
  Configuration: AwsCostExplorerS5c
}

type AwsCostExplorerGetRightsizingRecommendationOutputMetadata {
  RecommendationId: String
  GenerationTimestamp: String
  LookbackPeriodInDays: String
  AdditionalMetadata: String
}

type AwsCostExplorerGetRightsizingRecommendationOutputSummary {
  TotalRecommendationCount: String
  EstimatedTotalMonthlySavingsAmount: String
  SavingsCurrencyCode: String
  SavingsPercentage: String
}

type AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendations {
  AccountId: String
  CurrentInstance: AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsCurrentInstance
  RightsizingType: String
  ModifyRecommendationDetail: AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsModifyRecommendationDetail
  TerminateRecommendationDetail: AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsTerminateRecommendationDetail
  FindingReasonCodes: [String]
}

type AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsCurrentInstance {
  ResourceId: String
  InstanceName: String
  Tags: [AwsCostExplorerSf]
  ResourceDetails: AwsCostExplorerS5l
  ResourceUtilization: AwsCostExplorerS5n
  ReservationCoveredHoursInLookbackPeriod: String
  SavingsPlansCoveredHoursInLookbackPeriod: String
  OnDemandHoursInLookbackPeriod: String
  TotalRunningHoursInLookbackPeriod: String
  MonthlyCost: String
  CurrencyCode: String
}

type AwsCostExplorerS5l {
  EC2ResourceDetails: AwsCostExplorerS5lEC2ResourceDetails
}

type AwsCostExplorerS5lEC2ResourceDetails {
  HourlyOnDemandRate: String
  InstanceType: String
  Platform: String
  Region: String
  Sku: String
  Memory: String
  NetworkPerformance: String
  Storage: String
  Vcpu: String
}

type AwsCostExplorerS5n {
  EC2ResourceUtilization: AwsCostExplorerS5nEC2ResourceUtilization
}

type AwsCostExplorerS5nEC2ResourceUtilization {
  MaxCpuUtilizationPercentage: String
  MaxMemoryUtilizationPercentage: String
  MaxStorageUtilizationPercentage: String
  EBSResourceUtilization: AwsCostExplorerS5nEC2ResourceUtilizationEBSResourceUtilization
  DiskResourceUtilization: AwsCostExplorerS5nEC2ResourceUtilizationDiskResourceUtilization
  NetworkResourceUtilization: AwsCostExplorerS5nEC2ResourceUtilizationNetworkResourceUtilization
}

type AwsCostExplorerS5nEC2ResourceUtilizationEBSResourceUtilization {
  EbsReadOpsPerSecond: String
  EbsWriteOpsPerSecond: String
  EbsReadBytesPerSecond: String
  EbsWriteBytesPerSecond: String
}

type AwsCostExplorerS5nEC2ResourceUtilizationDiskResourceUtilization {
  DiskReadOpsPerSecond: String
  DiskWriteOpsPerSecond: String
  DiskReadBytesPerSecond: String
  DiskWriteBytesPerSecond: String
}

type AwsCostExplorerS5nEC2ResourceUtilizationNetworkResourceUtilization {
  NetworkInBytesPerSecond: String
  NetworkOutBytesPerSecond: String
  NetworkPacketsInPerSecond: String
  NetworkPacketsOutPerSecond: String
}

type AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsModifyRecommendationDetail {
  TargetInstances: [AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsModifyRecommendationDetailTargetInstances]
}

type AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsModifyRecommendationDetailTargetInstances {
  EstimatedMonthlyCost: String
  EstimatedMonthlySavings: String
  CurrencyCode: String
  DefaultTargetInstance: Boolean
  ResourceDetails: AwsCostExplorerS5l
  ExpectedResourceUtilization: AwsCostExplorerS5n
  PlatformDifferences: [String]
}

type AwsCostExplorerGetRightsizingRecommendationOutputRightsizingRecommendationsTerminateRecommendationDetail {
  EstimatedMonthlySavings: String
  CurrencyCode: String
}

type AwsCostExplorerS5c {
  RecommendationTarget: String!
  BenefitsConsidered: Boolean!
}

input AwsCostExplorerGetRightsizingRecommendationInput {
  Filter: AwsCostExplorerS7Input
  Configuration: AwsCostExplorerS5cInput
  Service: String!
  PageSize: Int
  NextPageToken: String
}

input AwsCostExplorerS5cInput {
  RecommendationTarget: String!
  BenefitsConsidered: Boolean!
}

type AwsCostExplorerGetSavingsPlansCoverageOutput {
  SavingsPlansCoverages: [AwsCostExplorerGetSavingsPlansCoverageOutputSavingsPlansCoverages]!
  NextToken: String
}

type AwsCostExplorerGetSavingsPlansCoverageOutputSavingsPlansCoverages {
  Attributes: JSON
  Coverage: AwsCostExplorerGetSavingsPlansCoverageOutputSavingsPlansCoveragesCoverage
  TimePeriod: AwsCostExplorerS26
}

type AwsCostExplorerGetSavingsPlansCoverageOutputSavingsPlansCoveragesCoverage {
  SpendCoveredBySavingsPlans: String
  OnDemandCost: String
  TotalCost: String
  CoveragePercentage: String
}

input AwsCostExplorerGetSavingsPlansCoverageInput {
  TimePeriod: AwsCostExplorerS26Input!
  GroupBy: [AwsCostExplorerS2aInput]
  Granularity: String
  Filter: AwsCostExplorerS7Input
  Metrics: [String]
  NextToken: String
  MaxResults: Int
  SortBy: AwsCostExplorerS30Input
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutput {
  Metadata: AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputMetadata
  SavingsPlansPurchaseRecommendation: AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendation
  NextPageToken: String
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputMetadata {
  RecommendationId: String
  GenerationTimestamp: String
  AdditionalMetadata: String
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendation {
  AccountScope: String
  SavingsPlansType: String
  TermInYears: String
  PaymentOption: String
  LookbackPeriodInDays: String
  SavingsPlansPurchaseRecommendationDetails: [AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationDetails]
  SavingsPlansPurchaseRecommendationSummary: AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationSummary
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationDetails {
  SavingsPlansDetails: AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationDetailsSavingsPlansDetails
  AccountId: String
  UpfrontCost: String
  EstimatedROI: String
  CurrencyCode: String
  EstimatedSPCost: String
  EstimatedOnDemandCost: String
  EstimatedOnDemandCostWithCurrentCommitment: String
  EstimatedSavingsAmount: String
  EstimatedSavingsPercentage: String
  HourlyCommitmentToPurchase: String
  EstimatedAverageUtilization: String
  EstimatedMonthlySavingsAmount: String
  CurrentMinimumHourlyOnDemandSpend: String
  CurrentMaximumHourlyOnDemandSpend: String
  CurrentAverageHourlyOnDemandSpend: String
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationDetailsSavingsPlansDetails {
  Region: String
  InstanceFamily: String
  OfferingId: String
}

type AwsCostExplorerGetSavingsPlansPurchaseRecommendationOutputSavingsPlansPurchaseRecommendationSavingsPlansPurchaseRecommendationSummary {
  EstimatedROI: String
  CurrencyCode: String
  EstimatedTotalCost: String
  CurrentOnDemandSpend: String
  EstimatedSavingsAmount: String
  TotalRecommendationCount: String
  DailyCommitmentToPurchase: String
  HourlyCommitmentToPurchase: String
  EstimatedSavingsPercentage: String
  EstimatedMonthlySavingsAmount: String
  EstimatedOnDemandCostWithCurrentCommitment: String
}

input AwsCostExplorerGetSavingsPlansPurchaseRecommendationInput {
  SavingsPlansType: String!
  TermInYears: String!
  PaymentOption: String!
  AccountScope: String
  NextPageToken: String
  PageSize: Int
  LookbackPeriodInDays: String!
  Filter: AwsCostExplorerS7Input
}

type AwsCostExplorerGetSavingsPlansUtilizationOutput {
  SavingsPlansUtilizationsByTime: [AwsCostExplorerGetSavingsPlansUtilizationOutputSavingsPlansUtilizationsByTime]
  Total: AwsCostExplorerS6m!
}

type AwsCostExplorerGetSavingsPlansUtilizationOutputSavingsPlansUtilizationsByTime {
  TimePeriod: AwsCostExplorerS26!
  Utilization: AwsCostExplorerS6j!
  Savings: AwsCostExplorerS6k
  AmortizedCommitment: AwsCostExplorerS6l
}

type AwsCostExplorerS6j {
  TotalCommitment: String
  UsedCommitment: String
  UnusedCommitment: String
  UtilizationPercentage: String
}

type AwsCostExplorerS6k {
  NetSavings: String
  OnDemandCostEquivalent: String
}

type AwsCostExplorerS6l {
  AmortizedRecurringCommitment: String
  AmortizedUpfrontCommitment: String
  TotalAmortizedCommitment: String
}

type AwsCostExplorerS6m {
  Utilization: AwsCostExplorerS6j!
  Savings: AwsCostExplorerS6k
  AmortizedCommitment: AwsCostExplorerS6l
}

input AwsCostExplorerGetSavingsPlansUtilizationInput {
  TimePeriod: AwsCostExplorerS26Input!
  Granularity: String
  Filter: AwsCostExplorerS7Input
  SortBy: AwsCostExplorerS30Input
}

type AwsCostExplorerGetSavingsPlansUtilizationDetailsOutput {
  SavingsPlansUtilizationDetails: [AwsCostExplorerGetSavingsPlansUtilizationDetailsOutputSavingsPlansUtilizationDetails]!
  Total: AwsCostExplorerS6m
  TimePeriod: AwsCostExplorerS26!
  NextToken: String
}

type AwsCostExplorerGetSavingsPlansUtilizationDetailsOutputSavingsPlansUtilizationDetails {
  SavingsPlanArn: String
  Attributes: JSON
  Utilization: AwsCostExplorerS6j
  Savings: AwsCostExplorerS6k
  AmortizedCommitment: AwsCostExplorerS6l
}

input AwsCostExplorerGetSavingsPlansUtilizationDetailsInput {
  TimePeriod: AwsCostExplorerS26Input!
  Filter: AwsCostExplorerS7Input
  DataType: [String]
  NextToken: String
  MaxResults: Int
  SortBy: AwsCostExplorerS30Input
}

type AwsCostExplorerGetTagsOutput {
  NextPageToken: String
  Tags: [String]!
  ReturnSize: Int!
  TotalSize: Int!
}

input AwsCostExplorerGetTagsInput {
  SearchString: String
  TimePeriod: AwsCostExplorerS26Input!
  TagKey: String
  Filter: AwsCostExplorerS7Input
  SortBy: [AwsCostExplorerS30Input]
  MaxResults: Int
  NextPageToken: String
}

type AwsCostExplorerGetUsageForecastOutput {
  Total: AwsCostExplorerS2i
  ForecastResultsByTime: [AwsCostExplorerS3b]
}

input AwsCostExplorerGetUsageForecastInput {
  TimePeriod: AwsCostExplorerS26Input!
  Metric: String!
  Granularity: String!
  Filter: AwsCostExplorerS7Input
  PredictionIntervalLevel: Int
}

type AwsCostExplorerListCostCategoryDefinitionsOutput {
  CostCategoryReferences: [AwsCostExplorerListCostCategoryDefinitionsOutputCostCategoryReferences]
  NextToken: String
}

type AwsCostExplorerListCostCategoryDefinitionsOutputCostCategoryReferences {
  CostCategoryArn: String
  Name: String
  EffectiveStart: String
  EffectiveEnd: String
  NumberOfRules: Int
  ProcessingStatus: [AwsCostExplorerS1g]
  Values: [String]
  DefaultValue: String
}

input AwsCostExplorerListCostCategoryDefinitionsInput {
  EffectiveOn: String
  NextToken: String
  MaxResults: Int
}

type AwsCostExplorerProvideAnomalyFeedbackOutput {
  AnomalyId: String!
}

input AwsCostExplorerProvideAnomalyFeedbackInput {
  AnomalyId: String!
  Feedback: String!
}

type AwsCostExplorerUpdateAnomalyMonitorOutput {
  MonitorArn: String!
}

input AwsCostExplorerUpdateAnomalyMonitorInput {
  MonitorArn: String!
  MonitorName: String
}

type AwsCostExplorerUpdateAnomalySubscriptionOutput {
  SubscriptionArn: String!
}

input AwsCostExplorerUpdateAnomalySubscriptionInput {
  SubscriptionArn: String!
  Threshold: JSON
  Frequency: String
  MonitorArnList: [String]
  Subscribers: [AwsCostExplorerSpInput]
  SubscriptionName: String
}

type AwsCostExplorerUpdateCostCategoryDefinitionOutput {
  CostCategoryArn: String
  EffectiveStart: String
}

input AwsCostExplorerUpdateCostCategoryDefinitionInput {
  CostCategoryArn: String!
  RuleVersion: String!
  Rules: [AwsCostExplorerSzInput]!
  DefaultValue: String
}

"""Amazon Connect Customer Profiles (2020-08-15)"""
type AwsCustomerProfiles {
  addProfileKey(input: AwsCustomerProfilesAddProfileKeyInput!, config: AwsConfig): AwsCustomerProfilesAddProfileKeyOutput
  createDomain(input: AwsCustomerProfilesCreateDomainInput!, config: AwsConfig): AwsCustomerProfilesCreateDomainOutput
  createProfile(input: AwsCustomerProfilesCreateProfileInput!, config: AwsConfig): AwsCustomerProfilesCreateProfileOutput
  deleteDomain(input: AwsCustomerProfilesDeleteDomainInput!, config: AwsConfig): AwsCustomerProfilesDeleteDomainOutput
  deleteIntegration(input: AwsCustomerProfilesDeleteIntegrationInput!, config: AwsConfig): AwsCustomerProfilesDeleteIntegrationOutput
  deleteProfile(input: AwsCustomerProfilesDeleteProfileInput!, config: AwsConfig): AwsCustomerProfilesDeleteProfileOutput
  deleteProfileKey(input: AwsCustomerProfilesDeleteProfileKeyInput!, config: AwsConfig): AwsCustomerProfilesDeleteProfileKeyOutput
  deleteProfileObject(input: AwsCustomerProfilesDeleteProfileObjectInput!, config: AwsConfig): AwsCustomerProfilesDeleteProfileObjectOutput
  deleteProfileObjectType(input: AwsCustomerProfilesDeleteProfileObjectTypeInput!, config: AwsConfig): AwsCustomerProfilesDeleteProfileObjectTypeOutput
  getDomain(input: AwsCustomerProfilesGetDomainInput!, config: AwsConfig): AwsCustomerProfilesGetDomainOutput
  getIntegration(input: AwsCustomerProfilesGetIntegrationInput!, config: AwsConfig): AwsCustomerProfilesGetIntegrationOutput
  getMatches(input: AwsCustomerProfilesGetMatchesInput!, config: AwsConfig): AwsCustomerProfilesGetMatchesOutput
  getProfileObjectType(input: AwsCustomerProfilesGetProfileObjectTypeInput!, config: AwsConfig): AwsCustomerProfilesGetProfileObjectTypeOutput
  getProfileObjectTypeTemplate(input: AwsCustomerProfilesGetProfileObjectTypeTemplateInput!, config: AwsConfig): AwsCustomerProfilesGetProfileObjectTypeTemplateOutput
  listAccountIntegrations(input: AwsCustomerProfilesListAccountIntegrationsInput!, config: AwsConfig): AwsCustomerProfilesListAccountIntegrationsOutput
  listDomains(input: AwsCustomerProfilesListDomainsInput, config: AwsConfig): AwsCustomerProfilesListDomainsOutput
  listIntegrations(input: AwsCustomerProfilesListIntegrationsInput!, config: AwsConfig): AwsCustomerProfilesListIntegrationsOutput
  listProfileObjectTypeTemplates(input: AwsCustomerProfilesListProfileObjectTypeTemplatesInput, config: AwsConfig): AwsCustomerProfilesListProfileObjectTypeTemplatesOutput
  listProfileObjectTypes(input: AwsCustomerProfilesListProfileObjectTypesInput!, config: AwsConfig): AwsCustomerProfilesListProfileObjectTypesOutput
  listProfileObjects(input: AwsCustomerProfilesListProfileObjectsInput!, config: AwsConfig): AwsCustomerProfilesListProfileObjectsOutput
  listTagsForResource(input: AwsCustomerProfilesListTagsForResourceInput!, config: AwsConfig): AwsCustomerProfilesListTagsForResourceOutput
  mergeProfiles(input: AwsCustomerProfilesMergeProfilesInput!, config: AwsConfig): AwsCustomerProfilesMergeProfilesOutput
  putIntegration(input: AwsCustomerProfilesPutIntegrationInput!, config: AwsConfig): AwsCustomerProfilesPutIntegrationOutput
  putProfileObject(input: AwsCustomerProfilesPutProfileObjectInput!, config: AwsConfig): AwsCustomerProfilesPutProfileObjectOutput
  putProfileObjectType(input: AwsCustomerProfilesPutProfileObjectTypeInput!, config: AwsConfig): AwsCustomerProfilesPutProfileObjectTypeOutput
  searchProfiles(input: AwsCustomerProfilesSearchProfilesInput!, config: AwsConfig): AwsCustomerProfilesSearchProfilesOutput
  tagResource(input: AwsCustomerProfilesTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsCustomerProfilesUntagResourceInput!, config: AwsConfig): JSON
  updateDomain(input: AwsCustomerProfilesUpdateDomainInput!, config: AwsConfig): AwsCustomerProfilesUpdateDomainOutput
  updateProfile(input: AwsCustomerProfilesUpdateProfileInput!, config: AwsConfig): AwsCustomerProfilesUpdateProfileOutput
}

type AwsCustomerProfilesAddProfileKeyOutput {
  KeyName: String
  Values: [String]
}

input AwsCustomerProfilesAddProfileKeyInput {
  ProfileId: String!
  KeyName: String!
  Values: [String]!
  DomainName: String!
}

type AwsCustomerProfilesCreateDomainOutput {
  DomainName: String!
  DefaultExpirationDays: Int!
  DefaultEncryptionKey: String
  DeadLetterQueueUrl: String
  Matching: AwsCustomerProfilesSh
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

type AwsCustomerProfilesSh {
  Enabled: Boolean
}

input AwsCustomerProfilesCreateDomainInput {
  DomainName: String!
  DefaultExpirationDays: Int!
  DefaultEncryptionKey: String
  DeadLetterQueueUrl: String
  Matching: AwsCustomerProfilesSbInput
  Tags: JSON
}

input AwsCustomerProfilesSbInput {
  Enabled: Boolean!
}

type AwsCustomerProfilesCreateProfileOutput {
  ProfileId: String!
}

input AwsCustomerProfilesCreateProfileInput {
  DomainName: String!
  AccountNumber: String
  AdditionalInformation: String
  PartyType: String
  BusinessName: String
  FirstName: String
  MiddleName: String
  LastName: String
  BirthDate: String
  Gender: String
  PhoneNumber: String
  MobilePhoneNumber: String
  HomePhoneNumber: String
  BusinessPhoneNumber: String
  EmailAddress: String
  PersonalEmailAddress: String
  BusinessEmailAddress: String
  Address: AwsCustomerProfilesSnInput
  ShippingAddress: AwsCustomerProfilesSnInput
  MailingAddress: AwsCustomerProfilesSnInput
  BillingAddress: AwsCustomerProfilesSnInput
  Attributes: JSON
}

input AwsCustomerProfilesSnInput {
  Address1: String
  Address2: String
  Address3: String
  Address4: String
  City: String
  County: String
  State: String
  Province: String
  Country: String
  PostalCode: String
}

type AwsCustomerProfilesDeleteDomainOutput {
  Message: String!
}

input AwsCustomerProfilesDeleteDomainInput {
  DomainName: String!
}

type AwsCustomerProfilesDeleteIntegrationOutput {
  Message: String!
}

input AwsCustomerProfilesDeleteIntegrationInput {
  DomainName: String!
  Uri: String!
}

type AwsCustomerProfilesDeleteProfileOutput {
  Message: String
}

input AwsCustomerProfilesDeleteProfileInput {
  ProfileId: String!
  DomainName: String!
}

type AwsCustomerProfilesDeleteProfileKeyOutput {
  Message: String
}

input AwsCustomerProfilesDeleteProfileKeyInput {
  ProfileId: String!
  KeyName: String!
  Values: [String]!
  DomainName: String!
}

type AwsCustomerProfilesDeleteProfileObjectOutput {
  Message: String
}

input AwsCustomerProfilesDeleteProfileObjectInput {
  ProfileId: String!
  ProfileObjectUniqueKey: String!
  ObjectTypeName: String!
  DomainName: String!
}

type AwsCustomerProfilesDeleteProfileObjectTypeOutput {
  Message: String!
}

input AwsCustomerProfilesDeleteProfileObjectTypeInput {
  DomainName: String!
  ObjectTypeName: String!
}

type AwsCustomerProfilesGetDomainOutput {
  DomainName: String!
  DefaultExpirationDays: Int
  DefaultEncryptionKey: String
  DeadLetterQueueUrl: String
  Stats: AwsCustomerProfilesGetDomainOutputStats
  Matching: AwsCustomerProfilesSh
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

type AwsCustomerProfilesGetDomainOutputStats {
  ProfileCount: JSON
  MeteringProfileCount: JSON
  ObjectCount: JSON
  TotalSize: JSON
}

input AwsCustomerProfilesGetDomainInput {
  DomainName: String!
}

type AwsCustomerProfilesGetIntegrationOutput {
  DomainName: String!
  Uri: String!
  ObjectTypeName: String!
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

input AwsCustomerProfilesGetIntegrationInput {
  DomainName: String!
  Uri: String!
}

type AwsCustomerProfilesGetMatchesOutput {
  NextToken: String
  MatchGenerationDate: Date
  PotentialMatches: Int
  Matches: [AwsCustomerProfilesGetMatchesOutputMatches]
}

type AwsCustomerProfilesGetMatchesOutputMatches {
  MatchId: String
  ProfileIds: [String]
}

input AwsCustomerProfilesGetMatchesInput {
  NextToken: String
  MaxResults: Int
  DomainName: String!
}

type AwsCustomerProfilesGetProfileObjectTypeOutput {
  ObjectTypeName: String!
  Description: String!
  TemplateId: String
  ExpirationDays: Int
  EncryptionKey: String
  AllowProfileCreation: Boolean
  Fields: JSON
  Keys: JSON
  CreatedAt: Date
  LastUpdatedAt: Date
  Tags: JSON
}

input AwsCustomerProfilesGetProfileObjectTypeInput {
  DomainName: String!
  ObjectTypeName: String!
}

type AwsCustomerProfilesGetProfileObjectTypeTemplateOutput {
  TemplateId: String
  SourceName: String
  SourceObject: String
  AllowProfileCreation: Boolean
  Fields: JSON
  Keys: JSON
}

input AwsCustomerProfilesGetProfileObjectTypeTemplateInput {
  TemplateId: String!
}

type AwsCustomerProfilesListAccountIntegrationsOutput {
  Items: [AwsCustomerProfilesS1z]
  NextToken: String
}

type AwsCustomerProfilesS1z {
  DomainName: String!
  Uri: String!
  ObjectTypeName: String!
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

input AwsCustomerProfilesListAccountIntegrationsInput {
  Uri: String!
  NextToken: String
  MaxResults: Int
}

type AwsCustomerProfilesListDomainsOutput {
  Items: [AwsCustomerProfilesListDomainsOutputItems]
  NextToken: String
}

type AwsCustomerProfilesListDomainsOutputItems {
  DomainName: String!
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

input AwsCustomerProfilesListDomainsInput {
  NextToken: String
  MaxResults: Int
}

type AwsCustomerProfilesListIntegrationsOutput {
  Items: [AwsCustomerProfilesS1z]
  NextToken: String
}

input AwsCustomerProfilesListIntegrationsInput {
  DomainName: String!
  NextToken: String
  MaxResults: Int
}

type AwsCustomerProfilesListProfileObjectTypeTemplatesOutput {
  Items: [AwsCustomerProfilesListProfileObjectTypeTemplatesOutputItems]
  NextToken: String
}

type AwsCustomerProfilesListProfileObjectTypeTemplatesOutputItems {
  TemplateId: String
  SourceName: String
  SourceObject: String
}

input AwsCustomerProfilesListProfileObjectTypeTemplatesInput {
  NextToken: String
  MaxResults: Int
}

type AwsCustomerProfilesListProfileObjectTypesOutput {
  Items: [AwsCustomerProfilesListProfileObjectTypesOutputItems]
  NextToken: String
}

type AwsCustomerProfilesListProfileObjectTypesOutputItems {
  ObjectTypeName: String!
  Description: String!
  CreatedAt: Date
  LastUpdatedAt: Date
  Tags: JSON
}

input AwsCustomerProfilesListProfileObjectTypesInput {
  DomainName: String!
  NextToken: String
  MaxResults: Int
}

type AwsCustomerProfilesListProfileObjectsOutput {
  Items: [AwsCustomerProfilesListProfileObjectsOutputItems]
  NextToken: String
}

type AwsCustomerProfilesListProfileObjectsOutputItems {
  ObjectTypeName: String
  ProfileObjectUniqueKey: String
  Object: String
}

input AwsCustomerProfilesListProfileObjectsInput {
  NextToken: String
  MaxResults: Int
  DomainName: String!
  ObjectTypeName: String!
  ProfileId: String!
}

type AwsCustomerProfilesListTagsForResourceOutput {
  tags: JSON
}

input AwsCustomerProfilesListTagsForResourceInput {
  resourceArn: String!
}

type AwsCustomerProfilesMergeProfilesOutput {
  Message: String
}

input AwsCustomerProfilesMergeProfilesInput {
  DomainName: String!
  MainProfileId: String!
  ProfileIdsToBeMerged: [String]!
  FieldSourceProfileIds: AwsCustomerProfilesMergeProfilesFieldSourceProfileIdsInput
}

input AwsCustomerProfilesMergeProfilesFieldSourceProfileIdsInput {
  AccountNumber: String
  AdditionalInformation: String
  PartyType: String
  BusinessName: String
  FirstName: String
  MiddleName: String
  LastName: String
  BirthDate: String
  Gender: String
  PhoneNumber: String
  MobilePhoneNumber: String
  HomePhoneNumber: String
  BusinessPhoneNumber: String
  EmailAddress: String
  PersonalEmailAddress: String
  BusinessEmailAddress: String
  Address: String
  ShippingAddress: String
  MailingAddress: String
  BillingAddress: String
  Attributes: JSON
}

type AwsCustomerProfilesPutIntegrationOutput {
  DomainName: String!
  Uri: String!
  ObjectTypeName: String!
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

input AwsCustomerProfilesPutIntegrationInput {
  DomainName: String!
  Uri: String
  ObjectTypeName: String!
  Tags: JSON
  FlowDefinition: AwsCustomerProfilesPutIntegrationFlowDefinitionInput
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionInput {
  Description: String
  FlowName: String!
  KmsArn: String!
  SourceFlowConfig: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigInput!
  Tasks: [AwsCustomerProfilesPutIntegrationFlowDefinitionTasksInput]!
  TriggerConfig: AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigInput!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigInput {
  ConnectorProfileName: String
  ConnectorType: String!
  IncrementalPullConfig: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigIncrementalPullConfigInput
  SourceConnectorProperties: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesInput!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigIncrementalPullConfigInput {
  DatetimeTypeFieldName: String
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesInput {
  Marketo: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesMarketoInput
  S3: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesS3Input
  Salesforce: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesSalesforceInput
  ServiceNow: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesServiceNowInput
  Zendesk: AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesZendeskInput
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesMarketoInput {
  Object: String!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesS3Input {
  BucketName: String!
  BucketPrefix: String
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesSalesforceInput {
  Object: String!
  EnableDynamicFieldUpdate: Boolean
  IncludeDeletedRecords: Boolean
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesServiceNowInput {
  Object: String!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionSourceFlowConfigSourceConnectorPropertiesZendeskInput {
  Object: String!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionTasksInput {
  ConnectorOperator: AwsCustomerProfilesPutIntegrationFlowDefinitionTasksConnectorOperatorInput
  DestinationField: String
  SourceFields: [String]!
  TaskProperties: JSON
  TaskType: String!
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionTasksConnectorOperatorInput {
  Marketo: String
  S3: String
  Salesforce: String
  ServiceNow: String
  Zendesk: String
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigInput {
  TriggerType: String!
  TriggerProperties: AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigTriggerPropertiesInput
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigTriggerPropertiesInput {
  Scheduled: AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigTriggerPropertiesScheduledInput
}

input AwsCustomerProfilesPutIntegrationFlowDefinitionTriggerConfigTriggerPropertiesScheduledInput {
  ScheduleExpression: String!
  DataPullMode: String
  ScheduleStartTime: Date
  ScheduleEndTime: Date
  Timezone: String
  ScheduleOffset: JSON
  FirstExecutionFrom: Date
}

type AwsCustomerProfilesPutProfileObjectOutput {
  ProfileObjectUniqueKey: String
}

input AwsCustomerProfilesPutProfileObjectInput {
  ObjectTypeName: String!
  Object: String!
  DomainName: String!
}

type AwsCustomerProfilesPutProfileObjectTypeOutput {
  ObjectTypeName: String!
  Description: String!
  TemplateId: String
  ExpirationDays: Int
  EncryptionKey: String
  AllowProfileCreation: Boolean
  Fields: JSON
  Keys: JSON
  CreatedAt: Date
  LastUpdatedAt: Date
  Tags: JSON
}

input AwsCustomerProfilesPutProfileObjectTypeInput {
  DomainName: String!
  ObjectTypeName: String!
  Description: String!
  TemplateId: String
  ExpirationDays: Int
  EncryptionKey: String
  AllowProfileCreation: Boolean
  Fields: JSON
  Keys: JSON
  Tags: JSON
}

type AwsCustomerProfilesSearchProfilesOutput {
  Items: [AwsCustomerProfilesSearchProfilesOutputItems]
  NextToken: String
}

type AwsCustomerProfilesSearchProfilesOutputItems {
  ProfileId: String
  AccountNumber: String
  AdditionalInformation: String
  PartyType: String
  BusinessName: String
  FirstName: String
  MiddleName: String
  LastName: String
  BirthDate: String
  Gender: String
  PhoneNumber: String
  MobilePhoneNumber: String
  HomePhoneNumber: String
  BusinessPhoneNumber: String
  EmailAddress: String
  PersonalEmailAddress: String
  BusinessEmailAddress: String
  Address: AwsCustomerProfilesSn
  ShippingAddress: AwsCustomerProfilesSn
  MailingAddress: AwsCustomerProfilesSn
  BillingAddress: AwsCustomerProfilesSn
  Attributes: JSON
}

type AwsCustomerProfilesSn {
  Address1: String
  Address2: String
  Address3: String
  Address4: String
  City: String
  County: String
  State: String
  Province: String
  Country: String
  PostalCode: String
}

input AwsCustomerProfilesSearchProfilesInput {
  NextToken: String
  MaxResults: Int
  DomainName: String!
  KeyName: String!
  Values: [String]!
}

input AwsCustomerProfilesTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsCustomerProfilesUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsCustomerProfilesUpdateDomainOutput {
  DomainName: String!
  DefaultExpirationDays: Int
  DefaultEncryptionKey: String
  DeadLetterQueueUrl: String
  Matching: AwsCustomerProfilesSh
  CreatedAt: Date!
  LastUpdatedAt: Date!
  Tags: JSON
}

input AwsCustomerProfilesUpdateDomainInput {
  DomainName: String!
  DefaultExpirationDays: Int
  DefaultEncryptionKey: String
  DeadLetterQueueUrl: String
  Matching: AwsCustomerProfilesSbInput
  Tags: JSON
}

type AwsCustomerProfilesUpdateProfileOutput {
  ProfileId: String!
}

input AwsCustomerProfilesUpdateProfileInput {
  DomainName: String!
  ProfileId: String!
  AdditionalInformation: String
  AccountNumber: String
  PartyType: String
  BusinessName: String
  FirstName: String
  MiddleName: String
  LastName: String
  BirthDate: String
  Gender: String
  PhoneNumber: String
  MobilePhoneNumber: String
  HomePhoneNumber: String
  BusinessPhoneNumber: String
  EmailAddress: String
  PersonalEmailAddress: String
  BusinessEmailAddress: String
  Address: AwsCustomerProfilesS4iInput
  ShippingAddress: AwsCustomerProfilesS4iInput
  MailingAddress: AwsCustomerProfilesS4iInput
  BillingAddress: AwsCustomerProfilesS4iInput
  Attributes: JSON
}

input AwsCustomerProfilesS4iInput {
  Address1: String
  Address2: String
  Address3: String
  Address4: String
  City: String
  County: String
  State: String
  Province: String
  Country: String
  PostalCode: String
}

"""Amazon DynamoDB Accelerator (DAX) (2017-04-19)"""
type AwsDAX {
  createCluster(input: AwsDAXCreateClusterInput!, config: AwsConfig): AwsDAXCreateClusterOutput
  createParameterGroup(input: AwsDAXCreateParameterGroupInput!, config: AwsConfig): AwsDAXCreateParameterGroupOutput
  createSubnetGroup(input: AwsDAXCreateSubnetGroupInput!, config: AwsConfig): AwsDAXCreateSubnetGroupOutput
  decreaseReplicationFactor(input: AwsDAXDecreaseReplicationFactorInput!, config: AwsConfig): AwsDAXDecreaseReplicationFactorOutput
  deleteCluster(input: AwsDAXDeleteClusterInput!, config: AwsConfig): AwsDAXDeleteClusterOutput
  deleteParameterGroup(input: AwsDAXDeleteParameterGroupInput!, config: AwsConfig): AwsDAXDeleteParameterGroupOutput
  deleteSubnetGroup(input: AwsDAXDeleteSubnetGroupInput!, config: AwsConfig): AwsDAXDeleteSubnetGroupOutput
  describeClusters(input: AwsDAXDescribeClustersInput, config: AwsConfig): AwsDAXDescribeClustersOutput
  describeDefaultParameters(input: AwsDAXDescribeDefaultParametersInput, config: AwsConfig): AwsDAXDescribeDefaultParametersOutput
  describeEvents(input: AwsDAXDescribeEventsInput, config: AwsConfig): AwsDAXDescribeEventsOutput
  describeParameterGroups(input: AwsDAXDescribeParameterGroupsInput, config: AwsConfig): AwsDAXDescribeParameterGroupsOutput
  describeParameters(input: AwsDAXDescribeParametersInput!, config: AwsConfig): AwsDAXDescribeParametersOutput
  describeSubnetGroups(input: AwsDAXDescribeSubnetGroupsInput, config: AwsConfig): AwsDAXDescribeSubnetGroupsOutput
  increaseReplicationFactor(input: AwsDAXIncreaseReplicationFactorInput!, config: AwsConfig): AwsDAXIncreaseReplicationFactorOutput
  listTags(input: AwsDAXListTagsInput!, config: AwsConfig): AwsDAXListTagsOutput
  rebootNode(input: AwsDAXRebootNodeInput!, config: AwsConfig): AwsDAXRebootNodeOutput
  tagResource(input: AwsDAXTagResourceInput!, config: AwsConfig): AwsDAXTagResourceOutput
  untagResource(input: AwsDAXUntagResourceInput!, config: AwsConfig): AwsDAXUntagResourceOutput
  updateCluster(input: AwsDAXUpdateClusterInput!, config: AwsConfig): AwsDAXUpdateClusterOutput
  updateParameterGroup(input: AwsDAXUpdateParameterGroupInput!, config: AwsConfig): AwsDAXUpdateParameterGroupOutput
  updateSubnetGroup(input: AwsDAXUpdateSubnetGroupInput!, config: AwsConfig): AwsDAXUpdateSubnetGroupOutput
}

type AwsDAXCreateClusterOutput {
  Cluster: AwsDAXSc
}

type AwsDAXSc {
  ClusterName: String
  Description: String
  ClusterArn: String
  TotalNodes: Int
  ActiveNodes: Int
  NodeType: String
  Status: String
  ClusterDiscoveryEndpoint: AwsDAXSe
  NodeIdsToRemove: [String]
  Nodes: [AwsDAXScNodes]
  PreferredMaintenanceWindow: String
  NotificationConfiguration: AwsDAXScNotificationConfiguration
  SubnetGroup: String
  SecurityGroups: [AwsDAXScSecurityGroups]
  IamRoleArn: String
  ParameterGroup: AwsDAXScParameterGroup
  SSEDescription: AwsDAXScSSEDescription
  ClusterEndpointEncryptionType: String
}

type AwsDAXSe {
  Address: String
  Port: Int
  URL: String
}

type AwsDAXScNodes {
  NodeId: String
  Endpoint: AwsDAXSe
  NodeCreateTime: Date
  AvailabilityZone: String
  NodeStatus: String
  ParameterGroupStatus: String
}

type AwsDAXScNotificationConfiguration {
  TopicArn: String
  TopicStatus: String
}

type AwsDAXScSecurityGroups {
  SecurityGroupIdentifier: String
  Status: String
}

type AwsDAXScParameterGroup {
  ParameterGroupName: String
  ParameterApplyStatus: String
  NodeIdsToReboot: [String]
}

type AwsDAXScSSEDescription {
  Status: String
}

input AwsDAXCreateClusterInput {
  ClusterName: String!
  NodeType: String!
  Description: String
  ReplicationFactor: Int!
  AvailabilityZones: [String]
  SubnetGroupName: String
  SecurityGroupIds: [String]
  PreferredMaintenanceWindow: String
  NotificationTopicArn: String
  IamRoleArn: String!
  ParameterGroupName: String
  Tags: [AwsDAXS6Input]
  SSESpecification: AwsDAXCreateClusterSSESpecificationInput
  ClusterEndpointEncryptionType: String
}

input AwsDAXS6Input {
  Key: String
  Value: String
}

input AwsDAXCreateClusterSSESpecificationInput {
  Enabled: Boolean!
}

type AwsDAXCreateParameterGroupOutput {
  ParameterGroup: AwsDAXSr
}

type AwsDAXSr {
  ParameterGroupName: String
  Description: String
}

input AwsDAXCreateParameterGroupInput {
  ParameterGroupName: String!
  Description: String
}

type AwsDAXCreateSubnetGroupOutput {
  SubnetGroup: AwsDAXSv
}

type AwsDAXSv {
  SubnetGroupName: String
  Description: String
  VpcId: String
  Subnets: [AwsDAXSvSubnets]
}

type AwsDAXSvSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: String
}

input AwsDAXCreateSubnetGroupInput {
  SubnetGroupName: String!
  Description: String
  SubnetIds: [String]!
}

type AwsDAXDecreaseReplicationFactorOutput {
  Cluster: AwsDAXSc
}

input AwsDAXDecreaseReplicationFactorInput {
  ClusterName: String!
  NewReplicationFactor: Int!
  AvailabilityZones: [String]
  NodeIdsToRemove: [String]
}

type AwsDAXDeleteClusterOutput {
  Cluster: AwsDAXSc
}

input AwsDAXDeleteClusterInput {
  ClusterName: String!
}

type AwsDAXDeleteParameterGroupOutput {
  DeletionMessage: String
}

input AwsDAXDeleteParameterGroupInput {
  ParameterGroupName: String!
}

type AwsDAXDeleteSubnetGroupOutput {
  DeletionMessage: String
}

input AwsDAXDeleteSubnetGroupInput {
  SubnetGroupName: String!
}

type AwsDAXDescribeClustersOutput {
  NextToken: String
  Clusters: [AwsDAXSc]
}

input AwsDAXDescribeClustersInput {
  ClusterNames: [String]
  MaxResults: Int
  NextToken: String
}

type AwsDAXDescribeDefaultParametersOutput {
  NextToken: String
  Parameters: [AwsDAXS1c]
}

type AwsDAXS1c {
  ParameterName: String
  ParameterType: String
  ParameterValue: String
  NodeTypeSpecificValues: [AwsDAXS1cNodeTypeSpecificValues]
  Description: String
  Source: String
  DataType: String
  AllowedValues: String
  IsModifiable: String
  ChangeType: String
}

type AwsDAXS1cNodeTypeSpecificValues {
  NodeType: String
  Value: String
}

input AwsDAXDescribeDefaultParametersInput {
  MaxResults: Int
  NextToken: String
}

type AwsDAXDescribeEventsOutput {
  NextToken: String
  Events: [AwsDAXDescribeEventsOutputEvents]
}

type AwsDAXDescribeEventsOutputEvents {
  SourceName: String
  SourceType: String
  Message: String
  Date: Date
}

input AwsDAXDescribeEventsInput {
  SourceName: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  MaxResults: Int
  NextToken: String
}

type AwsDAXDescribeParameterGroupsOutput {
  NextToken: String
  ParameterGroups: [AwsDAXSr]
}

input AwsDAXDescribeParameterGroupsInput {
  ParameterGroupNames: [String]
  MaxResults: Int
  NextToken: String
}

type AwsDAXDescribeParametersOutput {
  NextToken: String
  Parameters: [AwsDAXS1c]
}

input AwsDAXDescribeParametersInput {
  ParameterGroupName: String!
  Source: String
  MaxResults: Int
  NextToken: String
}

type AwsDAXDescribeSubnetGroupsOutput {
  NextToken: String
  SubnetGroups: [AwsDAXSv]
}

input AwsDAXDescribeSubnetGroupsInput {
  SubnetGroupNames: [String]
  MaxResults: Int
  NextToken: String
}

type AwsDAXIncreaseReplicationFactorOutput {
  Cluster: AwsDAXSc
}

input AwsDAXIncreaseReplicationFactorInput {
  ClusterName: String!
  NewReplicationFactor: Int!
  AvailabilityZones: [String]
}

type AwsDAXListTagsOutput {
  Tags: [AwsDAXS6]
  NextToken: String
}

type AwsDAXS6 {
  Key: String
  Value: String
}

input AwsDAXListTagsInput {
  ResourceName: String!
  NextToken: String
}

type AwsDAXRebootNodeOutput {
  Cluster: AwsDAXSc
}

input AwsDAXRebootNodeInput {
  ClusterName: String!
  NodeId: String!
}

type AwsDAXTagResourceOutput {
  Tags: [AwsDAXS6]
}

input AwsDAXTagResourceInput {
  ResourceName: String!
  Tags: [AwsDAXS6Input]!
}

type AwsDAXUntagResourceOutput {
  Tags: [AwsDAXS6]
}

input AwsDAXUntagResourceInput {
  ResourceName: String!
  TagKeys: [String]!
}

type AwsDAXUpdateClusterOutput {
  Cluster: AwsDAXSc
}

input AwsDAXUpdateClusterInput {
  ClusterName: String!
  Description: String
  PreferredMaintenanceWindow: String
  NotificationTopicArn: String
  NotificationTopicStatus: String
  ParameterGroupName: String
  SecurityGroupIds: [String]
}

type AwsDAXUpdateParameterGroupOutput {
  ParameterGroup: AwsDAXSr
}

input AwsDAXUpdateParameterGroupInput {
  ParameterGroupName: String!
  ParameterNameValues: [AwsDAXUpdateParameterGroupParameterNameValuesInput]!
}

input AwsDAXUpdateParameterGroupParameterNameValuesInput {
  ParameterName: String
  ParameterValue: String
}

type AwsDAXUpdateSubnetGroupOutput {
  SubnetGroup: AwsDAXSv
}

input AwsDAXUpdateSubnetGroupInput {
  SubnetGroupName: String!
  Description: String
  SubnetIds: [String]
}

"""Amazon Data Lifecycle Manager (2018-01-12)"""
type AwsDLM {
  createLifecyclePolicy(input: AwsDLMCreateLifecyclePolicyInput!, config: AwsConfig): AwsDLMCreateLifecyclePolicyOutput
  deleteLifecyclePolicy(input: AwsDLMDeleteLifecyclePolicyInput!, config: AwsConfig): JSON
  getLifecyclePolicies(input: AwsDLMGetLifecyclePoliciesInput, config: AwsConfig): AwsDLMGetLifecyclePoliciesOutput
  getLifecyclePolicy(input: AwsDLMGetLifecyclePolicyInput!, config: AwsConfig): AwsDLMGetLifecyclePolicyOutput
  listTagsForResource(input: AwsDLMListTagsForResourceInput!, config: AwsConfig): AwsDLMListTagsForResourceOutput
  tagResource(input: AwsDLMTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDLMUntagResourceInput!, config: AwsConfig): JSON
  updateLifecyclePolicy(input: AwsDLMUpdateLifecyclePolicyInput!, config: AwsConfig): JSON
}

type AwsDLMCreateLifecyclePolicyOutput {
  PolicyId: String
}

input AwsDLMCreateLifecyclePolicyInput {
  ExecutionRoleArn: String!
  Description: String!
  State: String!
  PolicyDetails: AwsDLMS5Input!
  Tags: JSON
}

input AwsDLMS5Input {
  PolicyType: String
  ResourceTypes: [String]
  ResourceLocations: [String]
  TargetTags: [AwsDLMScInput]
  Schedules: [AwsDLMS5SchedulesInput]
  Parameters: AwsDLMS5ParametersInput
  EventSource: AwsDLMS5EventSourceInput
  Actions: [AwsDLMS5ActionsInput]
}

input AwsDLMScInput {
  Key: String!
  Value: String!
}

input AwsDLMS5SchedulesInput {
  Name: String
  CopyTags: Boolean
  TagsToAdd: [AwsDLMScInput]
  VariableTags: [AwsDLMScInput]
  CreateRule: AwsDLMS5SchedulesCreateRuleInput
  RetainRule: AwsDLMS5SchedulesRetainRuleInput
  FastRestoreRule: AwsDLMS5SchedulesFastRestoreRuleInput
  CrossRegionCopyRules: [AwsDLMS5SchedulesCrossRegionCopyRulesInput]
  ShareRules: [AwsDLMS5SchedulesShareRulesInput]
}

input AwsDLMS5SchedulesCreateRuleInput {
  Location: String
  Interval: Int
  IntervalUnit: String
  Times: [String]
  CronExpression: String
}

input AwsDLMS5SchedulesRetainRuleInput {
  Count: Int
  Interval: Int
  IntervalUnit: String
}

input AwsDLMS5SchedulesFastRestoreRuleInput {
  Count: Int
  Interval: Int
  IntervalUnit: String
  AvailabilityZones: [String]!
}

input AwsDLMS5SchedulesCrossRegionCopyRulesInput {
  TargetRegion: String
  Target: String
  Encrypted: Boolean!
  CmkArn: String
  CopyTags: Boolean
  RetainRule: AwsDLMS14Input
}

input AwsDLMS14Input {
  Interval: Int
  IntervalUnit: String
}

input AwsDLMS5SchedulesShareRulesInput {
  TargetAccounts: [String]!
  UnshareInterval: Int
  UnshareIntervalUnit: String
}

input AwsDLMS5ParametersInput {
  ExcludeBootVolume: Boolean
  NoReboot: Boolean
}

input AwsDLMS5EventSourceInput {
  Type: String!
  Parameters: AwsDLMS5EventSourceParametersInput
}

input AwsDLMS5EventSourceParametersInput {
  EventType: String!
  SnapshotOwner: [String]!
  DescriptionRegex: String!
}

input AwsDLMS5ActionsInput {
  Name: String!
  CrossRegionCopy: [AwsDLMS5ActionsCrossRegionCopyInput]!
}

input AwsDLMS5ActionsCrossRegionCopyInput {
  Target: String!
  EncryptionConfiguration: AwsDLMS5ActionsCrossRegionCopyEncryptionConfigurationInput!
  RetainRule: AwsDLMS14Input
}

input AwsDLMS5ActionsCrossRegionCopyEncryptionConfigurationInput {
  Encrypted: Boolean!
  CmkArn: String
}

input AwsDLMDeleteLifecyclePolicyInput {
  PolicyId: String!
}

type AwsDLMGetLifecyclePoliciesOutput {
  Policies: [AwsDLMGetLifecyclePoliciesOutputPolicies]
}

type AwsDLMGetLifecyclePoliciesOutputPolicies {
  PolicyId: String
  Description: String
  State: String
  Tags: JSON
  PolicyType: String
}

input AwsDLMGetLifecyclePoliciesInput {
  PolicyIds: [String]
  State: String
  ResourceTypes: [String]
  TargetTags: [String]
  TagsToAdd: [String]
}

type AwsDLMGetLifecyclePolicyOutput {
  Policy: AwsDLMGetLifecyclePolicyOutputPolicy
}

type AwsDLMGetLifecyclePolicyOutputPolicy {
  PolicyId: String
  Description: String
  State: String
  StatusMessage: String
  ExecutionRoleArn: String
  DateCreated: Date
  DateModified: Date
  PolicyDetails: AwsDLMS5
  Tags: JSON
  PolicyArn: String
}

type AwsDLMS5 {
  PolicyType: String
  ResourceTypes: [String]
  ResourceLocations: [String]
  TargetTags: [AwsDLMSc]
  Schedules: [AwsDLMS5Schedules]
  Parameters: AwsDLMS5Parameters
  EventSource: AwsDLMS5EventSource
  Actions: [AwsDLMS5Actions]
}

type AwsDLMSc {
  Key: String!
  Value: String!
}

type AwsDLMS5Schedules {
  Name: String
  CopyTags: Boolean
  TagsToAdd: [AwsDLMSc]
  VariableTags: [AwsDLMSc]
  CreateRule: AwsDLMS5SchedulesCreateRule
  RetainRule: AwsDLMS5SchedulesRetainRule
  FastRestoreRule: AwsDLMS5SchedulesFastRestoreRule
  CrossRegionCopyRules: [AwsDLMS5SchedulesCrossRegionCopyRules]
  ShareRules: [AwsDLMS5SchedulesShareRules]
}

type AwsDLMS5SchedulesCreateRule {
  Location: String
  Interval: Int
  IntervalUnit: String
  Times: [String]
  CronExpression: String
}

type AwsDLMS5SchedulesRetainRule {
  Count: Int
  Interval: Int
  IntervalUnit: String
}

type AwsDLMS5SchedulesFastRestoreRule {
  Count: Int
  Interval: Int
  IntervalUnit: String
  AvailabilityZones: [String]!
}

type AwsDLMS5SchedulesCrossRegionCopyRules {
  TargetRegion: String
  Target: String
  Encrypted: Boolean!
  CmkArn: String
  CopyTags: Boolean
  RetainRule: AwsDLMS14
}

type AwsDLMS14 {
  Interval: Int
  IntervalUnit: String
}

type AwsDLMS5SchedulesShareRules {
  TargetAccounts: [String]!
  UnshareInterval: Int
  UnshareIntervalUnit: String
}

type AwsDLMS5Parameters {
  ExcludeBootVolume: Boolean
  NoReboot: Boolean
}

type AwsDLMS5EventSource {
  Type: String!
  Parameters: AwsDLMS5EventSourceParameters
}

type AwsDLMS5EventSourceParameters {
  EventType: String!
  SnapshotOwner: [String]!
  DescriptionRegex: String!
}

type AwsDLMS5Actions {
  Name: String!
  CrossRegionCopy: [AwsDLMS5ActionsCrossRegionCopy]!
}

type AwsDLMS5ActionsCrossRegionCopy {
  Target: String!
  EncryptionConfiguration: AwsDLMS5ActionsCrossRegionCopyEncryptionConfiguration!
  RetainRule: AwsDLMS14
}

type AwsDLMS5ActionsCrossRegionCopyEncryptionConfiguration {
  Encrypted: Boolean!
  CmkArn: String
}

input AwsDLMGetLifecyclePolicyInput {
  PolicyId: String!
}

type AwsDLMListTagsForResourceOutput {
  Tags: JSON
}

input AwsDLMListTagsForResourceInput {
  ResourceArn: String!
}

input AwsDLMTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsDLMUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsDLMUpdateLifecyclePolicyInput {
  PolicyId: String!
  ExecutionRoleArn: String
  State: String
  Description: String
  PolicyDetails: AwsDLMS5Input
}

"""AWS Database Migration Service (2016-01-01)"""
type AwsDMS {
  addTagsToResource(input: AwsDMSAddTagsToResourceInput!, config: AwsConfig): JSON
  applyPendingMaintenanceAction(input: AwsDMSApplyPendingMaintenanceActionInput!, config: AwsConfig): AwsDMSApplyPendingMaintenanceActionOutput
  cancelReplicationTaskAssessmentRun(input: AwsDMSCancelReplicationTaskAssessmentRunInput!, config: AwsConfig): AwsDMSCancelReplicationTaskAssessmentRunOutput
  createEndpoint(input: AwsDMSCreateEndpointInput!, config: AwsConfig): AwsDMSCreateEndpointOutput
  createEventSubscription(input: AwsDMSCreateEventSubscriptionInput!, config: AwsConfig): AwsDMSCreateEventSubscriptionOutput
  createReplicationInstance(input: AwsDMSCreateReplicationInstanceInput!, config: AwsConfig): AwsDMSCreateReplicationInstanceOutput
  createReplicationSubnetGroup(input: AwsDMSCreateReplicationSubnetGroupInput!, config: AwsConfig): AwsDMSCreateReplicationSubnetGroupOutput
  createReplicationTask(input: AwsDMSCreateReplicationTaskInput!, config: AwsConfig): AwsDMSCreateReplicationTaskOutput
  deleteCertificate(input: AwsDMSDeleteCertificateInput!, config: AwsConfig): AwsDMSDeleteCertificateOutput
  deleteConnection(input: AwsDMSDeleteConnectionInput!, config: AwsConfig): AwsDMSDeleteConnectionOutput
  deleteEndpoint(input: AwsDMSDeleteEndpointInput!, config: AwsConfig): AwsDMSDeleteEndpointOutput
  deleteEventSubscription(input: AwsDMSDeleteEventSubscriptionInput!, config: AwsConfig): AwsDMSDeleteEventSubscriptionOutput
  deleteReplicationInstance(input: AwsDMSDeleteReplicationInstanceInput!, config: AwsConfig): AwsDMSDeleteReplicationInstanceOutput
  deleteReplicationSubnetGroup(input: AwsDMSDeleteReplicationSubnetGroupInput!, config: AwsConfig): JSON
  deleteReplicationTask(input: AwsDMSDeleteReplicationTaskInput!, config: AwsConfig): AwsDMSDeleteReplicationTaskOutput
  deleteReplicationTaskAssessmentRun(input: AwsDMSDeleteReplicationTaskAssessmentRunInput!, config: AwsConfig): AwsDMSDeleteReplicationTaskAssessmentRunOutput
  describeAccountAttributes(input: JSON, config: AwsConfig): AwsDMSDescribeAccountAttributesOutput
  describeApplicableIndividualAssessments(input: AwsDMSDescribeApplicableIndividualAssessmentsInput, config: AwsConfig): AwsDMSDescribeApplicableIndividualAssessmentsOutput
  describeCertificates(input: AwsDMSDescribeCertificatesInput, config: AwsConfig): AwsDMSDescribeCertificatesOutput
  describeConnections(input: AwsDMSDescribeConnectionsInput, config: AwsConfig): AwsDMSDescribeConnectionsOutput
  describeEndpointSettings(input: AwsDMSDescribeEndpointSettingsInput!, config: AwsConfig): AwsDMSDescribeEndpointSettingsOutput
  describeEndpointTypes(input: AwsDMSDescribeEndpointTypesInput, config: AwsConfig): AwsDMSDescribeEndpointTypesOutput
  describeEndpoints(input: AwsDMSDescribeEndpointsInput, config: AwsConfig): AwsDMSDescribeEndpointsOutput
  describeEventCategories(input: AwsDMSDescribeEventCategoriesInput, config: AwsConfig): AwsDMSDescribeEventCategoriesOutput
  describeEventSubscriptions(input: AwsDMSDescribeEventSubscriptionsInput, config: AwsConfig): AwsDMSDescribeEventSubscriptionsOutput
  describeEvents(input: AwsDMSDescribeEventsInput, config: AwsConfig): AwsDMSDescribeEventsOutput
  describeOrderableReplicationInstances(input: AwsDMSDescribeOrderableReplicationInstancesInput, config: AwsConfig): AwsDMSDescribeOrderableReplicationInstancesOutput
  describePendingMaintenanceActions(input: AwsDMSDescribePendingMaintenanceActionsInput, config: AwsConfig): AwsDMSDescribePendingMaintenanceActionsOutput
  describeRefreshSchemasStatus(input: AwsDMSDescribeRefreshSchemasStatusInput!, config: AwsConfig): AwsDMSDescribeRefreshSchemasStatusOutput
  describeReplicationInstanceTaskLogs(input: AwsDMSDescribeReplicationInstanceTaskLogsInput!, config: AwsConfig): AwsDMSDescribeReplicationInstanceTaskLogsOutput
  describeReplicationInstances(input: AwsDMSDescribeReplicationInstancesInput, config: AwsConfig): AwsDMSDescribeReplicationInstancesOutput
  describeReplicationSubnetGroups(input: AwsDMSDescribeReplicationSubnetGroupsInput, config: AwsConfig): AwsDMSDescribeReplicationSubnetGroupsOutput
  describeReplicationTaskAssessmentResults(input: AwsDMSDescribeReplicationTaskAssessmentResultsInput, config: AwsConfig): AwsDMSDescribeReplicationTaskAssessmentResultsOutput
  describeReplicationTaskAssessmentRuns(input: AwsDMSDescribeReplicationTaskAssessmentRunsInput, config: AwsConfig): AwsDMSDescribeReplicationTaskAssessmentRunsOutput
  describeReplicationTaskIndividualAssessments(input: AwsDMSDescribeReplicationTaskIndividualAssessmentsInput, config: AwsConfig): AwsDMSDescribeReplicationTaskIndividualAssessmentsOutput
  describeReplicationTasks(input: AwsDMSDescribeReplicationTasksInput, config: AwsConfig): AwsDMSDescribeReplicationTasksOutput
  describeSchemas(input: AwsDMSDescribeSchemasInput!, config: AwsConfig): AwsDMSDescribeSchemasOutput
  describeTableStatistics(input: AwsDMSDescribeTableStatisticsInput!, config: AwsConfig): AwsDMSDescribeTableStatisticsOutput
  importCertificate(input: AwsDMSImportCertificateInput!, config: AwsConfig): AwsDMSImportCertificateOutput
  listTagsForResource(input: AwsDMSListTagsForResourceInput!, config: AwsConfig): AwsDMSListTagsForResourceOutput
  modifyEndpoint(input: AwsDMSModifyEndpointInput!, config: AwsConfig): AwsDMSModifyEndpointOutput
  modifyEventSubscription(input: AwsDMSModifyEventSubscriptionInput!, config: AwsConfig): AwsDMSModifyEventSubscriptionOutput
  modifyReplicationInstance(input: AwsDMSModifyReplicationInstanceInput!, config: AwsConfig): AwsDMSModifyReplicationInstanceOutput
  modifyReplicationSubnetGroup(input: AwsDMSModifyReplicationSubnetGroupInput!, config: AwsConfig): AwsDMSModifyReplicationSubnetGroupOutput
  modifyReplicationTask(input: AwsDMSModifyReplicationTaskInput!, config: AwsConfig): AwsDMSModifyReplicationTaskOutput
  moveReplicationTask(input: AwsDMSMoveReplicationTaskInput!, config: AwsConfig): AwsDMSMoveReplicationTaskOutput
  rebootReplicationInstance(input: AwsDMSRebootReplicationInstanceInput!, config: AwsConfig): AwsDMSRebootReplicationInstanceOutput
  refreshSchemas(input: AwsDMSRefreshSchemasInput!, config: AwsConfig): AwsDMSRefreshSchemasOutput
  reloadTables(input: AwsDMSReloadTablesInput!, config: AwsConfig): AwsDMSReloadTablesOutput
  removeTagsFromResource(input: AwsDMSRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  startReplicationTask(input: AwsDMSStartReplicationTaskInput!, config: AwsConfig): AwsDMSStartReplicationTaskOutput
  startReplicationTaskAssessment(input: AwsDMSStartReplicationTaskAssessmentInput!, config: AwsConfig): AwsDMSStartReplicationTaskAssessmentOutput
  startReplicationTaskAssessmentRun(input: AwsDMSStartReplicationTaskAssessmentRunInput!, config: AwsConfig): AwsDMSStartReplicationTaskAssessmentRunOutput
  stopReplicationTask(input: AwsDMSStopReplicationTaskInput!, config: AwsConfig): AwsDMSStopReplicationTaskOutput
  testConnection(input: AwsDMSTestConnectionInput!, config: AwsConfig): AwsDMSTestConnectionOutput
}

input AwsDMSAddTagsToResourceInput {
  ResourceArn: String!
  Tags: [AwsDMSS3Input]!
}

input AwsDMSS3Input {
  Key: String
  Value: String
}

type AwsDMSApplyPendingMaintenanceActionOutput {
  ResourcePendingMaintenanceActions: AwsDMSS8
}

type AwsDMSS8 {
  ResourceIdentifier: String
  PendingMaintenanceActionDetails: [AwsDMSS8PendingMaintenanceActionDetails]
}

type AwsDMSS8PendingMaintenanceActionDetails {
  Action: String
  AutoAppliedAfterDate: Date
  ForcedApplyDate: Date
  OptInStatus: String
  CurrentApplyDate: Date
  Description: String
}

input AwsDMSApplyPendingMaintenanceActionInput {
  ReplicationInstanceArn: String!
  ApplyAction: String!
  OptInType: String!
}

type AwsDMSCancelReplicationTaskAssessmentRunOutput {
  ReplicationTaskAssessmentRun: AwsDMSSe
}

type AwsDMSSe {
  ReplicationTaskAssessmentRunArn: String
  ReplicationTaskArn: String
  Status: String
  ReplicationTaskAssessmentRunCreationDate: Date
  AssessmentProgress: AwsDMSSeAssessmentProgress
  LastFailureMessage: String
  ServiceAccessRoleArn: String
  ResultLocationBucket: String
  ResultLocationFolder: String
  ResultEncryptionMode: String
  ResultKmsKeyArn: String
  AssessmentRunName: String
}

type AwsDMSSeAssessmentProgress {
  IndividualAssessmentCount: Int
  IndividualAssessmentCompletedCount: Int
}

input AwsDMSCancelReplicationTaskAssessmentRunInput {
  ReplicationTaskAssessmentRunArn: String!
}

type AwsDMSCreateEndpointOutput {
  Endpoint: AwsDMSS1j
}

type AwsDMSS1j {
  EndpointIdentifier: String
  EndpointType: String
  EngineName: String
  EngineDisplayName: String
  Username: String
  ServerName: String
  Port: Int
  DatabaseName: String
  ExtraConnectionAttributes: String
  Status: String
  KmsKeyId: String
  EndpointArn: String
  CertificateArn: String
  SslMode: String
  ServiceAccessRoleArn: String
  ExternalTableDefinition: String
  ExternalId: String
  DynamoDbSettings: AwsDMSSm
  S3Settings: AwsDMSSn
  DmsTransferSettings: AwsDMSSw
  MongoDbSettings: AwsDMSSx
  KinesisSettings: AwsDMSS11
  KafkaSettings: AwsDMSS13
  ElasticsearchSettings: AwsDMSS15
  NeptuneSettings: AwsDMSS16
  RedshiftSettings: AwsDMSS17
  PostgreSQLSettings: AwsDMSS18
  MySQLSettings: AwsDMSS19
  OracleSettings: AwsDMSS1b
  SybaseSettings: AwsDMSS1d
  MicrosoftSQLServerSettings: AwsDMSS1e
  IBMDb2Settings: AwsDMSS1g
  DocDbSettings: AwsDMSS1h
}

type AwsDMSSm {
  ServiceAccessRoleArn: String!
}

type AwsDMSSn {
  ServiceAccessRoleArn: String
  ExternalTableDefinition: String
  CsvRowDelimiter: String
  CsvDelimiter: String
  BucketFolder: String
  BucketName: String
  CompressionType: String
  EncryptionMode: String
  ServerSideEncryptionKmsKeyId: String
  DataFormat: String
  EncodingType: String
  DictPageSizeLimit: Int
  RowGroupLength: Int
  DataPageSize: Int
  ParquetVersion: String
  EnableStatistics: Boolean
  IncludeOpForFullLoad: Boolean
  CdcInsertsOnly: Boolean
  TimestampColumnName: String
  ParquetTimestampInMillisecond: Boolean
  CdcInsertsAndUpdates: Boolean
  DatePartitionEnabled: Boolean
  DatePartitionSequence: String
  DatePartitionDelimiter: String
  UseCsvNoSupValue: Boolean
  CsvNoSupValue: String
  PreserveTransactions: Boolean
  CdcPath: String
}

type AwsDMSSw {
  ServiceAccessRoleArn: String
  BucketName: String
}

type AwsDMSSx {
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  AuthType: String
  AuthMechanism: String
  NestingLevel: String
  ExtractDocId: String
  DocsToInvestigate: String
  AuthSource: String
  KmsKeyId: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS11 {
  StreamArn: String
  MessageFormat: String
  ServiceAccessRoleArn: String
  IncludeTransactionDetails: Boolean
  IncludePartitionValue: Boolean
  PartitionIncludeSchemaTable: Boolean
  IncludeTableAlterOperations: Boolean
  IncludeControlDetails: Boolean
  IncludeNullAndEmpty: Boolean
}

type AwsDMSS13 {
  Broker: String
  Topic: String
  MessageFormat: String
  IncludeTransactionDetails: Boolean
  IncludePartitionValue: Boolean
  PartitionIncludeSchemaTable: Boolean
  IncludeTableAlterOperations: Boolean
  IncludeControlDetails: Boolean
  MessageMaxBytes: Int
  IncludeNullAndEmpty: Boolean
  SecurityProtocol: String
  SslClientCertificateArn: String
  SslClientKeyArn: String
  SslClientKeyPassword: String
  SslCaCertificateArn: String
  SaslUsername: String
  SaslPassword: String
}

type AwsDMSS15 {
  ServiceAccessRoleArn: String!
  EndpointUri: String!
  FullLoadErrorPercentage: Int
  ErrorRetryDuration: Int
}

type AwsDMSS16 {
  ServiceAccessRoleArn: String
  S3BucketName: String!
  S3BucketFolder: String!
  ErrorRetryDuration: Int
  MaxFileSize: Int
  MaxRetryCount: Int
  IamAuthEnabled: Boolean
}

type AwsDMSS17 {
  AcceptAnyDate: Boolean
  AfterConnectScript: String
  BucketFolder: String
  BucketName: String
  CaseSensitiveNames: Boolean
  CompUpdate: Boolean
  ConnectionTimeout: Int
  DatabaseName: String
  DateFormat: String
  EmptyAsNull: Boolean
  EncryptionMode: String
  ExplicitIds: Boolean
  FileTransferUploadStreams: Int
  LoadTimeout: Int
  MaxFileSize: Int
  Password: String
  Port: Int
  RemoveQuotes: Boolean
  ReplaceInvalidChars: String
  ReplaceChars: String
  ServerName: String
  ServiceAccessRoleArn: String
  ServerSideEncryptionKmsKeyId: String
  TimeFormat: String
  TrimBlanks: Boolean
  TruncateColumns: Boolean
  Username: String
  WriteBufferSize: Int
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS18 {
  AfterConnectScript: String
  CaptureDdls: Boolean
  MaxFileSize: Int
  DatabaseName: String
  DdlArtifactsSchema: String
  ExecuteTimeout: Int
  FailTasksOnLobTruncation: Boolean
  Password: String
  Port: Int
  ServerName: String
  Username: String
  SlotName: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS19 {
  AfterConnectScript: String
  CleanSourceMetadataOnMismatch: Boolean
  DatabaseName: String
  EventsPollInterval: Int
  TargetDbType: String
  MaxFileSize: Int
  ParallelLoadThreads: Int
  Password: String
  Port: Int
  ServerName: String
  ServerTimezone: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS1b {
  AddSupplementalLogging: Boolean
  ArchivedLogDestId: Int
  AdditionalArchivedLogDestId: Int
  AllowSelectNestedTables: Boolean
  ParallelAsmReadThreads: Int
  ReadAheadBlocks: Int
  AccessAlternateDirectly: Boolean
  UseAlternateFolderForOnline: Boolean
  OraclePathPrefix: String
  UsePathPrefix: String
  ReplacePathPrefix: Boolean
  EnableHomogenousTablespace: Boolean
  DirectPathNoLog: Boolean
  ArchivedLogsOnly: Boolean
  AsmPassword: String
  AsmServer: String
  AsmUser: String
  CharLengthSemantics: String
  DatabaseName: String
  DirectPathParallelLoad: Boolean
  FailTasksOnLobTruncation: Boolean
  NumberDatatypeScale: Int
  Password: String
  Port: Int
  ReadTableSpaceName: Boolean
  RetryInterval: Int
  SecurityDbEncryption: String
  SecurityDbEncryptionName: String
  ServerName: String
  SpatialDataOptionToGeoJsonFunctionName: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
  SecretsManagerOracleAsmAccessRoleArn: String
  SecretsManagerOracleAsmSecretId: String
}

type AwsDMSS1d {
  DatabaseName: String
  Password: String
  Port: Int
  ServerName: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS1e {
  Port: Int
  BcpPacketSize: Int
  DatabaseName: String
  ControlTablesFileGroup: String
  Password: String
  QuerySingleAlwaysOnNode: Boolean
  ReadBackupOnly: Boolean
  SafeguardPolicy: String
  ServerName: String
  Username: String
  UseBcpFullLoad: Boolean
  UseThirdPartyBackupDevice: Boolean
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS1g {
  DatabaseName: String
  Password: String
  Port: Int
  ServerName: String
  SetDataCaptureChanges: Boolean
  CurrentLsn: String
  MaxKBytesPerRead: Int
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSS1h {
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  NestingLevel: String
  ExtractDocId: Boolean
  DocsToInvestigate: Int
  KmsKeyId: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSCreateEndpointInput {
  EndpointIdentifier: String!
  EndpointType: String!
  EngineName: String!
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  ExtraConnectionAttributes: String
  KmsKeyId: String
  Tags: [AwsDMSS3Input]
  CertificateArn: String
  SslMode: String
  ServiceAccessRoleArn: String
  ExternalTableDefinition: String
  DynamoDbSettings: AwsDMSSmInput
  S3Settings: AwsDMSSnInput
  DmsTransferSettings: AwsDMSSwInput
  MongoDbSettings: AwsDMSSxInput
  KinesisSettings: AwsDMSS11Input
  KafkaSettings: AwsDMSS13Input
  ElasticsearchSettings: AwsDMSS15Input
  NeptuneSettings: AwsDMSS16Input
  RedshiftSettings: AwsDMSS17Input
  PostgreSQLSettings: AwsDMSS18Input
  MySQLSettings: AwsDMSS19Input
  OracleSettings: AwsDMSS1bInput
  SybaseSettings: AwsDMSS1dInput
  MicrosoftSQLServerSettings: AwsDMSS1eInput
  IBMDb2Settings: AwsDMSS1gInput
  ResourceIdentifier: String
  DocDbSettings: AwsDMSS1hInput
}

input AwsDMSSmInput {
  ServiceAccessRoleArn: String!
}

input AwsDMSSnInput {
  ServiceAccessRoleArn: String
  ExternalTableDefinition: String
  CsvRowDelimiter: String
  CsvDelimiter: String
  BucketFolder: String
  BucketName: String
  CompressionType: String
  EncryptionMode: String
  ServerSideEncryptionKmsKeyId: String
  DataFormat: String
  EncodingType: String
  DictPageSizeLimit: Int
  RowGroupLength: Int
  DataPageSize: Int
  ParquetVersion: String
  EnableStatistics: Boolean
  IncludeOpForFullLoad: Boolean
  CdcInsertsOnly: Boolean
  TimestampColumnName: String
  ParquetTimestampInMillisecond: Boolean
  CdcInsertsAndUpdates: Boolean
  DatePartitionEnabled: Boolean
  DatePartitionSequence: String
  DatePartitionDelimiter: String
  UseCsvNoSupValue: Boolean
  CsvNoSupValue: String
  PreserveTransactions: Boolean
  CdcPath: String
}

input AwsDMSSwInput {
  ServiceAccessRoleArn: String
  BucketName: String
}

input AwsDMSSxInput {
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  AuthType: String
  AuthMechanism: String
  NestingLevel: String
  ExtractDocId: String
  DocsToInvestigate: String
  AuthSource: String
  KmsKeyId: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS11Input {
  StreamArn: String
  MessageFormat: String
  ServiceAccessRoleArn: String
  IncludeTransactionDetails: Boolean
  IncludePartitionValue: Boolean
  PartitionIncludeSchemaTable: Boolean
  IncludeTableAlterOperations: Boolean
  IncludeControlDetails: Boolean
  IncludeNullAndEmpty: Boolean
}

input AwsDMSS13Input {
  Broker: String
  Topic: String
  MessageFormat: String
  IncludeTransactionDetails: Boolean
  IncludePartitionValue: Boolean
  PartitionIncludeSchemaTable: Boolean
  IncludeTableAlterOperations: Boolean
  IncludeControlDetails: Boolean
  MessageMaxBytes: Int
  IncludeNullAndEmpty: Boolean
  SecurityProtocol: String
  SslClientCertificateArn: String
  SslClientKeyArn: String
  SslClientKeyPassword: String
  SslCaCertificateArn: String
  SaslUsername: String
  SaslPassword: String
}

input AwsDMSS15Input {
  ServiceAccessRoleArn: String!
  EndpointUri: String!
  FullLoadErrorPercentage: Int
  ErrorRetryDuration: Int
}

input AwsDMSS16Input {
  ServiceAccessRoleArn: String
  S3BucketName: String!
  S3BucketFolder: String!
  ErrorRetryDuration: Int
  MaxFileSize: Int
  MaxRetryCount: Int
  IamAuthEnabled: Boolean
}

input AwsDMSS17Input {
  AcceptAnyDate: Boolean
  AfterConnectScript: String
  BucketFolder: String
  BucketName: String
  CaseSensitiveNames: Boolean
  CompUpdate: Boolean
  ConnectionTimeout: Int
  DatabaseName: String
  DateFormat: String
  EmptyAsNull: Boolean
  EncryptionMode: String
  ExplicitIds: Boolean
  FileTransferUploadStreams: Int
  LoadTimeout: Int
  MaxFileSize: Int
  Password: String
  Port: Int
  RemoveQuotes: Boolean
  ReplaceInvalidChars: String
  ReplaceChars: String
  ServerName: String
  ServiceAccessRoleArn: String
  ServerSideEncryptionKmsKeyId: String
  TimeFormat: String
  TrimBlanks: Boolean
  TruncateColumns: Boolean
  Username: String
  WriteBufferSize: Int
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS18Input {
  AfterConnectScript: String
  CaptureDdls: Boolean
  MaxFileSize: Int
  DatabaseName: String
  DdlArtifactsSchema: String
  ExecuteTimeout: Int
  FailTasksOnLobTruncation: Boolean
  Password: String
  Port: Int
  ServerName: String
  Username: String
  SlotName: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS19Input {
  AfterConnectScript: String
  CleanSourceMetadataOnMismatch: Boolean
  DatabaseName: String
  EventsPollInterval: Int
  TargetDbType: String
  MaxFileSize: Int
  ParallelLoadThreads: Int
  Password: String
  Port: Int
  ServerName: String
  ServerTimezone: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS1bInput {
  AddSupplementalLogging: Boolean
  ArchivedLogDestId: Int
  AdditionalArchivedLogDestId: Int
  AllowSelectNestedTables: Boolean
  ParallelAsmReadThreads: Int
  ReadAheadBlocks: Int
  AccessAlternateDirectly: Boolean
  UseAlternateFolderForOnline: Boolean
  OraclePathPrefix: String
  UsePathPrefix: String
  ReplacePathPrefix: Boolean
  EnableHomogenousTablespace: Boolean
  DirectPathNoLog: Boolean
  ArchivedLogsOnly: Boolean
  AsmPassword: String
  AsmServer: String
  AsmUser: String
  CharLengthSemantics: String
  DatabaseName: String
  DirectPathParallelLoad: Boolean
  FailTasksOnLobTruncation: Boolean
  NumberDatatypeScale: Int
  Password: String
  Port: Int
  ReadTableSpaceName: Boolean
  RetryInterval: Int
  SecurityDbEncryption: String
  SecurityDbEncryptionName: String
  ServerName: String
  SpatialDataOptionToGeoJsonFunctionName: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
  SecretsManagerOracleAsmAccessRoleArn: String
  SecretsManagerOracleAsmSecretId: String
}

input AwsDMSS1dInput {
  DatabaseName: String
  Password: String
  Port: Int
  ServerName: String
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS1eInput {
  Port: Int
  BcpPacketSize: Int
  DatabaseName: String
  ControlTablesFileGroup: String
  Password: String
  QuerySingleAlwaysOnNode: Boolean
  ReadBackupOnly: Boolean
  SafeguardPolicy: String
  ServerName: String
  Username: String
  UseBcpFullLoad: Boolean
  UseThirdPartyBackupDevice: Boolean
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS1gInput {
  DatabaseName: String
  Password: String
  Port: Int
  ServerName: String
  SetDataCaptureChanges: Boolean
  CurrentLsn: String
  MaxKBytesPerRead: Int
  Username: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

input AwsDMSS1hInput {
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  NestingLevel: String
  ExtractDocId: Boolean
  DocsToInvestigate: Int
  KmsKeyId: String
  SecretsManagerAccessRoleArn: String
  SecretsManagerSecretId: String
}

type AwsDMSCreateEventSubscriptionOutput {
  EventSubscription: AwsDMSS1o
}

type AwsDMSS1o {
  CustomerAwsId: String
  CustSubscriptionId: String
  SnsTopicArn: String
  Status: String
  SubscriptionCreationTime: String
  SourceType: String
  SourceIdsList: [String]
  EventCategoriesList: [String]
  Enabled: Boolean
}

input AwsDMSCreateEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String!
  SourceType: String
  EventCategories: [String]
  SourceIds: [String]
  Enabled: Boolean
  Tags: [AwsDMSS3Input]
}

type AwsDMSCreateReplicationInstanceOutput {
  ReplicationInstance: AwsDMSS1t
}

type AwsDMSS1t {
  ReplicationInstanceIdentifier: String
  ReplicationInstanceClass: String
  ReplicationInstanceStatus: String
  AllocatedStorage: Int
  InstanceCreateTime: Date
  VpcSecurityGroups: [AwsDMSS1tVpcSecurityGroups]
  AvailabilityZone: String
  ReplicationSubnetGroup: AwsDMSS1w
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsDMSS1tPendingModifiedValues
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  KmsKeyId: String
  ReplicationInstanceArn: String
  ReplicationInstancePublicIpAddress: String
  ReplicationInstancePrivateIpAddress: String
  ReplicationInstancePublicIpAddresses: [String]
  ReplicationInstancePrivateIpAddresses: [String]
  PubliclyAccessible: Boolean
  SecondaryAvailabilityZone: String
  FreeUntil: Date
  DnsNameServers: String
}

type AwsDMSS1tVpcSecurityGroups {
  VpcSecurityGroupId: String
  Status: String
}

type AwsDMSS1w {
  ReplicationSubnetGroupIdentifier: String
  ReplicationSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsDMSS1wSubnets]
}

type AwsDMSS1wSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsDMSS1wSubnetsSubnetAvailabilityZone
  SubnetStatus: String
}

type AwsDMSS1wSubnetsSubnetAvailabilityZone {
  Name: String
}

type AwsDMSS1tPendingModifiedValues {
  ReplicationInstanceClass: String
  AllocatedStorage: Int
  MultiAZ: Boolean
  EngineVersion: String
}

input AwsDMSCreateReplicationInstanceInput {
  ReplicationInstanceIdentifier: String!
  AllocatedStorage: Int
  ReplicationInstanceClass: String!
  VpcSecurityGroupIds: [String]
  AvailabilityZone: String
  ReplicationSubnetGroupIdentifier: String
  PreferredMaintenanceWindow: String
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  Tags: [AwsDMSS3Input]
  KmsKeyId: String
  PubliclyAccessible: Boolean
  DnsNameServers: String
  ResourceIdentifier: String
}

type AwsDMSCreateReplicationSubnetGroupOutput {
  ReplicationSubnetGroup: AwsDMSS1w
}

input AwsDMSCreateReplicationSubnetGroupInput {
  ReplicationSubnetGroupIdentifier: String!
  ReplicationSubnetGroupDescription: String!
  SubnetIds: [String]!
  Tags: [AwsDMSS3Input]
}

type AwsDMSCreateReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

type AwsDMSS29 {
  ReplicationTaskIdentifier: String
  SourceEndpointArn: String
  TargetEndpointArn: String
  ReplicationInstanceArn: String
  MigrationType: String
  TableMappings: String
  ReplicationTaskSettings: String
  Status: String
  LastFailureMessage: String
  StopReason: String
  ReplicationTaskCreationDate: Date
  ReplicationTaskStartDate: Date
  CdcStartPosition: String
  CdcStopPosition: String
  RecoveryCheckpoint: String
  ReplicationTaskArn: String
  ReplicationTaskStats: AwsDMSS29ReplicationTaskStats
  TaskData: String
  TargetReplicationInstanceArn: String
}

type AwsDMSS29ReplicationTaskStats {
  FullLoadProgressPercent: Int
  ElapsedTimeMillis: JSON
  TablesLoaded: Int
  TablesLoading: Int
  TablesQueued: Int
  TablesErrored: Int
  FreshStartDate: Date
  StartDate: Date
  StopDate: Date
  FullLoadStartDate: Date
  FullLoadFinishDate: Date
}

input AwsDMSCreateReplicationTaskInput {
  ReplicationTaskIdentifier: String!
  SourceEndpointArn: String!
  TargetEndpointArn: String!
  ReplicationInstanceArn: String!
  MigrationType: String!
  TableMappings: String!
  ReplicationTaskSettings: String
  CdcStartTime: Date
  CdcStartPosition: String
  CdcStopPosition: String
  Tags: [AwsDMSS3Input]
  TaskData: String
  ResourceIdentifier: String
}

type AwsDMSDeleteCertificateOutput {
  Certificate: AwsDMSS2e
}

type AwsDMSS2e {
  CertificateIdentifier: String
  CertificateCreationDate: Date
  CertificatePem: String
  CertificateWallet: JSON
  CertificateArn: String
  CertificateOwner: String
  ValidFromDate: Date
  ValidToDate: Date
  SigningAlgorithm: String
  KeyLength: Int
}

input AwsDMSDeleteCertificateInput {
  CertificateArn: String!
}

type AwsDMSDeleteConnectionOutput {
  Connection: AwsDMSS2i
}

type AwsDMSS2i {
  ReplicationInstanceArn: String
  EndpointArn: String
  Status: String
  LastFailureMessage: String
  EndpointIdentifier: String
  ReplicationInstanceIdentifier: String
}

input AwsDMSDeleteConnectionInput {
  EndpointArn: String!
  ReplicationInstanceArn: String!
}

type AwsDMSDeleteEndpointOutput {
  Endpoint: AwsDMSS1j
}

input AwsDMSDeleteEndpointInput {
  EndpointArn: String!
}

type AwsDMSDeleteEventSubscriptionOutput {
  EventSubscription: AwsDMSS1o
}

input AwsDMSDeleteEventSubscriptionInput {
  SubscriptionName: String!
}

type AwsDMSDeleteReplicationInstanceOutput {
  ReplicationInstance: AwsDMSS1t
}

input AwsDMSDeleteReplicationInstanceInput {
  ReplicationInstanceArn: String!
}

input AwsDMSDeleteReplicationSubnetGroupInput {
  ReplicationSubnetGroupIdentifier: String!
}

type AwsDMSDeleteReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSDeleteReplicationTaskInput {
  ReplicationTaskArn: String!
}

type AwsDMSDeleteReplicationTaskAssessmentRunOutput {
  ReplicationTaskAssessmentRun: AwsDMSSe
}

input AwsDMSDeleteReplicationTaskAssessmentRunInput {
  ReplicationTaskAssessmentRunArn: String!
}

type AwsDMSDescribeAccountAttributesOutput {
  AccountQuotas: [AwsDMSDescribeAccountAttributesOutputAccountQuotas]
  UniqueAccountIdentifier: String
}

type AwsDMSDescribeAccountAttributesOutputAccountQuotas {
  AccountQuotaName: String
  Used: JSON
  Max: JSON
}

type AwsDMSDescribeApplicableIndividualAssessmentsOutput {
  IndividualAssessmentNames: [String]
  Marker: String
}

input AwsDMSDescribeApplicableIndividualAssessmentsInput {
  ReplicationTaskArn: String
  ReplicationInstanceArn: String
  SourceEngineName: String
  TargetEngineName: String
  MigrationType: String
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeCertificatesOutput {
  Marker: String
  Certificates: [AwsDMSS2e]
}

input AwsDMSDescribeCertificatesInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

input AwsDMSS33Input {
  Name: String!
  Values: [String]!
}

type AwsDMSDescribeConnectionsOutput {
  Marker: String
  Connections: [AwsDMSS2i]
}

input AwsDMSDescribeConnectionsInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeEndpointSettingsOutput {
  Marker: String
  EndpointSettings: [AwsDMSDescribeEndpointSettingsOutputEndpointSettings]
}

type AwsDMSDescribeEndpointSettingsOutputEndpointSettings {
  Name: String
  Type: String
  EnumValues: [String]
  Sensitive: Boolean
  Units: String
  Applicability: String
  IntValueMin: Int
  IntValueMax: Int
}

input AwsDMSDescribeEndpointSettingsInput {
  EngineName: String!
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeEndpointTypesOutput {
  Marker: String
  SupportedEndpointTypes: [AwsDMSDescribeEndpointTypesOutputSupportedEndpointTypes]
}

type AwsDMSDescribeEndpointTypesOutputSupportedEndpointTypes {
  EngineName: String
  SupportsCDC: Boolean
  EndpointType: String
  ReplicationInstanceEngineMinimumVersion: String
  EngineDisplayName: String
}

input AwsDMSDescribeEndpointTypesInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeEndpointsOutput {
  Marker: String
  Endpoints: [AwsDMSS1j]
}

input AwsDMSDescribeEndpointsInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeEventCategoriesOutput {
  EventCategoryGroupList: [AwsDMSDescribeEventCategoriesOutputEventCategoryGroupList]
}

type AwsDMSDescribeEventCategoriesOutputEventCategoryGroupList {
  SourceType: String
  EventCategories: [String]
}

input AwsDMSDescribeEventCategoriesInput {
  SourceType: String
  Filters: [AwsDMSS33Input]
}

type AwsDMSDescribeEventSubscriptionsOutput {
  Marker: String
  EventSubscriptionsList: [AwsDMSS1o]
}

input AwsDMSDescribeEventSubscriptionsInput {
  SubscriptionName: String
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeEventsOutput {
  Marker: String
  Events: [AwsDMSDescribeEventsOutputEvents]
}

type AwsDMSDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  EventCategories: [String]
  Date: Date
}

input AwsDMSDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  EventCategories: [String]
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeOrderableReplicationInstancesOutput {
  OrderableReplicationInstances: [AwsDMSDescribeOrderableReplicationInstancesOutputOrderableReplicationInstances]
  Marker: String
}

type AwsDMSDescribeOrderableReplicationInstancesOutputOrderableReplicationInstances {
  EngineVersion: String
  ReplicationInstanceClass: String
  StorageType: String
  MinAllocatedStorage: Int
  MaxAllocatedStorage: Int
  DefaultAllocatedStorage: Int
  IncludedAllocatedStorage: Int
  AvailabilityZones: [String]
  ReleaseStatus: String
}

input AwsDMSDescribeOrderableReplicationInstancesInput {
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribePendingMaintenanceActionsOutput {
  PendingMaintenanceActions: [AwsDMSS8]
  Marker: String
}

input AwsDMSDescribePendingMaintenanceActionsInput {
  ReplicationInstanceArn: String
  Filters: [AwsDMSS33Input]
  Marker: String
  MaxRecords: Int
}

type AwsDMSDescribeRefreshSchemasStatusOutput {
  RefreshSchemasStatus: AwsDMSS4b
}

type AwsDMSS4b {
  EndpointArn: String
  ReplicationInstanceArn: String
  Status: String
  LastRefreshDate: Date
  LastFailureMessage: String
}

input AwsDMSDescribeRefreshSchemasStatusInput {
  EndpointArn: String!
}

type AwsDMSDescribeReplicationInstanceTaskLogsOutput {
  ReplicationInstanceArn: String
  ReplicationInstanceTaskLogs: [AwsDMSDescribeReplicationInstanceTaskLogsOutputReplicationInstanceTaskLogs]
  Marker: String
}

type AwsDMSDescribeReplicationInstanceTaskLogsOutputReplicationInstanceTaskLogs {
  ReplicationTaskName: String
  ReplicationTaskArn: String
  ReplicationInstanceTaskLogSize: JSON
}

input AwsDMSDescribeReplicationInstanceTaskLogsInput {
  ReplicationInstanceArn: String!
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationInstancesOutput {
  Marker: String
  ReplicationInstances: [AwsDMSS1t]
}

input AwsDMSDescribeReplicationInstancesInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationSubnetGroupsOutput {
  Marker: String
  ReplicationSubnetGroups: [AwsDMSS1w]
}

input AwsDMSDescribeReplicationSubnetGroupsInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationTaskAssessmentResultsOutput {
  Marker: String
  BucketName: String
  ReplicationTaskAssessmentResults: [AwsDMSDescribeReplicationTaskAssessmentResultsOutputReplicationTaskAssessmentResults]
}

type AwsDMSDescribeReplicationTaskAssessmentResultsOutputReplicationTaskAssessmentResults {
  ReplicationTaskIdentifier: String
  ReplicationTaskArn: String
  ReplicationTaskLastAssessmentDate: Date
  AssessmentStatus: String
  AssessmentResultsFile: String
  AssessmentResults: String
  S3ObjectUrl: String
}

input AwsDMSDescribeReplicationTaskAssessmentResultsInput {
  ReplicationTaskArn: String
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationTaskAssessmentRunsOutput {
  Marker: String
  ReplicationTaskAssessmentRuns: [AwsDMSSe]
}

input AwsDMSDescribeReplicationTaskAssessmentRunsInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationTaskIndividualAssessmentsOutput {
  Marker: String
  ReplicationTaskIndividualAssessments: [AwsDMSDescribeReplicationTaskIndividualAssessmentsOutputReplicationTaskIndividualAssessments]
}

type AwsDMSDescribeReplicationTaskIndividualAssessmentsOutputReplicationTaskIndividualAssessments {
  ReplicationTaskIndividualAssessmentArn: String
  ReplicationTaskAssessmentRunArn: String
  IndividualAssessmentName: String
  Status: String
  ReplicationTaskIndividualAssessmentStartDate: Date
}

input AwsDMSDescribeReplicationTaskIndividualAssessmentsInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeReplicationTasksOutput {
  Marker: String
  ReplicationTasks: [AwsDMSS29]
}

input AwsDMSDescribeReplicationTasksInput {
  Filters: [AwsDMSS33Input]
  MaxRecords: Int
  Marker: String
  WithoutSettings: Boolean
}

type AwsDMSDescribeSchemasOutput {
  Marker: String
  Schemas: [String]
}

input AwsDMSDescribeSchemasInput {
  EndpointArn: String!
  MaxRecords: Int
  Marker: String
}

type AwsDMSDescribeTableStatisticsOutput {
  ReplicationTaskArn: String
  TableStatistics: [AwsDMSDescribeTableStatisticsOutputTableStatistics]
  Marker: String
}

type AwsDMSDescribeTableStatisticsOutputTableStatistics {
  SchemaName: String
  TableName: String
  Inserts: JSON
  Deletes: JSON
  Updates: JSON
  Ddls: JSON
  FullLoadRows: JSON
  FullLoadCondtnlChkFailedRows: JSON
  FullLoadErrorRows: JSON
  FullLoadStartTime: Date
  FullLoadEndTime: Date
  FullLoadReloaded: Boolean
  LastUpdateTime: Date
  TableState: String
  ValidationPendingRecords: JSON
  ValidationFailedRecords: JSON
  ValidationSuspendedRecords: JSON
  ValidationState: String
  ValidationStateDetails: String
}

input AwsDMSDescribeTableStatisticsInput {
  ReplicationTaskArn: String!
  MaxRecords: Int
  Marker: String
  Filters: [AwsDMSS33Input]
}

type AwsDMSImportCertificateOutput {
  Certificate: AwsDMSS2e
}

input AwsDMSImportCertificateInput {
  CertificateIdentifier: String!
  CertificatePem: String
  CertificateWallet: JSON
  Tags: [AwsDMSS3Input]
}

type AwsDMSListTagsForResourceOutput {
  TagList: [AwsDMSS3]
}

type AwsDMSS3 {
  Key: String
  Value: String
}

input AwsDMSListTagsForResourceInput {
  ResourceArn: String!
}

type AwsDMSModifyEndpointOutput {
  Endpoint: AwsDMSS1j
}

input AwsDMSModifyEndpointInput {
  EndpointArn: String!
  EndpointIdentifier: String
  EndpointType: String
  EngineName: String
  Username: String
  Password: String
  ServerName: String
  Port: Int
  DatabaseName: String
  ExtraConnectionAttributes: String
  CertificateArn: String
  SslMode: String
  ServiceAccessRoleArn: String
  ExternalTableDefinition: String
  DynamoDbSettings: AwsDMSSmInput
  S3Settings: AwsDMSSnInput
  DmsTransferSettings: AwsDMSSwInput
  MongoDbSettings: AwsDMSSxInput
  KinesisSettings: AwsDMSS11Input
  KafkaSettings: AwsDMSS13Input
  ElasticsearchSettings: AwsDMSS15Input
  NeptuneSettings: AwsDMSS16Input
  RedshiftSettings: AwsDMSS17Input
  PostgreSQLSettings: AwsDMSS18Input
  MySQLSettings: AwsDMSS19Input
  OracleSettings: AwsDMSS1bInput
  SybaseSettings: AwsDMSS1dInput
  MicrosoftSQLServerSettings: AwsDMSS1eInput
  IBMDb2Settings: AwsDMSS1gInput
  DocDbSettings: AwsDMSS1hInput
}

type AwsDMSModifyEventSubscriptionOutput {
  EventSubscription: AwsDMSS1o
}

input AwsDMSModifyEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String
  SourceType: String
  EventCategories: [String]
  Enabled: Boolean
}

type AwsDMSModifyReplicationInstanceOutput {
  ReplicationInstance: AwsDMSS1t
}

input AwsDMSModifyReplicationInstanceInput {
  ReplicationInstanceArn: String!
  AllocatedStorage: Int
  ApplyImmediately: Boolean
  ReplicationInstanceClass: String
  VpcSecurityGroupIds: [String]
  PreferredMaintenanceWindow: String
  MultiAZ: Boolean
  EngineVersion: String
  AllowMajorVersionUpgrade: Boolean
  AutoMinorVersionUpgrade: Boolean
  ReplicationInstanceIdentifier: String
}

type AwsDMSModifyReplicationSubnetGroupOutput {
  ReplicationSubnetGroup: AwsDMSS1w
}

input AwsDMSModifyReplicationSubnetGroupInput {
  ReplicationSubnetGroupIdentifier: String!
  ReplicationSubnetGroupDescription: String
  SubnetIds: [String]!
}

type AwsDMSModifyReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSModifyReplicationTaskInput {
  ReplicationTaskArn: String!
  ReplicationTaskIdentifier: String
  MigrationType: String
  TableMappings: String
  ReplicationTaskSettings: String
  CdcStartTime: Date
  CdcStartPosition: String
  CdcStopPosition: String
  TaskData: String
}

type AwsDMSMoveReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSMoveReplicationTaskInput {
  ReplicationTaskArn: String!
  TargetReplicationInstanceArn: String!
}

type AwsDMSRebootReplicationInstanceOutput {
  ReplicationInstance: AwsDMSS1t
}

input AwsDMSRebootReplicationInstanceInput {
  ReplicationInstanceArn: String!
  ForceFailover: Boolean
}

type AwsDMSRefreshSchemasOutput {
  RefreshSchemasStatus: AwsDMSS4b
}

input AwsDMSRefreshSchemasInput {
  EndpointArn: String!
  ReplicationInstanceArn: String!
}

type AwsDMSReloadTablesOutput {
  ReplicationTaskArn: String
}

input AwsDMSReloadTablesInput {
  ReplicationTaskArn: String!
  TablesToReload: [AwsDMSReloadTablesTablesToReloadInput]!
  ReloadOption: String
}

input AwsDMSReloadTablesTablesToReloadInput {
  SchemaName: String!
  TableName: String!
}

input AwsDMSRemoveTagsFromResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsDMSStartReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSStartReplicationTaskInput {
  ReplicationTaskArn: String!
  StartReplicationTaskType: String!
  CdcStartTime: Date
  CdcStartPosition: String
  CdcStopPosition: String
}

type AwsDMSStartReplicationTaskAssessmentOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSStartReplicationTaskAssessmentInput {
  ReplicationTaskArn: String!
}

type AwsDMSStartReplicationTaskAssessmentRunOutput {
  ReplicationTaskAssessmentRun: AwsDMSSe
}

input AwsDMSStartReplicationTaskAssessmentRunInput {
  ReplicationTaskArn: String!
  ServiceAccessRoleArn: String!
  ResultLocationBucket: String!
  ResultLocationFolder: String
  ResultEncryptionMode: String
  ResultKmsKeyArn: String
  AssessmentRunName: String!
  IncludeOnly: [String]
  Exclude: [String]
}

type AwsDMSStopReplicationTaskOutput {
  ReplicationTask: AwsDMSS29
}

input AwsDMSStopReplicationTaskInput {
  ReplicationTaskArn: String!
}

type AwsDMSTestConnectionOutput {
  Connection: AwsDMSS2i
}

input AwsDMSTestConnectionInput {
  ReplicationInstanceArn: String!
  EndpointArn: String!
}

"""AWS Glue DataBrew (2017-07-25)"""
type AwsDataBrew {
  batchDeleteRecipeVersion(input: AwsDataBrewBatchDeleteRecipeVersionInput!, config: AwsConfig): AwsDataBrewBatchDeleteRecipeVersionOutput
  createDataset(input: AwsDataBrewCreateDatasetInput!, config: AwsConfig): AwsDataBrewCreateDatasetOutput
  createProfileJob(input: AwsDataBrewCreateProfileJobInput!, config: AwsConfig): AwsDataBrewCreateProfileJobOutput
  createProject(input: AwsDataBrewCreateProjectInput!, config: AwsConfig): AwsDataBrewCreateProjectOutput
  createRecipe(input: AwsDataBrewCreateRecipeInput!, config: AwsConfig): AwsDataBrewCreateRecipeOutput
  createRecipeJob(input: AwsDataBrewCreateRecipeJobInput!, config: AwsConfig): AwsDataBrewCreateRecipeJobOutput
  createSchedule(input: AwsDataBrewCreateScheduleInput!, config: AwsConfig): AwsDataBrewCreateScheduleOutput
  deleteDataset(input: AwsDataBrewDeleteDatasetInput!, config: AwsConfig): AwsDataBrewDeleteDatasetOutput
  deleteJob(input: AwsDataBrewDeleteJobInput!, config: AwsConfig): AwsDataBrewDeleteJobOutput
  deleteProject(input: AwsDataBrewDeleteProjectInput!, config: AwsConfig): AwsDataBrewDeleteProjectOutput
  deleteRecipeVersion(input: AwsDataBrewDeleteRecipeVersionInput!, config: AwsConfig): AwsDataBrewDeleteRecipeVersionOutput
  deleteSchedule(input: AwsDataBrewDeleteScheduleInput!, config: AwsConfig): AwsDataBrewDeleteScheduleOutput
  describeDataset(input: AwsDataBrewDescribeDatasetInput!, config: AwsConfig): AwsDataBrewDescribeDatasetOutput
  describeJob(input: AwsDataBrewDescribeJobInput!, config: AwsConfig): AwsDataBrewDescribeJobOutput
  describeJobRun(input: AwsDataBrewDescribeJobRunInput!, config: AwsConfig): AwsDataBrewDescribeJobRunOutput
  describeProject(input: AwsDataBrewDescribeProjectInput!, config: AwsConfig): AwsDataBrewDescribeProjectOutput
  describeRecipe(input: AwsDataBrewDescribeRecipeInput!, config: AwsConfig): AwsDataBrewDescribeRecipeOutput
  describeSchedule(input: AwsDataBrewDescribeScheduleInput!, config: AwsConfig): AwsDataBrewDescribeScheduleOutput
  listDatasets(input: AwsDataBrewListDatasetsInput, config: AwsConfig): AwsDataBrewListDatasetsOutput
  listJobRuns(input: AwsDataBrewListJobRunsInput!, config: AwsConfig): AwsDataBrewListJobRunsOutput
  listJobs(input: AwsDataBrewListJobsInput, config: AwsConfig): AwsDataBrewListJobsOutput
  listProjects(input: AwsDataBrewListProjectsInput, config: AwsConfig): AwsDataBrewListProjectsOutput
  listRecipeVersions(input: AwsDataBrewListRecipeVersionsInput!, config: AwsConfig): AwsDataBrewListRecipeVersionsOutput
  listRecipes(input: AwsDataBrewListRecipesInput, config: AwsConfig): AwsDataBrewListRecipesOutput
  listSchedules(input: AwsDataBrewListSchedulesInput, config: AwsConfig): AwsDataBrewListSchedulesOutput
  listTagsForResource(input: AwsDataBrewListTagsForResourceInput!, config: AwsConfig): AwsDataBrewListTagsForResourceOutput
  publishRecipe(input: AwsDataBrewPublishRecipeInput!, config: AwsConfig): AwsDataBrewPublishRecipeOutput
  sendProjectSessionAction(input: AwsDataBrewSendProjectSessionActionInput!, config: AwsConfig): AwsDataBrewSendProjectSessionActionOutput
  startJobRun(input: AwsDataBrewStartJobRunInput!, config: AwsConfig): AwsDataBrewStartJobRunOutput
  startProjectSession(input: AwsDataBrewStartProjectSessionInput!, config: AwsConfig): AwsDataBrewStartProjectSessionOutput
  stopJobRun(input: AwsDataBrewStopJobRunInput!, config: AwsConfig): AwsDataBrewStopJobRunOutput
  tagResource(input: AwsDataBrewTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDataBrewUntagResourceInput!, config: AwsConfig): JSON
  updateDataset(input: AwsDataBrewUpdateDatasetInput!, config: AwsConfig): AwsDataBrewUpdateDatasetOutput
  updateProfileJob(input: AwsDataBrewUpdateProfileJobInput!, config: AwsConfig): AwsDataBrewUpdateProfileJobOutput
  updateProject(input: AwsDataBrewUpdateProjectInput!, config: AwsConfig): AwsDataBrewUpdateProjectOutput
  updateRecipe(input: AwsDataBrewUpdateRecipeInput!, config: AwsConfig): AwsDataBrewUpdateRecipeOutput
  updateRecipeJob(input: AwsDataBrewUpdateRecipeJobInput!, config: AwsConfig): AwsDataBrewUpdateRecipeJobOutput
  updateSchedule(input: AwsDataBrewUpdateScheduleInput!, config: AwsConfig): AwsDataBrewUpdateScheduleOutput
}

type AwsDataBrewBatchDeleteRecipeVersionOutput {
  Name: String!
  Errors: [AwsDataBrewBatchDeleteRecipeVersionOutputErrors]
}

type AwsDataBrewBatchDeleteRecipeVersionOutputErrors {
  ErrorCode: String
  ErrorMessage: String
  RecipeVersion: String
}

input AwsDataBrewBatchDeleteRecipeVersionInput {
  Name: String!
  RecipeVersions: [String]!
}

type AwsDataBrewCreateDatasetOutput {
  Name: String!
}

input AwsDataBrewCreateDatasetInput {
  Name: String!
  Format: String
  FormatOptions: AwsDataBrewSdInput
  Input: AwsDataBrewSoInput!
  PathOptions: AwsDataBrewSzInput
  Tags: JSON
}

input AwsDataBrewSdInput {
  Json: AwsDataBrewSdJsonInput
  Excel: AwsDataBrewSdExcelInput
  Csv: AwsDataBrewSdCsvInput
}

input AwsDataBrewSdJsonInput {
  MultiLine: Boolean
}

input AwsDataBrewSdExcelInput {
  SheetNames: [String]
  SheetIndexes: [Int]
  HeaderRow: Boolean
}

input AwsDataBrewSdCsvInput {
  Delimiter: String
  HeaderRow: Boolean
}

input AwsDataBrewSoInput {
  S3InputDefinition: AwsDataBrewSpInput
  DataCatalogInputDefinition: AwsDataBrewSoDataCatalogInputDefinitionInput
  DatabaseInputDefinition: AwsDataBrewSoDatabaseInputDefinitionInput
}

input AwsDataBrewSpInput {
  Bucket: String!
  Key: String
}

input AwsDataBrewSoDataCatalogInputDefinitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  TempDirectory: AwsDataBrewSpInput
}

input AwsDataBrewSoDatabaseInputDefinitionInput {
  GlueConnectionName: String!
  DatabaseTableName: String!
  TempDirectory: AwsDataBrewSpInput
}

input AwsDataBrewSzInput {
  LastModifiedDateCondition: AwsDataBrewS10Input
  FilesLimit: AwsDataBrewSzFilesLimitInput
  Parameters: JSON
}

input AwsDataBrewS10Input {
  Expression: String!
  ValuesMap: JSON!
}

input AwsDataBrewSzFilesLimitInput {
  MaxFiles: Int!
  OrderedBy: String
  Order: String
}

type AwsDataBrewCreateProfileJobOutput {
  Name: String!
}

input AwsDataBrewCreateProfileJobInput {
  DatasetName: String!
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  OutputLocation: AwsDataBrewSpInput!
  RoleArn: String!
  Tags: JSON
  Timeout: Int
  JobSample: AwsDataBrewS1vInput
}

input AwsDataBrewS1vInput {
  Mode: String
  Size: JSON
}

type AwsDataBrewCreateProjectOutput {
  Name: String!
}

input AwsDataBrewCreateProjectInput {
  DatasetName: String!
  Name: String!
  RecipeName: String!
  Sample: AwsDataBrewS21Input
  RoleArn: String!
  Tags: JSON
}

input AwsDataBrewS21Input {
  Size: Int
  Type: String!
}

type AwsDataBrewCreateRecipeOutput {
  Name: String!
}

input AwsDataBrewCreateRecipeInput {
  Description: String
  Name: String!
  Steps: [AwsDataBrewS28Input]!
  Tags: JSON
}

input AwsDataBrewS28Input {
  Action: AwsDataBrewS28ActionInput!
  ConditionExpressions: [AwsDataBrewS28ConditionExpressionsInput]
}

input AwsDataBrewS28ActionInput {
  Operation: String!
  Parameters: JSON
}

input AwsDataBrewS28ConditionExpressionsInput {
  Condition: String!
  Value: String
  TargetColumn: String!
}

type AwsDataBrewCreateRecipeJobOutput {
  Name: String!
}

input AwsDataBrewCreateRecipeJobInput {
  DatasetName: String
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  Outputs: [AwsDataBrewS2kInput]!
  ProjectName: String
  RecipeReference: AwsDataBrewS2tInput
  RoleArn: String!
  Tags: JSON
  Timeout: Int
}

input AwsDataBrewS2kInput {
  CompressionFormat: String
  Format: String
  PartitionColumns: [String]
  Location: AwsDataBrewSpInput!
  Overwrite: Boolean
  FormatOptions: AwsDataBrewS2kFormatOptionsInput
}

input AwsDataBrewS2kFormatOptionsInput {
  Csv: AwsDataBrewS2kFormatOptionsCsvInput
}

input AwsDataBrewS2kFormatOptionsCsvInput {
  Delimiter: String
}

input AwsDataBrewS2tInput {
  Name: String!
  RecipeVersion: String
}

type AwsDataBrewCreateScheduleOutput {
  Name: String!
}

input AwsDataBrewCreateScheduleInput {
  JobNames: [String]
  CronExpression: String!
  Tags: JSON
  Name: String!
}

type AwsDataBrewDeleteDatasetOutput {
  Name: String!
}

input AwsDataBrewDeleteDatasetInput {
  Name: String!
}

type AwsDataBrewDeleteJobOutput {
  Name: String!
}

input AwsDataBrewDeleteJobInput {
  Name: String!
}

type AwsDataBrewDeleteProjectOutput {
  Name: String!
}

input AwsDataBrewDeleteProjectInput {
  Name: String!
}

type AwsDataBrewDeleteRecipeVersionOutput {
  Name: String!
  RecipeVersion: String!
}

input AwsDataBrewDeleteRecipeVersionInput {
  Name: String!
  RecipeVersion: String!
}

type AwsDataBrewDeleteScheduleOutput {
  Name: String!
}

input AwsDataBrewDeleteScheduleInput {
  Name: String!
}

type AwsDataBrewDescribeDatasetOutput {
  CreatedBy: String
  CreateDate: Date
  Name: String!
  Format: String
  FormatOptions: AwsDataBrewSd
  Input: AwsDataBrewSo!
  LastModifiedDate: Date
  LastModifiedBy: String
  Source: String
  PathOptions: AwsDataBrewSz
  Tags: JSON
  ResourceArn: String
}

type AwsDataBrewSd {
  Json: AwsDataBrewSdJson
  Excel: AwsDataBrewSdExcel
  Csv: AwsDataBrewSdCsv
}

type AwsDataBrewSdJson {
  MultiLine: Boolean
}

type AwsDataBrewSdExcel {
  SheetNames: [String]
  SheetIndexes: [Int]
  HeaderRow: Boolean
}

type AwsDataBrewSdCsv {
  Delimiter: String
  HeaderRow: Boolean
}

type AwsDataBrewSo {
  S3InputDefinition: AwsDataBrewSp
  DataCatalogInputDefinition: AwsDataBrewSoDataCatalogInputDefinition
  DatabaseInputDefinition: AwsDataBrewSoDatabaseInputDefinition
}

type AwsDataBrewSp {
  Bucket: String!
  Key: String
}

type AwsDataBrewSoDataCatalogInputDefinition {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  TempDirectory: AwsDataBrewSp
}

type AwsDataBrewSoDatabaseInputDefinition {
  GlueConnectionName: String!
  DatabaseTableName: String!
  TempDirectory: AwsDataBrewSp
}

type AwsDataBrewSz {
  LastModifiedDateCondition: AwsDataBrewS10
  FilesLimit: AwsDataBrewSzFilesLimit
  Parameters: JSON
}

type AwsDataBrewS10 {
  Expression: String!
  ValuesMap: JSON!
}

type AwsDataBrewSzFilesLimit {
  MaxFiles: Int!
  OrderedBy: String
  Order: String
}

input AwsDataBrewDescribeDatasetInput {
  Name: String!
}

type AwsDataBrewDescribeJobOutput {
  CreateDate: Date
  CreatedBy: String
  DatasetName: String
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  Type: String
  LastModifiedBy: String
  LastModifiedDate: Date
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  Outputs: [AwsDataBrewS2k]
  ProjectName: String
  RecipeReference: AwsDataBrewS2t
  ResourceArn: String
  RoleArn: String
  Tags: JSON
  Timeout: Int
  JobSample: AwsDataBrewS1v
}

type AwsDataBrewS2k {
  CompressionFormat: String
  Format: String
  PartitionColumns: [String]
  Location: AwsDataBrewSp!
  Overwrite: Boolean
  FormatOptions: AwsDataBrewS2kFormatOptions
}

type AwsDataBrewS2kFormatOptions {
  Csv: AwsDataBrewS2kFormatOptionsCsv
}

type AwsDataBrewS2kFormatOptionsCsv {
  Delimiter: String
}

type AwsDataBrewS2t {
  Name: String!
  RecipeVersion: String
}

type AwsDataBrewS1v {
  Mode: String
  Size: JSON
}

input AwsDataBrewDescribeJobInput {
  Name: String!
}

type AwsDataBrewDescribeJobRunOutput {
  Attempt: Int
  CompletedOn: Date
  DatasetName: String
  ErrorMessage: String
  ExecutionTime: Int
  JobName: String!
  RunId: String
  State: String
  LogSubscription: String
  LogGroupName: String
  Outputs: [AwsDataBrewS2k]
  RecipeReference: AwsDataBrewS2t
  StartedBy: String
  StartedOn: Date
  JobSample: AwsDataBrewS1v
}

input AwsDataBrewDescribeJobRunInput {
  Name: String!
  RunId: String!
}

type AwsDataBrewDescribeProjectOutput {
  CreateDate: Date
  CreatedBy: String
  DatasetName: String
  LastModifiedDate: Date
  LastModifiedBy: String
  Name: String!
  RecipeName: String
  ResourceArn: String
  Sample: AwsDataBrewS21
  RoleArn: String
  Tags: JSON
  SessionStatus: String
  OpenedBy: String
  OpenDate: Date
}

type AwsDataBrewS21 {
  Size: Int
  Type: String!
}

input AwsDataBrewDescribeProjectInput {
  Name: String!
}

type AwsDataBrewDescribeRecipeOutput {
  CreatedBy: String
  CreateDate: Date
  LastModifiedBy: String
  LastModifiedDate: Date
  ProjectName: String
  PublishedBy: String
  PublishedDate: Date
  Description: String
  Name: String!
  Steps: [AwsDataBrewS28]
  Tags: JSON
  ResourceArn: String
  RecipeVersion: String
}

type AwsDataBrewS28 {
  Action: AwsDataBrewS28Action!
  ConditionExpressions: [AwsDataBrewS28ConditionExpressions]
}

type AwsDataBrewS28Action {
  Operation: String!
  Parameters: JSON
}

type AwsDataBrewS28ConditionExpressions {
  Condition: String!
  Value: String
  TargetColumn: String!
}

input AwsDataBrewDescribeRecipeInput {
  Name: String!
  RecipeVersion: String
}

type AwsDataBrewDescribeScheduleOutput {
  CreateDate: Date
  CreatedBy: String
  JobNames: [String]
  LastModifiedBy: String
  LastModifiedDate: Date
  ResourceArn: String
  CronExpression: String
  Tags: JSON
  Name: String!
}

input AwsDataBrewDescribeScheduleInput {
  Name: String!
}

type AwsDataBrewListDatasetsOutput {
  Datasets: [AwsDataBrewListDatasetsOutputDatasets]!
  NextToken: String
}

type AwsDataBrewListDatasetsOutputDatasets {
  AccountId: String
  CreatedBy: String
  CreateDate: Date
  Name: String!
  Format: String
  FormatOptions: AwsDataBrewSd
  Input: AwsDataBrewSo!
  LastModifiedDate: Date
  LastModifiedBy: String
  Source: String
  PathOptions: AwsDataBrewSz
  Tags: JSON
  ResourceArn: String
}

input AwsDataBrewListDatasetsInput {
  MaxResults: Int
  NextToken: String
}

type AwsDataBrewListJobRunsOutput {
  JobRuns: [AwsDataBrewListJobRunsOutputJobRuns]!
  NextToken: String
}

type AwsDataBrewListJobRunsOutputJobRuns {
  Attempt: Int
  CompletedOn: Date
  DatasetName: String
  ErrorMessage: String
  ExecutionTime: Int
  JobName: String
  RunId: String
  State: String
  LogSubscription: String
  LogGroupName: String
  Outputs: [AwsDataBrewS2k]
  RecipeReference: AwsDataBrewS2t
  StartedBy: String
  StartedOn: Date
  JobSample: AwsDataBrewS1v
}

input AwsDataBrewListJobRunsInput {
  Name: String!
  MaxResults: Int
  NextToken: String
}

type AwsDataBrewListJobsOutput {
  Jobs: [AwsDataBrewListJobsOutputJobs]!
  NextToken: String
}

type AwsDataBrewListJobsOutputJobs {
  AccountId: String
  CreatedBy: String
  CreateDate: Date
  DatasetName: String
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  Type: String
  LastModifiedBy: String
  LastModifiedDate: Date
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  Outputs: [AwsDataBrewS2k]
  ProjectName: String
  RecipeReference: AwsDataBrewS2t
  ResourceArn: String
  RoleArn: String
  Timeout: Int
  Tags: JSON
  JobSample: AwsDataBrewS1v
}

input AwsDataBrewListJobsInput {
  DatasetName: String
  MaxResults: Int
  NextToken: String
  ProjectName: String
}

type AwsDataBrewListProjectsOutput {
  Projects: [AwsDataBrewListProjectsOutputProjects]!
  NextToken: String
}

type AwsDataBrewListProjectsOutputProjects {
  AccountId: String
  CreateDate: Date
  CreatedBy: String
  DatasetName: String
  LastModifiedDate: Date
  LastModifiedBy: String
  Name: String!
  RecipeName: String!
  ResourceArn: String
  Sample: AwsDataBrewS21
  Tags: JSON
  RoleArn: String
  OpenedBy: String
  OpenDate: Date
}

input AwsDataBrewListProjectsInput {
  NextToken: String
  MaxResults: Int
}

type AwsDataBrewListRecipeVersionsOutput {
  NextToken: String
  Recipes: [AwsDataBrewS4m]!
}

type AwsDataBrewS4m {
  CreatedBy: String
  CreateDate: Date
  LastModifiedBy: String
  LastModifiedDate: Date
  ProjectName: String
  PublishedBy: String
  PublishedDate: Date
  Description: String
  Name: String!
  ResourceArn: String
  Steps: [AwsDataBrewS28]
  Tags: JSON
  RecipeVersion: String
}

input AwsDataBrewListRecipeVersionsInput {
  MaxResults: Int
  NextToken: String
  Name: String!
}

type AwsDataBrewListRecipesOutput {
  Recipes: [AwsDataBrewS4m]!
  NextToken: String
}

input AwsDataBrewListRecipesInput {
  MaxResults: Int
  NextToken: String
  RecipeVersion: String
}

type AwsDataBrewListSchedulesOutput {
  Schedules: [AwsDataBrewListSchedulesOutputSchedules]!
  NextToken: String
}

type AwsDataBrewListSchedulesOutputSchedules {
  AccountId: String
  CreatedBy: String
  CreateDate: Date
  JobNames: [String]
  LastModifiedBy: String
  LastModifiedDate: Date
  ResourceArn: String
  CronExpression: String
  Tags: JSON
  Name: String!
}

input AwsDataBrewListSchedulesInput {
  JobName: String
  MaxResults: Int
  NextToken: String
}

type AwsDataBrewListTagsForResourceOutput {
  Tags: JSON
}

input AwsDataBrewListTagsForResourceInput {
  ResourceArn: String!
}

type AwsDataBrewPublishRecipeOutput {
  Name: String!
}

input AwsDataBrewPublishRecipeInput {
  Description: String
  Name: String!
}

type AwsDataBrewSendProjectSessionActionOutput {
  Result: String
  Name: String!
  ActionId: Int
}

input AwsDataBrewSendProjectSessionActionInput {
  Preview: Boolean
  Name: String!
  RecipeStep: AwsDataBrewS28Input
  StepIndex: Int
  ClientSessionId: String
  ViewFrame: AwsDataBrewSendProjectSessionActionViewFrameInput
}

input AwsDataBrewSendProjectSessionActionViewFrameInput {
  StartColumnIndex: Int!
  ColumnRange: Int
  HiddenColumns: [String]
}

type AwsDataBrewStartJobRunOutput {
  RunId: String!
}

input AwsDataBrewStartJobRunInput {
  Name: String!
}

type AwsDataBrewStartProjectSessionOutput {
  Name: String!
  ClientSessionId: String
}

input AwsDataBrewStartProjectSessionInput {
  Name: String!
  AssumeControl: Boolean
}

type AwsDataBrewStopJobRunOutput {
  RunId: String!
}

input AwsDataBrewStopJobRunInput {
  Name: String!
  RunId: String!
}

input AwsDataBrewTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsDataBrewUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsDataBrewUpdateDatasetOutput {
  Name: String!
}

input AwsDataBrewUpdateDatasetInput {
  Name: String!
  Format: String
  FormatOptions: AwsDataBrewSdInput
  Input: AwsDataBrewSoInput!
  PathOptions: AwsDataBrewSzInput
}

type AwsDataBrewUpdateProfileJobOutput {
  Name: String!
}

input AwsDataBrewUpdateProfileJobInput {
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  OutputLocation: AwsDataBrewSpInput!
  RoleArn: String!
  Timeout: Int
  JobSample: AwsDataBrewS1vInput
}

type AwsDataBrewUpdateProjectOutput {
  LastModifiedDate: Date
  Name: String!
}

input AwsDataBrewUpdateProjectInput {
  Sample: AwsDataBrewS21Input
  RoleArn: String!
  Name: String!
}

type AwsDataBrewUpdateRecipeOutput {
  Name: String!
}

input AwsDataBrewUpdateRecipeInput {
  Description: String
  Name: String!
  Steps: [AwsDataBrewS28Input]
}

type AwsDataBrewUpdateRecipeJobOutput {
  Name: String!
}

input AwsDataBrewUpdateRecipeJobInput {
  EncryptionKeyArn: String
  EncryptionMode: String
  Name: String!
  LogSubscription: String
  MaxCapacity: Int
  MaxRetries: Int
  Outputs: [AwsDataBrewS2kInput]!
  RoleArn: String!
  Timeout: Int
}

type AwsDataBrewUpdateScheduleOutput {
  Name: String!
}

input AwsDataBrewUpdateScheduleInput {
  JobNames: [String]
  CronExpression: String!
  Name: String!
}

"""AWS Data Exchange (2017-07-25)"""
type AwsDataExchange {
  cancelJob(input: AwsDataExchangeCancelJobInput!, config: AwsConfig): JSON
  createDataSet(input: AwsDataExchangeCreateDataSetInput!, config: AwsConfig): AwsDataExchangeCreateDataSetOutput
  createJob(input: AwsDataExchangeCreateJobInput!, config: AwsConfig): AwsDataExchangeCreateJobOutput
  createRevision(input: AwsDataExchangeCreateRevisionInput!, config: AwsConfig): AwsDataExchangeCreateRevisionOutput
  deleteAsset(input: AwsDataExchangeDeleteAssetInput!, config: AwsConfig): JSON
  deleteDataSet(input: AwsDataExchangeDeleteDataSetInput!, config: AwsConfig): JSON
  deleteRevision(input: AwsDataExchangeDeleteRevisionInput!, config: AwsConfig): JSON
  getAsset(input: AwsDataExchangeGetAssetInput!, config: AwsConfig): AwsDataExchangeGetAssetOutput
  getDataSet(input: AwsDataExchangeGetDataSetInput!, config: AwsConfig): AwsDataExchangeGetDataSetOutput
  getJob(input: AwsDataExchangeGetJobInput!, config: AwsConfig): AwsDataExchangeGetJobOutput
  getRevision(input: AwsDataExchangeGetRevisionInput!, config: AwsConfig): AwsDataExchangeGetRevisionOutput
  listDataSetRevisions(input: AwsDataExchangeListDataSetRevisionsInput!, config: AwsConfig): AwsDataExchangeListDataSetRevisionsOutput
  listDataSets(input: AwsDataExchangeListDataSetsInput, config: AwsConfig): AwsDataExchangeListDataSetsOutput
  listJobs(input: AwsDataExchangeListJobsInput, config: AwsConfig): AwsDataExchangeListJobsOutput
  listRevisionAssets(input: AwsDataExchangeListRevisionAssetsInput!, config: AwsConfig): AwsDataExchangeListRevisionAssetsOutput
  listTagsForResource(input: AwsDataExchangeListTagsForResourceInput!, config: AwsConfig): AwsDataExchangeListTagsForResourceOutput
  startJob(input: AwsDataExchangeStartJobInput!, config: AwsConfig): JSON
  tagResource(input: AwsDataExchangeTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDataExchangeUntagResourceInput!, config: AwsConfig): JSON
  updateAsset(input: AwsDataExchangeUpdateAssetInput!, config: AwsConfig): AwsDataExchangeUpdateAssetOutput
  updateDataSet(input: AwsDataExchangeUpdateDataSetInput!, config: AwsConfig): AwsDataExchangeUpdateDataSetOutput
  updateRevision(input: AwsDataExchangeUpdateRevisionInput!, config: AwsConfig): AwsDataExchangeUpdateRevisionOutput
}

input AwsDataExchangeCancelJobInput {
  JobId: String!
}

type AwsDataExchangeCreateDataSetOutput {
  Arn: String
  AssetType: String
  CreatedAt: Date
  Description: String
  Id: String
  Name: String
  Origin: String
  OriginDetails: AwsDataExchangeSd
  SourceId: String
  Tags: JSON
  UpdatedAt: Date
}

type AwsDataExchangeSd {
  ProductId: String!
}

input AwsDataExchangeCreateDataSetInput {
  AssetType: String!
  Description: String!
  Name: String!
  Tags: JSON
}

type AwsDataExchangeCreateJobOutput {
  Arn: String
  CreatedAt: Date
  Details: AwsDataExchangeSx
  Errors: [AwsDataExchangeS13]
  Id: String
  State: String
  Type: String
  UpdatedAt: Date
}

type AwsDataExchangeSx {
  ExportAssetToSignedUrl: AwsDataExchangeSxExportAssetToSignedUrl
  ExportAssetsToS3: AwsDataExchangeSxExportAssetsToS3
  ExportRevisionsToS3: AwsDataExchangeSxExportRevisionsToS3
  ImportAssetFromSignedUrl: AwsDataExchangeSxImportAssetFromSignedUrl
  ImportAssetsFromS3: AwsDataExchangeSxImportAssetsFromS3
}

type AwsDataExchangeSxExportAssetToSignedUrl {
  AssetId: String!
  DataSetId: String!
  RevisionId: String!
  SignedUrl: String
  SignedUrlExpiresAt: Date
}

type AwsDataExchangeSxExportAssetsToS3 {
  AssetDestinations: [AwsDataExchangeSi]!
  DataSetId: String!
  Encryption: AwsDataExchangeSk
  RevisionId: String!
}

type AwsDataExchangeSi {
  AssetId: String!
  Bucket: String!
  Key: String
}

type AwsDataExchangeSk {
  KmsKeyArn: String
  Type: String!
}

type AwsDataExchangeSxExportRevisionsToS3 {
  DataSetId: String!
  Encryption: AwsDataExchangeSk
  RevisionDestinations: [AwsDataExchangeSn]!
}

type AwsDataExchangeSn {
  Bucket: String!
  KeyPattern: String
  RevisionId: String!
}

type AwsDataExchangeSxImportAssetFromSignedUrl {
  AssetName: String!
  DataSetId: String!
  Md5Hash: String
  RevisionId: String!
  SignedUrl: String
  SignedUrlExpiresAt: Date
}

type AwsDataExchangeSxImportAssetsFromS3 {
  AssetSources: [AwsDataExchangeSt]!
  DataSetId: String!
  RevisionId: String!
}

type AwsDataExchangeSt {
  Bucket: String!
  Key: String!
}

type AwsDataExchangeS13 {
  Code: String!
  Details: AwsDataExchangeS13Details
  LimitName: String
  LimitValue: JSON
  Message: String!
  ResourceId: String
  ResourceType: String
}

type AwsDataExchangeS13Details {
  ImportAssetFromSignedUrlJobErrorDetails: AwsDataExchangeS13DetailsImportAssetFromSignedUrlJobErrorDetails
  ImportAssetsFromS3JobErrorDetails: [AwsDataExchangeSt]
}

type AwsDataExchangeS13DetailsImportAssetFromSignedUrlJobErrorDetails {
  AssetName: String!
}

input AwsDataExchangeCreateJobInput {
  Details: AwsDataExchangeCreateJobDetailsInput!
  Type: String!
}

input AwsDataExchangeCreateJobDetailsInput {
  ExportAssetToSignedUrl: AwsDataExchangeCreateJobDetailsExportAssetToSignedUrlInput
  ExportAssetsToS3: AwsDataExchangeCreateJobDetailsExportAssetsToS3Input
  ExportRevisionsToS3: AwsDataExchangeCreateJobDetailsExportRevisionsToS3Input
  ImportAssetFromSignedUrl: AwsDataExchangeCreateJobDetailsImportAssetFromSignedUrlInput
  ImportAssetsFromS3: AwsDataExchangeCreateJobDetailsImportAssetsFromS3Input
}

input AwsDataExchangeCreateJobDetailsExportAssetToSignedUrlInput {
  AssetId: String!
  DataSetId: String!
  RevisionId: String!
}

input AwsDataExchangeCreateJobDetailsExportAssetsToS3Input {
  AssetDestinations: [AwsDataExchangeSiInput]!
  DataSetId: String!
  Encryption: AwsDataExchangeSkInput
  RevisionId: String!
}

input AwsDataExchangeSiInput {
  AssetId: String!
  Bucket: String!
  Key: String
}

input AwsDataExchangeSkInput {
  KmsKeyArn: String
  Type: String!
}

input AwsDataExchangeCreateJobDetailsExportRevisionsToS3Input {
  DataSetId: String!
  Encryption: AwsDataExchangeSkInput
  RevisionDestinations: [AwsDataExchangeSnInput]!
}

input AwsDataExchangeSnInput {
  Bucket: String!
  KeyPattern: String
  RevisionId: String!
}

input AwsDataExchangeCreateJobDetailsImportAssetFromSignedUrlInput {
  AssetName: String!
  DataSetId: String!
  Md5Hash: String!
  RevisionId: String!
}

input AwsDataExchangeCreateJobDetailsImportAssetsFromS3Input {
  AssetSources: [AwsDataExchangeStInput]!
  DataSetId: String!
  RevisionId: String!
}

input AwsDataExchangeStInput {
  Bucket: String!
  Key: String!
}

type AwsDataExchangeCreateRevisionOutput {
  Arn: String
  Comment: String
  CreatedAt: Date
  DataSetId: String
  Finalized: Boolean
  Id: String
  SourceId: String
  Tags: JSON
  UpdatedAt: Date
}

input AwsDataExchangeCreateRevisionInput {
  Comment: String
  DataSetId: String!
  Tags: JSON
}

input AwsDataExchangeDeleteAssetInput {
  AssetId: String!
  DataSetId: String!
  RevisionId: String!
}

input AwsDataExchangeDeleteDataSetInput {
  DataSetId: String!
}

input AwsDataExchangeDeleteRevisionInput {
  DataSetId: String!
  RevisionId: String!
}

type AwsDataExchangeGetAssetOutput {
  Arn: String
  AssetDetails: AwsDataExchangeS1l
  AssetType: String
  CreatedAt: Date
  DataSetId: String
  Id: String
  Name: String
  RevisionId: String
  SourceId: String
  UpdatedAt: Date
}

type AwsDataExchangeS1l {
  S3SnapshotAsset: AwsDataExchangeS1lS3SnapshotAsset
}

type AwsDataExchangeS1lS3SnapshotAsset {
  Size: JSON!
}

input AwsDataExchangeGetAssetInput {
  AssetId: String!
  DataSetId: String!
  RevisionId: String!
}

type AwsDataExchangeGetDataSetOutput {
  Arn: String
  AssetType: String
  CreatedAt: Date
  Description: String
  Id: String
  Name: String
  Origin: String
  OriginDetails: AwsDataExchangeSd
  SourceId: String
  Tags: JSON
  UpdatedAt: Date
}

input AwsDataExchangeGetDataSetInput {
  DataSetId: String!
}

type AwsDataExchangeGetJobOutput {
  Arn: String
  CreatedAt: Date
  Details: AwsDataExchangeSx
  Errors: [AwsDataExchangeS13]
  Id: String
  State: String
  Type: String
  UpdatedAt: Date
}

input AwsDataExchangeGetJobInput {
  JobId: String!
}

type AwsDataExchangeGetRevisionOutput {
  Arn: String
  Comment: String
  CreatedAt: Date
  DataSetId: String
  Finalized: Boolean
  Id: String
  SourceId: String
  Tags: JSON
  UpdatedAt: Date
}

input AwsDataExchangeGetRevisionInput {
  DataSetId: String!
  RevisionId: String!
}

type AwsDataExchangeListDataSetRevisionsOutput {
  NextToken: String
  Revisions: [AwsDataExchangeListDataSetRevisionsOutputRevisions]
}

type AwsDataExchangeListDataSetRevisionsOutputRevisions {
  Arn: String!
  Comment: String
  CreatedAt: Date!
  DataSetId: String!
  Finalized: Boolean
  Id: String!
  SourceId: String
  UpdatedAt: Date!
}

input AwsDataExchangeListDataSetRevisionsInput {
  DataSetId: String!
  MaxResults: Int
  NextToken: String
}

type AwsDataExchangeListDataSetsOutput {
  DataSets: [AwsDataExchangeListDataSetsOutputDataSets]
  NextToken: String
}

type AwsDataExchangeListDataSetsOutputDataSets {
  Arn: String!
  AssetType: String!
  CreatedAt: Date!
  Description: String!
  Id: String!
  Name: String!
  Origin: String!
  OriginDetails: AwsDataExchangeSd
  SourceId: String
  UpdatedAt: Date!
}

input AwsDataExchangeListDataSetsInput {
  MaxResults: Int
  NextToken: String
  Origin: String
}

type AwsDataExchangeListJobsOutput {
  Jobs: [AwsDataExchangeListJobsOutputJobs]
  NextToken: String
}

type AwsDataExchangeListJobsOutputJobs {
  Arn: String!
  CreatedAt: Date!
  Details: AwsDataExchangeSx!
  Errors: [AwsDataExchangeS13]
  Id: String!
  State: String!
  Type: String!
  UpdatedAt: Date!
}

input AwsDataExchangeListJobsInput {
  DataSetId: String
  MaxResults: Int
  NextToken: String
  RevisionId: String
}

type AwsDataExchangeListRevisionAssetsOutput {
  Assets: [AwsDataExchangeListRevisionAssetsOutputAssets]
  NextToken: String
}

type AwsDataExchangeListRevisionAssetsOutputAssets {
  Arn: String!
  AssetDetails: AwsDataExchangeS1l!
  AssetType: String!
  CreatedAt: Date!
  DataSetId: String!
  Id: String!
  Name: String!
  RevisionId: String!
  SourceId: String
  UpdatedAt: Date!
}

input AwsDataExchangeListRevisionAssetsInput {
  DataSetId: String!
  MaxResults: Int
  NextToken: String
  RevisionId: String!
}

type AwsDataExchangeListTagsForResourceOutput {
  Tags: JSON
}

input AwsDataExchangeListTagsForResourceInput {
  ResourceArn: String!
}

input AwsDataExchangeStartJobInput {
  JobId: String!
}

input AwsDataExchangeTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsDataExchangeUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsDataExchangeUpdateAssetOutput {
  Arn: String
  AssetDetails: AwsDataExchangeS1l
  AssetType: String
  CreatedAt: Date
  DataSetId: String
  Id: String
  Name: String
  RevisionId: String
  SourceId: String
  UpdatedAt: Date
}

input AwsDataExchangeUpdateAssetInput {
  AssetId: String!
  DataSetId: String!
  Name: String!
  RevisionId: String!
}

type AwsDataExchangeUpdateDataSetOutput {
  Arn: String
  AssetType: String
  CreatedAt: Date
  Description: String
  Id: String
  Name: String
  Origin: String
  OriginDetails: AwsDataExchangeSd
  SourceId: String
  UpdatedAt: Date
}

input AwsDataExchangeUpdateDataSetInput {
  DataSetId: String!
  Description: String
  Name: String
}

type AwsDataExchangeUpdateRevisionOutput {
  Arn: String
  Comment: String
  CreatedAt: Date
  DataSetId: String
  Finalized: Boolean
  Id: String
  SourceId: String
  UpdatedAt: Date
}

input AwsDataExchangeUpdateRevisionInput {
  Comment: String
  DataSetId: String!
  Finalized: Boolean
  RevisionId: String!
}

"""AWS Data Pipeline (2012-10-29)"""
type AwsDataPipeline {
  activatePipeline(input: AwsDataPipelineActivatePipelineInput!, config: AwsConfig): JSON
  addTags(input: AwsDataPipelineAddTagsInput!, config: AwsConfig): JSON
  createPipeline(input: AwsDataPipelineCreatePipelineInput!, config: AwsConfig): AwsDataPipelineCreatePipelineOutput
  deactivatePipeline(input: AwsDataPipelineDeactivatePipelineInput!, config: AwsConfig): JSON
  deletePipeline(input: AwsDataPipelineDeletePipelineInput!, config: AwsConfig): JSON
  describeObjects(input: AwsDataPipelineDescribeObjectsInput!, config: AwsConfig): AwsDataPipelineDescribeObjectsOutput
  describePipelines(input: AwsDataPipelineDescribePipelinesInput!, config: AwsConfig): AwsDataPipelineDescribePipelinesOutput
  evaluateExpression(input: AwsDataPipelineEvaluateExpressionInput!, config: AwsConfig): AwsDataPipelineEvaluateExpressionOutput
  getPipelineDefinition(input: AwsDataPipelineGetPipelineDefinitionInput!, config: AwsConfig): AwsDataPipelineGetPipelineDefinitionOutput
  listPipelines(input: AwsDataPipelineListPipelinesInput, config: AwsConfig): AwsDataPipelineListPipelinesOutput
  pollForTask(input: AwsDataPipelinePollForTaskInput!, config: AwsConfig): AwsDataPipelinePollForTaskOutput
  putPipelineDefinition(input: AwsDataPipelinePutPipelineDefinitionInput!, config: AwsConfig): AwsDataPipelinePutPipelineDefinitionOutput
  queryObjects(input: AwsDataPipelineQueryObjectsInput!, config: AwsConfig): AwsDataPipelineQueryObjectsOutput
  removeTags(input: AwsDataPipelineRemoveTagsInput!, config: AwsConfig): JSON
  reportTaskProgress(input: AwsDataPipelineReportTaskProgressInput!, config: AwsConfig): AwsDataPipelineReportTaskProgressOutput
  reportTaskRunnerHeartbeat(input: AwsDataPipelineReportTaskRunnerHeartbeatInput!, config: AwsConfig): AwsDataPipelineReportTaskRunnerHeartbeatOutput
  setStatus(input: AwsDataPipelineSetStatusInput!, config: AwsConfig): JSON
  setTaskStatus(input: AwsDataPipelineSetTaskStatusInput!, config: AwsConfig): JSON
  validatePipelineDefinition(input: AwsDataPipelineValidatePipelineDefinitionInput!, config: AwsConfig): AwsDataPipelineValidatePipelineDefinitionOutput
}

input AwsDataPipelineActivatePipelineInput {
  pipelineId: String!
  parameterValues: [AwsDataPipelineS3Input]
  startTimestamp: Date
}

input AwsDataPipelineS3Input {
  id: String!
  stringValue: String!
}

input AwsDataPipelineAddTagsInput {
  pipelineId: String!
  tags: [AwsDataPipelineSaInput]!
}

input AwsDataPipelineSaInput {
  key: String!
  value: String!
}

type AwsDataPipelineCreatePipelineOutput {
  pipelineId: String!
}

input AwsDataPipelineCreatePipelineInput {
  name: String!
  uniqueId: String!
  description: String
  tags: [AwsDataPipelineSaInput]
}

input AwsDataPipelineDeactivatePipelineInput {
  pipelineId: String!
  cancelActive: Boolean
}

input AwsDataPipelineDeletePipelineInput {
  pipelineId: String!
}

type AwsDataPipelineDescribeObjectsOutput {
  pipelineObjects: [AwsDataPipelineSr]!
  marker: String
  hasMoreResults: Boolean
}

type AwsDataPipelineSr {
  id: String!
  name: String!
  fields: [AwsDataPipelineSs]!
}

type AwsDataPipelineSs {
  key: String!
  stringValue: String
  refValue: String
}

input AwsDataPipelineDescribeObjectsInput {
  pipelineId: String!
  objectIds: [String]!
  evaluateExpressions: Boolean
  marker: String
}

type AwsDataPipelineDescribePipelinesOutput {
  pipelineDescriptionList: [AwsDataPipelineDescribePipelinesOutputPipelineDescriptionList]!
}

type AwsDataPipelineDescribePipelinesOutputPipelineDescriptionList {
  pipelineId: String!
  name: String!
  fields: [AwsDataPipelineSs]!
  description: String
  tags: [AwsDataPipelineSa]
}

type AwsDataPipelineSa {
  key: String!
  value: String!
}

input AwsDataPipelineDescribePipelinesInput {
  pipelineIds: [String]!
}

type AwsDataPipelineEvaluateExpressionOutput {
  evaluatedExpression: String!
}

input AwsDataPipelineEvaluateExpressionInput {
  pipelineId: String!
  objectId: String!
  expression: String!
}

type AwsDataPipelineGetPipelineDefinitionOutput {
  pipelineObjects: [AwsDataPipelineSr]
  parameterObjects: [AwsDataPipelineS13]
  parameterValues: [AwsDataPipelineS3]
}

type AwsDataPipelineS13 {
  id: String!
  attributes: [AwsDataPipelineS13Attributes]!
}

type AwsDataPipelineS13Attributes {
  key: String!
  stringValue: String!
}

type AwsDataPipelineS3 {
  id: String!
  stringValue: String!
}

input AwsDataPipelineGetPipelineDefinitionInput {
  pipelineId: String!
  version: String
}

type AwsDataPipelineListPipelinesOutput {
  pipelineIdList: [AwsDataPipelineListPipelinesOutputPipelineIdList]!
  marker: String
  hasMoreResults: Boolean
}

type AwsDataPipelineListPipelinesOutputPipelineIdList {
  id: String
  name: String
}

input AwsDataPipelineListPipelinesInput {
  marker: String
}

type AwsDataPipelinePollForTaskOutput {
  taskObject: AwsDataPipelinePollForTaskOutputTaskObject
}

type AwsDataPipelinePollForTaskOutputTaskObject {
  taskId: String
  pipelineId: String
  attemptId: String
  objects: JSON
}

input AwsDataPipelinePollForTaskInput {
  workerGroup: String!
  hostname: String
  instanceIdentity: AwsDataPipelinePollForTaskInstanceIdentityInput
}

input AwsDataPipelinePollForTaskInstanceIdentityInput {
  document: String
  signature: String
}

type AwsDataPipelinePutPipelineDefinitionOutput {
  validationErrors: [AwsDataPipelineS1l]
  validationWarnings: [AwsDataPipelineS1p]
  errored: Boolean!
}

type AwsDataPipelineS1l {
  id: String
  errors: [String]
}

type AwsDataPipelineS1p {
  id: String
  warnings: [String]
}

input AwsDataPipelinePutPipelineDefinitionInput {
  pipelineId: String!
  pipelineObjects: [AwsDataPipelineSrInput]!
  parameterObjects: [AwsDataPipelineS13Input]
  parameterValues: [AwsDataPipelineS3Input]
}

input AwsDataPipelineSrInput {
  id: String!
  name: String!
  fields: [AwsDataPipelineSsInput]!
}

input AwsDataPipelineSsInput {
  key: String!
  stringValue: String
  refValue: String
}

input AwsDataPipelineS13Input {
  id: String!
  attributes: [AwsDataPipelineS13AttributesInput]!
}

input AwsDataPipelineS13AttributesInput {
  key: String!
  stringValue: String!
}

type AwsDataPipelineQueryObjectsOutput {
  ids: [String]
  marker: String
  hasMoreResults: Boolean
}

input AwsDataPipelineQueryObjectsInput {
  pipelineId: String!
  query: AwsDataPipelineQueryObjectsQueryInput
  sphere: String!
  marker: String
  limit: Int
}

input AwsDataPipelineQueryObjectsQueryInput {
  selectors: [AwsDataPipelineQueryObjectsQuerySelectorsInput]
}

input AwsDataPipelineQueryObjectsQuerySelectorsInput {
  fieldName: String
  operator: AwsDataPipelineQueryObjectsQuerySelectorsOperatorInput
}

input AwsDataPipelineQueryObjectsQuerySelectorsOperatorInput {
  type: String
  values: [String]
}

input AwsDataPipelineRemoveTagsInput {
  pipelineId: String!
  tagKeys: [String]!
}

type AwsDataPipelineReportTaskProgressOutput {
  canceled: Boolean!
}

input AwsDataPipelineReportTaskProgressInput {
  taskId: String!
  fields: [AwsDataPipelineSsInput]
}

type AwsDataPipelineReportTaskRunnerHeartbeatOutput {
  terminate: Boolean!
}

input AwsDataPipelineReportTaskRunnerHeartbeatInput {
  taskrunnerId: String!
  workerGroup: String
  hostname: String
}

input AwsDataPipelineSetStatusInput {
  pipelineId: String!
  objectIds: [String]!
  status: String!
}

input AwsDataPipelineSetTaskStatusInput {
  taskId: String!
  taskStatus: String!
  errorId: String
  errorMessage: String
  errorStackTrace: String
}

type AwsDataPipelineValidatePipelineDefinitionOutput {
  validationErrors: [AwsDataPipelineS1l]
  validationWarnings: [AwsDataPipelineS1p]
  errored: Boolean!
}

input AwsDataPipelineValidatePipelineDefinitionInput {
  pipelineId: String!
  pipelineObjects: [AwsDataPipelineSrInput]!
  parameterObjects: [AwsDataPipelineS13Input]
  parameterValues: [AwsDataPipelineS3Input]
}

"""AWS DataSync (2018-11-09)"""
type AwsDataSync {
  cancelTaskExecution(input: AwsDataSyncCancelTaskExecutionInput!, config: AwsConfig): JSON
  createAgent(input: AwsDataSyncCreateAgentInput!, config: AwsConfig): AwsDataSyncCreateAgentOutput
  createLocationEfs(input: AwsDataSyncCreateLocationEfsInput!, config: AwsConfig): AwsDataSyncCreateLocationEfsOutput
  createLocationFsxWindows(input: AwsDataSyncCreateLocationFsxWindowsInput!, config: AwsConfig): AwsDataSyncCreateLocationFsxWindowsOutput
  createLocationNfs(input: AwsDataSyncCreateLocationNfsInput!, config: AwsConfig): AwsDataSyncCreateLocationNfsOutput
  createLocationObjectStorage(input: AwsDataSyncCreateLocationObjectStorageInput!, config: AwsConfig): AwsDataSyncCreateLocationObjectStorageOutput
  createLocationS3(input: AwsDataSyncCreateLocationS3Input!, config: AwsConfig): AwsDataSyncCreateLocationS3Output
  createLocationSmb(input: AwsDataSyncCreateLocationSmbInput!, config: AwsConfig): AwsDataSyncCreateLocationSmbOutput
  createTask(input: AwsDataSyncCreateTaskInput!, config: AwsConfig): AwsDataSyncCreateTaskOutput
  deleteAgent(input: AwsDataSyncDeleteAgentInput!, config: AwsConfig): JSON
  deleteLocation(input: AwsDataSyncDeleteLocationInput!, config: AwsConfig): JSON
  deleteTask(input: AwsDataSyncDeleteTaskInput!, config: AwsConfig): JSON
  describeAgent(input: AwsDataSyncDescribeAgentInput!, config: AwsConfig): AwsDataSyncDescribeAgentOutput
  describeLocationEfs(input: AwsDataSyncDescribeLocationEfsInput!, config: AwsConfig): AwsDataSyncDescribeLocationEfsOutput
  describeLocationFsxWindows(input: AwsDataSyncDescribeLocationFsxWindowsInput!, config: AwsConfig): AwsDataSyncDescribeLocationFsxWindowsOutput
  describeLocationNfs(input: AwsDataSyncDescribeLocationNfsInput!, config: AwsConfig): AwsDataSyncDescribeLocationNfsOutput
  describeLocationObjectStorage(input: AwsDataSyncDescribeLocationObjectStorageInput!, config: AwsConfig): AwsDataSyncDescribeLocationObjectStorageOutput
  describeLocationS3(input: AwsDataSyncDescribeLocationS3Input!, config: AwsConfig): AwsDataSyncDescribeLocationS3Output
  describeLocationSmb(input: AwsDataSyncDescribeLocationSmbInput!, config: AwsConfig): AwsDataSyncDescribeLocationSmbOutput
  describeTask(input: AwsDataSyncDescribeTaskInput!, config: AwsConfig): AwsDataSyncDescribeTaskOutput
  describeTaskExecution(input: AwsDataSyncDescribeTaskExecutionInput!, config: AwsConfig): AwsDataSyncDescribeTaskExecutionOutput
  listAgents(input: AwsDataSyncListAgentsInput, config: AwsConfig): AwsDataSyncListAgentsOutput
  listLocations(input: AwsDataSyncListLocationsInput, config: AwsConfig): AwsDataSyncListLocationsOutput
  listTagsForResource(input: AwsDataSyncListTagsForResourceInput!, config: AwsConfig): AwsDataSyncListTagsForResourceOutput
  listTaskExecutions(input: AwsDataSyncListTaskExecutionsInput, config: AwsConfig): AwsDataSyncListTaskExecutionsOutput
  listTasks(input: AwsDataSyncListTasksInput, config: AwsConfig): AwsDataSyncListTasksOutput
  startTaskExecution(input: AwsDataSyncStartTaskExecutionInput!, config: AwsConfig): AwsDataSyncStartTaskExecutionOutput
  tagResource(input: AwsDataSyncTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDataSyncUntagResourceInput!, config: AwsConfig): JSON
  updateAgent(input: AwsDataSyncUpdateAgentInput!, config: AwsConfig): JSON
  updateLocationNfs(input: AwsDataSyncUpdateLocationNfsInput!, config: AwsConfig): JSON
  updateLocationObjectStorage(input: AwsDataSyncUpdateLocationObjectStorageInput!, config: AwsConfig): JSON
  updateLocationSmb(input: AwsDataSyncUpdateLocationSmbInput!, config: AwsConfig): JSON
  updateTask(input: AwsDataSyncUpdateTaskInput!, config: AwsConfig): JSON
  updateTaskExecution(input: AwsDataSyncUpdateTaskExecutionInput!, config: AwsConfig): JSON
}

input AwsDataSyncCancelTaskExecutionInput {
  TaskExecutionArn: String!
}

type AwsDataSyncCreateAgentOutput {
  AgentArn: String
}

input AwsDataSyncCreateAgentInput {
  ActivationKey: String!
  AgentName: String
  Tags: [AwsDataSyncS8Input]
  VpcEndpointId: String
  SubnetArns: [String]
  SecurityGroupArns: [String]
}

input AwsDataSyncS8Input {
  Key: String!
  Value: String
}

type AwsDataSyncCreateLocationEfsOutput {
  LocationArn: String
}

input AwsDataSyncCreateLocationEfsInput {
  Subdirectory: String
  EfsFilesystemArn: String!
  Ec2Config: AwsDataSyncSkInput!
  Tags: [AwsDataSyncS8Input]
}

input AwsDataSyncSkInput {
  SubnetArn: String!
  SecurityGroupArns: [String]!
}

type AwsDataSyncCreateLocationFsxWindowsOutput {
  LocationArn: String
}

input AwsDataSyncCreateLocationFsxWindowsInput {
  Subdirectory: String
  FsxFilesystemArn: String!
  SecurityGroupArns: [String]!
  Tags: [AwsDataSyncS8Input]
  User: String!
  Domain: String
  Password: String!
}

type AwsDataSyncCreateLocationNfsOutput {
  LocationArn: String
}

input AwsDataSyncCreateLocationNfsInput {
  Subdirectory: String!
  ServerHostname: String!
  OnPremConfig: AwsDataSyncSyInput!
  MountOptions: AwsDataSyncS10Input
  Tags: [AwsDataSyncS8Input]
}

input AwsDataSyncSyInput {
  AgentArns: [String]!
}

input AwsDataSyncS10Input {
  Version: String
}

type AwsDataSyncCreateLocationObjectStorageOutput {
  LocationArn: String
}

input AwsDataSyncCreateLocationObjectStorageInput {
  ServerHostname: String!
  ServerPort: Int
  ServerProtocol: String
  Subdirectory: String
  BucketName: String!
  AccessKey: String
  SecretKey: String
  AgentArns: [String]!
  Tags: [AwsDataSyncS8Input]
}

type AwsDataSyncCreateLocationS3Output {
  LocationArn: String
}

input AwsDataSyncCreateLocationS3Input {
  Subdirectory: String
  S3BucketArn: String!
  S3StorageClass: String
  S3Config: AwsDataSyncS1eInput!
  AgentArns: [String]
  Tags: [AwsDataSyncS8Input]
}

input AwsDataSyncS1eInput {
  BucketAccessRoleArn: String!
}

type AwsDataSyncCreateLocationSmbOutput {
  LocationArn: String
}

input AwsDataSyncCreateLocationSmbInput {
  Subdirectory: String!
  ServerHostname: String!
  User: String!
  Domain: String
  Password: String!
  AgentArns: [String]!
  MountOptions: AwsDataSyncS1jInput
  Tags: [AwsDataSyncS8Input]
}

input AwsDataSyncS1jInput {
  Version: String
}

type AwsDataSyncCreateTaskOutput {
  TaskArn: String
}

input AwsDataSyncCreateTaskInput {
  SourceLocationArn: String!
  DestinationLocationArn: String!
  CloudWatchLogGroupArn: String
  Name: String
  Options: AwsDataSyncS1oInput
  Excludes: [AwsDataSyncS23Input]
  Schedule: AwsDataSyncS27Input
  Tags: [AwsDataSyncS8Input]
}

input AwsDataSyncS1oInput {
  VerifyMode: String
  OverwriteMode: String
  Atime: String
  Mtime: String
  Uid: String
  Gid: String
  PreserveDeletedFiles: String
  PreserveDevices: String
  PosixPermissions: String
  BytesPerSecond: JSON
  TaskQueueing: String
  LogLevel: String
  TransferMode: String
  SecurityDescriptorCopyFlags: String
}

input AwsDataSyncS23Input {
  FilterType: String
  Value: String
}

input AwsDataSyncS27Input {
  ScheduleExpression: String!
}

input AwsDataSyncDeleteAgentInput {
  AgentArn: String!
}

input AwsDataSyncDeleteLocationInput {
  LocationArn: String!
}

input AwsDataSyncDeleteTaskInput {
  TaskArn: String!
}

type AwsDataSyncDescribeAgentOutput {
  AgentArn: String
  Name: String
  Status: String
  LastConnectionTime: Date
  CreationTime: Date
  EndpointType: String
  PrivateLinkConfig: AwsDataSyncDescribeAgentOutputPrivateLinkConfig
}

type AwsDataSyncDescribeAgentOutputPrivateLinkConfig {
  VpcEndpointId: String
  PrivateLinkEndpoint: String
  SubnetArns: [String]
  SecurityGroupArns: [String]
}

input AwsDataSyncDescribeAgentInput {
  AgentArn: String!
}

type AwsDataSyncDescribeLocationEfsOutput {
  LocationArn: String
  LocationUri: String
  Ec2Config: AwsDataSyncSk
  CreationTime: Date
}

type AwsDataSyncSk {
  SubnetArn: String!
  SecurityGroupArns: [String]!
}

input AwsDataSyncDescribeLocationEfsInput {
  LocationArn: String!
}

type AwsDataSyncDescribeLocationFsxWindowsOutput {
  LocationArn: String
  LocationUri: String
  SecurityGroupArns: [String]
  CreationTime: Date
  User: String
  Domain: String
}

input AwsDataSyncDescribeLocationFsxWindowsInput {
  LocationArn: String!
}

type AwsDataSyncDescribeLocationNfsOutput {
  LocationArn: String
  LocationUri: String
  OnPremConfig: AwsDataSyncSy
  MountOptions: AwsDataSyncS10
  CreationTime: Date
}

type AwsDataSyncSy {
  AgentArns: [String]!
}

type AwsDataSyncS10 {
  Version: String
}

input AwsDataSyncDescribeLocationNfsInput {
  LocationArn: String!
}

type AwsDataSyncDescribeLocationObjectStorageOutput {
  LocationArn: String
  LocationUri: String
  AccessKey: String
  ServerPort: Int
  ServerProtocol: String
  AgentArns: [String]
  CreationTime: Date
}

input AwsDataSyncDescribeLocationObjectStorageInput {
  LocationArn: String!
}

type AwsDataSyncDescribeLocationS3Output {
  LocationArn: String
  LocationUri: String
  S3StorageClass: String
  S3Config: AwsDataSyncS1e
  AgentArns: [String]
  CreationTime: Date
}

type AwsDataSyncS1e {
  BucketAccessRoleArn: String!
}

input AwsDataSyncDescribeLocationS3Input {
  LocationArn: String!
}

type AwsDataSyncDescribeLocationSmbOutput {
  LocationArn: String
  LocationUri: String
  AgentArns: [String]
  User: String
  Domain: String
  MountOptions: AwsDataSyncS1j
  CreationTime: Date
}

type AwsDataSyncS1j {
  Version: String
}

input AwsDataSyncDescribeLocationSmbInput {
  LocationArn: String!
}

type AwsDataSyncDescribeTaskOutput {
  TaskArn: String
  Status: String
  Name: String
  CurrentTaskExecutionArn: String
  SourceLocationArn: String
  DestinationLocationArn: String
  CloudWatchLogGroupArn: String
  SourceNetworkInterfaceArns: [String]
  DestinationNetworkInterfaceArns: [String]
  Options: AwsDataSyncS1o
  Excludes: [AwsDataSyncS23]
  Schedule: AwsDataSyncS27
  ErrorCode: String
  ErrorDetail: String
  CreationTime: Date
}

type AwsDataSyncS1o {
  VerifyMode: String
  OverwriteMode: String
  Atime: String
  Mtime: String
  Uid: String
  Gid: String
  PreserveDeletedFiles: String
  PreserveDevices: String
  PosixPermissions: String
  BytesPerSecond: JSON
  TaskQueueing: String
  LogLevel: String
  TransferMode: String
  SecurityDescriptorCopyFlags: String
}

type AwsDataSyncS23 {
  FilterType: String
  Value: String
}

type AwsDataSyncS27 {
  ScheduleExpression: String!
}

input AwsDataSyncDescribeTaskInput {
  TaskArn: String!
}

type AwsDataSyncDescribeTaskExecutionOutput {
  TaskExecutionArn: String
  Status: String
  Options: AwsDataSyncS1o
  Excludes: [AwsDataSyncS23]
  Includes: [AwsDataSyncS23]
  StartTime: Date
  EstimatedFilesToTransfer: JSON
  EstimatedBytesToTransfer: JSON
  FilesTransferred: JSON
  BytesWritten: JSON
  BytesTransferred: JSON
  Result: AwsDataSyncDescribeTaskExecutionOutputResult
}

type AwsDataSyncDescribeTaskExecutionOutputResult {
  PrepareDuration: JSON
  PrepareStatus: String
  TotalDuration: JSON
  TransferDuration: JSON
  TransferStatus: String
  VerifyDuration: JSON
  VerifyStatus: String
  ErrorCode: String
  ErrorDetail: String
}

input AwsDataSyncDescribeTaskExecutionInput {
  TaskExecutionArn: String!
}

type AwsDataSyncListAgentsOutput {
  Agents: [AwsDataSyncListAgentsOutputAgents]
  NextToken: String
}

type AwsDataSyncListAgentsOutputAgents {
  AgentArn: String
  Name: String
  Status: String
}

input AwsDataSyncListAgentsInput {
  MaxResults: Int
  NextToken: String
}

type AwsDataSyncListLocationsOutput {
  Locations: [AwsDataSyncListLocationsOutputLocations]
  NextToken: String
}

type AwsDataSyncListLocationsOutputLocations {
  LocationArn: String
  LocationUri: String
}

input AwsDataSyncListLocationsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsDataSyncListLocationsFiltersInput]
}

input AwsDataSyncListLocationsFiltersInput {
  Name: String!
  Values: [String]!
  Operator: String!
}

type AwsDataSyncListTagsForResourceOutput {
  Tags: [AwsDataSyncS8]
  NextToken: String
}

type AwsDataSyncS8 {
  Key: String!
  Value: String
}

input AwsDataSyncListTagsForResourceInput {
  ResourceArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsDataSyncListTaskExecutionsOutput {
  TaskExecutions: [AwsDataSyncListTaskExecutionsOutputTaskExecutions]
  NextToken: String
}

type AwsDataSyncListTaskExecutionsOutputTaskExecutions {
  TaskExecutionArn: String
  Status: String
}

input AwsDataSyncListTaskExecutionsInput {
  TaskArn: String
  MaxResults: Int
  NextToken: String
}

type AwsDataSyncListTasksOutput {
  Tasks: [AwsDataSyncListTasksOutputTasks]
  NextToken: String
}

type AwsDataSyncListTasksOutputTasks {
  TaskArn: String
  Status: String
  Name: String
}

input AwsDataSyncListTasksInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsDataSyncListTasksFiltersInput]
}

input AwsDataSyncListTasksFiltersInput {
  Name: String!
  Values: [String]!
  Operator: String!
}

type AwsDataSyncStartTaskExecutionOutput {
  TaskExecutionArn: String
}

input AwsDataSyncStartTaskExecutionInput {
  TaskArn: String!
  OverrideOptions: AwsDataSyncS1oInput
  Includes: [AwsDataSyncS23Input]
}

input AwsDataSyncTagResourceInput {
  ResourceArn: String!
  Tags: [AwsDataSyncS8Input]!
}

input AwsDataSyncUntagResourceInput {
  ResourceArn: String!
  Keys: [String]!
}

input AwsDataSyncUpdateAgentInput {
  AgentArn: String!
  Name: String
}

input AwsDataSyncUpdateLocationNfsInput {
  LocationArn: String!
  Subdirectory: String
  OnPremConfig: AwsDataSyncSyInput
  MountOptions: AwsDataSyncS10Input
}

input AwsDataSyncUpdateLocationObjectStorageInput {
  LocationArn: String!
  ServerPort: Int
  ServerProtocol: String
  Subdirectory: String
  AccessKey: String
  SecretKey: String
  AgentArns: [String]
}

input AwsDataSyncUpdateLocationSmbInput {
  LocationArn: String!
  Subdirectory: String
  User: String
  Domain: String
  Password: String
  AgentArns: [String]
  MountOptions: AwsDataSyncS1jInput
}

input AwsDataSyncUpdateTaskInput {
  TaskArn: String!
  Options: AwsDataSyncS1oInput
  Excludes: [AwsDataSyncS23Input]
  Schedule: AwsDataSyncS27Input
  Name: String
  CloudWatchLogGroupArn: String
}

input AwsDataSyncUpdateTaskExecutionInput {
  TaskExecutionArn: String!
  Options: AwsDataSyncS1oInput!
}

"""Amazon Detective (2018-10-26)"""
type AwsDetective {
  acceptInvitation(input: AwsDetectiveAcceptInvitationInput!, config: AwsConfig): JSON
  createGraph(input: AwsDetectiveCreateGraphInput, config: AwsConfig): AwsDetectiveCreateGraphOutput
  createMembers(input: AwsDetectiveCreateMembersInput!, config: AwsConfig): AwsDetectiveCreateMembersOutput
  deleteGraph(input: AwsDetectiveDeleteGraphInput!, config: AwsConfig): JSON
  deleteMembers(input: AwsDetectiveDeleteMembersInput!, config: AwsConfig): AwsDetectiveDeleteMembersOutput
  disassociateMembership(input: AwsDetectiveDisassociateMembershipInput!, config: AwsConfig): JSON
  getMembers(input: AwsDetectiveGetMembersInput!, config: AwsConfig): AwsDetectiveGetMembersOutput
  listGraphs(input: AwsDetectiveListGraphsInput, config: AwsConfig): AwsDetectiveListGraphsOutput
  listInvitations(input: AwsDetectiveListInvitationsInput, config: AwsConfig): AwsDetectiveListInvitationsOutput
  listMembers(input: AwsDetectiveListMembersInput!, config: AwsConfig): AwsDetectiveListMembersOutput
  listTagsForResource(input: AwsDetectiveListTagsForResourceInput!, config: AwsConfig): AwsDetectiveListTagsForResourceOutput
  rejectInvitation(input: AwsDetectiveRejectInvitationInput!, config: AwsConfig): JSON
  startMonitoringMember(input: AwsDetectiveStartMonitoringMemberInput!, config: AwsConfig): JSON
  tagResource(input: AwsDetectiveTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDetectiveUntagResourceInput!, config: AwsConfig): JSON
}

input AwsDetectiveAcceptInvitationInput {
  GraphArn: String!
}

type AwsDetectiveCreateGraphOutput {
  GraphArn: String
}

input AwsDetectiveCreateGraphInput {
  Tags: JSON
}

type AwsDetectiveCreateMembersOutput {
  Members: [AwsDetectiveSg]
  UnprocessedAccounts: [AwsDetectiveSn]
}

type AwsDetectiveSg {
  AccountId: String
  EmailAddress: String
  GraphArn: String
  MasterId: String
  AdministratorId: String
  Status: String
  DisabledReason: String
  InvitedTime: Date
  UpdatedTime: Date
  VolumeUsageInBytes: JSON
  VolumeUsageUpdatedTime: Date
  PercentOfGraphUtilization: JSON
  PercentOfGraphUtilizationUpdatedTime: Date
}

type AwsDetectiveSn {
  AccountId: String
  Reason: String
}

input AwsDetectiveCreateMembersInput {
  GraphArn: String!
  Message: String
  DisableEmailNotification: Boolean
  Accounts: [AwsDetectiveCreateMembersAccountsInput]!
}

input AwsDetectiveCreateMembersAccountsInput {
  AccountId: String!
  EmailAddress: String!
}

input AwsDetectiveDeleteGraphInput {
  GraphArn: String!
}

type AwsDetectiveDeleteMembersOutput {
  AccountIds: [String]
  UnprocessedAccounts: [AwsDetectiveSn]
}

input AwsDetectiveDeleteMembersInput {
  GraphArn: String!
  AccountIds: [String]!
}

input AwsDetectiveDisassociateMembershipInput {
  GraphArn: String!
}

type AwsDetectiveGetMembersOutput {
  MemberDetails: [AwsDetectiveSg]
  UnprocessedAccounts: [AwsDetectiveSn]
}

input AwsDetectiveGetMembersInput {
  GraphArn: String!
  AccountIds: [String]!
}

type AwsDetectiveListGraphsOutput {
  GraphList: [AwsDetectiveListGraphsOutputGraphList]
  NextToken: String
}

type AwsDetectiveListGraphsOutputGraphList {
  Arn: String
  CreatedTime: Date
}

input AwsDetectiveListGraphsInput {
  NextToken: String
  MaxResults: Int
}

type AwsDetectiveListInvitationsOutput {
  Invitations: [AwsDetectiveSg]
  NextToken: String
}

input AwsDetectiveListInvitationsInput {
  NextToken: String
  MaxResults: Int
}

type AwsDetectiveListMembersOutput {
  MemberDetails: [AwsDetectiveSg]
  NextToken: String
}

input AwsDetectiveListMembersInput {
  GraphArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsDetectiveListTagsForResourceOutput {
  Tags: JSON
}

input AwsDetectiveListTagsForResourceInput {
  ResourceArn: String!
}

input AwsDetectiveRejectInvitationInput {
  GraphArn: String!
}

input AwsDetectiveStartMonitoringMemberInput {
  GraphArn: String!
  AccountId: String!
}

input AwsDetectiveTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsDetectiveUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""Amazon DevOps Guru (2020-12-01)"""
type AwsDevOpsGuru {
  addNotificationChannel(input: AwsDevOpsGuruAddNotificationChannelInput!, config: AwsConfig): AwsDevOpsGuruAddNotificationChannelOutput
  describeAccountHealth(input: JSON, config: AwsConfig): AwsDevOpsGuruDescribeAccountHealthOutput
  describeAccountOverview(input: AwsDevOpsGuruDescribeAccountOverviewInput!, config: AwsConfig): AwsDevOpsGuruDescribeAccountOverviewOutput
  describeAnomaly(input: AwsDevOpsGuruDescribeAnomalyInput!, config: AwsConfig): AwsDevOpsGuruDescribeAnomalyOutput
  describeFeedback(input: AwsDevOpsGuruDescribeFeedbackInput, config: AwsConfig): AwsDevOpsGuruDescribeFeedbackOutput
  describeInsight(input: AwsDevOpsGuruDescribeInsightInput!, config: AwsConfig): AwsDevOpsGuruDescribeInsightOutput
  describeResourceCollectionHealth(input: AwsDevOpsGuruDescribeResourceCollectionHealthInput!, config: AwsConfig): AwsDevOpsGuruDescribeResourceCollectionHealthOutput
  describeServiceIntegration(input: JSON, config: AwsConfig): AwsDevOpsGuruDescribeServiceIntegrationOutput
  getCostEstimation(input: AwsDevOpsGuruGetCostEstimationInput, config: AwsConfig): AwsDevOpsGuruGetCostEstimationOutput
  getResourceCollection(input: AwsDevOpsGuruGetResourceCollectionInput!, config: AwsConfig): AwsDevOpsGuruGetResourceCollectionOutput
  listAnomaliesForInsight(input: AwsDevOpsGuruListAnomaliesForInsightInput!, config: AwsConfig): AwsDevOpsGuruListAnomaliesForInsightOutput
  listEvents(input: AwsDevOpsGuruListEventsInput!, config: AwsConfig): AwsDevOpsGuruListEventsOutput
  listInsights(input: AwsDevOpsGuruListInsightsInput!, config: AwsConfig): AwsDevOpsGuruListInsightsOutput
  listNotificationChannels(input: AwsDevOpsGuruListNotificationChannelsInput, config: AwsConfig): AwsDevOpsGuruListNotificationChannelsOutput
  listRecommendations(input: AwsDevOpsGuruListRecommendationsInput!, config: AwsConfig): AwsDevOpsGuruListRecommendationsOutput
  putFeedback(input: AwsDevOpsGuruPutFeedbackInput, config: AwsConfig): JSON
  removeNotificationChannel(input: AwsDevOpsGuruRemoveNotificationChannelInput!, config: AwsConfig): JSON
  searchInsights(input: AwsDevOpsGuruSearchInsightsInput!, config: AwsConfig): AwsDevOpsGuruSearchInsightsOutput
  startCostEstimation(input: AwsDevOpsGuruStartCostEstimationInput!, config: AwsConfig): JSON
  updateResourceCollection(input: AwsDevOpsGuruUpdateResourceCollectionInput!, config: AwsConfig): JSON
  updateServiceIntegration(input: AwsDevOpsGuruUpdateServiceIntegrationInput!, config: AwsConfig): JSON
}

type AwsDevOpsGuruAddNotificationChannelOutput {
  Id: String!
}

input AwsDevOpsGuruAddNotificationChannelInput {
  Config: AwsDevOpsGuruS2Input!
}

input AwsDevOpsGuruS2Input {
  Sns: AwsDevOpsGuruS2SnsInput!
}

input AwsDevOpsGuruS2SnsInput {
  TopicArn: String
}

type AwsDevOpsGuruDescribeAccountHealthOutput {
  OpenReactiveInsights: Int!
  OpenProactiveInsights: Int!
  MetricsAnalyzed: Int!
  ResourceHours: JSON!
}

type AwsDevOpsGuruDescribeAccountOverviewOutput {
  ReactiveInsights: Int!
  ProactiveInsights: Int!
  MeanTimeToRecoverInMilliseconds: JSON!
}

input AwsDevOpsGuruDescribeAccountOverviewInput {
  FromTime: Date!
  ToTime: Date
}

type AwsDevOpsGuruDescribeAnomalyOutput {
  ProactiveAnomaly: AwsDevOpsGuruDescribeAnomalyOutputProactiveAnomaly
  ReactiveAnomaly: AwsDevOpsGuruDescribeAnomalyOutputReactiveAnomaly
}

type AwsDevOpsGuruDescribeAnomalyOutputProactiveAnomaly {
  Id: String
  Severity: String
  Status: String
  UpdateTime: Date
  AnomalyTimeRange: AwsDevOpsGuruSp
  PredictionTimeRange: AwsDevOpsGuruSq
  SourceDetails: AwsDevOpsGuruSr
  AssociatedInsightId: String
  ResourceCollection: AwsDevOpsGuruS14
  Limit: JSON
}

type AwsDevOpsGuruSp {
  StartTime: Date!
  EndTime: Date
}

type AwsDevOpsGuruSq {
  StartTime: Date!
  EndTime: Date
}

type AwsDevOpsGuruSr {
  CloudWatchMetrics: [AwsDevOpsGuruSrCloudWatchMetrics]
}

type AwsDevOpsGuruSrCloudWatchMetrics {
  MetricName: String
  Namespace: String
  Dimensions: [AwsDevOpsGuruSrCloudWatchMetricsDimensions]
  Stat: String
  Unit: String
  Period: Int
}

type AwsDevOpsGuruSrCloudWatchMetricsDimensions {
  Name: String
  Value: String
}

type AwsDevOpsGuruS14 {
  CloudFormation: AwsDevOpsGuruS14CloudFormation
}

type AwsDevOpsGuruS14CloudFormation {
  StackNames: [String]
}

type AwsDevOpsGuruDescribeAnomalyOutputReactiveAnomaly {
  Id: String
  Severity: String
  Status: String
  AnomalyTimeRange: AwsDevOpsGuruSp
  SourceDetails: AwsDevOpsGuruSr
  AssociatedInsightId: String
  ResourceCollection: AwsDevOpsGuruS14
}

input AwsDevOpsGuruDescribeAnomalyInput {
  Id: String!
}

type AwsDevOpsGuruDescribeFeedbackOutput {
  InsightFeedback: AwsDevOpsGuruS1c
}

type AwsDevOpsGuruS1c {
  Id: String
  Feedback: String
}

input AwsDevOpsGuruDescribeFeedbackInput {
  InsightId: String
}

type AwsDevOpsGuruDescribeInsightOutput {
  ProactiveInsight: AwsDevOpsGuruDescribeInsightOutputProactiveInsight
  ReactiveInsight: AwsDevOpsGuruDescribeInsightOutputReactiveInsight
}

type AwsDevOpsGuruDescribeInsightOutputProactiveInsight {
  Id: String
  Name: String
  Severity: String
  Status: String
  InsightTimeRange: AwsDevOpsGuruS1k
  PredictionTimeRange: AwsDevOpsGuruSq
  ResourceCollection: AwsDevOpsGuruS14
  SsmOpsItemId: String
}

type AwsDevOpsGuruS1k {
  StartTime: Date!
  EndTime: Date
}

type AwsDevOpsGuruDescribeInsightOutputReactiveInsight {
  Id: String
  Name: String
  Severity: String
  Status: String
  InsightTimeRange: AwsDevOpsGuruS1k
  ResourceCollection: AwsDevOpsGuruS14
  SsmOpsItemId: String
}

input AwsDevOpsGuruDescribeInsightInput {
  Id: String!
}

type AwsDevOpsGuruDescribeResourceCollectionHealthOutput {
  CloudFormation: [AwsDevOpsGuruDescribeResourceCollectionHealthOutputCloudFormation]!
  Service: [AwsDevOpsGuruDescribeResourceCollectionHealthOutputService]
  NextToken: String
}

type AwsDevOpsGuruDescribeResourceCollectionHealthOutputCloudFormation {
  StackName: String
  Insight: AwsDevOpsGuruDescribeResourceCollectionHealthOutputCloudFormationInsight
}

type AwsDevOpsGuruDescribeResourceCollectionHealthOutputCloudFormationInsight {
  OpenProactiveInsights: Int
  OpenReactiveInsights: Int
  MeanTimeToRecoverInMilliseconds: JSON
}

type AwsDevOpsGuruDescribeResourceCollectionHealthOutputService {
  ServiceName: String
  Insight: AwsDevOpsGuruDescribeResourceCollectionHealthOutputServiceInsight
}

type AwsDevOpsGuruDescribeResourceCollectionHealthOutputServiceInsight {
  OpenProactiveInsights: Int
  OpenReactiveInsights: Int
}

input AwsDevOpsGuruDescribeResourceCollectionHealthInput {
  ResourceCollectionType: String!
  NextToken: String
}

type AwsDevOpsGuruDescribeServiceIntegrationOutput {
  ServiceIntegration: AwsDevOpsGuruDescribeServiceIntegrationOutputServiceIntegration
}

type AwsDevOpsGuruDescribeServiceIntegrationOutputServiceIntegration {
  OpsCenter: AwsDevOpsGuruDescribeServiceIntegrationOutputServiceIntegrationOpsCenter
}

type AwsDevOpsGuruDescribeServiceIntegrationOutputServiceIntegrationOpsCenter {
  OptInStatus: String
}

type AwsDevOpsGuruGetCostEstimationOutput {
  ResourceCollection: AwsDevOpsGuruS25
  Status: String
  Costs: [AwsDevOpsGuruGetCostEstimationOutputCosts]
  TimeRange: AwsDevOpsGuruGetCostEstimationOutputTimeRange
  TotalCost: JSON
  NextToken: String
}

type AwsDevOpsGuruS25 {
  CloudFormation: AwsDevOpsGuruS25CloudFormation
}

type AwsDevOpsGuruS25CloudFormation {
  StackNames: [String]
}

type AwsDevOpsGuruGetCostEstimationOutputCosts {
  Type: String
  State: String
  Count: Int
  UnitCost: JSON
  Cost: JSON
}

type AwsDevOpsGuruGetCostEstimationOutputTimeRange {
  StartTime: Date
  EndTime: Date
}

input AwsDevOpsGuruGetCostEstimationInput {
  NextToken: String
}

type AwsDevOpsGuruGetResourceCollectionOutput {
  ResourceCollection: AwsDevOpsGuruGetResourceCollectionOutputResourceCollection
  NextToken: String
}

type AwsDevOpsGuruGetResourceCollectionOutputResourceCollection {
  CloudFormation: AwsDevOpsGuruGetResourceCollectionOutputResourceCollectionCloudFormation
}

type AwsDevOpsGuruGetResourceCollectionOutputResourceCollectionCloudFormation {
  StackNames: [String]
}

input AwsDevOpsGuruGetResourceCollectionInput {
  ResourceCollectionType: String!
  NextToken: String
}

type AwsDevOpsGuruListAnomaliesForInsightOutput {
  ProactiveAnomalies: [AwsDevOpsGuruListAnomaliesForInsightOutputProactiveAnomalies]
  ReactiveAnomalies: [AwsDevOpsGuruListAnomaliesForInsightOutputReactiveAnomalies]
  NextToken: String
}

type AwsDevOpsGuruListAnomaliesForInsightOutputProactiveAnomalies {
  Id: String
  Severity: String
  Status: String
  UpdateTime: Date
  AnomalyTimeRange: AwsDevOpsGuruSp
  PredictionTimeRange: AwsDevOpsGuruSq
  SourceDetails: AwsDevOpsGuruSr
  AssociatedInsightId: String
  ResourceCollection: AwsDevOpsGuruS14
  Limit: JSON
}

type AwsDevOpsGuruListAnomaliesForInsightOutputReactiveAnomalies {
  Id: String
  Severity: String
  Status: String
  AnomalyTimeRange: AwsDevOpsGuruSp
  SourceDetails: AwsDevOpsGuruSr
  AssociatedInsightId: String
  ResourceCollection: AwsDevOpsGuruS14
}

input AwsDevOpsGuruListAnomaliesForInsightInput {
  InsightId: String!
  StartTimeRange: AwsDevOpsGuruS2lInput
  MaxResults: Int
  NextToken: String
}

input AwsDevOpsGuruS2lInput {
  FromTime: Date
  ToTime: Date
}

type AwsDevOpsGuruListEventsOutput {
  Events: [AwsDevOpsGuruListEventsOutputEvents]!
  NextToken: String
}

type AwsDevOpsGuruListEventsOutputEvents {
  ResourceCollection: AwsDevOpsGuruS14
  Id: String
  Time: Date
  EventSource: String
  Name: String
  DataSource: String
  EventClass: String
  Resources: [AwsDevOpsGuruListEventsOutputEventsResources]
}

type AwsDevOpsGuruListEventsOutputEventsResources {
  Type: String
  Name: String
  Arn: String
}

input AwsDevOpsGuruListEventsInput {
  Filters: AwsDevOpsGuruListEventsFiltersInput!
  MaxResults: Int
  NextToken: String
}

input AwsDevOpsGuruListEventsFiltersInput {
  InsightId: String
  EventTimeRange: AwsDevOpsGuruListEventsFiltersEventTimeRangeInput
  EventClass: String
  EventSource: String
  DataSource: String
  ResourceCollection: AwsDevOpsGuruS14Input
}

input AwsDevOpsGuruListEventsFiltersEventTimeRangeInput {
  FromTime: Date!
  ToTime: Date!
}

input AwsDevOpsGuruS14Input {
  CloudFormation: AwsDevOpsGuruS14CloudFormationInput
}

input AwsDevOpsGuruS14CloudFormationInput {
  StackNames: [String]
}

type AwsDevOpsGuruListInsightsOutput {
  ProactiveInsights: [AwsDevOpsGuruS3i]
  ReactiveInsights: [AwsDevOpsGuruS3m]
  NextToken: String
}

type AwsDevOpsGuruS3i {
  Id: String
  Name: String
  Severity: String
  Status: String
  InsightTimeRange: AwsDevOpsGuruS1k
  PredictionTimeRange: AwsDevOpsGuruSq
  ResourceCollection: AwsDevOpsGuruS14
  ServiceCollection: AwsDevOpsGuruS3k
}

type AwsDevOpsGuruS3k {
  ServiceNames: [String]
}

type AwsDevOpsGuruS3m {
  Id: String
  Name: String
  Severity: String
  Status: String
  InsightTimeRange: AwsDevOpsGuruS1k
  ResourceCollection: AwsDevOpsGuruS14
  ServiceCollection: AwsDevOpsGuruS3k
}

input AwsDevOpsGuruListInsightsInput {
  StatusFilter: AwsDevOpsGuruListInsightsStatusFilterInput!
  MaxResults: Int
  NextToken: String
}

input AwsDevOpsGuruListInsightsStatusFilterInput {
  Ongoing: AwsDevOpsGuruListInsightsStatusFilterOngoingInput
  Closed: AwsDevOpsGuruListInsightsStatusFilterClosedInput
  Any: AwsDevOpsGuruListInsightsStatusFilterAnyInput
}

input AwsDevOpsGuruListInsightsStatusFilterOngoingInput {
  Type: String!
}

input AwsDevOpsGuruListInsightsStatusFilterClosedInput {
  Type: String!
  EndTimeRange: AwsDevOpsGuruListInsightsStatusFilterClosedEndTimeRangeInput!
}

input AwsDevOpsGuruListInsightsStatusFilterClosedEndTimeRangeInput {
  FromTime: Date
  ToTime: Date
}

input AwsDevOpsGuruListInsightsStatusFilterAnyInput {
  Type: String!
  StartTimeRange: AwsDevOpsGuruS2lInput!
}

type AwsDevOpsGuruListNotificationChannelsOutput {
  Channels: [AwsDevOpsGuruListNotificationChannelsOutputChannels]
  NextToken: String
}

type AwsDevOpsGuruListNotificationChannelsOutputChannels {
  Id: String
  Config: AwsDevOpsGuruS2
}

type AwsDevOpsGuruS2 {
  Sns: AwsDevOpsGuruS2Sns!
}

type AwsDevOpsGuruS2Sns {
  TopicArn: String
}

input AwsDevOpsGuruListNotificationChannelsInput {
  NextToken: String
}

type AwsDevOpsGuruListRecommendationsOutput {
  Recommendations: [AwsDevOpsGuruListRecommendationsOutputRecommendations]
  NextToken: String
}

type AwsDevOpsGuruListRecommendationsOutputRecommendations {
  Description: String
  Link: String
  Name: String
  Reason: String
  RelatedEvents: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedEvents]
  RelatedAnomalies: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomalies]
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedEvents {
  Name: String
  Resources: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedEventsResources]
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedEventsResources {
  Name: String
  Type: String
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomalies {
  Resources: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesResources]
  SourceDetails: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesSourceDetails]
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesResources {
  Name: String
  Type: String
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesSourceDetails {
  CloudWatchMetrics: [AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesSourceDetailsCloudWatchMetrics]
}

type AwsDevOpsGuruListRecommendationsOutputRecommendationsRelatedAnomaliesSourceDetailsCloudWatchMetrics {
  MetricName: String
  Namespace: String
}

input AwsDevOpsGuruListRecommendationsInput {
  InsightId: String!
  NextToken: String
  Locale: String
}

input AwsDevOpsGuruPutFeedbackInput {
  InsightFeedback: AwsDevOpsGuruS1cInput
}

input AwsDevOpsGuruS1cInput {
  Id: String
  Feedback: String
}

input AwsDevOpsGuruRemoveNotificationChannelInput {
  Id: String!
}

type AwsDevOpsGuruSearchInsightsOutput {
  ProactiveInsights: [AwsDevOpsGuruS3i]
  ReactiveInsights: [AwsDevOpsGuruS3m]
  NextToken: String
}

input AwsDevOpsGuruSearchInsightsInput {
  StartTimeRange: AwsDevOpsGuruS2lInput!
  Filters: AwsDevOpsGuruSearchInsightsFiltersInput
  MaxResults: Int
  NextToken: String
  Type: String!
}

input AwsDevOpsGuruSearchInsightsFiltersInput {
  Severities: [String]
  Statuses: [String]
  ResourceCollection: AwsDevOpsGuruS14Input
  ServiceCollection: AwsDevOpsGuruS3kInput
}

input AwsDevOpsGuruS3kInput {
  ServiceNames: [String]
}

input AwsDevOpsGuruStartCostEstimationInput {
  ResourceCollection: AwsDevOpsGuruS25Input!
  ClientToken: String
}

input AwsDevOpsGuruS25Input {
  CloudFormation: AwsDevOpsGuruS25CloudFormationInput
}

input AwsDevOpsGuruS25CloudFormationInput {
  StackNames: [String]
}

input AwsDevOpsGuruUpdateResourceCollectionInput {
  Action: String!
  ResourceCollection: AwsDevOpsGuruUpdateResourceCollectionResourceCollectionInput!
}

input AwsDevOpsGuruUpdateResourceCollectionResourceCollectionInput {
  CloudFormation: AwsDevOpsGuruUpdateResourceCollectionResourceCollectionCloudFormationInput
}

input AwsDevOpsGuruUpdateResourceCollectionResourceCollectionCloudFormationInput {
  StackNames: [String]
}

input AwsDevOpsGuruUpdateServiceIntegrationInput {
  ServiceIntegration: AwsDevOpsGuruUpdateServiceIntegrationServiceIntegrationInput!
}

input AwsDevOpsGuruUpdateServiceIntegrationServiceIntegrationInput {
  OpsCenter: AwsDevOpsGuruUpdateServiceIntegrationServiceIntegrationOpsCenterInput
}

input AwsDevOpsGuruUpdateServiceIntegrationServiceIntegrationOpsCenterInput {
  OptInStatus: String
}

"""AWS Device Farm (2015-06-23)"""
type AwsDeviceFarm {
  createDevicePool(input: AwsDeviceFarmCreateDevicePoolInput!, config: AwsConfig): AwsDeviceFarmCreateDevicePoolOutput
  createInstanceProfile(input: AwsDeviceFarmCreateInstanceProfileInput!, config: AwsConfig): AwsDeviceFarmCreateInstanceProfileOutput
  createNetworkProfile(input: AwsDeviceFarmCreateNetworkProfileInput!, config: AwsConfig): AwsDeviceFarmCreateNetworkProfileOutput
  createProject(input: AwsDeviceFarmCreateProjectInput!, config: AwsConfig): AwsDeviceFarmCreateProjectOutput
  createRemoteAccessSession(input: AwsDeviceFarmCreateRemoteAccessSessionInput!, config: AwsConfig): AwsDeviceFarmCreateRemoteAccessSessionOutput
  createTestGridProject(input: AwsDeviceFarmCreateTestGridProjectInput!, config: AwsConfig): AwsDeviceFarmCreateTestGridProjectOutput
  createTestGridUrl(input: AwsDeviceFarmCreateTestGridUrlInput!, config: AwsConfig): AwsDeviceFarmCreateTestGridUrlOutput
  createUpload(input: AwsDeviceFarmCreateUploadInput!, config: AwsConfig): AwsDeviceFarmCreateUploadOutput
  createVPCEConfiguration(input: AwsDeviceFarmCreateVPCEConfigurationInput!, config: AwsConfig): AwsDeviceFarmCreateVPCEConfigurationOutput
  deleteDevicePool(input: AwsDeviceFarmDeleteDevicePoolInput!, config: AwsConfig): JSON
  deleteInstanceProfile(input: AwsDeviceFarmDeleteInstanceProfileInput!, config: AwsConfig): JSON
  deleteNetworkProfile(input: AwsDeviceFarmDeleteNetworkProfileInput!, config: AwsConfig): JSON
  deleteProject(input: AwsDeviceFarmDeleteProjectInput!, config: AwsConfig): JSON
  deleteRemoteAccessSession(input: AwsDeviceFarmDeleteRemoteAccessSessionInput!, config: AwsConfig): JSON
  deleteRun(input: AwsDeviceFarmDeleteRunInput!, config: AwsConfig): JSON
  deleteTestGridProject(input: AwsDeviceFarmDeleteTestGridProjectInput!, config: AwsConfig): JSON
  deleteUpload(input: AwsDeviceFarmDeleteUploadInput!, config: AwsConfig): JSON
  deleteVPCEConfiguration(input: AwsDeviceFarmDeleteVPCEConfigurationInput!, config: AwsConfig): JSON
  getAccountSettings(input: JSON, config: AwsConfig): AwsDeviceFarmGetAccountSettingsOutput
  getDevice(input: AwsDeviceFarmGetDeviceInput!, config: AwsConfig): AwsDeviceFarmGetDeviceOutput
  getDeviceInstance(input: AwsDeviceFarmGetDeviceInstanceInput!, config: AwsConfig): AwsDeviceFarmGetDeviceInstanceOutput
  getDevicePool(input: AwsDeviceFarmGetDevicePoolInput!, config: AwsConfig): AwsDeviceFarmGetDevicePoolOutput
  getDevicePoolCompatibility(input: AwsDeviceFarmGetDevicePoolCompatibilityInput!, config: AwsConfig): AwsDeviceFarmGetDevicePoolCompatibilityOutput
  getInstanceProfile(input: AwsDeviceFarmGetInstanceProfileInput!, config: AwsConfig): AwsDeviceFarmGetInstanceProfileOutput
  getJob(input: AwsDeviceFarmGetJobInput!, config: AwsConfig): AwsDeviceFarmGetJobOutput
  getNetworkProfile(input: AwsDeviceFarmGetNetworkProfileInput!, config: AwsConfig): AwsDeviceFarmGetNetworkProfileOutput
  getOfferingStatus(input: AwsDeviceFarmGetOfferingStatusInput, config: AwsConfig): AwsDeviceFarmGetOfferingStatusOutput
  getProject(input: AwsDeviceFarmGetProjectInput!, config: AwsConfig): AwsDeviceFarmGetProjectOutput
  getRemoteAccessSession(input: AwsDeviceFarmGetRemoteAccessSessionInput!, config: AwsConfig): AwsDeviceFarmGetRemoteAccessSessionOutput
  getRun(input: AwsDeviceFarmGetRunInput!, config: AwsConfig): AwsDeviceFarmGetRunOutput
  getSuite(input: AwsDeviceFarmGetSuiteInput!, config: AwsConfig): AwsDeviceFarmGetSuiteOutput
  getTest(input: AwsDeviceFarmGetTestInput!, config: AwsConfig): AwsDeviceFarmGetTestOutput
  getTestGridProject(input: AwsDeviceFarmGetTestGridProjectInput!, config: AwsConfig): AwsDeviceFarmGetTestGridProjectOutput
  getTestGridSession(input: AwsDeviceFarmGetTestGridSessionInput, config: AwsConfig): AwsDeviceFarmGetTestGridSessionOutput
  getUpload(input: AwsDeviceFarmGetUploadInput!, config: AwsConfig): AwsDeviceFarmGetUploadOutput
  getVPCEConfiguration(input: AwsDeviceFarmGetVPCEConfigurationInput!, config: AwsConfig): AwsDeviceFarmGetVPCEConfigurationOutput
  installToRemoteAccessSession(input: AwsDeviceFarmInstallToRemoteAccessSessionInput!, config: AwsConfig): AwsDeviceFarmInstallToRemoteAccessSessionOutput
  listArtifacts(input: AwsDeviceFarmListArtifactsInput!, config: AwsConfig): AwsDeviceFarmListArtifactsOutput
  listDeviceInstances(input: AwsDeviceFarmListDeviceInstancesInput, config: AwsConfig): AwsDeviceFarmListDeviceInstancesOutput
  listDevicePools(input: AwsDeviceFarmListDevicePoolsInput!, config: AwsConfig): AwsDeviceFarmListDevicePoolsOutput
  listDevices(input: AwsDeviceFarmListDevicesInput, config: AwsConfig): AwsDeviceFarmListDevicesOutput
  listInstanceProfiles(input: AwsDeviceFarmListInstanceProfilesInput, config: AwsConfig): AwsDeviceFarmListInstanceProfilesOutput
  listJobs(input: AwsDeviceFarmListJobsInput!, config: AwsConfig): AwsDeviceFarmListJobsOutput
  listNetworkProfiles(input: AwsDeviceFarmListNetworkProfilesInput!, config: AwsConfig): AwsDeviceFarmListNetworkProfilesOutput
  listOfferingPromotions(input: AwsDeviceFarmListOfferingPromotionsInput, config: AwsConfig): AwsDeviceFarmListOfferingPromotionsOutput
  listOfferingTransactions(input: AwsDeviceFarmListOfferingTransactionsInput, config: AwsConfig): AwsDeviceFarmListOfferingTransactionsOutput
  listOfferings(input: AwsDeviceFarmListOfferingsInput, config: AwsConfig): AwsDeviceFarmListOfferingsOutput
  listProjects(input: AwsDeviceFarmListProjectsInput, config: AwsConfig): AwsDeviceFarmListProjectsOutput
  listRemoteAccessSessions(input: AwsDeviceFarmListRemoteAccessSessionsInput!, config: AwsConfig): AwsDeviceFarmListRemoteAccessSessionsOutput
  listRuns(input: AwsDeviceFarmListRunsInput!, config: AwsConfig): AwsDeviceFarmListRunsOutput
  listSamples(input: AwsDeviceFarmListSamplesInput!, config: AwsConfig): AwsDeviceFarmListSamplesOutput
  listSuites(input: AwsDeviceFarmListSuitesInput!, config: AwsConfig): AwsDeviceFarmListSuitesOutput
  listTagsForResource(input: AwsDeviceFarmListTagsForResourceInput!, config: AwsConfig): AwsDeviceFarmListTagsForResourceOutput
  listTestGridProjects(input: AwsDeviceFarmListTestGridProjectsInput, config: AwsConfig): AwsDeviceFarmListTestGridProjectsOutput
  listTestGridSessionActions(input: AwsDeviceFarmListTestGridSessionActionsInput!, config: AwsConfig): AwsDeviceFarmListTestGridSessionActionsOutput
  listTestGridSessionArtifacts(input: AwsDeviceFarmListTestGridSessionArtifactsInput!, config: AwsConfig): AwsDeviceFarmListTestGridSessionArtifactsOutput
  listTestGridSessions(input: AwsDeviceFarmListTestGridSessionsInput!, config: AwsConfig): AwsDeviceFarmListTestGridSessionsOutput
  listTests(input: AwsDeviceFarmListTestsInput!, config: AwsConfig): AwsDeviceFarmListTestsOutput
  listUniqueProblems(input: AwsDeviceFarmListUniqueProblemsInput!, config: AwsConfig): AwsDeviceFarmListUniqueProblemsOutput
  listUploads(input: AwsDeviceFarmListUploadsInput!, config: AwsConfig): AwsDeviceFarmListUploadsOutput
  listVPCEConfigurations(input: AwsDeviceFarmListVPCEConfigurationsInput, config: AwsConfig): AwsDeviceFarmListVPCEConfigurationsOutput
  purchaseOffering(input: AwsDeviceFarmPurchaseOfferingInput!, config: AwsConfig): AwsDeviceFarmPurchaseOfferingOutput
  renewOffering(input: AwsDeviceFarmRenewOfferingInput!, config: AwsConfig): AwsDeviceFarmRenewOfferingOutput
  scheduleRun(input: AwsDeviceFarmScheduleRunInput!, config: AwsConfig): AwsDeviceFarmScheduleRunOutput
  stopJob(input: AwsDeviceFarmStopJobInput!, config: AwsConfig): AwsDeviceFarmStopJobOutput
  stopRemoteAccessSession(input: AwsDeviceFarmStopRemoteAccessSessionInput!, config: AwsConfig): AwsDeviceFarmStopRemoteAccessSessionOutput
  stopRun(input: AwsDeviceFarmStopRunInput!, config: AwsConfig): AwsDeviceFarmStopRunOutput
  tagResource(input: AwsDeviceFarmTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDeviceFarmUntagResourceInput!, config: AwsConfig): JSON
  updateDeviceInstance(input: AwsDeviceFarmUpdateDeviceInstanceInput!, config: AwsConfig): AwsDeviceFarmUpdateDeviceInstanceOutput
  updateDevicePool(input: AwsDeviceFarmUpdateDevicePoolInput!, config: AwsConfig): AwsDeviceFarmUpdateDevicePoolOutput
  updateInstanceProfile(input: AwsDeviceFarmUpdateInstanceProfileInput!, config: AwsConfig): AwsDeviceFarmUpdateInstanceProfileOutput
  updateNetworkProfile(input: AwsDeviceFarmUpdateNetworkProfileInput!, config: AwsConfig): AwsDeviceFarmUpdateNetworkProfileOutput
  updateProject(input: AwsDeviceFarmUpdateProjectInput!, config: AwsConfig): AwsDeviceFarmUpdateProjectOutput
  updateTestGridProject(input: AwsDeviceFarmUpdateTestGridProjectInput!, config: AwsConfig): AwsDeviceFarmUpdateTestGridProjectOutput
  updateUpload(input: AwsDeviceFarmUpdateUploadInput!, config: AwsConfig): AwsDeviceFarmUpdateUploadOutput
  updateVPCEConfiguration(input: AwsDeviceFarmUpdateVPCEConfigurationInput!, config: AwsConfig): AwsDeviceFarmUpdateVPCEConfigurationOutput
}

type AwsDeviceFarmCreateDevicePoolOutput {
  devicePool: AwsDeviceFarmSc
}

type AwsDeviceFarmSc {
  arn: String
  name: String
  description: String
  type: String
  rules: [AwsDeviceFarmS5]
  maxDevices: Int
}

type AwsDeviceFarmS5 {
  attribute: String
  operator: String
  value: String
}

input AwsDeviceFarmCreateDevicePoolInput {
  projectArn: String!
  name: String!
  description: String
  rules: [AwsDeviceFarmS5Input]!
  maxDevices: Int
}

input AwsDeviceFarmS5Input {
  attribute: String
  operator: String
  value: String
}

type AwsDeviceFarmCreateInstanceProfileOutput {
  instanceProfile: AwsDeviceFarmSi
}

type AwsDeviceFarmSi {
  arn: String
  packageCleanup: Boolean
  excludeAppPackagesFromCleanup: [String]
  rebootAfterUse: Boolean
  name: String
  description: String
}

input AwsDeviceFarmCreateInstanceProfileInput {
  name: String!
  description: String
  packageCleanup: Boolean
  excludeAppPackagesFromCleanup: [String]
  rebootAfterUse: Boolean
}

type AwsDeviceFarmCreateNetworkProfileOutput {
  networkProfile: AwsDeviceFarmSo
}

type AwsDeviceFarmSo {
  arn: String
  name: String
  description: String
  type: String
  uplinkBandwidthBits: JSON
  downlinkBandwidthBits: JSON
  uplinkDelayMs: JSON
  downlinkDelayMs: JSON
  uplinkJitterMs: JSON
  downlinkJitterMs: JSON
  uplinkLossPercent: Int
  downlinkLossPercent: Int
}

input AwsDeviceFarmCreateNetworkProfileInput {
  projectArn: String!
  name: String!
  description: String
  type: String
  uplinkBandwidthBits: JSON
  downlinkBandwidthBits: JSON
  uplinkDelayMs: JSON
  downlinkDelayMs: JSON
  uplinkJitterMs: JSON
  downlinkJitterMs: JSON
  uplinkLossPercent: Int
  downlinkLossPercent: Int
}

type AwsDeviceFarmCreateProjectOutput {
  project: AwsDeviceFarmSs
}

type AwsDeviceFarmSs {
  arn: String
  name: String
  defaultJobTimeoutMinutes: Int
  created: Date
}

input AwsDeviceFarmCreateProjectInput {
  name: String!
  defaultJobTimeoutMinutes: Int
}

type AwsDeviceFarmCreateRemoteAccessSessionOutput {
  remoteAccessSession: AwsDeviceFarmS12
}

type AwsDeviceFarmS12 {
  arn: String
  name: String
  created: Date
  status: String
  result: String
  message: String
  started: Date
  stopped: Date
  device: AwsDeviceFarmS15
  instanceArn: String
  remoteDebugEnabled: Boolean
  remoteRecordEnabled: Boolean
  remoteRecordAppArn: String
  hostAddress: String
  clientId: String
  billingMethod: String
  deviceMinutes: AwsDeviceFarmS1h
  endpoint: String
  deviceUdid: String
  interactionMode: String
  skipAppResign: Boolean
}

type AwsDeviceFarmS15 {
  arn: String
  name: String
  manufacturer: String
  model: String
  modelId: String
  formFactor: String
  platform: String
  os: String
  cpu: AwsDeviceFarmS15Cpu
  resolution: AwsDeviceFarmS15Resolution
  heapSize: JSON
  memory: JSON
  image: String
  carrier: String
  radio: String
  remoteAccessEnabled: Boolean
  remoteDebugEnabled: Boolean
  fleetType: String
  fleetName: String
  instances: [AwsDeviceFarmS1c]
  availability: String
}

type AwsDeviceFarmS15Cpu {
  frequency: String
  architecture: String
  clock: JSON
}

type AwsDeviceFarmS15Resolution {
  width: Int
  height: Int
}

type AwsDeviceFarmS1c {
  arn: String
  deviceArn: String
  labels: [String]
  status: String
  udid: String
  instanceProfile: AwsDeviceFarmSi
}

type AwsDeviceFarmS1h {
  total: JSON
  metered: JSON
  unmetered: JSON
}

input AwsDeviceFarmCreateRemoteAccessSessionInput {
  projectArn: String!
  deviceArn: String!
  instanceArn: String
  sshPublicKey: String
  remoteDebugEnabled: Boolean
  remoteRecordEnabled: Boolean
  remoteRecordAppArn: String
  name: String
  clientId: String
  configuration: AwsDeviceFarmCreateRemoteAccessSessionConfigurationInput
  interactionMode: String
  skipAppResign: Boolean
}

input AwsDeviceFarmCreateRemoteAccessSessionConfigurationInput {
  billingMethod: String
  vpceConfigurationArns: [String]
}

type AwsDeviceFarmCreateTestGridProjectOutput {
  testGridProject: AwsDeviceFarmS1r
}

type AwsDeviceFarmS1r {
  arn: String
  name: String
  description: String
  vpcConfig: AwsDeviceFarmS1m
  created: Date
}

type AwsDeviceFarmS1m {
  securityGroupIds: [String]!
  subnetIds: [String]!
  vpcId: String!
}

input AwsDeviceFarmCreateTestGridProjectInput {
  name: String!
  description: String
  vpcConfig: AwsDeviceFarmS1mInput
}

input AwsDeviceFarmS1mInput {
  securityGroupIds: [String]!
  subnetIds: [String]!
  vpcId: String!
}

type AwsDeviceFarmCreateTestGridUrlOutput {
  url: String
  expires: Date
}

input AwsDeviceFarmCreateTestGridUrlInput {
  projectArn: String!
  expiresInSeconds: Int!
}

type AwsDeviceFarmCreateUploadOutput {
  upload: AwsDeviceFarmS21
}

type AwsDeviceFarmS21 {
  arn: String
  name: String
  created: Date
  type: String
  status: String
  url: String
  metadata: String
  contentType: String
  message: String
  category: String
}

input AwsDeviceFarmCreateUploadInput {
  projectArn: String!
  name: String!
  type: String!
  contentType: String
}

type AwsDeviceFarmCreateVPCEConfigurationOutput {
  vpceConfiguration: AwsDeviceFarmS2c
}

type AwsDeviceFarmS2c {
  arn: String
  vpceConfigurationName: String
  vpceServiceName: String
  serviceDnsName: String
  vpceConfigurationDescription: String
}

input AwsDeviceFarmCreateVPCEConfigurationInput {
  vpceConfigurationName: String!
  vpceServiceName: String!
  serviceDnsName: String!
  vpceConfigurationDescription: String
}

input AwsDeviceFarmDeleteDevicePoolInput {
  arn: String!
}

input AwsDeviceFarmDeleteInstanceProfileInput {
  arn: String!
}

input AwsDeviceFarmDeleteNetworkProfileInput {
  arn: String!
}

input AwsDeviceFarmDeleteProjectInput {
  arn: String!
}

input AwsDeviceFarmDeleteRemoteAccessSessionInput {
  arn: String!
}

input AwsDeviceFarmDeleteRunInput {
  arn: String!
}

input AwsDeviceFarmDeleteTestGridProjectInput {
  projectArn: String!
}

input AwsDeviceFarmDeleteUploadInput {
  arn: String!
}

input AwsDeviceFarmDeleteVPCEConfigurationInput {
  arn: String!
}

type AwsDeviceFarmGetAccountSettingsOutput {
  accountSettings: AwsDeviceFarmGetAccountSettingsOutputAccountSettings
}

type AwsDeviceFarmGetAccountSettingsOutputAccountSettings {
  awsAccountNumber: String
  unmeteredDevices: JSON
  unmeteredRemoteAccessDevices: JSON
  maxJobTimeoutMinutes: Int
  trialMinutes: AwsDeviceFarmGetAccountSettingsOutputAccountSettingsTrialMinutes
  maxSlots: JSON
  defaultJobTimeoutMinutes: Int
  skipAppResign: Boolean
}

type AwsDeviceFarmGetAccountSettingsOutputAccountSettingsTrialMinutes {
  total: JSON
  remaining: JSON
}

type AwsDeviceFarmGetDeviceOutput {
  device: AwsDeviceFarmS15
}

input AwsDeviceFarmGetDeviceInput {
  arn: String!
}

type AwsDeviceFarmGetDeviceInstanceOutput {
  deviceInstance: AwsDeviceFarmS1c
}

input AwsDeviceFarmGetDeviceInstanceInput {
  arn: String!
}

type AwsDeviceFarmGetDevicePoolOutput {
  devicePool: AwsDeviceFarmSc
}

input AwsDeviceFarmGetDevicePoolInput {
  arn: String!
}

type AwsDeviceFarmGetDevicePoolCompatibilityOutput {
  compatibleDevices: [AwsDeviceFarmS3l]
  incompatibleDevices: [AwsDeviceFarmS3l]
}

type AwsDeviceFarmS3l {
  device: AwsDeviceFarmS15
  compatible: Boolean
  incompatibilityMessages: [AwsDeviceFarmS3lIncompatibilityMessages]
}

type AwsDeviceFarmS3lIncompatibilityMessages {
  message: String
  type: String
}

input AwsDeviceFarmGetDevicePoolCompatibilityInput {
  devicePoolArn: String!
  appArn: String
  testType: String
  test: AwsDeviceFarmS3aInput
  configuration: AwsDeviceFarmS3dInput
}

input AwsDeviceFarmS3aInput {
  type: String!
  testPackageArn: String
  testSpecArn: String
  filter: String
  parameters: JSON
}

input AwsDeviceFarmS3dInput {
  extraDataPackageArn: String
  networkProfileArn: String
  locale: String
  location: AwsDeviceFarmS3eInput
  vpceConfigurationArns: [String]
  customerArtifactPaths: AwsDeviceFarmS3fInput
  radios: AwsDeviceFarmS3jInput
  auxiliaryApps: [String]
  billingMethod: String
}

input AwsDeviceFarmS3eInput {
  latitude: JSON!
  longitude: JSON!
}

input AwsDeviceFarmS3fInput {
  iosPaths: [String]
  androidPaths: [String]
  deviceHostPaths: [String]
}

input AwsDeviceFarmS3jInput {
  wifi: Boolean
  bluetooth: Boolean
  nfc: Boolean
  gps: Boolean
}

type AwsDeviceFarmGetInstanceProfileOutput {
  instanceProfile: AwsDeviceFarmSi
}

input AwsDeviceFarmGetInstanceProfileInput {
  arn: String!
}

type AwsDeviceFarmGetJobOutput {
  job: AwsDeviceFarmS3t
}

type AwsDeviceFarmS3t {
  arn: String
  name: String
  type: String
  created: Date
  status: String
  result: String
  started: Date
  stopped: Date
  counters: AwsDeviceFarmS3u
  message: String
  device: AwsDeviceFarmS15
  instanceArn: String
  deviceMinutes: AwsDeviceFarmS1h
  videoEndpoint: String
  videoCapture: Boolean
}

type AwsDeviceFarmS3u {
  total: Int
  passed: Int
  failed: Int
  warned: Int
  errored: Int
  stopped: Int
  skipped: Int
}

input AwsDeviceFarmGetJobInput {
  arn: String!
}

type AwsDeviceFarmGetNetworkProfileOutput {
  networkProfile: AwsDeviceFarmSo
}

input AwsDeviceFarmGetNetworkProfileInput {
  arn: String!
}

type AwsDeviceFarmGetOfferingStatusOutput {
  current: JSON
  nextPeriod: JSON
  nextToken: String
}

input AwsDeviceFarmGetOfferingStatusInput {
  nextToken: String
}

type AwsDeviceFarmGetProjectOutput {
  project: AwsDeviceFarmSs
}

input AwsDeviceFarmGetProjectInput {
  arn: String!
}

type AwsDeviceFarmGetRemoteAccessSessionOutput {
  remoteAccessSession: AwsDeviceFarmS12
}

input AwsDeviceFarmGetRemoteAccessSessionInput {
  arn: String!
}

type AwsDeviceFarmGetRunOutput {
  run: AwsDeviceFarmS4i
}

type AwsDeviceFarmS4i {
  arn: String
  name: String
  type: String
  platform: String
  created: Date
  status: String
  result: String
  started: Date
  stopped: Date
  counters: AwsDeviceFarmS3u
  message: String
  totalJobs: Int
  completedJobs: Int
  billingMethod: String
  deviceMinutes: AwsDeviceFarmS1h
  networkProfile: AwsDeviceFarmSo
  parsingResultUrl: String
  resultCode: String
  seed: Int
  appUpload: String
  eventCount: Int
  jobTimeoutMinutes: Int
  devicePoolArn: String
  locale: String
  radios: AwsDeviceFarmS3j
  location: AwsDeviceFarmS3e
  customerArtifactPaths: AwsDeviceFarmS3f
  webUrl: String
  skipAppResign: Boolean
  testSpecArn: String
  deviceSelectionResult: AwsDeviceFarmS4iDeviceSelectionResult
}

type AwsDeviceFarmS3j {
  wifi: Boolean
  bluetooth: Boolean
  nfc: Boolean
  gps: Boolean
}

type AwsDeviceFarmS3e {
  latitude: JSON!
  longitude: JSON!
}

type AwsDeviceFarmS3f {
  iosPaths: [String]
  androidPaths: [String]
  deviceHostPaths: [String]
}

type AwsDeviceFarmS4iDeviceSelectionResult {
  filters: [AwsDeviceFarmS4l]
  matchedDevicesCount: Int
  maxDevices: Int
}

type AwsDeviceFarmS4l {
  attribute: String!
  operator: String!
  values: [String]!
}

input AwsDeviceFarmGetRunInput {
  arn: String!
}

type AwsDeviceFarmGetSuiteOutput {
  suite: AwsDeviceFarmS4r
}

type AwsDeviceFarmS4r {
  arn: String
  name: String
  type: String
  created: Date
  status: String
  result: String
  started: Date
  stopped: Date
  counters: AwsDeviceFarmS3u
  message: String
  deviceMinutes: AwsDeviceFarmS1h
}

input AwsDeviceFarmGetSuiteInput {
  arn: String!
}

type AwsDeviceFarmGetTestOutput {
  test: AwsDeviceFarmS4u
}

type AwsDeviceFarmS4u {
  arn: String
  name: String
  type: String
  created: Date
  status: String
  result: String
  started: Date
  stopped: Date
  counters: AwsDeviceFarmS3u
  message: String
  deviceMinutes: AwsDeviceFarmS1h
}

input AwsDeviceFarmGetTestInput {
  arn: String!
}

type AwsDeviceFarmGetTestGridProjectOutput {
  testGridProject: AwsDeviceFarmS1r
}

input AwsDeviceFarmGetTestGridProjectInput {
  projectArn: String!
}

type AwsDeviceFarmGetTestGridSessionOutput {
  testGridSession: AwsDeviceFarmS50
}

type AwsDeviceFarmS50 {
  arn: String
  status: String
  created: Date
  ended: Date
  billingMinutes: JSON
  seleniumProperties: String
}

input AwsDeviceFarmGetTestGridSessionInput {
  projectArn: String
  sessionId: String
  sessionArn: String
}

type AwsDeviceFarmGetUploadOutput {
  upload: AwsDeviceFarmS21
}

input AwsDeviceFarmGetUploadInput {
  arn: String!
}

type AwsDeviceFarmGetVPCEConfigurationOutput {
  vpceConfiguration: AwsDeviceFarmS2c
}

input AwsDeviceFarmGetVPCEConfigurationInput {
  arn: String!
}

type AwsDeviceFarmInstallToRemoteAccessSessionOutput {
  appUpload: AwsDeviceFarmS21
}

input AwsDeviceFarmInstallToRemoteAccessSessionInput {
  remoteAccessSessionArn: String!
  appArn: String!
}

type AwsDeviceFarmListArtifactsOutput {
  artifacts: [AwsDeviceFarmListArtifactsOutputArtifacts]
  nextToken: String
}

type AwsDeviceFarmListArtifactsOutputArtifacts {
  arn: String
  name: String
  type: String
  extension: String
  url: String
}

input AwsDeviceFarmListArtifactsInput {
  arn: String!
  type: String!
  nextToken: String
}

type AwsDeviceFarmListDeviceInstancesOutput {
  deviceInstances: [AwsDeviceFarmS1c]
  nextToken: String
}

input AwsDeviceFarmListDeviceInstancesInput {
  maxResults: Int
  nextToken: String
}

type AwsDeviceFarmListDevicePoolsOutput {
  devicePools: [AwsDeviceFarmSc]
  nextToken: String
}

input AwsDeviceFarmListDevicePoolsInput {
  arn: String!
  type: String
  nextToken: String
}

type AwsDeviceFarmListDevicesOutput {
  devices: [AwsDeviceFarmS15]
  nextToken: String
}

input AwsDeviceFarmListDevicesInput {
  arn: String
  nextToken: String
  filters: [AwsDeviceFarmS4lInput]
}

input AwsDeviceFarmS4lInput {
  attribute: String!
  operator: String!
  values: [String]!
}

type AwsDeviceFarmListInstanceProfilesOutput {
  instanceProfiles: [AwsDeviceFarmSi]
  nextToken: String
}

input AwsDeviceFarmListInstanceProfilesInput {
  maxResults: Int
  nextToken: String
}

type AwsDeviceFarmListJobsOutput {
  jobs: [AwsDeviceFarmS3t]
  nextToken: String
}

input AwsDeviceFarmListJobsInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListNetworkProfilesOutput {
  networkProfiles: [AwsDeviceFarmSo]
  nextToken: String
}

input AwsDeviceFarmListNetworkProfilesInput {
  arn: String!
  type: String
  nextToken: String
}

type AwsDeviceFarmListOfferingPromotionsOutput {
  offeringPromotions: [AwsDeviceFarmListOfferingPromotionsOutputOfferingPromotions]
  nextToken: String
}

type AwsDeviceFarmListOfferingPromotionsOutputOfferingPromotions {
  id: String
  description: String
}

input AwsDeviceFarmListOfferingPromotionsInput {
  nextToken: String
}

type AwsDeviceFarmListOfferingTransactionsOutput {
  offeringTransactions: [AwsDeviceFarmS64]
  nextToken: String
}

type AwsDeviceFarmS64 {
  offeringStatus: AwsDeviceFarmS43
  transactionId: String
  offeringPromotionId: String
  createdOn: Date
  cost: AwsDeviceFarmS49
}

type AwsDeviceFarmS43 {
  type: String
  offering: AwsDeviceFarmS45
  quantity: Int
  effectiveOn: Date
}

type AwsDeviceFarmS45 {
  id: String
  description: String
  type: String
  platform: String
  recurringCharges: [AwsDeviceFarmS45RecurringCharges]
}

type AwsDeviceFarmS45RecurringCharges {
  cost: AwsDeviceFarmS49
  frequency: String
}

type AwsDeviceFarmS49 {
  amount: JSON
  currencyCode: String
}

input AwsDeviceFarmListOfferingTransactionsInput {
  nextToken: String
}

type AwsDeviceFarmListOfferingsOutput {
  offerings: [AwsDeviceFarmS45]
  nextToken: String
}

input AwsDeviceFarmListOfferingsInput {
  nextToken: String
}

type AwsDeviceFarmListProjectsOutput {
  projects: [AwsDeviceFarmSs]
  nextToken: String
}

input AwsDeviceFarmListProjectsInput {
  arn: String
  nextToken: String
}

type AwsDeviceFarmListRemoteAccessSessionsOutput {
  remoteAccessSessions: [AwsDeviceFarmS12]
  nextToken: String
}

input AwsDeviceFarmListRemoteAccessSessionsInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListRunsOutput {
  runs: [AwsDeviceFarmS4i]
  nextToken: String
}

input AwsDeviceFarmListRunsInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListSamplesOutput {
  samples: [AwsDeviceFarmListSamplesOutputSamples]
  nextToken: String
}

type AwsDeviceFarmListSamplesOutputSamples {
  arn: String
  type: String
  url: String
}

input AwsDeviceFarmListSamplesInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListSuitesOutput {
  suites: [AwsDeviceFarmS4r]
  nextToken: String
}

input AwsDeviceFarmListSuitesInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListTagsForResourceOutput {
  Tags: [AwsDeviceFarmS6s]
}

type AwsDeviceFarmS6s {
  Key: String!
  Value: String!
}

input AwsDeviceFarmListTagsForResourceInput {
  ResourceARN: String!
}

type AwsDeviceFarmListTestGridProjectsOutput {
  testGridProjects: [AwsDeviceFarmS1r]
  nextToken: String
}

input AwsDeviceFarmListTestGridProjectsInput {
  maxResult: Int
  nextToken: String
}

type AwsDeviceFarmListTestGridSessionActionsOutput {
  actions: [AwsDeviceFarmListTestGridSessionActionsOutputActions]
  nextToken: String
}

type AwsDeviceFarmListTestGridSessionActionsOutputActions {
  action: String
  started: Date
  duration: JSON
  statusCode: String
  requestMethod: String
}

input AwsDeviceFarmListTestGridSessionActionsInput {
  sessionArn: String!
  maxResult: Int
  nextToken: String
}

type AwsDeviceFarmListTestGridSessionArtifactsOutput {
  artifacts: [AwsDeviceFarmListTestGridSessionArtifactsOutputArtifacts]
  nextToken: String
}

type AwsDeviceFarmListTestGridSessionArtifactsOutputArtifacts {
  filename: String
  type: String
  url: String
}

input AwsDeviceFarmListTestGridSessionArtifactsInput {
  sessionArn: String!
  type: String
  maxResult: Int
  nextToken: String
}

type AwsDeviceFarmListTestGridSessionsOutput {
  testGridSessions: [AwsDeviceFarmS50]
  nextToken: String
}

input AwsDeviceFarmListTestGridSessionsInput {
  projectArn: String!
  status: String
  creationTimeAfter: Date
  creationTimeBefore: Date
  endTimeAfter: Date
  endTimeBefore: Date
  maxResult: Int
  nextToken: String
}

type AwsDeviceFarmListTestsOutput {
  tests: [AwsDeviceFarmS4u]
  nextToken: String
}

input AwsDeviceFarmListTestsInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListUniqueProblemsOutput {
  uniqueProblems: JSON
  nextToken: String
}

input AwsDeviceFarmListUniqueProblemsInput {
  arn: String!
  nextToken: String
}

type AwsDeviceFarmListUploadsOutput {
  uploads: [AwsDeviceFarmS21]
  nextToken: String
}

input AwsDeviceFarmListUploadsInput {
  arn: String!
  type: String
  nextToken: String
}

type AwsDeviceFarmListVPCEConfigurationsOutput {
  vpceConfigurations: [AwsDeviceFarmS2c]
  nextToken: String
}

input AwsDeviceFarmListVPCEConfigurationsInput {
  maxResults: Int
  nextToken: String
}

type AwsDeviceFarmPurchaseOfferingOutput {
  offeringTransaction: AwsDeviceFarmS64
}

input AwsDeviceFarmPurchaseOfferingInput {
  offeringId: String!
  quantity: Int!
  offeringPromotionId: String
}

type AwsDeviceFarmRenewOfferingOutput {
  offeringTransaction: AwsDeviceFarmS64
}

input AwsDeviceFarmRenewOfferingInput {
  offeringId: String!
  quantity: Int!
}

type AwsDeviceFarmScheduleRunOutput {
  run: AwsDeviceFarmS4i
}

input AwsDeviceFarmScheduleRunInput {
  projectArn: String!
  appArn: String
  devicePoolArn: String
  deviceSelectionConfiguration: AwsDeviceFarmScheduleRunDeviceSelectionConfigurationInput
  name: String
  test: AwsDeviceFarmS3aInput!
  configuration: AwsDeviceFarmS3dInput
  executionConfiguration: AwsDeviceFarmScheduleRunExecutionConfigurationInput
}

input AwsDeviceFarmScheduleRunDeviceSelectionConfigurationInput {
  filters: [AwsDeviceFarmS4lInput]!
  maxDevices: Int!
}

input AwsDeviceFarmScheduleRunExecutionConfigurationInput {
  jobTimeoutMinutes: Int
  accountsCleanup: Boolean
  appPackagesCleanup: Boolean
  videoCapture: Boolean
  skipAppResign: Boolean
}

type AwsDeviceFarmStopJobOutput {
  job: AwsDeviceFarmS3t
}

input AwsDeviceFarmStopJobInput {
  arn: String!
}

type AwsDeviceFarmStopRemoteAccessSessionOutput {
  remoteAccessSession: AwsDeviceFarmS12
}

input AwsDeviceFarmStopRemoteAccessSessionInput {
  arn: String!
}

type AwsDeviceFarmStopRunOutput {
  run: AwsDeviceFarmS4i
}

input AwsDeviceFarmStopRunInput {
  arn: String!
}

input AwsDeviceFarmTagResourceInput {
  ResourceARN: String!
  Tags: [AwsDeviceFarmS6sInput]!
}

input AwsDeviceFarmS6sInput {
  Key: String!
  Value: String!
}

input AwsDeviceFarmUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsDeviceFarmUpdateDeviceInstanceOutput {
  deviceInstance: AwsDeviceFarmS1c
}

input AwsDeviceFarmUpdateDeviceInstanceInput {
  arn: String!
  profileArn: String
  labels: [String]
}

type AwsDeviceFarmUpdateDevicePoolOutput {
  devicePool: AwsDeviceFarmSc
}

input AwsDeviceFarmUpdateDevicePoolInput {
  arn: String!
  name: String
  description: String
  rules: [AwsDeviceFarmS5Input]
  maxDevices: Int
  clearMaxDevices: Boolean
}

type AwsDeviceFarmUpdateInstanceProfileOutput {
  instanceProfile: AwsDeviceFarmSi
}

input AwsDeviceFarmUpdateInstanceProfileInput {
  arn: String!
  name: String
  description: String
  packageCleanup: Boolean
  excludeAppPackagesFromCleanup: [String]
  rebootAfterUse: Boolean
}

type AwsDeviceFarmUpdateNetworkProfileOutput {
  networkProfile: AwsDeviceFarmSo
}

input AwsDeviceFarmUpdateNetworkProfileInput {
  arn: String!
  name: String
  description: String
  type: String
  uplinkBandwidthBits: JSON
  downlinkBandwidthBits: JSON
  uplinkDelayMs: JSON
  downlinkDelayMs: JSON
  uplinkJitterMs: JSON
  downlinkJitterMs: JSON
  uplinkLossPercent: Int
  downlinkLossPercent: Int
}

type AwsDeviceFarmUpdateProjectOutput {
  project: AwsDeviceFarmSs
}

input AwsDeviceFarmUpdateProjectInput {
  arn: String!
  name: String
  defaultJobTimeoutMinutes: Int
}

type AwsDeviceFarmUpdateTestGridProjectOutput {
  testGridProject: AwsDeviceFarmS1r
}

input AwsDeviceFarmUpdateTestGridProjectInput {
  projectArn: String!
  name: String
  description: String
  vpcConfig: AwsDeviceFarmS1mInput
}

type AwsDeviceFarmUpdateUploadOutput {
  upload: AwsDeviceFarmS21
}

input AwsDeviceFarmUpdateUploadInput {
  arn: String!
  name: String
  contentType: String
  editContent: Boolean
}

type AwsDeviceFarmUpdateVPCEConfigurationOutput {
  vpceConfiguration: AwsDeviceFarmS2c
}

input AwsDeviceFarmUpdateVPCEConfigurationInput {
  arn: String!
  vpceConfigurationName: String
  vpceServiceName: String
  serviceDnsName: String
  vpceConfigurationDescription: String
}

"""AWS Direct Connect (2012-10-25)"""
type AwsDirectConnect {
  acceptDirectConnectGatewayAssociationProposal(input: AwsDirectConnectAcceptDirectConnectGatewayAssociationProposalInput!, config: AwsConfig): AwsDirectConnectAcceptDirectConnectGatewayAssociationProposalOutput
  allocateConnectionOnInterconnect(input: AwsDirectConnectAllocateConnectionOnInterconnectInput!, config: AwsConfig): JSON
  allocateHostedConnection(input: AwsDirectConnectAllocateHostedConnectionInput!, config: AwsConfig): JSON
  allocatePrivateVirtualInterface(input: AwsDirectConnectAllocatePrivateVirtualInterfaceInput!, config: AwsConfig): JSON
  allocatePublicVirtualInterface(input: AwsDirectConnectAllocatePublicVirtualInterfaceInput!, config: AwsConfig): JSON
  allocateTransitVirtualInterface(input: AwsDirectConnectAllocateTransitVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectAllocateTransitVirtualInterfaceOutput
  associateConnectionWithLag(input: AwsDirectConnectAssociateConnectionWithLagInput!, config: AwsConfig): JSON
  associateHostedConnection(input: AwsDirectConnectAssociateHostedConnectionInput!, config: AwsConfig): JSON
  associateMacSecKey(input: AwsDirectConnectAssociateMacSecKeyInput!, config: AwsConfig): AwsDirectConnectAssociateMacSecKeyOutput
  associateVirtualInterface(input: AwsDirectConnectAssociateVirtualInterfaceInput!, config: AwsConfig): JSON
  confirmConnection(input: AwsDirectConnectConfirmConnectionInput!, config: AwsConfig): AwsDirectConnectConfirmConnectionOutput
  confirmPrivateVirtualInterface(input: AwsDirectConnectConfirmPrivateVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectConfirmPrivateVirtualInterfaceOutput
  confirmPublicVirtualInterface(input: AwsDirectConnectConfirmPublicVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectConfirmPublicVirtualInterfaceOutput
  confirmTransitVirtualInterface(input: AwsDirectConnectConfirmTransitVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectConfirmTransitVirtualInterfaceOutput
  createBGPPeer(input: AwsDirectConnectCreateBGPPeerInput, config: AwsConfig): AwsDirectConnectCreateBGPPeerOutput
  createConnection(input: AwsDirectConnectCreateConnectionInput!, config: AwsConfig): JSON
  createDirectConnectGateway(input: AwsDirectConnectCreateDirectConnectGatewayInput!, config: AwsConfig): AwsDirectConnectCreateDirectConnectGatewayOutput
  createDirectConnectGatewayAssociation(input: AwsDirectConnectCreateDirectConnectGatewayAssociationInput!, config: AwsConfig): AwsDirectConnectCreateDirectConnectGatewayAssociationOutput
  createDirectConnectGatewayAssociationProposal(input: AwsDirectConnectCreateDirectConnectGatewayAssociationProposalInput!, config: AwsConfig): AwsDirectConnectCreateDirectConnectGatewayAssociationProposalOutput
  createInterconnect(input: AwsDirectConnectCreateInterconnectInput!, config: AwsConfig): JSON
  createLag(input: AwsDirectConnectCreateLagInput!, config: AwsConfig): JSON
  createPrivateVirtualInterface(input: AwsDirectConnectCreatePrivateVirtualInterfaceInput!, config: AwsConfig): JSON
  createPublicVirtualInterface(input: AwsDirectConnectCreatePublicVirtualInterfaceInput!, config: AwsConfig): JSON
  createTransitVirtualInterface(input: AwsDirectConnectCreateTransitVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectCreateTransitVirtualInterfaceOutput
  deleteBGPPeer(input: AwsDirectConnectDeleteBGPPeerInput, config: AwsConfig): AwsDirectConnectDeleteBGPPeerOutput
  deleteConnection(input: AwsDirectConnectDeleteConnectionInput!, config: AwsConfig): JSON
  deleteDirectConnectGateway(input: AwsDirectConnectDeleteDirectConnectGatewayInput!, config: AwsConfig): AwsDirectConnectDeleteDirectConnectGatewayOutput
  deleteDirectConnectGatewayAssociation(input: AwsDirectConnectDeleteDirectConnectGatewayAssociationInput, config: AwsConfig): AwsDirectConnectDeleteDirectConnectGatewayAssociationOutput
  deleteDirectConnectGatewayAssociationProposal(input: AwsDirectConnectDeleteDirectConnectGatewayAssociationProposalInput!, config: AwsConfig): AwsDirectConnectDeleteDirectConnectGatewayAssociationProposalOutput
  deleteInterconnect(input: AwsDirectConnectDeleteInterconnectInput!, config: AwsConfig): AwsDirectConnectDeleteInterconnectOutput
  deleteLag(input: AwsDirectConnectDeleteLagInput!, config: AwsConfig): JSON
  deleteVirtualInterface(input: AwsDirectConnectDeleteVirtualInterfaceInput!, config: AwsConfig): AwsDirectConnectDeleteVirtualInterfaceOutput
  describeConnectionLoa(input: AwsDirectConnectDescribeConnectionLoaInput!, config: AwsConfig): AwsDirectConnectDescribeConnectionLoaOutput
  describeConnections(input: AwsDirectConnectDescribeConnectionsInput, config: AwsConfig): JSON
  describeConnectionsOnInterconnect(input: AwsDirectConnectDescribeConnectionsOnInterconnectInput!, config: AwsConfig): JSON
  describeDirectConnectGatewayAssociationProposals(input: AwsDirectConnectDescribeDirectConnectGatewayAssociationProposalsInput, config: AwsConfig): AwsDirectConnectDescribeDirectConnectGatewayAssociationProposalsOutput
  describeDirectConnectGatewayAssociations(input: AwsDirectConnectDescribeDirectConnectGatewayAssociationsInput, config: AwsConfig): AwsDirectConnectDescribeDirectConnectGatewayAssociationsOutput
  describeDirectConnectGatewayAttachments(input: AwsDirectConnectDescribeDirectConnectGatewayAttachmentsInput, config: AwsConfig): AwsDirectConnectDescribeDirectConnectGatewayAttachmentsOutput
  describeDirectConnectGateways(input: AwsDirectConnectDescribeDirectConnectGatewaysInput, config: AwsConfig): AwsDirectConnectDescribeDirectConnectGatewaysOutput
  describeHostedConnections(input: AwsDirectConnectDescribeHostedConnectionsInput!, config: AwsConfig): JSON
  describeInterconnectLoa(input: AwsDirectConnectDescribeInterconnectLoaInput!, config: AwsConfig): AwsDirectConnectDescribeInterconnectLoaOutput
  describeInterconnects(input: AwsDirectConnectDescribeInterconnectsInput, config: AwsConfig): AwsDirectConnectDescribeInterconnectsOutput
  describeLags(input: AwsDirectConnectDescribeLagsInput, config: AwsConfig): AwsDirectConnectDescribeLagsOutput
  describeLoa(input: AwsDirectConnectDescribeLoaInput!, config: AwsConfig): JSON
  describeLocations(config: AwsConfig): AwsDirectConnectDescribeLocationsOutput
  describeTags(input: AwsDirectConnectDescribeTagsInput!, config: AwsConfig): AwsDirectConnectDescribeTagsOutput
  describeVirtualGateways(config: AwsConfig): AwsDirectConnectDescribeVirtualGatewaysOutput
  describeVirtualInterfaces(input: AwsDirectConnectDescribeVirtualInterfacesInput, config: AwsConfig): AwsDirectConnectDescribeVirtualInterfacesOutput
  disassociateConnectionFromLag(input: AwsDirectConnectDisassociateConnectionFromLagInput!, config: AwsConfig): JSON
  disassociateMacSecKey(input: AwsDirectConnectDisassociateMacSecKeyInput!, config: AwsConfig): AwsDirectConnectDisassociateMacSecKeyOutput
  listVirtualInterfaceTestHistory(input: AwsDirectConnectListVirtualInterfaceTestHistoryInput, config: AwsConfig): AwsDirectConnectListVirtualInterfaceTestHistoryOutput
  startBgpFailoverTest(input: AwsDirectConnectStartBgpFailoverTestInput!, config: AwsConfig): AwsDirectConnectStartBgpFailoverTestOutput
  stopBgpFailoverTest(input: AwsDirectConnectStopBgpFailoverTestInput!, config: AwsConfig): AwsDirectConnectStopBgpFailoverTestOutput
  tagResource(input: AwsDirectConnectTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsDirectConnectUntagResourceInput!, config: AwsConfig): JSON
  updateConnection(input: AwsDirectConnectUpdateConnectionInput!, config: AwsConfig): JSON
  updateDirectConnectGatewayAssociation(input: AwsDirectConnectUpdateDirectConnectGatewayAssociationInput, config: AwsConfig): AwsDirectConnectUpdateDirectConnectGatewayAssociationOutput
  updateLag(input: AwsDirectConnectUpdateLagInput!, config: AwsConfig): JSON
  updateVirtualInterfaceAttributes(input: AwsDirectConnectUpdateVirtualInterfaceAttributesInput!, config: AwsConfig): JSON
}

type AwsDirectConnectAcceptDirectConnectGatewayAssociationProposalOutput {
  directConnectGatewayAssociation: AwsDirectConnectS9
}

type AwsDirectConnectS9 {
  directConnectGatewayId: String
  directConnectGatewayOwnerAccount: String
  associationState: String
  stateChangeError: String
  associatedGateway: AwsDirectConnectSc
  associationId: String
  allowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5]
  virtualGatewayId: String
  virtualGatewayRegion: String
  virtualGatewayOwnerAccount: String
}

type AwsDirectConnectSc {
  id: String
  type: String
  ownerAccount: String
  region: String
}

type AwsDirectConnectS5 {
  cidr: String
}

input AwsDirectConnectAcceptDirectConnectGatewayAssociationProposalInput {
  directConnectGatewayId: String!
  proposalId: String!
  associatedGatewayOwnerAccount: String!
  overrideAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
}

input AwsDirectConnectS5Input {
  cidr: String
}

input AwsDirectConnectAllocateConnectionOnInterconnectInput {
  bandwidth: String!
  connectionName: String!
  ownerAccount: String!
  interconnectId: String!
  vlan: Int!
}

input AwsDirectConnectAllocateHostedConnectionInput {
  connectionId: String!
  ownerAccount: String!
  bandwidth: String!
  connectionName: String!
  vlan: Int!
  tags: [AwsDirectConnectSzInput]
}

input AwsDirectConnectSzInput {
  key: String!
  value: String
}

input AwsDirectConnectAllocatePrivateVirtualInterfaceInput {
  connectionId: String!
  ownerAccount: String!
  newPrivateVirtualInterfaceAllocation: AwsDirectConnectAllocatePrivateVirtualInterfaceNewPrivateVirtualInterfaceAllocationInput!
}

input AwsDirectConnectAllocatePrivateVirtualInterfaceNewPrivateVirtualInterfaceAllocationInput {
  virtualInterfaceName: String!
  vlan: Int!
  asn: Int!
  mtu: Int
  authKey: String
  amazonAddress: String
  addressFamily: String
  customerAddress: String
  tags: [AwsDirectConnectSzInput]
}

input AwsDirectConnectAllocatePublicVirtualInterfaceInput {
  connectionId: String!
  ownerAccount: String!
  newPublicVirtualInterfaceAllocation: AwsDirectConnectAllocatePublicVirtualInterfaceNewPublicVirtualInterfaceAllocationInput!
}

input AwsDirectConnectAllocatePublicVirtualInterfaceNewPublicVirtualInterfaceAllocationInput {
  virtualInterfaceName: String!
  vlan: Int!
  asn: Int!
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  routeFilterPrefixes: [AwsDirectConnectS5Input]
  tags: [AwsDirectConnectSzInput]
}

type AwsDirectConnectAllocateTransitVirtualInterfaceOutput {
  virtualInterface: AwsDirectConnectS1n
}

type AwsDirectConnectS1n {
  ownerAccount: String
  virtualInterfaceId: String
  location: String
  connectionId: String
  virtualInterfaceType: String
  virtualInterfaceName: String
  vlan: Int
  asn: Int
  amazonSideAsn: JSON
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  virtualInterfaceState: String
  customerRouterConfig: String
  mtu: Int
  jumboFrameCapable: Boolean
  virtualGatewayId: String
  directConnectGatewayId: String
  routeFilterPrefixes: [AwsDirectConnectS5]
  bgpPeers: [AwsDirectConnectS1nBgpPeers]
  region: String
  awsDeviceV2: String
  tags: [AwsDirectConnectSz]
}

type AwsDirectConnectS1nBgpPeers {
  bgpPeerId: String
  asn: Int
  authKey: String
  addressFamily: String
  amazonAddress: String
  customerAddress: String
  bgpPeerState: String
  bgpStatus: String
  awsDeviceV2: String
}

type AwsDirectConnectSz {
  key: String!
  value: String
}

input AwsDirectConnectAllocateTransitVirtualInterfaceInput {
  connectionId: String!
  ownerAccount: String!
  newTransitVirtualInterfaceAllocation: AwsDirectConnectAllocateTransitVirtualInterfaceNewTransitVirtualInterfaceAllocationInput!
}

input AwsDirectConnectAllocateTransitVirtualInterfaceNewTransitVirtualInterfaceAllocationInput {
  virtualInterfaceName: String
  vlan: Int
  asn: Int
  mtu: Int
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  tags: [AwsDirectConnectSzInput]
}

input AwsDirectConnectAssociateConnectionWithLagInput {
  connectionId: String!
  lagId: String!
}

input AwsDirectConnectAssociateHostedConnectionInput {
  connectionId: String!
  parentConnectionId: String!
}

type AwsDirectConnectAssociateMacSecKeyOutput {
  connectionId: String
  macSecKeys: [AwsDirectConnectS17]
}

type AwsDirectConnectS17 {
  secretARN: String
  ckn: String
  state: String
  startOn: String
}

input AwsDirectConnectAssociateMacSecKeyInput {
  connectionId: String!
  secretARN: String
  ckn: String
  cak: String
}

input AwsDirectConnectAssociateVirtualInterfaceInput {
  virtualInterfaceId: String!
  connectionId: String!
}

type AwsDirectConnectConfirmConnectionOutput {
  connectionState: String
}

input AwsDirectConnectConfirmConnectionInput {
  connectionId: String!
}

type AwsDirectConnectConfirmPrivateVirtualInterfaceOutput {
  virtualInterfaceState: String
}

input AwsDirectConnectConfirmPrivateVirtualInterfaceInput {
  virtualInterfaceId: String!
  virtualGatewayId: String
  directConnectGatewayId: String
}

type AwsDirectConnectConfirmPublicVirtualInterfaceOutput {
  virtualInterfaceState: String
}

input AwsDirectConnectConfirmPublicVirtualInterfaceInput {
  virtualInterfaceId: String!
}

type AwsDirectConnectConfirmTransitVirtualInterfaceOutput {
  virtualInterfaceState: String
}

input AwsDirectConnectConfirmTransitVirtualInterfaceInput {
  virtualInterfaceId: String!
  directConnectGatewayId: String!
}

type AwsDirectConnectCreateBGPPeerOutput {
  virtualInterface: AwsDirectConnectS1n
}

input AwsDirectConnectCreateBGPPeerInput {
  virtualInterfaceId: String
  newBGPPeer: AwsDirectConnectCreateBGPPeerNewBGPPeerInput
}

input AwsDirectConnectCreateBGPPeerNewBGPPeerInput {
  asn: Int
  authKey: String
  addressFamily: String
  amazonAddress: String
  customerAddress: String
}

input AwsDirectConnectCreateConnectionInput {
  location: String!
  bandwidth: String!
  connectionName: String!
  lagId: String
  tags: [AwsDirectConnectSzInput]
  providerName: String
  requestMACSec: Boolean
}

type AwsDirectConnectCreateDirectConnectGatewayOutput {
  directConnectGateway: AwsDirectConnectS2p
}

type AwsDirectConnectS2p {
  directConnectGatewayId: String
  directConnectGatewayName: String
  amazonSideAsn: JSON
  ownerAccount: String
  directConnectGatewayState: String
  stateChangeError: String
}

input AwsDirectConnectCreateDirectConnectGatewayInput {
  directConnectGatewayName: String!
  amazonSideAsn: JSON
}

type AwsDirectConnectCreateDirectConnectGatewayAssociationOutput {
  directConnectGatewayAssociation: AwsDirectConnectS9
}

input AwsDirectConnectCreateDirectConnectGatewayAssociationInput {
  directConnectGatewayId: String!
  gatewayId: String
  addAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
  virtualGatewayId: String
}

type AwsDirectConnectCreateDirectConnectGatewayAssociationProposalOutput {
  directConnectGatewayAssociationProposal: AwsDirectConnectS2w
}

type AwsDirectConnectS2w {
  proposalId: String
  directConnectGatewayId: String
  directConnectGatewayOwnerAccount: String
  proposalState: String
  associatedGateway: AwsDirectConnectSc
  existingAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5]
  requestedAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5]
}

input AwsDirectConnectCreateDirectConnectGatewayAssociationProposalInput {
  directConnectGatewayId: String!
  directConnectGatewayOwnerAccount: String!
  gatewayId: String!
  addAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
  removeAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
}

input AwsDirectConnectCreateInterconnectInput {
  interconnectName: String!
  bandwidth: String!
  location: String!
  lagId: String
  tags: [AwsDirectConnectSzInput]
  providerName: String
}

input AwsDirectConnectCreateLagInput {
  numberOfConnections: Int!
  location: String!
  connectionsBandwidth: String!
  lagName: String!
  connectionId: String
  tags: [AwsDirectConnectSzInput]
  childConnectionTags: [AwsDirectConnectSzInput]
  providerName: String
  requestMACSec: Boolean
}

input AwsDirectConnectCreatePrivateVirtualInterfaceInput {
  connectionId: String!
  newPrivateVirtualInterface: AwsDirectConnectCreatePrivateVirtualInterfaceNewPrivateVirtualInterfaceInput!
}

input AwsDirectConnectCreatePrivateVirtualInterfaceNewPrivateVirtualInterfaceInput {
  virtualInterfaceName: String!
  vlan: Int!
  asn: Int!
  mtu: Int
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  virtualGatewayId: String
  directConnectGatewayId: String
  tags: [AwsDirectConnectSzInput]
}

input AwsDirectConnectCreatePublicVirtualInterfaceInput {
  connectionId: String!
  newPublicVirtualInterface: AwsDirectConnectCreatePublicVirtualInterfaceNewPublicVirtualInterfaceInput!
}

input AwsDirectConnectCreatePublicVirtualInterfaceNewPublicVirtualInterfaceInput {
  virtualInterfaceName: String!
  vlan: Int!
  asn: Int!
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  routeFilterPrefixes: [AwsDirectConnectS5Input]
  tags: [AwsDirectConnectSzInput]
}

type AwsDirectConnectCreateTransitVirtualInterfaceOutput {
  virtualInterface: AwsDirectConnectS1n
}

input AwsDirectConnectCreateTransitVirtualInterfaceInput {
  connectionId: String!
  newTransitVirtualInterface: AwsDirectConnectCreateTransitVirtualInterfaceNewTransitVirtualInterfaceInput!
}

input AwsDirectConnectCreateTransitVirtualInterfaceNewTransitVirtualInterfaceInput {
  virtualInterfaceName: String
  vlan: Int
  asn: Int
  mtu: Int
  authKey: String
  amazonAddress: String
  customerAddress: String
  addressFamily: String
  directConnectGatewayId: String
  tags: [AwsDirectConnectSzInput]
}

type AwsDirectConnectDeleteBGPPeerOutput {
  virtualInterface: AwsDirectConnectS1n
}

input AwsDirectConnectDeleteBGPPeerInput {
  virtualInterfaceId: String
  asn: Int
  customerAddress: String
  bgpPeerId: String
}

input AwsDirectConnectDeleteConnectionInput {
  connectionId: String!
}

type AwsDirectConnectDeleteDirectConnectGatewayOutput {
  directConnectGateway: AwsDirectConnectS2p
}

input AwsDirectConnectDeleteDirectConnectGatewayInput {
  directConnectGatewayId: String!
}

type AwsDirectConnectDeleteDirectConnectGatewayAssociationOutput {
  directConnectGatewayAssociation: AwsDirectConnectS9
}

input AwsDirectConnectDeleteDirectConnectGatewayAssociationInput {
  associationId: String
  directConnectGatewayId: String
  virtualGatewayId: String
}

type AwsDirectConnectDeleteDirectConnectGatewayAssociationProposalOutput {
  directConnectGatewayAssociationProposal: AwsDirectConnectS2w
}

input AwsDirectConnectDeleteDirectConnectGatewayAssociationProposalInput {
  proposalId: String!
}

type AwsDirectConnectDeleteInterconnectOutput {
  interconnectState: String
}

input AwsDirectConnectDeleteInterconnectInput {
  interconnectId: String!
}

input AwsDirectConnectDeleteLagInput {
  lagId: String!
}

type AwsDirectConnectDeleteVirtualInterfaceOutput {
  virtualInterfaceState: String
}

input AwsDirectConnectDeleteVirtualInterfaceInput {
  virtualInterfaceId: String!
}

type AwsDirectConnectDescribeConnectionLoaOutput {
  loa: AwsDirectConnectS3x
}

type AwsDirectConnectS3x {
  loaContent: JSON
  loaContentType: String
}

input AwsDirectConnectDescribeConnectionLoaInput {
  connectionId: String!
  providerName: String
  loaContentType: String
}

input AwsDirectConnectDescribeConnectionsInput {
  connectionId: String
}

input AwsDirectConnectDescribeConnectionsOnInterconnectInput {
  interconnectId: String!
}

type AwsDirectConnectDescribeDirectConnectGatewayAssociationProposalsOutput {
  directConnectGatewayAssociationProposals: [AwsDirectConnectS2w]
  nextToken: String
}

input AwsDirectConnectDescribeDirectConnectGatewayAssociationProposalsInput {
  directConnectGatewayId: String
  proposalId: String
  associatedGatewayId: String
  maxResults: Int
  nextToken: String
}

type AwsDirectConnectDescribeDirectConnectGatewayAssociationsOutput {
  directConnectGatewayAssociations: [AwsDirectConnectS9]
  nextToken: String
}

input AwsDirectConnectDescribeDirectConnectGatewayAssociationsInput {
  associationId: String
  associatedGatewayId: String
  directConnectGatewayId: String
  maxResults: Int
  nextToken: String
  virtualGatewayId: String
}

type AwsDirectConnectDescribeDirectConnectGatewayAttachmentsOutput {
  directConnectGatewayAttachments: [AwsDirectConnectDescribeDirectConnectGatewayAttachmentsOutputDirectConnectGatewayAttachments]
  nextToken: String
}

type AwsDirectConnectDescribeDirectConnectGatewayAttachmentsOutputDirectConnectGatewayAttachments {
  directConnectGatewayId: String
  virtualInterfaceId: String
  virtualInterfaceRegion: String
  virtualInterfaceOwnerAccount: String
  attachmentState: String
  attachmentType: String
  stateChangeError: String
}

input AwsDirectConnectDescribeDirectConnectGatewayAttachmentsInput {
  directConnectGatewayId: String
  virtualInterfaceId: String
  maxResults: Int
  nextToken: String
}

type AwsDirectConnectDescribeDirectConnectGatewaysOutput {
  directConnectGateways: [AwsDirectConnectS2p]
  nextToken: String
}

input AwsDirectConnectDescribeDirectConnectGatewaysInput {
  directConnectGatewayId: String
  maxResults: Int
  nextToken: String
}

input AwsDirectConnectDescribeHostedConnectionsInput {
  connectionId: String!
}

type AwsDirectConnectDescribeInterconnectLoaOutput {
  loa: AwsDirectConnectS3x
}

input AwsDirectConnectDescribeInterconnectLoaInput {
  interconnectId: String!
  providerName: String
  loaContentType: String
}

type AwsDirectConnectDescribeInterconnectsOutput {
  interconnects: [AwsDirectConnectS30]
}

type AwsDirectConnectS30 {
  interconnectId: String
  interconnectName: String
  interconnectState: String
  region: String
  location: String
  bandwidth: String
  loaIssueTime: Date
  lagId: String
  awsDevice: String
  jumboFrameCapable: Boolean
  awsDeviceV2: String
  hasLogicalRedundancy: String
  tags: [AwsDirectConnectSz]
  providerName: String
}

input AwsDirectConnectDescribeInterconnectsInput {
  interconnectId: String
}

type AwsDirectConnectDescribeLagsOutput {
  lags: [AwsDirectConnectS35]
}

type AwsDirectConnectS35 {
  connectionsBandwidth: String
  numberOfConnections: Int
  lagId: String
  ownerAccount: String
  lagName: String
  lagState: String
  location: String
  region: String
  minimumLinks: Int
  awsDevice: String
  awsDeviceV2: String
  connections: [AwsDirectConnectSo]
  allowsHostedConnections: Boolean
  jumboFrameCapable: Boolean
  hasLogicalRedundancy: String
  tags: [AwsDirectConnectSz]
  providerName: String
  macSecCapable: Boolean
  encryptionMode: String
  macSecKeys: [AwsDirectConnectS17]
}

type AwsDirectConnectSo {
  ownerAccount: String
  connectionId: String
  connectionName: String
  connectionState: String
  region: String
  location: String
  bandwidth: String
  vlan: Int
  partnerName: String
  loaIssueTime: Date
  lagId: String
  awsDevice: String
  jumboFrameCapable: Boolean
  awsDeviceV2: String
  hasLogicalRedundancy: String
  tags: [AwsDirectConnectSz]
  providerName: String
  macSecCapable: Boolean
  portEncryptionStatus: String
  encryptionMode: String
  macSecKeys: [AwsDirectConnectS17]
}

input AwsDirectConnectDescribeLagsInput {
  lagId: String
}

input AwsDirectConnectDescribeLoaInput {
  connectionId: String!
  providerName: String
  loaContentType: String
}

type AwsDirectConnectDescribeLocationsOutput {
  locations: [AwsDirectConnectDescribeLocationsOutputLocations]
}

type AwsDirectConnectDescribeLocationsOutputLocations {
  locationCode: String
  locationName: String
  region: String
  availablePortSpeeds: [String]
  availableProviders: [String]
  availableMacSecPortSpeeds: [String]
}

type AwsDirectConnectDescribeTagsOutput {
  resourceTags: [AwsDirectConnectDescribeTagsOutputResourceTags]
}

type AwsDirectConnectDescribeTagsOutputResourceTags {
  resourceArn: String
  tags: [AwsDirectConnectSz]
}

input AwsDirectConnectDescribeTagsInput {
  resourceArns: [String]!
}

type AwsDirectConnectDescribeVirtualGatewaysOutput {
  virtualGateways: [AwsDirectConnectDescribeVirtualGatewaysOutputVirtualGateways]
}

type AwsDirectConnectDescribeVirtualGatewaysOutputVirtualGateways {
  virtualGatewayId: String
  virtualGatewayState: String
}

type AwsDirectConnectDescribeVirtualInterfacesOutput {
  virtualInterfaces: [AwsDirectConnectS1n]
}

input AwsDirectConnectDescribeVirtualInterfacesInput {
  connectionId: String
  virtualInterfaceId: String
}

input AwsDirectConnectDisassociateConnectionFromLagInput {
  connectionId: String!
  lagId: String!
}

type AwsDirectConnectDisassociateMacSecKeyOutput {
  connectionId: String
  macSecKeys: [AwsDirectConnectS17]
}

input AwsDirectConnectDisassociateMacSecKeyInput {
  connectionId: String!
  secretARN: String!
}

type AwsDirectConnectListVirtualInterfaceTestHistoryOutput {
  virtualInterfaceTestHistory: [AwsDirectConnectS5p]
  nextToken: String
}

type AwsDirectConnectS5p {
  testId: String
  virtualInterfaceId: String
  bgpPeers: [String]
  status: String
  ownerAccount: String
  testDurationInMinutes: Int
  startTime: Date
  endTime: Date
}

input AwsDirectConnectListVirtualInterfaceTestHistoryInput {
  testId: String
  virtualInterfaceId: String
  bgpPeers: [String]
  status: String
  maxResults: Int
  nextToken: String
}

type AwsDirectConnectStartBgpFailoverTestOutput {
  virtualInterfaceTest: AwsDirectConnectS5p
}

input AwsDirectConnectStartBgpFailoverTestInput {
  virtualInterfaceId: String!
  bgpPeers: [String]
  testDurationInMinutes: Int
}

type AwsDirectConnectStopBgpFailoverTestOutput {
  virtualInterfaceTest: AwsDirectConnectS5p
}

input AwsDirectConnectStopBgpFailoverTestInput {
  virtualInterfaceId: String!
}

input AwsDirectConnectTagResourceInput {
  resourceArn: String!
  tags: [AwsDirectConnectSzInput]!
}

input AwsDirectConnectUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsDirectConnectUpdateConnectionInput {
  connectionId: String!
  connectionName: String
  encryptionMode: String
}

type AwsDirectConnectUpdateDirectConnectGatewayAssociationOutput {
  directConnectGatewayAssociation: AwsDirectConnectS9
}

input AwsDirectConnectUpdateDirectConnectGatewayAssociationInput {
  associationId: String
  addAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
  removeAllowedPrefixesToDirectConnectGateway: [AwsDirectConnectS5Input]
}

input AwsDirectConnectUpdateLagInput {
  lagId: String!
  lagName: String
  minimumLinks: Int
  encryptionMode: String
}

input AwsDirectConnectUpdateVirtualInterfaceAttributesInput {
  virtualInterfaceId: String!
  mtu: Int
}

"""AWS Directory Service (2015-04-16)"""
type AwsDirectoryService {
  acceptSharedDirectory(input: AwsDirectoryServiceAcceptSharedDirectoryInput!, config: AwsConfig): AwsDirectoryServiceAcceptSharedDirectoryOutput
  addIpRoutes(input: AwsDirectoryServiceAddIpRoutesInput!, config: AwsConfig): JSON
  addRegion(input: AwsDirectoryServiceAddRegionInput!, config: AwsConfig): JSON
  addTagsToResource(input: AwsDirectoryServiceAddTagsToResourceInput!, config: AwsConfig): JSON
  cancelSchemaExtension(input: AwsDirectoryServiceCancelSchemaExtensionInput!, config: AwsConfig): JSON
  connectDirectory(input: AwsDirectoryServiceConnectDirectoryInput!, config: AwsConfig): AwsDirectoryServiceConnectDirectoryOutput
  createAlias(input: AwsDirectoryServiceCreateAliasInput!, config: AwsConfig): AwsDirectoryServiceCreateAliasOutput
  createComputer(input: AwsDirectoryServiceCreateComputerInput!, config: AwsConfig): AwsDirectoryServiceCreateComputerOutput
  createConditionalForwarder(input: AwsDirectoryServiceCreateConditionalForwarderInput!, config: AwsConfig): JSON
  createDirectory(input: AwsDirectoryServiceCreateDirectoryInput!, config: AwsConfig): AwsDirectoryServiceCreateDirectoryOutput
  createLogSubscription(input: AwsDirectoryServiceCreateLogSubscriptionInput!, config: AwsConfig): JSON
  createMicrosoftAD(input: AwsDirectoryServiceCreateMicrosoftADInput!, config: AwsConfig): AwsDirectoryServiceCreateMicrosoftADOutput
  createSnapshot(input: AwsDirectoryServiceCreateSnapshotInput!, config: AwsConfig): AwsDirectoryServiceCreateSnapshotOutput
  createTrust(input: AwsDirectoryServiceCreateTrustInput!, config: AwsConfig): AwsDirectoryServiceCreateTrustOutput
  deleteConditionalForwarder(input: AwsDirectoryServiceDeleteConditionalForwarderInput!, config: AwsConfig): JSON
  deleteDirectory(input: AwsDirectoryServiceDeleteDirectoryInput!, config: AwsConfig): AwsDirectoryServiceDeleteDirectoryOutput
  deleteLogSubscription(input: AwsDirectoryServiceDeleteLogSubscriptionInput!, config: AwsConfig): JSON
  deleteSnapshot(input: AwsDirectoryServiceDeleteSnapshotInput!, config: AwsConfig): AwsDirectoryServiceDeleteSnapshotOutput
  deleteTrust(input: AwsDirectoryServiceDeleteTrustInput!, config: AwsConfig): AwsDirectoryServiceDeleteTrustOutput
  deregisterCertificate(input: AwsDirectoryServiceDeregisterCertificateInput!, config: AwsConfig): JSON
  deregisterEventTopic(input: AwsDirectoryServiceDeregisterEventTopicInput!, config: AwsConfig): JSON
  describeCertificate(input: AwsDirectoryServiceDescribeCertificateInput!, config: AwsConfig): AwsDirectoryServiceDescribeCertificateOutput
  describeConditionalForwarders(input: AwsDirectoryServiceDescribeConditionalForwardersInput!, config: AwsConfig): AwsDirectoryServiceDescribeConditionalForwardersOutput
  describeDirectories(input: AwsDirectoryServiceDescribeDirectoriesInput, config: AwsConfig): AwsDirectoryServiceDescribeDirectoriesOutput
  describeDomainControllers(input: AwsDirectoryServiceDescribeDomainControllersInput!, config: AwsConfig): AwsDirectoryServiceDescribeDomainControllersOutput
  describeEventTopics(input: AwsDirectoryServiceDescribeEventTopicsInput, config: AwsConfig): AwsDirectoryServiceDescribeEventTopicsOutput
  describeLDAPSSettings(input: AwsDirectoryServiceDescribeLDAPSSettingsInput!, config: AwsConfig): AwsDirectoryServiceDescribeLDAPSSettingsOutput
  describeRegions(input: AwsDirectoryServiceDescribeRegionsInput!, config: AwsConfig): AwsDirectoryServiceDescribeRegionsOutput
  describeSharedDirectories(input: AwsDirectoryServiceDescribeSharedDirectoriesInput!, config: AwsConfig): AwsDirectoryServiceDescribeSharedDirectoriesOutput
  describeSnapshots(input: AwsDirectoryServiceDescribeSnapshotsInput, config: AwsConfig): AwsDirectoryServiceDescribeSnapshotsOutput
  describeTrusts(input: AwsDirectoryServiceDescribeTrustsInput, config: AwsConfig): AwsDirectoryServiceDescribeTrustsOutput
  disableClientAuthentication(input: AwsDirectoryServiceDisableClientAuthenticationInput!, config: AwsConfig): JSON
  disableLDAPS(input: AwsDirectoryServiceDisableLDAPSInput!, config: AwsConfig): JSON
  disableRadius(input: AwsDirectoryServiceDisableRadiusInput!, config: AwsConfig): JSON
  disableSso(input: AwsDirectoryServiceDisableSsoInput!, config: AwsConfig): JSON
  enableClientAuthentication(input: AwsDirectoryServiceEnableClientAuthenticationInput!, config: AwsConfig): JSON
  enableLDAPS(input: AwsDirectoryServiceEnableLDAPSInput!, config: AwsConfig): JSON
  enableRadius(input: AwsDirectoryServiceEnableRadiusInput!, config: AwsConfig): JSON
  enableSso(input: AwsDirectoryServiceEnableSsoInput!, config: AwsConfig): JSON
  getDirectoryLimits(input: JSON, config: AwsConfig): AwsDirectoryServiceGetDirectoryLimitsOutput
  getSnapshotLimits(input: AwsDirectoryServiceGetSnapshotLimitsInput!, config: AwsConfig): AwsDirectoryServiceGetSnapshotLimitsOutput
  listCertificates(input: AwsDirectoryServiceListCertificatesInput!, config: AwsConfig): AwsDirectoryServiceListCertificatesOutput
  listIpRoutes(input: AwsDirectoryServiceListIpRoutesInput!, config: AwsConfig): AwsDirectoryServiceListIpRoutesOutput
  listLogSubscriptions(input: AwsDirectoryServiceListLogSubscriptionsInput, config: AwsConfig): AwsDirectoryServiceListLogSubscriptionsOutput
  listSchemaExtensions(input: AwsDirectoryServiceListSchemaExtensionsInput!, config: AwsConfig): AwsDirectoryServiceListSchemaExtensionsOutput
  listTagsForResource(input: AwsDirectoryServiceListTagsForResourceInput!, config: AwsConfig): AwsDirectoryServiceListTagsForResourceOutput
  registerCertificate(input: AwsDirectoryServiceRegisterCertificateInput!, config: AwsConfig): AwsDirectoryServiceRegisterCertificateOutput
  registerEventTopic(input: AwsDirectoryServiceRegisterEventTopicInput!, config: AwsConfig): JSON
  rejectSharedDirectory(input: AwsDirectoryServiceRejectSharedDirectoryInput!, config: AwsConfig): AwsDirectoryServiceRejectSharedDirectoryOutput
  removeIpRoutes(input: AwsDirectoryServiceRemoveIpRoutesInput!, config: AwsConfig): JSON
  removeRegion(input: AwsDirectoryServiceRemoveRegionInput!, config: AwsConfig): JSON
  removeTagsFromResource(input: AwsDirectoryServiceRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetUserPassword(input: AwsDirectoryServiceResetUserPasswordInput!, config: AwsConfig): JSON
  restoreFromSnapshot(input: AwsDirectoryServiceRestoreFromSnapshotInput!, config: AwsConfig): JSON
  shareDirectory(input: AwsDirectoryServiceShareDirectoryInput!, config: AwsConfig): AwsDirectoryServiceShareDirectoryOutput
  startSchemaExtension(input: AwsDirectoryServiceStartSchemaExtensionInput!, config: AwsConfig): AwsDirectoryServiceStartSchemaExtensionOutput
  unshareDirectory(input: AwsDirectoryServiceUnshareDirectoryInput!, config: AwsConfig): AwsDirectoryServiceUnshareDirectoryOutput
  updateConditionalForwarder(input: AwsDirectoryServiceUpdateConditionalForwarderInput!, config: AwsConfig): JSON
  updateNumberOfDomainControllers(input: AwsDirectoryServiceUpdateNumberOfDomainControllersInput!, config: AwsConfig): JSON
  updateRadius(input: AwsDirectoryServiceUpdateRadiusInput!, config: AwsConfig): JSON
  updateTrust(input: AwsDirectoryServiceUpdateTrustInput!, config: AwsConfig): AwsDirectoryServiceUpdateTrustOutput
  verifyTrust(input: AwsDirectoryServiceVerifyTrustInput!, config: AwsConfig): AwsDirectoryServiceVerifyTrustOutput
}

type AwsDirectoryServiceAcceptSharedDirectoryOutput {
  SharedDirectory: AwsDirectoryServiceS4
}

type AwsDirectoryServiceS4 {
  OwnerAccountId: String
  OwnerDirectoryId: String
  ShareMethod: String
  SharedAccountId: String
  SharedDirectoryId: String
  ShareStatus: String
  ShareNotes: String
  CreatedDateTime: Date
  LastUpdatedDateTime: Date
}

input AwsDirectoryServiceAcceptSharedDirectoryInput {
  SharedDirectoryId: String!
}

input AwsDirectoryServiceAddIpRoutesInput {
  DirectoryId: String!
  IpRoutes: [AwsDirectoryServiceAddIpRoutesIpRoutesInput]!
  UpdateSecurityGroupForDirectoryControllers: Boolean
}

input AwsDirectoryServiceAddIpRoutesIpRoutesInput {
  CidrIp: String
  Description: String
}

input AwsDirectoryServiceAddRegionInput {
  DirectoryId: String!
  RegionName: String!
  VPCSettings: AwsDirectoryServiceSkInput!
}

input AwsDirectoryServiceSkInput {
  VpcId: String!
  SubnetIds: [String]!
}

input AwsDirectoryServiceAddTagsToResourceInput {
  ResourceId: String!
  Tags: [AwsDirectoryServiceSrInput]!
}

input AwsDirectoryServiceSrInput {
  Key: String!
  Value: String!
}

input AwsDirectoryServiceCancelSchemaExtensionInput {
  DirectoryId: String!
  SchemaExtensionId: String!
}

type AwsDirectoryServiceConnectDirectoryOutput {
  DirectoryId: String
}

input AwsDirectoryServiceConnectDirectoryInput {
  Name: String!
  ShortName: String
  Password: String!
  Description: String
  Size: String!
  ConnectSettings: AwsDirectoryServiceConnectDirectoryConnectSettingsInput!
  Tags: [AwsDirectoryServiceSrInput]
}

input AwsDirectoryServiceConnectDirectoryConnectSettingsInput {
  VpcId: String!
  SubnetIds: [String]!
  CustomerDnsIps: [String]!
  CustomerUserName: String!
}

type AwsDirectoryServiceCreateAliasOutput {
  DirectoryId: String
  Alias: String
}

input AwsDirectoryServiceCreateAliasInput {
  DirectoryId: String!
  Alias: String!
}

type AwsDirectoryServiceCreateComputerOutput {
  Computer: AwsDirectoryServiceCreateComputerOutputComputer
}

type AwsDirectoryServiceCreateComputerOutputComputer {
  ComputerId: String
  ComputerName: String
  ComputerAttributes: [AwsDirectoryServiceS1g]
}

type AwsDirectoryServiceS1g {
  Name: String
  Value: String
}

input AwsDirectoryServiceCreateComputerInput {
  DirectoryId: String!
  ComputerName: String!
  Password: String!
  OrganizationalUnitDistinguishedName: String
  ComputerAttributes: [AwsDirectoryServiceS1gInput]
}

input AwsDirectoryServiceS1gInput {
  Name: String
  Value: String
}

input AwsDirectoryServiceCreateConditionalForwarderInput {
  DirectoryId: String!
  RemoteDomainName: String!
  DnsIpAddrs: [String]!
}

type AwsDirectoryServiceCreateDirectoryOutput {
  DirectoryId: String
}

input AwsDirectoryServiceCreateDirectoryInput {
  Name: String!
  ShortName: String
  Password: String!
  Description: String
  Size: String!
  VpcSettings: AwsDirectoryServiceSkInput
  Tags: [AwsDirectoryServiceSrInput]
}

input AwsDirectoryServiceCreateLogSubscriptionInput {
  DirectoryId: String!
  LogGroupName: String!
}

type AwsDirectoryServiceCreateMicrosoftADOutput {
  DirectoryId: String
}

input AwsDirectoryServiceCreateMicrosoftADInput {
  Name: String!
  ShortName: String
  Password: String!
  Description: String
  VpcSettings: AwsDirectoryServiceSkInput!
  Edition: String
  Tags: [AwsDirectoryServiceSrInput]
}

type AwsDirectoryServiceCreateSnapshotOutput {
  SnapshotId: String
}

input AwsDirectoryServiceCreateSnapshotInput {
  DirectoryId: String!
  Name: String
}

type AwsDirectoryServiceCreateTrustOutput {
  TrustId: String
}

input AwsDirectoryServiceCreateTrustInput {
  DirectoryId: String!
  RemoteDomainName: String!
  TrustPassword: String!
  TrustDirection: String!
  TrustType: String
  ConditionalForwarderIpAddrs: [String]
  SelectiveAuth: String
}

input AwsDirectoryServiceDeleteConditionalForwarderInput {
  DirectoryId: String!
  RemoteDomainName: String!
}

type AwsDirectoryServiceDeleteDirectoryOutput {
  DirectoryId: String
}

input AwsDirectoryServiceDeleteDirectoryInput {
  DirectoryId: String!
}

input AwsDirectoryServiceDeleteLogSubscriptionInput {
  DirectoryId: String!
}

type AwsDirectoryServiceDeleteSnapshotOutput {
  SnapshotId: String
}

input AwsDirectoryServiceDeleteSnapshotInput {
  SnapshotId: String!
}

type AwsDirectoryServiceDeleteTrustOutput {
  TrustId: String
}

input AwsDirectoryServiceDeleteTrustInput {
  TrustId: String!
  DeleteAssociatedConditionalForwarder: Boolean
}

input AwsDirectoryServiceDeregisterCertificateInput {
  DirectoryId: String!
  CertificateId: String!
}

input AwsDirectoryServiceDeregisterEventTopicInput {
  DirectoryId: String!
  TopicName: String!
}

type AwsDirectoryServiceDescribeCertificateOutput {
  Certificate: AwsDirectoryServiceDescribeCertificateOutputCertificate
}

type AwsDirectoryServiceDescribeCertificateOutputCertificate {
  CertificateId: String
  State: String
  StateReason: String
  CommonName: String
  RegisteredDateTime: Date
  ExpiryDateTime: Date
  Type: String
  ClientCertAuthSettings: AwsDirectoryServiceS30
}

type AwsDirectoryServiceS30 {
  OCSPUrl: String
}

input AwsDirectoryServiceDescribeCertificateInput {
  DirectoryId: String!
  CertificateId: String!
}

type AwsDirectoryServiceDescribeConditionalForwardersOutput {
  ConditionalForwarders: [AwsDirectoryServiceDescribeConditionalForwardersOutputConditionalForwarders]
}

type AwsDirectoryServiceDescribeConditionalForwardersOutputConditionalForwarders {
  RemoteDomainName: String
  DnsIpAddrs: [String]
  ReplicationScope: String
}

input AwsDirectoryServiceDescribeConditionalForwardersInput {
  DirectoryId: String!
  RemoteDomainNames: [String]
}

type AwsDirectoryServiceDescribeDirectoriesOutput {
  DirectoryDescriptions: [AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptions]
  NextToken: String
}

type AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptions {
  DirectoryId: String
  Name: String
  ShortName: String
  Size: String
  Edition: String
  Alias: String
  AccessUrl: String
  Description: String
  DnsIpAddrs: [String]
  Stage: String
  ShareStatus: String
  ShareMethod: String
  ShareNotes: String
  LaunchTime: Date
  StageLastUpdatedDateTime: Date
  Type: String
  VpcSettings: AwsDirectoryServiceS3j
  ConnectSettings: AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsConnectSettings
  RadiusSettings: AwsDirectoryServiceS3p
  RadiusStatus: String
  StageReason: String
  SsoEnabled: Boolean
  DesiredNumberOfDomainControllers: Int
  OwnerDirectoryDescription: AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsOwnerDirectoryDescription
  RegionsInfo: AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsRegionsInfo
}

type AwsDirectoryServiceS3j {
  VpcId: String
  SubnetIds: [String]
  SecurityGroupId: String
  AvailabilityZones: [String]
}

type AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsConnectSettings {
  VpcId: String
  SubnetIds: [String]
  CustomerUserName: String
  SecurityGroupId: String
  AvailabilityZones: [String]
  ConnectIps: [String]
}

type AwsDirectoryServiceS3p {
  RadiusServers: [String]
  RadiusPort: Int
  RadiusTimeout: Int
  RadiusRetries: Int
  SharedSecret: String
  AuthenticationProtocol: String
  DisplayLabel: String
  UseSameUsername: Boolean
}

type AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsOwnerDirectoryDescription {
  DirectoryId: String
  AccountId: String
  DnsIpAddrs: [String]
  VpcSettings: AwsDirectoryServiceS3j
  RadiusSettings: AwsDirectoryServiceS3p
  RadiusStatus: String
}

type AwsDirectoryServiceDescribeDirectoriesOutputDirectoryDescriptionsRegionsInfo {
  PrimaryRegion: String
  AdditionalRegions: [String]
}

input AwsDirectoryServiceDescribeDirectoriesInput {
  DirectoryIds: [String]
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceDescribeDomainControllersOutput {
  DomainControllers: [AwsDirectoryServiceDescribeDomainControllersOutputDomainControllers]
  NextToken: String
}

type AwsDirectoryServiceDescribeDomainControllersOutputDomainControllers {
  DirectoryId: String
  DomainControllerId: String
  DnsIpAddr: String
  VpcId: String
  SubnetId: String
  AvailabilityZone: String
  Status: String
  StatusReason: String
  LaunchTime: Date
  StatusLastUpdatedDateTime: Date
}

input AwsDirectoryServiceDescribeDomainControllersInput {
  DirectoryId: String!
  DomainControllerIds: [String]
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceDescribeEventTopicsOutput {
  EventTopics: [AwsDirectoryServiceDescribeEventTopicsOutputEventTopics]
}

type AwsDirectoryServiceDescribeEventTopicsOutputEventTopics {
  DirectoryId: String
  TopicName: String
  TopicArn: String
  CreatedDateTime: Date
  Status: String
}

input AwsDirectoryServiceDescribeEventTopicsInput {
  DirectoryId: String
  TopicNames: [String]
}

type AwsDirectoryServiceDescribeLDAPSSettingsOutput {
  LDAPSSettingsInfo: [AwsDirectoryServiceDescribeLDAPSSettingsOutputLDAPSSettingsInfo]
  NextToken: String
}

type AwsDirectoryServiceDescribeLDAPSSettingsOutputLDAPSSettingsInfo {
  LDAPSStatus: String
  LDAPSStatusReason: String
  LastUpdatedDateTime: Date
}

input AwsDirectoryServiceDescribeLDAPSSettingsInput {
  DirectoryId: String!
  Type: String
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceDescribeRegionsOutput {
  RegionsDescription: [AwsDirectoryServiceDescribeRegionsOutputRegionsDescription]
  NextToken: String
}

type AwsDirectoryServiceDescribeRegionsOutputRegionsDescription {
  DirectoryId: String
  RegionName: String
  RegionType: String
  Status: String
  VpcSettings: AwsDirectoryServiceSk
  DesiredNumberOfDomainControllers: Int
  LaunchTime: Date
  StatusLastUpdatedDateTime: Date
  LastUpdatedDateTime: Date
}

type AwsDirectoryServiceSk {
  VpcId: String!
  SubnetIds: [String]!
}

input AwsDirectoryServiceDescribeRegionsInput {
  DirectoryId: String!
  RegionName: String
  NextToken: String
}

type AwsDirectoryServiceDescribeSharedDirectoriesOutput {
  SharedDirectories: [AwsDirectoryServiceS4]
  NextToken: String
}

input AwsDirectoryServiceDescribeSharedDirectoriesInput {
  OwnerDirectoryId: String!
  SharedDirectoryIds: [String]
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceDescribeSnapshotsOutput {
  Snapshots: [AwsDirectoryServiceDescribeSnapshotsOutputSnapshots]
  NextToken: String
}

type AwsDirectoryServiceDescribeSnapshotsOutputSnapshots {
  DirectoryId: String
  SnapshotId: String
  Type: String
  Name: String
  Status: String
  StartTime: Date
}

input AwsDirectoryServiceDescribeSnapshotsInput {
  DirectoryId: String
  SnapshotIds: [String]
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceDescribeTrustsOutput {
  Trusts: [AwsDirectoryServiceDescribeTrustsOutputTrusts]
  NextToken: String
}

type AwsDirectoryServiceDescribeTrustsOutputTrusts {
  DirectoryId: String
  TrustId: String
  RemoteDomainName: String
  TrustType: String
  TrustDirection: String
  TrustState: String
  CreatedDateTime: Date
  LastUpdatedDateTime: Date
  StateLastUpdatedDateTime: Date
  TrustStateReason: String
  SelectiveAuth: String
}

input AwsDirectoryServiceDescribeTrustsInput {
  DirectoryId: String
  TrustIds: [String]
  NextToken: String
  Limit: Int
}

input AwsDirectoryServiceDisableClientAuthenticationInput {
  DirectoryId: String!
  Type: String!
}

input AwsDirectoryServiceDisableLDAPSInput {
  DirectoryId: String!
  Type: String!
}

input AwsDirectoryServiceDisableRadiusInput {
  DirectoryId: String!
}

input AwsDirectoryServiceDisableSsoInput {
  DirectoryId: String!
  UserName: String
  Password: String
}

input AwsDirectoryServiceEnableClientAuthenticationInput {
  DirectoryId: String!
  Type: String!
}

input AwsDirectoryServiceEnableLDAPSInput {
  DirectoryId: String!
  Type: String!
}

input AwsDirectoryServiceEnableRadiusInput {
  DirectoryId: String!
  RadiusSettings: AwsDirectoryServiceS3pInput!
}

input AwsDirectoryServiceS3pInput {
  RadiusServers: [String]
  RadiusPort: Int
  RadiusTimeout: Int
  RadiusRetries: Int
  SharedSecret: String
  AuthenticationProtocol: String
  DisplayLabel: String
  UseSameUsername: Boolean
}

input AwsDirectoryServiceEnableSsoInput {
  DirectoryId: String!
  UserName: String
  Password: String
}

type AwsDirectoryServiceGetDirectoryLimitsOutput {
  DirectoryLimits: AwsDirectoryServiceGetDirectoryLimitsOutputDirectoryLimits
}

type AwsDirectoryServiceGetDirectoryLimitsOutputDirectoryLimits {
  CloudOnlyDirectoriesLimit: Int
  CloudOnlyDirectoriesCurrentCount: Int
  CloudOnlyDirectoriesLimitReached: Boolean
  CloudOnlyMicrosoftADLimit: Int
  CloudOnlyMicrosoftADCurrentCount: Int
  CloudOnlyMicrosoftADLimitReached: Boolean
  ConnectedDirectoriesLimit: Int
  ConnectedDirectoriesCurrentCount: Int
  ConnectedDirectoriesLimitReached: Boolean
}

type AwsDirectoryServiceGetSnapshotLimitsOutput {
  SnapshotLimits: AwsDirectoryServiceGetSnapshotLimitsOutputSnapshotLimits
}

type AwsDirectoryServiceGetSnapshotLimitsOutputSnapshotLimits {
  ManualSnapshotsLimit: Int
  ManualSnapshotsCurrentCount: Int
  ManualSnapshotsLimitReached: Boolean
}

input AwsDirectoryServiceGetSnapshotLimitsInput {
  DirectoryId: String!
}

type AwsDirectoryServiceListCertificatesOutput {
  NextToken: String
  CertificatesInfo: [AwsDirectoryServiceListCertificatesOutputCertificatesInfo]
}

type AwsDirectoryServiceListCertificatesOutputCertificatesInfo {
  CertificateId: String
  CommonName: String
  State: String
  ExpiryDateTime: Date
  Type: String
}

input AwsDirectoryServiceListCertificatesInput {
  DirectoryId: String!
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceListIpRoutesOutput {
  IpRoutesInfo: [AwsDirectoryServiceListIpRoutesOutputIpRoutesInfo]
  NextToken: String
}

type AwsDirectoryServiceListIpRoutesOutputIpRoutesInfo {
  DirectoryId: String
  CidrIp: String
  IpRouteStatusMsg: String
  AddedDateTime: Date
  IpRouteStatusReason: String
  Description: String
}

input AwsDirectoryServiceListIpRoutesInput {
  DirectoryId: String!
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceListLogSubscriptionsOutput {
  LogSubscriptions: [AwsDirectoryServiceListLogSubscriptionsOutputLogSubscriptions]
  NextToken: String
}

type AwsDirectoryServiceListLogSubscriptionsOutputLogSubscriptions {
  DirectoryId: String
  LogGroupName: String
  SubscriptionCreatedDateTime: Date
}

input AwsDirectoryServiceListLogSubscriptionsInput {
  DirectoryId: String
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceListSchemaExtensionsOutput {
  SchemaExtensionsInfo: [AwsDirectoryServiceListSchemaExtensionsOutputSchemaExtensionsInfo]
  NextToken: String
}

type AwsDirectoryServiceListSchemaExtensionsOutputSchemaExtensionsInfo {
  DirectoryId: String
  SchemaExtensionId: String
  Description: String
  SchemaExtensionStatus: String
  SchemaExtensionStatusReason: String
  StartDateTime: Date
  EndDateTime: Date
}

input AwsDirectoryServiceListSchemaExtensionsInput {
  DirectoryId: String!
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceListTagsForResourceOutput {
  Tags: [AwsDirectoryServiceSr]
  NextToken: String
}

type AwsDirectoryServiceSr {
  Key: String!
  Value: String!
}

input AwsDirectoryServiceListTagsForResourceInput {
  ResourceId: String!
  NextToken: String
  Limit: Int
}

type AwsDirectoryServiceRegisterCertificateOutput {
  CertificateId: String
}

input AwsDirectoryServiceRegisterCertificateInput {
  DirectoryId: String!
  CertificateData: String!
  Type: String
  ClientCertAuthSettings: AwsDirectoryServiceS30Input
}

input AwsDirectoryServiceS30Input {
  OCSPUrl: String
}

input AwsDirectoryServiceRegisterEventTopicInput {
  DirectoryId: String!
  TopicName: String!
}

type AwsDirectoryServiceRejectSharedDirectoryOutput {
  SharedDirectoryId: String
}

input AwsDirectoryServiceRejectSharedDirectoryInput {
  SharedDirectoryId: String!
}

input AwsDirectoryServiceRemoveIpRoutesInput {
  DirectoryId: String!
  CidrIps: [String]!
}

input AwsDirectoryServiceRemoveRegionInput {
  DirectoryId: String!
}

input AwsDirectoryServiceRemoveTagsFromResourceInput {
  ResourceId: String!
  TagKeys: [String]!
}

input AwsDirectoryServiceResetUserPasswordInput {
  DirectoryId: String!
  UserName: String!
  NewPassword: String!
}

input AwsDirectoryServiceRestoreFromSnapshotInput {
  SnapshotId: String!
}

type AwsDirectoryServiceShareDirectoryOutput {
  SharedDirectoryId: String
}

input AwsDirectoryServiceShareDirectoryInput {
  DirectoryId: String!
  ShareNotes: String
  ShareTarget: AwsDirectoryServiceShareDirectoryShareTargetInput!
  ShareMethod: String!
}

input AwsDirectoryServiceShareDirectoryShareTargetInput {
  Id: String!
  Type: String!
}

type AwsDirectoryServiceStartSchemaExtensionOutput {
  SchemaExtensionId: String
}

input AwsDirectoryServiceStartSchemaExtensionInput {
  DirectoryId: String!
  CreateSnapshotBeforeSchemaExtension: Boolean!
  LdifContent: String!
  Description: String!
}

type AwsDirectoryServiceUnshareDirectoryOutput {
  SharedDirectoryId: String
}

input AwsDirectoryServiceUnshareDirectoryInput {
  DirectoryId: String!
  UnshareTarget: AwsDirectoryServiceUnshareDirectoryUnshareTargetInput!
}

input AwsDirectoryServiceUnshareDirectoryUnshareTargetInput {
  Id: String!
  Type: String!
}

input AwsDirectoryServiceUpdateConditionalForwarderInput {
  DirectoryId: String!
  RemoteDomainName: String!
  DnsIpAddrs: [String]!
}

input AwsDirectoryServiceUpdateNumberOfDomainControllersInput {
  DirectoryId: String!
  DesiredNumber: Int!
}

input AwsDirectoryServiceUpdateRadiusInput {
  DirectoryId: String!
  RadiusSettings: AwsDirectoryServiceS3pInput!
}

type AwsDirectoryServiceUpdateTrustOutput {
  RequestId: String
  TrustId: String
}

input AwsDirectoryServiceUpdateTrustInput {
  TrustId: String!
  SelectiveAuth: String
}

type AwsDirectoryServiceVerifyTrustOutput {
  TrustId: String
}

input AwsDirectoryServiceVerifyTrustInput {
  TrustId: String!
}

"""AWS Application Discovery Service (2015-11-01)"""
type AwsDiscovery {
  associateConfigurationItemsToApplication(input: AwsDiscoveryAssociateConfigurationItemsToApplicationInput!, config: AwsConfig): JSON
  batchDeleteImportData(input: AwsDiscoveryBatchDeleteImportDataInput!, config: AwsConfig): AwsDiscoveryBatchDeleteImportDataOutput
  createApplication(input: AwsDiscoveryCreateApplicationInput!, config: AwsConfig): AwsDiscoveryCreateApplicationOutput
  createTags(input: AwsDiscoveryCreateTagsInput!, config: AwsConfig): JSON
  deleteApplications(input: AwsDiscoveryDeleteApplicationsInput!, config: AwsConfig): JSON
  deleteTags(input: AwsDiscoveryDeleteTagsInput!, config: AwsConfig): JSON
  describeAgents(input: AwsDiscoveryDescribeAgentsInput, config: AwsConfig): AwsDiscoveryDescribeAgentsOutput
  describeConfigurations(input: AwsDiscoveryDescribeConfigurationsInput!, config: AwsConfig): AwsDiscoveryDescribeConfigurationsOutput
  describeContinuousExports(input: AwsDiscoveryDescribeContinuousExportsInput, config: AwsConfig): AwsDiscoveryDescribeContinuousExportsOutput
  describeExportConfigurations(input: AwsDiscoveryDescribeExportConfigurationsInput, config: AwsConfig): AwsDiscoveryDescribeExportConfigurationsOutput
  describeExportTasks(input: AwsDiscoveryDescribeExportTasksInput, config: AwsConfig): AwsDiscoveryDescribeExportTasksOutput
  describeImportTasks(input: AwsDiscoveryDescribeImportTasksInput, config: AwsConfig): AwsDiscoveryDescribeImportTasksOutput
  describeTags(input: AwsDiscoveryDescribeTagsInput, config: AwsConfig): AwsDiscoveryDescribeTagsOutput
  disassociateConfigurationItemsFromApplication(input: AwsDiscoveryDisassociateConfigurationItemsFromApplicationInput!, config: AwsConfig): JSON
  exportConfigurations(config: AwsConfig): AwsDiscoveryExportConfigurationsOutput
  getDiscoverySummary(input: JSON, config: AwsConfig): AwsDiscoveryGetDiscoverySummaryOutput
  listConfigurations(input: AwsDiscoveryListConfigurationsInput!, config: AwsConfig): AwsDiscoveryListConfigurationsOutput
  listServerNeighbors(input: AwsDiscoveryListServerNeighborsInput!, config: AwsConfig): AwsDiscoveryListServerNeighborsOutput
  startContinuousExport(input: JSON, config: AwsConfig): AwsDiscoveryStartContinuousExportOutput
  startDataCollectionByAgentIds(input: AwsDiscoveryStartDataCollectionByAgentIdsInput!, config: AwsConfig): AwsDiscoveryStartDataCollectionByAgentIdsOutput
  startExportTask(input: AwsDiscoveryStartExportTaskInput, config: AwsConfig): AwsDiscoveryStartExportTaskOutput
  startImportTask(input: AwsDiscoveryStartImportTaskInput!, config: AwsConfig): AwsDiscoveryStartImportTaskOutput
  stopContinuousExport(input: AwsDiscoveryStopContinuousExportInput!, config: AwsConfig): AwsDiscoveryStopContinuousExportOutput
  stopDataCollectionByAgentIds(input: AwsDiscoveryStopDataCollectionByAgentIdsInput!, config: AwsConfig): AwsDiscoveryStopDataCollectionByAgentIdsOutput
  updateApplication(input: AwsDiscoveryUpdateApplicationInput!, config: AwsConfig): JSON
}

input AwsDiscoveryAssociateConfigurationItemsToApplicationInput {
  applicationConfigurationId: String!
  configurationIds: [String]!
}

type AwsDiscoveryBatchDeleteImportDataOutput {
  errors: [AwsDiscoveryBatchDeleteImportDataOutputErrors]
}

type AwsDiscoveryBatchDeleteImportDataOutputErrors {
  importTaskId: String
  errorCode: String
  errorDescription: String
}

input AwsDiscoveryBatchDeleteImportDataInput {
  importTaskIds: [String]!
}

type AwsDiscoveryCreateApplicationOutput {
  configurationId: String
}

input AwsDiscoveryCreateApplicationInput {
  name: String!
  description: String
}

input AwsDiscoveryCreateTagsInput {
  configurationIds: [String]!
  tags: [AwsDiscoverySiInput]!
}

input AwsDiscoverySiInput {
  key: String!
  value: String!
}

input AwsDiscoveryDeleteApplicationsInput {
  configurationIds: [String]!
}

input AwsDiscoveryDeleteTagsInput {
  configurationIds: [String]!
  tags: [AwsDiscoverySiInput]
}

type AwsDiscoveryDescribeAgentsOutput {
  agentsInfo: [AwsDiscoveryDescribeAgentsOutputAgentsInfo]
  nextToken: String
}

type AwsDiscoveryDescribeAgentsOutputAgentsInfo {
  agentId: String
  hostName: String
  agentNetworkInfoList: [AwsDiscoveryDescribeAgentsOutputAgentsInfoAgentNetworkInfoList]
  connectorId: String
  version: String
  health: String
  lastHealthPingTime: String
  collectionStatus: String
  agentType: String
  registeredTime: String
}

type AwsDiscoveryDescribeAgentsOutputAgentsInfoAgentNetworkInfoList {
  ipAddress: String
  macAddress: String
}

input AwsDiscoveryDescribeAgentsInput {
  agentIds: [String]
  filters: [AwsDiscoverySvInput]
  maxResults: Int
  nextToken: String
}

input AwsDiscoverySvInput {
  name: String!
  values: [String]!
  condition: String!
}

type AwsDiscoveryDescribeConfigurationsOutput {
  configurations: [JSON]
}

input AwsDiscoveryDescribeConfigurationsInput {
  configurationIds: [String]!
}

type AwsDiscoveryDescribeContinuousExportsOutput {
  descriptions: [AwsDiscoveryDescribeContinuousExportsOutputDescriptions]
  nextToken: String
}

type AwsDiscoveryDescribeContinuousExportsOutputDescriptions {
  exportId: String
  status: String
  statusDetail: String
  s3Bucket: String
  startTime: Date
  stopTime: Date
  dataSource: String
  schemaStorageConfig: JSON
}

input AwsDiscoveryDescribeContinuousExportsInput {
  exportIds: [String]
  maxResults: Int
  nextToken: String
}

type AwsDiscoveryDescribeExportConfigurationsOutput {
  exportsInfo: [AwsDiscoveryS1t]
  nextToken: String
}

type AwsDiscoveryS1t {
  exportId: String!
  exportStatus: String!
  statusMessage: String!
  configurationsDownloadUrl: String
  exportRequestTime: Date!
  isTruncated: Boolean
  requestedStartTime: Date
  requestedEndTime: Date
}

input AwsDiscoveryDescribeExportConfigurationsInput {
  exportIds: [String]
  maxResults: Int
  nextToken: String
}

type AwsDiscoveryDescribeExportTasksOutput {
  exportsInfo: [AwsDiscoveryS1t]
  nextToken: String
}

input AwsDiscoveryDescribeExportTasksInput {
  exportIds: [String]
  filters: [AwsDiscoveryS21Input]
  maxResults: Int
  nextToken: String
}

input AwsDiscoveryS21Input {
  name: String!
  values: [String]!
  condition: String!
}

type AwsDiscoveryDescribeImportTasksOutput {
  nextToken: String
  tasks: [AwsDiscoveryS2e]
}

type AwsDiscoveryS2e {
  importTaskId: String
  clientRequestToken: String
  name: String
  importUrl: String
  status: String
  importRequestTime: Date
  importCompletionTime: Date
  importDeletedTime: Date
  serverImportSuccess: Int
  serverImportFailure: Int
  applicationImportSuccess: Int
  applicationImportFailure: Int
  errorsAndFailedEntriesZip: String
}

input AwsDiscoveryDescribeImportTasksInput {
  filters: [AwsDiscoveryDescribeImportTasksFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsDiscoveryDescribeImportTasksFiltersInput {
  name: String
  values: [String]
}

type AwsDiscoveryDescribeTagsOutput {
  tags: [AwsDiscoveryDescribeTagsOutputTags]
  nextToken: String
}

type AwsDiscoveryDescribeTagsOutputTags {
  configurationType: String
  configurationId: String
  key: String
  value: String
  timeOfCreation: Date
}

input AwsDiscoveryDescribeTagsInput {
  filters: [AwsDiscoveryDescribeTagsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsDiscoveryDescribeTagsFiltersInput {
  name: String!
  values: [String]!
}

input AwsDiscoveryDisassociateConfigurationItemsFromApplicationInput {
  applicationConfigurationId: String!
  configurationIds: [String]!
}

type AwsDiscoveryExportConfigurationsOutput {
  exportId: String
}

type AwsDiscoveryGetDiscoverySummaryOutput {
  servers: JSON
  applications: JSON
  serversMappedToApplications: JSON
  serversMappedtoTags: JSON
  agentSummary: AwsDiscoveryGetDiscoverySummaryOutputAgentSummary
  connectorSummary: AwsDiscoveryGetDiscoverySummaryOutputConnectorSummary
}

type AwsDiscoveryGetDiscoverySummaryOutputAgentSummary {
  activeAgents: Int!
  healthyAgents: Int!
  blackListedAgents: Int!
  shutdownAgents: Int!
  unhealthyAgents: Int!
  totalAgents: Int!
  unknownAgents: Int!
}

type AwsDiscoveryGetDiscoverySummaryOutputConnectorSummary {
  activeConnectors: Int!
  healthyConnectors: Int!
  blackListedConnectors: Int!
  shutdownConnectors: Int!
  unhealthyConnectors: Int!
  totalConnectors: Int!
  unknownConnectors: Int!
}

type AwsDiscoveryListConfigurationsOutput {
  configurations: [JSON]
  nextToken: String
}

input AwsDiscoveryListConfigurationsInput {
  configurationType: String!
  filters: [AwsDiscoverySvInput]
  maxResults: Int
  nextToken: String
  orderBy: [AwsDiscoveryListConfigurationsOrderByInput]
}

input AwsDiscoveryListConfigurationsOrderByInput {
  fieldName: String!
  sortOrder: String
}

type AwsDiscoveryListServerNeighborsOutput {
  neighbors: [AwsDiscoveryListServerNeighborsOutputNeighbors]!
  nextToken: String
  knownDependencyCount: JSON
}

type AwsDiscoveryListServerNeighborsOutputNeighbors {
  sourceServerId: String!
  destinationServerId: String!
  destinationPort: Int
  transportProtocol: String
  connectionsCount: JSON!
}

input AwsDiscoveryListServerNeighborsInput {
  configurationId: String!
  portInformationNeeded: Boolean
  neighborConfigurationIds: [String]
  maxResults: Int
  nextToken: String
}

type AwsDiscoveryStartContinuousExportOutput {
  exportId: String
  s3Bucket: String
  startTime: Date
  dataSource: String
  schemaStorageConfig: JSON
}

type AwsDiscoveryStartDataCollectionByAgentIdsOutput {
  agentsConfigurationStatus: [AwsDiscoveryS3f]
}

type AwsDiscoveryS3f {
  agentId: String
  operationSucceeded: Boolean
  description: String
}

input AwsDiscoveryStartDataCollectionByAgentIdsInput {
  agentIds: [String]!
}

type AwsDiscoveryStartExportTaskOutput {
  exportId: String
}

input AwsDiscoveryStartExportTaskInput {
  exportDataFormat: [String]
  filters: [AwsDiscoveryS21Input]
  startTime: Date
  endTime: Date
}

type AwsDiscoveryStartImportTaskOutput {
  task: AwsDiscoveryS2e
}

input AwsDiscoveryStartImportTaskInput {
  clientRequestToken: String
  name: String!
  importUrl: String!
}

type AwsDiscoveryStopContinuousExportOutput {
  startTime: Date
  stopTime: Date
}

input AwsDiscoveryStopContinuousExportInput {
  exportId: String!
}

type AwsDiscoveryStopDataCollectionByAgentIdsOutput {
  agentsConfigurationStatus: [AwsDiscoveryS3f]
}

input AwsDiscoveryStopDataCollectionByAgentIdsInput {
  agentIds: [String]!
}

input AwsDiscoveryUpdateApplicationInput {
  configurationId: String!
  name: String
  description: String
}

"""Amazon DocumentDB with MongoDB compatibility (2014-10-31)"""
type AwsDocDB {
  addSourceIdentifierToSubscription(input: AwsDocDBAddSourceIdentifierToSubscriptionInput!, config: AwsConfig): AwsDocDBAddSourceIdentifierToSubscriptionOutput
  addTagsToResource(input: AwsDocDBAddTagsToResourceInput!, config: AwsConfig): JSON
  applyPendingMaintenanceAction(input: AwsDocDBApplyPendingMaintenanceActionInput!, config: AwsConfig): AwsDocDBApplyPendingMaintenanceActionOutput
  copyDBClusterParameterGroup(input: AwsDocDBCopyDBClusterParameterGroupInput!, config: AwsConfig): AwsDocDBCopyDBClusterParameterGroupOutput
  copyDBClusterSnapshot(input: AwsDocDBCopyDBClusterSnapshotInput!, config: AwsConfig): AwsDocDBCopyDBClusterSnapshotOutput
  createDBCluster(input: AwsDocDBCreateDBClusterInput!, config: AwsConfig): AwsDocDBCreateDBClusterOutput
  createDBClusterParameterGroup(input: AwsDocDBCreateDBClusterParameterGroupInput!, config: AwsConfig): AwsDocDBCreateDBClusterParameterGroupOutput
  createDBClusterSnapshot(input: AwsDocDBCreateDBClusterSnapshotInput!, config: AwsConfig): AwsDocDBCreateDBClusterSnapshotOutput
  createDBInstance(input: AwsDocDBCreateDBInstanceInput!, config: AwsConfig): AwsDocDBCreateDBInstanceOutput
  createDBSubnetGroup(input: AwsDocDBCreateDBSubnetGroupInput!, config: AwsConfig): AwsDocDBCreateDBSubnetGroupOutput
  createEventSubscription(input: AwsDocDBCreateEventSubscriptionInput!, config: AwsConfig): AwsDocDBCreateEventSubscriptionOutput
  createGlobalCluster(input: AwsDocDBCreateGlobalClusterInput!, config: AwsConfig): AwsDocDBCreateGlobalClusterOutput
  deleteDBCluster(input: AwsDocDBDeleteDBClusterInput!, config: AwsConfig): AwsDocDBDeleteDBClusterOutput
  deleteDBClusterParameterGroup(input: AwsDocDBDeleteDBClusterParameterGroupInput!, config: AwsConfig): JSON
  deleteDBClusterSnapshot(input: AwsDocDBDeleteDBClusterSnapshotInput!, config: AwsConfig): AwsDocDBDeleteDBClusterSnapshotOutput
  deleteDBInstance(input: AwsDocDBDeleteDBInstanceInput!, config: AwsConfig): AwsDocDBDeleteDBInstanceOutput
  deleteDBSubnetGroup(input: AwsDocDBDeleteDBSubnetGroupInput!, config: AwsConfig): JSON
  deleteEventSubscription(input: AwsDocDBDeleteEventSubscriptionInput!, config: AwsConfig): AwsDocDBDeleteEventSubscriptionOutput
  deleteGlobalCluster(input: AwsDocDBDeleteGlobalClusterInput!, config: AwsConfig): AwsDocDBDeleteGlobalClusterOutput
  describeCertificates(input: AwsDocDBDescribeCertificatesInput, config: AwsConfig): AwsDocDBDescribeCertificatesOutput
  describeDBClusterParameterGroups(input: AwsDocDBDescribeDBClusterParameterGroupsInput, config: AwsConfig): AwsDocDBDescribeDBClusterParameterGroupsOutput
  describeDBClusterParameters(input: AwsDocDBDescribeDBClusterParametersInput!, config: AwsConfig): AwsDocDBDescribeDBClusterParametersOutput
  describeDBClusterSnapshotAttributes(input: AwsDocDBDescribeDBClusterSnapshotAttributesInput!, config: AwsConfig): AwsDocDBDescribeDBClusterSnapshotAttributesOutput
  describeDBClusterSnapshots(input: AwsDocDBDescribeDBClusterSnapshotsInput, config: AwsConfig): AwsDocDBDescribeDBClusterSnapshotsOutput
  describeDBClusters(input: AwsDocDBDescribeDBClustersInput, config: AwsConfig): AwsDocDBDescribeDBClustersOutput
  describeDBEngineVersions(input: AwsDocDBDescribeDBEngineVersionsInput, config: AwsConfig): AwsDocDBDescribeDBEngineVersionsOutput
  describeDBInstances(input: AwsDocDBDescribeDBInstancesInput, config: AwsConfig): AwsDocDBDescribeDBInstancesOutput
  describeDBSubnetGroups(input: AwsDocDBDescribeDBSubnetGroupsInput, config: AwsConfig): AwsDocDBDescribeDBSubnetGroupsOutput
  describeEngineDefaultClusterParameters(input: AwsDocDBDescribeEngineDefaultClusterParametersInput!, config: AwsConfig): AwsDocDBDescribeEngineDefaultClusterParametersOutput
  describeEventCategories(input: AwsDocDBDescribeEventCategoriesInput, config: AwsConfig): AwsDocDBDescribeEventCategoriesOutput
  describeEventSubscriptions(input: AwsDocDBDescribeEventSubscriptionsInput, config: AwsConfig): AwsDocDBDescribeEventSubscriptionsOutput
  describeEvents(input: AwsDocDBDescribeEventsInput, config: AwsConfig): AwsDocDBDescribeEventsOutput
  describeGlobalClusters(input: AwsDocDBDescribeGlobalClustersInput, config: AwsConfig): AwsDocDBDescribeGlobalClustersOutput
  describeOrderableDBInstanceOptions(input: AwsDocDBDescribeOrderableDBInstanceOptionsInput!, config: AwsConfig): AwsDocDBDescribeOrderableDBInstanceOptionsOutput
  describePendingMaintenanceActions(input: AwsDocDBDescribePendingMaintenanceActionsInput, config: AwsConfig): AwsDocDBDescribePendingMaintenanceActionsOutput
  failoverDBCluster(input: AwsDocDBFailoverDBClusterInput, config: AwsConfig): AwsDocDBFailoverDBClusterOutput
  listTagsForResource(input: AwsDocDBListTagsForResourceInput!, config: AwsConfig): AwsDocDBListTagsForResourceOutput
  modifyDBCluster(input: AwsDocDBModifyDBClusterInput!, config: AwsConfig): AwsDocDBModifyDBClusterOutput
  modifyDBClusterParameterGroup(input: AwsDocDBModifyDBClusterParameterGroupInput!, config: AwsConfig): JSON
  modifyDBClusterSnapshotAttribute(input: AwsDocDBModifyDBClusterSnapshotAttributeInput!, config: AwsConfig): AwsDocDBModifyDBClusterSnapshotAttributeOutput
  modifyDBInstance(input: AwsDocDBModifyDBInstanceInput!, config: AwsConfig): AwsDocDBModifyDBInstanceOutput
  modifyDBSubnetGroup(input: AwsDocDBModifyDBSubnetGroupInput!, config: AwsConfig): AwsDocDBModifyDBSubnetGroupOutput
  modifyEventSubscription(input: AwsDocDBModifyEventSubscriptionInput!, config: AwsConfig): AwsDocDBModifyEventSubscriptionOutput
  modifyGlobalCluster(input: AwsDocDBModifyGlobalClusterInput!, config: AwsConfig): AwsDocDBModifyGlobalClusterOutput
  rebootDBInstance(input: AwsDocDBRebootDBInstanceInput!, config: AwsConfig): AwsDocDBRebootDBInstanceOutput
  removeFromGlobalCluster(input: AwsDocDBRemoveFromGlobalClusterInput!, config: AwsConfig): AwsDocDBRemoveFromGlobalClusterOutput
  removeSourceIdentifierFromSubscription(input: AwsDocDBRemoveSourceIdentifierFromSubscriptionInput!, config: AwsConfig): AwsDocDBRemoveSourceIdentifierFromSubscriptionOutput
  removeTagsFromResource(input: AwsDocDBRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetDBClusterParameterGroup(input: AwsDocDBResetDBClusterParameterGroupInput!, config: AwsConfig): JSON
  restoreDBClusterFromSnapshot(input: AwsDocDBRestoreDBClusterFromSnapshotInput!, config: AwsConfig): AwsDocDBRestoreDBClusterFromSnapshotOutput
  restoreDBClusterToPointInTime(input: AwsDocDBRestoreDBClusterToPointInTimeInput!, config: AwsConfig): AwsDocDBRestoreDBClusterToPointInTimeOutput
  startDBCluster(input: AwsDocDBStartDBClusterInput!, config: AwsConfig): AwsDocDBStartDBClusterOutput
  stopDBCluster(input: AwsDocDBStopDBClusterInput!, config: AwsConfig): AwsDocDBStopDBClusterOutput
}

type AwsDocDBAddSourceIdentifierToSubscriptionOutput {
  EventSubscription: AwsDocDBS4
}

type AwsDocDBS4 {
  CustomerAwsId: String
  CustSubscriptionId: String
  SnsTopicArn: String
  Status: String
  SubscriptionCreationTime: String
  SourceType: String
  SourceIdsList: [String]
  EventCategoriesList: [String]
  Enabled: Boolean
  EventSubscriptionArn: String
}

input AwsDocDBAddSourceIdentifierToSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsDocDBAddTagsToResourceInput {
  ResourceName: String!
  Tags: [AwsDocDBS9Input]!
}

input AwsDocDBS9Input {
  Key: String
  Value: String
}

type AwsDocDBApplyPendingMaintenanceActionOutput {
  ResourcePendingMaintenanceActions: AwsDocDBSd
}

type AwsDocDBSd {
  ResourceIdentifier: String
  PendingMaintenanceActionDetails: [AwsDocDBSdPendingMaintenanceActionDetails]
}

type AwsDocDBSdPendingMaintenanceActionDetails {
  Action: String
  AutoAppliedAfterDate: Date
  ForcedApplyDate: Date
  OptInStatus: String
  CurrentApplyDate: Date
  Description: String
}

input AwsDocDBApplyPendingMaintenanceActionInput {
  ResourceIdentifier: String!
  ApplyAction: String!
  OptInType: String!
}

type AwsDocDBCopyDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsDocDBSj
}

type AwsDocDBSj {
  DBClusterParameterGroupName: String
  DBParameterGroupFamily: String
  Description: String
  DBClusterParameterGroupArn: String
}

input AwsDocDBCopyDBClusterParameterGroupInput {
  SourceDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupDescription: String!
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCopyDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsDocDBSn
}

type AwsDocDBSn {
  AvailabilityZones: [String]
  DBClusterSnapshotIdentifier: String
  DBClusterIdentifier: String
  SnapshotCreateTime: Date
  Engine: String
  Status: String
  Port: Int
  VpcId: String
  ClusterCreateTime: Date
  MasterUsername: String
  EngineVersion: String
  SnapshotType: String
  PercentProgress: Int
  StorageEncrypted: Boolean
  KmsKeyId: String
  DBClusterSnapshotArn: String
  SourceDBClusterSnapshotArn: String
}

input AwsDocDBCopyDBClusterSnapshotInput {
  SourceDBClusterSnapshotIdentifier: String!
  TargetDBClusterSnapshotIdentifier: String!
  KmsKeyId: String
  PreSignedUrl: String
  CopyTags: Boolean
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCreateDBClusterOutput {
  DBCluster: AwsDocDBSw
}

type AwsDocDBSw {
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  DBClusterIdentifier: String
  DBClusterParameterGroup: String
  DBSubnetGroup: String
  Status: String
  PercentProgress: String
  EarliestRestorableTime: Date
  Endpoint: String
  ReaderEndpoint: String
  MultiAZ: Boolean
  Engine: String
  EngineVersion: String
  LatestRestorableTime: Date
  Port: Int
  MasterUsername: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReplicationSourceIdentifier: String
  ReadReplicaIdentifiers: [String]
  DBClusterMembers: [AwsDocDBSwDBClusterMembers]
  VpcSecurityGroups: [AwsDocDBS10]
  HostedZoneId: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterResourceId: String
  DBClusterArn: String
  AssociatedRoles: [AwsDocDBSwAssociatedRoles]
  ClusterCreateTime: Date
  EnabledCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsDocDBSwDBClusterMembers {
  DBInstanceIdentifier: String
  IsClusterWriter: Boolean
  DBClusterParameterGroupStatus: String
  PromotionTier: Int
}

type AwsDocDBS10 {
  VpcSecurityGroupId: String
  Status: String
}

type AwsDocDBSwAssociatedRoles {
  RoleArn: String
  Status: String
}

input AwsDocDBCreateDBClusterInput {
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  DBClusterIdentifier: String!
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  DBSubnetGroupName: String
  Engine: String!
  EngineVersion: String
  Port: Int
  MasterUsername: String
  MasterUserPassword: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  Tags: [AwsDocDBS9Input]
  StorageEncrypted: Boolean
  KmsKeyId: String
  PreSignedUrl: String
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
  GlobalClusterIdentifier: String
}

type AwsDocDBCreateDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsDocDBSj
}

input AwsDocDBCreateDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  DBParameterGroupFamily: String!
  Description: String!
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCreateDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsDocDBSn
}

input AwsDocDBCreateDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
  DBClusterIdentifier: String!
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCreateDBInstanceOutput {
  DBInstance: AwsDocDBS1a
}

type AwsDocDBS1a {
  DBInstanceIdentifier: String
  DBInstanceClass: String
  Engine: String
  DBInstanceStatus: String
  Endpoint: AwsDocDBS1aEndpoint
  InstanceCreateTime: Date
  PreferredBackupWindow: String
  BackupRetentionPeriod: Int
  VpcSecurityGroups: [AwsDocDBS10]
  AvailabilityZone: String
  DBSubnetGroup: AwsDocDBS1c
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsDocDBS1aPendingModifiedValues
  LatestRestorableTime: Date
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  PubliclyAccessible: Boolean
  StatusInfos: [AwsDocDBS1aStatusInfos]
  DBClusterIdentifier: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbiResourceId: String
  CACertificateIdentifier: String
  PromotionTier: Int
  DBInstanceArn: String
  EnabledCloudwatchLogsExports: [String]
}

type AwsDocDBS1aEndpoint {
  Address: String
  Port: Int
  HostedZoneId: String
}

type AwsDocDBS1c {
  DBSubnetGroupName: String
  DBSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsDocDBS1cSubnets]
  DBSubnetGroupArn: String
}

type AwsDocDBS1cSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsDocDBS1f
  SubnetStatus: String
}

type AwsDocDBS1f {
  Name: String
}

type AwsDocDBS1aPendingModifiedValues {
  DBInstanceClass: String
  AllocatedStorage: Int
  MasterUserPassword: String
  Port: Int
  BackupRetentionPeriod: Int
  MultiAZ: Boolean
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  DBInstanceIdentifier: String
  StorageType: String
  CACertificateIdentifier: String
  DBSubnetGroupName: String
  PendingCloudwatchLogsExports: AwsDocDBS1aPendingModifiedValuesPendingCloudwatchLogsExports
}

type AwsDocDBS1aPendingModifiedValuesPendingCloudwatchLogsExports {
  LogTypesToEnable: [String]
  LogTypesToDisable: [String]
}

type AwsDocDBS1aStatusInfos {
  StatusType: String
  Normal: Boolean
  Status: String
  Message: String
}

input AwsDocDBCreateDBInstanceInput {
  DBInstanceIdentifier: String!
  DBInstanceClass: String!
  Engine: String!
  AvailabilityZone: String
  PreferredMaintenanceWindow: String
  AutoMinorVersionUpgrade: Boolean
  Tags: [AwsDocDBS9Input]
  DBClusterIdentifier: String!
  PromotionTier: Int
}

type AwsDocDBCreateDBSubnetGroupOutput {
  DBSubnetGroup: AwsDocDBS1c
}

input AwsDocDBCreateDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String!
  SubnetIds: [String]!
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCreateEventSubscriptionOutput {
  EventSubscription: AwsDocDBS4
}

input AwsDocDBCreateEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String!
  SourceType: String
  EventCategories: [String]
  SourceIds: [String]
  Enabled: Boolean
  Tags: [AwsDocDBS9Input]
}

type AwsDocDBCreateGlobalClusterOutput {
  GlobalCluster: AwsDocDBS1r
}

type AwsDocDBS1r {
  GlobalClusterIdentifier: String
  GlobalClusterResourceId: String
  GlobalClusterArn: String
  Status: String
  Engine: String
  EngineVersion: String
  DatabaseName: String
  StorageEncrypted: Boolean
  DeletionProtection: Boolean
  GlobalClusterMembers: [AwsDocDBS1rGlobalClusterMembers]
}

type AwsDocDBS1rGlobalClusterMembers {
  DBClusterArn: String
  Readers: [String]
  IsWriter: Boolean
}

input AwsDocDBCreateGlobalClusterInput {
  GlobalClusterIdentifier: String!
  SourceDBClusterIdentifier: String
  Engine: String
  EngineVersion: String
  DeletionProtection: Boolean
  DatabaseName: String
  StorageEncrypted: Boolean
}

type AwsDocDBDeleteDBClusterOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBDeleteDBClusterInput {
  DBClusterIdentifier: String!
  SkipFinalSnapshot: Boolean
  FinalDBSnapshotIdentifier: String
}

input AwsDocDBDeleteDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
}

type AwsDocDBDeleteDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsDocDBSn
}

input AwsDocDBDeleteDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsDocDBDeleteDBInstanceOutput {
  DBInstance: AwsDocDBS1a
}

input AwsDocDBDeleteDBInstanceInput {
  DBInstanceIdentifier: String!
}

input AwsDocDBDeleteDBSubnetGroupInput {
  DBSubnetGroupName: String!
}

type AwsDocDBDeleteEventSubscriptionOutput {
  EventSubscription: AwsDocDBS4
}

input AwsDocDBDeleteEventSubscriptionInput {
  SubscriptionName: String!
}

type AwsDocDBDeleteGlobalClusterOutput {
  GlobalCluster: AwsDocDBS1r
}

input AwsDocDBDeleteGlobalClusterInput {
  GlobalClusterIdentifier: String!
}

type AwsDocDBDescribeCertificatesOutput {
  Certificates: [AwsDocDBDescribeCertificatesOutputCertificates]
  Marker: String
}

type AwsDocDBDescribeCertificatesOutputCertificates {
  CertificateIdentifier: String
  CertificateType: String
  Thumbprint: String
  ValidFrom: Date
  ValidTill: Date
  CertificateArn: String
}

input AwsDocDBDescribeCertificatesInput {
  CertificateIdentifier: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

input AwsDocDBS28Input {
  Name: String!
  Values: [String]!
}

type AwsDocDBDescribeDBClusterParameterGroupsOutput {
  Marker: String
  DBClusterParameterGroups: [AwsDocDBSj]
}

input AwsDocDBDescribeDBClusterParameterGroupsInput {
  DBClusterParameterGroupName: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeDBClusterParametersOutput {
  Parameters: [AwsDocDBS2j]
  Marker: String
}

type AwsDocDBS2j {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
}

input AwsDocDBDescribeDBClusterParametersInput {
  DBClusterParameterGroupName: String!
  Source: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeDBClusterSnapshotAttributesOutput {
  DBClusterSnapshotAttributesResult: AwsDocDBS2o
}

type AwsDocDBS2o {
  DBClusterSnapshotIdentifier: String
  DBClusterSnapshotAttributes: [AwsDocDBS2oDBClusterSnapshotAttributes]
}

type AwsDocDBS2oDBClusterSnapshotAttributes {
  AttributeName: String
  AttributeValues: [String]
}

input AwsDocDBDescribeDBClusterSnapshotAttributesInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsDocDBDescribeDBClusterSnapshotsOutput {
  Marker: String
  DBClusterSnapshots: [AwsDocDBSn]
}

input AwsDocDBDescribeDBClusterSnapshotsInput {
  DBClusterIdentifier: String
  DBClusterSnapshotIdentifier: String
  SnapshotType: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
  IncludeShared: Boolean
  IncludePublic: Boolean
}

type AwsDocDBDescribeDBClustersOutput {
  Marker: String
  DBClusters: [AwsDocDBSw]
}

input AwsDocDBDescribeDBClustersInput {
  DBClusterIdentifier: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeDBEngineVersionsOutput {
  Marker: String
  DBEngineVersions: [AwsDocDBDescribeDBEngineVersionsOutputDBEngineVersions]
}

type AwsDocDBDescribeDBEngineVersionsOutputDBEngineVersions {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  DBEngineDescription: String
  DBEngineVersionDescription: String
  ValidUpgradeTarget: [AwsDocDBDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget]
  ExportableLogTypes: [String]
  SupportsLogExportsToCloudwatchLogs: Boolean
}

type AwsDocDBDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget {
  Engine: String
  EngineVersion: String
  Description: String
  AutoUpgrade: Boolean
  IsMajorVersionUpgrade: Boolean
}

input AwsDocDBDescribeDBEngineVersionsInput {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
  DefaultOnly: Boolean
  ListSupportedCharacterSets: Boolean
  ListSupportedTimezones: Boolean
}

type AwsDocDBDescribeDBInstancesOutput {
  Marker: String
  DBInstances: [AwsDocDBS1a]
}

input AwsDocDBDescribeDBInstancesInput {
  DBInstanceIdentifier: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeDBSubnetGroupsOutput {
  Marker: String
  DBSubnetGroups: [AwsDocDBS1c]
}

input AwsDocDBDescribeDBSubnetGroupsInput {
  DBSubnetGroupName: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeEngineDefaultClusterParametersOutput {
  EngineDefaults: AwsDocDBDescribeEngineDefaultClusterParametersOutputEngineDefaults
}

type AwsDocDBDescribeEngineDefaultClusterParametersOutputEngineDefaults {
  DBParameterGroupFamily: String
  Marker: String
  Parameters: [AwsDocDBS2j]
}

input AwsDocDBDescribeEngineDefaultClusterParametersInput {
  DBParameterGroupFamily: String!
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeEventCategoriesOutput {
  EventCategoriesMapList: [AwsDocDBDescribeEventCategoriesOutputEventCategoriesMapList]
}

type AwsDocDBDescribeEventCategoriesOutputEventCategoriesMapList {
  SourceType: String
  EventCategories: [String]
}

input AwsDocDBDescribeEventCategoriesInput {
  SourceType: String
  Filters: [AwsDocDBS28Input]
}

type AwsDocDBDescribeEventSubscriptionsOutput {
  Marker: String
  EventSubscriptionsList: [AwsDocDBS4]
}

input AwsDocDBDescribeEventSubscriptionsInput {
  SubscriptionName: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeEventsOutput {
  Marker: String
  Events: [AwsDocDBDescribeEventsOutputEvents]
}

type AwsDocDBDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  EventCategories: [String]
  Date: Date
  SourceArn: String
}

input AwsDocDBDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  EventCategories: [String]
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeGlobalClustersOutput {
  Marker: String
  GlobalClusters: [AwsDocDBS1r]
}

input AwsDocDBDescribeGlobalClustersInput {
  GlobalClusterIdentifier: String
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribeOrderableDBInstanceOptionsOutput {
  OrderableDBInstanceOptions: [AwsDocDBDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions]
  Marker: String
}

type AwsDocDBDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions {
  Engine: String
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  AvailabilityZones: [AwsDocDBS1f]
  Vpc: Boolean
}

input AwsDocDBDescribeOrderableDBInstanceOptionsInput {
  Engine: String!
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  Vpc: Boolean
  Filters: [AwsDocDBS28Input]
  MaxRecords: Int
  Marker: String
}

type AwsDocDBDescribePendingMaintenanceActionsOutput {
  PendingMaintenanceActions: [AwsDocDBSd]
  Marker: String
}

input AwsDocDBDescribePendingMaintenanceActionsInput {
  ResourceIdentifier: String
  Filters: [AwsDocDBS28Input]
  Marker: String
  MaxRecords: Int
}

type AwsDocDBFailoverDBClusterOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBFailoverDBClusterInput {
  DBClusterIdentifier: String
  TargetDBInstanceIdentifier: String
}

type AwsDocDBListTagsForResourceOutput {
  TagList: [AwsDocDBS9]
}

type AwsDocDBS9 {
  Key: String
  Value: String
}

input AwsDocDBListTagsForResourceInput {
  ResourceName: String!
  Filters: [AwsDocDBS28Input]
}

type AwsDocDBModifyDBClusterOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBModifyDBClusterInput {
  DBClusterIdentifier: String!
  NewDBClusterIdentifier: String
  ApplyImmediately: Boolean
  BackupRetentionPeriod: Int
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  Port: Int
  MasterUserPassword: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  CloudwatchLogsExportConfiguration: AwsDocDBModifyDBClusterCloudwatchLogsExportConfigurationInput
  EngineVersion: String
  DeletionProtection: Boolean
}

input AwsDocDBModifyDBClusterCloudwatchLogsExportConfigurationInput {
  EnableLogTypes: [String]
  DisableLogTypes: [String]
}

input AwsDocDBModifyDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  Parameters: [AwsDocDBS2jInput]!
}

input AwsDocDBS2jInput {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
}

type AwsDocDBModifyDBClusterSnapshotAttributeOutput {
  DBClusterSnapshotAttributesResult: AwsDocDBS2o
}

input AwsDocDBModifyDBClusterSnapshotAttributeInput {
  DBClusterSnapshotIdentifier: String!
  AttributeName: String!
  ValuesToAdd: [String]
  ValuesToRemove: [String]
}

type AwsDocDBModifyDBInstanceOutput {
  DBInstance: AwsDocDBS1a
}

input AwsDocDBModifyDBInstanceInput {
  DBInstanceIdentifier: String!
  DBInstanceClass: String
  ApplyImmediately: Boolean
  PreferredMaintenanceWindow: String
  AutoMinorVersionUpgrade: Boolean
  NewDBInstanceIdentifier: String
  CACertificateIdentifier: String
  PromotionTier: Int
}

type AwsDocDBModifyDBSubnetGroupOutput {
  DBSubnetGroup: AwsDocDBS1c
}

input AwsDocDBModifyDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String
  SubnetIds: [String]!
}

type AwsDocDBModifyEventSubscriptionOutput {
  EventSubscription: AwsDocDBS4
}

input AwsDocDBModifyEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String
  SourceType: String
  EventCategories: [String]
  Enabled: Boolean
}

type AwsDocDBModifyGlobalClusterOutput {
  GlobalCluster: AwsDocDBS1r
}

input AwsDocDBModifyGlobalClusterInput {
  GlobalClusterIdentifier: String!
  NewGlobalClusterIdentifier: String
  DeletionProtection: Boolean
}

type AwsDocDBRebootDBInstanceOutput {
  DBInstance: AwsDocDBS1a
}

input AwsDocDBRebootDBInstanceInput {
  DBInstanceIdentifier: String!
  ForceFailover: Boolean
}

type AwsDocDBRemoveFromGlobalClusterOutput {
  GlobalCluster: AwsDocDBS1r
}

input AwsDocDBRemoveFromGlobalClusterInput {
  GlobalClusterIdentifier: String!
  DbClusterIdentifier: String!
}

type AwsDocDBRemoveSourceIdentifierFromSubscriptionOutput {
  EventSubscription: AwsDocDBS4
}

input AwsDocDBRemoveSourceIdentifierFromSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsDocDBRemoveTagsFromResourceInput {
  ResourceName: String!
  TagKeys: [String]!
}

input AwsDocDBResetDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsDocDBS2jInput]
}

type AwsDocDBRestoreDBClusterFromSnapshotOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBRestoreDBClusterFromSnapshotInput {
  AvailabilityZones: [String]
  DBClusterIdentifier: String!
  SnapshotIdentifier: String!
  Engine: String!
  EngineVersion: String
  Port: Int
  DBSubnetGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsDocDBS9Input]
  KmsKeyId: String
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsDocDBRestoreDBClusterToPointInTimeOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBRestoreDBClusterToPointInTimeInput {
  DBClusterIdentifier: String!
  SourceDBClusterIdentifier: String!
  RestoreToTime: Date
  UseLatestRestorableTime: Boolean
  Port: Int
  DBSubnetGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsDocDBS9Input]
  KmsKeyId: String
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsDocDBStartDBClusterOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBStartDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsDocDBStopDBClusterOutput {
  DBCluster: AwsDocDBSw
}

input AwsDocDBStopDBClusterInput {
  DBClusterIdentifier: String!
}

"""Amazon DynamoDB (2012-08-10)"""
type AwsDynamoDB {
  batchExecuteStatement(input: AwsDynamoDBBatchExecuteStatementInput!, config: AwsConfig): AwsDynamoDBBatchExecuteStatementOutput
  batchGetItem(input: AwsDynamoDBBatchGetItemInput!, config: AwsConfig): AwsDynamoDBBatchGetItemOutput
  batchWriteItem(input: AwsDynamoDBBatchWriteItemInput!, config: AwsConfig): AwsDynamoDBBatchWriteItemOutput
  createBackup(input: AwsDynamoDBCreateBackupInput!, config: AwsConfig): AwsDynamoDBCreateBackupOutput
  createGlobalTable(input: AwsDynamoDBCreateGlobalTableInput!, config: AwsConfig): AwsDynamoDBCreateGlobalTableOutput
  createTable(input: AwsDynamoDBCreateTableInput!, config: AwsConfig): AwsDynamoDBCreateTableOutput
  deleteBackup(input: AwsDynamoDBDeleteBackupInput!, config: AwsConfig): AwsDynamoDBDeleteBackupOutput
  deleteItem(input: AwsDynamoDBDeleteItemInput!, config: AwsConfig): AwsDynamoDBDeleteItemOutput
  deleteTable(input: AwsDynamoDBDeleteTableInput!, config: AwsConfig): AwsDynamoDBDeleteTableOutput
  describeBackup(input: AwsDynamoDBDescribeBackupInput!, config: AwsConfig): AwsDynamoDBDescribeBackupOutput
  describeContinuousBackups(input: AwsDynamoDBDescribeContinuousBackupsInput!, config: AwsConfig): AwsDynamoDBDescribeContinuousBackupsOutput
  describeContributorInsights(input: AwsDynamoDBDescribeContributorInsightsInput!, config: AwsConfig): AwsDynamoDBDescribeContributorInsightsOutput
  describeEndpoints(input: JSON, config: AwsConfig): AwsDynamoDBDescribeEndpointsOutput
  describeExport(input: AwsDynamoDBDescribeExportInput!, config: AwsConfig): AwsDynamoDBDescribeExportOutput
  describeGlobalTable(input: AwsDynamoDBDescribeGlobalTableInput!, config: AwsConfig): AwsDynamoDBDescribeGlobalTableOutput
  describeGlobalTableSettings(input: AwsDynamoDBDescribeGlobalTableSettingsInput!, config: AwsConfig): AwsDynamoDBDescribeGlobalTableSettingsOutput
  describeKinesisStreamingDestination(input: AwsDynamoDBDescribeKinesisStreamingDestinationInput!, config: AwsConfig): AwsDynamoDBDescribeKinesisStreamingDestinationOutput
  describeLimits(input: JSON, config: AwsConfig): AwsDynamoDBDescribeLimitsOutput
  describeTable(input: AwsDynamoDBDescribeTableInput!, config: AwsConfig): AwsDynamoDBDescribeTableOutput
  describeTableReplicaAutoScaling(input: AwsDynamoDBDescribeTableReplicaAutoScalingInput!, config: AwsConfig): AwsDynamoDBDescribeTableReplicaAutoScalingOutput
  describeTimeToLive(input: AwsDynamoDBDescribeTimeToLiveInput!, config: AwsConfig): AwsDynamoDBDescribeTimeToLiveOutput
  disableKinesisStreamingDestination(input: JSON, config: AwsConfig): JSON
  enableKinesisStreamingDestination(input: JSON, config: AwsConfig): JSON
  executeStatement(input: AwsDynamoDBExecuteStatementInput!, config: AwsConfig): AwsDynamoDBExecuteStatementOutput
  executeTransaction(input: AwsDynamoDBExecuteTransactionInput!, config: AwsConfig): AwsDynamoDBExecuteTransactionOutput
  exportTableToPointInTime(input: AwsDynamoDBExportTableToPointInTimeInput!, config: AwsConfig): AwsDynamoDBExportTableToPointInTimeOutput
  getItem(input: AwsDynamoDBGetItemInput!, config: AwsConfig): AwsDynamoDBGetItemOutput
  listBackups(input: AwsDynamoDBListBackupsInput, config: AwsConfig): AwsDynamoDBListBackupsOutput
  listContributorInsights(input: AwsDynamoDBListContributorInsightsInput, config: AwsConfig): AwsDynamoDBListContributorInsightsOutput
  listExports(input: AwsDynamoDBListExportsInput, config: AwsConfig): AwsDynamoDBListExportsOutput
  listGlobalTables(input: AwsDynamoDBListGlobalTablesInput, config: AwsConfig): AwsDynamoDBListGlobalTablesOutput
  listTables(input: AwsDynamoDBListTablesInput, config: AwsConfig): AwsDynamoDBListTablesOutput
  listTagsOfResource(input: AwsDynamoDBListTagsOfResourceInput!, config: AwsConfig): AwsDynamoDBListTagsOfResourceOutput
  putItem(input: AwsDynamoDBPutItemInput!, config: AwsConfig): AwsDynamoDBPutItemOutput
  query(input: AwsDynamoDBQueryInput!, config: AwsConfig): AwsDynamoDBQueryOutput
  restoreTableFromBackup(input: AwsDynamoDBRestoreTableFromBackupInput!, config: AwsConfig): AwsDynamoDBRestoreTableFromBackupOutput
  restoreTableToPointInTime(input: AwsDynamoDBRestoreTableToPointInTimeInput!, config: AwsConfig): AwsDynamoDBRestoreTableToPointInTimeOutput
  scan(input: AwsDynamoDBScanInput!, config: AwsConfig): AwsDynamoDBScanOutput
  tagResource(input: AwsDynamoDBTagResourceInput!, config: AwsConfig): JSON
  transactGetItems(input: AwsDynamoDBTransactGetItemsInput!, config: AwsConfig): AwsDynamoDBTransactGetItemsOutput
  transactWriteItems(input: AwsDynamoDBTransactWriteItemsInput!, config: AwsConfig): AwsDynamoDBTransactWriteItemsOutput
  untagResource(input: AwsDynamoDBUntagResourceInput!, config: AwsConfig): JSON
  updateContinuousBackups(input: AwsDynamoDBUpdateContinuousBackupsInput!, config: AwsConfig): AwsDynamoDBUpdateContinuousBackupsOutput
  updateContributorInsights(input: AwsDynamoDBUpdateContributorInsightsInput!, config: AwsConfig): AwsDynamoDBUpdateContributorInsightsOutput
  updateGlobalTable(input: AwsDynamoDBUpdateGlobalTableInput!, config: AwsConfig): AwsDynamoDBUpdateGlobalTableOutput
  updateGlobalTableSettings(input: AwsDynamoDBUpdateGlobalTableSettingsInput!, config: AwsConfig): AwsDynamoDBUpdateGlobalTableSettingsOutput
  updateItem(input: AwsDynamoDBUpdateItemInput!, config: AwsConfig): AwsDynamoDBUpdateItemOutput
  updateTable(input: AwsDynamoDBUpdateTableInput!, config: AwsConfig): AwsDynamoDBUpdateTableOutput
  updateTableReplicaAutoScaling(input: AwsDynamoDBUpdateTableReplicaAutoScalingInput!, config: AwsConfig): AwsDynamoDBUpdateTableReplicaAutoScalingOutput
  updateTimeToLive(input: AwsDynamoDBUpdateTimeToLiveInput!, config: AwsConfig): AwsDynamoDBUpdateTimeToLiveOutput
}

type AwsDynamoDBBatchExecuteStatementOutput {
  Responses: [AwsDynamoDBBatchExecuteStatementOutputResponses]
}

type AwsDynamoDBBatchExecuteStatementOutputResponses {
  Error: AwsDynamoDBBatchExecuteStatementOutputResponsesError
  TableName: String
  Item: JSON
}

type AwsDynamoDBBatchExecuteStatementOutputResponsesError {
  Code: String
  Message: String
}

input AwsDynamoDBBatchExecuteStatementInput {
  Statements: [AwsDynamoDBBatchExecuteStatementStatementsInput]!
}

input AwsDynamoDBBatchExecuteStatementStatementsInput {
  Statement: String!
  Parameters: [AwsDynamoDBS6Input]
  ConsistentRead: Boolean
}

input AwsDynamoDBS6Input {
  S: String
  N: String
  B: JSON
  SS: [String]
  NS: [String]
  BS: [JSON]
  M: JSON
  L: [JSON]
  NULL: Boolean
  BOOL: Boolean
}

type AwsDynamoDBBatchGetItemOutput {
  Responses: JSON
  UnprocessedKeys: JSON
  ConsumedCapacity: [AwsDynamoDBS15]
}

type AwsDynamoDBS15 {
  TableName: String
  CapacityUnits: JSON
  ReadCapacityUnits: JSON
  WriteCapacityUnits: JSON
  Table: AwsDynamoDBS17
  LocalSecondaryIndexes: JSON
  GlobalSecondaryIndexes: JSON
}

type AwsDynamoDBS17 {
  ReadCapacityUnits: JSON
  WriteCapacityUnits: JSON
  CapacityUnits: JSON
}

input AwsDynamoDBBatchGetItemInput {
  RequestItems: JSON!
  ReturnConsumedCapacity: String
}

type AwsDynamoDBBatchWriteItemOutput {
  UnprocessedItems: JSON
  ItemCollectionMetrics: JSON
  ConsumedCapacity: [AwsDynamoDBS15]
}

input AwsDynamoDBBatchWriteItemInput {
  RequestItems: JSON!
  ReturnConsumedCapacity: String
  ReturnItemCollectionMetrics: String
}

type AwsDynamoDBCreateBackupOutput {
  BackupDetails: AwsDynamoDBS1s
}

type AwsDynamoDBS1s {
  BackupArn: String!
  BackupName: String!
  BackupSizeBytes: JSON
  BackupStatus: String!
  BackupType: String!
  BackupCreationDateTime: Date!
  BackupExpiryDateTime: Date
}

input AwsDynamoDBCreateBackupInput {
  TableName: String!
  BackupName: String!
}

type AwsDynamoDBCreateGlobalTableOutput {
  GlobalTableDescription: AwsDynamoDBS24
}

type AwsDynamoDBS24 {
  ReplicationGroup: [AwsDynamoDBS25]
  GlobalTableArn: String
  CreationDateTime: Date
  GlobalTableStatus: String
  GlobalTableName: String
}

type AwsDynamoDBS25 {
  RegionName: String
  ReplicaStatus: String
  ReplicaStatusDescription: String
  ReplicaStatusPercentProgress: String
  KMSMasterKeyId: String
  ProvisionedThroughputOverride: AwsDynamoDBS2b
  GlobalSecondaryIndexes: [AwsDynamoDBS25GlobalSecondaryIndexes]
  ReplicaInaccessibleDateTime: Date
}

type AwsDynamoDBS2b {
  ReadCapacityUnits: JSON
}

type AwsDynamoDBS25GlobalSecondaryIndexes {
  IndexName: String
  ProvisionedThroughputOverride: AwsDynamoDBS2b
}

input AwsDynamoDBCreateGlobalTableInput {
  GlobalTableName: String!
  ReplicationGroup: [AwsDynamoDBS20Input]!
}

input AwsDynamoDBS20Input {
  RegionName: String
}

type AwsDynamoDBCreateTableOutput {
  TableDescription: AwsDynamoDBS3a
}

type AwsDynamoDBS3a {
  AttributeDefinitions: [AwsDynamoDBS2i]
  TableName: String
  KeySchema: [AwsDynamoDBS2m]
  TableStatus: String
  CreationDateTime: Date
  ProvisionedThroughput: AwsDynamoDBS3c
  TableSizeBytes: JSON
  ItemCount: JSON
  TableArn: String
  TableId: String
  BillingModeSummary: AwsDynamoDBS3g
  LocalSecondaryIndexes: [AwsDynamoDBS3aLocalSecondaryIndexes]
  GlobalSecondaryIndexes: [AwsDynamoDBS3aGlobalSecondaryIndexes]
  StreamSpecification: AwsDynamoDBS2z
  LatestStreamLabel: String
  LatestStreamArn: String
  GlobalTableVersion: String
  Replicas: [AwsDynamoDBS25]
  RestoreSummary: AwsDynamoDBS3aRestoreSummary
  SSEDescription: AwsDynamoDBS3r
  ArchivalSummary: AwsDynamoDBS3aArchivalSummary
}

type AwsDynamoDBS2i {
  AttributeName: String!
  AttributeType: String!
}

type AwsDynamoDBS2m {
  AttributeName: String!
  KeyType: String!
}

type AwsDynamoDBS3c {
  LastIncreaseDateTime: Date
  LastDecreaseDateTime: Date
  NumberOfDecreasesToday: JSON
  ReadCapacityUnits: JSON
  WriteCapacityUnits: JSON
}

type AwsDynamoDBS3g {
  BillingMode: String
  LastUpdateToPayPerRequestDateTime: Date
}

type AwsDynamoDBS3aLocalSecondaryIndexes {
  IndexName: String
  KeySchema: [AwsDynamoDBS2m]
  Projection: AwsDynamoDBS2r
  IndexSizeBytes: JSON
  ItemCount: JSON
  IndexArn: String
}

type AwsDynamoDBS2r {
  ProjectionType: String
  NonKeyAttributes: [String]
}

type AwsDynamoDBS3aGlobalSecondaryIndexes {
  IndexName: String
  KeySchema: [AwsDynamoDBS2m]
  Projection: AwsDynamoDBS2r
  IndexStatus: String
  Backfilling: Boolean
  ProvisionedThroughput: AwsDynamoDBS3c
  IndexSizeBytes: JSON
  ItemCount: JSON
  IndexArn: String
}

type AwsDynamoDBS2z {
  StreamEnabled: Boolean!
  StreamViewType: String
}

type AwsDynamoDBS3aRestoreSummary {
  SourceBackupArn: String
  SourceTableArn: String
  RestoreDateTime: Date!
  RestoreInProgress: Boolean!
}

type AwsDynamoDBS3r {
  Status: String
  SSEType: String
  KMSMasterKeyArn: String
  InaccessibleEncryptionDateTime: Date
}

type AwsDynamoDBS3aArchivalSummary {
  ArchivalDateTime: Date
  ArchivalReason: String
  ArchivalBackupArn: String
}

input AwsDynamoDBCreateTableInput {
  AttributeDefinitions: [AwsDynamoDBS2iInput]!
  TableName: String!
  KeySchema: [AwsDynamoDBS2mInput]!
  LocalSecondaryIndexes: [AwsDynamoDBS2pInput]
  GlobalSecondaryIndexes: [AwsDynamoDBS2vInput]
  BillingMode: String
  ProvisionedThroughput: AwsDynamoDBS2xInput
  StreamSpecification: AwsDynamoDBS2zInput
  SSESpecification: AwsDynamoDBS32Input
  Tags: [AwsDynamoDBS35Input]
}

input AwsDynamoDBS2iInput {
  AttributeName: String!
  AttributeType: String!
}

input AwsDynamoDBS2mInput {
  AttributeName: String!
  KeyType: String!
}

input AwsDynamoDBS2pInput {
  IndexName: String!
  KeySchema: [AwsDynamoDBS2mInput]!
  Projection: AwsDynamoDBS2rInput!
}

input AwsDynamoDBS2rInput {
  ProjectionType: String
  NonKeyAttributes: [String]
}

input AwsDynamoDBS2vInput {
  IndexName: String!
  KeySchema: [AwsDynamoDBS2mInput]!
  Projection: AwsDynamoDBS2rInput!
  ProvisionedThroughput: AwsDynamoDBS2xInput
}

input AwsDynamoDBS2xInput {
  ReadCapacityUnits: JSON!
  WriteCapacityUnits: JSON!
}

input AwsDynamoDBS2zInput {
  StreamEnabled: Boolean!
  StreamViewType: String
}

input AwsDynamoDBS32Input {
  Enabled: Boolean
  SSEType: String
  KMSMasterKeyId: String
}

input AwsDynamoDBS35Input {
  Key: String!
  Value: String!
}

type AwsDynamoDBDeleteBackupOutput {
  BackupDescription: AwsDynamoDBS3y
}

type AwsDynamoDBS3y {
  BackupDetails: AwsDynamoDBS1s
  SourceTableDetails: AwsDynamoDBS3ySourceTableDetails
  SourceTableFeatureDetails: AwsDynamoDBS3ySourceTableFeatureDetails
}

type AwsDynamoDBS3ySourceTableDetails {
  TableName: String!
  TableId: String!
  TableArn: String
  TableSizeBytes: JSON
  KeySchema: [AwsDynamoDBS2m]!
  TableCreationDateTime: Date!
  ProvisionedThroughput: AwsDynamoDBS2x!
  ItemCount: JSON
  BillingMode: String
}

type AwsDynamoDBS2x {
  ReadCapacityUnits: JSON!
  WriteCapacityUnits: JSON!
}

type AwsDynamoDBS3ySourceTableFeatureDetails {
  LocalSecondaryIndexes: [AwsDynamoDBS3ySourceTableFeatureDetailsLocalSecondaryIndexes]
  GlobalSecondaryIndexes: [AwsDynamoDBS3ySourceTableFeatureDetailsGlobalSecondaryIndexes]
  StreamDescription: AwsDynamoDBS2z
  TimeToLiveDescription: AwsDynamoDBS47
  SSEDescription: AwsDynamoDBS3r
}

type AwsDynamoDBS3ySourceTableFeatureDetailsLocalSecondaryIndexes {
  IndexName: String
  KeySchema: [AwsDynamoDBS2m]
  Projection: AwsDynamoDBS2r
}

type AwsDynamoDBS3ySourceTableFeatureDetailsGlobalSecondaryIndexes {
  IndexName: String
  KeySchema: [AwsDynamoDBS2m]
  Projection: AwsDynamoDBS2r
  ProvisionedThroughput: AwsDynamoDBS2x
}

type AwsDynamoDBS47 {
  TimeToLiveStatus: String
  AttributeName: String
}

input AwsDynamoDBDeleteBackupInput {
  BackupArn: String!
}

type AwsDynamoDBDeleteItemOutput {
  Attributes: JSON
  ConsumedCapacity: AwsDynamoDBS15
  ItemCollectionMetrics: AwsDynamoDBS1l
}

type AwsDynamoDBS1l {
  ItemCollectionKey: JSON
  SizeEstimateRangeGB: [JSON]
}

input AwsDynamoDBDeleteItemInput {
  TableName: String!
  Key: JSON!
  Expected: JSON
  ConditionalOperator: String
  ReturnValues: String
  ReturnConsumedCapacity: String
  ReturnItemCollectionMetrics: String
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
}

type AwsDynamoDBDeleteTableOutput {
  TableDescription: AwsDynamoDBS3a
}

input AwsDynamoDBDeleteTableInput {
  TableName: String!
}

type AwsDynamoDBDescribeBackupOutput {
  BackupDescription: AwsDynamoDBS3y
}

input AwsDynamoDBDescribeBackupInput {
  BackupArn: String!
}

type AwsDynamoDBDescribeContinuousBackupsOutput {
  ContinuousBackupsDescription: AwsDynamoDBS4s
}

type AwsDynamoDBS4s {
  ContinuousBackupsStatus: String!
  PointInTimeRecoveryDescription: AwsDynamoDBS4sPointInTimeRecoveryDescription
}

type AwsDynamoDBS4sPointInTimeRecoveryDescription {
  PointInTimeRecoveryStatus: String
  EarliestRestorableDateTime: Date
  LatestRestorableDateTime: Date
}

input AwsDynamoDBDescribeContinuousBackupsInput {
  TableName: String!
}

type AwsDynamoDBDescribeContributorInsightsOutput {
  TableName: String
  IndexName: String
  ContributorInsightsRuleList: [String]
  ContributorInsightsStatus: String
  LastUpdateDateTime: Date
  FailureException: AwsDynamoDBDescribeContributorInsightsOutputFailureException
}

type AwsDynamoDBDescribeContributorInsightsOutputFailureException {
  ExceptionName: String
  ExceptionDescription: String
}

input AwsDynamoDBDescribeContributorInsightsInput {
  TableName: String!
  IndexName: String
}

type AwsDynamoDBDescribeEndpointsOutput {
  Endpoints: [AwsDynamoDBDescribeEndpointsOutputEndpoints]!
}

type AwsDynamoDBDescribeEndpointsOutputEndpoints {
  Address: String!
  CachePeriodInMinutes: JSON!
}

type AwsDynamoDBDescribeExportOutput {
  ExportDescription: AwsDynamoDBS5c
}

type AwsDynamoDBS5c {
  ExportArn: String
  ExportStatus: String
  StartTime: Date
  EndTime: Date
  ExportManifest: String
  TableArn: String
  TableId: String
  ExportTime: Date
  ClientToken: String
  S3Bucket: String
  S3BucketOwner: String
  S3Prefix: String
  S3SseAlgorithm: String
  S3SseKmsKeyId: String
  FailureCode: String
  FailureMessage: String
  ExportFormat: String
  BilledSizeBytes: JSON
  ItemCount: JSON
}

input AwsDynamoDBDescribeExportInput {
  ExportArn: String!
}

type AwsDynamoDBDescribeGlobalTableOutput {
  GlobalTableDescription: AwsDynamoDBS24
}

input AwsDynamoDBDescribeGlobalTableInput {
  GlobalTableName: String!
}

type AwsDynamoDBDescribeGlobalTableSettingsOutput {
  GlobalTableName: String
  ReplicaSettings: [AwsDynamoDBS5w]
}

type AwsDynamoDBS5w {
  RegionName: String!
  ReplicaStatus: String
  ReplicaBillingModeSummary: AwsDynamoDBS3g
  ReplicaProvisionedReadCapacityUnits: JSON
  ReplicaProvisionedReadCapacityAutoScalingSettings: AwsDynamoDBS5y
  ReplicaProvisionedWriteCapacityUnits: JSON
  ReplicaProvisionedWriteCapacityAutoScalingSettings: AwsDynamoDBS5y
  ReplicaGlobalSecondaryIndexSettings: [AwsDynamoDBS5wReplicaGlobalSecondaryIndexSettings]
}

type AwsDynamoDBS5y {
  MinimumUnits: JSON
  MaximumUnits: JSON
  AutoScalingDisabled: Boolean
  AutoScalingRoleArn: String
  ScalingPolicies: [AwsDynamoDBS5yScalingPolicies]
}

type AwsDynamoDBS5yScalingPolicies {
  PolicyName: String
  TargetTrackingScalingPolicyConfiguration: AwsDynamoDBS5yScalingPoliciesTargetTrackingScalingPolicyConfiguration
}

type AwsDynamoDBS5yScalingPoliciesTargetTrackingScalingPolicyConfiguration {
  DisableScaleIn: Boolean
  ScaleInCooldown: Int
  ScaleOutCooldown: Int
  TargetValue: JSON!
}

type AwsDynamoDBS5wReplicaGlobalSecondaryIndexSettings {
  IndexName: String!
  IndexStatus: String
  ProvisionedReadCapacityUnits: JSON
  ProvisionedReadCapacityAutoScalingSettings: AwsDynamoDBS5y
  ProvisionedWriteCapacityUnits: JSON
  ProvisionedWriteCapacityAutoScalingSettings: AwsDynamoDBS5y
}

input AwsDynamoDBDescribeGlobalTableSettingsInput {
  GlobalTableName: String!
}

type AwsDynamoDBDescribeKinesisStreamingDestinationOutput {
  TableName: String
  KinesisDataStreamDestinations: [AwsDynamoDBDescribeKinesisStreamingDestinationOutputKinesisDataStreamDestinations]
}

type AwsDynamoDBDescribeKinesisStreamingDestinationOutputKinesisDataStreamDestinations {
  StreamArn: String
  DestinationStatus: String
  DestinationStatusDescription: String
}

input AwsDynamoDBDescribeKinesisStreamingDestinationInput {
  TableName: String!
}

type AwsDynamoDBDescribeLimitsOutput {
  AccountMaxReadCapacityUnits: JSON
  AccountMaxWriteCapacityUnits: JSON
  TableMaxReadCapacityUnits: JSON
  TableMaxWriteCapacityUnits: JSON
}

type AwsDynamoDBDescribeTableOutput {
  Table: AwsDynamoDBS3a
}

input AwsDynamoDBDescribeTableInput {
  TableName: String!
}

type AwsDynamoDBDescribeTableReplicaAutoScalingOutput {
  TableAutoScalingDescription: AwsDynamoDBS6i
}

type AwsDynamoDBS6i {
  TableName: String
  TableStatus: String
  Replicas: [AwsDynamoDBS6iReplicas]
}

type AwsDynamoDBS6iReplicas {
  RegionName: String
  GlobalSecondaryIndexes: [AwsDynamoDBS6iReplicasGlobalSecondaryIndexes]
  ReplicaProvisionedReadCapacityAutoScalingSettings: AwsDynamoDBS5y
  ReplicaProvisionedWriteCapacityAutoScalingSettings: AwsDynamoDBS5y
  ReplicaStatus: String
}

type AwsDynamoDBS6iReplicasGlobalSecondaryIndexes {
  IndexName: String
  IndexStatus: String
  ProvisionedReadCapacityAutoScalingSettings: AwsDynamoDBS5y
  ProvisionedWriteCapacityAutoScalingSettings: AwsDynamoDBS5y
}

input AwsDynamoDBDescribeTableReplicaAutoScalingInput {
  TableName: String!
}

type AwsDynamoDBDescribeTimeToLiveOutput {
  TimeToLiveDescription: AwsDynamoDBS47
}

input AwsDynamoDBDescribeTimeToLiveInput {
  TableName: String!
}

type AwsDynamoDBExecuteStatementOutput {
  Items: [JSON]
  NextToken: String
}

input AwsDynamoDBExecuteStatementInput {
  Statement: String!
  Parameters: [AwsDynamoDBS6Input]
  ConsistentRead: Boolean
  NextToken: String
}

type AwsDynamoDBExecuteTransactionOutput {
  Responses: [AwsDynamoDBS6z]
}

type AwsDynamoDBS6z {
  Item: JSON
}

input AwsDynamoDBExecuteTransactionInput {
  TransactStatements: [AwsDynamoDBExecuteTransactionTransactStatementsInput]!
  ClientRequestToken: String
}

input AwsDynamoDBExecuteTransactionTransactStatementsInput {
  Statement: String!
  Parameters: [AwsDynamoDBS6Input]
}

type AwsDynamoDBExportTableToPointInTimeOutput {
  ExportDescription: AwsDynamoDBS5c
}

input AwsDynamoDBExportTableToPointInTimeInput {
  TableArn: String!
  ExportTime: Date
  ClientToken: String
  S3Bucket: String!
  S3BucketOwner: String
  S3Prefix: String
  S3SseAlgorithm: String
  S3SseKmsKeyId: String
  ExportFormat: String
}

type AwsDynamoDBGetItemOutput {
  Item: JSON
  ConsumedCapacity: AwsDynamoDBS15
}

input AwsDynamoDBGetItemInput {
  TableName: String!
  Key: JSON!
  AttributesToGet: [String]
  ConsistentRead: Boolean
  ReturnConsumedCapacity: String
  ProjectionExpression: String
  ExpressionAttributeNames: JSON
}

type AwsDynamoDBListBackupsOutput {
  BackupSummaries: [AwsDynamoDBListBackupsOutputBackupSummaries]
  LastEvaluatedBackupArn: String
}

type AwsDynamoDBListBackupsOutputBackupSummaries {
  TableName: String
  TableId: String
  TableArn: String
  BackupArn: String
  BackupName: String
  BackupCreationDateTime: Date
  BackupExpiryDateTime: Date
  BackupStatus: String
  BackupType: String
  BackupSizeBytes: JSON
}

input AwsDynamoDBListBackupsInput {
  TableName: String
  Limit: Int
  TimeRangeLowerBound: Date
  TimeRangeUpperBound: Date
  ExclusiveStartBackupArn: String
  BackupType: String
}

type AwsDynamoDBListContributorInsightsOutput {
  ContributorInsightsSummaries: [AwsDynamoDBListContributorInsightsOutputContributorInsightsSummaries]
  NextToken: String
}

type AwsDynamoDBListContributorInsightsOutputContributorInsightsSummaries {
  TableName: String
  IndexName: String
  ContributorInsightsStatus: String
}

input AwsDynamoDBListContributorInsightsInput {
  TableName: String
  NextToken: String
  MaxResults: Int
}

type AwsDynamoDBListExportsOutput {
  ExportSummaries: [AwsDynamoDBListExportsOutputExportSummaries]
  NextToken: String
}

type AwsDynamoDBListExportsOutputExportSummaries {
  ExportArn: String
  ExportStatus: String
}

input AwsDynamoDBListExportsInput {
  TableArn: String
  MaxResults: Int
  NextToken: String
}

type AwsDynamoDBListGlobalTablesOutput {
  GlobalTables: [AwsDynamoDBListGlobalTablesOutputGlobalTables]
  LastEvaluatedGlobalTableName: String
}

type AwsDynamoDBListGlobalTablesOutputGlobalTables {
  GlobalTableName: String
  ReplicationGroup: [AwsDynamoDBS20]
}

type AwsDynamoDBS20 {
  RegionName: String
}

input AwsDynamoDBListGlobalTablesInput {
  ExclusiveStartGlobalTableName: String
  Limit: Int
  RegionName: String
}

type AwsDynamoDBListTablesOutput {
  TableNames: [String]
  LastEvaluatedTableName: String
}

input AwsDynamoDBListTablesInput {
  ExclusiveStartTableName: String
  Limit: Int
}

type AwsDynamoDBListTagsOfResourceOutput {
  Tags: [AwsDynamoDBS35]
  NextToken: String
}

type AwsDynamoDBS35 {
  Key: String!
  Value: String!
}

input AwsDynamoDBListTagsOfResourceInput {
  ResourceArn: String!
  NextToken: String
}

type AwsDynamoDBPutItemOutput {
  Attributes: JSON
  ConsumedCapacity: AwsDynamoDBS15
  ItemCollectionMetrics: AwsDynamoDBS1l
}

input AwsDynamoDBPutItemInput {
  TableName: String!
  Item: JSON!
  Expected: JSON
  ReturnValues: String
  ReturnConsumedCapacity: String
  ReturnItemCollectionMetrics: String
  ConditionalOperator: String
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
}

type AwsDynamoDBQueryOutput {
  Items: [JSON]
  Count: Int
  ScannedCount: Int
  LastEvaluatedKey: JSON
  ConsumedCapacity: AwsDynamoDBS15
}

input AwsDynamoDBQueryInput {
  TableName: String!
  IndexName: String
  Select: String
  AttributesToGet: [String]
  Limit: Int
  ConsistentRead: Boolean
  KeyConditions: JSON
  QueryFilter: JSON
  ConditionalOperator: String
  ScanIndexForward: Boolean
  ExclusiveStartKey: JSON
  ReturnConsumedCapacity: String
  ProjectionExpression: String
  FilterExpression: String
  KeyConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
}

type AwsDynamoDBRestoreTableFromBackupOutput {
  TableDescription: AwsDynamoDBS3a
}

input AwsDynamoDBRestoreTableFromBackupInput {
  TargetTableName: String!
  BackupArn: String!
  BillingModeOverride: String
  GlobalSecondaryIndexOverride: [AwsDynamoDBS2vInput]
  LocalSecondaryIndexOverride: [AwsDynamoDBS2pInput]
  ProvisionedThroughputOverride: AwsDynamoDBS2xInput
  SSESpecificationOverride: AwsDynamoDBS32Input
}

type AwsDynamoDBRestoreTableToPointInTimeOutput {
  TableDescription: AwsDynamoDBS3a
}

input AwsDynamoDBRestoreTableToPointInTimeInput {
  SourceTableArn: String
  SourceTableName: String
  TargetTableName: String!
  UseLatestRestorableTime: Boolean
  RestoreDateTime: Date
  BillingModeOverride: String
  GlobalSecondaryIndexOverride: [AwsDynamoDBS2vInput]
  LocalSecondaryIndexOverride: [AwsDynamoDBS2pInput]
  ProvisionedThroughputOverride: AwsDynamoDBS2xInput
  SSESpecificationOverride: AwsDynamoDBS32Input
}

type AwsDynamoDBScanOutput {
  Items: [JSON]
  Count: Int
  ScannedCount: Int
  LastEvaluatedKey: JSON
  ConsumedCapacity: AwsDynamoDBS15
}

input AwsDynamoDBScanInput {
  TableName: String!
  IndexName: String
  AttributesToGet: [String]
  Limit: Int
  Select: String
  ScanFilter: JSON
  ConditionalOperator: String
  ExclusiveStartKey: JSON
  ReturnConsumedCapacity: String
  TotalSegments: Int
  Segment: Int
  ProjectionExpression: String
  FilterExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
  ConsistentRead: Boolean
}

input AwsDynamoDBTagResourceInput {
  ResourceArn: String!
  Tags: [AwsDynamoDBS35Input]!
}

type AwsDynamoDBTransactGetItemsOutput {
  ConsumedCapacity: [AwsDynamoDBS15]
  Responses: [AwsDynamoDBS6z]
}

input AwsDynamoDBTransactGetItemsInput {
  TransactItems: [AwsDynamoDBTransactGetItemsTransactItemsInput]!
  ReturnConsumedCapacity: String
}

input AwsDynamoDBTransactGetItemsTransactItemsInput {
  Get: AwsDynamoDBTransactGetItemsTransactItemsGetInput!
}

input AwsDynamoDBTransactGetItemsTransactItemsGetInput {
  Key: JSON!
  TableName: String!
  ProjectionExpression: String
  ExpressionAttributeNames: JSON
}

type AwsDynamoDBTransactWriteItemsOutput {
  ConsumedCapacity: [AwsDynamoDBS15]
  ItemCollectionMetrics: JSON
}

input AwsDynamoDBTransactWriteItemsInput {
  TransactItems: [AwsDynamoDBTransactWriteItemsTransactItemsInput]!
  ReturnConsumedCapacity: String
  ReturnItemCollectionMetrics: String
  ClientRequestToken: String
}

input AwsDynamoDBTransactWriteItemsTransactItemsInput {
  ConditionCheck: AwsDynamoDBTransactWriteItemsTransactItemsConditionCheckInput
  Put: AwsDynamoDBTransactWriteItemsTransactItemsPutInput
  Delete: AwsDynamoDBTransactWriteItemsTransactItemsDeleteInput
  Update: AwsDynamoDBTransactWriteItemsTransactItemsUpdateInput
}

input AwsDynamoDBTransactWriteItemsTransactItemsConditionCheckInput {
  Key: JSON!
  TableName: String!
  ConditionExpression: String!
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
  ReturnValuesOnConditionCheckFailure: String
}

input AwsDynamoDBTransactWriteItemsTransactItemsPutInput {
  Item: JSON!
  TableName: String!
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
  ReturnValuesOnConditionCheckFailure: String
}

input AwsDynamoDBTransactWriteItemsTransactItemsDeleteInput {
  Key: JSON!
  TableName: String!
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
  ReturnValuesOnConditionCheckFailure: String
}

input AwsDynamoDBTransactWriteItemsTransactItemsUpdateInput {
  Key: JSON!
  UpdateExpression: String!
  TableName: String!
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
  ReturnValuesOnConditionCheckFailure: String
}

input AwsDynamoDBUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsDynamoDBUpdateContinuousBackupsOutput {
  ContinuousBackupsDescription: AwsDynamoDBS4s
}

input AwsDynamoDBUpdateContinuousBackupsInput {
  TableName: String!
  PointInTimeRecoverySpecification: AwsDynamoDBUpdateContinuousBackupsPointInTimeRecoverySpecificationInput!
}

input AwsDynamoDBUpdateContinuousBackupsPointInTimeRecoverySpecificationInput {
  PointInTimeRecoveryEnabled: Boolean!
}

type AwsDynamoDBUpdateContributorInsightsOutput {
  TableName: String
  IndexName: String
  ContributorInsightsStatus: String
}

input AwsDynamoDBUpdateContributorInsightsInput {
  TableName: String!
  IndexName: String
  ContributorInsightsAction: String!
}

type AwsDynamoDBUpdateGlobalTableOutput {
  GlobalTableDescription: AwsDynamoDBS24
}

input AwsDynamoDBUpdateGlobalTableInput {
  GlobalTableName: String!
  ReplicaUpdates: [AwsDynamoDBUpdateGlobalTableReplicaUpdatesInput]!
}

input AwsDynamoDBUpdateGlobalTableReplicaUpdatesInput {
  Create: AwsDynamoDBUpdateGlobalTableReplicaUpdatesCreateInput
  Delete: AwsDynamoDBUpdateGlobalTableReplicaUpdatesDeleteInput
}

input AwsDynamoDBUpdateGlobalTableReplicaUpdatesCreateInput {
  RegionName: String!
}

input AwsDynamoDBUpdateGlobalTableReplicaUpdatesDeleteInput {
  RegionName: String!
}

type AwsDynamoDBUpdateGlobalTableSettingsOutput {
  GlobalTableName: String
  ReplicaSettings: [AwsDynamoDBS5w]
}

input AwsDynamoDBUpdateGlobalTableSettingsInput {
  GlobalTableName: String!
  GlobalTableBillingMode: String
  GlobalTableProvisionedWriteCapacityUnits: JSON
  GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate: AwsDynamoDBS9eInput
  GlobalTableGlobalSecondaryIndexSettingsUpdate: [AwsDynamoDBUpdateGlobalTableSettingsGlobalTableGlobalSecondaryIndexSettingsUpdateInput]
  ReplicaSettingsUpdate: [AwsDynamoDBUpdateGlobalTableSettingsReplicaSettingsUpdateInput]
}

input AwsDynamoDBS9eInput {
  MinimumUnits: JSON
  MaximumUnits: JSON
  AutoScalingDisabled: Boolean
  AutoScalingRoleArn: String
  ScalingPolicyUpdate: AwsDynamoDBS9eScalingPolicyUpdateInput
}

input AwsDynamoDBS9eScalingPolicyUpdateInput {
  PolicyName: String
  TargetTrackingScalingPolicyConfiguration: AwsDynamoDBS9eScalingPolicyUpdateTargetTrackingScalingPolicyConfigurationInput!
}

input AwsDynamoDBS9eScalingPolicyUpdateTargetTrackingScalingPolicyConfigurationInput {
  DisableScaleIn: Boolean
  ScaleInCooldown: Int
  ScaleOutCooldown: Int
  TargetValue: JSON!
}

input AwsDynamoDBUpdateGlobalTableSettingsGlobalTableGlobalSecondaryIndexSettingsUpdateInput {
  IndexName: String!
  ProvisionedWriteCapacityUnits: JSON
  ProvisionedWriteCapacityAutoScalingSettingsUpdate: AwsDynamoDBS9eInput
}

input AwsDynamoDBUpdateGlobalTableSettingsReplicaSettingsUpdateInput {
  RegionName: String!
  ReplicaProvisionedReadCapacityUnits: JSON
  ReplicaProvisionedReadCapacityAutoScalingSettingsUpdate: AwsDynamoDBS9eInput
  ReplicaGlobalSecondaryIndexSettingsUpdate: [AwsDynamoDBUpdateGlobalTableSettingsReplicaSettingsUpdateReplicaGlobalSecondaryIndexSettingsUpdateInput]
}

input AwsDynamoDBUpdateGlobalTableSettingsReplicaSettingsUpdateReplicaGlobalSecondaryIndexSettingsUpdateInput {
  IndexName: String!
  ProvisionedReadCapacityUnits: JSON
  ProvisionedReadCapacityAutoScalingSettingsUpdate: AwsDynamoDBS9eInput
}

type AwsDynamoDBUpdateItemOutput {
  Attributes: JSON
  ConsumedCapacity: AwsDynamoDBS15
  ItemCollectionMetrics: AwsDynamoDBS1l
}

input AwsDynamoDBUpdateItemInput {
  TableName: String!
  Key: JSON!
  AttributeUpdates: JSON
  Expected: JSON
  ConditionalOperator: String
  ReturnValues: String
  ReturnConsumedCapacity: String
  ReturnItemCollectionMetrics: String
  UpdateExpression: String
  ConditionExpression: String
  ExpressionAttributeNames: JSON
  ExpressionAttributeValues: JSON
}

type AwsDynamoDBUpdateTableOutput {
  TableDescription: AwsDynamoDBS3a
}

input AwsDynamoDBUpdateTableInput {
  AttributeDefinitions: [AwsDynamoDBS2iInput]
  TableName: String!
  BillingMode: String
  ProvisionedThroughput: AwsDynamoDBS2xInput
  GlobalSecondaryIndexUpdates: [AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesInput]
  StreamSpecification: AwsDynamoDBS2zInput
  SSESpecification: AwsDynamoDBS32Input
  ReplicaUpdates: [AwsDynamoDBUpdateTableReplicaUpdatesInput]
}

input AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesInput {
  Update: AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesUpdateInput
  Create: AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesCreateInput
  Delete: AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesDeleteInput
}

input AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesUpdateInput {
  IndexName: String!
  ProvisionedThroughput: AwsDynamoDBS2xInput!
}

input AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesCreateInput {
  IndexName: String!
  KeySchema: [AwsDynamoDBS2mInput]!
  Projection: AwsDynamoDBS2rInput!
  ProvisionedThroughput: AwsDynamoDBS2xInput
}

input AwsDynamoDBUpdateTableGlobalSecondaryIndexUpdatesDeleteInput {
  IndexName: String!
}

input AwsDynamoDBUpdateTableReplicaUpdatesInput {
  Create: AwsDynamoDBUpdateTableReplicaUpdatesCreateInput
  Update: AwsDynamoDBUpdateTableReplicaUpdatesUpdateInput
  Delete: AwsDynamoDBUpdateTableReplicaUpdatesDeleteInput
}

input AwsDynamoDBUpdateTableReplicaUpdatesCreateInput {
  RegionName: String!
  KMSMasterKeyId: String
  ProvisionedThroughputOverride: AwsDynamoDBS2bInput
  GlobalSecondaryIndexes: [AwsDynamoDBSa3Input]
}

input AwsDynamoDBS2bInput {
  ReadCapacityUnits: JSON
}

input AwsDynamoDBSa3Input {
  IndexName: String!
  ProvisionedThroughputOverride: AwsDynamoDBS2bInput
}

input AwsDynamoDBUpdateTableReplicaUpdatesUpdateInput {
  RegionName: String!
  KMSMasterKeyId: String
  ProvisionedThroughputOverride: AwsDynamoDBS2bInput
  GlobalSecondaryIndexes: [AwsDynamoDBSa3Input]
}

input AwsDynamoDBUpdateTableReplicaUpdatesDeleteInput {
  RegionName: String!
}

type AwsDynamoDBUpdateTableReplicaAutoScalingOutput {
  TableAutoScalingDescription: AwsDynamoDBS6i
}

input AwsDynamoDBUpdateTableReplicaAutoScalingInput {
  GlobalSecondaryIndexUpdates: [AwsDynamoDBUpdateTableReplicaAutoScalingGlobalSecondaryIndexUpdatesInput]
  TableName: String!
  ProvisionedWriteCapacityAutoScalingUpdate: AwsDynamoDBS9eInput
  ReplicaUpdates: [AwsDynamoDBUpdateTableReplicaAutoScalingReplicaUpdatesInput]
}

input AwsDynamoDBUpdateTableReplicaAutoScalingGlobalSecondaryIndexUpdatesInput {
  IndexName: String
  ProvisionedWriteCapacityAutoScalingUpdate: AwsDynamoDBS9eInput
}

input AwsDynamoDBUpdateTableReplicaAutoScalingReplicaUpdatesInput {
  RegionName: String!
  ReplicaGlobalSecondaryIndexUpdates: [AwsDynamoDBUpdateTableReplicaAutoScalingReplicaUpdatesReplicaGlobalSecondaryIndexUpdatesInput]
  ReplicaProvisionedReadCapacityAutoScalingUpdate: AwsDynamoDBS9eInput
}

input AwsDynamoDBUpdateTableReplicaAutoScalingReplicaUpdatesReplicaGlobalSecondaryIndexUpdatesInput {
  IndexName: String
  ProvisionedReadCapacityAutoScalingUpdate: AwsDynamoDBS9eInput
}

type AwsDynamoDBUpdateTimeToLiveOutput {
  TimeToLiveSpecification: AwsDynamoDBSah
}

type AwsDynamoDBSah {
  Enabled: Boolean!
  AttributeName: String!
}

input AwsDynamoDBUpdateTimeToLiveInput {
  TableName: String!
  TimeToLiveSpecification: AwsDynamoDBSahInput!
}

input AwsDynamoDBSahInput {
  Enabled: Boolean!
  AttributeName: String!
}

"""Amazon DynamoDB Streams (2012-08-10)"""
type AwsDynamoDBStreams {
  describeStream(input: AwsDynamoDBStreamsDescribeStreamInput!, config: AwsConfig): AwsDynamoDBStreamsDescribeStreamOutput
  getRecords(input: AwsDynamoDBStreamsGetRecordsInput!, config: AwsConfig): AwsDynamoDBStreamsGetRecordsOutput
  getShardIterator(input: AwsDynamoDBStreamsGetShardIteratorInput!, config: AwsConfig): AwsDynamoDBStreamsGetShardIteratorOutput
  listStreams(input: AwsDynamoDBStreamsListStreamsInput, config: AwsConfig): AwsDynamoDBStreamsListStreamsOutput
}

type AwsDynamoDBStreamsDescribeStreamOutput {
  StreamDescription: AwsDynamoDBStreamsDescribeStreamOutputStreamDescription
}

type AwsDynamoDBStreamsDescribeStreamOutputStreamDescription {
  StreamArn: String
  StreamLabel: String
  StreamStatus: String
  StreamViewType: String
  CreationRequestDateTime: Date
  TableName: String
  KeySchema: [AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionKeySchema]
  Shards: [AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionShards]
  LastEvaluatedShardId: String
}

type AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionKeySchema {
  AttributeName: String!
  KeyType: String!
}

type AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionShards {
  ShardId: String
  SequenceNumberRange: AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionShardsSequenceNumberRange
  ParentShardId: String
}

type AwsDynamoDBStreamsDescribeStreamOutputStreamDescriptionShardsSequenceNumberRange {
  StartingSequenceNumber: String
  EndingSequenceNumber: String
}

input AwsDynamoDBStreamsDescribeStreamInput {
  StreamArn: String!
  Limit: Int
  ExclusiveStartShardId: String
}

type AwsDynamoDBStreamsGetRecordsOutput {
  Records: [AwsDynamoDBStreamsGetRecordsOutputRecords]
  NextShardIterator: String
}

type AwsDynamoDBStreamsGetRecordsOutputRecords {
  eventID: String
  eventName: String
  eventVersion: String
  eventSource: String
  awsRegion: String
  dynamodb: AwsDynamoDBStreamsGetRecordsOutputRecordsDynamodb
  userIdentity: AwsDynamoDBStreamsGetRecordsOutputRecordsUserIdentity
}

type AwsDynamoDBStreamsGetRecordsOutputRecordsDynamodb {
  ApproximateCreationDateTime: Date
  Keys: JSON
  NewImage: JSON
  OldImage: JSON
  SequenceNumber: String
  SizeBytes: JSON
  StreamViewType: String
}

type AwsDynamoDBStreamsGetRecordsOutputRecordsUserIdentity {
  PrincipalId: String
  Type: String
}

input AwsDynamoDBStreamsGetRecordsInput {
  ShardIterator: String!
  Limit: Int
}

type AwsDynamoDBStreamsGetShardIteratorOutput {
  ShardIterator: String
}

input AwsDynamoDBStreamsGetShardIteratorInput {
  StreamArn: String!
  ShardId: String!
  ShardIteratorType: String!
  SequenceNumber: String
}

type AwsDynamoDBStreamsListStreamsOutput {
  Streams: [AwsDynamoDBStreamsListStreamsOutputStreams]
  LastEvaluatedStreamArn: String
}

type AwsDynamoDBStreamsListStreamsOutputStreams {
  StreamArn: String
  TableName: String
  StreamLabel: String
}

input AwsDynamoDBStreamsListStreamsInput {
  TableName: String
  Limit: Int
  ExclusiveStartStreamArn: String
}

"""Amazon Elastic Block Store (2019-11-02)"""
type AwsEBS {
  completeSnapshot(input: AwsEBSCompleteSnapshotInput!, config: AwsConfig): AwsEBSCompleteSnapshotOutput
  getSnapshotBlock(input: AwsEBSGetSnapshotBlockInput!, config: AwsConfig): AwsEBSGetSnapshotBlockOutput
  listChangedBlocks(input: AwsEBSListChangedBlocksInput!, config: AwsConfig): AwsEBSListChangedBlocksOutput
  listSnapshotBlocks(input: AwsEBSListSnapshotBlocksInput!, config: AwsConfig): AwsEBSListSnapshotBlocksOutput
  putSnapshotBlock(input: AwsEBSPutSnapshotBlockInput!, config: AwsConfig): AwsEBSPutSnapshotBlockOutput
  startSnapshot(input: AwsEBSStartSnapshotInput!, config: AwsConfig): AwsEBSStartSnapshotOutput
}

type AwsEBSCompleteSnapshotOutput {
  Status: String
}

input AwsEBSCompleteSnapshotInput {
  SnapshotId: String!
  ChangedBlocksCount: Int!
  Checksum: String
  ChecksumAlgorithm: String
  ChecksumAggregationMethod: String
}

type AwsEBSGetSnapshotBlockOutput {
  DataLength: Int
  BlockData: JSON
  Checksum: String
  ChecksumAlgorithm: String
}

input AwsEBSGetSnapshotBlockInput {
  SnapshotId: String!
  BlockIndex: Int!
  BlockToken: String!
}

type AwsEBSListChangedBlocksOutput {
  ChangedBlocks: [AwsEBSListChangedBlocksOutputChangedBlocks]
  ExpiryTime: Date
  VolumeSize: JSON
  BlockSize: Int
  NextToken: String
}

type AwsEBSListChangedBlocksOutputChangedBlocks {
  BlockIndex: Int
  FirstBlockToken: String
  SecondBlockToken: String
}

input AwsEBSListChangedBlocksInput {
  FirstSnapshotId: String
  SecondSnapshotId: String!
  NextToken: String
  MaxResults: Int
  StartingBlockIndex: Int
}

type AwsEBSListSnapshotBlocksOutput {
  Blocks: [AwsEBSListSnapshotBlocksOutputBlocks]
  ExpiryTime: Date
  VolumeSize: JSON
  BlockSize: Int
  NextToken: String
}

type AwsEBSListSnapshotBlocksOutputBlocks {
  BlockIndex: Int
  BlockToken: String
}

input AwsEBSListSnapshotBlocksInput {
  SnapshotId: String!
  NextToken: String
  MaxResults: Int
  StartingBlockIndex: Int
}

type AwsEBSPutSnapshotBlockOutput {
  Checksum: String
  ChecksumAlgorithm: String
}

input AwsEBSPutSnapshotBlockInput {
  SnapshotId: String!
  BlockIndex: Int!
  BlockData: JSON!
  DataLength: Int!
  Progress: Int
  Checksum: String!
  ChecksumAlgorithm: String!
}

type AwsEBSStartSnapshotOutput {
  Description: String
  SnapshotId: String
  OwnerId: String
  Status: String
  StartTime: Date
  VolumeSize: JSON
  BlockSize: Int
  Tags: [AwsEBSSw]
  ParentSnapshotId: String
  KmsKeyArn: String
}

type AwsEBSSw {
  Key: String
  Value: String
}

input AwsEBSStartSnapshotInput {
  VolumeSize: JSON!
  ParentSnapshotId: String
  Tags: [AwsEBSSwInput]
  Description: String
  ClientToken: String
  Encrypted: Boolean
  KmsKeyArn: String
  Timeout: Int
}

input AwsEBSSwInput {
  Key: String
  Value: String
}

"""Amazon Elastic Compute Cloud (2016-11-15)"""
type AwsEC2 {
  acceptReservedInstancesExchangeQuote(input: AwsEC2AcceptReservedInstancesExchangeQuoteInput!, config: AwsConfig): AwsEC2AcceptReservedInstancesExchangeQuoteOutput
  acceptTransitGatewayMulticastDomainAssociations(input: AwsEC2AcceptTransitGatewayMulticastDomainAssociationsInput, config: AwsConfig): AwsEC2AcceptTransitGatewayMulticastDomainAssociationsOutput
  acceptTransitGatewayPeeringAttachment(input: AwsEC2AcceptTransitGatewayPeeringAttachmentInput!, config: AwsConfig): AwsEC2AcceptTransitGatewayPeeringAttachmentOutput
  acceptTransitGatewayVpcAttachment(input: AwsEC2AcceptTransitGatewayVpcAttachmentInput!, config: AwsConfig): AwsEC2AcceptTransitGatewayVpcAttachmentOutput
  acceptVpcEndpointConnections(input: AwsEC2AcceptVpcEndpointConnectionsInput!, config: AwsConfig): AwsEC2AcceptVpcEndpointConnectionsOutput
  acceptVpcPeeringConnection(input: AwsEC2AcceptVpcPeeringConnectionInput, config: AwsConfig): AwsEC2AcceptVpcPeeringConnectionOutput
  advertiseByoipCidr(input: AwsEC2AdvertiseByoipCidrInput!, config: AwsConfig): AwsEC2AdvertiseByoipCidrOutput
  allocateAddress(input: AwsEC2AllocateAddressInput, config: AwsConfig): AwsEC2AllocateAddressOutput
  allocateHosts(input: AwsEC2AllocateHostsInput!, config: AwsConfig): AwsEC2AllocateHostsOutput
  applySecurityGroupsToClientVpnTargetNetwork(input: AwsEC2ApplySecurityGroupsToClientVpnTargetNetworkInput!, config: AwsConfig): AwsEC2ApplySecurityGroupsToClientVpnTargetNetworkOutput
  assignIpv6Addresses(input: AwsEC2AssignIpv6AddressesInput!, config: AwsConfig): AwsEC2AssignIpv6AddressesOutput
  assignPrivateIpAddresses(input: AwsEC2AssignPrivateIpAddressesInput!, config: AwsConfig): AwsEC2AssignPrivateIpAddressesOutput
  associateAddress(input: AwsEC2AssociateAddressInput, config: AwsConfig): AwsEC2AssociateAddressOutput
  associateClientVpnTargetNetwork(input: AwsEC2AssociateClientVpnTargetNetworkInput!, config: AwsConfig): AwsEC2AssociateClientVpnTargetNetworkOutput
  associateDhcpOptions(input: AwsEC2AssociateDhcpOptionsInput!, config: AwsConfig): JSON
  associateEnclaveCertificateIamRole(input: AwsEC2AssociateEnclaveCertificateIamRoleInput, config: AwsConfig): AwsEC2AssociateEnclaveCertificateIamRoleOutput
  associateIamInstanceProfile(input: AwsEC2AssociateIamInstanceProfileInput!, config: AwsConfig): AwsEC2AssociateIamInstanceProfileOutput
  associateRouteTable(input: AwsEC2AssociateRouteTableInput!, config: AwsConfig): AwsEC2AssociateRouteTableOutput
  associateSubnetCidrBlock(input: AwsEC2AssociateSubnetCidrBlockInput!, config: AwsConfig): AwsEC2AssociateSubnetCidrBlockOutput
  associateTransitGatewayMulticastDomain(input: AwsEC2AssociateTransitGatewayMulticastDomainInput, config: AwsConfig): AwsEC2AssociateTransitGatewayMulticastDomainOutput
  associateTransitGatewayRouteTable(input: AwsEC2AssociateTransitGatewayRouteTableInput!, config: AwsConfig): AwsEC2AssociateTransitGatewayRouteTableOutput
  associateTrunkInterface(input: AwsEC2AssociateTrunkInterfaceInput!, config: AwsConfig): AwsEC2AssociateTrunkInterfaceOutput
  associateVpcCidrBlock(input: AwsEC2AssociateVpcCidrBlockInput!, config: AwsConfig): AwsEC2AssociateVpcCidrBlockOutput
  attachClassicLinkVpc(input: AwsEC2AttachClassicLinkVpcInput!, config: AwsConfig): AwsEC2AttachClassicLinkVpcOutput
  attachInternetGateway(input: AwsEC2AttachInternetGatewayInput!, config: AwsConfig): JSON
  attachNetworkInterface(input: AwsEC2AttachNetworkInterfaceInput!, config: AwsConfig): AwsEC2AttachNetworkInterfaceOutput
  attachVolume(input: AwsEC2AttachVolumeInput!, config: AwsConfig): JSON
  attachVpnGateway(input: AwsEC2AttachVpnGatewayInput!, config: AwsConfig): AwsEC2AttachVpnGatewayOutput
  authorizeClientVpnIngress(input: AwsEC2AuthorizeClientVpnIngressInput!, config: AwsConfig): AwsEC2AuthorizeClientVpnIngressOutput
  authorizeSecurityGroupEgress(input: AwsEC2AuthorizeSecurityGroupEgressInput!, config: AwsConfig): JSON
  authorizeSecurityGroupIngress(input: AwsEC2AuthorizeSecurityGroupIngressInput, config: AwsConfig): JSON
  bundleInstance(input: AwsEC2BundleInstanceInput!, config: AwsConfig): AwsEC2BundleInstanceOutput
  cancelBundleTask(input: AwsEC2CancelBundleTaskInput!, config: AwsConfig): AwsEC2CancelBundleTaskOutput
  cancelCapacityReservation(input: AwsEC2CancelCapacityReservationInput!, config: AwsConfig): AwsEC2CancelCapacityReservationOutput
  cancelConversionTask(input: AwsEC2CancelConversionTaskInput!, config: AwsConfig): JSON
  cancelExportTask(input: AwsEC2CancelExportTaskInput!, config: AwsConfig): JSON
  cancelImportTask(input: AwsEC2CancelImportTaskInput, config: AwsConfig): AwsEC2CancelImportTaskOutput
  cancelReservedInstancesListing(input: AwsEC2CancelReservedInstancesListingInput!, config: AwsConfig): AwsEC2CancelReservedInstancesListingOutput
  cancelSpotFleetRequests(input: AwsEC2CancelSpotFleetRequestsInput!, config: AwsConfig): AwsEC2CancelSpotFleetRequestsOutput
  cancelSpotInstanceRequests(input: AwsEC2CancelSpotInstanceRequestsInput!, config: AwsConfig): AwsEC2CancelSpotInstanceRequestsOutput
  confirmProductInstance(input: AwsEC2ConfirmProductInstanceInput!, config: AwsConfig): AwsEC2ConfirmProductInstanceOutput
  copyFpgaImage(input: AwsEC2CopyFpgaImageInput!, config: AwsConfig): AwsEC2CopyFpgaImageOutput
  copyImage(input: AwsEC2CopyImageInput!, config: AwsConfig): AwsEC2CopyImageOutput
  copySnapshot(input: AwsEC2CopySnapshotInput!, config: AwsConfig): AwsEC2CopySnapshotOutput
  createCapacityReservation(input: AwsEC2CreateCapacityReservationInput!, config: AwsConfig): AwsEC2CreateCapacityReservationOutput
  createCarrierGateway(input: AwsEC2CreateCarrierGatewayInput!, config: AwsConfig): AwsEC2CreateCarrierGatewayOutput
  createClientVpnEndpoint(input: AwsEC2CreateClientVpnEndpointInput!, config: AwsConfig): AwsEC2CreateClientVpnEndpointOutput
  createClientVpnRoute(input: AwsEC2CreateClientVpnRouteInput!, config: AwsConfig): AwsEC2CreateClientVpnRouteOutput
  createCustomerGateway(input: AwsEC2CreateCustomerGatewayInput!, config: AwsConfig): AwsEC2CreateCustomerGatewayOutput
  createDefaultSubnet(input: AwsEC2CreateDefaultSubnetInput!, config: AwsConfig): AwsEC2CreateDefaultSubnetOutput
  createDefaultVpc(input: AwsEC2CreateDefaultVpcInput, config: AwsConfig): AwsEC2CreateDefaultVpcOutput
  createDhcpOptions(input: AwsEC2CreateDhcpOptionsInput!, config: AwsConfig): AwsEC2CreateDhcpOptionsOutput
  createEgressOnlyInternetGateway(input: AwsEC2CreateEgressOnlyInternetGatewayInput!, config: AwsConfig): AwsEC2CreateEgressOnlyInternetGatewayOutput
  createFleet(input: AwsEC2CreateFleetInput!, config: AwsConfig): AwsEC2CreateFleetOutput
  createFlowLogs(input: AwsEC2CreateFlowLogsInput!, config: AwsConfig): AwsEC2CreateFlowLogsOutput
  createFpgaImage(input: AwsEC2CreateFpgaImageInput!, config: AwsConfig): AwsEC2CreateFpgaImageOutput
  createImage(input: AwsEC2CreateImageInput!, config: AwsConfig): AwsEC2CreateImageOutput
  createInstanceExportTask(input: AwsEC2CreateInstanceExportTaskInput!, config: AwsConfig): AwsEC2CreateInstanceExportTaskOutput
  createInternetGateway(input: AwsEC2CreateInternetGatewayInput, config: AwsConfig): AwsEC2CreateInternetGatewayOutput
  createKeyPair(input: AwsEC2CreateKeyPairInput!, config: AwsConfig): AwsEC2CreateKeyPairOutput
  createLaunchTemplate(input: AwsEC2CreateLaunchTemplateInput!, config: AwsConfig): AwsEC2CreateLaunchTemplateOutput
  createLaunchTemplateVersion(input: AwsEC2CreateLaunchTemplateVersionInput!, config: AwsConfig): AwsEC2CreateLaunchTemplateVersionOutput
  createLocalGatewayRoute(input: AwsEC2CreateLocalGatewayRouteInput!, config: AwsConfig): AwsEC2CreateLocalGatewayRouteOutput
  createLocalGatewayRouteTableVpcAssociation(input: AwsEC2CreateLocalGatewayRouteTableVpcAssociationInput!, config: AwsConfig): AwsEC2CreateLocalGatewayRouteTableVpcAssociationOutput
  createManagedPrefixList(input: AwsEC2CreateManagedPrefixListInput!, config: AwsConfig): AwsEC2CreateManagedPrefixListOutput
  createNatGateway(input: AwsEC2CreateNatGatewayInput!, config: AwsConfig): AwsEC2CreateNatGatewayOutput
  createNetworkAcl(input: AwsEC2CreateNetworkAclInput!, config: AwsConfig): AwsEC2CreateNetworkAclOutput
  createNetworkAclEntry(input: AwsEC2CreateNetworkAclEntryInput!, config: AwsConfig): JSON
  createNetworkInsightsPath(input: AwsEC2CreateNetworkInsightsPathInput!, config: AwsConfig): AwsEC2CreateNetworkInsightsPathOutput
  createNetworkInterface(input: AwsEC2CreateNetworkInterfaceInput!, config: AwsConfig): AwsEC2CreateNetworkInterfaceOutput
  createNetworkInterfacePermission(input: AwsEC2CreateNetworkInterfacePermissionInput!, config: AwsConfig): AwsEC2CreateNetworkInterfacePermissionOutput
  createPlacementGroup(input: AwsEC2CreatePlacementGroupInput, config: AwsConfig): AwsEC2CreatePlacementGroupOutput
  createReplaceRootVolumeTask(input: AwsEC2CreateReplaceRootVolumeTaskInput!, config: AwsConfig): AwsEC2CreateReplaceRootVolumeTaskOutput
  createReservedInstancesListing(input: AwsEC2CreateReservedInstancesListingInput!, config: AwsConfig): AwsEC2CreateReservedInstancesListingOutput
  createRestoreImageTask(input: AwsEC2CreateRestoreImageTaskInput!, config: AwsConfig): AwsEC2CreateRestoreImageTaskOutput
  createRoute(input: AwsEC2CreateRouteInput!, config: AwsConfig): AwsEC2CreateRouteOutput
  createRouteTable(input: AwsEC2CreateRouteTableInput!, config: AwsConfig): AwsEC2CreateRouteTableOutput
  createSecurityGroup(input: AwsEC2CreateSecurityGroupInput!, config: AwsConfig): AwsEC2CreateSecurityGroupOutput
  createSnapshot(input: AwsEC2CreateSnapshotInput!, config: AwsConfig): JSON
  createSnapshots(input: AwsEC2CreateSnapshotsInput!, config: AwsConfig): AwsEC2CreateSnapshotsOutput
  createSpotDatafeedSubscription(input: AwsEC2CreateSpotDatafeedSubscriptionInput!, config: AwsConfig): AwsEC2CreateSpotDatafeedSubscriptionOutput
  createStoreImageTask(input: AwsEC2CreateStoreImageTaskInput!, config: AwsConfig): AwsEC2CreateStoreImageTaskOutput
  createSubnet(input: AwsEC2CreateSubnetInput!, config: AwsConfig): AwsEC2CreateSubnetOutput
  createTags(input: AwsEC2CreateTagsInput!, config: AwsConfig): JSON
  createTrafficMirrorFilter(input: AwsEC2CreateTrafficMirrorFilterInput, config: AwsConfig): AwsEC2CreateTrafficMirrorFilterOutput
  createTrafficMirrorFilterRule(input: AwsEC2CreateTrafficMirrorFilterRuleInput!, config: AwsConfig): AwsEC2CreateTrafficMirrorFilterRuleOutput
  createTrafficMirrorSession(input: AwsEC2CreateTrafficMirrorSessionInput!, config: AwsConfig): AwsEC2CreateTrafficMirrorSessionOutput
  createTrafficMirrorTarget(input: AwsEC2CreateTrafficMirrorTargetInput, config: AwsConfig): AwsEC2CreateTrafficMirrorTargetOutput
  createTransitGateway(input: AwsEC2CreateTransitGatewayInput, config: AwsConfig): AwsEC2CreateTransitGatewayOutput
  createTransitGatewayConnect(input: AwsEC2CreateTransitGatewayConnectInput!, config: AwsConfig): AwsEC2CreateTransitGatewayConnectOutput
  createTransitGatewayConnectPeer(input: AwsEC2CreateTransitGatewayConnectPeerInput!, config: AwsConfig): AwsEC2CreateTransitGatewayConnectPeerOutput
  createTransitGatewayMulticastDomain(input: AwsEC2CreateTransitGatewayMulticastDomainInput!, config: AwsConfig): AwsEC2CreateTransitGatewayMulticastDomainOutput
  createTransitGatewayPeeringAttachment(input: AwsEC2CreateTransitGatewayPeeringAttachmentInput!, config: AwsConfig): AwsEC2CreateTransitGatewayPeeringAttachmentOutput
  createTransitGatewayPrefixListReference(input: AwsEC2CreateTransitGatewayPrefixListReferenceInput!, config: AwsConfig): AwsEC2CreateTransitGatewayPrefixListReferenceOutput
  createTransitGatewayRoute(input: AwsEC2CreateTransitGatewayRouteInput!, config: AwsConfig): AwsEC2CreateTransitGatewayRouteOutput
  createTransitGatewayRouteTable(input: AwsEC2CreateTransitGatewayRouteTableInput!, config: AwsConfig): AwsEC2CreateTransitGatewayRouteTableOutput
  createTransitGatewayVpcAttachment(input: AwsEC2CreateTransitGatewayVpcAttachmentInput!, config: AwsConfig): AwsEC2CreateTransitGatewayVpcAttachmentOutput
  createVolume(input: AwsEC2CreateVolumeInput!, config: AwsConfig): JSON
  createVpc(input: AwsEC2CreateVpcInput!, config: AwsConfig): AwsEC2CreateVpcOutput
  createVpcEndpoint(input: AwsEC2CreateVpcEndpointInput!, config: AwsConfig): AwsEC2CreateVpcEndpointOutput
  createVpcEndpointConnectionNotification(input: AwsEC2CreateVpcEndpointConnectionNotificationInput!, config: AwsConfig): AwsEC2CreateVpcEndpointConnectionNotificationOutput
  createVpcEndpointServiceConfiguration(input: AwsEC2CreateVpcEndpointServiceConfigurationInput, config: AwsConfig): AwsEC2CreateVpcEndpointServiceConfigurationOutput
  createVpcPeeringConnection(input: AwsEC2CreateVpcPeeringConnectionInput, config: AwsConfig): AwsEC2CreateVpcPeeringConnectionOutput
  createVpnConnection(input: AwsEC2CreateVpnConnectionInput!, config: AwsConfig): AwsEC2CreateVpnConnectionOutput
  createVpnConnectionRoute(input: AwsEC2CreateVpnConnectionRouteInput!, config: AwsConfig): JSON
  createVpnGateway(input: AwsEC2CreateVpnGatewayInput!, config: AwsConfig): AwsEC2CreateVpnGatewayOutput
  deleteCarrierGateway(input: AwsEC2DeleteCarrierGatewayInput!, config: AwsConfig): AwsEC2DeleteCarrierGatewayOutput
  deleteClientVpnEndpoint(input: AwsEC2DeleteClientVpnEndpointInput!, config: AwsConfig): AwsEC2DeleteClientVpnEndpointOutput
  deleteClientVpnRoute(input: AwsEC2DeleteClientVpnRouteInput!, config: AwsConfig): AwsEC2DeleteClientVpnRouteOutput
  deleteCustomerGateway(input: AwsEC2DeleteCustomerGatewayInput!, config: AwsConfig): JSON
  deleteDhcpOptions(input: AwsEC2DeleteDhcpOptionsInput!, config: AwsConfig): JSON
  deleteEgressOnlyInternetGateway(input: AwsEC2DeleteEgressOnlyInternetGatewayInput!, config: AwsConfig): AwsEC2DeleteEgressOnlyInternetGatewayOutput
  deleteFleets(input: AwsEC2DeleteFleetsInput!, config: AwsConfig): AwsEC2DeleteFleetsOutput
  deleteFlowLogs(input: AwsEC2DeleteFlowLogsInput!, config: AwsConfig): AwsEC2DeleteFlowLogsOutput
  deleteFpgaImage(input: AwsEC2DeleteFpgaImageInput!, config: AwsConfig): AwsEC2DeleteFpgaImageOutput
  deleteInternetGateway(input: AwsEC2DeleteInternetGatewayInput!, config: AwsConfig): JSON
  deleteKeyPair(input: AwsEC2DeleteKeyPairInput, config: AwsConfig): JSON
  deleteLaunchTemplate(input: AwsEC2DeleteLaunchTemplateInput, config: AwsConfig): AwsEC2DeleteLaunchTemplateOutput
  deleteLaunchTemplateVersions(input: AwsEC2DeleteLaunchTemplateVersionsInput!, config: AwsConfig): AwsEC2DeleteLaunchTemplateVersionsOutput
  deleteLocalGatewayRoute(input: AwsEC2DeleteLocalGatewayRouteInput!, config: AwsConfig): AwsEC2DeleteLocalGatewayRouteOutput
  deleteLocalGatewayRouteTableVpcAssociation(input: AwsEC2DeleteLocalGatewayRouteTableVpcAssociationInput!, config: AwsConfig): AwsEC2DeleteLocalGatewayRouteTableVpcAssociationOutput
  deleteManagedPrefixList(input: AwsEC2DeleteManagedPrefixListInput!, config: AwsConfig): AwsEC2DeleteManagedPrefixListOutput
  deleteNatGateway(input: AwsEC2DeleteNatGatewayInput!, config: AwsConfig): AwsEC2DeleteNatGatewayOutput
  deleteNetworkAcl(input: AwsEC2DeleteNetworkAclInput!, config: AwsConfig): JSON
  deleteNetworkAclEntry(input: AwsEC2DeleteNetworkAclEntryInput!, config: AwsConfig): JSON
  deleteNetworkInsightsAnalysis(input: AwsEC2DeleteNetworkInsightsAnalysisInput!, config: AwsConfig): AwsEC2DeleteNetworkInsightsAnalysisOutput
  deleteNetworkInsightsPath(input: AwsEC2DeleteNetworkInsightsPathInput!, config: AwsConfig): AwsEC2DeleteNetworkInsightsPathOutput
  deleteNetworkInterface(input: AwsEC2DeleteNetworkInterfaceInput!, config: AwsConfig): JSON
  deleteNetworkInterfacePermission(input: AwsEC2DeleteNetworkInterfacePermissionInput!, config: AwsConfig): AwsEC2DeleteNetworkInterfacePermissionOutput
  deletePlacementGroup(input: AwsEC2DeletePlacementGroupInput!, config: AwsConfig): JSON
  deleteQueuedReservedInstances(input: AwsEC2DeleteQueuedReservedInstancesInput!, config: AwsConfig): AwsEC2DeleteQueuedReservedInstancesOutput
  deleteRoute(input: AwsEC2DeleteRouteInput!, config: AwsConfig): JSON
  deleteRouteTable(input: AwsEC2DeleteRouteTableInput!, config: AwsConfig): JSON
  deleteSecurityGroup(input: AwsEC2DeleteSecurityGroupInput, config: AwsConfig): JSON
  deleteSnapshot(input: AwsEC2DeleteSnapshotInput!, config: AwsConfig): JSON
  deleteSpotDatafeedSubscription(input: AwsEC2DeleteSpotDatafeedSubscriptionInput, config: AwsConfig): JSON
  deleteSubnet(input: AwsEC2DeleteSubnetInput!, config: AwsConfig): JSON
  deleteTags(input: AwsEC2DeleteTagsInput!, config: AwsConfig): JSON
  deleteTrafficMirrorFilter(input: AwsEC2DeleteTrafficMirrorFilterInput!, config: AwsConfig): AwsEC2DeleteTrafficMirrorFilterOutput
  deleteTrafficMirrorFilterRule(input: AwsEC2DeleteTrafficMirrorFilterRuleInput!, config: AwsConfig): AwsEC2DeleteTrafficMirrorFilterRuleOutput
  deleteTrafficMirrorSession(input: AwsEC2DeleteTrafficMirrorSessionInput!, config: AwsConfig): AwsEC2DeleteTrafficMirrorSessionOutput
  deleteTrafficMirrorTarget(input: AwsEC2DeleteTrafficMirrorTargetInput!, config: AwsConfig): AwsEC2DeleteTrafficMirrorTargetOutput
  deleteTransitGateway(input: AwsEC2DeleteTransitGatewayInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayOutput
  deleteTransitGatewayConnect(input: AwsEC2DeleteTransitGatewayConnectInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayConnectOutput
  deleteTransitGatewayConnectPeer(input: AwsEC2DeleteTransitGatewayConnectPeerInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayConnectPeerOutput
  deleteTransitGatewayMulticastDomain(input: AwsEC2DeleteTransitGatewayMulticastDomainInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayMulticastDomainOutput
  deleteTransitGatewayPeeringAttachment(input: AwsEC2DeleteTransitGatewayPeeringAttachmentInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayPeeringAttachmentOutput
  deleteTransitGatewayPrefixListReference(input: AwsEC2DeleteTransitGatewayPrefixListReferenceInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayPrefixListReferenceOutput
  deleteTransitGatewayRoute(input: AwsEC2DeleteTransitGatewayRouteInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayRouteOutput
  deleteTransitGatewayRouteTable(input: AwsEC2DeleteTransitGatewayRouteTableInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayRouteTableOutput
  deleteTransitGatewayVpcAttachment(input: AwsEC2DeleteTransitGatewayVpcAttachmentInput!, config: AwsConfig): AwsEC2DeleteTransitGatewayVpcAttachmentOutput
  deleteVolume(input: AwsEC2DeleteVolumeInput!, config: AwsConfig): JSON
  deleteVpc(input: AwsEC2DeleteVpcInput!, config: AwsConfig): JSON
  deleteVpcEndpointConnectionNotifications(input: AwsEC2DeleteVpcEndpointConnectionNotificationsInput!, config: AwsConfig): AwsEC2DeleteVpcEndpointConnectionNotificationsOutput
  deleteVpcEndpointServiceConfigurations(input: AwsEC2DeleteVpcEndpointServiceConfigurationsInput!, config: AwsConfig): AwsEC2DeleteVpcEndpointServiceConfigurationsOutput
  deleteVpcEndpoints(input: AwsEC2DeleteVpcEndpointsInput!, config: AwsConfig): AwsEC2DeleteVpcEndpointsOutput
  deleteVpcPeeringConnection(input: AwsEC2DeleteVpcPeeringConnectionInput!, config: AwsConfig): AwsEC2DeleteVpcPeeringConnectionOutput
  deleteVpnConnection(input: AwsEC2DeleteVpnConnectionInput!, config: AwsConfig): JSON
  deleteVpnConnectionRoute(input: AwsEC2DeleteVpnConnectionRouteInput!, config: AwsConfig): JSON
  deleteVpnGateway(input: AwsEC2DeleteVpnGatewayInput!, config: AwsConfig): JSON
  deprovisionByoipCidr(input: AwsEC2DeprovisionByoipCidrInput!, config: AwsConfig): AwsEC2DeprovisionByoipCidrOutput
  deregisterImage(input: AwsEC2DeregisterImageInput!, config: AwsConfig): JSON
  deregisterInstanceEventNotificationAttributes(input: AwsEC2DeregisterInstanceEventNotificationAttributesInput, config: AwsConfig): AwsEC2DeregisterInstanceEventNotificationAttributesOutput
  deregisterTransitGatewayMulticastGroupMembers(input: AwsEC2DeregisterTransitGatewayMulticastGroupMembersInput, config: AwsConfig): AwsEC2DeregisterTransitGatewayMulticastGroupMembersOutput
  deregisterTransitGatewayMulticastGroupSources(input: AwsEC2DeregisterTransitGatewayMulticastGroupSourcesInput, config: AwsConfig): AwsEC2DeregisterTransitGatewayMulticastGroupSourcesOutput
  describeAccountAttributes(input: AwsEC2DescribeAccountAttributesInput, config: AwsConfig): AwsEC2DescribeAccountAttributesOutput
  describeAddresses(input: AwsEC2DescribeAddressesInput, config: AwsConfig): AwsEC2DescribeAddressesOutput
  describeAddressesAttribute(input: AwsEC2DescribeAddressesAttributeInput, config: AwsConfig): AwsEC2DescribeAddressesAttributeOutput
  describeAggregateIdFormat(input: AwsEC2DescribeAggregateIdFormatInput, config: AwsConfig): AwsEC2DescribeAggregateIdFormatOutput
  describeAvailabilityZones(input: AwsEC2DescribeAvailabilityZonesInput, config: AwsConfig): AwsEC2DescribeAvailabilityZonesOutput
  describeBundleTasks(input: AwsEC2DescribeBundleTasksInput, config: AwsConfig): AwsEC2DescribeBundleTasksOutput
  describeByoipCidrs(input: AwsEC2DescribeByoipCidrsInput!, config: AwsConfig): AwsEC2DescribeByoipCidrsOutput
  describeCapacityReservations(input: AwsEC2DescribeCapacityReservationsInput, config: AwsConfig): AwsEC2DescribeCapacityReservationsOutput
  describeCarrierGateways(input: AwsEC2DescribeCarrierGatewaysInput, config: AwsConfig): AwsEC2DescribeCarrierGatewaysOutput
  describeClassicLinkInstances(input: AwsEC2DescribeClassicLinkInstancesInput, config: AwsConfig): AwsEC2DescribeClassicLinkInstancesOutput
  describeClientVpnAuthorizationRules(input: AwsEC2DescribeClientVpnAuthorizationRulesInput!, config: AwsConfig): AwsEC2DescribeClientVpnAuthorizationRulesOutput
  describeClientVpnConnections(input: AwsEC2DescribeClientVpnConnectionsInput!, config: AwsConfig): AwsEC2DescribeClientVpnConnectionsOutput
  describeClientVpnEndpoints(input: AwsEC2DescribeClientVpnEndpointsInput, config: AwsConfig): AwsEC2DescribeClientVpnEndpointsOutput
  describeClientVpnRoutes(input: AwsEC2DescribeClientVpnRoutesInput!, config: AwsConfig): AwsEC2DescribeClientVpnRoutesOutput
  describeClientVpnTargetNetworks(input: AwsEC2DescribeClientVpnTargetNetworksInput!, config: AwsConfig): AwsEC2DescribeClientVpnTargetNetworksOutput
  describeCoipPools(input: AwsEC2DescribeCoipPoolsInput, config: AwsConfig): AwsEC2DescribeCoipPoolsOutput
  describeConversionTasks(input: AwsEC2DescribeConversionTasksInput, config: AwsConfig): AwsEC2DescribeConversionTasksOutput
  describeCustomerGateways(input: AwsEC2DescribeCustomerGatewaysInput, config: AwsConfig): AwsEC2DescribeCustomerGatewaysOutput
  describeDhcpOptions(input: AwsEC2DescribeDhcpOptionsInput, config: AwsConfig): AwsEC2DescribeDhcpOptionsOutput
  describeEgressOnlyInternetGateways(input: AwsEC2DescribeEgressOnlyInternetGatewaysInput, config: AwsConfig): AwsEC2DescribeEgressOnlyInternetGatewaysOutput
  describeElasticGpus(input: AwsEC2DescribeElasticGpusInput, config: AwsConfig): AwsEC2DescribeElasticGpusOutput
  describeExportImageTasks(input: AwsEC2DescribeExportImageTasksInput, config: AwsConfig): AwsEC2DescribeExportImageTasksOutput
  describeExportTasks(input: AwsEC2DescribeExportTasksInput, config: AwsConfig): AwsEC2DescribeExportTasksOutput
  describeFastSnapshotRestores(input: AwsEC2DescribeFastSnapshotRestoresInput, config: AwsConfig): AwsEC2DescribeFastSnapshotRestoresOutput
  describeFleetHistory(input: AwsEC2DescribeFleetHistoryInput!, config: AwsConfig): AwsEC2DescribeFleetHistoryOutput
  describeFleetInstances(input: AwsEC2DescribeFleetInstancesInput!, config: AwsConfig): AwsEC2DescribeFleetInstancesOutput
  describeFleets(input: AwsEC2DescribeFleetsInput, config: AwsConfig): AwsEC2DescribeFleetsOutput
  describeFlowLogs(input: AwsEC2DescribeFlowLogsInput, config: AwsConfig): AwsEC2DescribeFlowLogsOutput
  describeFpgaImageAttribute(input: AwsEC2DescribeFpgaImageAttributeInput!, config: AwsConfig): AwsEC2DescribeFpgaImageAttributeOutput
  describeFpgaImages(input: AwsEC2DescribeFpgaImagesInput, config: AwsConfig): AwsEC2DescribeFpgaImagesOutput
  describeHostReservationOfferings(input: AwsEC2DescribeHostReservationOfferingsInput, config: AwsConfig): AwsEC2DescribeHostReservationOfferingsOutput
  describeHostReservations(input: AwsEC2DescribeHostReservationsInput, config: AwsConfig): AwsEC2DescribeHostReservationsOutput
  describeHosts(input: AwsEC2DescribeHostsInput, config: AwsConfig): AwsEC2DescribeHostsOutput
  describeIamInstanceProfileAssociations(input: AwsEC2DescribeIamInstanceProfileAssociationsInput, config: AwsConfig): AwsEC2DescribeIamInstanceProfileAssociationsOutput
  describeIdFormat(input: AwsEC2DescribeIdFormatInput, config: AwsConfig): AwsEC2DescribeIdFormatOutput
  describeIdentityIdFormat(input: AwsEC2DescribeIdentityIdFormatInput!, config: AwsConfig): AwsEC2DescribeIdentityIdFormatOutput
  describeImageAttribute(input: AwsEC2DescribeImageAttributeInput!, config: AwsConfig): AwsEC2DescribeImageAttributeOutput
  describeImages(input: AwsEC2DescribeImagesInput, config: AwsConfig): AwsEC2DescribeImagesOutput
  describeImportImageTasks(input: AwsEC2DescribeImportImageTasksInput, config: AwsConfig): AwsEC2DescribeImportImageTasksOutput
  describeImportSnapshotTasks(input: AwsEC2DescribeImportSnapshotTasksInput, config: AwsConfig): AwsEC2DescribeImportSnapshotTasksOutput
  describeInstanceAttribute(input: AwsEC2DescribeInstanceAttributeInput!, config: AwsConfig): AwsEC2DescribeInstanceAttributeOutput
  describeInstanceCreditSpecifications(input: AwsEC2DescribeInstanceCreditSpecificationsInput, config: AwsConfig): AwsEC2DescribeInstanceCreditSpecificationsOutput
  describeInstanceEventNotificationAttributes(input: AwsEC2DescribeInstanceEventNotificationAttributesInput, config: AwsConfig): AwsEC2DescribeInstanceEventNotificationAttributesOutput
  describeInstanceStatus(input: AwsEC2DescribeInstanceStatusInput, config: AwsConfig): AwsEC2DescribeInstanceStatusOutput
  describeInstanceTypeOfferings(input: AwsEC2DescribeInstanceTypeOfferingsInput, config: AwsConfig): AwsEC2DescribeInstanceTypeOfferingsOutput
  describeInstanceTypes(input: AwsEC2DescribeInstanceTypesInput, config: AwsConfig): AwsEC2DescribeInstanceTypesOutput
  describeInstances(input: AwsEC2DescribeInstancesInput, config: AwsConfig): AwsEC2DescribeInstancesOutput
  describeInternetGateways(input: AwsEC2DescribeInternetGatewaysInput, config: AwsConfig): AwsEC2DescribeInternetGatewaysOutput
  describeIpv6Pools(input: AwsEC2DescribeIpv6PoolsInput, config: AwsConfig): AwsEC2DescribeIpv6PoolsOutput
  describeKeyPairs(input: AwsEC2DescribeKeyPairsInput, config: AwsConfig): AwsEC2DescribeKeyPairsOutput
  describeLaunchTemplateVersions(input: AwsEC2DescribeLaunchTemplateVersionsInput, config: AwsConfig): AwsEC2DescribeLaunchTemplateVersionsOutput
  describeLaunchTemplates(input: AwsEC2DescribeLaunchTemplatesInput, config: AwsConfig): AwsEC2DescribeLaunchTemplatesOutput
  describeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(input: AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, config: AwsConfig): AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput
  describeLocalGatewayRouteTableVpcAssociations(input: AwsEC2DescribeLocalGatewayRouteTableVpcAssociationsInput, config: AwsConfig): AwsEC2DescribeLocalGatewayRouteTableVpcAssociationsOutput
  describeLocalGatewayRouteTables(input: AwsEC2DescribeLocalGatewayRouteTablesInput, config: AwsConfig): AwsEC2DescribeLocalGatewayRouteTablesOutput
  describeLocalGatewayVirtualInterfaceGroups(input: AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsInput, config: AwsConfig): AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsOutput
  describeLocalGatewayVirtualInterfaces(input: AwsEC2DescribeLocalGatewayVirtualInterfacesInput, config: AwsConfig): AwsEC2DescribeLocalGatewayVirtualInterfacesOutput
  describeLocalGateways(input: AwsEC2DescribeLocalGatewaysInput, config: AwsConfig): AwsEC2DescribeLocalGatewaysOutput
  describeManagedPrefixLists(input: AwsEC2DescribeManagedPrefixListsInput, config: AwsConfig): AwsEC2DescribeManagedPrefixListsOutput
  describeMovingAddresses(input: AwsEC2DescribeMovingAddressesInput, config: AwsConfig): AwsEC2DescribeMovingAddressesOutput
  describeNatGateways(input: AwsEC2DescribeNatGatewaysInput, config: AwsConfig): AwsEC2DescribeNatGatewaysOutput
  describeNetworkAcls(input: AwsEC2DescribeNetworkAclsInput, config: AwsConfig): AwsEC2DescribeNetworkAclsOutput
  describeNetworkInsightsAnalyses(input: AwsEC2DescribeNetworkInsightsAnalysesInput, config: AwsConfig): AwsEC2DescribeNetworkInsightsAnalysesOutput
  describeNetworkInsightsPaths(input: AwsEC2DescribeNetworkInsightsPathsInput, config: AwsConfig): AwsEC2DescribeNetworkInsightsPathsOutput
  describeNetworkInterfaceAttribute(input: AwsEC2DescribeNetworkInterfaceAttributeInput!, config: AwsConfig): AwsEC2DescribeNetworkInterfaceAttributeOutput
  describeNetworkInterfacePermissions(input: AwsEC2DescribeNetworkInterfacePermissionsInput, config: AwsConfig): AwsEC2DescribeNetworkInterfacePermissionsOutput
  describeNetworkInterfaces(input: AwsEC2DescribeNetworkInterfacesInput, config: AwsConfig): AwsEC2DescribeNetworkInterfacesOutput
  describePlacementGroups(input: AwsEC2DescribePlacementGroupsInput, config: AwsConfig): AwsEC2DescribePlacementGroupsOutput
  describePrefixLists(input: AwsEC2DescribePrefixListsInput, config: AwsConfig): AwsEC2DescribePrefixListsOutput
  describePrincipalIdFormat(input: AwsEC2DescribePrincipalIdFormatInput, config: AwsConfig): AwsEC2DescribePrincipalIdFormatOutput
  describePublicIpv4Pools(input: AwsEC2DescribePublicIpv4PoolsInput, config: AwsConfig): AwsEC2DescribePublicIpv4PoolsOutput
  describeRegions(input: AwsEC2DescribeRegionsInput, config: AwsConfig): AwsEC2DescribeRegionsOutput
  describeReplaceRootVolumeTasks(input: AwsEC2DescribeReplaceRootVolumeTasksInput, config: AwsConfig): AwsEC2DescribeReplaceRootVolumeTasksOutput
  describeReservedInstances(input: AwsEC2DescribeReservedInstancesInput, config: AwsConfig): AwsEC2DescribeReservedInstancesOutput
  describeReservedInstancesListings(input: AwsEC2DescribeReservedInstancesListingsInput, config: AwsConfig): AwsEC2DescribeReservedInstancesListingsOutput
  describeReservedInstancesModifications(input: AwsEC2DescribeReservedInstancesModificationsInput, config: AwsConfig): AwsEC2DescribeReservedInstancesModificationsOutput
  describeReservedInstancesOfferings(input: AwsEC2DescribeReservedInstancesOfferingsInput, config: AwsConfig): AwsEC2DescribeReservedInstancesOfferingsOutput
  describeRouteTables(input: AwsEC2DescribeRouteTablesInput, config: AwsConfig): AwsEC2DescribeRouteTablesOutput
  describeScheduledInstanceAvailability(input: AwsEC2DescribeScheduledInstanceAvailabilityInput!, config: AwsConfig): AwsEC2DescribeScheduledInstanceAvailabilityOutput
  describeScheduledInstances(input: AwsEC2DescribeScheduledInstancesInput, config: AwsConfig): AwsEC2DescribeScheduledInstancesOutput
  describeSecurityGroupReferences(input: AwsEC2DescribeSecurityGroupReferencesInput!, config: AwsConfig): AwsEC2DescribeSecurityGroupReferencesOutput
  describeSecurityGroups(input: AwsEC2DescribeSecurityGroupsInput, config: AwsConfig): AwsEC2DescribeSecurityGroupsOutput
  describeSnapshotAttribute(input: AwsEC2DescribeSnapshotAttributeInput!, config: AwsConfig): AwsEC2DescribeSnapshotAttributeOutput
  describeSnapshots(input: AwsEC2DescribeSnapshotsInput, config: AwsConfig): AwsEC2DescribeSnapshotsOutput
  describeSpotDatafeedSubscription(input: AwsEC2DescribeSpotDatafeedSubscriptionInput, config: AwsConfig): AwsEC2DescribeSpotDatafeedSubscriptionOutput
  describeSpotFleetInstances(input: AwsEC2DescribeSpotFleetInstancesInput!, config: AwsConfig): AwsEC2DescribeSpotFleetInstancesOutput
  describeSpotFleetRequestHistory(input: AwsEC2DescribeSpotFleetRequestHistoryInput!, config: AwsConfig): AwsEC2DescribeSpotFleetRequestHistoryOutput
  describeSpotFleetRequests(input: AwsEC2DescribeSpotFleetRequestsInput, config: AwsConfig): AwsEC2DescribeSpotFleetRequestsOutput
  describeSpotInstanceRequests(input: AwsEC2DescribeSpotInstanceRequestsInput, config: AwsConfig): AwsEC2DescribeSpotInstanceRequestsOutput
  describeSpotPriceHistory(input: AwsEC2DescribeSpotPriceHistoryInput, config: AwsConfig): AwsEC2DescribeSpotPriceHistoryOutput
  describeStaleSecurityGroups(input: AwsEC2DescribeStaleSecurityGroupsInput!, config: AwsConfig): AwsEC2DescribeStaleSecurityGroupsOutput
  describeStoreImageTasks(input: AwsEC2DescribeStoreImageTasksInput, config: AwsConfig): AwsEC2DescribeStoreImageTasksOutput
  describeSubnets(input: AwsEC2DescribeSubnetsInput, config: AwsConfig): AwsEC2DescribeSubnetsOutput
  describeTags(input: AwsEC2DescribeTagsInput, config: AwsConfig): AwsEC2DescribeTagsOutput
  describeTrafficMirrorFilters(input: AwsEC2DescribeTrafficMirrorFiltersInput, config: AwsConfig): AwsEC2DescribeTrafficMirrorFiltersOutput
  describeTrafficMirrorSessions(input: AwsEC2DescribeTrafficMirrorSessionsInput, config: AwsConfig): AwsEC2DescribeTrafficMirrorSessionsOutput
  describeTrafficMirrorTargets(input: AwsEC2DescribeTrafficMirrorTargetsInput, config: AwsConfig): AwsEC2DescribeTrafficMirrorTargetsOutput
  describeTransitGatewayAttachments(input: AwsEC2DescribeTransitGatewayAttachmentsInput, config: AwsConfig): AwsEC2DescribeTransitGatewayAttachmentsOutput
  describeTransitGatewayConnectPeers(input: AwsEC2DescribeTransitGatewayConnectPeersInput, config: AwsConfig): AwsEC2DescribeTransitGatewayConnectPeersOutput
  describeTransitGatewayConnects(input: AwsEC2DescribeTransitGatewayConnectsInput, config: AwsConfig): AwsEC2DescribeTransitGatewayConnectsOutput
  describeTransitGatewayMulticastDomains(input: AwsEC2DescribeTransitGatewayMulticastDomainsInput, config: AwsConfig): AwsEC2DescribeTransitGatewayMulticastDomainsOutput
  describeTransitGatewayPeeringAttachments(input: AwsEC2DescribeTransitGatewayPeeringAttachmentsInput, config: AwsConfig): AwsEC2DescribeTransitGatewayPeeringAttachmentsOutput
  describeTransitGatewayRouteTables(input: AwsEC2DescribeTransitGatewayRouteTablesInput, config: AwsConfig): AwsEC2DescribeTransitGatewayRouteTablesOutput
  describeTransitGatewayVpcAttachments(input: AwsEC2DescribeTransitGatewayVpcAttachmentsInput, config: AwsConfig): AwsEC2DescribeTransitGatewayVpcAttachmentsOutput
  describeTransitGateways(input: AwsEC2DescribeTransitGatewaysInput, config: AwsConfig): AwsEC2DescribeTransitGatewaysOutput
  describeTrunkInterfaceAssociations(input: AwsEC2DescribeTrunkInterfaceAssociationsInput, config: AwsConfig): AwsEC2DescribeTrunkInterfaceAssociationsOutput
  describeVolumeAttribute(input: AwsEC2DescribeVolumeAttributeInput!, config: AwsConfig): AwsEC2DescribeVolumeAttributeOutput
  describeVolumeStatus(input: AwsEC2DescribeVolumeStatusInput, config: AwsConfig): AwsEC2DescribeVolumeStatusOutput
  describeVolumes(input: AwsEC2DescribeVolumesInput, config: AwsConfig): AwsEC2DescribeVolumesOutput
  describeVolumesModifications(input: AwsEC2DescribeVolumesModificationsInput, config: AwsConfig): AwsEC2DescribeVolumesModificationsOutput
  describeVpcAttribute(input: AwsEC2DescribeVpcAttributeInput!, config: AwsConfig): AwsEC2DescribeVpcAttributeOutput
  describeVpcClassicLink(input: AwsEC2DescribeVpcClassicLinkInput, config: AwsConfig): AwsEC2DescribeVpcClassicLinkOutput
  describeVpcClassicLinkDnsSupport(input: AwsEC2DescribeVpcClassicLinkDnsSupportInput, config: AwsConfig): AwsEC2DescribeVpcClassicLinkDnsSupportOutput
  describeVpcEndpointConnectionNotifications(input: AwsEC2DescribeVpcEndpointConnectionNotificationsInput, config: AwsConfig): AwsEC2DescribeVpcEndpointConnectionNotificationsOutput
  describeVpcEndpointConnections(input: AwsEC2DescribeVpcEndpointConnectionsInput, config: AwsConfig): AwsEC2DescribeVpcEndpointConnectionsOutput
  describeVpcEndpointServiceConfigurations(input: AwsEC2DescribeVpcEndpointServiceConfigurationsInput, config: AwsConfig): AwsEC2DescribeVpcEndpointServiceConfigurationsOutput
  describeVpcEndpointServicePermissions(input: AwsEC2DescribeVpcEndpointServicePermissionsInput!, config: AwsConfig): AwsEC2DescribeVpcEndpointServicePermissionsOutput
  describeVpcEndpointServices(input: AwsEC2DescribeVpcEndpointServicesInput, config: AwsConfig): AwsEC2DescribeVpcEndpointServicesOutput
  describeVpcEndpoints(input: AwsEC2DescribeVpcEndpointsInput, config: AwsConfig): AwsEC2DescribeVpcEndpointsOutput
  describeVpcPeeringConnections(input: AwsEC2DescribeVpcPeeringConnectionsInput, config: AwsConfig): AwsEC2DescribeVpcPeeringConnectionsOutput
  describeVpcs(input: AwsEC2DescribeVpcsInput, config: AwsConfig): AwsEC2DescribeVpcsOutput
  describeVpnConnections(input: AwsEC2DescribeVpnConnectionsInput, config: AwsConfig): AwsEC2DescribeVpnConnectionsOutput
  describeVpnGateways(input: AwsEC2DescribeVpnGatewaysInput, config: AwsConfig): AwsEC2DescribeVpnGatewaysOutput
  detachClassicLinkVpc(input: AwsEC2DetachClassicLinkVpcInput!, config: AwsConfig): AwsEC2DetachClassicLinkVpcOutput
  detachInternetGateway(input: AwsEC2DetachInternetGatewayInput!, config: AwsConfig): JSON
  detachNetworkInterface(input: AwsEC2DetachNetworkInterfaceInput!, config: AwsConfig): JSON
  detachVolume(input: AwsEC2DetachVolumeInput!, config: AwsConfig): JSON
  detachVpnGateway(input: AwsEC2DetachVpnGatewayInput!, config: AwsConfig): JSON
  disableEbsEncryptionByDefault(input: AwsEC2DisableEbsEncryptionByDefaultInput, config: AwsConfig): AwsEC2DisableEbsEncryptionByDefaultOutput
  disableFastSnapshotRestores(input: AwsEC2DisableFastSnapshotRestoresInput!, config: AwsConfig): AwsEC2DisableFastSnapshotRestoresOutput
  disableImageDeprecation(input: AwsEC2DisableImageDeprecationInput!, config: AwsConfig): AwsEC2DisableImageDeprecationOutput
  disableSerialConsoleAccess(input: AwsEC2DisableSerialConsoleAccessInput, config: AwsConfig): AwsEC2DisableSerialConsoleAccessOutput
  disableTransitGatewayRouteTablePropagation(input: AwsEC2DisableTransitGatewayRouteTablePropagationInput!, config: AwsConfig): AwsEC2DisableTransitGatewayRouteTablePropagationOutput
  disableVgwRoutePropagation(input: AwsEC2DisableVgwRoutePropagationInput!, config: AwsConfig): JSON
  disableVpcClassicLink(input: AwsEC2DisableVpcClassicLinkInput!, config: AwsConfig): AwsEC2DisableVpcClassicLinkOutput
  disableVpcClassicLinkDnsSupport(input: AwsEC2DisableVpcClassicLinkDnsSupportInput, config: AwsConfig): AwsEC2DisableVpcClassicLinkDnsSupportOutput
  disassociateAddress(input: AwsEC2DisassociateAddressInput, config: AwsConfig): JSON
  disassociateClientVpnTargetNetwork(input: AwsEC2DisassociateClientVpnTargetNetworkInput!, config: AwsConfig): AwsEC2DisassociateClientVpnTargetNetworkOutput
  disassociateEnclaveCertificateIamRole(input: AwsEC2DisassociateEnclaveCertificateIamRoleInput, config: AwsConfig): AwsEC2DisassociateEnclaveCertificateIamRoleOutput
  disassociateIamInstanceProfile(input: AwsEC2DisassociateIamInstanceProfileInput!, config: AwsConfig): AwsEC2DisassociateIamInstanceProfileOutput
  disassociateRouteTable(input: AwsEC2DisassociateRouteTableInput!, config: AwsConfig): JSON
  disassociateSubnetCidrBlock(input: AwsEC2DisassociateSubnetCidrBlockInput!, config: AwsConfig): AwsEC2DisassociateSubnetCidrBlockOutput
  disassociateTransitGatewayMulticastDomain(input: AwsEC2DisassociateTransitGatewayMulticastDomainInput, config: AwsConfig): AwsEC2DisassociateTransitGatewayMulticastDomainOutput
  disassociateTransitGatewayRouteTable(input: AwsEC2DisassociateTransitGatewayRouteTableInput!, config: AwsConfig): AwsEC2DisassociateTransitGatewayRouteTableOutput
  disassociateTrunkInterface(input: AwsEC2DisassociateTrunkInterfaceInput!, config: AwsConfig): AwsEC2DisassociateTrunkInterfaceOutput
  disassociateVpcCidrBlock(input: AwsEC2DisassociateVpcCidrBlockInput!, config: AwsConfig): AwsEC2DisassociateVpcCidrBlockOutput
  enableEbsEncryptionByDefault(input: AwsEC2EnableEbsEncryptionByDefaultInput, config: AwsConfig): AwsEC2EnableEbsEncryptionByDefaultOutput
  enableFastSnapshotRestores(input: AwsEC2EnableFastSnapshotRestoresInput!, config: AwsConfig): AwsEC2EnableFastSnapshotRestoresOutput
  enableImageDeprecation(input: AwsEC2EnableImageDeprecationInput!, config: AwsConfig): AwsEC2EnableImageDeprecationOutput
  enableSerialConsoleAccess(input: AwsEC2EnableSerialConsoleAccessInput, config: AwsConfig): AwsEC2EnableSerialConsoleAccessOutput
  enableTransitGatewayRouteTablePropagation(input: AwsEC2EnableTransitGatewayRouteTablePropagationInput!, config: AwsConfig): AwsEC2EnableTransitGatewayRouteTablePropagationOutput
  enableVgwRoutePropagation(input: AwsEC2EnableVgwRoutePropagationInput!, config: AwsConfig): JSON
  enableVolumeIO(input: AwsEC2EnableVolumeIOInput!, config: AwsConfig): JSON
  enableVpcClassicLink(input: AwsEC2EnableVpcClassicLinkInput!, config: AwsConfig): AwsEC2EnableVpcClassicLinkOutput
  enableVpcClassicLinkDnsSupport(input: AwsEC2EnableVpcClassicLinkDnsSupportInput, config: AwsConfig): AwsEC2EnableVpcClassicLinkDnsSupportOutput
  exportClientVpnClientCertificateRevocationList(input: AwsEC2ExportClientVpnClientCertificateRevocationListInput!, config: AwsConfig): AwsEC2ExportClientVpnClientCertificateRevocationListOutput
  exportClientVpnClientConfiguration(input: AwsEC2ExportClientVpnClientConfigurationInput!, config: AwsConfig): AwsEC2ExportClientVpnClientConfigurationOutput
  exportImage(input: AwsEC2ExportImageInput!, config: AwsConfig): AwsEC2ExportImageOutput
  exportTransitGatewayRoutes(input: AwsEC2ExportTransitGatewayRoutesInput!, config: AwsConfig): AwsEC2ExportTransitGatewayRoutesOutput
  getAssociatedEnclaveCertificateIamRoles(input: AwsEC2GetAssociatedEnclaveCertificateIamRolesInput, config: AwsConfig): AwsEC2GetAssociatedEnclaveCertificateIamRolesOutput
  getAssociatedIpv6PoolCidrs(input: AwsEC2GetAssociatedIpv6PoolCidrsInput!, config: AwsConfig): AwsEC2GetAssociatedIpv6PoolCidrsOutput
  getCapacityReservationUsage(input: AwsEC2GetCapacityReservationUsageInput!, config: AwsConfig): AwsEC2GetCapacityReservationUsageOutput
  getCoipPoolUsage(input: AwsEC2GetCoipPoolUsageInput!, config: AwsConfig): AwsEC2GetCoipPoolUsageOutput
  getConsoleOutput(input: AwsEC2GetConsoleOutputInput!, config: AwsConfig): AwsEC2GetConsoleOutputOutput
  getConsoleScreenshot(input: AwsEC2GetConsoleScreenshotInput!, config: AwsConfig): AwsEC2GetConsoleScreenshotOutput
  getDefaultCreditSpecification(input: AwsEC2GetDefaultCreditSpecificationInput!, config: AwsConfig): AwsEC2GetDefaultCreditSpecificationOutput
  getEbsDefaultKmsKeyId(input: AwsEC2GetEbsDefaultKmsKeyIdInput, config: AwsConfig): AwsEC2GetEbsDefaultKmsKeyIdOutput
  getEbsEncryptionByDefault(input: AwsEC2GetEbsEncryptionByDefaultInput, config: AwsConfig): AwsEC2GetEbsEncryptionByDefaultOutput
  getFlowLogsIntegrationTemplate(input: AwsEC2GetFlowLogsIntegrationTemplateInput!, config: AwsConfig): AwsEC2GetFlowLogsIntegrationTemplateOutput
  getGroupsForCapacityReservation(input: AwsEC2GetGroupsForCapacityReservationInput!, config: AwsConfig): AwsEC2GetGroupsForCapacityReservationOutput
  getHostReservationPurchasePreview(input: AwsEC2GetHostReservationPurchasePreviewInput!, config: AwsConfig): AwsEC2GetHostReservationPurchasePreviewOutput
  getLaunchTemplateData(input: AwsEC2GetLaunchTemplateDataInput!, config: AwsConfig): AwsEC2GetLaunchTemplateDataOutput
  getManagedPrefixListAssociations(input: AwsEC2GetManagedPrefixListAssociationsInput!, config: AwsConfig): AwsEC2GetManagedPrefixListAssociationsOutput
  getManagedPrefixListEntries(input: AwsEC2GetManagedPrefixListEntriesInput!, config: AwsConfig): AwsEC2GetManagedPrefixListEntriesOutput
  getPasswordData(input: AwsEC2GetPasswordDataInput!, config: AwsConfig): AwsEC2GetPasswordDataOutput
  getReservedInstancesExchangeQuote(input: AwsEC2GetReservedInstancesExchangeQuoteInput!, config: AwsConfig): AwsEC2GetReservedInstancesExchangeQuoteOutput
  getSerialConsoleAccessStatus(input: AwsEC2GetSerialConsoleAccessStatusInput, config: AwsConfig): AwsEC2GetSerialConsoleAccessStatusOutput
  getTransitGatewayAttachmentPropagations(input: AwsEC2GetTransitGatewayAttachmentPropagationsInput!, config: AwsConfig): AwsEC2GetTransitGatewayAttachmentPropagationsOutput
  getTransitGatewayMulticastDomainAssociations(input: AwsEC2GetTransitGatewayMulticastDomainAssociationsInput, config: AwsConfig): AwsEC2GetTransitGatewayMulticastDomainAssociationsOutput
  getTransitGatewayPrefixListReferences(input: AwsEC2GetTransitGatewayPrefixListReferencesInput!, config: AwsConfig): AwsEC2GetTransitGatewayPrefixListReferencesOutput
  getTransitGatewayRouteTableAssociations(input: AwsEC2GetTransitGatewayRouteTableAssociationsInput!, config: AwsConfig): AwsEC2GetTransitGatewayRouteTableAssociationsOutput
  getTransitGatewayRouteTablePropagations(input: AwsEC2GetTransitGatewayRouteTablePropagationsInput!, config: AwsConfig): AwsEC2GetTransitGatewayRouteTablePropagationsOutput
  importClientVpnClientCertificateRevocationList(input: AwsEC2ImportClientVpnClientCertificateRevocationListInput!, config: AwsConfig): AwsEC2ImportClientVpnClientCertificateRevocationListOutput
  importImage(input: AwsEC2ImportImageInput, config: AwsConfig): AwsEC2ImportImageOutput
  importInstance(input: AwsEC2ImportInstanceInput!, config: AwsConfig): AwsEC2ImportInstanceOutput
  importKeyPair(input: AwsEC2ImportKeyPairInput!, config: AwsConfig): AwsEC2ImportKeyPairOutput
  importSnapshot(input: AwsEC2ImportSnapshotInput, config: AwsConfig): AwsEC2ImportSnapshotOutput
  importVolume(input: AwsEC2ImportVolumeInput!, config: AwsConfig): AwsEC2ImportVolumeOutput
  modifyAddressAttribute(input: AwsEC2ModifyAddressAttributeInput!, config: AwsConfig): AwsEC2ModifyAddressAttributeOutput
  modifyAvailabilityZoneGroup(input: AwsEC2ModifyAvailabilityZoneGroupInput!, config: AwsConfig): AwsEC2ModifyAvailabilityZoneGroupOutput
  modifyCapacityReservation(input: AwsEC2ModifyCapacityReservationInput!, config: AwsConfig): AwsEC2ModifyCapacityReservationOutput
  modifyClientVpnEndpoint(input: AwsEC2ModifyClientVpnEndpointInput!, config: AwsConfig): AwsEC2ModifyClientVpnEndpointOutput
  modifyDefaultCreditSpecification(input: AwsEC2ModifyDefaultCreditSpecificationInput!, config: AwsConfig): AwsEC2ModifyDefaultCreditSpecificationOutput
  modifyEbsDefaultKmsKeyId(input: AwsEC2ModifyEbsDefaultKmsKeyIdInput!, config: AwsConfig): AwsEC2ModifyEbsDefaultKmsKeyIdOutput
  modifyFleet(input: AwsEC2ModifyFleetInput!, config: AwsConfig): AwsEC2ModifyFleetOutput
  modifyFpgaImageAttribute(input: AwsEC2ModifyFpgaImageAttributeInput!, config: AwsConfig): AwsEC2ModifyFpgaImageAttributeOutput
  modifyHosts(input: AwsEC2ModifyHostsInput!, config: AwsConfig): AwsEC2ModifyHostsOutput
  modifyIdFormat(input: AwsEC2ModifyIdFormatInput!, config: AwsConfig): JSON
  modifyIdentityIdFormat(input: AwsEC2ModifyIdentityIdFormatInput!, config: AwsConfig): JSON
  modifyImageAttribute(input: AwsEC2ModifyImageAttributeInput!, config: AwsConfig): JSON
  modifyInstanceAttribute(input: AwsEC2ModifyInstanceAttributeInput!, config: AwsConfig): JSON
  modifyInstanceCapacityReservationAttributes(input: AwsEC2ModifyInstanceCapacityReservationAttributesInput!, config: AwsConfig): AwsEC2ModifyInstanceCapacityReservationAttributesOutput
  modifyInstanceCreditSpecification(input: AwsEC2ModifyInstanceCreditSpecificationInput!, config: AwsConfig): AwsEC2ModifyInstanceCreditSpecificationOutput
  modifyInstanceEventStartTime(input: AwsEC2ModifyInstanceEventStartTimeInput!, config: AwsConfig): AwsEC2ModifyInstanceEventStartTimeOutput
  modifyInstanceMetadataOptions(input: AwsEC2ModifyInstanceMetadataOptionsInput!, config: AwsConfig): AwsEC2ModifyInstanceMetadataOptionsOutput
  modifyInstancePlacement(input: AwsEC2ModifyInstancePlacementInput!, config: AwsConfig): AwsEC2ModifyInstancePlacementOutput
  modifyLaunchTemplate(input: AwsEC2ModifyLaunchTemplateInput, config: AwsConfig): AwsEC2ModifyLaunchTemplateOutput
  modifyManagedPrefixList(input: AwsEC2ModifyManagedPrefixListInput!, config: AwsConfig): AwsEC2ModifyManagedPrefixListOutput
  modifyNetworkInterfaceAttribute(input: AwsEC2ModifyNetworkInterfaceAttributeInput!, config: AwsConfig): JSON
  modifyReservedInstances(input: AwsEC2ModifyReservedInstancesInput!, config: AwsConfig): AwsEC2ModifyReservedInstancesOutput
  modifySnapshotAttribute(input: AwsEC2ModifySnapshotAttributeInput!, config: AwsConfig): JSON
  modifySpotFleetRequest(input: AwsEC2ModifySpotFleetRequestInput!, config: AwsConfig): AwsEC2ModifySpotFleetRequestOutput
  modifySubnetAttribute(input: AwsEC2ModifySubnetAttributeInput!, config: AwsConfig): JSON
  modifyTrafficMirrorFilterNetworkServices(input: AwsEC2ModifyTrafficMirrorFilterNetworkServicesInput!, config: AwsConfig): AwsEC2ModifyTrafficMirrorFilterNetworkServicesOutput
  modifyTrafficMirrorFilterRule(input: AwsEC2ModifyTrafficMirrorFilterRuleInput!, config: AwsConfig): AwsEC2ModifyTrafficMirrorFilterRuleOutput
  modifyTrafficMirrorSession(input: AwsEC2ModifyTrafficMirrorSessionInput!, config: AwsConfig): AwsEC2ModifyTrafficMirrorSessionOutput
  modifyTransitGateway(input: AwsEC2ModifyTransitGatewayInput!, config: AwsConfig): AwsEC2ModifyTransitGatewayOutput
  modifyTransitGatewayPrefixListReference(input: AwsEC2ModifyTransitGatewayPrefixListReferenceInput!, config: AwsConfig): AwsEC2ModifyTransitGatewayPrefixListReferenceOutput
  modifyTransitGatewayVpcAttachment(input: AwsEC2ModifyTransitGatewayVpcAttachmentInput!, config: AwsConfig): AwsEC2ModifyTransitGatewayVpcAttachmentOutput
  modifyVolume(input: AwsEC2ModifyVolumeInput!, config: AwsConfig): AwsEC2ModifyVolumeOutput
  modifyVolumeAttribute(input: AwsEC2ModifyVolumeAttributeInput!, config: AwsConfig): JSON
  modifyVpcAttribute(input: AwsEC2ModifyVpcAttributeInput!, config: AwsConfig): JSON
  modifyVpcEndpoint(input: AwsEC2ModifyVpcEndpointInput!, config: AwsConfig): AwsEC2ModifyVpcEndpointOutput
  modifyVpcEndpointConnectionNotification(input: AwsEC2ModifyVpcEndpointConnectionNotificationInput!, config: AwsConfig): AwsEC2ModifyVpcEndpointConnectionNotificationOutput
  modifyVpcEndpointServiceConfiguration(input: AwsEC2ModifyVpcEndpointServiceConfigurationInput!, config: AwsConfig): AwsEC2ModifyVpcEndpointServiceConfigurationOutput
  modifyVpcEndpointServicePermissions(input: AwsEC2ModifyVpcEndpointServicePermissionsInput!, config: AwsConfig): AwsEC2ModifyVpcEndpointServicePermissionsOutput
  modifyVpcPeeringConnectionOptions(input: AwsEC2ModifyVpcPeeringConnectionOptionsInput!, config: AwsConfig): AwsEC2ModifyVpcPeeringConnectionOptionsOutput
  modifyVpcTenancy(input: AwsEC2ModifyVpcTenancyInput!, config: AwsConfig): AwsEC2ModifyVpcTenancyOutput
  modifyVpnConnection(input: AwsEC2ModifyVpnConnectionInput!, config: AwsConfig): AwsEC2ModifyVpnConnectionOutput
  modifyVpnConnectionOptions(input: AwsEC2ModifyVpnConnectionOptionsInput!, config: AwsConfig): AwsEC2ModifyVpnConnectionOptionsOutput
  modifyVpnTunnelCertificate(input: AwsEC2ModifyVpnTunnelCertificateInput!, config: AwsConfig): AwsEC2ModifyVpnTunnelCertificateOutput
  modifyVpnTunnelOptions(input: AwsEC2ModifyVpnTunnelOptionsInput!, config: AwsConfig): AwsEC2ModifyVpnTunnelOptionsOutput
  monitorInstances(input: AwsEC2MonitorInstancesInput!, config: AwsConfig): AwsEC2MonitorInstancesOutput
  moveAddressToVpc(input: AwsEC2MoveAddressToVpcInput!, config: AwsConfig): AwsEC2MoveAddressToVpcOutput
  provisionByoipCidr(input: AwsEC2ProvisionByoipCidrInput!, config: AwsConfig): AwsEC2ProvisionByoipCidrOutput
  purchaseHostReservation(input: AwsEC2PurchaseHostReservationInput!, config: AwsConfig): AwsEC2PurchaseHostReservationOutput
  purchaseReservedInstancesOffering(input: AwsEC2PurchaseReservedInstancesOfferingInput!, config: AwsConfig): AwsEC2PurchaseReservedInstancesOfferingOutput
  purchaseScheduledInstances(input: AwsEC2PurchaseScheduledInstancesInput!, config: AwsConfig): AwsEC2PurchaseScheduledInstancesOutput
  rebootInstances(input: AwsEC2RebootInstancesInput!, config: AwsConfig): JSON
  registerImage(input: AwsEC2RegisterImageInput!, config: AwsConfig): AwsEC2RegisterImageOutput
  registerInstanceEventNotificationAttributes(input: AwsEC2RegisterInstanceEventNotificationAttributesInput, config: AwsConfig): AwsEC2RegisterInstanceEventNotificationAttributesOutput
  registerTransitGatewayMulticastGroupMembers(input: AwsEC2RegisterTransitGatewayMulticastGroupMembersInput, config: AwsConfig): AwsEC2RegisterTransitGatewayMulticastGroupMembersOutput
  registerTransitGatewayMulticastGroupSources(input: AwsEC2RegisterTransitGatewayMulticastGroupSourcesInput, config: AwsConfig): AwsEC2RegisterTransitGatewayMulticastGroupSourcesOutput
  rejectTransitGatewayMulticastDomainAssociations(input: AwsEC2RejectTransitGatewayMulticastDomainAssociationsInput, config: AwsConfig): AwsEC2RejectTransitGatewayMulticastDomainAssociationsOutput
  rejectTransitGatewayPeeringAttachment(input: AwsEC2RejectTransitGatewayPeeringAttachmentInput!, config: AwsConfig): AwsEC2RejectTransitGatewayPeeringAttachmentOutput
  rejectTransitGatewayVpcAttachment(input: AwsEC2RejectTransitGatewayVpcAttachmentInput!, config: AwsConfig): AwsEC2RejectTransitGatewayVpcAttachmentOutput
  rejectVpcEndpointConnections(input: AwsEC2RejectVpcEndpointConnectionsInput!, config: AwsConfig): AwsEC2RejectVpcEndpointConnectionsOutput
  rejectVpcPeeringConnection(input: AwsEC2RejectVpcPeeringConnectionInput!, config: AwsConfig): AwsEC2RejectVpcPeeringConnectionOutput
  releaseAddress(input: AwsEC2ReleaseAddressInput, config: AwsConfig): JSON
  releaseHosts(input: AwsEC2ReleaseHostsInput!, config: AwsConfig): AwsEC2ReleaseHostsOutput
  replaceIamInstanceProfileAssociation(input: AwsEC2ReplaceIamInstanceProfileAssociationInput!, config: AwsConfig): AwsEC2ReplaceIamInstanceProfileAssociationOutput
  replaceNetworkAclAssociation(input: AwsEC2ReplaceNetworkAclAssociationInput!, config: AwsConfig): AwsEC2ReplaceNetworkAclAssociationOutput
  replaceNetworkAclEntry(input: AwsEC2ReplaceNetworkAclEntryInput!, config: AwsConfig): JSON
  replaceRoute(input: AwsEC2ReplaceRouteInput!, config: AwsConfig): JSON
  replaceRouteTableAssociation(input: AwsEC2ReplaceRouteTableAssociationInput!, config: AwsConfig): AwsEC2ReplaceRouteTableAssociationOutput
  replaceTransitGatewayRoute(input: AwsEC2ReplaceTransitGatewayRouteInput!, config: AwsConfig): AwsEC2ReplaceTransitGatewayRouteOutput
  reportInstanceStatus(input: AwsEC2ReportInstanceStatusInput!, config: AwsConfig): JSON
  requestSpotFleet(input: AwsEC2RequestSpotFleetInput!, config: AwsConfig): AwsEC2RequestSpotFleetOutput
  requestSpotInstances(input: AwsEC2RequestSpotInstancesInput, config: AwsConfig): AwsEC2RequestSpotInstancesOutput
  resetAddressAttribute(input: AwsEC2ResetAddressAttributeInput!, config: AwsConfig): AwsEC2ResetAddressAttributeOutput
  resetEbsDefaultKmsKeyId(input: AwsEC2ResetEbsDefaultKmsKeyIdInput, config: AwsConfig): AwsEC2ResetEbsDefaultKmsKeyIdOutput
  resetFpgaImageAttribute(input: AwsEC2ResetFpgaImageAttributeInput!, config: AwsConfig): AwsEC2ResetFpgaImageAttributeOutput
  resetImageAttribute(input: AwsEC2ResetImageAttributeInput!, config: AwsConfig): JSON
  resetInstanceAttribute(input: AwsEC2ResetInstanceAttributeInput!, config: AwsConfig): JSON
  resetNetworkInterfaceAttribute(input: AwsEC2ResetNetworkInterfaceAttributeInput!, config: AwsConfig): JSON
  resetSnapshotAttribute(input: AwsEC2ResetSnapshotAttributeInput!, config: AwsConfig): JSON
  restoreAddressToClassic(input: AwsEC2RestoreAddressToClassicInput!, config: AwsConfig): AwsEC2RestoreAddressToClassicOutput
  restoreManagedPrefixListVersion(input: AwsEC2RestoreManagedPrefixListVersionInput!, config: AwsConfig): AwsEC2RestoreManagedPrefixListVersionOutput
  revokeClientVpnIngress(input: AwsEC2RevokeClientVpnIngressInput!, config: AwsConfig): AwsEC2RevokeClientVpnIngressOutput
  revokeSecurityGroupEgress(input: AwsEC2RevokeSecurityGroupEgressInput!, config: AwsConfig): AwsEC2RevokeSecurityGroupEgressOutput
  revokeSecurityGroupIngress(input: AwsEC2RevokeSecurityGroupIngressInput, config: AwsConfig): AwsEC2RevokeSecurityGroupIngressOutput
  runInstances(input: AwsEC2RunInstancesInput!, config: AwsConfig): JSON
  runScheduledInstances(input: AwsEC2RunScheduledInstancesInput!, config: AwsConfig): AwsEC2RunScheduledInstancesOutput
  searchLocalGatewayRoutes(input: AwsEC2SearchLocalGatewayRoutesInput!, config: AwsConfig): AwsEC2SearchLocalGatewayRoutesOutput
  searchTransitGatewayMulticastGroups(input: AwsEC2SearchTransitGatewayMulticastGroupsInput, config: AwsConfig): AwsEC2SearchTransitGatewayMulticastGroupsOutput
  searchTransitGatewayRoutes(input: AwsEC2SearchTransitGatewayRoutesInput!, config: AwsConfig): AwsEC2SearchTransitGatewayRoutesOutput
  sendDiagnosticInterrupt(input: AwsEC2SendDiagnosticInterruptInput!, config: AwsConfig): JSON
  startInstances(input: AwsEC2StartInstancesInput!, config: AwsConfig): AwsEC2StartInstancesOutput
  startNetworkInsightsAnalysis(input: AwsEC2StartNetworkInsightsAnalysisInput!, config: AwsConfig): AwsEC2StartNetworkInsightsAnalysisOutput
  startVpcEndpointServicePrivateDnsVerification(input: AwsEC2StartVpcEndpointServicePrivateDnsVerificationInput!, config: AwsConfig): AwsEC2StartVpcEndpointServicePrivateDnsVerificationOutput
  stopInstances(input: AwsEC2StopInstancesInput!, config: AwsConfig): AwsEC2StopInstancesOutput
  terminateClientVpnConnections(input: AwsEC2TerminateClientVpnConnectionsInput!, config: AwsConfig): AwsEC2TerminateClientVpnConnectionsOutput
  terminateInstances(input: AwsEC2TerminateInstancesInput!, config: AwsConfig): AwsEC2TerminateInstancesOutput
  unassignIpv6Addresses(input: AwsEC2UnassignIpv6AddressesInput!, config: AwsConfig): AwsEC2UnassignIpv6AddressesOutput
  unassignPrivateIpAddresses(input: AwsEC2UnassignPrivateIpAddressesInput!, config: AwsConfig): JSON
  unmonitorInstances(input: AwsEC2UnmonitorInstancesInput!, config: AwsConfig): AwsEC2UnmonitorInstancesOutput
  updateSecurityGroupRuleDescriptionsEgress(input: AwsEC2UpdateSecurityGroupRuleDescriptionsEgressInput!, config: AwsConfig): AwsEC2UpdateSecurityGroupRuleDescriptionsEgressOutput
  updateSecurityGroupRuleDescriptionsIngress(input: AwsEC2UpdateSecurityGroupRuleDescriptionsIngressInput!, config: AwsConfig): AwsEC2UpdateSecurityGroupRuleDescriptionsIngressOutput
  withdrawByoipCidr(input: AwsEC2WithdrawByoipCidrInput!, config: AwsConfig): AwsEC2WithdrawByoipCidrOutput
}

type AwsEC2AcceptReservedInstancesExchangeQuoteOutput {
  ExchangeId: String
}

input AwsEC2AcceptReservedInstancesExchangeQuoteInput {
  DryRun: Boolean
  ReservedInstanceIds: [String]!
  TargetConfigurations: [AwsEC2S5Input]
}

input AwsEC2S5Input {
  InstanceCount: Int
  OfferingId: String!
}

type AwsEC2AcceptTransitGatewayMulticastDomainAssociationsOutput {
  Associations: AwsEC2Sg
}

type AwsEC2Sg {
  TransitGatewayMulticastDomainId: String
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  ResourceOwnerId: String
  Subnets: [AwsEC2Sj]
}

type AwsEC2Sj {
  SubnetId: String
  State: String
}

input AwsEC2AcceptTransitGatewayMulticastDomainAssociationsInput {
  TransitGatewayMulticastDomainId: String
  TransitGatewayAttachmentId: String
  SubnetIds: [String]
  DryRun: Boolean
}

type AwsEC2AcceptTransitGatewayPeeringAttachmentOutput {
  TransitGatewayPeeringAttachment: AwsEC2Sn
}

type AwsEC2Sn {
  TransitGatewayAttachmentId: String
  RequesterTgwInfo: AwsEC2So
  AccepterTgwInfo: AwsEC2So
  Status: AwsEC2SnStatus
  State: String
  CreationTime: Date
  Tags: [AwsEC2Ss]
}

type AwsEC2So {
  TransitGatewayId: String
  OwnerId: String
  Region: String
}

type AwsEC2SnStatus {
  Code: String
  Message: String
}

type AwsEC2Ss {
  Key: String
  Value: String
}

input AwsEC2AcceptTransitGatewayPeeringAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2AcceptTransitGatewayVpcAttachmentOutput {
  TransitGatewayVpcAttachment: AwsEC2Sw
}

type AwsEC2Sw {
  TransitGatewayAttachmentId: String
  TransitGatewayId: String
  VpcId: String
  VpcOwnerId: String
  State: String
  SubnetIds: [String]
  CreationTime: Date
  Options: AwsEC2SwOptions
  Tags: [AwsEC2Ss]
}

type AwsEC2SwOptions {
  DnsSupport: String
  Ipv6Support: String
  ApplianceModeSupport: String
}

input AwsEC2AcceptTransitGatewayVpcAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2AcceptVpcEndpointConnectionsOutput {
  Unsuccessful: [AwsEC2S17]
}

type AwsEC2S17 {
  Error: AwsEC2S17Error
  ResourceId: String
}

type AwsEC2S17Error {
  Code: String
  Message: String
}

input AwsEC2AcceptVpcEndpointConnectionsInput {
  DryRun: Boolean
  ServiceId: String!
  VpcEndpointIds: [String]!
}

type AwsEC2AcceptVpcPeeringConnectionOutput {
  VpcPeeringConnection: AwsEC2S1c
}

type AwsEC2S1c {
  AccepterVpcInfo: AwsEC2S1d
  ExpirationTime: Date
  RequesterVpcInfo: AwsEC2S1d
  Status: AwsEC2S1cStatus
  Tags: [AwsEC2Ss]
  VpcPeeringConnectionId: String
}

type AwsEC2S1d {
  CidrBlock: String
  Ipv6CidrBlockSet: [AwsEC2S1dIpv6CidrBlockSet]
  CidrBlockSet: [AwsEC2S1dCidrBlockSet]
  OwnerId: String
  PeeringOptions: AwsEC2S1dPeeringOptions
  VpcId: String
  Region: String
}

type AwsEC2S1dIpv6CidrBlockSet {
  Ipv6CidrBlock: String
}

type AwsEC2S1dCidrBlockSet {
  CidrBlock: String
}

type AwsEC2S1dPeeringOptions {
  AllowDnsResolutionFromRemoteVpc: Boolean
  AllowEgressFromLocalClassicLinkToRemoteVpc: Boolean
  AllowEgressFromLocalVpcToRemoteClassicLink: Boolean
}

type AwsEC2S1cStatus {
  Code: String
  Message: String
}

input AwsEC2AcceptVpcPeeringConnectionInput {
  DryRun: Boolean
  VpcPeeringConnectionId: String
}

type AwsEC2AdvertiseByoipCidrOutput {
  ByoipCidr: AwsEC2S1n
}

type AwsEC2S1n {
  Cidr: String
  Description: String
  StatusMessage: String
  State: String
}

input AwsEC2AdvertiseByoipCidrInput {
  Cidr: String!
  DryRun: Boolean
}

type AwsEC2AllocateAddressOutput {
  PublicIp: String
  AllocationId: String
  PublicIpv4Pool: String
  NetworkBorderGroup: String
  Domain: String
  CustomerOwnedIp: String
  CustomerOwnedIpv4Pool: String
  CarrierIp: String
}

input AwsEC2AllocateAddressInput {
  Domain: String
  Address: String
  PublicIpv4Pool: String
  NetworkBorderGroup: String
  CustomerOwnedIpv4Pool: String
  DryRun: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2S1tInput {
  ResourceType: String
  Tags: [AwsEC2SsInput]
}

input AwsEC2SsInput {
  Key: String
  Value: String
}

type AwsEC2AllocateHostsOutput {
  HostIds: [String]
}

input AwsEC2AllocateHostsInput {
  AutoPlacement: String
  AvailabilityZone: String!
  ClientToken: String
  InstanceType: String
  InstanceFamily: String
  Quantity: Int!
  TagSpecifications: [AwsEC2S1tInput]
  HostRecovery: String
}

type AwsEC2ApplySecurityGroupsToClientVpnTargetNetworkOutput {
  SecurityGroupIds: [String]
}

input AwsEC2ApplySecurityGroupsToClientVpnTargetNetworkInput {
  ClientVpnEndpointId: String!
  VpcId: String!
  SecurityGroupIds: [String]!
  DryRun: Boolean
}

type AwsEC2AssignIpv6AddressesOutput {
  AssignedIpv6Addresses: [String]
  NetworkInterfaceId: String
}

input AwsEC2AssignIpv6AddressesInput {
  Ipv6AddressCount: Int
  Ipv6Addresses: [String]
  NetworkInterfaceId: String!
}

type AwsEC2AssignPrivateIpAddressesOutput {
  NetworkInterfaceId: String
  AssignedPrivateIpAddresses: [AwsEC2AssignPrivateIpAddressesOutputAssignedPrivateIpAddresses]
}

type AwsEC2AssignPrivateIpAddressesOutputAssignedPrivateIpAddresses {
  PrivateIpAddress: String
}

input AwsEC2AssignPrivateIpAddressesInput {
  AllowReassignment: Boolean
  NetworkInterfaceId: String!
  PrivateIpAddresses: [String]
  SecondaryPrivateIpAddressCount: Int
}

type AwsEC2AssociateAddressOutput {
  AssociationId: String
}

input AwsEC2AssociateAddressInput {
  AllocationId: String
  InstanceId: String
  PublicIp: String
  AllowReassociation: Boolean
  DryRun: Boolean
  NetworkInterfaceId: String
  PrivateIpAddress: String
}

type AwsEC2AssociateClientVpnTargetNetworkOutput {
  AssociationId: String
  Status: AwsEC2S2o
}

type AwsEC2S2o {
  Code: String
  Message: String
}

input AwsEC2AssociateClientVpnTargetNetworkInput {
  ClientVpnEndpointId: String!
  SubnetId: String!
  ClientToken: String
  DryRun: Boolean
}

input AwsEC2AssociateDhcpOptionsInput {
  DhcpOptionsId: String!
  VpcId: String!
  DryRun: Boolean
}

type AwsEC2AssociateEnclaveCertificateIamRoleOutput {
  CertificateS3BucketName: String
  CertificateS3ObjectKey: String
  EncryptionKmsKeyId: String
}

input AwsEC2AssociateEnclaveCertificateIamRoleInput {
  CertificateArn: String
  RoleArn: String
  DryRun: Boolean
}

type AwsEC2AssociateIamInstanceProfileOutput {
  IamInstanceProfileAssociation: AwsEC2S2y
}

type AwsEC2S2y {
  AssociationId: String
  InstanceId: String
  IamInstanceProfile: AwsEC2S2z
  State: String
  Timestamp: Date
}

type AwsEC2S2z {
  Arn: String
  Id: String
}

input AwsEC2AssociateIamInstanceProfileInput {
  IamInstanceProfile: AwsEC2S2wInput!
  InstanceId: String!
}

input AwsEC2S2wInput {
  Arn: String
  Name: String
}

type AwsEC2AssociateRouteTableOutput {
  AssociationId: String
  AssociationState: AwsEC2S35
}

type AwsEC2S35 {
  State: String
  StatusMessage: String
}

input AwsEC2AssociateRouteTableInput {
  DryRun: Boolean
  RouteTableId: String!
  SubnetId: String
  GatewayId: String
}

type AwsEC2AssociateSubnetCidrBlockOutput {
  Ipv6CidrBlockAssociation: AwsEC2S39
  SubnetId: String
}

type AwsEC2S39 {
  AssociationId: String
  Ipv6CidrBlock: String
  Ipv6CidrBlockState: AwsEC2S39Ipv6CidrBlockState
}

type AwsEC2S39Ipv6CidrBlockState {
  State: String
  StatusMessage: String
}

input AwsEC2AssociateSubnetCidrBlockInput {
  Ipv6CidrBlock: String!
  SubnetId: String!
}

type AwsEC2AssociateTransitGatewayMulticastDomainOutput {
  Associations: AwsEC2Sg
}

input AwsEC2AssociateTransitGatewayMulticastDomainInput {
  TransitGatewayMulticastDomainId: String
  TransitGatewayAttachmentId: String
  SubnetIds: [String]
  DryRun: Boolean
}

type AwsEC2AssociateTransitGatewayRouteTableOutput {
  Association: AwsEC2S3j
}

type AwsEC2S3j {
  TransitGatewayRouteTableId: String
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  State: String
}

input AwsEC2AssociateTransitGatewayRouteTableInput {
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2AssociateTrunkInterfaceOutput {
  InterfaceAssociation: AwsEC2S3n
  ClientToken: String
}

type AwsEC2S3n {
  AssociationId: String
  BranchInterfaceId: String
  TrunkInterfaceId: String
  InterfaceProtocol: String
  VlanId: Int
  GreKey: Int
  Tags: [AwsEC2Ss]
}

input AwsEC2AssociateTrunkInterfaceInput {
  BranchInterfaceId: String!
  TrunkInterfaceId: String!
  VlanId: Int
  GreKey: Int
  ClientToken: String
  DryRun: Boolean
}

type AwsEC2AssociateVpcCidrBlockOutput {
  Ipv6CidrBlockAssociation: AwsEC2S3t
  CidrBlockAssociation: AwsEC2S3w
  VpcId: String
}

type AwsEC2S3t {
  AssociationId: String
  Ipv6CidrBlock: String
  Ipv6CidrBlockState: AwsEC2S3u
  NetworkBorderGroup: String
  Ipv6Pool: String
}

type AwsEC2S3u {
  State: String
  StatusMessage: String
}

type AwsEC2S3w {
  AssociationId: String
  CidrBlock: String
  CidrBlockState: AwsEC2S3u
}

input AwsEC2AssociateVpcCidrBlockInput {
  AmazonProvidedIpv6CidrBlock: Boolean
  CidrBlock: String
  VpcId: String!
  Ipv6CidrBlockNetworkBorderGroup: String
  Ipv6Pool: String
  Ipv6CidrBlock: String
}

type AwsEC2AttachClassicLinkVpcOutput {
  Return: Boolean
}

input AwsEC2AttachClassicLinkVpcInput {
  DryRun: Boolean
  Groups: [String]!
  InstanceId: String!
  VpcId: String!
}

input AwsEC2AttachInternetGatewayInput {
  DryRun: Boolean
  InternetGatewayId: String!
  VpcId: String!
}

type AwsEC2AttachNetworkInterfaceOutput {
  AttachmentId: String
  NetworkCardIndex: Int
}

input AwsEC2AttachNetworkInterfaceInput {
  DeviceIndex: Int!
  DryRun: Boolean
  InstanceId: String!
  NetworkInterfaceId: String!
  NetworkCardIndex: Int
}

input AwsEC2AttachVolumeInput {
  Device: String!
  InstanceId: String!
  VolumeId: String!
  DryRun: Boolean
}

type AwsEC2AttachVpnGatewayOutput {
  VpcAttachment: AwsEC2S4b
}

type AwsEC2S4b {
  State: String
  VpcId: String
}

input AwsEC2AttachVpnGatewayInput {
  VpcId: String!
  VpnGatewayId: String!
  DryRun: Boolean
}

type AwsEC2AuthorizeClientVpnIngressOutput {
  Status: AwsEC2S4f
}

type AwsEC2S4f {
  Code: String
  Message: String
}

input AwsEC2AuthorizeClientVpnIngressInput {
  ClientVpnEndpointId: String!
  TargetNetworkCidr: String!
  AccessGroupId: String
  AuthorizeAllGroups: Boolean
  Description: String
  ClientToken: String
  DryRun: Boolean
}

input AwsEC2AuthorizeSecurityGroupEgressInput {
  DryRun: Boolean
  GroupId: String!
  IpPermissions: [AwsEC2S4iInput]
  CidrIp: String
  FromPort: Int
  IpProtocol: String
  ToPort: Int
  SourceSecurityGroupName: String
  SourceSecurityGroupOwnerId: String
}

input AwsEC2S4iInput {
  FromPort: Int
  IpProtocol: String
  IpRanges: [AwsEC2S4iIpRangesInput]
  Ipv6Ranges: [AwsEC2S4iIpv6RangesInput]
  PrefixListIds: [AwsEC2S4iPrefixListIdsInput]
  ToPort: Int
  UserIdGroupPairs: [AwsEC2S4rInput]
}

input AwsEC2S4iIpRangesInput {
  CidrIp: String
  Description: String
}

input AwsEC2S4iIpv6RangesInput {
  CidrIpv6: String
  Description: String
}

input AwsEC2S4iPrefixListIdsInput {
  Description: String
  PrefixListId: String
}

input AwsEC2S4rInput {
  Description: String
  GroupId: String
  GroupName: String
  PeeringStatus: String
  UserId: String
  VpcId: String
  VpcPeeringConnectionId: String
}

input AwsEC2AuthorizeSecurityGroupIngressInput {
  CidrIp: String
  FromPort: Int
  GroupId: String
  GroupName: String
  IpPermissions: [AwsEC2S4iInput]
  IpProtocol: String
  SourceSecurityGroupName: String
  SourceSecurityGroupOwnerId: String
  ToPort: Int
  DryRun: Boolean
}

type AwsEC2BundleInstanceOutput {
  BundleTask: AwsEC2S4z
}

type AwsEC2S4z {
  BundleId: String
  BundleTaskError: AwsEC2S4zBundleTaskError
  InstanceId: String
  Progress: String
  StartTime: Date
  State: String
  Storage: AwsEC2S4v
  UpdateTime: Date
}

type AwsEC2S4zBundleTaskError {
  Code: String
  Message: String
}

type AwsEC2S4v {
  S3: AwsEC2S4vS3
}

type AwsEC2S4vS3 {
  AWSAccessKeyId: String
  Bucket: String
  Prefix: String
  UploadPolicy: JSON
  UploadPolicySignature: String
}

input AwsEC2BundleInstanceInput {
  InstanceId: String!
  Storage: AwsEC2S4vInput!
  DryRun: Boolean
}

input AwsEC2S4vInput {
  S3: AwsEC2S4vS3Input
}

input AwsEC2S4vS3Input {
  AWSAccessKeyId: String
  Bucket: String
  Prefix: String
  UploadPolicy: JSON
  UploadPolicySignature: String
}

type AwsEC2CancelBundleTaskOutput {
  BundleTask: AwsEC2S4z
}

input AwsEC2CancelBundleTaskInput {
  BundleId: String!
  DryRun: Boolean
}

type AwsEC2CancelCapacityReservationOutput {
  Return: Boolean
}

input AwsEC2CancelCapacityReservationInput {
  CapacityReservationId: String!
  DryRun: Boolean
}

input AwsEC2CancelConversionTaskInput {
  ConversionTaskId: String!
  DryRun: Boolean
  ReasonMessage: String
}

input AwsEC2CancelExportTaskInput {
  ExportTaskId: String!
}

type AwsEC2CancelImportTaskOutput {
  ImportTaskId: String
  PreviousState: String
  State: String
}

input AwsEC2CancelImportTaskInput {
  CancelReason: String
  DryRun: Boolean
  ImportTaskId: String
}

type AwsEC2CancelReservedInstancesListingOutput {
  ReservedInstancesListings: [AwsEC2S5i]
}

type AwsEC2S5i {
  ClientToken: String
  CreateDate: Date
  InstanceCounts: [AwsEC2S5iInstanceCounts]
  PriceSchedules: [AwsEC2S5iPriceSchedules]
  ReservedInstancesId: String
  ReservedInstancesListingId: String
  Status: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
  UpdateDate: Date
}

type AwsEC2S5iInstanceCounts {
  InstanceCount: Int
  State: String
}

type AwsEC2S5iPriceSchedules {
  Active: Boolean
  CurrencyCode: String
  Price: JSON
  Term: JSON
}

input AwsEC2CancelReservedInstancesListingInput {
  ReservedInstancesListingId: String!
}

type AwsEC2CancelSpotFleetRequestsOutput {
  SuccessfulFleetRequests: [AwsEC2CancelSpotFleetRequestsOutputSuccessfulFleetRequests]
  UnsuccessfulFleetRequests: [AwsEC2CancelSpotFleetRequestsOutputUnsuccessfulFleetRequests]
}

type AwsEC2CancelSpotFleetRequestsOutputSuccessfulFleetRequests {
  CurrentSpotFleetRequestState: String
  PreviousSpotFleetRequestState: String
  SpotFleetRequestId: String
}

type AwsEC2CancelSpotFleetRequestsOutputUnsuccessfulFleetRequests {
  Error: AwsEC2CancelSpotFleetRequestsOutputUnsuccessfulFleetRequestsError
  SpotFleetRequestId: String
}

type AwsEC2CancelSpotFleetRequestsOutputUnsuccessfulFleetRequestsError {
  Code: String
  Message: String
}

input AwsEC2CancelSpotFleetRequestsInput {
  DryRun: Boolean
  SpotFleetRequestIds: [String]!
  TerminateInstances: Boolean!
}

type AwsEC2CancelSpotInstanceRequestsOutput {
  CancelledSpotInstanceRequests: [AwsEC2CancelSpotInstanceRequestsOutputCancelledSpotInstanceRequests]
}

type AwsEC2CancelSpotInstanceRequestsOutputCancelledSpotInstanceRequests {
  SpotInstanceRequestId: String
  State: String
}

input AwsEC2CancelSpotInstanceRequestsInput {
  DryRun: Boolean
  SpotInstanceRequestIds: [String]!
}

type AwsEC2ConfirmProductInstanceOutput {
  OwnerId: String
  Return: Boolean
}

input AwsEC2ConfirmProductInstanceInput {
  InstanceId: String!
  ProductCode: String!
  DryRun: Boolean
}

type AwsEC2CopyFpgaImageOutput {
  FpgaImageId: String
}

input AwsEC2CopyFpgaImageInput {
  DryRun: Boolean
  SourceFpgaImageId: String!
  Description: String
  Name: String
  SourceRegion: String!
  ClientToken: String
}

type AwsEC2CopyImageOutput {
  ImageId: String
}

input AwsEC2CopyImageInput {
  ClientToken: String
  Description: String
  Encrypted: Boolean
  KmsKeyId: String
  Name: String!
  SourceImageId: String!
  SourceRegion: String!
  DestinationOutpostArn: String
  DryRun: Boolean
}

type AwsEC2CopySnapshotOutput {
  SnapshotId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CopySnapshotInput {
  Description: String
  DestinationOutpostArn: String
  DestinationRegion: String
  Encrypted: Boolean
  KmsKeyId: String
  PresignedUrl: String
  SourceRegion: String!
  SourceSnapshotId: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateCapacityReservationOutput {
  CapacityReservation: AwsEC2S6r
}

type AwsEC2S6r {
  CapacityReservationId: String
  OwnerId: String
  CapacityReservationArn: String
  AvailabilityZoneId: String
  InstanceType: String
  InstancePlatform: String
  AvailabilityZone: String
  Tenancy: String
  TotalInstanceCount: Int
  AvailableInstanceCount: Int
  EbsOptimized: Boolean
  EphemeralStorage: Boolean
  State: String
  StartDate: Date
  EndDate: Date
  EndDateType: String
  InstanceMatchCriteria: String
  CreateDate: Date
  Tags: [AwsEC2Ss]
  OutpostArn: String
}

input AwsEC2CreateCapacityReservationInput {
  ClientToken: String
  InstanceType: String!
  InstancePlatform: String!
  AvailabilityZone: String
  AvailabilityZoneId: String
  Tenancy: String
  InstanceCount: Int!
  EbsOptimized: Boolean
  EphemeralStorage: Boolean
  EndDate: Date
  EndDateType: String
  InstanceMatchCriteria: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  OutpostArn: String
}

type AwsEC2CreateCarrierGatewayOutput {
  CarrierGateway: AwsEC2S6w
}

type AwsEC2S6w {
  CarrierGatewayId: String
  VpcId: String
  State: String
  OwnerId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateCarrierGatewayInput {
  VpcId: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  ClientToken: String
}

type AwsEC2CreateClientVpnEndpointOutput {
  ClientVpnEndpointId: String
  Status: AwsEC2S7b
  DnsName: String
}

type AwsEC2S7b {
  Code: String
  Message: String
}

input AwsEC2CreateClientVpnEndpointInput {
  ClientCidrBlock: String!
  ServerCertificateArn: String!
  AuthenticationOptions: [AwsEC2CreateClientVpnEndpointAuthenticationOptionsInput]!
  ConnectionLogOptions: AwsEC2S76Input!
  DnsServers: [String]
  TransportProtocol: String
  VpnPort: Int
  Description: String
  SplitTunnel: Boolean
  DryRun: Boolean
  ClientToken: String
  TagSpecifications: [AwsEC2S1tInput]
  SecurityGroupIds: [String]
  VpcId: String
  SelfServicePortal: String
  ClientConnectOptions: AwsEC2S79Input
}

input AwsEC2CreateClientVpnEndpointAuthenticationOptionsInput {
  Type: String
  ActiveDirectory: AwsEC2CreateClientVpnEndpointAuthenticationOptionsActiveDirectoryInput
  MutualAuthentication: AwsEC2CreateClientVpnEndpointAuthenticationOptionsMutualAuthenticationInput
  FederatedAuthentication: AwsEC2CreateClientVpnEndpointAuthenticationOptionsFederatedAuthenticationInput
}

input AwsEC2CreateClientVpnEndpointAuthenticationOptionsActiveDirectoryInput {
  DirectoryId: String
}

input AwsEC2CreateClientVpnEndpointAuthenticationOptionsMutualAuthenticationInput {
  ClientRootCertificateChainArn: String
}

input AwsEC2CreateClientVpnEndpointAuthenticationOptionsFederatedAuthenticationInput {
  SAMLProviderArn: String
  SelfServiceSAMLProviderArn: String
}

input AwsEC2S76Input {
  Enabled: Boolean
  CloudwatchLogGroup: String
  CloudwatchLogStream: String
}

input AwsEC2S79Input {
  Enabled: Boolean
  LambdaFunctionArn: String
}

type AwsEC2CreateClientVpnRouteOutput {
  Status: AwsEC2S7f
}

type AwsEC2S7f {
  Code: String
  Message: String
}

input AwsEC2CreateClientVpnRouteInput {
  ClientVpnEndpointId: String!
  DestinationCidrBlock: String!
  TargetVpcSubnetId: String!
  Description: String
  ClientToken: String
  DryRun: Boolean
}

type AwsEC2CreateCustomerGatewayOutput {
  CustomerGateway: AwsEC2S7k
}

type AwsEC2S7k {
  BgpAsn: String
  CustomerGatewayId: String
  IpAddress: String
  CertificateArn: String
  State: String
  Type: String
  DeviceName: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateCustomerGatewayInput {
  BgpAsn: Int!
  PublicIp: String
  CertificateArn: String
  Type: String!
  TagSpecifications: [AwsEC2S1tInput]
  DeviceName: String
  DryRun: Boolean
}

type AwsEC2CreateDefaultSubnetOutput {
  Subnet: AwsEC2S7n
}

type AwsEC2S7n {
  AvailabilityZone: String
  AvailabilityZoneId: String
  AvailableIpAddressCount: Int
  CidrBlock: String
  DefaultForAz: Boolean
  MapPublicIpOnLaunch: Boolean
  MapCustomerOwnedIpOnLaunch: Boolean
  CustomerOwnedIpv4Pool: String
  State: String
  SubnetId: String
  VpcId: String
  OwnerId: String
  AssignIpv6AddressOnCreation: Boolean
  Ipv6CidrBlockAssociationSet: [AwsEC2S39]
  Tags: [AwsEC2Ss]
  SubnetArn: String
  OutpostArn: String
}

input AwsEC2CreateDefaultSubnetInput {
  AvailabilityZone: String!
  DryRun: Boolean
}

type AwsEC2CreateDefaultVpcOutput {
  Vpc: AwsEC2S7t
}

type AwsEC2S7t {
  CidrBlock: String
  DhcpOptionsId: String
  State: String
  VpcId: String
  OwnerId: String
  InstanceTenancy: String
  Ipv6CidrBlockAssociationSet: [AwsEC2S3t]
  CidrBlockAssociationSet: [AwsEC2S3w]
  IsDefault: Boolean
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateDefaultVpcInput {
  DryRun: Boolean
}

type AwsEC2CreateDhcpOptionsOutput {
  DhcpOptions: AwsEC2S82
}

type AwsEC2S82 {
  DhcpConfigurations: [AwsEC2S82DhcpConfigurations]
  DhcpOptionsId: String
  OwnerId: String
  Tags: [AwsEC2Ss]
}

type AwsEC2S82DhcpConfigurations {
  Key: String
  Values: [AwsEC2S86]
}

type AwsEC2S86 {
  Value: String
}

input AwsEC2CreateDhcpOptionsInput {
  DhcpConfigurations: [AwsEC2CreateDhcpOptionsDhcpConfigurationsInput]!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateDhcpOptionsDhcpConfigurationsInput {
  Key: String
  Values: [String]
}

type AwsEC2CreateEgressOnlyInternetGatewayOutput {
  ClientToken: String
  EgressOnlyInternetGateway: AwsEC2S89
}

type AwsEC2S89 {
  Attachments: [AwsEC2S8a]
  EgressOnlyInternetGatewayId: String
  Tags: [AwsEC2Ss]
}

type AwsEC2S8a {
  State: String
  VpcId: String
}

input AwsEC2CreateEgressOnlyInternetGatewayInput {
  ClientToken: String
  DryRun: Boolean
  VpcId: String!
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateFleetOutput {
  FleetId: String
  Errors: [AwsEC2CreateFleetOutputErrors]
  Instances: [AwsEC2CreateFleetOutputInstances]
}

type AwsEC2CreateFleetOutputErrors {
  LaunchTemplateAndOverrides: AwsEC2S95
  Lifecycle: String
  ErrorCode: String
  ErrorMessage: String
}

type AwsEC2S95 {
  LaunchTemplateSpecification: AwsEC2S96
  Overrides: AwsEC2S97
}

type AwsEC2S96 {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

type AwsEC2S97 {
  InstanceType: String
  MaxPrice: String
  SubnetId: String
  AvailabilityZone: String
  WeightedCapacity: JSON
  Priority: JSON
  Placement: AwsEC2S97Placement
}

type AwsEC2S97Placement {
  GroupName: String
}

type AwsEC2CreateFleetOutputInstances {
  LaunchTemplateAndOverrides: AwsEC2S95
  Lifecycle: String
  InstanceIds: [String]
  InstanceType: String
  Platform: String
}

input AwsEC2CreateFleetInput {
  DryRun: Boolean
  ClientToken: String
  SpotOptions: AwsEC2CreateFleetSpotOptionsInput
  OnDemandOptions: AwsEC2CreateFleetOnDemandOptionsInput
  ExcessCapacityTerminationPolicy: String
  LaunchTemplateConfigs: [AwsEC2S8pInput]!
  TargetCapacitySpecification: AwsEC2S8yInput!
  TerminateInstancesWithExpiration: Boolean
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  ReplaceUnhealthyInstances: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2CreateFleetSpotOptionsInput {
  AllocationStrategy: String
  MaintenanceStrategies: AwsEC2CreateFleetSpotOptionsMaintenanceStrategiesInput
  InstanceInterruptionBehavior: String
  InstancePoolsToUseCount: Int
  SingleInstanceType: Boolean
  SingleAvailabilityZone: Boolean
  MinTargetCapacity: Int
  MaxTotalPrice: String
}

input AwsEC2CreateFleetSpotOptionsMaintenanceStrategiesInput {
  CapacityRebalance: AwsEC2CreateFleetSpotOptionsMaintenanceStrategiesCapacityRebalanceInput
}

input AwsEC2CreateFleetSpotOptionsMaintenanceStrategiesCapacityRebalanceInput {
  ReplacementStrategy: String
}

input AwsEC2CreateFleetOnDemandOptionsInput {
  AllocationStrategy: String
  CapacityReservationOptions: AwsEC2CreateFleetOnDemandOptionsCapacityReservationOptionsInput
  SingleInstanceType: Boolean
  SingleAvailabilityZone: Boolean
  MinTargetCapacity: Int
  MaxTotalPrice: String
}

input AwsEC2CreateFleetOnDemandOptionsCapacityReservationOptionsInput {
  UsageStrategy: String
}

input AwsEC2S8pInput {
  LaunchTemplateSpecification: AwsEC2S8pLaunchTemplateSpecificationInput
  Overrides: [AwsEC2S8pOverridesInput]
}

input AwsEC2S8pLaunchTemplateSpecificationInput {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

input AwsEC2S8pOverridesInput {
  InstanceType: String
  MaxPrice: String
  SubnetId: String
  AvailabilityZone: String
  WeightedCapacity: JSON
  Priority: JSON
  Placement: AwsEC2S8xInput
}

input AwsEC2S8xInput {
  AvailabilityZone: String
  Affinity: String
  GroupName: String
  PartitionNumber: Int
  HostId: String
  Tenancy: String
  SpreadDomain: String
  HostResourceGroupArn: String
}

input AwsEC2S8yInput {
  TotalTargetCapacity: Int!
  OnDemandTargetCapacity: Int
  SpotTargetCapacity: Int
  DefaultTargetCapacityType: String
}

type AwsEC2CreateFlowLogsOutput {
  ClientToken: String
  FlowLogIds: [String]
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2CreateFlowLogsInput {
  DryRun: Boolean
  ClientToken: String
  DeliverLogsPermissionArn: String
  LogGroupName: String
  ResourceIds: [String]!
  ResourceType: String!
  TrafficType: String!
  LogDestinationType: String
  LogDestination: String
  LogFormat: String
  TagSpecifications: [AwsEC2S1tInput]
  MaxAggregationInterval: Int
}

type AwsEC2CreateFpgaImageOutput {
  FpgaImageId: String
  FpgaImageGlobalId: String
}

input AwsEC2CreateFpgaImageInput {
  DryRun: Boolean
  InputStorageLocation: AwsEC2S9mInput!
  LogsStorageLocation: AwsEC2S9mInput
  Description: String
  Name: String
  ClientToken: String
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2S9mInput {
  Bucket: String
  Key: String
}

type AwsEC2CreateImageOutput {
  ImageId: String
}

input AwsEC2CreateImageInput {
  BlockDeviceMappings: [AwsEC2S9qInput]
  Description: String
  DryRun: Boolean
  InstanceId: String!
  Name: String!
  NoReboot: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2S9qInput {
  DeviceName: String
  VirtualName: String
  Ebs: AwsEC2S9qEbsInput
  NoDevice: String
}

input AwsEC2S9qEbsInput {
  DeleteOnTermination: Boolean
  Iops: Int
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  KmsKeyId: String
  Throughput: Int
  OutpostArn: String
  Encrypted: Boolean
}

type AwsEC2CreateInstanceExportTaskOutput {
  ExportTask: AwsEC2Sa0
}

type AwsEC2Sa0 {
  Description: String
  ExportTaskId: String
  ExportToS3Task: AwsEC2Sa0ExportToS3Task
  InstanceExportDetails: AwsEC2Sa0InstanceExportDetails
  State: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
}

type AwsEC2Sa0ExportToS3Task {
  ContainerFormat: String
  DiskImageFormat: String
  S3Bucket: String
  S3Key: String
}

type AwsEC2Sa0InstanceExportDetails {
  InstanceId: String
  TargetEnvironment: String
}

input AwsEC2CreateInstanceExportTaskInput {
  Description: String
  ExportToS3Task: AwsEC2CreateInstanceExportTaskExportToS3TaskInput!
  InstanceId: String!
  TargetEnvironment: String!
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2CreateInstanceExportTaskExportToS3TaskInput {
  ContainerFormat: String
  DiskImageFormat: String
  S3Bucket: String
  S3Prefix: String
}

type AwsEC2CreateInternetGatewayOutput {
  InternetGateway: AwsEC2Sa6
}

type AwsEC2Sa6 {
  Attachments: [AwsEC2S8a]
  InternetGatewayId: String
  OwnerId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateInternetGatewayInput {
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateKeyPairOutput {
  KeyFingerprint: String
  KeyMaterial: String
  KeyName: String
  KeyPairId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateKeyPairInput {
  KeyName: String!
  DryRun: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateLaunchTemplateOutput {
  LaunchTemplate: AwsEC2Sbo
  Warning: AwsEC2Sbp
}

type AwsEC2Sbo {
  LaunchTemplateId: String
  LaunchTemplateName: String
  CreateTime: Date
  CreatedBy: String
  DefaultVersionNumber: JSON
  LatestVersionNumber: JSON
  Tags: [AwsEC2Ss]
}

type AwsEC2Sbp {
  Errors: [AwsEC2SbpErrors]
}

type AwsEC2SbpErrors {
  Code: String
  Message: String
}

input AwsEC2CreateLaunchTemplateInput {
  DryRun: Boolean
  ClientToken: String
  LaunchTemplateName: String!
  VersionDescription: String
  LaunchTemplateData: AwsEC2SacInput!
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2SacInput {
  KernelId: String
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2SacIamInstanceProfileInput
  BlockDeviceMappings: [AwsEC2SacBlockDeviceMappingsInput]
  NetworkInterfaces: [AwsEC2SacNetworkInterfacesInput]
  ImageId: String
  InstanceType: String
  KeyName: String
  Monitoring: AwsEC2SacMonitoringInput
  Placement: AwsEC2SacPlacementInput
  RamDiskId: String
  DisableApiTermination: Boolean
  InstanceInitiatedShutdownBehavior: String
  UserData: String
  TagSpecifications: [AwsEC2SacTagSpecificationsInput]
  ElasticGpuSpecifications: [AwsEC2Sb1Input]
  ElasticInferenceAccelerators: [AwsEC2SacElasticInferenceAcceleratorsInput]
  SecurityGroupIds: [String]
  SecurityGroups: [String]
  InstanceMarketOptions: AwsEC2SacInstanceMarketOptionsInput
  CreditSpecification: AwsEC2SbbInput
  CpuOptions: AwsEC2SacCpuOptionsInput
  CapacityReservationSpecification: AwsEC2SacCapacityReservationSpecificationInput
  LicenseSpecifications: [AwsEC2SacLicenseSpecificationsInput]
  HibernationOptions: AwsEC2SacHibernationOptionsInput
  MetadataOptions: AwsEC2SacMetadataOptionsInput
  EnclaveOptions: AwsEC2SacEnclaveOptionsInput
}

input AwsEC2SacIamInstanceProfileInput {
  Arn: String
  Name: String
}

input AwsEC2SacBlockDeviceMappingsInput {
  DeviceName: String
  VirtualName: String
  Ebs: AwsEC2SacBlockDeviceMappingsEbsInput
  NoDevice: String
}

input AwsEC2SacBlockDeviceMappingsEbsInput {
  Encrypted: Boolean
  DeleteOnTermination: Boolean
  Iops: Int
  KmsKeyId: String
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  Throughput: Int
}

input AwsEC2SacNetworkInterfacesInput {
  AssociateCarrierIpAddress: Boolean
  AssociatePublicIpAddress: Boolean
  DeleteOnTermination: Boolean
  Description: String
  DeviceIndex: Int
  Groups: [String]
  InterfaceType: String
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2SacNetworkInterfacesIpv6AddressesInput]
  NetworkInterfaceId: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2SaoInput]
  SecondaryPrivateIpAddressCount: Int
  SubnetId: String
  NetworkCardIndex: Int
}

input AwsEC2SacNetworkInterfacesIpv6AddressesInput {
  Ipv6Address: String
}

input AwsEC2SaoInput {
  Primary: Boolean
  PrivateIpAddress: String
}

input AwsEC2SacMonitoringInput {
  Enabled: Boolean
}

input AwsEC2SacPlacementInput {
  AvailabilityZone: String
  Affinity: String
  GroupName: String
  HostId: String
  Tenancy: String
  SpreadDomain: String
  HostResourceGroupArn: String
  PartitionNumber: Int
}

input AwsEC2SacTagSpecificationsInput {
  ResourceType: String
  Tags: [AwsEC2SsInput]
}

input AwsEC2Sb1Input {
  Type: String!
}

input AwsEC2SacElasticInferenceAcceleratorsInput {
  Type: String!
  Count: Int
}

input AwsEC2SacInstanceMarketOptionsInput {
  MarketType: String
  SpotOptions: AwsEC2SacInstanceMarketOptionsSpotOptionsInput
}

input AwsEC2SacInstanceMarketOptionsSpotOptionsInput {
  MaxPrice: String
  SpotInstanceType: String
  BlockDurationMinutes: Int
  ValidUntil: Date
  InstanceInterruptionBehavior: String
}

input AwsEC2SbbInput {
  CpuCredits: String!
}

input AwsEC2SacCpuOptionsInput {
  CoreCount: Int
  ThreadsPerCore: Int
}

input AwsEC2SacCapacityReservationSpecificationInput {
  CapacityReservationPreference: String
  CapacityReservationTarget: AwsEC2SbfInput
}

input AwsEC2SbfInput {
  CapacityReservationId: String
  CapacityReservationResourceGroupArn: String
}

input AwsEC2SacLicenseSpecificationsInput {
  LicenseConfigurationArn: String
}

input AwsEC2SacHibernationOptionsInput {
  Configured: Boolean
}

input AwsEC2SacMetadataOptionsInput {
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

input AwsEC2SacEnclaveOptionsInput {
  Enabled: Boolean
}

type AwsEC2CreateLaunchTemplateVersionOutput {
  LaunchTemplateVersion: AwsEC2Sbu
  Warning: AwsEC2Sbp
}

type AwsEC2Sbu {
  LaunchTemplateId: String
  LaunchTemplateName: String
  VersionNumber: JSON
  VersionDescription: String
  CreateTime: Date
  CreatedBy: String
  DefaultVersion: Boolean
  LaunchTemplateData: AwsEC2Sbv
}

type AwsEC2Sbv {
  KernelId: String
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2SbvIamInstanceProfile
  BlockDeviceMappings: [AwsEC2SbvBlockDeviceMappings]
  NetworkInterfaces: [AwsEC2SbvNetworkInterfaces]
  ImageId: String
  InstanceType: String
  KeyName: String
  Monitoring: AwsEC2SbvMonitoring
  Placement: AwsEC2SbvPlacement
  RamDiskId: String
  DisableApiTermination: Boolean
  InstanceInitiatedShutdownBehavior: String
  UserData: String
  TagSpecifications: [AwsEC2SbvTagSpecifications]
  ElasticGpuSpecifications: [AwsEC2SbvElasticGpuSpecifications]
  ElasticInferenceAccelerators: [AwsEC2SbvElasticInferenceAccelerators]
  SecurityGroupIds: [String]
  SecurityGroups: [String]
  InstanceMarketOptions: AwsEC2SbvInstanceMarketOptions
  CreditSpecification: AwsEC2SbvCreditSpecification
  CpuOptions: AwsEC2SbvCpuOptions
  CapacityReservationSpecification: AwsEC2SbvCapacityReservationSpecification
  LicenseSpecifications: [AwsEC2SbvLicenseSpecifications]
  HibernationOptions: AwsEC2SbvHibernationOptions
  MetadataOptions: AwsEC2SbvMetadataOptions
  EnclaveOptions: AwsEC2SbvEnclaveOptions
}

type AwsEC2SbvIamInstanceProfile {
  Arn: String
  Name: String
}

type AwsEC2SbvBlockDeviceMappings {
  DeviceName: String
  VirtualName: String
  Ebs: AwsEC2SbvBlockDeviceMappingsEbs
  NoDevice: String
}

type AwsEC2SbvBlockDeviceMappingsEbs {
  Encrypted: Boolean
  DeleteOnTermination: Boolean
  Iops: Int
  KmsKeyId: String
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  Throughput: Int
}

type AwsEC2SbvNetworkInterfaces {
  AssociateCarrierIpAddress: Boolean
  AssociatePublicIpAddress: Boolean
  DeleteOnTermination: Boolean
  Description: String
  DeviceIndex: Int
  Groups: [String]
  InterfaceType: String
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2Sc2]
  NetworkInterfaceId: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2Sao]
  SecondaryPrivateIpAddressCount: Int
  SubnetId: String
  NetworkCardIndex: Int
}

type AwsEC2Sc2 {
  Ipv6Address: String
}

type AwsEC2Sao {
  Primary: Boolean
  PrivateIpAddress: String
}

type AwsEC2SbvMonitoring {
  Enabled: Boolean
}

type AwsEC2SbvPlacement {
  AvailabilityZone: String
  Affinity: String
  GroupName: String
  HostId: String
  Tenancy: String
  SpreadDomain: String
  HostResourceGroupArn: String
  PartitionNumber: Int
}

type AwsEC2SbvTagSpecifications {
  ResourceType: String
  Tags: [AwsEC2Ss]
}

type AwsEC2SbvElasticGpuSpecifications {
  Type: String
}

type AwsEC2SbvElasticInferenceAccelerators {
  Type: String
  Count: Int
}

type AwsEC2SbvInstanceMarketOptions {
  MarketType: String
  SpotOptions: AwsEC2SbvInstanceMarketOptionsSpotOptions
}

type AwsEC2SbvInstanceMarketOptionsSpotOptions {
  MaxPrice: String
  SpotInstanceType: String
  BlockDurationMinutes: Int
  ValidUntil: Date
  InstanceInterruptionBehavior: String
}

type AwsEC2SbvCreditSpecification {
  CpuCredits: String
}

type AwsEC2SbvCpuOptions {
  CoreCount: Int
  ThreadsPerCore: Int
}

type AwsEC2SbvCapacityReservationSpecification {
  CapacityReservationPreference: String
  CapacityReservationTarget: AwsEC2Sch
}

type AwsEC2Sch {
  CapacityReservationId: String
  CapacityReservationResourceGroupArn: String
}

type AwsEC2SbvLicenseSpecifications {
  LicenseConfigurationArn: String
}

type AwsEC2SbvHibernationOptions {
  Configured: Boolean
}

type AwsEC2SbvMetadataOptions {
  State: String
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

type AwsEC2SbvEnclaveOptions {
  Enabled: Boolean
}

input AwsEC2CreateLaunchTemplateVersionInput {
  DryRun: Boolean
  ClientToken: String
  LaunchTemplateId: String
  LaunchTemplateName: String
  SourceVersion: String
  VersionDescription: String
  LaunchTemplateData: AwsEC2SacInput!
}

type AwsEC2CreateLocalGatewayRouteOutput {
  Route: AwsEC2Scs
}

type AwsEC2Scs {
  DestinationCidrBlock: String
  LocalGatewayVirtualInterfaceGroupId: String
  Type: String
  State: String
  LocalGatewayRouteTableId: String
  LocalGatewayRouteTableArn: String
  OwnerId: String
}

input AwsEC2CreateLocalGatewayRouteInput {
  DestinationCidrBlock: String!
  LocalGatewayRouteTableId: String!
  DryRun: Boolean
  LocalGatewayVirtualInterfaceGroupId: String!
}

type AwsEC2CreateLocalGatewayRouteTableVpcAssociationOutput {
  LocalGatewayRouteTableVpcAssociation: AwsEC2Scx
}

type AwsEC2Scx {
  LocalGatewayRouteTableVpcAssociationId: String
  LocalGatewayRouteTableId: String
  LocalGatewayRouteTableArn: String
  LocalGatewayId: String
  VpcId: String
  OwnerId: String
  State: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateLocalGatewayRouteTableVpcAssociationInput {
  LocalGatewayRouteTableId: String!
  VpcId: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateManagedPrefixListOutput {
  PrefixList: AwsEC2Sd3
}

type AwsEC2Sd3 {
  PrefixListId: String
  AddressFamily: String
  State: String
  StateMessage: String
  PrefixListArn: String
  PrefixListName: String
  MaxEntries: Int
  Version: JSON
  Tags: [AwsEC2Ss]
  OwnerId: String
}

input AwsEC2CreateManagedPrefixListInput {
  DryRun: Boolean
  PrefixListName: String!
  Entries: [AwsEC2Sd0Input]
  MaxEntries: Int!
  TagSpecifications: [AwsEC2S1tInput]
  AddressFamily: String!
  ClientToken: String
}

input AwsEC2Sd0Input {
  Cidr: String!
  Description: String
}

type AwsEC2CreateNatGatewayOutput {
  ClientToken: String
  NatGateway: AwsEC2Sd9
}

type AwsEC2Sd9 {
  CreateTime: Date
  DeleteTime: Date
  FailureCode: String
  FailureMessage: String
  NatGatewayAddresses: [AwsEC2Sd9NatGatewayAddresses]
  NatGatewayId: String
  ProvisionedBandwidth: AwsEC2Sd9ProvisionedBandwidth
  State: String
  SubnetId: String
  VpcId: String
  Tags: [AwsEC2Ss]
  ConnectivityType: String
}

type AwsEC2Sd9NatGatewayAddresses {
  AllocationId: String
  NetworkInterfaceId: String
  PrivateIp: String
  PublicIp: String
}

type AwsEC2Sd9ProvisionedBandwidth {
  ProvisionTime: Date
  Provisioned: String
  RequestTime: Date
  Requested: String
  Status: String
}

input AwsEC2CreateNatGatewayInput {
  AllocationId: String
  ClientToken: String
  DryRun: Boolean
  SubnetId: String!
  TagSpecifications: [AwsEC2S1tInput]
  ConnectivityType: String
}

type AwsEC2CreateNetworkAclOutput {
  NetworkAcl: AwsEC2Sdg
}

type AwsEC2Sdg {
  Associations: [AwsEC2SdgAssociations]
  Entries: [AwsEC2SdgEntries]
  IsDefault: Boolean
  NetworkAclId: String
  Tags: [AwsEC2Ss]
  VpcId: String
  OwnerId: String
}

type AwsEC2SdgAssociations {
  NetworkAclAssociationId: String
  NetworkAclId: String
  SubnetId: String
}

type AwsEC2SdgEntries {
  CidrBlock: String
  Egress: Boolean
  IcmpTypeCode: AwsEC2Sdl
  Ipv6CidrBlock: String
  PortRange: AwsEC2Sdm
  Protocol: String
  RuleAction: String
  RuleNumber: Int
}

type AwsEC2Sdl {
  Code: Int
  Type: Int
}

type AwsEC2Sdm {
  From: Int
  To: Int
}

input AwsEC2CreateNetworkAclInput {
  DryRun: Boolean
  VpcId: String!
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2CreateNetworkAclEntryInput {
  CidrBlock: String
  DryRun: Boolean
  Egress: Boolean!
  IcmpTypeCode: AwsEC2SdlInput
  Ipv6CidrBlock: String
  NetworkAclId: String!
  PortRange: AwsEC2SdmInput
  Protocol: String!
  RuleAction: String!
  RuleNumber: Int!
}

input AwsEC2SdlInput {
  Code: Int
  Type: Int
}

input AwsEC2SdmInput {
  From: Int
  To: Int
}

type AwsEC2CreateNetworkInsightsPathOutput {
  NetworkInsightsPath: AwsEC2Sdv
}

type AwsEC2Sdv {
  NetworkInsightsPathId: String
  NetworkInsightsPathArn: String
  CreatedDate: Date
  Source: String
  Destination: String
  SourceIp: String
  DestinationIp: String
  Protocol: String
  DestinationPort: Int
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateNetworkInsightsPathInput {
  SourceIp: String
  DestinationIp: String
  Source: String!
  Destination: String!
  Protocol: String!
  DestinationPort: Int
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  ClientToken: String!
}

type AwsEC2CreateNetworkInterfaceOutput {
  NetworkInterface: AwsEC2Se0
  ClientToken: String
}

type AwsEC2Se0 {
  Association: AwsEC2Se1
  Attachment: AwsEC2Se2
  AvailabilityZone: String
  Description: String
  Groups: [AwsEC2Se3]
  InterfaceType: String
  Ipv6Addresses: [AwsEC2Se0Ipv6Addresses]
  MacAddress: String
  NetworkInterfaceId: String
  OutpostArn: String
  OwnerId: String
  PrivateDnsName: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2Se0PrivateIpAddresses]
  RequesterId: String
  RequesterManaged: Boolean
  SourceDestCheck: Boolean
  Status: String
  SubnetId: String
  TagSet: [AwsEC2Ss]
  VpcId: String
}

type AwsEC2Se1 {
  AllocationId: String
  AssociationId: String
  IpOwnerId: String
  PublicDnsName: String
  PublicIp: String
  CustomerOwnedIp: String
  CarrierIp: String
}

type AwsEC2Se2 {
  AttachTime: Date
  AttachmentId: String
  DeleteOnTermination: Boolean
  DeviceIndex: Int
  NetworkCardIndex: Int
  InstanceId: String
  InstanceOwnerId: String
  Status: String
}

type AwsEC2Se3 {
  GroupName: String
  GroupId: String
}

type AwsEC2Se0Ipv6Addresses {
  Ipv6Address: String
}

type AwsEC2Se0PrivateIpAddresses {
  Association: AwsEC2Se1
  Primary: Boolean
  PrivateDnsName: String
  PrivateIpAddress: String
}

input AwsEC2CreateNetworkInterfaceInput {
  Description: String
  DryRun: Boolean
  Groups: [String]
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2Sc2Input]
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2SaoInput]
  SecondaryPrivateIpAddressCount: Int
  InterfaceType: String
  SubnetId: String!
  TagSpecifications: [AwsEC2S1tInput]
  ClientToken: String
}

input AwsEC2Sc2Input {
  Ipv6Address: String
}

type AwsEC2CreateNetworkInterfacePermissionOutput {
  InterfacePermission: AwsEC2See
}

type AwsEC2See {
  NetworkInterfacePermissionId: String
  NetworkInterfaceId: String
  AwsAccountId: String
  AwsService: String
  Permission: String
  PermissionState: AwsEC2SeePermissionState
}

type AwsEC2SeePermissionState {
  State: String
  StatusMessage: String
}

input AwsEC2CreateNetworkInterfacePermissionInput {
  NetworkInterfaceId: String!
  AwsAccountId: String
  AwsService: String
  Permission: String!
  DryRun: Boolean
}

type AwsEC2CreatePlacementGroupOutput {
  PlacementGroup: AwsEC2Sek
}

type AwsEC2Sek {
  GroupName: String
  State: String
  Strategy: String
  PartitionCount: Int
  GroupId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreatePlacementGroupInput {
  DryRun: Boolean
  GroupName: String
  Strategy: String
  PartitionCount: Int
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateReplaceRootVolumeTaskOutput {
  ReplaceRootVolumeTask: AwsEC2Seo
}

type AwsEC2Seo {
  ReplaceRootVolumeTaskId: String
  InstanceId: String
  TaskState: String
  StartTime: String
  CompleteTime: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateReplaceRootVolumeTaskInput {
  InstanceId: String!
  SnapshotId: String
  ClientToken: String
  DryRun: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateReservedInstancesListingOutput {
  ReservedInstancesListings: [AwsEC2S5i]
}

input AwsEC2CreateReservedInstancesListingInput {
  ClientToken: String!
  InstanceCount: Int!
  PriceSchedules: [AwsEC2CreateReservedInstancesListingPriceSchedulesInput]!
  ReservedInstancesId: String!
}

input AwsEC2CreateReservedInstancesListingPriceSchedulesInput {
  CurrencyCode: String
  Price: JSON
  Term: JSON
}

type AwsEC2CreateRestoreImageTaskOutput {
  ImageId: String
}

input AwsEC2CreateRestoreImageTaskInput {
  Bucket: String!
  ObjectKey: String!
  Name: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateRouteOutput {
  Return: Boolean
}

input AwsEC2CreateRouteInput {
  DestinationCidrBlock: String
  DestinationIpv6CidrBlock: String
  DestinationPrefixListId: String
  DryRun: Boolean
  VpcEndpointId: String
  EgressOnlyInternetGatewayId: String
  GatewayId: String
  InstanceId: String
  NatGatewayId: String
  TransitGatewayId: String
  LocalGatewayId: String
  CarrierGatewayId: String
  NetworkInterfaceId: String
  RouteTableId: String!
  VpcPeeringConnectionId: String
}

type AwsEC2CreateRouteTableOutput {
  RouteTable: AwsEC2Sf4
}

type AwsEC2Sf4 {
  Associations: [AwsEC2Sf4Associations]
  PropagatingVgws: [AwsEC2Sf4PropagatingVgws]
  RouteTableId: String
  Routes: [AwsEC2Sf4Routes]
  Tags: [AwsEC2Ss]
  VpcId: String
  OwnerId: String
}

type AwsEC2Sf4Associations {
  Main: Boolean
  RouteTableAssociationId: String
  RouteTableId: String
  SubnetId: String
  GatewayId: String
  AssociationState: AwsEC2S35
}

type AwsEC2Sf4PropagatingVgws {
  GatewayId: String
}

type AwsEC2Sf4Routes {
  DestinationCidrBlock: String
  DestinationIpv6CidrBlock: String
  DestinationPrefixListId: String
  EgressOnlyInternetGatewayId: String
  GatewayId: String
  InstanceId: String
  InstanceOwnerId: String
  NatGatewayId: String
  TransitGatewayId: String
  LocalGatewayId: String
  CarrierGatewayId: String
  NetworkInterfaceId: String
  Origin: String
  State: String
  VpcPeeringConnectionId: String
}

input AwsEC2CreateRouteTableInput {
  DryRun: Boolean
  VpcId: String!
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateSecurityGroupOutput {
  GroupId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateSecurityGroupInput {
  Description: String!
  GroupName: String!
  VpcId: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateSnapshotInput {
  Description: String
  OutpostArn: String
  VolumeId: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateSnapshotsOutput {
  Snapshots: [AwsEC2CreateSnapshotsOutputSnapshots]
}

type AwsEC2CreateSnapshotsOutputSnapshots {
  Description: String
  Tags: [AwsEC2Ss]
  Encrypted: Boolean
  VolumeId: String
  State: String
  VolumeSize: Int
  StartTime: Date
  Progress: String
  OwnerId: String
  SnapshotId: String
  OutpostArn: String
}

input AwsEC2CreateSnapshotsInput {
  Description: String
  InstanceSpecification: AwsEC2CreateSnapshotsInstanceSpecificationInput!
  OutpostArn: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  CopyTagsFromSource: String
}

input AwsEC2CreateSnapshotsInstanceSpecificationInput {
  InstanceId: String
  ExcludeBootVolume: Boolean
}

type AwsEC2CreateSpotDatafeedSubscriptionOutput {
  SpotDatafeedSubscription: AwsEC2Sfq
}

type AwsEC2Sfq {
  Bucket: String
  Fault: AwsEC2Sfr
  OwnerId: String
  Prefix: String
  State: String
}

type AwsEC2Sfr {
  Code: String
  Message: String
}

input AwsEC2CreateSpotDatafeedSubscriptionInput {
  Bucket: String!
  DryRun: Boolean
  Prefix: String
}

type AwsEC2CreateStoreImageTaskOutput {
  ObjectKey: String
}

input AwsEC2CreateStoreImageTaskInput {
  ImageId: String!
  Bucket: String!
  S3ObjectTags: [AwsEC2CreateStoreImageTaskS3ObjectTagsInput]
  DryRun: Boolean
}

input AwsEC2CreateStoreImageTaskS3ObjectTagsInput {
  Key: String
  Value: String
}

type AwsEC2CreateSubnetOutput {
  Subnet: AwsEC2S7n
}

input AwsEC2CreateSubnetInput {
  TagSpecifications: [AwsEC2S1tInput]
  AvailabilityZone: String
  AvailabilityZoneId: String
  CidrBlock: String!
  Ipv6CidrBlock: String
  OutpostArn: String
  VpcId: String!
  DryRun: Boolean
}

input AwsEC2CreateTagsInput {
  DryRun: Boolean
  Resources: [String]!
  Tags: [AwsEC2SsInput]!
}

type AwsEC2CreateTrafficMirrorFilterOutput {
  TrafficMirrorFilter: AwsEC2Sg4
  ClientToken: String
}

type AwsEC2Sg4 {
  TrafficMirrorFilterId: String
  IngressFilterRules: [AwsEC2Sg6]
  EgressFilterRules: [AwsEC2Sg6]
  NetworkServices: [String]
  Description: String
  Tags: [AwsEC2Ss]
}

type AwsEC2Sg6 {
  TrafficMirrorFilterRuleId: String
  TrafficMirrorFilterId: String
  TrafficDirection: String
  RuleNumber: Int
  RuleAction: String
  Protocol: Int
  DestinationPortRange: AwsEC2Sg9
  SourcePortRange: AwsEC2Sg9
  DestinationCidrBlock: String
  SourceCidrBlock: String
  Description: String
}

type AwsEC2Sg9 {
  FromPort: Int
  ToPort: Int
}

input AwsEC2CreateTrafficMirrorFilterInput {
  Description: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  ClientToken: String
}

type AwsEC2CreateTrafficMirrorFilterRuleOutput {
  TrafficMirrorFilterRule: AwsEC2Sg6
  ClientToken: String
}

input AwsEC2CreateTrafficMirrorFilterRuleInput {
  TrafficMirrorFilterId: String!
  TrafficDirection: String!
  RuleNumber: Int!
  RuleAction: String!
  DestinationPortRange: AwsEC2SgeInput
  SourcePortRange: AwsEC2SgeInput
  Protocol: Int
  DestinationCidrBlock: String!
  SourceCidrBlock: String!
  Description: String
  DryRun: Boolean
  ClientToken: String
}

input AwsEC2SgeInput {
  FromPort: Int
  ToPort: Int
}

type AwsEC2CreateTrafficMirrorSessionOutput {
  TrafficMirrorSession: AwsEC2Sgj
  ClientToken: String
}

type AwsEC2Sgj {
  TrafficMirrorSessionId: String
  TrafficMirrorTargetId: String
  TrafficMirrorFilterId: String
  NetworkInterfaceId: String
  OwnerId: String
  PacketLength: Int
  SessionNumber: Int
  VirtualNetworkId: Int
  Description: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateTrafficMirrorSessionInput {
  NetworkInterfaceId: String!
  TrafficMirrorTargetId: String!
  TrafficMirrorFilterId: String!
  PacketLength: Int
  SessionNumber: Int!
  VirtualNetworkId: Int
  Description: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  ClientToken: String
}

type AwsEC2CreateTrafficMirrorTargetOutput {
  TrafficMirrorTarget: AwsEC2Sgm
  ClientToken: String
}

type AwsEC2Sgm {
  TrafficMirrorTargetId: String
  NetworkInterfaceId: String
  NetworkLoadBalancerArn: String
  Type: String
  Description: String
  OwnerId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateTrafficMirrorTargetInput {
  NetworkInterfaceId: String
  NetworkLoadBalancerArn: String
  Description: String
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
  ClientToken: String
}

type AwsEC2CreateTransitGatewayOutput {
  TransitGateway: AwsEC2Sgx
}

type AwsEC2Sgx {
  TransitGatewayId: String
  TransitGatewayArn: String
  State: String
  OwnerId: String
  Description: String
  CreationTime: Date
  Options: AwsEC2SgxOptions
  Tags: [AwsEC2Ss]
}

type AwsEC2SgxOptions {
  AmazonSideAsn: JSON
  TransitGatewayCidrBlocks: [String]
  AutoAcceptSharedAttachments: String
  DefaultRouteTableAssociation: String
  AssociationDefaultRouteTableId: String
  DefaultRouteTablePropagation: String
  PropagationDefaultRouteTableId: String
  VpnEcmpSupport: String
  DnsSupport: String
  MulticastSupport: String
}

input AwsEC2CreateTransitGatewayInput {
  Description: String
  Options: AwsEC2CreateTransitGatewayOptionsInput
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateTransitGatewayOptionsInput {
  AmazonSideAsn: JSON
  AutoAcceptSharedAttachments: String
  DefaultRouteTableAssociation: String
  DefaultRouteTablePropagation: String
  VpnEcmpSupport: String
  DnsSupport: String
  MulticastSupport: String
  TransitGatewayCidrBlocks: [String]
}

type AwsEC2CreateTransitGatewayConnectOutput {
  TransitGatewayConnect: AwsEC2Sh4
}

type AwsEC2Sh4 {
  TransitGatewayAttachmentId: String
  TransportTransitGatewayAttachmentId: String
  TransitGatewayId: String
  State: String
  CreationTime: Date
  Options: AwsEC2Sh4Options
  Tags: [AwsEC2Ss]
}

type AwsEC2Sh4Options {
  Protocol: String
}

input AwsEC2CreateTransitGatewayConnectInput {
  TransportTransitGatewayAttachmentId: String!
  Options: AwsEC2CreateTransitGatewayConnectOptionsInput!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateTransitGatewayConnectOptionsInput {
  Protocol: String!
}

type AwsEC2CreateTransitGatewayConnectPeerOutput {
  TransitGatewayConnectPeer: AwsEC2Sha
}

type AwsEC2Sha {
  TransitGatewayAttachmentId: String
  TransitGatewayConnectPeerId: String
  State: String
  CreationTime: Date
  ConnectPeerConfiguration: AwsEC2ShaConnectPeerConfiguration
  Tags: [AwsEC2Ss]
}

type AwsEC2ShaConnectPeerConfiguration {
  TransitGatewayAddress: String
  PeerAddress: String
  InsideCidrBlocks: [String]
  Protocol: String
  BgpConfigurations: [AwsEC2ShaConnectPeerConfigurationBgpConfigurations]
}

type AwsEC2ShaConnectPeerConfigurationBgpConfigurations {
  TransitGatewayAsn: JSON
  PeerAsn: JSON
  TransitGatewayAddress: String
  PeerAddress: String
  BgpStatus: String
}

input AwsEC2CreateTransitGatewayConnectPeerInput {
  TransitGatewayAttachmentId: String!
  TransitGatewayAddress: String
  PeerAddress: String!
  BgpOptions: AwsEC2CreateTransitGatewayConnectPeerBgpOptionsInput
  InsideCidrBlocks: [String]!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateTransitGatewayConnectPeerBgpOptionsInput {
  PeerAsn: JSON
}

type AwsEC2CreateTransitGatewayMulticastDomainOutput {
  TransitGatewayMulticastDomain: AwsEC2Shn
}

type AwsEC2Shn {
  TransitGatewayMulticastDomainId: String
  TransitGatewayId: String
  TransitGatewayMulticastDomainArn: String
  OwnerId: String
  Options: AwsEC2ShnOptions
  State: String
  CreationTime: Date
  Tags: [AwsEC2Ss]
}

type AwsEC2ShnOptions {
  Igmpv2Support: String
  StaticSourcesSupport: String
  AutoAcceptSharedAssociations: String
}

input AwsEC2CreateTransitGatewayMulticastDomainInput {
  TransitGatewayId: String!
  Options: AwsEC2CreateTransitGatewayMulticastDomainOptionsInput
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateTransitGatewayMulticastDomainOptionsInput {
  Igmpv2Support: String
  StaticSourcesSupport: String
  AutoAcceptSharedAssociations: String
}

type AwsEC2CreateTransitGatewayPeeringAttachmentOutput {
  TransitGatewayPeeringAttachment: AwsEC2Sn
}

input AwsEC2CreateTransitGatewayPeeringAttachmentInput {
  TransitGatewayId: String!
  PeerTransitGatewayId: String!
  PeerAccountId: String!
  PeerRegion: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateTransitGatewayPrefixListReferenceOutput {
  TransitGatewayPrefixListReference: AwsEC2Shv
}

type AwsEC2Shv {
  TransitGatewayRouteTableId: String
  PrefixListId: String
  PrefixListOwnerId: String
  State: String
  Blackhole: Boolean
  TransitGatewayAttachment: AwsEC2ShvTransitGatewayAttachment
}

type AwsEC2ShvTransitGatewayAttachment {
  TransitGatewayAttachmentId: String
  ResourceType: String
  ResourceId: String
}

input AwsEC2CreateTransitGatewayPrefixListReferenceInput {
  TransitGatewayRouteTableId: String!
  PrefixListId: String!
  TransitGatewayAttachmentId: String
  Blackhole: Boolean
  DryRun: Boolean
}

type AwsEC2CreateTransitGatewayRouteOutput {
  Route: AwsEC2Si0
}

type AwsEC2Si0 {
  DestinationCidrBlock: String
  PrefixListId: String
  TransitGatewayAttachments: [AwsEC2Si0TransitGatewayAttachments]
  Type: String
  State: String
}

type AwsEC2Si0TransitGatewayAttachments {
  ResourceId: String
  TransitGatewayAttachmentId: String
  ResourceType: String
}

input AwsEC2CreateTransitGatewayRouteInput {
  DestinationCidrBlock: String!
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String
  Blackhole: Boolean
  DryRun: Boolean
}

type AwsEC2CreateTransitGatewayRouteTableOutput {
  TransitGatewayRouteTable: AwsEC2Si7
}

type AwsEC2Si7 {
  TransitGatewayRouteTableId: String
  TransitGatewayId: String
  State: String
  DefaultAssociationRouteTable: Boolean
  DefaultPropagationRouteTable: Boolean
  CreationTime: Date
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateTransitGatewayRouteTableInput {
  TransitGatewayId: String!
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

type AwsEC2CreateTransitGatewayVpcAttachmentOutput {
  TransitGatewayVpcAttachment: AwsEC2Sw
}

input AwsEC2CreateTransitGatewayVpcAttachmentInput {
  TransitGatewayId: String!
  VpcId: String!
  SubnetIds: [String]!
  Options: AwsEC2CreateTransitGatewayVpcAttachmentOptionsInput
  TagSpecifications: [AwsEC2S1tInput]
  DryRun: Boolean
}

input AwsEC2CreateTransitGatewayVpcAttachmentOptionsInput {
  DnsSupport: String
  Ipv6Support: String
  ApplianceModeSupport: String
}

input AwsEC2CreateVolumeInput {
  AvailabilityZone: String!
  Encrypted: Boolean
  Iops: Int
  KmsKeyId: String
  OutpostArn: String
  Size: Int
  SnapshotId: String
  VolumeType: String
  DryRun: Boolean
  TagSpecifications: [AwsEC2S1tInput]
  MultiAttachEnabled: Boolean
  Throughput: Int
}

type AwsEC2CreateVpcOutput {
  Vpc: AwsEC2S7t
}

input AwsEC2CreateVpcInput {
  CidrBlock: String!
  AmazonProvidedIpv6CidrBlock: Boolean
  Ipv6Pool: String
  Ipv6CidrBlock: String
  DryRun: Boolean
  InstanceTenancy: String
  Ipv6CidrBlockNetworkBorderGroup: String
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateVpcEndpointOutput {
  VpcEndpoint: AwsEC2Sio
  ClientToken: String
}

type AwsEC2Sio {
  VpcEndpointId: String
  VpcEndpointType: String
  VpcId: String
  ServiceName: String
  State: String
  PolicyDocument: String
  RouteTableIds: [String]
  SubnetIds: [String]
  Groups: [AwsEC2SioGroups]
  PrivateDnsEnabled: Boolean
  RequesterManaged: Boolean
  NetworkInterfaceIds: [String]
  DnsEntries: [AwsEC2Sis]
  CreationTimestamp: Date
  Tags: [AwsEC2Ss]
  OwnerId: String
  LastError: AwsEC2SioLastError
}

type AwsEC2SioGroups {
  GroupId: String
  GroupName: String
}

type AwsEC2Sis {
  DnsName: String
  HostedZoneId: String
}

type AwsEC2SioLastError {
  Message: String
  Code: String
}

input AwsEC2CreateVpcEndpointInput {
  DryRun: Boolean
  VpcEndpointType: String
  VpcId: String!
  ServiceName: String!
  PolicyDocument: String
  RouteTableIds: [String]
  SubnetIds: [String]
  SecurityGroupIds: [String]
  ClientToken: String
  PrivateDnsEnabled: Boolean
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateVpcEndpointConnectionNotificationOutput {
  ConnectionNotification: AwsEC2Six
  ClientToken: String
}

type AwsEC2Six {
  ConnectionNotificationId: String
  ServiceId: String
  VpcEndpointId: String
  ConnectionNotificationType: String
  ConnectionNotificationArn: String
  ConnectionEvents: [String]
  ConnectionNotificationState: String
}

input AwsEC2CreateVpcEndpointConnectionNotificationInput {
  DryRun: Boolean
  ServiceId: String
  VpcEndpointId: String
  ConnectionNotificationArn: String!
  ConnectionEvents: [String]!
  ClientToken: String
}

type AwsEC2CreateVpcEndpointServiceConfigurationOutput {
  ServiceConfiguration: AwsEC2Sj2
  ClientToken: String
}

type AwsEC2Sj2 {
  ServiceType: [AwsEC2Sj3]
  ServiceId: String
  ServiceName: String
  ServiceState: String
  AvailabilityZones: [String]
  AcceptanceRequired: Boolean
  ManagesVpcEndpoints: Boolean
  NetworkLoadBalancerArns: [String]
  GatewayLoadBalancerArns: [String]
  BaseEndpointDnsNames: [String]
  PrivateDnsName: String
  PrivateDnsNameConfiguration: AwsEC2Sj2PrivateDnsNameConfiguration
  Tags: [AwsEC2Ss]
}

type AwsEC2Sj3 {
  ServiceType: String
}

type AwsEC2Sj2PrivateDnsNameConfiguration {
  State: String
  Type: String
  Value: String
  Name: String
}

input AwsEC2CreateVpcEndpointServiceConfigurationInput {
  DryRun: Boolean
  AcceptanceRequired: Boolean
  PrivateDnsName: String
  NetworkLoadBalancerArns: [String]
  GatewayLoadBalancerArns: [String]
  ClientToken: String
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateVpcPeeringConnectionOutput {
  VpcPeeringConnection: AwsEC2S1c
}

input AwsEC2CreateVpcPeeringConnectionInput {
  DryRun: Boolean
  PeerOwnerId: String
  PeerVpcId: String
  VpcId: String
  PeerRegion: String
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2CreateVpnConnectionOutput {
  VpnConnection: AwsEC2Sjw
}

type AwsEC2Sjw {
  CustomerGatewayConfiguration: String
  CustomerGatewayId: String
  Category: String
  State: String
  Type: String
  VpnConnectionId: String
  VpnGatewayId: String
  TransitGatewayId: String
  Options: AwsEC2SjwOptions
  Routes: [AwsEC2SjwRoutes]
  Tags: [AwsEC2Ss]
  VgwTelemetry: [AwsEC2SjwVgwTelemetry]
}

type AwsEC2SjwOptions {
  EnableAcceleration: Boolean
  StaticRoutesOnly: Boolean
  LocalIpv4NetworkCidr: String
  RemoteIpv4NetworkCidr: String
  LocalIpv6NetworkCidr: String
  RemoteIpv6NetworkCidr: String
  TunnelInsideIpVersion: String
  TunnelOptions: [AwsEC2SjwOptionsTunnelOptions]
}

type AwsEC2SjwOptionsTunnelOptions {
  OutsideIpAddress: String
  TunnelInsideCidr: String
  TunnelInsideIpv6Cidr: String
  PreSharedKey: String
  Phase1LifetimeSeconds: Int
  Phase2LifetimeSeconds: Int
  RekeyMarginTimeSeconds: Int
  RekeyFuzzPercentage: Int
  ReplayWindowSize: Int
  DpdTimeoutSeconds: Int
  DpdTimeoutAction: String
  Phase1EncryptionAlgorithms: [AwsEC2SjwOptionsTunnelOptionsPhase1EncryptionAlgorithms]
  Phase2EncryptionAlgorithms: [AwsEC2SjwOptionsTunnelOptionsPhase2EncryptionAlgorithms]
  Phase1IntegrityAlgorithms: [AwsEC2SjwOptionsTunnelOptionsPhase1IntegrityAlgorithms]
  Phase2IntegrityAlgorithms: [AwsEC2SjwOptionsTunnelOptionsPhase2IntegrityAlgorithms]
  Phase1DHGroupNumbers: [AwsEC2SjwOptionsTunnelOptionsPhase1DHGroupNumbers]
  Phase2DHGroupNumbers: [AwsEC2SjwOptionsTunnelOptionsPhase2DHGroupNumbers]
  IkeVersions: [AwsEC2SjwOptionsTunnelOptionsIkeVersions]
  StartupAction: String
}

type AwsEC2SjwOptionsTunnelOptionsPhase1EncryptionAlgorithms {
  Value: String
}

type AwsEC2SjwOptionsTunnelOptionsPhase2EncryptionAlgorithms {
  Value: String
}

type AwsEC2SjwOptionsTunnelOptionsPhase1IntegrityAlgorithms {
  Value: String
}

type AwsEC2SjwOptionsTunnelOptionsPhase2IntegrityAlgorithms {
  Value: String
}

type AwsEC2SjwOptionsTunnelOptionsPhase1DHGroupNumbers {
  Value: Int
}

type AwsEC2SjwOptionsTunnelOptionsPhase2DHGroupNumbers {
  Value: Int
}

type AwsEC2SjwOptionsTunnelOptionsIkeVersions {
  Value: String
}

type AwsEC2SjwRoutes {
  DestinationCidrBlock: String
  Source: String
  State: String
}

type AwsEC2SjwVgwTelemetry {
  AcceptedRouteCount: Int
  LastStatusChange: Date
  OutsideIpAddress: String
  Status: String
  StatusMessage: String
  CertificateArn: String
}

input AwsEC2CreateVpnConnectionInput {
  CustomerGatewayId: String!
  Type: String!
  VpnGatewayId: String
  TransitGatewayId: String
  DryRun: Boolean
  Options: AwsEC2CreateVpnConnectionOptionsInput
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2CreateVpnConnectionOptionsInput {
  EnableAcceleration: Boolean
  StaticRoutesOnly: Boolean
  TunnelInsideIpVersion: String
  TunnelOptions: [AwsEC2CreateVpnConnectionOptionsTunnelOptionsInput]
  LocalIpv4NetworkCidr: String
  RemoteIpv4NetworkCidr: String
  LocalIpv6NetworkCidr: String
  RemoteIpv6NetworkCidr: String
}

input AwsEC2CreateVpnConnectionOptionsTunnelOptionsInput {
  TunnelInsideCidr: String
  TunnelInsideIpv6Cidr: String
  PreSharedKey: String
  Phase1LifetimeSeconds: Int
  Phase2LifetimeSeconds: Int
  RekeyMarginTimeSeconds: Int
  RekeyFuzzPercentage: Int
  ReplayWindowSize: Int
  DPDTimeoutSeconds: Int
  DPDTimeoutAction: String
  Phase1EncryptionAlgorithms: [AwsEC2SjhInput]
  Phase2EncryptionAlgorithms: [AwsEC2SjjInput]
  Phase1IntegrityAlgorithms: [AwsEC2SjlInput]
  Phase2IntegrityAlgorithms: [AwsEC2SjnInput]
  Phase1DHGroupNumbers: [AwsEC2SjpInput]
  Phase2DHGroupNumbers: [AwsEC2SjrInput]
  IKEVersions: [AwsEC2SjtInput]
  StartupAction: String
}

input AwsEC2SjhInput {
  Value: String
}

input AwsEC2SjjInput {
  Value: String
}

input AwsEC2SjlInput {
  Value: String
}

input AwsEC2SjnInput {
  Value: String
}

input AwsEC2SjpInput {
  Value: Int
}

input AwsEC2SjrInput {
  Value: Int
}

input AwsEC2SjtInput {
  Value: String
}

input AwsEC2CreateVpnConnectionRouteInput {
  DestinationCidrBlock: String!
  VpnConnectionId: String!
}

type AwsEC2CreateVpnGatewayOutput {
  VpnGateway: AwsEC2Skp
}

type AwsEC2Skp {
  AvailabilityZone: String
  State: String
  Type: String
  VpcAttachments: [AwsEC2S4b]
  VpnGatewayId: String
  AmazonSideAsn: JSON
  Tags: [AwsEC2Ss]
}

input AwsEC2CreateVpnGatewayInput {
  AvailabilityZone: String
  Type: String!
  TagSpecifications: [AwsEC2S1tInput]
  AmazonSideAsn: JSON
  DryRun: Boolean
}

type AwsEC2DeleteCarrierGatewayOutput {
  CarrierGateway: AwsEC2S6w
}

input AwsEC2DeleteCarrierGatewayInput {
  CarrierGatewayId: String!
  DryRun: Boolean
}

type AwsEC2DeleteClientVpnEndpointOutput {
  Status: AwsEC2S7b
}

input AwsEC2DeleteClientVpnEndpointInput {
  ClientVpnEndpointId: String!
  DryRun: Boolean
}

type AwsEC2DeleteClientVpnRouteOutput {
  Status: AwsEC2S7f
}

input AwsEC2DeleteClientVpnRouteInput {
  ClientVpnEndpointId: String!
  TargetVpcSubnetId: String
  DestinationCidrBlock: String!
  DryRun: Boolean
}

input AwsEC2DeleteCustomerGatewayInput {
  CustomerGatewayId: String!
  DryRun: Boolean
}

input AwsEC2DeleteDhcpOptionsInput {
  DhcpOptionsId: String!
  DryRun: Boolean
}

type AwsEC2DeleteEgressOnlyInternetGatewayOutput {
  ReturnCode: Boolean
}

input AwsEC2DeleteEgressOnlyInternetGatewayInput {
  DryRun: Boolean
  EgressOnlyInternetGatewayId: String!
}

type AwsEC2DeleteFleetsOutput {
  SuccessfulFleetDeletions: [AwsEC2DeleteFleetsOutputSuccessfulFleetDeletions]
  UnsuccessfulFleetDeletions: [AwsEC2DeleteFleetsOutputUnsuccessfulFleetDeletions]
}

type AwsEC2DeleteFleetsOutputSuccessfulFleetDeletions {
  CurrentFleetState: String
  PreviousFleetState: String
  FleetId: String
}

type AwsEC2DeleteFleetsOutputUnsuccessfulFleetDeletions {
  Error: AwsEC2DeleteFleetsOutputUnsuccessfulFleetDeletionsError
  FleetId: String
}

type AwsEC2DeleteFleetsOutputUnsuccessfulFleetDeletionsError {
  Code: String
  Message: String
}

input AwsEC2DeleteFleetsInput {
  DryRun: Boolean
  FleetIds: [String]!
  TerminateInstances: Boolean!
}

type AwsEC2DeleteFlowLogsOutput {
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2DeleteFlowLogsInput {
  DryRun: Boolean
  FlowLogIds: [String]!
}

type AwsEC2DeleteFpgaImageOutput {
  Return: Boolean
}

input AwsEC2DeleteFpgaImageInput {
  DryRun: Boolean
  FpgaImageId: String!
}

input AwsEC2DeleteInternetGatewayInput {
  DryRun: Boolean
  InternetGatewayId: String!
}

input AwsEC2DeleteKeyPairInput {
  KeyName: String
  KeyPairId: String
  DryRun: Boolean
}

type AwsEC2DeleteLaunchTemplateOutput {
  LaunchTemplate: AwsEC2Sbo
}

input AwsEC2DeleteLaunchTemplateInput {
  DryRun: Boolean
  LaunchTemplateId: String
  LaunchTemplateName: String
}

type AwsEC2DeleteLaunchTemplateVersionsOutput {
  SuccessfullyDeletedLaunchTemplateVersions: [AwsEC2DeleteLaunchTemplateVersionsOutputSuccessfullyDeletedLaunchTemplateVersions]
  UnsuccessfullyDeletedLaunchTemplateVersions: [AwsEC2DeleteLaunchTemplateVersionsOutputUnsuccessfullyDeletedLaunchTemplateVersions]
}

type AwsEC2DeleteLaunchTemplateVersionsOutputSuccessfullyDeletedLaunchTemplateVersions {
  LaunchTemplateId: String
  LaunchTemplateName: String
  VersionNumber: JSON
}

type AwsEC2DeleteLaunchTemplateVersionsOutputUnsuccessfullyDeletedLaunchTemplateVersions {
  LaunchTemplateId: String
  LaunchTemplateName: String
  VersionNumber: JSON
  ResponseError: AwsEC2DeleteLaunchTemplateVersionsOutputUnsuccessfullyDeletedLaunchTemplateVersionsResponseError
}

type AwsEC2DeleteLaunchTemplateVersionsOutputUnsuccessfullyDeletedLaunchTemplateVersionsResponseError {
  Code: String
  Message: String
}

input AwsEC2DeleteLaunchTemplateVersionsInput {
  DryRun: Boolean
  LaunchTemplateId: String
  LaunchTemplateName: String
  Versions: [String]!
}

type AwsEC2DeleteLocalGatewayRouteOutput {
  Route: AwsEC2Scs
}

input AwsEC2DeleteLocalGatewayRouteInput {
  DestinationCidrBlock: String!
  LocalGatewayRouteTableId: String!
  DryRun: Boolean
}

type AwsEC2DeleteLocalGatewayRouteTableVpcAssociationOutput {
  LocalGatewayRouteTableVpcAssociation: AwsEC2Scx
}

input AwsEC2DeleteLocalGatewayRouteTableVpcAssociationInput {
  LocalGatewayRouteTableVpcAssociationId: String!
  DryRun: Boolean
}

type AwsEC2DeleteManagedPrefixListOutput {
  PrefixList: AwsEC2Sd3
}

input AwsEC2DeleteManagedPrefixListInput {
  DryRun: Boolean
  PrefixListId: String!
}

type AwsEC2DeleteNatGatewayOutput {
  NatGatewayId: String
}

input AwsEC2DeleteNatGatewayInput {
  DryRun: Boolean
  NatGatewayId: String!
}

input AwsEC2DeleteNetworkAclInput {
  DryRun: Boolean
  NetworkAclId: String!
}

input AwsEC2DeleteNetworkAclEntryInput {
  DryRun: Boolean
  Egress: Boolean!
  NetworkAclId: String!
  RuleNumber: Int!
}

type AwsEC2DeleteNetworkInsightsAnalysisOutput {
  NetworkInsightsAnalysisId: String
}

input AwsEC2DeleteNetworkInsightsAnalysisInput {
  DryRun: Boolean
  NetworkInsightsAnalysisId: String!
}

type AwsEC2DeleteNetworkInsightsPathOutput {
  NetworkInsightsPathId: String
}

input AwsEC2DeleteNetworkInsightsPathInput {
  DryRun: Boolean
  NetworkInsightsPathId: String!
}

input AwsEC2DeleteNetworkInterfaceInput {
  DryRun: Boolean
  NetworkInterfaceId: String!
}

type AwsEC2DeleteNetworkInterfacePermissionOutput {
  Return: Boolean
}

input AwsEC2DeleteNetworkInterfacePermissionInput {
  NetworkInterfacePermissionId: String!
  Force: Boolean
  DryRun: Boolean
}

input AwsEC2DeletePlacementGroupInput {
  DryRun: Boolean
  GroupName: String!
}

type AwsEC2DeleteQueuedReservedInstancesOutput {
  SuccessfulQueuedPurchaseDeletions: [AwsEC2DeleteQueuedReservedInstancesOutputSuccessfulQueuedPurchaseDeletions]
  FailedQueuedPurchaseDeletions: [AwsEC2DeleteQueuedReservedInstancesOutputFailedQueuedPurchaseDeletions]
}

type AwsEC2DeleteQueuedReservedInstancesOutputSuccessfulQueuedPurchaseDeletions {
  ReservedInstancesId: String
}

type AwsEC2DeleteQueuedReservedInstancesOutputFailedQueuedPurchaseDeletions {
  Error: AwsEC2DeleteQueuedReservedInstancesOutputFailedQueuedPurchaseDeletionsError
  ReservedInstancesId: String
}

type AwsEC2DeleteQueuedReservedInstancesOutputFailedQueuedPurchaseDeletionsError {
  Code: String
  Message: String
}

input AwsEC2DeleteQueuedReservedInstancesInput {
  DryRun: Boolean
  ReservedInstancesIds: [String]!
}

input AwsEC2DeleteRouteInput {
  DestinationCidrBlock: String
  DestinationIpv6CidrBlock: String
  DestinationPrefixListId: String
  DryRun: Boolean
  RouteTableId: String!
}

input AwsEC2DeleteRouteTableInput {
  DryRun: Boolean
  RouteTableId: String!
}

input AwsEC2DeleteSecurityGroupInput {
  GroupId: String
  GroupName: String
  DryRun: Boolean
}

input AwsEC2DeleteSnapshotInput {
  SnapshotId: String!
  DryRun: Boolean
}

input AwsEC2DeleteSpotDatafeedSubscriptionInput {
  DryRun: Boolean
}

input AwsEC2DeleteSubnetInput {
  SubnetId: String!
  DryRun: Boolean
}

input AwsEC2DeleteTagsInput {
  DryRun: Boolean
  Resources: [String]!
  Tags: [AwsEC2SsInput]
}

type AwsEC2DeleteTrafficMirrorFilterOutput {
  TrafficMirrorFilterId: String
}

input AwsEC2DeleteTrafficMirrorFilterInput {
  TrafficMirrorFilterId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTrafficMirrorFilterRuleOutput {
  TrafficMirrorFilterRuleId: String
}

input AwsEC2DeleteTrafficMirrorFilterRuleInput {
  TrafficMirrorFilterRuleId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTrafficMirrorSessionOutput {
  TrafficMirrorSessionId: String
}

input AwsEC2DeleteTrafficMirrorSessionInput {
  TrafficMirrorSessionId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTrafficMirrorTargetOutput {
  TrafficMirrorTargetId: String
}

input AwsEC2DeleteTrafficMirrorTargetInput {
  TrafficMirrorTargetId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayOutput {
  TransitGateway: AwsEC2Sgx
}

input AwsEC2DeleteTransitGatewayInput {
  TransitGatewayId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayConnectOutput {
  TransitGatewayConnect: AwsEC2Sh4
}

input AwsEC2DeleteTransitGatewayConnectInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayConnectPeerOutput {
  TransitGatewayConnectPeer: AwsEC2Sha
}

input AwsEC2DeleteTransitGatewayConnectPeerInput {
  TransitGatewayConnectPeerId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayMulticastDomainOutput {
  TransitGatewayMulticastDomain: AwsEC2Shn
}

input AwsEC2DeleteTransitGatewayMulticastDomainInput {
  TransitGatewayMulticastDomainId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayPeeringAttachmentOutput {
  TransitGatewayPeeringAttachment: AwsEC2Sn
}

input AwsEC2DeleteTransitGatewayPeeringAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayPrefixListReferenceOutput {
  TransitGatewayPrefixListReference: AwsEC2Shv
}

input AwsEC2DeleteTransitGatewayPrefixListReferenceInput {
  TransitGatewayRouteTableId: String!
  PrefixListId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayRouteOutput {
  Route: AwsEC2Si0
}

input AwsEC2DeleteTransitGatewayRouteInput {
  TransitGatewayRouteTableId: String!
  DestinationCidrBlock: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayRouteTableOutput {
  TransitGatewayRouteTable: AwsEC2Si7
}

input AwsEC2DeleteTransitGatewayRouteTableInput {
  TransitGatewayRouteTableId: String!
  DryRun: Boolean
}

type AwsEC2DeleteTransitGatewayVpcAttachmentOutput {
  TransitGatewayVpcAttachment: AwsEC2Sw
}

input AwsEC2DeleteTransitGatewayVpcAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

input AwsEC2DeleteVolumeInput {
  VolumeId: String!
  DryRun: Boolean
}

input AwsEC2DeleteVpcInput {
  VpcId: String!
  DryRun: Boolean
}

type AwsEC2DeleteVpcEndpointConnectionNotificationsOutput {
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2DeleteVpcEndpointConnectionNotificationsInput {
  DryRun: Boolean
  ConnectionNotificationIds: [String]!
}

type AwsEC2DeleteVpcEndpointServiceConfigurationsOutput {
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2DeleteVpcEndpointServiceConfigurationsInput {
  DryRun: Boolean
  ServiceIds: [String]!
}

type AwsEC2DeleteVpcEndpointsOutput {
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2DeleteVpcEndpointsInput {
  DryRun: Boolean
  VpcEndpointIds: [String]!
}

type AwsEC2DeleteVpcPeeringConnectionOutput {
  Return: Boolean
}

input AwsEC2DeleteVpcPeeringConnectionInput {
  DryRun: Boolean
  VpcPeeringConnectionId: String!
}

input AwsEC2DeleteVpnConnectionInput {
  VpnConnectionId: String!
  DryRun: Boolean
}

input AwsEC2DeleteVpnConnectionRouteInput {
  DestinationCidrBlock: String!
  VpnConnectionId: String!
}

input AwsEC2DeleteVpnGatewayInput {
  VpnGatewayId: String!
  DryRun: Boolean
}

type AwsEC2DeprovisionByoipCidrOutput {
  ByoipCidr: AwsEC2S1n
}

input AwsEC2DeprovisionByoipCidrInput {
  Cidr: String!
  DryRun: Boolean
}

input AwsEC2DeregisterImageInput {
  ImageId: String!
  DryRun: Boolean
}

type AwsEC2DeregisterInstanceEventNotificationAttributesOutput {
  InstanceTagAttribute: AwsEC2Soc
}

type AwsEC2Soc {
  InstanceTagKeys: [String]
  IncludeAllTagsOfInstance: Boolean
}

input AwsEC2DeregisterInstanceEventNotificationAttributesInput {
  DryRun: Boolean
  InstanceTagAttribute: AwsEC2DeregisterInstanceEventNotificationAttributesInstanceTagAttributeInput
}

input AwsEC2DeregisterInstanceEventNotificationAttributesInstanceTagAttributeInput {
  IncludeAllTagsOfInstance: Boolean
  InstanceTagKeys: [String]
}

type AwsEC2DeregisterTransitGatewayMulticastGroupMembersOutput {
  DeregisteredMulticastGroupMembers: AwsEC2DeregisterTransitGatewayMulticastGroupMembersOutputDeregisteredMulticastGroupMembers
}

type AwsEC2DeregisterTransitGatewayMulticastGroupMembersOutputDeregisteredMulticastGroupMembers {
  TransitGatewayMulticastDomainId: String
  DeregisteredNetworkInterfaceIds: [String]
  GroupIpAddress: String
}

input AwsEC2DeregisterTransitGatewayMulticastGroupMembersInput {
  TransitGatewayMulticastDomainId: String
  GroupIpAddress: String
  NetworkInterfaceIds: [String]
  DryRun: Boolean
}

type AwsEC2DeregisterTransitGatewayMulticastGroupSourcesOutput {
  DeregisteredMulticastGroupSources: AwsEC2DeregisterTransitGatewayMulticastGroupSourcesOutputDeregisteredMulticastGroupSources
}

type AwsEC2DeregisterTransitGatewayMulticastGroupSourcesOutputDeregisteredMulticastGroupSources {
  TransitGatewayMulticastDomainId: String
  DeregisteredNetworkInterfaceIds: [String]
  GroupIpAddress: String
}

input AwsEC2DeregisterTransitGatewayMulticastGroupSourcesInput {
  TransitGatewayMulticastDomainId: String
  GroupIpAddress: String
  NetworkInterfaceIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeAccountAttributesOutput {
  AccountAttributes: [AwsEC2DescribeAccountAttributesOutputAccountAttributes]
}

type AwsEC2DescribeAccountAttributesOutputAccountAttributes {
  AttributeName: String
  AttributeValues: [AwsEC2DescribeAccountAttributesOutputAccountAttributesAttributeValues]
}

type AwsEC2DescribeAccountAttributesOutputAccountAttributesAttributeValues {
  AttributeValue: String
}

input AwsEC2DescribeAccountAttributesInput {
  AttributeNames: [String]
  DryRun: Boolean
}

type AwsEC2DescribeAddressesOutput {
  Addresses: [AwsEC2DescribeAddressesOutputAddresses]
}

type AwsEC2DescribeAddressesOutputAddresses {
  InstanceId: String
  PublicIp: String
  AllocationId: String
  AssociationId: String
  Domain: String
  NetworkInterfaceId: String
  NetworkInterfaceOwnerId: String
  PrivateIpAddress: String
  Tags: [AwsEC2Ss]
  PublicIpv4Pool: String
  NetworkBorderGroup: String
  CustomerOwnedIp: String
  CustomerOwnedIpv4Pool: String
  CarrierIp: String
}

input AwsEC2DescribeAddressesInput {
  Filters: [AwsEC2SotInput]
  PublicIps: [String]
  AllocationIds: [String]
  DryRun: Boolean
}

input AwsEC2SotInput {
  Name: String
  Values: [String]
}

type AwsEC2DescribeAddressesAttributeOutput {
  Addresses: [AwsEC2Sp7]
  NextToken: String
}

type AwsEC2Sp7 {
  PublicIp: String
  AllocationId: String
  PtrRecord: String
  PtrRecordUpdate: AwsEC2Sp7PtrRecordUpdate
}

type AwsEC2Sp7PtrRecordUpdate {
  Value: String
  Status: String
  Reason: String
}

input AwsEC2DescribeAddressesAttributeInput {
  AllocationIds: [String]
  Attribute: String
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
}

type AwsEC2DescribeAggregateIdFormatOutput {
  UseLongIdsAggregated: Boolean
  Statuses: [AwsEC2Spb]
}

type AwsEC2Spb {
  Deadline: Date
  Resource: String
  UseLongIds: Boolean
}

input AwsEC2DescribeAggregateIdFormatInput {
  DryRun: Boolean
}

type AwsEC2DescribeAvailabilityZonesOutput {
  AvailabilityZones: [AwsEC2DescribeAvailabilityZonesOutputAvailabilityZones]
}

type AwsEC2DescribeAvailabilityZonesOutputAvailabilityZones {
  State: String
  OptInStatus: String
  Messages: [AwsEC2DescribeAvailabilityZonesOutputAvailabilityZonesMessages]
  RegionName: String
  ZoneName: String
  ZoneId: String
  GroupName: String
  NetworkBorderGroup: String
  ZoneType: String
  ParentZoneName: String
  ParentZoneId: String
}

type AwsEC2DescribeAvailabilityZonesOutputAvailabilityZonesMessages {
  Message: String
}

input AwsEC2DescribeAvailabilityZonesInput {
  Filters: [AwsEC2SotInput]
  ZoneNames: [String]
  ZoneIds: [String]
  AllAvailabilityZones: Boolean
  DryRun: Boolean
}

type AwsEC2DescribeBundleTasksOutput {
  BundleTasks: [AwsEC2S4z]
}

input AwsEC2DescribeBundleTasksInput {
  BundleIds: [String]
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
}

type AwsEC2DescribeByoipCidrsOutput {
  ByoipCidrs: [AwsEC2S1n]
  NextToken: String
}

input AwsEC2DescribeByoipCidrsInput {
  DryRun: Boolean
  MaxResults: Int!
  NextToken: String
}

type AwsEC2DescribeCapacityReservationsOutput {
  NextToken: String
  CapacityReservations: [AwsEC2S6r]
}

input AwsEC2DescribeCapacityReservationsInput {
  CapacityReservationIds: [String]
  NextToken: String
  MaxResults: Int
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
}

type AwsEC2DescribeCarrierGatewaysOutput {
  CarrierGateways: [AwsEC2S6w]
  NextToken: String
}

input AwsEC2DescribeCarrierGatewaysInput {
  CarrierGatewayIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeClassicLinkInstancesOutput {
  Instances: [AwsEC2DescribeClassicLinkInstancesOutputInstances]
  NextToken: String
}

type AwsEC2DescribeClassicLinkInstancesOutputInstances {
  Groups: [AwsEC2Se3]
  InstanceId: String
  Tags: [AwsEC2Ss]
  VpcId: String
}

input AwsEC2DescribeClassicLinkInstancesInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  InstanceIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeClientVpnAuthorizationRulesOutput {
  AuthorizationRules: [AwsEC2DescribeClientVpnAuthorizationRulesOutputAuthorizationRules]
  NextToken: String
}

type AwsEC2DescribeClientVpnAuthorizationRulesOutputAuthorizationRules {
  ClientVpnEndpointId: String
  Description: String
  GroupId: String
  AccessAll: Boolean
  DestinationCidr: String
  Status: AwsEC2S4f
}

input AwsEC2DescribeClientVpnAuthorizationRulesInput {
  ClientVpnEndpointId: String!
  DryRun: Boolean
  NextToken: String
  Filters: [AwsEC2SotInput]
  MaxResults: Int
}

type AwsEC2DescribeClientVpnConnectionsOutput {
  Connections: [AwsEC2DescribeClientVpnConnectionsOutputConnections]
  NextToken: String
}

type AwsEC2DescribeClientVpnConnectionsOutputConnections {
  ClientVpnEndpointId: String
  Timestamp: String
  ConnectionId: String
  Username: String
  ConnectionEstablishedTime: String
  IngressBytes: String
  EgressBytes: String
  IngressPackets: String
  EgressPackets: String
  ClientIp: String
  CommonName: String
  Status: AwsEC2Sql
  ConnectionEndTime: String
  PostureComplianceStatuses: [String]
}

type AwsEC2Sql {
  Code: String
  Message: String
}

input AwsEC2DescribeClientVpnConnectionsInput {
  ClientVpnEndpointId: String!
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
}

type AwsEC2DescribeClientVpnEndpointsOutput {
  ClientVpnEndpoints: [AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpoints]
  NextToken: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpoints {
  ClientVpnEndpointId: String
  Description: String
  Status: AwsEC2S7b
  CreationTime: String
  DeletionTime: String
  DnsName: String
  ClientCidrBlock: String
  DnsServers: [String]
  SplitTunnel: Boolean
  VpnProtocol: String
  TransportProtocol: String
  VpnPort: Int
  AssociatedTargetNetworks: [AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAssociatedTargetNetworks]
  ServerCertificateArn: String
  AuthenticationOptions: [AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptions]
  ConnectionLogOptions: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsConnectionLogOptions
  Tags: [AwsEC2Ss]
  SecurityGroupIds: [String]
  VpcId: String
  SelfServicePortalUrl: String
  ClientConnectOptions: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsClientConnectOptions
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAssociatedTargetNetworks {
  NetworkId: String
  NetworkType: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptions {
  Type: String
  ActiveDirectory: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsActiveDirectory
  MutualAuthentication: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsMutualAuthentication
  FederatedAuthentication: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsFederatedAuthentication
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsActiveDirectory {
  DirectoryId: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsMutualAuthentication {
  ClientRootCertificateChain: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsAuthenticationOptionsFederatedAuthentication {
  SamlProviderArn: String
  SelfServiceSamlProviderArn: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsConnectionLogOptions {
  Enabled: Boolean
  CloudwatchLogGroup: String
  CloudwatchLogStream: String
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsClientConnectOptions {
  Enabled: Boolean
  LambdaFunctionArn: String
  Status: AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsClientConnectOptionsStatus
}

type AwsEC2DescribeClientVpnEndpointsOutputClientVpnEndpointsClientConnectOptionsStatus {
  Code: String
  Message: String
}

input AwsEC2DescribeClientVpnEndpointsInput {
  ClientVpnEndpointIds: [String]
  MaxResults: Int
  NextToken: String
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
}

type AwsEC2DescribeClientVpnRoutesOutput {
  Routes: [AwsEC2DescribeClientVpnRoutesOutputRoutes]
  NextToken: String
}

type AwsEC2DescribeClientVpnRoutesOutputRoutes {
  ClientVpnEndpointId: String
  DestinationCidr: String
  TargetSubnet: String
  Type: String
  Origin: String
  Status: AwsEC2S7f
  Description: String
}

input AwsEC2DescribeClientVpnRoutesInput {
  ClientVpnEndpointId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeClientVpnTargetNetworksOutput {
  ClientVpnTargetNetworks: [AwsEC2DescribeClientVpnTargetNetworksOutputClientVpnTargetNetworks]
  NextToken: String
}

type AwsEC2DescribeClientVpnTargetNetworksOutputClientVpnTargetNetworks {
  AssociationId: String
  VpcId: String
  TargetNetworkId: String
  ClientVpnEndpointId: String
  Status: AwsEC2S2o
  SecurityGroups: [String]
}

input AwsEC2DescribeClientVpnTargetNetworksInput {
  ClientVpnEndpointId: String!
  AssociationIds: [String]
  MaxResults: Int
  NextToken: String
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
}

type AwsEC2DescribeCoipPoolsOutput {
  CoipPools: [AwsEC2DescribeCoipPoolsOutputCoipPools]
  NextToken: String
}

type AwsEC2DescribeCoipPoolsOutputCoipPools {
  PoolId: String
  PoolCidrs: [String]
  LocalGatewayRouteTableId: String
  Tags: [AwsEC2Ss]
  PoolArn: String
}

input AwsEC2DescribeCoipPoolsInput {
  PoolIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeConversionTasksOutput {
  ConversionTasks: [AwsEC2Srq]
}

type AwsEC2Srq {
  ConversionTaskId: String
  ExpirationTime: String
  ImportInstance: AwsEC2SrqImportInstance
  ImportVolume: AwsEC2SrqImportVolume
  State: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
}

type AwsEC2SrqImportInstance {
  Description: String
  InstanceId: String
  Platform: String
  Volumes: [AwsEC2SrqImportInstanceVolumes]
}

type AwsEC2SrqImportInstanceVolumes {
  AvailabilityZone: String
  BytesConverted: JSON
  Description: String
  Image: AwsEC2Sru
  Status: String
  StatusMessage: String
  Volume: AwsEC2Srv
}

type AwsEC2Sru {
  Checksum: String
  Format: String
  ImportManifestUrl: String
  Size: JSON
}

type AwsEC2Srv {
  Id: String
  Size: JSON
}

type AwsEC2SrqImportVolume {
  AvailabilityZone: String
  BytesConverted: JSON
  Description: String
  Image: AwsEC2Sru
  Volume: AwsEC2Srv
}

input AwsEC2DescribeConversionTasksInput {
  ConversionTaskIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeCustomerGatewaysOutput {
  CustomerGateways: [AwsEC2S7k]
}

input AwsEC2DescribeCustomerGatewaysInput {
  CustomerGatewayIds: [String]
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
}

type AwsEC2DescribeDhcpOptionsOutput {
  DhcpOptions: [AwsEC2S82]
  NextToken: String
}

input AwsEC2DescribeDhcpOptionsInput {
  DhcpOptionsIds: [String]
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeEgressOnlyInternetGatewaysOutput {
  EgressOnlyInternetGateways: [AwsEC2S89]
  NextToken: String
}

input AwsEC2DescribeEgressOnlyInternetGatewaysInput {
  DryRun: Boolean
  EgressOnlyInternetGatewayIds: [String]
  MaxResults: Int
  NextToken: String
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeElasticGpusOutput {
  ElasticGpuSet: [AwsEC2DescribeElasticGpusOutputElasticGpuSet]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeElasticGpusOutputElasticGpuSet {
  ElasticGpuId: String
  AvailabilityZone: String
  ElasticGpuType: String
  ElasticGpuHealth: AwsEC2DescribeElasticGpusOutputElasticGpuSetElasticGpuHealth
  ElasticGpuState: String
  InstanceId: String
  Tags: [AwsEC2Ss]
}

type AwsEC2DescribeElasticGpusOutputElasticGpuSetElasticGpuHealth {
  Status: String
}

input AwsEC2DescribeElasticGpusInput {
  ElasticGpuIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeExportImageTasksOutput {
  ExportImageTasks: [AwsEC2DescribeExportImageTasksOutputExportImageTasks]
  NextToken: String
}

type AwsEC2DescribeExportImageTasksOutputExportImageTasks {
  Description: String
  ExportImageTaskId: String
  ImageId: String
  Progress: String
  S3ExportLocation: AwsEC2Sst
  Status: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
}

type AwsEC2Sst {
  S3Bucket: String
  S3Prefix: String
}

input AwsEC2DescribeExportImageTasksInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  ExportImageTaskIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeExportTasksOutput {
  ExportTasks: [AwsEC2Sa0]
}

input AwsEC2DescribeExportTasksInput {
  ExportTaskIds: [String]
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeFastSnapshotRestoresOutput {
  FastSnapshotRestores: [AwsEC2DescribeFastSnapshotRestoresOutputFastSnapshotRestores]
  NextToken: String
}

type AwsEC2DescribeFastSnapshotRestoresOutputFastSnapshotRestores {
  SnapshotId: String
  AvailabilityZone: String
  State: String
  StateTransitionReason: String
  OwnerId: String
  OwnerAlias: String
  EnablingTime: Date
  OptimizingTime: Date
  EnabledTime: Date
  DisablingTime: Date
  DisabledTime: Date
}

input AwsEC2DescribeFastSnapshotRestoresInput {
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeFleetHistoryOutput {
  HistoryRecords: [AwsEC2DescribeFleetHistoryOutputHistoryRecords]
  LastEvaluatedTime: Date
  NextToken: String
  FleetId: String
  StartTime: Date
}

type AwsEC2DescribeFleetHistoryOutputHistoryRecords {
  EventInformation: AwsEC2Sta
  EventType: String
  Timestamp: Date
}

type AwsEC2Sta {
  EventDescription: String
  EventSubType: String
  InstanceId: String
}

input AwsEC2DescribeFleetHistoryInput {
  DryRun: Boolean
  EventType: String
  MaxResults: Int
  NextToken: String
  FleetId: String!
  StartTime: Date!
}

type AwsEC2DescribeFleetInstancesOutput {
  ActiveInstances: [AwsEC2Std]
  NextToken: String
  FleetId: String
}

type AwsEC2Std {
  InstanceId: String
  InstanceType: String
  SpotInstanceRequestId: String
  InstanceHealth: String
}

input AwsEC2DescribeFleetInstancesInput {
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  FleetId: String!
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeFleetsOutput {
  NextToken: String
  Fleets: [AwsEC2DescribeFleetsOutputFleets]
}

type AwsEC2DescribeFleetsOutputFleets {
  ActivityStatus: String
  CreateTime: Date
  FleetId: String
  FleetState: String
  ClientToken: String
  ExcessCapacityTerminationPolicy: String
  FulfilledCapacity: JSON
  FulfilledOnDemandCapacity: JSON
  LaunchTemplateConfigs: [AwsEC2DescribeFleetsOutputFleetsLaunchTemplateConfigs]
  TargetCapacitySpecification: AwsEC2DescribeFleetsOutputFleetsTargetCapacitySpecification
  TerminateInstancesWithExpiration: Boolean
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  ReplaceUnhealthyInstances: Boolean
  SpotOptions: AwsEC2DescribeFleetsOutputFleetsSpotOptions
  OnDemandOptions: AwsEC2DescribeFleetsOutputFleetsOnDemandOptions
  Tags: [AwsEC2Ss]
  Errors: [AwsEC2DescribeFleetsOutputFleetsErrors]
  Instances: [AwsEC2DescribeFleetsOutputFleetsInstances]
}

type AwsEC2DescribeFleetsOutputFleetsLaunchTemplateConfigs {
  LaunchTemplateSpecification: AwsEC2S96
  Overrides: [AwsEC2S97]
}

type AwsEC2DescribeFleetsOutputFleetsTargetCapacitySpecification {
  TotalTargetCapacity: Int
  OnDemandTargetCapacity: Int
  SpotTargetCapacity: Int
  DefaultTargetCapacityType: String
}

type AwsEC2DescribeFleetsOutputFleetsSpotOptions {
  AllocationStrategy: String
  MaintenanceStrategies: AwsEC2DescribeFleetsOutputFleetsSpotOptionsMaintenanceStrategies
  InstanceInterruptionBehavior: String
  InstancePoolsToUseCount: Int
  SingleInstanceType: Boolean
  SingleAvailabilityZone: Boolean
  MinTargetCapacity: Int
  MaxTotalPrice: String
}

type AwsEC2DescribeFleetsOutputFleetsSpotOptionsMaintenanceStrategies {
  CapacityRebalance: AwsEC2DescribeFleetsOutputFleetsSpotOptionsMaintenanceStrategiesCapacityRebalance
}

type AwsEC2DescribeFleetsOutputFleetsSpotOptionsMaintenanceStrategiesCapacityRebalance {
  ReplacementStrategy: String
}

type AwsEC2DescribeFleetsOutputFleetsOnDemandOptions {
  AllocationStrategy: String
  CapacityReservationOptions: AwsEC2DescribeFleetsOutputFleetsOnDemandOptionsCapacityReservationOptions
  SingleInstanceType: Boolean
  SingleAvailabilityZone: Boolean
  MinTargetCapacity: Int
  MaxTotalPrice: String
}

type AwsEC2DescribeFleetsOutputFleetsOnDemandOptionsCapacityReservationOptions {
  UsageStrategy: String
}

type AwsEC2DescribeFleetsOutputFleetsErrors {
  LaunchTemplateAndOverrides: AwsEC2S95
  Lifecycle: String
  ErrorCode: String
  ErrorMessage: String
}

type AwsEC2DescribeFleetsOutputFleetsInstances {
  LaunchTemplateAndOverrides: AwsEC2S95
  Lifecycle: String
  InstanceIds: [String]
  InstanceType: String
  Platform: String
}

input AwsEC2DescribeFleetsInput {
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  FleetIds: [String]
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeFlowLogsOutput {
  FlowLogs: [AwsEC2DescribeFlowLogsOutputFlowLogs]
  NextToken: String
}

type AwsEC2DescribeFlowLogsOutputFlowLogs {
  CreationTime: Date
  DeliverLogsErrorMessage: String
  DeliverLogsPermissionArn: String
  DeliverLogsStatus: String
  FlowLogId: String
  FlowLogStatus: String
  LogGroupName: String
  ResourceId: String
  TrafficType: String
  LogDestinationType: String
  LogDestination: String
  LogFormat: String
  Tags: [AwsEC2Ss]
  MaxAggregationInterval: Int
}

input AwsEC2DescribeFlowLogsInput {
  DryRun: Boolean
  Filter: [AwsEC2SotInput]
  FlowLogIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeFpgaImageAttributeOutput {
  FpgaImageAttribute: AwsEC2Su5
}

type AwsEC2Su5 {
  FpgaImageId: String
  Name: String
  Description: String
  LoadPermissions: [AwsEC2Su5LoadPermissions]
  ProductCodes: [AwsEC2Su9]
}

type AwsEC2Su5LoadPermissions {
  UserId: String
  Group: String
}

type AwsEC2Su9 {
  ProductCodeId: String
  ProductCodeType: String
}

input AwsEC2DescribeFpgaImageAttributeInput {
  DryRun: Boolean
  FpgaImageId: String!
  Attribute: String!
}

type AwsEC2DescribeFpgaImagesOutput {
  FpgaImages: [AwsEC2DescribeFpgaImagesOutputFpgaImages]
  NextToken: String
}

type AwsEC2DescribeFpgaImagesOutputFpgaImages {
  FpgaImageId: String
  FpgaImageGlobalId: String
  Name: String
  Description: String
  ShellVersion: String
  PciId: AwsEC2DescribeFpgaImagesOutputFpgaImagesPciId
  State: AwsEC2DescribeFpgaImagesOutputFpgaImagesState
  CreateTime: Date
  UpdateTime: Date
  OwnerId: String
  OwnerAlias: String
  ProductCodes: [AwsEC2Su9]
  Tags: [AwsEC2Ss]
  Public: Boolean
  DataRetentionSupport: Boolean
}

type AwsEC2DescribeFpgaImagesOutputFpgaImagesPciId {
  DeviceId: String
  VendorId: String
  SubsystemId: String
  SubsystemVendorId: String
}

type AwsEC2DescribeFpgaImagesOutputFpgaImagesState {
  Code: String
  Message: String
}

input AwsEC2DescribeFpgaImagesInput {
  DryRun: Boolean
  FpgaImageIds: [String]
  Owners: [String]
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeHostReservationOfferingsOutput {
  NextToken: String
  OfferingSet: [AwsEC2DescribeHostReservationOfferingsOutputOfferingSet]
}

type AwsEC2DescribeHostReservationOfferingsOutputOfferingSet {
  CurrencyCode: String
  Duration: Int
  HourlyPrice: String
  InstanceFamily: String
  OfferingId: String
  PaymentOption: String
  UpfrontPrice: String
}

input AwsEC2DescribeHostReservationOfferingsInput {
  Filter: [AwsEC2SotInput]
  MaxDuration: Int
  MaxResults: Int
  MinDuration: Int
  NextToken: String
  OfferingId: String
}

type AwsEC2DescribeHostReservationsOutput {
  HostReservationSet: [AwsEC2DescribeHostReservationsOutputHostReservationSet]
  NextToken: String
}

type AwsEC2DescribeHostReservationsOutputHostReservationSet {
  Count: Int
  CurrencyCode: String
  Duration: Int
  End: Date
  HostIdSet: [String]
  HostReservationId: String
  HourlyPrice: String
  InstanceFamily: String
  OfferingId: String
  PaymentOption: String
  Start: Date
  State: String
  UpfrontPrice: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeHostReservationsInput {
  Filter: [AwsEC2SotInput]
  HostReservationIdSet: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeHostsOutput {
  Hosts: [AwsEC2DescribeHostsOutputHosts]
  NextToken: String
}

type AwsEC2DescribeHostsOutputHosts {
  AutoPlacement: String
  AvailabilityZone: String
  AvailableCapacity: AwsEC2DescribeHostsOutputHostsAvailableCapacity
  ClientToken: String
  HostId: String
  HostProperties: AwsEC2DescribeHostsOutputHostsHostProperties
  HostReservationId: String
  Instances: [AwsEC2DescribeHostsOutputHostsInstances]
  State: String
  AllocationTime: Date
  ReleaseTime: Date
  Tags: [AwsEC2Ss]
  HostRecovery: String
  AllowsMultipleInstanceTypes: String
  OwnerId: String
  AvailabilityZoneId: String
  MemberOfServiceLinkedResourceGroup: Boolean
}

type AwsEC2DescribeHostsOutputHostsAvailableCapacity {
  AvailableInstanceCapacity: [AwsEC2DescribeHostsOutputHostsAvailableCapacityAvailableInstanceCapacity]
  AvailableVCpus: Int
}

type AwsEC2DescribeHostsOutputHostsAvailableCapacityAvailableInstanceCapacity {
  AvailableCapacity: Int
  InstanceType: String
  TotalCapacity: Int
}

type AwsEC2DescribeHostsOutputHostsHostProperties {
  Cores: Int
  InstanceType: String
  InstanceFamily: String
  Sockets: Int
  TotalVCpus: Int
}

type AwsEC2DescribeHostsOutputHostsInstances {
  InstanceId: String
  InstanceType: String
  OwnerId: String
}

input AwsEC2DescribeHostsInput {
  Filter: [AwsEC2SotInput]
  HostIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeIamInstanceProfileAssociationsOutput {
  IamInstanceProfileAssociations: [AwsEC2S2y]
  NextToken: String
}

input AwsEC2DescribeIamInstanceProfileAssociationsInput {
  AssociationIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeIdFormatOutput {
  Statuses: [AwsEC2Spb]
}

input AwsEC2DescribeIdFormatInput {
  Resource: String
}

type AwsEC2DescribeIdentityIdFormatOutput {
  Statuses: [AwsEC2Spb]
}

input AwsEC2DescribeIdentityIdFormatInput {
  PrincipalArn: String!
  Resource: String
}

type AwsEC2DescribeImageAttributeOutput {
  BlockDeviceMappings: [AwsEC2S9q]
  ImageId: String
  LaunchPermissions: [AwsEC2Svs]
  ProductCodes: [AwsEC2Su9]
  Description: AwsEC2S86
  KernelId: AwsEC2S86
  RamdiskId: AwsEC2S86
  SriovNetSupport: AwsEC2S86
  BootMode: AwsEC2S86
}

type AwsEC2S9q {
  DeviceName: String
  VirtualName: String
  Ebs: AwsEC2S9qEbs
  NoDevice: String
}

type AwsEC2S9qEbs {
  DeleteOnTermination: Boolean
  Iops: Int
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
  KmsKeyId: String
  Throughput: Int
  OutpostArn: String
  Encrypted: Boolean
}

type AwsEC2Svs {
  Group: String
  UserId: String
}

input AwsEC2DescribeImageAttributeInput {
  Attribute: String!
  ImageId: String!
  DryRun: Boolean
}

type AwsEC2DescribeImagesOutput {
  Images: [AwsEC2DescribeImagesOutputImages]
}

type AwsEC2DescribeImagesOutputImages {
  Architecture: String
  CreationDate: String
  ImageId: String
  ImageLocation: String
  ImageType: String
  Public: Boolean
  KernelId: String
  OwnerId: String
  Platform: String
  PlatformDetails: String
  UsageOperation: String
  ProductCodes: [AwsEC2Su9]
  RamdiskId: String
  State: String
  BlockDeviceMappings: [AwsEC2S9q]
  Description: String
  EnaSupport: Boolean
  Hypervisor: String
  ImageOwnerAlias: String
  Name: String
  RootDeviceName: String
  RootDeviceType: String
  SriovNetSupport: String
  StateReason: AwsEC2Sw5
  Tags: [AwsEC2Ss]
  VirtualizationType: String
  BootMode: String
  DeprecationTime: String
}

type AwsEC2Sw5 {
  Code: String
  Message: String
}

input AwsEC2DescribeImagesInput {
  ExecutableUsers: [String]
  Filters: [AwsEC2SotInput]
  ImageIds: [String]
  Owners: [String]
  IncludeDeprecated: Boolean
  DryRun: Boolean
}

type AwsEC2DescribeImportImageTasksOutput {
  ImportImageTasks: [AwsEC2DescribeImportImageTasksOutputImportImageTasks]
  NextToken: String
}

type AwsEC2DescribeImportImageTasksOutputImportImageTasks {
  Architecture: String
  Description: String
  Encrypted: Boolean
  Hypervisor: String
  ImageId: String
  ImportTaskId: String
  KmsKeyId: String
  LicenseType: String
  Platform: String
  Progress: String
  SnapshotDetails: [AwsEC2Swe]
  Status: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
  LicenseSpecifications: [AwsEC2Swh]
}

type AwsEC2Swe {
  Description: String
  DeviceName: String
  DiskImageSize: JSON
  Format: String
  Progress: String
  SnapshotId: String
  Status: String
  StatusMessage: String
  Url: String
  UserBucket: AwsEC2Swg
}

type AwsEC2Swg {
  S3Bucket: String
  S3Key: String
}

type AwsEC2Swh {
  LicenseConfigurationArn: String
}

input AwsEC2DescribeImportImageTasksInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  ImportTaskIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeImportSnapshotTasksOutput {
  ImportSnapshotTasks: [AwsEC2DescribeImportSnapshotTasksOutputImportSnapshotTasks]
  NextToken: String
}

type AwsEC2DescribeImportSnapshotTasksOutputImportSnapshotTasks {
  Description: String
  ImportTaskId: String
  SnapshotTaskDetail: AwsEC2Swp
  Tags: [AwsEC2Ss]
}

type AwsEC2Swp {
  Description: String
  DiskImageSize: JSON
  Encrypted: Boolean
  Format: String
  KmsKeyId: String
  Progress: String
  SnapshotId: String
  Status: String
  StatusMessage: String
  Url: String
  UserBucket: AwsEC2Swg
}

input AwsEC2DescribeImportSnapshotTasksInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  ImportTaskIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeInstanceAttributeOutput {
  Groups: [AwsEC2Se3]
  BlockDeviceMappings: [AwsEC2Swt]
  DisableApiTermination: AwsEC2Sww
  EnaSupport: AwsEC2Sww
  EnclaveOptions: AwsEC2Swx
  EbsOptimized: AwsEC2Sww
  InstanceId: String
  InstanceInitiatedShutdownBehavior: AwsEC2S86
  InstanceType: AwsEC2S86
  KernelId: AwsEC2S86
  ProductCodes: [AwsEC2Su9]
  RamdiskId: AwsEC2S86
  RootDeviceName: AwsEC2S86
  SourceDestCheck: AwsEC2Sww
  SriovNetSupport: AwsEC2S86
  UserData: AwsEC2S86
}

type AwsEC2Swt {
  DeviceName: String
  Ebs: AwsEC2SwtEbs
}

type AwsEC2SwtEbs {
  AttachTime: Date
  DeleteOnTermination: Boolean
  Status: String
  VolumeId: String
}

type AwsEC2Sww {
  Value: Boolean
}

type AwsEC2Swx {
  Enabled: Boolean
}

input AwsEC2DescribeInstanceAttributeInput {
  Attribute: String!
  DryRun: Boolean
  InstanceId: String!
}

type AwsEC2DescribeInstanceCreditSpecificationsOutput {
  InstanceCreditSpecifications: [AwsEC2DescribeInstanceCreditSpecificationsOutputInstanceCreditSpecifications]
  NextToken: String
}

type AwsEC2DescribeInstanceCreditSpecificationsOutputInstanceCreditSpecifications {
  InstanceId: String
  CpuCredits: String
}

input AwsEC2DescribeInstanceCreditSpecificationsInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  InstanceIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeInstanceEventNotificationAttributesOutput {
  InstanceTagAttribute: AwsEC2Soc
}

input AwsEC2DescribeInstanceEventNotificationAttributesInput {
  DryRun: Boolean
}

type AwsEC2DescribeInstanceStatusOutput {
  InstanceStatuses: [AwsEC2DescribeInstanceStatusOutputInstanceStatuses]
  NextToken: String
}

type AwsEC2DescribeInstanceStatusOutputInstanceStatuses {
  AvailabilityZone: String
  OutpostArn: String
  Events: [AwsEC2Sxa]
  InstanceId: String
  InstanceState: AwsEC2Sxd
  InstanceStatus: AwsEC2Sxf
  SystemStatus: AwsEC2Sxf
}

type AwsEC2Sxa {
  InstanceEventId: String
  Code: String
  Description: String
  NotAfter: Date
  NotBefore: Date
  NotBeforeDeadline: Date
}

type AwsEC2Sxd {
  Code: Int
  Name: String
}

type AwsEC2Sxf {
  Details: [AwsEC2SxfDetails]
  Status: String
}

type AwsEC2SxfDetails {
  ImpairedSince: Date
  Name: String
  Status: String
}

input AwsEC2DescribeInstanceStatusInput {
  Filters: [AwsEC2SotInput]
  InstanceIds: [String]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
  IncludeAllInstances: Boolean
}

type AwsEC2DescribeInstanceTypeOfferingsOutput {
  InstanceTypeOfferings: [AwsEC2DescribeInstanceTypeOfferingsOutputInstanceTypeOfferings]
  NextToken: String
}

type AwsEC2DescribeInstanceTypeOfferingsOutputInstanceTypeOfferings {
  InstanceType: String
  LocationType: String
  Location: String
}

input AwsEC2DescribeInstanceTypeOfferingsInput {
  DryRun: Boolean
  LocationType: String
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeInstanceTypesOutput {
  InstanceTypes: [AwsEC2DescribeInstanceTypesOutputInstanceTypes]
  NextToken: String
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypes {
  InstanceType: String
  CurrentGeneration: Boolean
  FreeTierEligible: Boolean
  SupportedUsageClasses: [String]
  SupportedRootDeviceTypes: [String]
  SupportedVirtualizationTypes: [String]
  BareMetal: Boolean
  Hypervisor: String
  ProcessorInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesProcessorInfo
  VCpuInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesVCpuInfo
  MemoryInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesMemoryInfo
  InstanceStorageSupported: Boolean
  InstanceStorageInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesInstanceStorageInfo
  EbsInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesEbsInfo
  NetworkInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfo
  GpuInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfo
  FpgaInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfo
  PlacementGroupInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesPlacementGroupInfo
  InferenceAcceleratorInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesInferenceAcceleratorInfo
  HibernationSupported: Boolean
  BurstablePerformanceSupported: Boolean
  DedicatedHostsSupported: Boolean
  AutoRecoverySupported: Boolean
  SupportedBootModes: [String]
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesProcessorInfo {
  SupportedArchitectures: [String]
  SustainedClockSpeedInGhz: JSON
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesVCpuInfo {
  DefaultVCpus: Int
  DefaultCores: Int
  DefaultThreadsPerCore: Int
  ValidCores: [Int]
  ValidThreadsPerCore: [Int]
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesMemoryInfo {
  SizeInMiB: JSON
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesInstanceStorageInfo {
  TotalSizeInGB: JSON
  Disks: [AwsEC2DescribeInstanceTypesOutputInstanceTypesInstanceStorageInfoDisks]
  NvmeSupport: String
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesInstanceStorageInfoDisks {
  SizeInGB: JSON
  Count: Int
  Type: String
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesEbsInfo {
  EbsOptimizedSupport: String
  EncryptionSupport: String
  EbsOptimizedInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesEbsInfoEbsOptimizedInfo
  NvmeSupport: String
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesEbsInfoEbsOptimizedInfo {
  BaselineBandwidthInMbps: Int
  BaselineThroughputInMBps: JSON
  BaselineIops: Int
  MaximumBandwidthInMbps: Int
  MaximumThroughputInMBps: JSON
  MaximumIops: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfo {
  NetworkPerformance: String
  MaximumNetworkInterfaces: Int
  MaximumNetworkCards: Int
  DefaultNetworkCardIndex: Int
  NetworkCards: [AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfoNetworkCards]
  Ipv4AddressesPerInterface: Int
  Ipv6AddressesPerInterface: Int
  Ipv6Supported: Boolean
  EnaSupport: String
  EfaSupported: Boolean
  EfaInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfoEfaInfo
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfoNetworkCards {
  NetworkCardIndex: Int
  NetworkPerformance: String
  MaximumNetworkInterfaces: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesNetworkInfoEfaInfo {
  MaximumEfaInterfaces: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfo {
  Gpus: [AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfoGpus]
  TotalGpuMemoryInMiB: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfoGpus {
  Name: String
  Manufacturer: String
  Count: Int
  MemoryInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfoGpusMemoryInfo
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesGpuInfoGpusMemoryInfo {
  SizeInMiB: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfo {
  Fpgas: [AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfoFpgas]
  TotalFpgaMemoryInMiB: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfoFpgas {
  Name: String
  Manufacturer: String
  Count: Int
  MemoryInfo: AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfoFpgasMemoryInfo
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesFpgaInfoFpgasMemoryInfo {
  SizeInMiB: Int
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesPlacementGroupInfo {
  SupportedStrategies: [String]
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesInferenceAcceleratorInfo {
  Accelerators: [AwsEC2DescribeInstanceTypesOutputInstanceTypesInferenceAcceleratorInfoAccelerators]
}

type AwsEC2DescribeInstanceTypesOutputInstanceTypesInferenceAcceleratorInfoAccelerators {
  Count: Int
  Name: String
  Manufacturer: String
}

input AwsEC2DescribeInstanceTypesInput {
  DryRun: Boolean
  InstanceTypes: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeInstancesOutput {
  Reservations: [AwsEC2S10h]
  NextToken: String
}

type AwsEC2S10h {
  Groups: [AwsEC2Se3]
  Instances: [AwsEC2S10hInstances]
  OwnerId: String
  RequesterId: String
  ReservationId: String
}

type AwsEC2S10hInstances {
  AmiLaunchIndex: Int
  ImageId: String
  InstanceId: String
  InstanceType: String
  KernelId: String
  KeyName: String
  LaunchTime: Date
  Monitoring: AwsEC2S10k
  Placement: AwsEC2S8x
  Platform: String
  PrivateDnsName: String
  PrivateIpAddress: String
  ProductCodes: [AwsEC2Su9]
  PublicDnsName: String
  PublicIpAddress: String
  RamdiskId: String
  State: AwsEC2Sxd
  StateTransitionReason: String
  SubnetId: String
  VpcId: String
  Architecture: String
  BlockDeviceMappings: [AwsEC2Swt]
  ClientToken: String
  EbsOptimized: Boolean
  EnaSupport: Boolean
  Hypervisor: String
  IamInstanceProfile: AwsEC2S2z
  InstanceLifecycle: String
  ElasticGpuAssociations: [AwsEC2S10hInstancesElasticGpuAssociations]
  ElasticInferenceAcceleratorAssociations: [AwsEC2S10hInstancesElasticInferenceAcceleratorAssociations]
  NetworkInterfaces: [AwsEC2S10hInstancesNetworkInterfaces]
  OutpostArn: String
  RootDeviceName: String
  RootDeviceType: String
  SecurityGroups: [AwsEC2Se3]
  SourceDestCheck: Boolean
  SpotInstanceRequestId: String
  SriovNetSupport: String
  StateReason: AwsEC2Sw5
  Tags: [AwsEC2Ss]
  VirtualizationType: String
  CpuOptions: AwsEC2S10hInstancesCpuOptions
  CapacityReservationId: String
  CapacityReservationSpecification: AwsEC2S10hInstancesCapacityReservationSpecification
  HibernationOptions: AwsEC2S10hInstancesHibernationOptions
  Licenses: [AwsEC2S10hInstancesLicenses]
  MetadataOptions: AwsEC2S112
  EnclaveOptions: AwsEC2Swx
  BootMode: String
}

type AwsEC2S10k {
  State: String
}

type AwsEC2S8x {
  AvailabilityZone: String
  Affinity: String
  GroupName: String
  PartitionNumber: Int
  HostId: String
  Tenancy: String
  SpreadDomain: String
  HostResourceGroupArn: String
}

type AwsEC2S10hInstancesElasticGpuAssociations {
  ElasticGpuId: String
  ElasticGpuAssociationId: String
  ElasticGpuAssociationState: String
  ElasticGpuAssociationTime: String
}

type AwsEC2S10hInstancesElasticInferenceAcceleratorAssociations {
  ElasticInferenceAcceleratorArn: String
  ElasticInferenceAcceleratorAssociationId: String
  ElasticInferenceAcceleratorAssociationState: String
  ElasticInferenceAcceleratorAssociationTime: Date
}

type AwsEC2S10hInstancesNetworkInterfaces {
  Association: AwsEC2S10t
  Attachment: AwsEC2S10hInstancesNetworkInterfacesAttachment
  Description: String
  Groups: [AwsEC2Se3]
  Ipv6Addresses: [AwsEC2Sc2]
  MacAddress: String
  NetworkInterfaceId: String
  OwnerId: String
  PrivateDnsName: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2S10hInstancesNetworkInterfacesPrivateIpAddresses]
  SourceDestCheck: Boolean
  Status: String
  SubnetId: String
  VpcId: String
  InterfaceType: String
}

type AwsEC2S10t {
  CarrierIp: String
  IpOwnerId: String
  PublicDnsName: String
  PublicIp: String
}

type AwsEC2S10hInstancesNetworkInterfacesAttachment {
  AttachTime: Date
  AttachmentId: String
  DeleteOnTermination: Boolean
  DeviceIndex: Int
  Status: String
  NetworkCardIndex: Int
}

type AwsEC2S10hInstancesNetworkInterfacesPrivateIpAddresses {
  Association: AwsEC2S10t
  Primary: Boolean
  PrivateDnsName: String
  PrivateIpAddress: String
}

type AwsEC2S10hInstancesCpuOptions {
  CoreCount: Int
  ThreadsPerCore: Int
}

type AwsEC2S10hInstancesCapacityReservationSpecification {
  CapacityReservationPreference: String
  CapacityReservationTarget: AwsEC2Sch
}

type AwsEC2S10hInstancesHibernationOptions {
  Configured: Boolean
}

type AwsEC2S10hInstancesLicenses {
  LicenseConfigurationArn: String
}

type AwsEC2S112 {
  State: String
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

input AwsEC2DescribeInstancesInput {
  Filters: [AwsEC2SotInput]
  InstanceIds: [String]
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeInternetGatewaysOutput {
  InternetGateways: [AwsEC2Sa6]
  NextToken: String
}

input AwsEC2DescribeInternetGatewaysInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  InternetGatewayIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeIpv6PoolsOutput {
  Ipv6Pools: [AwsEC2DescribeIpv6PoolsOutputIpv6Pools]
  NextToken: String
}

type AwsEC2DescribeIpv6PoolsOutputIpv6Pools {
  PoolId: String
  Description: String
  PoolCidrBlocks: [AwsEC2DescribeIpv6PoolsOutputIpv6PoolsPoolCidrBlocks]
  Tags: [AwsEC2Ss]
}

type AwsEC2DescribeIpv6PoolsOutputIpv6PoolsPoolCidrBlocks {
  Cidr: String
}

input AwsEC2DescribeIpv6PoolsInput {
  PoolIds: [String]
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeKeyPairsOutput {
  KeyPairs: [AwsEC2DescribeKeyPairsOutputKeyPairs]
}

type AwsEC2DescribeKeyPairsOutputKeyPairs {
  KeyPairId: String
  KeyFingerprint: String
  KeyName: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeKeyPairsInput {
  Filters: [AwsEC2SotInput]
  KeyNames: [String]
  KeyPairIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeLaunchTemplateVersionsOutput {
  LaunchTemplateVersions: [AwsEC2Sbu]
  NextToken: String
}

input AwsEC2DescribeLaunchTemplateVersionsInput {
  DryRun: Boolean
  LaunchTemplateId: String
  LaunchTemplateName: String
  Versions: [String]
  MinVersion: String
  MaxVersion: String
  NextToken: String
  MaxResults: Int
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeLaunchTemplatesOutput {
  LaunchTemplates: [AwsEC2Sbo]
  NextToken: String
}

input AwsEC2DescribeLaunchTemplatesInput {
  DryRun: Boolean
  LaunchTemplateIds: [String]
  LaunchTemplateNames: [String]
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociations: [AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputLocalGatewayRouteTableVirtualInterfaceGroupAssociations]
  NextToken: String
}

type AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputLocalGatewayRouteTableVirtualInterfaceGroupAssociations {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociationId: String
  LocalGatewayVirtualInterfaceGroupId: String
  LocalGatewayId: String
  LocalGatewayRouteTableId: String
  LocalGatewayRouteTableArn: String
  OwnerId: String
  State: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeLocalGatewayRouteTableVpcAssociationsOutput {
  LocalGatewayRouteTableVpcAssociations: [AwsEC2Scx]
  NextToken: String
}

input AwsEC2DescribeLocalGatewayRouteTableVpcAssociationsInput {
  LocalGatewayRouteTableVpcAssociationIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeLocalGatewayRouteTablesOutput {
  LocalGatewayRouteTables: [AwsEC2DescribeLocalGatewayRouteTablesOutputLocalGatewayRouteTables]
  NextToken: String
}

type AwsEC2DescribeLocalGatewayRouteTablesOutputLocalGatewayRouteTables {
  LocalGatewayRouteTableId: String
  LocalGatewayRouteTableArn: String
  LocalGatewayId: String
  OutpostArn: String
  OwnerId: String
  State: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeLocalGatewayRouteTablesInput {
  LocalGatewayRouteTableIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsOutput {
  LocalGatewayVirtualInterfaceGroups: [AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsOutputLocalGatewayVirtualInterfaceGroups]
  NextToken: String
}

type AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsOutputLocalGatewayVirtualInterfaceGroups {
  LocalGatewayVirtualInterfaceGroupId: String
  LocalGatewayVirtualInterfaceIds: [String]
  LocalGatewayId: String
  OwnerId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeLocalGatewayVirtualInterfaceGroupsInput {
  LocalGatewayVirtualInterfaceGroupIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeLocalGatewayVirtualInterfacesOutput {
  LocalGatewayVirtualInterfaces: [AwsEC2DescribeLocalGatewayVirtualInterfacesOutputLocalGatewayVirtualInterfaces]
  NextToken: String
}

type AwsEC2DescribeLocalGatewayVirtualInterfacesOutputLocalGatewayVirtualInterfaces {
  LocalGatewayVirtualInterfaceId: String
  LocalGatewayId: String
  Vlan: Int
  LocalAddress: String
  PeerAddress: String
  LocalBgpAsn: Int
  PeerBgpAsn: Int
  OwnerId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeLocalGatewayVirtualInterfacesInput {
  LocalGatewayVirtualInterfaceIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeLocalGatewaysOutput {
  LocalGateways: [AwsEC2DescribeLocalGatewaysOutputLocalGateways]
  NextToken: String
}

type AwsEC2DescribeLocalGatewaysOutputLocalGateways {
  LocalGatewayId: String
  OutpostArn: String
  OwnerId: String
  State: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeLocalGatewaysInput {
  LocalGatewayIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeManagedPrefixListsOutput {
  NextToken: String
  PrefixLists: [AwsEC2Sd3]
}

input AwsEC2DescribeManagedPrefixListsInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  PrefixListIds: [String]
}

type AwsEC2DescribeMovingAddressesOutput {
  MovingAddressStatuses: [AwsEC2DescribeMovingAddressesOutputMovingAddressStatuses]
  NextToken: String
}

type AwsEC2DescribeMovingAddressesOutputMovingAddressStatuses {
  MoveStatus: String
  PublicIp: String
}

input AwsEC2DescribeMovingAddressesInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  PublicIps: [String]
}

type AwsEC2DescribeNatGatewaysOutput {
  NatGateways: [AwsEC2Sd9]
  NextToken: String
}

input AwsEC2DescribeNatGatewaysInput {
  DryRun: Boolean
  Filter: [AwsEC2SotInput]
  MaxResults: Int
  NatGatewayIds: [String]
  NextToken: String
}

type AwsEC2DescribeNetworkAclsOutput {
  NetworkAcls: [AwsEC2Sdg]
  NextToken: String
}

input AwsEC2DescribeNetworkAclsInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  NetworkAclIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeNetworkInsightsAnalysesOutput {
  NetworkInsightsAnalyses: [AwsEC2S13j]
  NextToken: String
}

type AwsEC2S13j {
  NetworkInsightsAnalysisId: String
  NetworkInsightsAnalysisArn: String
  NetworkInsightsPathId: String
  FilterInArns: [String]
  StartDate: Date
  Status: String
  StatusMessage: String
  NetworkPathFound: Boolean
  ForwardPathComponents: [AwsEC2S13m]
  ReturnPathComponents: [AwsEC2S13m]
  Explanations: [AwsEC2S13jExplanations]
  AlternatePathHints: [AwsEC2S13jAlternatePathHints]
  Tags: [AwsEC2Ss]
}

type AwsEC2S13m {
  SequenceNumber: Int
  AclRule: AwsEC2S13o
  Component: AwsEC2S13p
  DestinationVpc: AwsEC2S13p
  OutboundHeader: AwsEC2S13q
  InboundHeader: AwsEC2S13q
  RouteTableRoute: AwsEC2S13t
  SecurityGroupRule: AwsEC2S13u
  SourceVpc: AwsEC2S13p
  Subnet: AwsEC2S13p
  Vpc: AwsEC2S13p
}

type AwsEC2S13o {
  Cidr: String
  Egress: Boolean
  PortRange: AwsEC2Sdm
  Protocol: String
  RuleAction: String
  RuleNumber: Int
}

type AwsEC2S13p {
  Id: String
  Arn: String
}

type AwsEC2S13q {
  DestinationAddresses: [String]
  DestinationPortRanges: [AwsEC2Sdm]
  Protocol: String
  SourceAddresses: [String]
  SourcePortRanges: [AwsEC2Sdm]
}

type AwsEC2S13t {
  DestinationCidr: String
  DestinationPrefixListId: String
  EgressOnlyInternetGatewayId: String
  GatewayId: String
  InstanceId: String
  NatGatewayId: String
  NetworkInterfaceId: String
  Origin: String
  TransitGatewayId: String
  VpcPeeringConnectionId: String
}

type AwsEC2S13u {
  Cidr: String
  Direction: String
  SecurityGroupId: String
  PortRange: AwsEC2Sdm
  PrefixListId: String
  Protocol: String
}

type AwsEC2S13jExplanations {
  Acl: AwsEC2S13p
  AclRule: AwsEC2S13o
  Address: String
  Addresses: [String]
  AttachedTo: AwsEC2S13p
  AvailabilityZones: [String]
  Cidrs: [String]
  Component: AwsEC2S13p
  CustomerGateway: AwsEC2S13p
  Destination: AwsEC2S13p
  DestinationVpc: AwsEC2S13p
  Direction: String
  ExplanationCode: String
  IngressRouteTable: AwsEC2S13p
  InternetGateway: AwsEC2S13p
  LoadBalancerArn: String
  ClassicLoadBalancerListener: AwsEC2S13jExplanationsClassicLoadBalancerListener
  LoadBalancerListenerPort: Int
  LoadBalancerTarget: AwsEC2S13jExplanationsLoadBalancerTarget
  LoadBalancerTargetGroup: AwsEC2S13p
  LoadBalancerTargetGroups: [AwsEC2S13p]
  LoadBalancerTargetPort: Int
  ElasticLoadBalancerListener: AwsEC2S13p
  MissingComponent: String
  NatGateway: AwsEC2S13p
  NetworkInterface: AwsEC2S13p
  PacketField: String
  VpcPeeringConnection: AwsEC2S13p
  Port: Int
  PortRanges: [AwsEC2Sdm]
  PrefixList: AwsEC2S13p
  Protocols: [String]
  RouteTableRoute: AwsEC2S13t
  RouteTable: AwsEC2S13p
  SecurityGroup: AwsEC2S13p
  SecurityGroupRule: AwsEC2S13u
  SecurityGroups: [AwsEC2S13p]
  SourceVpc: AwsEC2S13p
  State: String
  Subnet: AwsEC2S13p
  SubnetRouteTable: AwsEC2S13p
  Vpc: AwsEC2S13p
  VpcEndpoint: AwsEC2S13p
  VpnConnection: AwsEC2S13p
  VpnGateway: AwsEC2S13p
}

type AwsEC2S13jExplanationsClassicLoadBalancerListener {
  LoadBalancerPort: Int
  InstancePort: Int
}

type AwsEC2S13jExplanationsLoadBalancerTarget {
  Address: String
  AvailabilityZone: String
  Instance: AwsEC2S13p
  Port: Int
}

type AwsEC2S13jAlternatePathHints {
  ComponentId: String
  ComponentArn: String
}

input AwsEC2DescribeNetworkInsightsAnalysesInput {
  NetworkInsightsAnalysisIds: [String]
  NetworkInsightsPathId: String
  AnalysisStartTime: Date
  AnalysisEndTime: Date
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  DryRun: Boolean
  NextToken: String
}

type AwsEC2DescribeNetworkInsightsPathsOutput {
  NetworkInsightsPaths: [AwsEC2Sdv]
  NextToken: String
}

input AwsEC2DescribeNetworkInsightsPathsInput {
  NetworkInsightsPathIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  DryRun: Boolean
  NextToken: String
}

type AwsEC2DescribeNetworkInterfaceAttributeOutput {
  Attachment: AwsEC2Se2
  Description: AwsEC2S86
  Groups: [AwsEC2Se3]
  NetworkInterfaceId: String
  SourceDestCheck: AwsEC2Sww
}

input AwsEC2DescribeNetworkInterfaceAttributeInput {
  Attribute: String
  DryRun: Boolean
  NetworkInterfaceId: String!
}

type AwsEC2DescribeNetworkInterfacePermissionsOutput {
  NetworkInterfacePermissions: [AwsEC2See]
  NextToken: String
}

input AwsEC2DescribeNetworkInterfacePermissionsInput {
  NetworkInterfacePermissionIds: [String]
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeNetworkInterfacesOutput {
  NetworkInterfaces: [AwsEC2Se0]
  NextToken: String
}

input AwsEC2DescribeNetworkInterfacesInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  NetworkInterfaceIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribePlacementGroupsOutput {
  PlacementGroups: [AwsEC2Sek]
}

input AwsEC2DescribePlacementGroupsInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  GroupNames: [String]
  GroupIds: [String]
}

type AwsEC2DescribePrefixListsOutput {
  NextToken: String
  PrefixLists: [AwsEC2DescribePrefixListsOutputPrefixLists]
}

type AwsEC2DescribePrefixListsOutputPrefixLists {
  Cidrs: [String]
  PrefixListId: String
  PrefixListName: String
}

input AwsEC2DescribePrefixListsInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  PrefixListIds: [String]
}

type AwsEC2DescribePrincipalIdFormatOutput {
  Principals: [AwsEC2DescribePrincipalIdFormatOutputPrincipals]
  NextToken: String
}

type AwsEC2DescribePrincipalIdFormatOutputPrincipals {
  Arn: String
  Statuses: [AwsEC2Spb]
}

input AwsEC2DescribePrincipalIdFormatInput {
  DryRun: Boolean
  Resources: [String]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribePublicIpv4PoolsOutput {
  PublicIpv4Pools: [AwsEC2DescribePublicIpv4PoolsOutputPublicIpv4Pools]
  NextToken: String
}

type AwsEC2DescribePublicIpv4PoolsOutputPublicIpv4Pools {
  PoolId: String
  Description: String
  PoolAddressRanges: [AwsEC2DescribePublicIpv4PoolsOutputPublicIpv4PoolsPoolAddressRanges]
  TotalAddressCount: Int
  TotalAvailableAddressCount: Int
  NetworkBorderGroup: String
  Tags: [AwsEC2Ss]
}

type AwsEC2DescribePublicIpv4PoolsOutputPublicIpv4PoolsPoolAddressRanges {
  FirstAddress: String
  LastAddress: String
  AddressCount: Int
  AvailableAddressCount: Int
}

input AwsEC2DescribePublicIpv4PoolsInput {
  PoolIds: [String]
  NextToken: String
  MaxResults: Int
  Filters: [AwsEC2SotInput]
}

type AwsEC2DescribeRegionsOutput {
  Regions: [AwsEC2DescribeRegionsOutputRegions]
}

type AwsEC2DescribeRegionsOutputRegions {
  Endpoint: String
  RegionName: String
  OptInStatus: String
}

input AwsEC2DescribeRegionsInput {
  Filters: [AwsEC2SotInput]
  RegionNames: [String]
  DryRun: Boolean
  AllRegions: Boolean
}

type AwsEC2DescribeReplaceRootVolumeTasksOutput {
  ReplaceRootVolumeTasks: [AwsEC2Seo]
  NextToken: String
}

input AwsEC2DescribeReplaceRootVolumeTasksInput {
  ReplaceRootVolumeTaskIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeReservedInstancesOutput {
  ReservedInstances: [AwsEC2DescribeReservedInstancesOutputReservedInstances]
}

type AwsEC2DescribeReservedInstancesOutputReservedInstances {
  AvailabilityZone: String
  Duration: JSON
  End: Date
  FixedPrice: Float
  InstanceCount: Int
  InstanceType: String
  ProductDescription: String
  ReservedInstancesId: String
  Start: Date
  State: String
  UsagePrice: Float
  CurrencyCode: String
  InstanceTenancy: String
  OfferingClass: String
  OfferingType: String
  RecurringCharges: [AwsEC2S15t]
  Scope: String
  Tags: [AwsEC2Ss]
}

type AwsEC2S15t {
  Amount: JSON
  Frequency: String
}

input AwsEC2DescribeReservedInstancesInput {
  Filters: [AwsEC2SotInput]
  OfferingClass: String
  ReservedInstancesIds: [String]
  DryRun: Boolean
  OfferingType: String
}

type AwsEC2DescribeReservedInstancesListingsOutput {
  ReservedInstancesListings: [AwsEC2S5i]
}

input AwsEC2DescribeReservedInstancesListingsInput {
  Filters: [AwsEC2SotInput]
  ReservedInstancesId: String
  ReservedInstancesListingId: String
}

type AwsEC2DescribeReservedInstancesModificationsOutput {
  NextToken: String
  ReservedInstancesModifications: [AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModifications]
}

type AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModifications {
  ClientToken: String
  CreateDate: Date
  EffectiveDate: Date
  ModificationResults: [AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModificationsModificationResults]
  ReservedInstancesIds: [AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModificationsReservedInstancesIds]
  ReservedInstancesModificationId: String
  Status: String
  StatusMessage: String
  UpdateDate: Date
}

type AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModificationsModificationResults {
  ReservedInstancesId: String
  TargetConfiguration: AwsEC2S167
}

type AwsEC2S167 {
  AvailabilityZone: String
  InstanceCount: Int
  InstanceType: String
  Platform: String
  Scope: String
}

type AwsEC2DescribeReservedInstancesModificationsOutputReservedInstancesModificationsReservedInstancesIds {
  ReservedInstancesId: String
}

input AwsEC2DescribeReservedInstancesModificationsInput {
  Filters: [AwsEC2SotInput]
  ReservedInstancesModificationIds: [String]
  NextToken: String
}

type AwsEC2DescribeReservedInstancesOfferingsOutput {
  ReservedInstancesOfferings: [AwsEC2DescribeReservedInstancesOfferingsOutputReservedInstancesOfferings]
  NextToken: String
}

type AwsEC2DescribeReservedInstancesOfferingsOutputReservedInstancesOfferings {
  AvailabilityZone: String
  Duration: JSON
  FixedPrice: Float
  InstanceType: String
  ProductDescription: String
  ReservedInstancesOfferingId: String
  UsagePrice: Float
  CurrencyCode: String
  InstanceTenancy: String
  Marketplace: Boolean
  OfferingClass: String
  OfferingType: String
  PricingDetails: [AwsEC2DescribeReservedInstancesOfferingsOutputReservedInstancesOfferingsPricingDetails]
  RecurringCharges: [AwsEC2S15t]
  Scope: String
}

type AwsEC2DescribeReservedInstancesOfferingsOutputReservedInstancesOfferingsPricingDetails {
  Count: Int
  Price: JSON
}

input AwsEC2DescribeReservedInstancesOfferingsInput {
  AvailabilityZone: String
  Filters: [AwsEC2SotInput]
  IncludeMarketplace: Boolean
  InstanceType: String
  MaxDuration: JSON
  MaxInstanceCount: Int
  MinDuration: JSON
  OfferingClass: String
  ProductDescription: String
  ReservedInstancesOfferingIds: [String]
  DryRun: Boolean
  InstanceTenancy: String
  MaxResults: Int
  NextToken: String
  OfferingType: String
}

type AwsEC2DescribeRouteTablesOutput {
  RouteTables: [AwsEC2Sf4]
  NextToken: String
}

input AwsEC2DescribeRouteTablesInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  RouteTableIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeScheduledInstanceAvailabilityOutput {
  NextToken: String
  ScheduledInstanceAvailabilitySet: [AwsEC2DescribeScheduledInstanceAvailabilityOutputScheduledInstanceAvailabilitySet]
}

type AwsEC2DescribeScheduledInstanceAvailabilityOutputScheduledInstanceAvailabilitySet {
  AvailabilityZone: String
  AvailableInstanceCount: Int
  FirstSlotStartTime: Date
  HourlyPrice: String
  InstanceType: String
  MaxTermDurationInDays: Int
  MinTermDurationInDays: Int
  NetworkPlatform: String
  Platform: String
  PurchaseToken: String
  Recurrence: AwsEC2S16u
  SlotDurationInHours: Int
  TotalScheduledInstanceHours: Int
}

type AwsEC2S16u {
  Frequency: String
  Interval: Int
  OccurrenceDaySet: [Int]
  OccurrenceRelativeToEnd: Boolean
  OccurrenceUnit: String
}

input AwsEC2DescribeScheduledInstanceAvailabilityInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  FirstSlotStartTimeRange: AwsEC2DescribeScheduledInstanceAvailabilityFirstSlotStartTimeRangeInput!
  MaxResults: Int
  MaxSlotDurationInHours: Int
  MinSlotDurationInHours: Int
  NextToken: String
  Recurrence: AwsEC2DescribeScheduledInstanceAvailabilityRecurrenceInput!
}

input AwsEC2DescribeScheduledInstanceAvailabilityFirstSlotStartTimeRangeInput {
  EarliestTime: Date!
  LatestTime: Date!
}

input AwsEC2DescribeScheduledInstanceAvailabilityRecurrenceInput {
  Frequency: String
  Interval: Int
  OccurrenceDays: [Int]
  OccurrenceRelativeToEnd: Boolean
  OccurrenceUnit: String
}

type AwsEC2DescribeScheduledInstancesOutput {
  NextToken: String
  ScheduledInstanceSet: [AwsEC2S172]
}

type AwsEC2S172 {
  AvailabilityZone: String
  CreateDate: Date
  HourlyPrice: String
  InstanceCount: Int
  InstanceType: String
  NetworkPlatform: String
  NextSlotStartTime: Date
  Platform: String
  PreviousSlotEndTime: Date
  Recurrence: AwsEC2S16u
  ScheduledInstanceId: String
  SlotDurationInHours: Int
  TermEndDate: Date
  TermStartDate: Date
  TotalScheduledInstanceHours: Int
}

input AwsEC2DescribeScheduledInstancesInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  ScheduledInstanceIds: [String]
  SlotStartTimeRange: AwsEC2DescribeScheduledInstancesSlotStartTimeRangeInput
}

input AwsEC2DescribeScheduledInstancesSlotStartTimeRangeInput {
  EarliestTime: Date
  LatestTime: Date
}

type AwsEC2DescribeSecurityGroupReferencesOutput {
  SecurityGroupReferenceSet: [AwsEC2DescribeSecurityGroupReferencesOutputSecurityGroupReferenceSet]
}

type AwsEC2DescribeSecurityGroupReferencesOutputSecurityGroupReferenceSet {
  GroupId: String
  ReferencingVpcId: String
  VpcPeeringConnectionId: String
}

input AwsEC2DescribeSecurityGroupReferencesInput {
  DryRun: Boolean
  GroupId: [String]!
}

type AwsEC2DescribeSecurityGroupsOutput {
  SecurityGroups: [AwsEC2DescribeSecurityGroupsOutputSecurityGroups]
  NextToken: String
}

type AwsEC2DescribeSecurityGroupsOutputSecurityGroups {
  Description: String
  GroupName: String
  IpPermissions: [AwsEC2S4i]
  OwnerId: String
  GroupId: String
  IpPermissionsEgress: [AwsEC2S4i]
  Tags: [AwsEC2Ss]
  VpcId: String
}

type AwsEC2S4i {
  FromPort: Int
  IpProtocol: String
  IpRanges: [AwsEC2S4iIpRanges]
  Ipv6Ranges: [AwsEC2S4iIpv6Ranges]
  PrefixListIds: [AwsEC2S4iPrefixListIds]
  ToPort: Int
  UserIdGroupPairs: [AwsEC2S4r]
}

type AwsEC2S4iIpRanges {
  CidrIp: String
  Description: String
}

type AwsEC2S4iIpv6Ranges {
  CidrIpv6: String
  Description: String
}

type AwsEC2S4iPrefixListIds {
  Description: String
  PrefixListId: String
}

type AwsEC2S4r {
  Description: String
  GroupId: String
  GroupName: String
  PeeringStatus: String
  UserId: String
  VpcId: String
  VpcPeeringConnectionId: String
}

input AwsEC2DescribeSecurityGroupsInput {
  Filters: [AwsEC2SotInput]
  GroupIds: [String]
  GroupNames: [String]
  DryRun: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeSnapshotAttributeOutput {
  CreateVolumePermissions: [AwsEC2S17h]
  ProductCodes: [AwsEC2Su9]
  SnapshotId: String
}

type AwsEC2S17h {
  Group: String
  UserId: String
}

input AwsEC2DescribeSnapshotAttributeInput {
  Attribute: String!
  SnapshotId: String!
  DryRun: Boolean
}

type AwsEC2DescribeSnapshotsOutput {
  Snapshots: [AwsEC2Sfg]
  NextToken: String
}

type AwsEC2Sfg {
  DataEncryptionKeyId: String
  Description: String
  Encrypted: Boolean
  KmsKeyId: String
  OwnerId: String
  Progress: String
  SnapshotId: String
  StartTime: Date
  State: String
  StateMessage: String
  VolumeId: String
  VolumeSize: Int
  OwnerAlias: String
  OutpostArn: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeSnapshotsInput {
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  OwnerIds: [String]
  RestorableByUserIds: [String]
  SnapshotIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeSpotDatafeedSubscriptionOutput {
  SpotDatafeedSubscription: AwsEC2Sfq
}

input AwsEC2DescribeSpotDatafeedSubscriptionInput {
  DryRun: Boolean
}

type AwsEC2DescribeSpotFleetInstancesOutput {
  ActiveInstances: [AwsEC2Std]
  NextToken: String
  SpotFleetRequestId: String
}

input AwsEC2DescribeSpotFleetInstancesInput {
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  SpotFleetRequestId: String!
}

type AwsEC2DescribeSpotFleetRequestHistoryOutput {
  HistoryRecords: [AwsEC2DescribeSpotFleetRequestHistoryOutputHistoryRecords]
  LastEvaluatedTime: Date
  NextToken: String
  SpotFleetRequestId: String
  StartTime: Date
}

type AwsEC2DescribeSpotFleetRequestHistoryOutputHistoryRecords {
  EventInformation: AwsEC2Sta
  EventType: String
  Timestamp: Date
}

input AwsEC2DescribeSpotFleetRequestHistoryInput {
  DryRun: Boolean
  EventType: String
  MaxResults: Int
  NextToken: String
  SpotFleetRequestId: String!
  StartTime: Date!
}

type AwsEC2DescribeSpotFleetRequestsOutput {
  NextToken: String
  SpotFleetRequestConfigs: [AwsEC2DescribeSpotFleetRequestsOutputSpotFleetRequestConfigs]
}

type AwsEC2DescribeSpotFleetRequestsOutputSpotFleetRequestConfigs {
  ActivityStatus: String
  CreateTime: Date
  SpotFleetRequestConfig: AwsEC2S184
  SpotFleetRequestId: String
  SpotFleetRequestState: String
  Tags: [AwsEC2Ss]
}

type AwsEC2S184 {
  AllocationStrategy: String
  OnDemandAllocationStrategy: String
  SpotMaintenanceStrategies: AwsEC2S184SpotMaintenanceStrategies
  ClientToken: String
  ExcessCapacityTerminationPolicy: String
  FulfilledCapacity: JSON
  OnDemandFulfilledCapacity: JSON
  IamFleetRole: String!
  LaunchSpecifications: [AwsEC2S184LaunchSpecifications]
  LaunchTemplateConfigs: [AwsEC2S18j]
  SpotPrice: String
  TargetCapacity: Int!
  OnDemandTargetCapacity: Int
  OnDemandMaxTotalPrice: String
  SpotMaxTotalPrice: String
  TerminateInstancesWithExpiration: Boolean
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  ReplaceUnhealthyInstances: Boolean
  InstanceInterruptionBehavior: String
  LoadBalancersConfig: AwsEC2S184LoadBalancersConfig
  InstancePoolsToUseCount: Int
  TagSpecifications: [AwsEC2S1t]
}

type AwsEC2S184SpotMaintenanceStrategies {
  CapacityRebalance: AwsEC2S184SpotMaintenanceStrategiesCapacityRebalance
}

type AwsEC2S184SpotMaintenanceStrategiesCapacityRebalance {
  ReplacementStrategy: String
}

type AwsEC2S184LaunchSpecifications {
  SecurityGroups: [AwsEC2Se3]
  AddressingType: String
  BlockDeviceMappings: [AwsEC2S9q]
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2S2w
  ImageId: String
  InstanceType: String
  KernelId: String
  KeyName: String
  Monitoring: AwsEC2S184LaunchSpecificationsMonitoring
  NetworkInterfaces: [AwsEC2S18e]
  Placement: AwsEC2S18g
  RamdiskId: String
  SpotPrice: String
  SubnetId: String
  UserData: String
  WeightedCapacity: JSON
  TagSpecifications: [AwsEC2S184LaunchSpecificationsTagSpecifications]
}

type AwsEC2S2w {
  Arn: String
  Name: String
}

type AwsEC2S184LaunchSpecificationsMonitoring {
  Enabled: Boolean
}

type AwsEC2S18e {
  AssociatePublicIpAddress: Boolean
  DeleteOnTermination: Boolean
  Description: String
  DeviceIndex: Int
  Groups: [String]
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2Sc2]
  NetworkInterfaceId: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2Sao]
  SecondaryPrivateIpAddressCount: Int
  SubnetId: String
  AssociateCarrierIpAddress: Boolean
  InterfaceType: String
  NetworkCardIndex: Int
}

type AwsEC2S18g {
  AvailabilityZone: String
  GroupName: String
  Tenancy: String
}

type AwsEC2S184LaunchSpecificationsTagSpecifications {
  ResourceType: String
  Tags: [AwsEC2Ss]
}

type AwsEC2S18j {
  LaunchTemplateSpecification: AwsEC2S96
  Overrides: [AwsEC2S18jOverrides]
}

type AwsEC2S18jOverrides {
  InstanceType: String
  SpotPrice: String
  SubnetId: String
  AvailabilityZone: String
  WeightedCapacity: JSON
  Priority: JSON
}

type AwsEC2S184LoadBalancersConfig {
  ClassicLoadBalancersConfig: AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfig
  TargetGroupsConfig: AwsEC2S184LoadBalancersConfigTargetGroupsConfig
}

type AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfig {
  ClassicLoadBalancers: [AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigClassicLoadBalancers]
}

type AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigClassicLoadBalancers {
  Name: String
}

type AwsEC2S184LoadBalancersConfigTargetGroupsConfig {
  TargetGroups: [AwsEC2S184LoadBalancersConfigTargetGroupsConfigTargetGroups]
}

type AwsEC2S184LoadBalancersConfigTargetGroupsConfigTargetGroups {
  Arn: String
}

type AwsEC2S1t {
  ResourceType: String
  Tags: [AwsEC2Ss]
}

input AwsEC2DescribeSpotFleetRequestsInput {
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  SpotFleetRequestIds: [String]
}

type AwsEC2DescribeSpotInstanceRequestsOutput {
  SpotInstanceRequests: [AwsEC2S18w]
  NextToken: String
}

type AwsEC2S18w {
  ActualBlockHourlyPrice: String
  AvailabilityZoneGroup: String
  BlockDurationMinutes: Int
  CreateTime: Date
  Fault: AwsEC2Sfr
  InstanceId: String
  LaunchGroup: String
  LaunchSpecification: AwsEC2S18wLaunchSpecification
  LaunchedAvailabilityZone: String
  ProductDescription: String
  SpotInstanceRequestId: String
  SpotPrice: String
  State: String
  Status: AwsEC2S18wStatus
  Tags: [AwsEC2Ss]
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  InstanceInterruptionBehavior: String
}

type AwsEC2S18wLaunchSpecification {
  UserData: String
  SecurityGroups: [AwsEC2Se3]
  AddressingType: String
  BlockDeviceMappings: [AwsEC2S9q]
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2S2w
  ImageId: String
  InstanceType: String
  KernelId: String
  KeyName: String
  NetworkInterfaces: [AwsEC2S18e]
  Placement: AwsEC2S18g
  RamdiskId: String
  SubnetId: String
  Monitoring: AwsEC2S18z
}

type AwsEC2S18z {
  Enabled: Boolean!
}

type AwsEC2S18wStatus {
  Code: String
  Message: String
  UpdateTime: Date
}

input AwsEC2DescribeSpotInstanceRequestsInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  SpotInstanceRequestIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeSpotPriceHistoryOutput {
  NextToken: String
  SpotPriceHistory: [AwsEC2DescribeSpotPriceHistoryOutputSpotPriceHistory]
}

type AwsEC2DescribeSpotPriceHistoryOutputSpotPriceHistory {
  AvailabilityZone: String
  InstanceType: String
  ProductDescription: String
  SpotPrice: String
  Timestamp: Date
}

input AwsEC2DescribeSpotPriceHistoryInput {
  Filters: [AwsEC2SotInput]
  AvailabilityZone: String
  DryRun: Boolean
  EndTime: Date
  InstanceTypes: [String]
  MaxResults: Int
  NextToken: String
  ProductDescriptions: [String]
  StartTime: Date
}

type AwsEC2DescribeStaleSecurityGroupsOutput {
  NextToken: String
  StaleSecurityGroupSet: [AwsEC2DescribeStaleSecurityGroupsOutputStaleSecurityGroupSet]
}

type AwsEC2DescribeStaleSecurityGroupsOutputStaleSecurityGroupSet {
  Description: String
  GroupId: String
  GroupName: String
  StaleIpPermissions: [AwsEC2S19e]
  StaleIpPermissionsEgress: [AwsEC2S19e]
  VpcId: String
}

type AwsEC2S19e {
  FromPort: Int
  IpProtocol: String
  IpRanges: [String]
  PrefixListIds: [String]
  ToPort: Int
  UserIdGroupPairs: [AwsEC2S4r]
}

input AwsEC2DescribeStaleSecurityGroupsInput {
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
  VpcId: String!
}

type AwsEC2DescribeStoreImageTasksOutput {
  StoreImageTaskResults: [AwsEC2DescribeStoreImageTasksOutputStoreImageTaskResults]
  NextToken: String
}

type AwsEC2DescribeStoreImageTasksOutputStoreImageTaskResults {
  AmiId: String
  TaskStartTime: Date
  Bucket: String
  S3objectKey: String
  ProgressPercentage: Int
  StoreTaskState: String
  StoreTaskFailureReason: String
}

input AwsEC2DescribeStoreImageTasksInput {
  ImageIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeSubnetsOutput {
  Subnets: [AwsEC2S7n]
  NextToken: String
}

input AwsEC2DescribeSubnetsInput {
  Filters: [AwsEC2SotInput]
  SubnetIds: [String]
  DryRun: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeTagsOutput {
  NextToken: String
  Tags: [AwsEC2DescribeTagsOutputTags]
}

type AwsEC2DescribeTagsOutputTags {
  Key: String
  ResourceId: String
  ResourceType: String
  Value: String
}

input AwsEC2DescribeTagsInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeTrafficMirrorFiltersOutput {
  TrafficMirrorFilters: [AwsEC2Sg4]
  NextToken: String
}

input AwsEC2DescribeTrafficMirrorFiltersInput {
  TrafficMirrorFilterIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeTrafficMirrorSessionsOutput {
  TrafficMirrorSessions: [AwsEC2Sgj]
  NextToken: String
}

input AwsEC2DescribeTrafficMirrorSessionsInput {
  TrafficMirrorSessionIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeTrafficMirrorTargetsOutput {
  TrafficMirrorTargets: [AwsEC2Sgm]
  NextToken: String
}

input AwsEC2DescribeTrafficMirrorTargetsInput {
  TrafficMirrorTargetIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeTransitGatewayAttachmentsOutput {
  TransitGatewayAttachments: [AwsEC2DescribeTransitGatewayAttachmentsOutputTransitGatewayAttachments]
  NextToken: String
}

type AwsEC2DescribeTransitGatewayAttachmentsOutputTransitGatewayAttachments {
  TransitGatewayAttachmentId: String
  TransitGatewayId: String
  TransitGatewayOwnerId: String
  ResourceOwnerId: String
  ResourceType: String
  ResourceId: String
  State: String
  Association: AwsEC2DescribeTransitGatewayAttachmentsOutputTransitGatewayAttachmentsAssociation
  CreationTime: Date
  Tags: [AwsEC2Ss]
}

type AwsEC2DescribeTransitGatewayAttachmentsOutputTransitGatewayAttachmentsAssociation {
  TransitGatewayRouteTableId: String
  State: String
}

input AwsEC2DescribeTransitGatewayAttachmentsInput {
  TransitGatewayAttachmentIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayConnectPeersOutput {
  TransitGatewayConnectPeers: [AwsEC2Sha]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayConnectPeersInput {
  TransitGatewayConnectPeerIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayConnectsOutput {
  TransitGatewayConnects: [AwsEC2Sh4]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayConnectsInput {
  TransitGatewayAttachmentIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayMulticastDomainsOutput {
  TransitGatewayMulticastDomains: [AwsEC2Shn]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayMulticastDomainsInput {
  TransitGatewayMulticastDomainIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayPeeringAttachmentsOutput {
  TransitGatewayPeeringAttachments: [AwsEC2Sn]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayPeeringAttachmentsInput {
  TransitGatewayAttachmentIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayRouteTablesOutput {
  TransitGatewayRouteTables: [AwsEC2Si7]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayRouteTablesInput {
  TransitGatewayRouteTableIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewayVpcAttachmentsOutput {
  TransitGatewayVpcAttachments: [AwsEC2Sw]
  NextToken: String
}

input AwsEC2DescribeTransitGatewayVpcAttachmentsInput {
  TransitGatewayAttachmentIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTransitGatewaysOutput {
  TransitGateways: [AwsEC2Sgx]
  NextToken: String
}

input AwsEC2DescribeTransitGatewaysInput {
  TransitGatewayIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2DescribeTrunkInterfaceAssociationsOutput {
  InterfaceAssociations: [AwsEC2S3n]
  NextToken: String
}

input AwsEC2DescribeTrunkInterfaceAssociationsInput {
  AssociationIds: [String]
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeVolumeAttributeOutput {
  AutoEnableIO: AwsEC2Sww
  ProductCodes: [AwsEC2Su9]
  VolumeId: String
}

input AwsEC2DescribeVolumeAttributeInput {
  Attribute: String!
  VolumeId: String!
  DryRun: Boolean
}

type AwsEC2DescribeVolumeStatusOutput {
  NextToken: String
  VolumeStatuses: [AwsEC2DescribeVolumeStatusOutputVolumeStatuses]
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatuses {
  Actions: [AwsEC2DescribeVolumeStatusOutputVolumeStatusesActions]
  AvailabilityZone: String
  OutpostArn: String
  Events: [AwsEC2DescribeVolumeStatusOutputVolumeStatusesEvents]
  VolumeId: String
  VolumeStatus: AwsEC2DescribeVolumeStatusOutputVolumeStatusesVolumeStatus
  AttachmentStatuses: [AwsEC2DescribeVolumeStatusOutputVolumeStatusesAttachmentStatuses]
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatusesActions {
  Code: String
  Description: String
  EventId: String
  EventType: String
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatusesEvents {
  Description: String
  EventId: String
  EventType: String
  NotAfter: Date
  NotBefore: Date
  InstanceId: String
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatusesVolumeStatus {
  Details: [AwsEC2DescribeVolumeStatusOutputVolumeStatusesVolumeStatusDetails]
  Status: String
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatusesVolumeStatusDetails {
  Name: String
  Status: String
}

type AwsEC2DescribeVolumeStatusOutputVolumeStatusesAttachmentStatuses {
  IoPerformance: String
  InstanceId: String
}

input AwsEC2DescribeVolumeStatusInput {
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  VolumeIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeVolumesOutput {
  Volumes: [AwsEC2Sid]
  NextToken: String
}

type AwsEC2Sid {
  Attachments: [AwsEC2S46]
  AvailabilityZone: String
  CreateTime: Date
  Encrypted: Boolean
  KmsKeyId: String
  OutpostArn: String
  Size: Int
  SnapshotId: String
  State: String
  VolumeId: String
  Iops: Int
  Tags: [AwsEC2Ss]
  VolumeType: String
  FastRestored: Boolean
  MultiAttachEnabled: Boolean
  Throughput: Int
}

type AwsEC2S46 {
  AttachTime: Date
  Device: String
  InstanceId: String
  State: String
  VolumeId: String
  DeleteOnTermination: Boolean
}

input AwsEC2DescribeVolumesInput {
  Filters: [AwsEC2SotInput]
  VolumeIds: [String]
  DryRun: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVolumesModificationsOutput {
  VolumesModifications: [AwsEC2S1c1]
  NextToken: String
}

type AwsEC2S1c1 {
  VolumeId: String
  ModificationState: String
  StatusMessage: String
  TargetSize: Int
  TargetIops: Int
  TargetVolumeType: String
  TargetThroughput: Int
  TargetMultiAttachEnabled: Boolean
  OriginalSize: Int
  OriginalIops: Int
  OriginalVolumeType: String
  OriginalThroughput: Int
  OriginalMultiAttachEnabled: Boolean
  Progress: JSON
  StartTime: Date
  EndTime: Date
}

input AwsEC2DescribeVolumesModificationsInput {
  DryRun: Boolean
  VolumeIds: [String]
  Filters: [AwsEC2SotInput]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeVpcAttributeOutput {
  VpcId: String
  EnableDnsHostnames: AwsEC2Sww
  EnableDnsSupport: AwsEC2Sww
}

input AwsEC2DescribeVpcAttributeInput {
  Attribute: String!
  VpcId: String!
  DryRun: Boolean
}

type AwsEC2DescribeVpcClassicLinkOutput {
  Vpcs: [AwsEC2DescribeVpcClassicLinkOutputVpcs]
}

type AwsEC2DescribeVpcClassicLinkOutputVpcs {
  ClassicLinkEnabled: Boolean
  Tags: [AwsEC2Ss]
  VpcId: String
}

input AwsEC2DescribeVpcClassicLinkInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  VpcIds: [String]
}

type AwsEC2DescribeVpcClassicLinkDnsSupportOutput {
  NextToken: String
  Vpcs: [AwsEC2DescribeVpcClassicLinkDnsSupportOutputVpcs]
}

type AwsEC2DescribeVpcClassicLinkDnsSupportOutputVpcs {
  ClassicLinkDnsSupported: Boolean
  VpcId: String
}

input AwsEC2DescribeVpcClassicLinkDnsSupportInput {
  MaxResults: Int
  NextToken: String
  VpcIds: [String]
}

type AwsEC2DescribeVpcEndpointConnectionNotificationsOutput {
  ConnectionNotificationSet: [AwsEC2Six]
  NextToken: String
}

input AwsEC2DescribeVpcEndpointConnectionNotificationsInput {
  DryRun: Boolean
  ConnectionNotificationId: String
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcEndpointConnectionsOutput {
  VpcEndpointConnections: [AwsEC2DescribeVpcEndpointConnectionsOutputVpcEndpointConnections]
  NextToken: String
}

type AwsEC2DescribeVpcEndpointConnectionsOutputVpcEndpointConnections {
  ServiceId: String
  VpcEndpointId: String
  VpcEndpointOwner: String
  VpcEndpointState: String
  CreationTimestamp: Date
  DnsEntries: [AwsEC2Sis]
  NetworkLoadBalancerArns: [String]
  GatewayLoadBalancerArns: [String]
}

input AwsEC2DescribeVpcEndpointConnectionsInput {
  DryRun: Boolean
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcEndpointServiceConfigurationsOutput {
  ServiceConfigurations: [AwsEC2Sj2]
  NextToken: String
}

input AwsEC2DescribeVpcEndpointServiceConfigurationsInput {
  DryRun: Boolean
  ServiceIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcEndpointServicePermissionsOutput {
  AllowedPrincipals: [AwsEC2DescribeVpcEndpointServicePermissionsOutputAllowedPrincipals]
  NextToken: String
}

type AwsEC2DescribeVpcEndpointServicePermissionsOutputAllowedPrincipals {
  PrincipalType: String
  Principal: String
}

input AwsEC2DescribeVpcEndpointServicePermissionsInput {
  DryRun: Boolean
  ServiceId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcEndpointServicesOutput {
  ServiceNames: [String]
  ServiceDetails: [AwsEC2DescribeVpcEndpointServicesOutputServiceDetails]
  NextToken: String
}

type AwsEC2DescribeVpcEndpointServicesOutputServiceDetails {
  ServiceName: String
  ServiceId: String
  ServiceType: [AwsEC2Sj3]
  AvailabilityZones: [String]
  Owner: String
  BaseEndpointDnsNames: [String]
  PrivateDnsName: String
  PrivateDnsNames: [AwsEC2DescribeVpcEndpointServicesOutputServiceDetailsPrivateDnsNames]
  VpcEndpointPolicySupported: Boolean
  AcceptanceRequired: Boolean
  ManagesVpcEndpoints: Boolean
  Tags: [AwsEC2Ss]
  PrivateDnsNameVerificationState: String
}

type AwsEC2DescribeVpcEndpointServicesOutputServiceDetailsPrivateDnsNames {
  PrivateDnsName: String
}

input AwsEC2DescribeVpcEndpointServicesInput {
  DryRun: Boolean
  ServiceNames: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcEndpointsOutput {
  VpcEndpoints: [AwsEC2Sio]
  NextToken: String
}

input AwsEC2DescribeVpcEndpointsInput {
  DryRun: Boolean
  VpcEndpointIds: [String]
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
}

type AwsEC2DescribeVpcPeeringConnectionsOutput {
  VpcPeeringConnections: [AwsEC2S1c]
  NextToken: String
}

input AwsEC2DescribeVpcPeeringConnectionsInput {
  Filters: [AwsEC2SotInput]
  DryRun: Boolean
  VpcPeeringConnectionIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeVpcsOutput {
  Vpcs: [AwsEC2S7t]
  NextToken: String
}

input AwsEC2DescribeVpcsInput {
  Filters: [AwsEC2SotInput]
  VpcIds: [String]
  DryRun: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsEC2DescribeVpnConnectionsOutput {
  VpnConnections: [AwsEC2Sjw]
}

input AwsEC2DescribeVpnConnectionsInput {
  Filters: [AwsEC2SotInput]
  VpnConnectionIds: [String]
  DryRun: Boolean
}

type AwsEC2DescribeVpnGatewaysOutput {
  VpnGateways: [AwsEC2Skp]
}

input AwsEC2DescribeVpnGatewaysInput {
  Filters: [AwsEC2SotInput]
  VpnGatewayIds: [String]
  DryRun: Boolean
}

type AwsEC2DetachClassicLinkVpcOutput {
  Return: Boolean
}

input AwsEC2DetachClassicLinkVpcInput {
  DryRun: Boolean
  InstanceId: String!
  VpcId: String!
}

input AwsEC2DetachInternetGatewayInput {
  DryRun: Boolean
  InternetGatewayId: String!
  VpcId: String!
}

input AwsEC2DetachNetworkInterfaceInput {
  AttachmentId: String!
  DryRun: Boolean
  Force: Boolean
}

input AwsEC2DetachVolumeInput {
  Device: String
  Force: Boolean
  InstanceId: String
  VolumeId: String!
  DryRun: Boolean
}

input AwsEC2DetachVpnGatewayInput {
  VpcId: String!
  VpnGatewayId: String!
  DryRun: Boolean
}

type AwsEC2DisableEbsEncryptionByDefaultOutput {
  EbsEncryptionByDefault: Boolean
}

input AwsEC2DisableEbsEncryptionByDefaultInput {
  DryRun: Boolean
}

type AwsEC2DisableFastSnapshotRestoresOutput {
  Successful: [AwsEC2DisableFastSnapshotRestoresOutputSuccessful]
  Unsuccessful: [AwsEC2DisableFastSnapshotRestoresOutputUnsuccessful]
}

type AwsEC2DisableFastSnapshotRestoresOutputSuccessful {
  SnapshotId: String
  AvailabilityZone: String
  State: String
  StateTransitionReason: String
  OwnerId: String
  OwnerAlias: String
  EnablingTime: Date
  OptimizingTime: Date
  EnabledTime: Date
  DisablingTime: Date
  DisabledTime: Date
}

type AwsEC2DisableFastSnapshotRestoresOutputUnsuccessful {
  SnapshotId: String
  FastSnapshotRestoreStateErrors: [AwsEC2DisableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrors]
}

type AwsEC2DisableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrors {
  AvailabilityZone: String
  Error: AwsEC2DisableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrorsError
}

type AwsEC2DisableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrorsError {
  Code: String
  Message: String
}

input AwsEC2DisableFastSnapshotRestoresInput {
  AvailabilityZones: [String]!
  SourceSnapshotIds: [String]!
  DryRun: Boolean
}

type AwsEC2DisableImageDeprecationOutput {
  Return: Boolean
}

input AwsEC2DisableImageDeprecationInput {
  ImageId: String!
  DryRun: Boolean
}

type AwsEC2DisableSerialConsoleAccessOutput {
  SerialConsoleAccessEnabled: Boolean
}

input AwsEC2DisableSerialConsoleAccessInput {
  DryRun: Boolean
}

type AwsEC2DisableTransitGatewayRouteTablePropagationOutput {
  Propagation: AwsEC2S1ec
}

type AwsEC2S1ec {
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  TransitGatewayRouteTableId: String
  State: String
}

input AwsEC2DisableTransitGatewayRouteTablePropagationInput {
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

input AwsEC2DisableVgwRoutePropagationInput {
  GatewayId: String!
  RouteTableId: String!
  DryRun: Boolean
}

type AwsEC2DisableVpcClassicLinkOutput {
  Return: Boolean
}

input AwsEC2DisableVpcClassicLinkInput {
  DryRun: Boolean
  VpcId: String!
}

type AwsEC2DisableVpcClassicLinkDnsSupportOutput {
  Return: Boolean
}

input AwsEC2DisableVpcClassicLinkDnsSupportInput {
  VpcId: String
}

input AwsEC2DisassociateAddressInput {
  AssociationId: String
  PublicIp: String
  DryRun: Boolean
}

type AwsEC2DisassociateClientVpnTargetNetworkOutput {
  AssociationId: String
  Status: AwsEC2S2o
}

input AwsEC2DisassociateClientVpnTargetNetworkInput {
  ClientVpnEndpointId: String!
  AssociationId: String!
  DryRun: Boolean
}

type AwsEC2DisassociateEnclaveCertificateIamRoleOutput {
  Return: Boolean
}

input AwsEC2DisassociateEnclaveCertificateIamRoleInput {
  CertificateArn: String
  RoleArn: String
  DryRun: Boolean
}

type AwsEC2DisassociateIamInstanceProfileOutput {
  IamInstanceProfileAssociation: AwsEC2S2y
}

input AwsEC2DisassociateIamInstanceProfileInput {
  AssociationId: String!
}

input AwsEC2DisassociateRouteTableInput {
  AssociationId: String!
  DryRun: Boolean
}

type AwsEC2DisassociateSubnetCidrBlockOutput {
  Ipv6CidrBlockAssociation: AwsEC2S39
  SubnetId: String
}

input AwsEC2DisassociateSubnetCidrBlockInput {
  AssociationId: String!
}

type AwsEC2DisassociateTransitGatewayMulticastDomainOutput {
  Associations: AwsEC2Sg
}

input AwsEC2DisassociateTransitGatewayMulticastDomainInput {
  TransitGatewayMulticastDomainId: String
  TransitGatewayAttachmentId: String
  SubnetIds: [String]
  DryRun: Boolean
}

type AwsEC2DisassociateTransitGatewayRouteTableOutput {
  Association: AwsEC2S3j
}

input AwsEC2DisassociateTransitGatewayRouteTableInput {
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2DisassociateTrunkInterfaceOutput {
  Return: Boolean
  ClientToken: String
}

input AwsEC2DisassociateTrunkInterfaceInput {
  AssociationId: String!
  ClientToken: String
  DryRun: Boolean
}

type AwsEC2DisassociateVpcCidrBlockOutput {
  Ipv6CidrBlockAssociation: AwsEC2S3t
  CidrBlockAssociation: AwsEC2S3w
  VpcId: String
}

input AwsEC2DisassociateVpcCidrBlockInput {
  AssociationId: String!
}

type AwsEC2EnableEbsEncryptionByDefaultOutput {
  EbsEncryptionByDefault: Boolean
}

input AwsEC2EnableEbsEncryptionByDefaultInput {
  DryRun: Boolean
}

type AwsEC2EnableFastSnapshotRestoresOutput {
  Successful: [AwsEC2EnableFastSnapshotRestoresOutputSuccessful]
  Unsuccessful: [AwsEC2EnableFastSnapshotRestoresOutputUnsuccessful]
}

type AwsEC2EnableFastSnapshotRestoresOutputSuccessful {
  SnapshotId: String
  AvailabilityZone: String
  State: String
  StateTransitionReason: String
  OwnerId: String
  OwnerAlias: String
  EnablingTime: Date
  OptimizingTime: Date
  EnabledTime: Date
  DisablingTime: Date
  DisabledTime: Date
}

type AwsEC2EnableFastSnapshotRestoresOutputUnsuccessful {
  SnapshotId: String
  FastSnapshotRestoreStateErrors: [AwsEC2EnableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrors]
}

type AwsEC2EnableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrors {
  AvailabilityZone: String
  Error: AwsEC2EnableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrorsError
}

type AwsEC2EnableFastSnapshotRestoresOutputUnsuccessfulFastSnapshotRestoreStateErrorsError {
  Code: String
  Message: String
}

input AwsEC2EnableFastSnapshotRestoresInput {
  AvailabilityZones: [String]!
  SourceSnapshotIds: [String]!
  DryRun: Boolean
}

type AwsEC2EnableImageDeprecationOutput {
  Return: Boolean
}

input AwsEC2EnableImageDeprecationInput {
  ImageId: String!
  DeprecateAt: Date!
  DryRun: Boolean
}

type AwsEC2EnableSerialConsoleAccessOutput {
  SerialConsoleAccessEnabled: Boolean
}

input AwsEC2EnableSerialConsoleAccessInput {
  DryRun: Boolean
}

type AwsEC2EnableTransitGatewayRouteTablePropagationOutput {
  Propagation: AwsEC2S1ec
}

input AwsEC2EnableTransitGatewayRouteTablePropagationInput {
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

input AwsEC2EnableVgwRoutePropagationInput {
  GatewayId: String!
  RouteTableId: String!
  DryRun: Boolean
}

input AwsEC2EnableVolumeIOInput {
  DryRun: Boolean
  VolumeId: String!
}

type AwsEC2EnableVpcClassicLinkOutput {
  Return: Boolean
}

input AwsEC2EnableVpcClassicLinkInput {
  DryRun: Boolean
  VpcId: String!
}

type AwsEC2EnableVpcClassicLinkDnsSupportOutput {
  Return: Boolean
}

input AwsEC2EnableVpcClassicLinkDnsSupportInput {
  VpcId: String
}

type AwsEC2ExportClientVpnClientCertificateRevocationListOutput {
  CertificateRevocationList: String
  Status: AwsEC2ExportClientVpnClientCertificateRevocationListOutputStatus
}

type AwsEC2ExportClientVpnClientCertificateRevocationListOutputStatus {
  Code: String
  Message: String
}

input AwsEC2ExportClientVpnClientCertificateRevocationListInput {
  ClientVpnEndpointId: String!
  DryRun: Boolean
}

type AwsEC2ExportClientVpnClientConfigurationOutput {
  ClientConfiguration: String
}

input AwsEC2ExportClientVpnClientConfigurationInput {
  ClientVpnEndpointId: String!
  DryRun: Boolean
}

type AwsEC2ExportImageOutput {
  Description: String
  DiskImageFormat: String
  ExportImageTaskId: String
  ImageId: String
  RoleName: String
  Progress: String
  S3ExportLocation: AwsEC2Sst
  Status: String
  StatusMessage: String
  Tags: [AwsEC2Ss]
}

input AwsEC2ExportImageInput {
  ClientToken: String
  Description: String
  DiskImageFormat: String!
  DryRun: Boolean
  ImageId: String!
  S3ExportLocation: AwsEC2ExportImageS3ExportLocationInput!
  RoleName: String
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2ExportImageS3ExportLocationInput {
  S3Bucket: String!
  S3Prefix: String
}

type AwsEC2ExportTransitGatewayRoutesOutput {
  S3Location: String
}

input AwsEC2ExportTransitGatewayRoutesInput {
  TransitGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]
  S3Bucket: String!
  DryRun: Boolean
}

type AwsEC2GetAssociatedEnclaveCertificateIamRolesOutput {
  AssociatedRoles: [AwsEC2GetAssociatedEnclaveCertificateIamRolesOutputAssociatedRoles]
}

type AwsEC2GetAssociatedEnclaveCertificateIamRolesOutputAssociatedRoles {
  AssociatedRoleArn: String
  CertificateS3BucketName: String
  CertificateS3ObjectKey: String
  EncryptionKmsKeyId: String
}

input AwsEC2GetAssociatedEnclaveCertificateIamRolesInput {
  CertificateArn: String
  DryRun: Boolean
}

type AwsEC2GetAssociatedIpv6PoolCidrsOutput {
  Ipv6CidrAssociations: [AwsEC2GetAssociatedIpv6PoolCidrsOutputIpv6CidrAssociations]
  NextToken: String
}

type AwsEC2GetAssociatedIpv6PoolCidrsOutputIpv6CidrAssociations {
  Ipv6Cidr: String
  AssociatedResource: String
}

input AwsEC2GetAssociatedIpv6PoolCidrsInput {
  PoolId: String!
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
}

type AwsEC2GetCapacityReservationUsageOutput {
  NextToken: String
  CapacityReservationId: String
  InstanceType: String
  TotalInstanceCount: Int
  AvailableInstanceCount: Int
  State: String
  InstanceUsages: [AwsEC2GetCapacityReservationUsageOutputInstanceUsages]
}

type AwsEC2GetCapacityReservationUsageOutputInstanceUsages {
  AccountId: String
  UsedInstanceCount: Int
}

input AwsEC2GetCapacityReservationUsageInput {
  CapacityReservationId: String!
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
}

type AwsEC2GetCoipPoolUsageOutput {
  CoipPoolId: String
  CoipAddressUsages: [AwsEC2GetCoipPoolUsageOutputCoipAddressUsages]
  LocalGatewayRouteTableId: String
}

type AwsEC2GetCoipPoolUsageOutputCoipAddressUsages {
  AllocationId: String
  AwsAccountId: String
  AwsService: String
  CoIp: String
}

input AwsEC2GetCoipPoolUsageInput {
  PoolId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2GetConsoleOutputOutput {
  InstanceId: String
  Output: String
  Timestamp: Date
}

input AwsEC2GetConsoleOutputInput {
  InstanceId: String!
  DryRun: Boolean
  Latest: Boolean
}

type AwsEC2GetConsoleScreenshotOutput {
  ImageData: String
  InstanceId: String
}

input AwsEC2GetConsoleScreenshotInput {
  DryRun: Boolean
  InstanceId: String!
  WakeUp: Boolean
}

type AwsEC2GetDefaultCreditSpecificationOutput {
  InstanceFamilyCreditSpecification: AwsEC2S1gr
}

type AwsEC2S1gr {
  InstanceFamily: String
  CpuCredits: String
}

input AwsEC2GetDefaultCreditSpecificationInput {
  DryRun: Boolean
  InstanceFamily: String!
}

type AwsEC2GetEbsDefaultKmsKeyIdOutput {
  KmsKeyId: String
}

input AwsEC2GetEbsDefaultKmsKeyIdInput {
  DryRun: Boolean
}

type AwsEC2GetEbsEncryptionByDefaultOutput {
  EbsEncryptionByDefault: Boolean
}

input AwsEC2GetEbsEncryptionByDefaultInput {
  DryRun: Boolean
}

type AwsEC2GetFlowLogsIntegrationTemplateOutput {
  Result: String
}

input AwsEC2GetFlowLogsIntegrationTemplateInput {
  DryRun: Boolean
  FlowLogId: String!
  ConfigDeliveryS3DestinationArn: String!
  IntegrateServices: AwsEC2GetFlowLogsIntegrationTemplateIntegrateServicesInput!
}

input AwsEC2GetFlowLogsIntegrationTemplateIntegrateServicesInput {
  AthenaIntegrations: [AwsEC2GetFlowLogsIntegrationTemplateIntegrateServicesAthenaIntegrationsInput]
}

input AwsEC2GetFlowLogsIntegrationTemplateIntegrateServicesAthenaIntegrationsInput {
  IntegrationResultS3DestinationArn: String!
  PartitionLoadFrequency: String!
  PartitionStartDate: Date
  PartitionEndDate: Date
}

type AwsEC2GetGroupsForCapacityReservationOutput {
  NextToken: String
  CapacityReservationGroups: [AwsEC2GetGroupsForCapacityReservationOutputCapacityReservationGroups]
}

type AwsEC2GetGroupsForCapacityReservationOutputCapacityReservationGroups {
  GroupArn: String
  OwnerId: String
}

input AwsEC2GetGroupsForCapacityReservationInput {
  CapacityReservationId: String!
  NextToken: String
  MaxResults: Int
  DryRun: Boolean
}

type AwsEC2GetHostReservationPurchasePreviewOutput {
  CurrencyCode: String
  Purchase: [AwsEC2S1ha]
  TotalHourlyPrice: String
  TotalUpfrontPrice: String
}

type AwsEC2S1ha {
  CurrencyCode: String
  Duration: Int
  HostIdSet: [String]
  HostReservationId: String
  HourlyPrice: String
  InstanceFamily: String
  PaymentOption: String
  UpfrontPrice: String
}

input AwsEC2GetHostReservationPurchasePreviewInput {
  HostIdSet: [String]!
  OfferingId: String!
}

type AwsEC2GetLaunchTemplateDataOutput {
  LaunchTemplateData: AwsEC2Sbv
}

input AwsEC2GetLaunchTemplateDataInput {
  DryRun: Boolean
  InstanceId: String!
}

type AwsEC2GetManagedPrefixListAssociationsOutput {
  PrefixListAssociations: [AwsEC2GetManagedPrefixListAssociationsOutputPrefixListAssociations]
  NextToken: String
}

type AwsEC2GetManagedPrefixListAssociationsOutputPrefixListAssociations {
  ResourceId: String
  ResourceOwner: String
}

input AwsEC2GetManagedPrefixListAssociationsInput {
  DryRun: Boolean
  PrefixListId: String!
  MaxResults: Int
  NextToken: String
}

type AwsEC2GetManagedPrefixListEntriesOutput {
  Entries: [AwsEC2GetManagedPrefixListEntriesOutputEntries]
  NextToken: String
}

type AwsEC2GetManagedPrefixListEntriesOutputEntries {
  Cidr: String
  Description: String
}

input AwsEC2GetManagedPrefixListEntriesInput {
  DryRun: Boolean
  PrefixListId: String!
  TargetVersion: JSON
  MaxResults: Int
  NextToken: String
}

type AwsEC2GetPasswordDataOutput {
  InstanceId: String
  PasswordData: String
  Timestamp: Date
}

input AwsEC2GetPasswordDataInput {
  InstanceId: String!
  DryRun: Boolean
}

type AwsEC2GetReservedInstancesExchangeQuoteOutput {
  CurrencyCode: String
  IsValidExchange: Boolean
  OutputReservedInstancesWillExpireAt: Date
  PaymentDue: String
  ReservedInstanceValueRollup: AwsEC2S1hr
  ReservedInstanceValueSet: [AwsEC2GetReservedInstancesExchangeQuoteOutputReservedInstanceValueSet]
  TargetConfigurationValueRollup: AwsEC2S1hr
  TargetConfigurationValueSet: [AwsEC2GetReservedInstancesExchangeQuoteOutputTargetConfigurationValueSet]
  ValidationFailureReason: String
}

type AwsEC2S1hr {
  HourlyPrice: String
  RemainingTotalValue: String
  RemainingUpfrontValue: String
}

type AwsEC2GetReservedInstancesExchangeQuoteOutputReservedInstanceValueSet {
  ReservationValue: AwsEC2S1hr
  ReservedInstanceId: String
}

type AwsEC2GetReservedInstancesExchangeQuoteOutputTargetConfigurationValueSet {
  ReservationValue: AwsEC2S1hr
  TargetConfiguration: AwsEC2GetReservedInstancesExchangeQuoteOutputTargetConfigurationValueSetTargetConfiguration
}

type AwsEC2GetReservedInstancesExchangeQuoteOutputTargetConfigurationValueSetTargetConfiguration {
  InstanceCount: Int
  OfferingId: String
}

input AwsEC2GetReservedInstancesExchangeQuoteInput {
  DryRun: Boolean
  ReservedInstanceIds: [String]!
  TargetConfigurations: [AwsEC2S5Input]
}

type AwsEC2GetSerialConsoleAccessStatusOutput {
  SerialConsoleAccessEnabled: Boolean
}

input AwsEC2GetSerialConsoleAccessStatusInput {
  DryRun: Boolean
}

type AwsEC2GetTransitGatewayAttachmentPropagationsOutput {
  TransitGatewayAttachmentPropagations: [AwsEC2GetTransitGatewayAttachmentPropagationsOutputTransitGatewayAttachmentPropagations]
  NextToken: String
}

type AwsEC2GetTransitGatewayAttachmentPropagationsOutputTransitGatewayAttachmentPropagations {
  TransitGatewayRouteTableId: String
  State: String
}

input AwsEC2GetTransitGatewayAttachmentPropagationsInput {
  TransitGatewayAttachmentId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2GetTransitGatewayMulticastDomainAssociationsOutput {
  MulticastDomainAssociations: [AwsEC2GetTransitGatewayMulticastDomainAssociationsOutputMulticastDomainAssociations]
  NextToken: String
}

type AwsEC2GetTransitGatewayMulticastDomainAssociationsOutputMulticastDomainAssociations {
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  ResourceOwnerId: String
  Subnet: AwsEC2Sj
}

input AwsEC2GetTransitGatewayMulticastDomainAssociationsInput {
  TransitGatewayMulticastDomainId: String
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2GetTransitGatewayPrefixListReferencesOutput {
  TransitGatewayPrefixListReferences: [AwsEC2Shv]
  NextToken: String
}

input AwsEC2GetTransitGatewayPrefixListReferencesInput {
  TransitGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2GetTransitGatewayRouteTableAssociationsOutput {
  Associations: [AwsEC2GetTransitGatewayRouteTableAssociationsOutputAssociations]
  NextToken: String
}

type AwsEC2GetTransitGatewayRouteTableAssociationsOutputAssociations {
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  State: String
}

input AwsEC2GetTransitGatewayRouteTableAssociationsInput {
  TransitGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2GetTransitGatewayRouteTablePropagationsOutput {
  TransitGatewayRouteTablePropagations: [AwsEC2GetTransitGatewayRouteTablePropagationsOutputTransitGatewayRouteTablePropagations]
  NextToken: String
}

type AwsEC2GetTransitGatewayRouteTablePropagationsOutputTransitGatewayRouteTablePropagations {
  TransitGatewayAttachmentId: String
  ResourceId: String
  ResourceType: String
  State: String
}

input AwsEC2GetTransitGatewayRouteTablePropagationsInput {
  TransitGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2ImportClientVpnClientCertificateRevocationListOutput {
  Return: Boolean
}

input AwsEC2ImportClientVpnClientCertificateRevocationListInput {
  ClientVpnEndpointId: String!
  CertificateRevocationList: String!
  DryRun: Boolean
}

type AwsEC2ImportImageOutput {
  Architecture: String
  Description: String
  Encrypted: Boolean
  Hypervisor: String
  ImageId: String
  ImportTaskId: String
  KmsKeyId: String
  LicenseType: String
  Platform: String
  Progress: String
  SnapshotDetails: [AwsEC2Swe]
  Status: String
  StatusMessage: String
  LicenseSpecifications: [AwsEC2Swh]
  Tags: [AwsEC2Ss]
}

input AwsEC2ImportImageInput {
  Architecture: String
  ClientData: AwsEC2S1ilInput
  ClientToken: String
  Description: String
  DiskContainers: [AwsEC2ImportImageDiskContainersInput]
  DryRun: Boolean
  Encrypted: Boolean
  Hypervisor: String
  KmsKeyId: String
  LicenseType: String
  Platform: String
  RoleName: String
  LicenseSpecifications: [AwsEC2ImportImageLicenseSpecificationsInput]
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2S1ilInput {
  Comment: String
  UploadEnd: Date
  UploadSize: JSON
  UploadStart: Date
}

input AwsEC2ImportImageDiskContainersInput {
  Description: String
  DeviceName: String
  Format: String
  SnapshotId: String
  Url: String
  UserBucket: AwsEC2S1ioInput
}

input AwsEC2S1ioInput {
  S3Bucket: String
  S3Key: String
}

input AwsEC2ImportImageLicenseSpecificationsInput {
  LicenseConfigurationArn: String
}

type AwsEC2ImportInstanceOutput {
  ConversionTask: AwsEC2Srq
}

input AwsEC2ImportInstanceInput {
  Description: String
  DiskImages: [AwsEC2ImportInstanceDiskImagesInput]
  DryRun: Boolean
  LaunchSpecification: AwsEC2ImportInstanceLaunchSpecificationInput
  Platform: String!
}

input AwsEC2ImportInstanceDiskImagesInput {
  Description: String
  Image: AwsEC2S1ivInput
  Volume: AwsEC2S1iwInput
}

input AwsEC2S1ivInput {
  Bytes: JSON!
  Format: String!
  ImportManifestUrl: String!
}

input AwsEC2S1iwInput {
  Size: JSON!
}

input AwsEC2ImportInstanceLaunchSpecificationInput {
  AdditionalInfo: String
  Architecture: String
  GroupIds: [String]
  GroupNames: [String]
  InstanceInitiatedShutdownBehavior: String
  InstanceType: String
  Monitoring: Boolean
  Placement: AwsEC2S8xInput
  PrivateIpAddress: String
  SubnetId: String
  UserData: AwsEC2ImportInstanceLaunchSpecificationUserDataInput
}

input AwsEC2ImportInstanceLaunchSpecificationUserDataInput {
  Data: String
}

type AwsEC2ImportKeyPairOutput {
  KeyFingerprint: String
  KeyName: String
  KeyPairId: String
  Tags: [AwsEC2Ss]
}

input AwsEC2ImportKeyPairInput {
  DryRun: Boolean
  KeyName: String!
  PublicKeyMaterial: JSON!
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2ImportSnapshotOutput {
  Description: String
  ImportTaskId: String
  SnapshotTaskDetail: AwsEC2Swp
  Tags: [AwsEC2Ss]
}

input AwsEC2ImportSnapshotInput {
  ClientData: AwsEC2S1ilInput
  ClientToken: String
  Description: String
  DiskContainer: AwsEC2ImportSnapshotDiskContainerInput
  DryRun: Boolean
  Encrypted: Boolean
  KmsKeyId: String
  RoleName: String
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2ImportSnapshotDiskContainerInput {
  Description: String
  Format: String
  Url: String
  UserBucket: AwsEC2S1ioInput
}

type AwsEC2ImportVolumeOutput {
  ConversionTask: AwsEC2Srq
}

input AwsEC2ImportVolumeInput {
  AvailabilityZone: String!
  Description: String
  DryRun: Boolean
  Image: AwsEC2S1ivInput!
  Volume: AwsEC2S1iwInput!
}

type AwsEC2ModifyAddressAttributeOutput {
  Address: AwsEC2Sp7
}

input AwsEC2ModifyAddressAttributeInput {
  AllocationId: String!
  DomainName: String
  DryRun: Boolean
}

type AwsEC2ModifyAvailabilityZoneGroupOutput {
  Return: Boolean
}

input AwsEC2ModifyAvailabilityZoneGroupInput {
  GroupName: String!
  OptInStatus: String!
  DryRun: Boolean
}

type AwsEC2ModifyCapacityReservationOutput {
  Return: Boolean
}

input AwsEC2ModifyCapacityReservationInput {
  CapacityReservationId: String!
  InstanceCount: Int
  EndDate: Date
  EndDateType: String
  Accept: Boolean
  DryRun: Boolean
}

type AwsEC2ModifyClientVpnEndpointOutput {
  Return: Boolean
}

input AwsEC2ModifyClientVpnEndpointInput {
  ClientVpnEndpointId: String!
  ServerCertificateArn: String
  ConnectionLogOptions: AwsEC2S76Input
  DnsServers: AwsEC2ModifyClientVpnEndpointDnsServersInput
  VpnPort: Int
  Description: String
  SplitTunnel: Boolean
  DryRun: Boolean
  SecurityGroupIds: [String]
  VpcId: String
  SelfServicePortal: String
  ClientConnectOptions: AwsEC2S79Input
}

input AwsEC2ModifyClientVpnEndpointDnsServersInput {
  CustomDnsServers: [String]
  Enabled: Boolean
}

type AwsEC2ModifyDefaultCreditSpecificationOutput {
  InstanceFamilyCreditSpecification: AwsEC2S1gr
}

input AwsEC2ModifyDefaultCreditSpecificationInput {
  DryRun: Boolean
  InstanceFamily: String!
  CpuCredits: String!
}

type AwsEC2ModifyEbsDefaultKmsKeyIdOutput {
  KmsKeyId: String
}

input AwsEC2ModifyEbsDefaultKmsKeyIdInput {
  KmsKeyId: String!
  DryRun: Boolean
}

type AwsEC2ModifyFleetOutput {
  Return: Boolean
}

input AwsEC2ModifyFleetInput {
  DryRun: Boolean
  ExcessCapacityTerminationPolicy: String
  LaunchTemplateConfigs: [AwsEC2S8pInput]
  FleetId: String!
  TargetCapacitySpecification: AwsEC2S8yInput
}

type AwsEC2ModifyFpgaImageAttributeOutput {
  FpgaImageAttribute: AwsEC2Su5
}

input AwsEC2ModifyFpgaImageAttributeInput {
  DryRun: Boolean
  FpgaImageId: String!
  Attribute: String
  OperationType: String
  UserIds: [String]
  UserGroups: [String]
  ProductCodes: [String]
  LoadPermission: AwsEC2ModifyFpgaImageAttributeLoadPermissionInput
  Description: String
  Name: String
}

input AwsEC2ModifyFpgaImageAttributeLoadPermissionInput {
  Add: [AwsEC2S1jtInput]
  Remove: [AwsEC2S1jtInput]
}

input AwsEC2S1jtInput {
  Group: String
  UserId: String
}

type AwsEC2ModifyHostsOutput {
  Successful: [String]
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2ModifyHostsInput {
  AutoPlacement: String
  HostIds: [String]!
  HostRecovery: String
  InstanceType: String
  InstanceFamily: String
}

input AwsEC2ModifyIdFormatInput {
  Resource: String!
  UseLongIds: Boolean!
}

input AwsEC2ModifyIdentityIdFormatInput {
  PrincipalArn: String!
  Resource: String!
  UseLongIds: Boolean!
}

input AwsEC2ModifyImageAttributeInput {
  Attribute: String
  Description: AwsEC2S86Input
  ImageId: String!
  LaunchPermission: AwsEC2ModifyImageAttributeLaunchPermissionInput
  OperationType: String
  ProductCodes: [String]
  UserGroups: [String]
  UserIds: [String]
  Value: String
  DryRun: Boolean
}

input AwsEC2S86Input {
  Value: String
}

input AwsEC2ModifyImageAttributeLaunchPermissionInput {
  Add: [AwsEC2SvsInput]
  Remove: [AwsEC2SvsInput]
}

input AwsEC2SvsInput {
  Group: String
  UserId: String
}

input AwsEC2ModifyInstanceAttributeInput {
  SourceDestCheck: AwsEC2SwwInput
  Attribute: String
  BlockDeviceMappings: [AwsEC2ModifyInstanceAttributeBlockDeviceMappingsInput]
  DisableApiTermination: AwsEC2SwwInput
  DryRun: Boolean
  EbsOptimized: AwsEC2SwwInput
  EnaSupport: AwsEC2SwwInput
  Groups: [String]
  InstanceId: String!
  InstanceInitiatedShutdownBehavior: AwsEC2S86Input
  InstanceType: AwsEC2S86Input
  Kernel: AwsEC2S86Input
  Ramdisk: AwsEC2S86Input
  SriovNetSupport: AwsEC2S86Input
  UserData: AwsEC2ModifyInstanceAttributeUserDataInput
  Value: String
}

input AwsEC2SwwInput {
  Value: Boolean
}

input AwsEC2ModifyInstanceAttributeBlockDeviceMappingsInput {
  DeviceName: String
  Ebs: AwsEC2ModifyInstanceAttributeBlockDeviceMappingsEbsInput
  NoDevice: String
  VirtualName: String
}

input AwsEC2ModifyInstanceAttributeBlockDeviceMappingsEbsInput {
  DeleteOnTermination: Boolean
  VolumeId: String
}

input AwsEC2ModifyInstanceAttributeUserDataInput {
  Value: JSON
}

type AwsEC2ModifyInstanceCapacityReservationAttributesOutput {
  Return: Boolean
}

input AwsEC2ModifyInstanceCapacityReservationAttributesInput {
  InstanceId: String!
  CapacityReservationSpecification: AwsEC2S1k9Input!
  DryRun: Boolean
}

input AwsEC2S1k9Input {
  CapacityReservationPreference: String
  CapacityReservationTarget: AwsEC2SbfInput
}

type AwsEC2ModifyInstanceCreditSpecificationOutput {
  SuccessfulInstanceCreditSpecifications: [AwsEC2ModifyInstanceCreditSpecificationOutputSuccessfulInstanceCreditSpecifications]
  UnsuccessfulInstanceCreditSpecifications: [AwsEC2ModifyInstanceCreditSpecificationOutputUnsuccessfulInstanceCreditSpecifications]
}

type AwsEC2ModifyInstanceCreditSpecificationOutputSuccessfulInstanceCreditSpecifications {
  InstanceId: String
}

type AwsEC2ModifyInstanceCreditSpecificationOutputUnsuccessfulInstanceCreditSpecifications {
  InstanceId: String
  Error: AwsEC2ModifyInstanceCreditSpecificationOutputUnsuccessfulInstanceCreditSpecificationsError
}

type AwsEC2ModifyInstanceCreditSpecificationOutputUnsuccessfulInstanceCreditSpecificationsError {
  Code: String
  Message: String
}

input AwsEC2ModifyInstanceCreditSpecificationInput {
  DryRun: Boolean
  ClientToken: String
  InstanceCreditSpecifications: [AwsEC2ModifyInstanceCreditSpecificationInstanceCreditSpecificationsInput]!
}

input AwsEC2ModifyInstanceCreditSpecificationInstanceCreditSpecificationsInput {
  InstanceId: String
  CpuCredits: String
}

type AwsEC2ModifyInstanceEventStartTimeOutput {
  Event: AwsEC2Sxa
}

input AwsEC2ModifyInstanceEventStartTimeInput {
  DryRun: Boolean
  InstanceId: String!
  InstanceEventId: String!
  NotBefore: Date!
}

type AwsEC2ModifyInstanceMetadataOptionsOutput {
  InstanceId: String
  InstanceMetadataOptions: AwsEC2S112
}

input AwsEC2ModifyInstanceMetadataOptionsInput {
  InstanceId: String!
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
  DryRun: Boolean
}

type AwsEC2ModifyInstancePlacementOutput {
  Return: Boolean
}

input AwsEC2ModifyInstancePlacementInput {
  Affinity: String
  GroupName: String
  HostId: String
  InstanceId: String!
  Tenancy: String
  PartitionNumber: Int
  HostResourceGroupArn: String
}

type AwsEC2ModifyLaunchTemplateOutput {
  LaunchTemplate: AwsEC2Sbo
}

input AwsEC2ModifyLaunchTemplateInput {
  DryRun: Boolean
  ClientToken: String
  LaunchTemplateId: String
  LaunchTemplateName: String
  DefaultVersion: String
}

type AwsEC2ModifyManagedPrefixListOutput {
  PrefixList: AwsEC2Sd3
}

input AwsEC2ModifyManagedPrefixListInput {
  DryRun: Boolean
  PrefixListId: String!
  CurrentVersion: JSON
  PrefixListName: String
  AddEntries: [AwsEC2Sd0Input]
  RemoveEntries: [AwsEC2ModifyManagedPrefixListRemoveEntriesInput]
}

input AwsEC2ModifyManagedPrefixListRemoveEntriesInput {
  Cidr: String!
}

input AwsEC2ModifyNetworkInterfaceAttributeInput {
  Attachment: AwsEC2ModifyNetworkInterfaceAttributeAttachmentInput
  Description: AwsEC2S86Input
  DryRun: Boolean
  Groups: [String]
  NetworkInterfaceId: String!
  SourceDestCheck: AwsEC2SwwInput
}

input AwsEC2ModifyNetworkInterfaceAttributeAttachmentInput {
  AttachmentId: String
  DeleteOnTermination: Boolean
}

type AwsEC2ModifyReservedInstancesOutput {
  ReservedInstancesModificationId: String
}

input AwsEC2ModifyReservedInstancesInput {
  ReservedInstancesIds: [String]!
  ClientToken: String
  TargetConfigurations: [AwsEC2S167Input]!
}

input AwsEC2S167Input {
  AvailabilityZone: String
  InstanceCount: Int
  InstanceType: String
  Platform: String
  Scope: String
}

input AwsEC2ModifySnapshotAttributeInput {
  Attribute: String
  CreateVolumePermission: AwsEC2ModifySnapshotAttributeCreateVolumePermissionInput
  GroupNames: [String]
  OperationType: String
  SnapshotId: String!
  UserIds: [String]
  DryRun: Boolean
}

input AwsEC2ModifySnapshotAttributeCreateVolumePermissionInput {
  Add: [AwsEC2S17hInput]
  Remove: [AwsEC2S17hInput]
}

input AwsEC2S17hInput {
  Group: String
  UserId: String
}

type AwsEC2ModifySpotFleetRequestOutput {
  Return: Boolean
}

input AwsEC2ModifySpotFleetRequestInput {
  ExcessCapacityTerminationPolicy: String
  LaunchTemplateConfigs: [AwsEC2S18jInput]
  SpotFleetRequestId: String!
  TargetCapacity: Int
  OnDemandTargetCapacity: Int
}

input AwsEC2S18jInput {
  LaunchTemplateSpecification: AwsEC2S96Input
  Overrides: [AwsEC2S18jOverridesInput]
}

input AwsEC2S96Input {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

input AwsEC2S18jOverridesInput {
  InstanceType: String
  SpotPrice: String
  SubnetId: String
  AvailabilityZone: String
  WeightedCapacity: JSON
  Priority: JSON
}

input AwsEC2ModifySubnetAttributeInput {
  AssignIpv6AddressOnCreation: AwsEC2SwwInput
  MapPublicIpOnLaunch: AwsEC2SwwInput
  SubnetId: String!
  MapCustomerOwnedIpOnLaunch: AwsEC2SwwInput
  CustomerOwnedIpv4Pool: String
}

type AwsEC2ModifyTrafficMirrorFilterNetworkServicesOutput {
  TrafficMirrorFilter: AwsEC2Sg4
}

input AwsEC2ModifyTrafficMirrorFilterNetworkServicesInput {
  TrafficMirrorFilterId: String!
  AddNetworkServices: [String]
  RemoveNetworkServices: [String]
  DryRun: Boolean
}

type AwsEC2ModifyTrafficMirrorFilterRuleOutput {
  TrafficMirrorFilterRule: AwsEC2Sg6
}

input AwsEC2ModifyTrafficMirrorFilterRuleInput {
  TrafficMirrorFilterRuleId: String!
  TrafficDirection: String
  RuleNumber: Int
  RuleAction: String
  DestinationPortRange: AwsEC2SgeInput
  SourcePortRange: AwsEC2SgeInput
  Protocol: Int
  DestinationCidrBlock: String
  SourceCidrBlock: String
  Description: String
  RemoveFields: [String]
  DryRun: Boolean
}

type AwsEC2ModifyTrafficMirrorSessionOutput {
  TrafficMirrorSession: AwsEC2Sgj
}

input AwsEC2ModifyTrafficMirrorSessionInput {
  TrafficMirrorSessionId: String!
  TrafficMirrorTargetId: String
  TrafficMirrorFilterId: String
  PacketLength: Int
  SessionNumber: Int
  VirtualNetworkId: Int
  Description: String
  RemoveFields: [String]
  DryRun: Boolean
}

type AwsEC2ModifyTransitGatewayOutput {
  TransitGateway: AwsEC2Sgx
}

input AwsEC2ModifyTransitGatewayInput {
  TransitGatewayId: String!
  Description: String
  Options: AwsEC2ModifyTransitGatewayOptionsInput
  DryRun: Boolean
}

input AwsEC2ModifyTransitGatewayOptionsInput {
  AddTransitGatewayCidrBlocks: [String]
  RemoveTransitGatewayCidrBlocks: [String]
  VpnEcmpSupport: String
  DnsSupport: String
  AutoAcceptSharedAttachments: String
  DefaultRouteTableAssociation: String
  AssociationDefaultRouteTableId: String
  DefaultRouteTablePropagation: String
  PropagationDefaultRouteTableId: String
}

type AwsEC2ModifyTransitGatewayPrefixListReferenceOutput {
  TransitGatewayPrefixListReference: AwsEC2Shv
}

input AwsEC2ModifyTransitGatewayPrefixListReferenceInput {
  TransitGatewayRouteTableId: String!
  PrefixListId: String!
  TransitGatewayAttachmentId: String
  Blackhole: Boolean
  DryRun: Boolean
}

type AwsEC2ModifyTransitGatewayVpcAttachmentOutput {
  TransitGatewayVpcAttachment: AwsEC2Sw
}

input AwsEC2ModifyTransitGatewayVpcAttachmentInput {
  TransitGatewayAttachmentId: String!
  AddSubnetIds: [String]
  RemoveSubnetIds: [String]
  Options: AwsEC2ModifyTransitGatewayVpcAttachmentOptionsInput
  DryRun: Boolean
}

input AwsEC2ModifyTransitGatewayVpcAttachmentOptionsInput {
  DnsSupport: String
  Ipv6Support: String
  ApplianceModeSupport: String
}

type AwsEC2ModifyVolumeOutput {
  VolumeModification: AwsEC2S1c1
}

input AwsEC2ModifyVolumeInput {
  DryRun: Boolean
  VolumeId: String!
  Size: Int
  VolumeType: String
  Iops: Int
  Throughput: Int
  MultiAttachEnabled: Boolean
}

input AwsEC2ModifyVolumeAttributeInput {
  AutoEnableIO: AwsEC2SwwInput
  VolumeId: String!
  DryRun: Boolean
}

input AwsEC2ModifyVpcAttributeInput {
  EnableDnsHostnames: AwsEC2SwwInput
  EnableDnsSupport: AwsEC2SwwInput
  VpcId: String!
}

type AwsEC2ModifyVpcEndpointOutput {
  Return: Boolean
}

input AwsEC2ModifyVpcEndpointInput {
  DryRun: Boolean
  VpcEndpointId: String!
  ResetPolicy: Boolean
  PolicyDocument: String
  AddRouteTableIds: [String]
  RemoveRouteTableIds: [String]
  AddSubnetIds: [String]
  RemoveSubnetIds: [String]
  AddSecurityGroupIds: [String]
  RemoveSecurityGroupIds: [String]
  PrivateDnsEnabled: Boolean
}

type AwsEC2ModifyVpcEndpointConnectionNotificationOutput {
  ReturnValue: Boolean
}

input AwsEC2ModifyVpcEndpointConnectionNotificationInput {
  DryRun: Boolean
  ConnectionNotificationId: String!
  ConnectionNotificationArn: String
  ConnectionEvents: [String]
}

type AwsEC2ModifyVpcEndpointServiceConfigurationOutput {
  Return: Boolean
}

input AwsEC2ModifyVpcEndpointServiceConfigurationInput {
  DryRun: Boolean
  ServiceId: String!
  PrivateDnsName: String
  RemovePrivateDnsName: Boolean
  AcceptanceRequired: Boolean
  AddNetworkLoadBalancerArns: [String]
  RemoveNetworkLoadBalancerArns: [String]
  AddGatewayLoadBalancerArns: [String]
  RemoveGatewayLoadBalancerArns: [String]
}

type AwsEC2ModifyVpcEndpointServicePermissionsOutput {
  ReturnValue: Boolean
}

input AwsEC2ModifyVpcEndpointServicePermissionsInput {
  DryRun: Boolean
  ServiceId: String!
  AddAllowedPrincipals: [String]
  RemoveAllowedPrincipals: [String]
}

type AwsEC2ModifyVpcPeeringConnectionOptionsOutput {
  AccepterPeeringConnectionOptions: AwsEC2S1m6
  RequesterPeeringConnectionOptions: AwsEC2S1m6
}

type AwsEC2S1m6 {
  AllowDnsResolutionFromRemoteVpc: Boolean
  AllowEgressFromLocalClassicLinkToRemoteVpc: Boolean
  AllowEgressFromLocalVpcToRemoteClassicLink: Boolean
}

input AwsEC2ModifyVpcPeeringConnectionOptionsInput {
  AccepterPeeringConnectionOptions: AwsEC2S1m4Input
  DryRun: Boolean
  RequesterPeeringConnectionOptions: AwsEC2S1m4Input
  VpcPeeringConnectionId: String!
}

input AwsEC2S1m4Input {
  AllowDnsResolutionFromRemoteVpc: Boolean
  AllowEgressFromLocalClassicLinkToRemoteVpc: Boolean
  AllowEgressFromLocalVpcToRemoteClassicLink: Boolean
}

type AwsEC2ModifyVpcTenancyOutput {
  ReturnValue: Boolean
}

input AwsEC2ModifyVpcTenancyInput {
  VpcId: String!
  InstanceTenancy: String!
  DryRun: Boolean
}

type AwsEC2ModifyVpnConnectionOutput {
  VpnConnection: AwsEC2Sjw
}

input AwsEC2ModifyVpnConnectionInput {
  VpnConnectionId: String!
  TransitGatewayId: String
  CustomerGatewayId: String
  VpnGatewayId: String
  DryRun: Boolean
}

type AwsEC2ModifyVpnConnectionOptionsOutput {
  VpnConnection: AwsEC2Sjw
}

input AwsEC2ModifyVpnConnectionOptionsInput {
  VpnConnectionId: String!
  LocalIpv4NetworkCidr: String
  RemoteIpv4NetworkCidr: String
  LocalIpv6NetworkCidr: String
  RemoteIpv6NetworkCidr: String
  DryRun: Boolean
}

type AwsEC2ModifyVpnTunnelCertificateOutput {
  VpnConnection: AwsEC2Sjw
}

input AwsEC2ModifyVpnTunnelCertificateInput {
  VpnConnectionId: String!
  VpnTunnelOutsideIpAddress: String!
  DryRun: Boolean
}

type AwsEC2ModifyVpnTunnelOptionsOutput {
  VpnConnection: AwsEC2Sjw
}

input AwsEC2ModifyVpnTunnelOptionsInput {
  VpnConnectionId: String!
  VpnTunnelOutsideIpAddress: String!
  TunnelOptions: AwsEC2ModifyVpnTunnelOptionsTunnelOptionsInput!
  DryRun: Boolean
}

input AwsEC2ModifyVpnTunnelOptionsTunnelOptionsInput {
  TunnelInsideCidr: String
  TunnelInsideIpv6Cidr: String
  PreSharedKey: String
  Phase1LifetimeSeconds: Int
  Phase2LifetimeSeconds: Int
  RekeyMarginTimeSeconds: Int
  RekeyFuzzPercentage: Int
  ReplayWindowSize: Int
  DPDTimeoutSeconds: Int
  DPDTimeoutAction: String
  Phase1EncryptionAlgorithms: [AwsEC2SjhInput]
  Phase2EncryptionAlgorithms: [AwsEC2SjjInput]
  Phase1IntegrityAlgorithms: [AwsEC2SjlInput]
  Phase2IntegrityAlgorithms: [AwsEC2SjnInput]
  Phase1DHGroupNumbers: [AwsEC2SjpInput]
  Phase2DHGroupNumbers: [AwsEC2SjrInput]
  IKEVersions: [AwsEC2SjtInput]
  StartupAction: String
}

type AwsEC2MonitorInstancesOutput {
  InstanceMonitorings: [AwsEC2S1ml]
}

type AwsEC2S1ml {
  InstanceId: String
  Monitoring: AwsEC2S10k
}

input AwsEC2MonitorInstancesInput {
  InstanceIds: [String]!
  DryRun: Boolean
}

type AwsEC2MoveAddressToVpcOutput {
  AllocationId: String
  Status: String
}

input AwsEC2MoveAddressToVpcInput {
  DryRun: Boolean
  PublicIp: String!
}

type AwsEC2ProvisionByoipCidrOutput {
  ByoipCidr: AwsEC2S1n
}

input AwsEC2ProvisionByoipCidrInput {
  Cidr: String!
  CidrAuthorizationContext: AwsEC2ProvisionByoipCidrCidrAuthorizationContextInput
  PubliclyAdvertisable: Boolean
  Description: String
  DryRun: Boolean
  PoolTagSpecifications: [AwsEC2S1tInput]
  MultiRegion: Boolean
}

input AwsEC2ProvisionByoipCidrCidrAuthorizationContextInput {
  Message: String!
  Signature: String!
}

type AwsEC2PurchaseHostReservationOutput {
  ClientToken: String
  CurrencyCode: String
  Purchase: [AwsEC2S1ha]
  TotalHourlyPrice: String
  TotalUpfrontPrice: String
}

input AwsEC2PurchaseHostReservationInput {
  ClientToken: String
  CurrencyCode: String
  HostIdSet: [String]!
  LimitPrice: String
  OfferingId: String!
  TagSpecifications: [AwsEC2S1tInput]
}

type AwsEC2PurchaseReservedInstancesOfferingOutput {
  ReservedInstancesId: String
}

input AwsEC2PurchaseReservedInstancesOfferingInput {
  InstanceCount: Int!
  ReservedInstancesOfferingId: String!
  DryRun: Boolean
  LimitPrice: AwsEC2PurchaseReservedInstancesOfferingLimitPriceInput
  PurchaseTime: Date
}

input AwsEC2PurchaseReservedInstancesOfferingLimitPriceInput {
  Amount: JSON
  CurrencyCode: String
}

type AwsEC2PurchaseScheduledInstancesOutput {
  ScheduledInstanceSet: [AwsEC2S172]
}

input AwsEC2PurchaseScheduledInstancesInput {
  ClientToken: String
  DryRun: Boolean
  PurchaseRequests: [AwsEC2PurchaseScheduledInstancesPurchaseRequestsInput]!
}

input AwsEC2PurchaseScheduledInstancesPurchaseRequestsInput {
  InstanceCount: Int!
  PurchaseToken: String!
}

input AwsEC2RebootInstancesInput {
  InstanceIds: [String]!
  DryRun: Boolean
}

type AwsEC2RegisterImageOutput {
  ImageId: String
}

input AwsEC2RegisterImageInput {
  ImageLocation: String
  Architecture: String
  BlockDeviceMappings: [AwsEC2S9qInput]
  Description: String
  DryRun: Boolean
  EnaSupport: Boolean
  KernelId: String
  Name: String!
  BillingProducts: [String]
  RamdiskId: String
  RootDeviceName: String
  SriovNetSupport: String
  VirtualizationType: String
  BootMode: String
}

type AwsEC2RegisterInstanceEventNotificationAttributesOutput {
  InstanceTagAttribute: AwsEC2Soc
}

input AwsEC2RegisterInstanceEventNotificationAttributesInput {
  DryRun: Boolean
  InstanceTagAttribute: AwsEC2RegisterInstanceEventNotificationAttributesInstanceTagAttributeInput
}

input AwsEC2RegisterInstanceEventNotificationAttributesInstanceTagAttributeInput {
  IncludeAllTagsOfInstance: Boolean
  InstanceTagKeys: [String]
}

type AwsEC2RegisterTransitGatewayMulticastGroupMembersOutput {
  RegisteredMulticastGroupMembers: AwsEC2RegisterTransitGatewayMulticastGroupMembersOutputRegisteredMulticastGroupMembers
}

type AwsEC2RegisterTransitGatewayMulticastGroupMembersOutputRegisteredMulticastGroupMembers {
  TransitGatewayMulticastDomainId: String
  RegisteredNetworkInterfaceIds: [String]
  GroupIpAddress: String
}

input AwsEC2RegisterTransitGatewayMulticastGroupMembersInput {
  TransitGatewayMulticastDomainId: String
  GroupIpAddress: String
  NetworkInterfaceIds: [String]
  DryRun: Boolean
}

type AwsEC2RegisterTransitGatewayMulticastGroupSourcesOutput {
  RegisteredMulticastGroupSources: AwsEC2RegisterTransitGatewayMulticastGroupSourcesOutputRegisteredMulticastGroupSources
}

type AwsEC2RegisterTransitGatewayMulticastGroupSourcesOutputRegisteredMulticastGroupSources {
  TransitGatewayMulticastDomainId: String
  RegisteredNetworkInterfaceIds: [String]
  GroupIpAddress: String
}

input AwsEC2RegisterTransitGatewayMulticastGroupSourcesInput {
  TransitGatewayMulticastDomainId: String
  GroupIpAddress: String
  NetworkInterfaceIds: [String]
  DryRun: Boolean
}

type AwsEC2RejectTransitGatewayMulticastDomainAssociationsOutput {
  Associations: AwsEC2Sg
}

input AwsEC2RejectTransitGatewayMulticastDomainAssociationsInput {
  TransitGatewayMulticastDomainId: String
  TransitGatewayAttachmentId: String
  SubnetIds: [String]
  DryRun: Boolean
}

type AwsEC2RejectTransitGatewayPeeringAttachmentOutput {
  TransitGatewayPeeringAttachment: AwsEC2Sn
}

input AwsEC2RejectTransitGatewayPeeringAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2RejectTransitGatewayVpcAttachmentOutput {
  TransitGatewayVpcAttachment: AwsEC2Sw
}

input AwsEC2RejectTransitGatewayVpcAttachmentInput {
  TransitGatewayAttachmentId: String!
  DryRun: Boolean
}

type AwsEC2RejectVpcEndpointConnectionsOutput {
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2RejectVpcEndpointConnectionsInput {
  DryRun: Boolean
  ServiceId: String!
  VpcEndpointIds: [String]!
}

type AwsEC2RejectVpcPeeringConnectionOutput {
  Return: Boolean
}

input AwsEC2RejectVpcPeeringConnectionInput {
  DryRun: Boolean
  VpcPeeringConnectionId: String!
}

input AwsEC2ReleaseAddressInput {
  AllocationId: String
  PublicIp: String
  NetworkBorderGroup: String
  DryRun: Boolean
}

type AwsEC2ReleaseHostsOutput {
  Successful: [String]
  Unsuccessful: [AwsEC2S17]
}

input AwsEC2ReleaseHostsInput {
  HostIds: [String]!
}

type AwsEC2ReplaceIamInstanceProfileAssociationOutput {
  IamInstanceProfileAssociation: AwsEC2S2y
}

input AwsEC2ReplaceIamInstanceProfileAssociationInput {
  IamInstanceProfile: AwsEC2S2wInput!
  AssociationId: String!
}

type AwsEC2ReplaceNetworkAclAssociationOutput {
  NewAssociationId: String
}

input AwsEC2ReplaceNetworkAclAssociationInput {
  AssociationId: String!
  DryRun: Boolean
  NetworkAclId: String!
}

input AwsEC2ReplaceNetworkAclEntryInput {
  CidrBlock: String
  DryRun: Boolean
  Egress: Boolean!
  IcmpTypeCode: AwsEC2SdlInput
  Ipv6CidrBlock: String
  NetworkAclId: String!
  PortRange: AwsEC2SdmInput
  Protocol: String!
  RuleAction: String!
  RuleNumber: Int!
}

input AwsEC2ReplaceRouteInput {
  DestinationCidrBlock: String
  DestinationIpv6CidrBlock: String
  DestinationPrefixListId: String
  DryRun: Boolean
  VpcEndpointId: String
  EgressOnlyInternetGatewayId: String
  GatewayId: String
  InstanceId: String
  LocalTarget: Boolean
  NatGatewayId: String
  TransitGatewayId: String
  LocalGatewayId: String
  CarrierGatewayId: String
  NetworkInterfaceId: String
  RouteTableId: String!
  VpcPeeringConnectionId: String
}

type AwsEC2ReplaceRouteTableAssociationOutput {
  NewAssociationId: String
  AssociationState: AwsEC2S35
}

input AwsEC2ReplaceRouteTableAssociationInput {
  AssociationId: String!
  DryRun: Boolean
  RouteTableId: String!
}

type AwsEC2ReplaceTransitGatewayRouteOutput {
  Route: AwsEC2Si0
}

input AwsEC2ReplaceTransitGatewayRouteInput {
  DestinationCidrBlock: String!
  TransitGatewayRouteTableId: String!
  TransitGatewayAttachmentId: String
  Blackhole: Boolean
  DryRun: Boolean
}

input AwsEC2ReportInstanceStatusInput {
  Description: String
  DryRun: Boolean
  EndTime: Date
  Instances: [String]!
  ReasonCodes: [String]!
  StartTime: Date
  Status: String!
}

type AwsEC2RequestSpotFleetOutput {
  SpotFleetRequestId: String
}

input AwsEC2RequestSpotFleetInput {
  DryRun: Boolean
  SpotFleetRequestConfig: AwsEC2S184Input!
}

input AwsEC2S184Input {
  AllocationStrategy: String
  OnDemandAllocationStrategy: String
  SpotMaintenanceStrategies: AwsEC2S184SpotMaintenanceStrategiesInput
  ClientToken: String
  ExcessCapacityTerminationPolicy: String
  FulfilledCapacity: JSON
  OnDemandFulfilledCapacity: JSON
  IamFleetRole: String!
  LaunchSpecifications: [AwsEC2S184LaunchSpecificationsInput]
  LaunchTemplateConfigs: [AwsEC2S18jInput]
  SpotPrice: String
  TargetCapacity: Int!
  OnDemandTargetCapacity: Int
  OnDemandMaxTotalPrice: String
  SpotMaxTotalPrice: String
  TerminateInstancesWithExpiration: Boolean
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  ReplaceUnhealthyInstances: Boolean
  InstanceInterruptionBehavior: String
  LoadBalancersConfig: AwsEC2S184LoadBalancersConfigInput
  InstancePoolsToUseCount: Int
  TagSpecifications: [AwsEC2S1tInput]
}

input AwsEC2S184SpotMaintenanceStrategiesInput {
  CapacityRebalance: AwsEC2S184SpotMaintenanceStrategiesCapacityRebalanceInput
}

input AwsEC2S184SpotMaintenanceStrategiesCapacityRebalanceInput {
  ReplacementStrategy: String
}

input AwsEC2S184LaunchSpecificationsInput {
  SecurityGroups: [AwsEC2Se3Input]
  AddressingType: String
  BlockDeviceMappings: [AwsEC2S9qInput]
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2S2wInput
  ImageId: String
  InstanceType: String
  KernelId: String
  KeyName: String
  Monitoring: AwsEC2S184LaunchSpecificationsMonitoringInput
  NetworkInterfaces: [AwsEC2S18eInput]
  Placement: AwsEC2S18gInput
  RamdiskId: String
  SpotPrice: String
  SubnetId: String
  UserData: String
  WeightedCapacity: JSON
  TagSpecifications: [AwsEC2S184LaunchSpecificationsTagSpecificationsInput]
}

input AwsEC2Se3Input {
  GroupName: String
  GroupId: String
}

input AwsEC2S184LaunchSpecificationsMonitoringInput {
  Enabled: Boolean
}

input AwsEC2S18eInput {
  AssociatePublicIpAddress: Boolean
  DeleteOnTermination: Boolean
  Description: String
  DeviceIndex: Int
  Groups: [String]
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2Sc2Input]
  NetworkInterfaceId: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsEC2SaoInput]
  SecondaryPrivateIpAddressCount: Int
  SubnetId: String
  AssociateCarrierIpAddress: Boolean
  InterfaceType: String
  NetworkCardIndex: Int
}

input AwsEC2S18gInput {
  AvailabilityZone: String
  GroupName: String
  Tenancy: String
}

input AwsEC2S184LaunchSpecificationsTagSpecificationsInput {
  ResourceType: String
  Tags: [AwsEC2SsInput]
}

input AwsEC2S184LoadBalancersConfigInput {
  ClassicLoadBalancersConfig: AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigInput
  TargetGroupsConfig: AwsEC2S184LoadBalancersConfigTargetGroupsConfigInput
}

input AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigInput {
  ClassicLoadBalancers: [AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigClassicLoadBalancersInput]
}

input AwsEC2S184LoadBalancersConfigClassicLoadBalancersConfigClassicLoadBalancersInput {
  Name: String
}

input AwsEC2S184LoadBalancersConfigTargetGroupsConfigInput {
  TargetGroups: [AwsEC2S184LoadBalancersConfigTargetGroupsConfigTargetGroupsInput]
}

input AwsEC2S184LoadBalancersConfigTargetGroupsConfigTargetGroupsInput {
  Arn: String
}

type AwsEC2RequestSpotInstancesOutput {
  SpotInstanceRequests: [AwsEC2S18w]
}

input AwsEC2RequestSpotInstancesInput {
  AvailabilityZoneGroup: String
  BlockDurationMinutes: Int
  ClientToken: String
  DryRun: Boolean
  InstanceCount: Int
  LaunchGroup: String
  LaunchSpecification: AwsEC2RequestSpotInstancesLaunchSpecificationInput
  SpotPrice: String
  Type: String
  ValidFrom: Date
  ValidUntil: Date
  TagSpecifications: [AwsEC2S1tInput]
  InstanceInterruptionBehavior: String
}

input AwsEC2RequestSpotInstancesLaunchSpecificationInput {
  SecurityGroupIds: [String]
  SecurityGroups: [String]
  AddressingType: String
  BlockDeviceMappings: [AwsEC2S9qInput]
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2S2wInput
  ImageId: String
  InstanceType: String
  KernelId: String
  KeyName: String
  Monitoring: AwsEC2S18zInput
  NetworkInterfaces: [AwsEC2S18eInput]
  Placement: AwsEC2S18gInput
  RamdiskId: String
  SubnetId: String
  UserData: String
}

input AwsEC2S18zInput {
  Enabled: Boolean!
}

type AwsEC2ResetAddressAttributeOutput {
  Address: AwsEC2Sp7
}

input AwsEC2ResetAddressAttributeInput {
  AllocationId: String!
  Attribute: String!
  DryRun: Boolean
}

type AwsEC2ResetEbsDefaultKmsKeyIdOutput {
  KmsKeyId: String
}

input AwsEC2ResetEbsDefaultKmsKeyIdInput {
  DryRun: Boolean
}

type AwsEC2ResetFpgaImageAttributeOutput {
  Return: Boolean
}

input AwsEC2ResetFpgaImageAttributeInput {
  DryRun: Boolean
  FpgaImageId: String!
  Attribute: String
}

input AwsEC2ResetImageAttributeInput {
  Attribute: String!
  ImageId: String!
  DryRun: Boolean
}

input AwsEC2ResetInstanceAttributeInput {
  Attribute: String!
  DryRun: Boolean
  InstanceId: String!
}

input AwsEC2ResetNetworkInterfaceAttributeInput {
  DryRun: Boolean
  NetworkInterfaceId: String!
  SourceDestCheck: String
}

input AwsEC2ResetSnapshotAttributeInput {
  Attribute: String!
  SnapshotId: String!
  DryRun: Boolean
}

type AwsEC2RestoreAddressToClassicOutput {
  PublicIp: String
  Status: String
}

input AwsEC2RestoreAddressToClassicInput {
  DryRun: Boolean
  PublicIp: String!
}

type AwsEC2RestoreManagedPrefixListVersionOutput {
  PrefixList: AwsEC2Sd3
}

input AwsEC2RestoreManagedPrefixListVersionInput {
  DryRun: Boolean
  PrefixListId: String!
  PreviousVersion: JSON!
  CurrentVersion: JSON!
}

type AwsEC2RevokeClientVpnIngressOutput {
  Status: AwsEC2S4f
}

input AwsEC2RevokeClientVpnIngressInput {
  ClientVpnEndpointId: String!
  TargetNetworkCidr: String!
  AccessGroupId: String
  RevokeAllGroups: Boolean
  DryRun: Boolean
}

type AwsEC2RevokeSecurityGroupEgressOutput {
  Return: Boolean
  UnknownIpPermissions: [AwsEC2S4i]
}

input AwsEC2RevokeSecurityGroupEgressInput {
  DryRun: Boolean
  GroupId: String!
  IpPermissions: [AwsEC2S4iInput]
  CidrIp: String
  FromPort: Int
  IpProtocol: String
  ToPort: Int
  SourceSecurityGroupName: String
  SourceSecurityGroupOwnerId: String
}

type AwsEC2RevokeSecurityGroupIngressOutput {
  Return: Boolean
  UnknownIpPermissions: [AwsEC2S4i]
}

input AwsEC2RevokeSecurityGroupIngressInput {
  CidrIp: String
  FromPort: Int
  GroupId: String
  GroupName: String
  IpPermissions: [AwsEC2S4iInput]
  IpProtocol: String
  SourceSecurityGroupName: String
  SourceSecurityGroupOwnerId: String
  ToPort: Int
  DryRun: Boolean
}

input AwsEC2RunInstancesInput {
  BlockDeviceMappings: [AwsEC2S9qInput]
  ImageId: String
  InstanceType: String
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2Sc2Input]
  KernelId: String
  KeyName: String
  MaxCount: Int!
  MinCount: Int!
  Monitoring: AwsEC2S18zInput
  Placement: AwsEC2S8xInput
  RamdiskId: String
  SecurityGroupIds: [String]
  SecurityGroups: [String]
  SubnetId: String
  UserData: String
  AdditionalInfo: String
  ClientToken: String
  DisableApiTermination: Boolean
  DryRun: Boolean
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2S2wInput
  InstanceInitiatedShutdownBehavior: String
  NetworkInterfaces: [AwsEC2S18eInput]
  PrivateIpAddress: String
  ElasticGpuSpecification: [AwsEC2Sb1Input]
  ElasticInferenceAccelerators: [AwsEC2RunInstancesElasticInferenceAcceleratorsInput]
  TagSpecifications: [AwsEC2S1tInput]
  LaunchTemplate: AwsEC2RunInstancesLaunchTemplateInput
  InstanceMarketOptions: AwsEC2RunInstancesInstanceMarketOptionsInput
  CreditSpecification: AwsEC2SbbInput
  CpuOptions: AwsEC2RunInstancesCpuOptionsInput
  CapacityReservationSpecification: AwsEC2S1k9Input
  HibernationOptions: AwsEC2RunInstancesHibernationOptionsInput
  LicenseSpecifications: [AwsEC2RunInstancesLicenseSpecificationsInput]
  MetadataOptions: AwsEC2RunInstancesMetadataOptionsInput
  EnclaveOptions: AwsEC2RunInstancesEnclaveOptionsInput
}

input AwsEC2RunInstancesElasticInferenceAcceleratorsInput {
  Type: String!
  Count: Int
}

input AwsEC2RunInstancesLaunchTemplateInput {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

input AwsEC2RunInstancesInstanceMarketOptionsInput {
  MarketType: String
  SpotOptions: AwsEC2RunInstancesInstanceMarketOptionsSpotOptionsInput
}

input AwsEC2RunInstancesInstanceMarketOptionsSpotOptionsInput {
  MaxPrice: String
  SpotInstanceType: String
  BlockDurationMinutes: Int
  ValidUntil: Date
  InstanceInterruptionBehavior: String
}

input AwsEC2RunInstancesCpuOptionsInput {
  CoreCount: Int
  ThreadsPerCore: Int
}

input AwsEC2RunInstancesHibernationOptionsInput {
  Configured: Boolean
}

input AwsEC2RunInstancesLicenseSpecificationsInput {
  LicenseConfigurationArn: String
}

input AwsEC2RunInstancesMetadataOptionsInput {
  HttpTokens: String
  HttpPutResponseHopLimit: Int
  HttpEndpoint: String
}

input AwsEC2RunInstancesEnclaveOptionsInput {
  Enabled: Boolean
}

type AwsEC2RunScheduledInstancesOutput {
  InstanceIdSet: [String]
}

input AwsEC2RunScheduledInstancesInput {
  ClientToken: String
  DryRun: Boolean
  InstanceCount: Int
  LaunchSpecification: AwsEC2RunScheduledInstancesLaunchSpecificationInput!
  ScheduledInstanceId: String!
}

input AwsEC2RunScheduledInstancesLaunchSpecificationInput {
  BlockDeviceMappings: [AwsEC2RunScheduledInstancesLaunchSpecificationBlockDeviceMappingsInput]
  EbsOptimized: Boolean
  IamInstanceProfile: AwsEC2RunScheduledInstancesLaunchSpecificationIamInstanceProfileInput
  ImageId: String!
  InstanceType: String
  KernelId: String
  KeyName: String
  Monitoring: AwsEC2RunScheduledInstancesLaunchSpecificationMonitoringInput
  NetworkInterfaces: [AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesInput]
  Placement: AwsEC2RunScheduledInstancesLaunchSpecificationPlacementInput
  RamdiskId: String
  SecurityGroupIds: [String]
  SubnetId: String
  UserData: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationBlockDeviceMappingsInput {
  DeviceName: String
  Ebs: AwsEC2RunScheduledInstancesLaunchSpecificationBlockDeviceMappingsEbsInput
  NoDevice: String
  VirtualName: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationBlockDeviceMappingsEbsInput {
  DeleteOnTermination: Boolean
  Encrypted: Boolean
  Iops: Int
  SnapshotId: String
  VolumeSize: Int
  VolumeType: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationIamInstanceProfileInput {
  Arn: String
  Name: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationMonitoringInput {
  Enabled: Boolean
}

input AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesInput {
  AssociatePublicIpAddress: Boolean
  DeleteOnTermination: Boolean
  Description: String
  DeviceIndex: Int
  Groups: [String]
  Ipv6AddressCount: Int
  Ipv6Addresses: [AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesIpv6AddressesInput]
  NetworkInterfaceId: String
  PrivateIpAddress: String
  PrivateIpAddressConfigs: [AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesPrivateIpAddressConfigsInput]
  SecondaryPrivateIpAddressCount: Int
  SubnetId: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesIpv6AddressesInput {
  Ipv6Address: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationNetworkInterfacesPrivateIpAddressConfigsInput {
  Primary: Boolean
  PrivateIpAddress: String
}

input AwsEC2RunScheduledInstancesLaunchSpecificationPlacementInput {
  AvailabilityZone: String
  GroupName: String
}

type AwsEC2SearchLocalGatewayRoutesOutput {
  Routes: [AwsEC2Scs]
  NextToken: String
}

input AwsEC2SearchLocalGatewayRoutesInput {
  LocalGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]!
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2SearchTransitGatewayMulticastGroupsOutput {
  MulticastGroups: [AwsEC2SearchTransitGatewayMulticastGroupsOutputMulticastGroups]
  NextToken: String
}

type AwsEC2SearchTransitGatewayMulticastGroupsOutputMulticastGroups {
  GroupIpAddress: String
  TransitGatewayAttachmentId: String
  SubnetId: String
  ResourceId: String
  ResourceType: String
  ResourceOwnerId: String
  NetworkInterfaceId: String
  GroupMember: Boolean
  GroupSource: Boolean
  MemberType: String
  SourceType: String
}

input AwsEC2SearchTransitGatewayMulticastGroupsInput {
  TransitGatewayMulticastDomainId: String
  Filters: [AwsEC2SotInput]
  MaxResults: Int
  NextToken: String
  DryRun: Boolean
}

type AwsEC2SearchTransitGatewayRoutesOutput {
  Routes: [AwsEC2Si0]
  AdditionalRoutesAvailable: Boolean
}

input AwsEC2SearchTransitGatewayRoutesInput {
  TransitGatewayRouteTableId: String!
  Filters: [AwsEC2SotInput]!
  MaxResults: Int
  DryRun: Boolean
}

input AwsEC2SendDiagnosticInterruptInput {
  InstanceId: String!
  DryRun: Boolean
}

type AwsEC2StartInstancesOutput {
  StartingInstances: [AwsEC2S1qc]
}

type AwsEC2S1qc {
  CurrentState: AwsEC2Sxd
  InstanceId: String
  PreviousState: AwsEC2Sxd
}

input AwsEC2StartInstancesInput {
  InstanceIds: [String]!
  AdditionalInfo: String
  DryRun: Boolean
}

type AwsEC2StartNetworkInsightsAnalysisOutput {
  NetworkInsightsAnalysis: AwsEC2S13j
}

input AwsEC2StartNetworkInsightsAnalysisInput {
  NetworkInsightsPathId: String!
  FilterInArns: [String]
  DryRun: Boolean
  TagSpecifications: [AwsEC2S1tInput]
  ClientToken: String!
}

type AwsEC2StartVpcEndpointServicePrivateDnsVerificationOutput {
  ReturnValue: Boolean
}

input AwsEC2StartVpcEndpointServicePrivateDnsVerificationInput {
  DryRun: Boolean
  ServiceId: String!
}

type AwsEC2StopInstancesOutput {
  StoppingInstances: [AwsEC2S1qc]
}

input AwsEC2StopInstancesInput {
  InstanceIds: [String]!
  Hibernate: Boolean
  DryRun: Boolean
  Force: Boolean
}

type AwsEC2TerminateClientVpnConnectionsOutput {
  ClientVpnEndpointId: String
  Username: String
  ConnectionStatuses: [AwsEC2TerminateClientVpnConnectionsOutputConnectionStatuses]
}

type AwsEC2TerminateClientVpnConnectionsOutputConnectionStatuses {
  ConnectionId: String
  PreviousStatus: AwsEC2Sql
  CurrentStatus: AwsEC2Sql
}

input AwsEC2TerminateClientVpnConnectionsInput {
  ClientVpnEndpointId: String!
  ConnectionId: String
  Username: String
  DryRun: Boolean
}

type AwsEC2TerminateInstancesOutput {
  TerminatingInstances: [AwsEC2S1qc]
}

input AwsEC2TerminateInstancesInput {
  InstanceIds: [String]!
  DryRun: Boolean
}

type AwsEC2UnassignIpv6AddressesOutput {
  NetworkInterfaceId: String
  UnassignedIpv6Addresses: [String]
}

input AwsEC2UnassignIpv6AddressesInput {
  NetworkInterfaceId: String!
  Ipv6Addresses: [String]!
}

input AwsEC2UnassignPrivateIpAddressesInput {
  NetworkInterfaceId: String!
  PrivateIpAddresses: [String]!
}

type AwsEC2UnmonitorInstancesOutput {
  InstanceMonitorings: [AwsEC2S1ml]
}

input AwsEC2UnmonitorInstancesInput {
  InstanceIds: [String]!
  DryRun: Boolean
}

type AwsEC2UpdateSecurityGroupRuleDescriptionsEgressOutput {
  Return: Boolean
}

input AwsEC2UpdateSecurityGroupRuleDescriptionsEgressInput {
  DryRun: Boolean
  GroupId: String
  GroupName: String
  IpPermissions: [AwsEC2S4iInput]!
}

type AwsEC2UpdateSecurityGroupRuleDescriptionsIngressOutput {
  Return: Boolean
}

input AwsEC2UpdateSecurityGroupRuleDescriptionsIngressInput {
  DryRun: Boolean
  GroupId: String
  GroupName: String
  IpPermissions: [AwsEC2S4iInput]!
}

type AwsEC2WithdrawByoipCidrOutput {
  ByoipCidr: AwsEC2S1n
}

input AwsEC2WithdrawByoipCidrInput {
  Cidr: String!
  DryRun: Boolean
}

"""AWS EC2 Instance Connect (2018-04-02)"""
type AwsEC2InstanceConnect {
  sendSSHPublicKey(input: AwsEC2InstanceConnectSendSSHPublicKeyInput!, config: AwsConfig): AwsEC2InstanceConnectSendSSHPublicKeyOutput
  sendSerialConsoleSSHPublicKey(input: AwsEC2InstanceConnectSendSerialConsoleSSHPublicKeyInput!, config: AwsConfig): AwsEC2InstanceConnectSendSerialConsoleSSHPublicKeyOutput
}

type AwsEC2InstanceConnectSendSSHPublicKeyOutput {
  RequestId: String
  Success: Boolean
}

input AwsEC2InstanceConnectSendSSHPublicKeyInput {
  InstanceId: String!
  InstanceOSUser: String!
  SSHPublicKey: String!
  AvailabilityZone: String!
}

type AwsEC2InstanceConnectSendSerialConsoleSSHPublicKeyOutput {
  RequestId: String
  Success: Boolean
}

input AwsEC2InstanceConnectSendSerialConsoleSSHPublicKeyInput {
  InstanceId: String!
  SerialPort: Int
  SSHPublicKey: String!
}

"""Amazon EC2 Container Registry (2015-09-21)"""
type AwsECR {
  batchCheckLayerAvailability(input: AwsECRBatchCheckLayerAvailabilityInput!, config: AwsConfig): AwsECRBatchCheckLayerAvailabilityOutput
  batchDeleteImage(input: AwsECRBatchDeleteImageInput!, config: AwsConfig): AwsECRBatchDeleteImageOutput
  batchGetImage(input: AwsECRBatchGetImageInput!, config: AwsConfig): AwsECRBatchGetImageOutput
  completeLayerUpload(input: AwsECRCompleteLayerUploadInput!, config: AwsConfig): AwsECRCompleteLayerUploadOutput
  createRepository(input: AwsECRCreateRepositoryInput!, config: AwsConfig): AwsECRCreateRepositoryOutput
  deleteLifecyclePolicy(input: AwsECRDeleteLifecyclePolicyInput!, config: AwsConfig): AwsECRDeleteLifecyclePolicyOutput
  deleteRegistryPolicy(input: JSON, config: AwsConfig): AwsECRDeleteRegistryPolicyOutput
  deleteRepository(input: AwsECRDeleteRepositoryInput!, config: AwsConfig): AwsECRDeleteRepositoryOutput
  deleteRepositoryPolicy(input: AwsECRDeleteRepositoryPolicyInput!, config: AwsConfig): AwsECRDeleteRepositoryPolicyOutput
  describeImageScanFindings(input: AwsECRDescribeImageScanFindingsInput!, config: AwsConfig): AwsECRDescribeImageScanFindingsOutput
  describeImages(input: AwsECRDescribeImagesInput!, config: AwsConfig): AwsECRDescribeImagesOutput
  describeRegistry(input: JSON, config: AwsConfig): AwsECRDescribeRegistryOutput
  describeRepositories(input: AwsECRDescribeRepositoriesInput, config: AwsConfig): AwsECRDescribeRepositoriesOutput
  getAuthorizationToken(input: AwsECRGetAuthorizationTokenInput, config: AwsConfig): AwsECRGetAuthorizationTokenOutput
  getDownloadUrlForLayer(input: AwsECRGetDownloadUrlForLayerInput!, config: AwsConfig): AwsECRGetDownloadUrlForLayerOutput
  getLifecyclePolicy(input: AwsECRGetLifecyclePolicyInput!, config: AwsConfig): AwsECRGetLifecyclePolicyOutput
  getLifecyclePolicyPreview(input: AwsECRGetLifecyclePolicyPreviewInput!, config: AwsConfig): AwsECRGetLifecyclePolicyPreviewOutput
  getRegistryPolicy(input: JSON, config: AwsConfig): AwsECRGetRegistryPolicyOutput
  getRepositoryPolicy(input: AwsECRGetRepositoryPolicyInput!, config: AwsConfig): AwsECRGetRepositoryPolicyOutput
  initiateLayerUpload(input: AwsECRInitiateLayerUploadInput!, config: AwsConfig): AwsECRInitiateLayerUploadOutput
  listImages(input: AwsECRListImagesInput!, config: AwsConfig): AwsECRListImagesOutput
  listTagsForResource(input: AwsECRListTagsForResourceInput!, config: AwsConfig): AwsECRListTagsForResourceOutput
  putImage(input: AwsECRPutImageInput!, config: AwsConfig): AwsECRPutImageOutput
  putImageScanningConfiguration(input: AwsECRPutImageScanningConfigurationInput!, config: AwsConfig): AwsECRPutImageScanningConfigurationOutput
  putImageTagMutability(input: AwsECRPutImageTagMutabilityInput!, config: AwsConfig): AwsECRPutImageTagMutabilityOutput
  putLifecyclePolicy(input: AwsECRPutLifecyclePolicyInput!, config: AwsConfig): AwsECRPutLifecyclePolicyOutput
  putRegistryPolicy(input: AwsECRPutRegistryPolicyInput!, config: AwsConfig): AwsECRPutRegistryPolicyOutput
  putReplicationConfiguration(input: AwsECRPutReplicationConfigurationInput!, config: AwsConfig): AwsECRPutReplicationConfigurationOutput
  setRepositoryPolicy(input: AwsECRSetRepositoryPolicyInput!, config: AwsConfig): AwsECRSetRepositoryPolicyOutput
  startImageScan(input: AwsECRStartImageScanInput!, config: AwsConfig): AwsECRStartImageScanOutput
  startLifecyclePolicyPreview(input: AwsECRStartLifecyclePolicyPreviewInput!, config: AwsConfig): AwsECRStartLifecyclePolicyPreviewOutput
  tagResource(input: AwsECRTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsECRUntagResourceInput!, config: AwsConfig): JSON
  uploadLayerPart(input: AwsECRUploadLayerPartInput!, config: AwsConfig): AwsECRUploadLayerPartOutput
}

type AwsECRBatchCheckLayerAvailabilityOutput {
  layers: [AwsECRBatchCheckLayerAvailabilityOutputLayers]
  failures: [AwsECRBatchCheckLayerAvailabilityOutputFailures]
}

type AwsECRBatchCheckLayerAvailabilityOutputLayers {
  layerDigest: String
  layerAvailability: String
  layerSize: JSON
  mediaType: String
}

type AwsECRBatchCheckLayerAvailabilityOutputFailures {
  layerDigest: String
  failureCode: String
  failureReason: String
}

input AwsECRBatchCheckLayerAvailabilityInput {
  registryId: String
  repositoryName: String!
  layerDigests: [String]!
}

type AwsECRBatchDeleteImageOutput {
  imageIds: [AwsECRSj]
  failures: [AwsECRSn]
}

type AwsECRSj {
  imageDigest: String
  imageTag: String
}

type AwsECRSn {
  imageId: AwsECRSj
  failureCode: String
  failureReason: String
}

input AwsECRBatchDeleteImageInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRSjInput]!
}

input AwsECRSjInput {
  imageDigest: String
  imageTag: String
}

type AwsECRBatchGetImageOutput {
  images: [AwsECRSv]
  failures: [AwsECRSn]
}

type AwsECRSv {
  registryId: String
  repositoryName: String
  imageId: AwsECRSj
  imageManifest: String
  imageManifestMediaType: String
}

input AwsECRBatchGetImageInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRSjInput]!
  acceptedMediaTypes: [String]
}

type AwsECRCompleteLayerUploadOutput {
  registryId: String
  repositoryName: String
  uploadId: String
  layerDigest: String
}

input AwsECRCompleteLayerUploadInput {
  registryId: String
  repositoryName: String!
  uploadId: String!
  layerDigests: [String]!
}

type AwsECRCreateRepositoryOutput {
  repository: AwsECRS1d
}

type AwsECRS1d {
  repositoryArn: String
  registryId: String
  repositoryName: String
  repositoryUri: String
  createdAt: Date
  imageTagMutability: String
  imageScanningConfiguration: AwsECRS17
  encryptionConfiguration: AwsECRS19
}

type AwsECRS17 {
  scanOnPush: Boolean
}

type AwsECRS19 {
  encryptionType: String!
  kmsKey: String
}

input AwsECRCreateRepositoryInput {
  repositoryName: String!
  tags: [AwsECRS12Input]
  imageTagMutability: String
  imageScanningConfiguration: AwsECRS17Input
  encryptionConfiguration: AwsECRS19Input
}

input AwsECRS12Input {
  Key: String
  Value: String
}

input AwsECRS17Input {
  scanOnPush: Boolean
}

input AwsECRS19Input {
  encryptionType: String!
  kmsKey: String
}

type AwsECRDeleteLifecyclePolicyOutput {
  registryId: String
  repositoryName: String
  lifecyclePolicyText: String
  lastEvaluatedAt: Date
}

input AwsECRDeleteLifecyclePolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRDeleteRegistryPolicyOutput {
  registryId: String
  policyText: String
}

type AwsECRDeleteRepositoryOutput {
  repository: AwsECRS1d
}

input AwsECRDeleteRepositoryInput {
  registryId: String
  repositoryName: String!
  force: Boolean
}

type AwsECRDeleteRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRDeleteRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRDescribeImageScanFindingsOutput {
  registryId: String
  repositoryName: String
  imageId: AwsECRSj
  imageScanStatus: AwsECRS1y
  imageScanFindings: AwsECRDescribeImageScanFindingsOutputImageScanFindings
  nextToken: String
}

type AwsECRS1y {
  status: String
  description: String
}

type AwsECRDescribeImageScanFindingsOutputImageScanFindings {
  imageScanCompletedAt: Date
  vulnerabilitySourceUpdatedAt: Date
  findings: [AwsECRDescribeImageScanFindingsOutputImageScanFindingsFindings]
  findingSeverityCounts: JSON
}

type AwsECRDescribeImageScanFindingsOutputImageScanFindingsFindings {
  name: String
  description: String
  uri: String
  severity: String
  attributes: [AwsECRDescribeImageScanFindingsOutputImageScanFindingsFindingsAttributes]
}

type AwsECRDescribeImageScanFindingsOutputImageScanFindingsFindingsAttributes {
  key: String!
  value: String
}

input AwsECRDescribeImageScanFindingsInput {
  registryId: String
  repositoryName: String!
  imageId: AwsECRSjInput!
  nextToken: String
  maxResults: Int
}

type AwsECRDescribeImagesOutput {
  imageDetails: [AwsECRDescribeImagesOutputImageDetails]
  nextToken: String
}

type AwsECRDescribeImagesOutputImageDetails {
  registryId: String
  repositoryName: String
  imageDigest: String
  imageTags: [String]
  imageSizeInBytes: JSON
  imagePushedAt: Date
  imageScanStatus: AwsECRS1y
  imageScanFindingsSummary: AwsECRDescribeImagesOutputImageDetailsImageScanFindingsSummary
  imageManifestMediaType: String
  artifactMediaType: String
}

type AwsECRDescribeImagesOutputImageDetailsImageScanFindingsSummary {
  imageScanCompletedAt: Date
  vulnerabilitySourceUpdatedAt: Date
  findingSeverityCounts: JSON
}

input AwsECRDescribeImagesInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRSjInput]
  nextToken: String
  maxResults: Int
  filter: AwsECRDescribeImagesFilterInput
}

input AwsECRDescribeImagesFilterInput {
  tagStatus: String
}

type AwsECRDescribeRegistryOutput {
  registryId: String
  replicationConfiguration: AwsECRS2r
}

type AwsECRS2r {
  rules: [AwsECRS2rRules]!
}

type AwsECRS2rRules {
  destinations: [AwsECRS2rRulesDestinations]!
}

type AwsECRS2rRulesDestinations {
  region: String!
  registryId: String!
}

type AwsECRDescribeRepositoriesOutput {
  repositories: [AwsECRS1d]
  nextToken: String
}

input AwsECRDescribeRepositoriesInput {
  registryId: String
  repositoryNames: [String]
  nextToken: String
  maxResults: Int
}

type AwsECRGetAuthorizationTokenOutput {
  authorizationData: [AwsECRGetAuthorizationTokenOutputAuthorizationData]
}

type AwsECRGetAuthorizationTokenOutputAuthorizationData {
  authorizationToken: String
  expiresAt: Date
  proxyEndpoint: String
}

input AwsECRGetAuthorizationTokenInput {
  registryIds: [String]
}

type AwsECRGetDownloadUrlForLayerOutput {
  downloadUrl: String
  layerDigest: String
}

input AwsECRGetDownloadUrlForLayerInput {
  registryId: String
  repositoryName: String!
  layerDigest: String!
}

type AwsECRGetLifecyclePolicyOutput {
  registryId: String
  repositoryName: String
  lifecyclePolicyText: String
  lastEvaluatedAt: Date
}

input AwsECRGetLifecyclePolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRGetLifecyclePolicyPreviewOutput {
  registryId: String
  repositoryName: String
  lifecyclePolicyText: String
  status: String
  nextToken: String
  previewResults: [AwsECRGetLifecyclePolicyPreviewOutputPreviewResults]
  summary: AwsECRGetLifecyclePolicyPreviewOutputSummary
}

type AwsECRGetLifecyclePolicyPreviewOutputPreviewResults {
  imageTags: [String]
  imageDigest: String
  imagePushedAt: Date
  action: AwsECRGetLifecyclePolicyPreviewOutputPreviewResultsAction
  appliedRulePriority: Int
}

type AwsECRGetLifecyclePolicyPreviewOutputPreviewResultsAction {
  type: String
}

type AwsECRGetLifecyclePolicyPreviewOutputSummary {
  expiringImageTotalCount: Int
}

input AwsECRGetLifecyclePolicyPreviewInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRSjInput]
  nextToken: String
  maxResults: Int
  filter: AwsECRGetLifecyclePolicyPreviewFilterInput
}

input AwsECRGetLifecyclePolicyPreviewFilterInput {
  tagStatus: String
}

type AwsECRGetRegistryPolicyOutput {
  registryId: String
  policyText: String
}

type AwsECRGetRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRGetRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRInitiateLayerUploadOutput {
  uploadId: String
  partSize: JSON
}

input AwsECRInitiateLayerUploadInput {
  registryId: String
  repositoryName: String!
}

type AwsECRListImagesOutput {
  imageIds: [AwsECRSj]
  nextToken: String
}

input AwsECRListImagesInput {
  registryId: String
  repositoryName: String!
  nextToken: String
  maxResults: Int
  filter: AwsECRListImagesFilterInput
}

input AwsECRListImagesFilterInput {
  tagStatus: String
}

type AwsECRListTagsForResourceOutput {
  tags: [AwsECRS12]
}

type AwsECRS12 {
  Key: String
  Value: String
}

input AwsECRListTagsForResourceInput {
  resourceArn: String!
}

type AwsECRPutImageOutput {
  image: AwsECRSv
}

input AwsECRPutImageInput {
  registryId: String
  repositoryName: String!
  imageManifest: String!
  imageManifestMediaType: String
  imageTag: String
  imageDigest: String
}

type AwsECRPutImageScanningConfigurationOutput {
  registryId: String
  repositoryName: String
  imageScanningConfiguration: AwsECRS17
}

input AwsECRPutImageScanningConfigurationInput {
  registryId: String
  repositoryName: String!
  imageScanningConfiguration: AwsECRS17Input!
}

type AwsECRPutImageTagMutabilityOutput {
  registryId: String
  repositoryName: String
  imageTagMutability: String
}

input AwsECRPutImageTagMutabilityInput {
  registryId: String
  repositoryName: String!
  imageTagMutability: String!
}

type AwsECRPutLifecyclePolicyOutput {
  registryId: String
  repositoryName: String
  lifecyclePolicyText: String
}

input AwsECRPutLifecyclePolicyInput {
  registryId: String
  repositoryName: String!
  lifecyclePolicyText: String!
}

type AwsECRPutRegistryPolicyOutput {
  registryId: String
  policyText: String
}

input AwsECRPutRegistryPolicyInput {
  policyText: String!
}

type AwsECRPutReplicationConfigurationOutput {
  replicationConfiguration: AwsECRS2r
}

input AwsECRPutReplicationConfigurationInput {
  replicationConfiguration: AwsECRS2rInput!
}

input AwsECRS2rInput {
  rules: [AwsECRS2rRulesInput]!
}

input AwsECRS2rRulesInput {
  destinations: [AwsECRS2rRulesDestinationsInput]!
}

input AwsECRS2rRulesDestinationsInput {
  region: String!
  registryId: String!
}

type AwsECRSetRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRSetRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
  policyText: String!
  force: Boolean
}

type AwsECRStartImageScanOutput {
  registryId: String
  repositoryName: String
  imageId: AwsECRSj
  imageScanStatus: AwsECRS1y
}

input AwsECRStartImageScanInput {
  registryId: String
  repositoryName: String!
  imageId: AwsECRSjInput!
}

type AwsECRStartLifecyclePolicyPreviewOutput {
  registryId: String
  repositoryName: String
  lifecyclePolicyText: String
  status: String
}

input AwsECRStartLifecyclePolicyPreviewInput {
  registryId: String
  repositoryName: String!
  lifecyclePolicyText: String
}

input AwsECRTagResourceInput {
  resourceArn: String!
  tags: [AwsECRS12Input]!
}

input AwsECRUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsECRUploadLayerPartOutput {
  registryId: String
  repositoryName: String
  uploadId: String
  lastByteReceived: JSON
}

input AwsECRUploadLayerPartInput {
  registryId: String
  repositoryName: String!
  uploadId: String!
  partFirstByte: JSON!
  partLastByte: JSON!
  layerPartBlob: JSON!
}

"""Amazon Elastic Container Registry Public (2020-10-30)"""
type AwsECRPUBLIC {
  batchCheckLayerAvailability(input: AwsECRPUBLICBatchCheckLayerAvailabilityInput!, config: AwsConfig): AwsECRPUBLICBatchCheckLayerAvailabilityOutput
  batchDeleteImage(input: AwsECRPUBLICBatchDeleteImageInput!, config: AwsConfig): AwsECRPUBLICBatchDeleteImageOutput
  completeLayerUpload(input: AwsECRPUBLICCompleteLayerUploadInput!, config: AwsConfig): AwsECRPUBLICCompleteLayerUploadOutput
  createRepository(input: AwsECRPUBLICCreateRepositoryInput!, config: AwsConfig): AwsECRPUBLICCreateRepositoryOutput
  deleteRepository(input: AwsECRPUBLICDeleteRepositoryInput!, config: AwsConfig): AwsECRPUBLICDeleteRepositoryOutput
  deleteRepositoryPolicy(input: AwsECRPUBLICDeleteRepositoryPolicyInput!, config: AwsConfig): AwsECRPUBLICDeleteRepositoryPolicyOutput
  describeImageTags(input: AwsECRPUBLICDescribeImageTagsInput!, config: AwsConfig): AwsECRPUBLICDescribeImageTagsOutput
  describeImages(input: AwsECRPUBLICDescribeImagesInput!, config: AwsConfig): AwsECRPUBLICDescribeImagesOutput
  describeRegistries(input: AwsECRPUBLICDescribeRegistriesInput, config: AwsConfig): AwsECRPUBLICDescribeRegistriesOutput
  describeRepositories(input: AwsECRPUBLICDescribeRepositoriesInput, config: AwsConfig): AwsECRPUBLICDescribeRepositoriesOutput
  getAuthorizationToken(input: JSON, config: AwsConfig): AwsECRPUBLICGetAuthorizationTokenOutput
  getRegistryCatalogData(input: JSON, config: AwsConfig): AwsECRPUBLICGetRegistryCatalogDataOutput
  getRepositoryCatalogData(input: AwsECRPUBLICGetRepositoryCatalogDataInput!, config: AwsConfig): AwsECRPUBLICGetRepositoryCatalogDataOutput
  getRepositoryPolicy(input: AwsECRPUBLICGetRepositoryPolicyInput!, config: AwsConfig): AwsECRPUBLICGetRepositoryPolicyOutput
  initiateLayerUpload(input: AwsECRPUBLICInitiateLayerUploadInput!, config: AwsConfig): AwsECRPUBLICInitiateLayerUploadOutput
  listTagsForResource(input: AwsECRPUBLICListTagsForResourceInput!, config: AwsConfig): AwsECRPUBLICListTagsForResourceOutput
  putImage(input: AwsECRPUBLICPutImageInput!, config: AwsConfig): AwsECRPUBLICPutImageOutput
  putRegistryCatalogData(input: AwsECRPUBLICPutRegistryCatalogDataInput, config: AwsConfig): AwsECRPUBLICPutRegistryCatalogDataOutput
  putRepositoryCatalogData(input: AwsECRPUBLICPutRepositoryCatalogDataInput!, config: AwsConfig): AwsECRPUBLICPutRepositoryCatalogDataOutput
  setRepositoryPolicy(input: AwsECRPUBLICSetRepositoryPolicyInput!, config: AwsConfig): AwsECRPUBLICSetRepositoryPolicyOutput
  tagResource(input: AwsECRPUBLICTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsECRPUBLICUntagResourceInput!, config: AwsConfig): JSON
  uploadLayerPart(input: AwsECRPUBLICUploadLayerPartInput!, config: AwsConfig): AwsECRPUBLICUploadLayerPartOutput
}

type AwsECRPUBLICBatchCheckLayerAvailabilityOutput {
  layers: [AwsECRPUBLICBatchCheckLayerAvailabilityOutputLayers]
  failures: [AwsECRPUBLICBatchCheckLayerAvailabilityOutputFailures]
}

type AwsECRPUBLICBatchCheckLayerAvailabilityOutputLayers {
  layerDigest: String
  layerAvailability: String
  layerSize: JSON
  mediaType: String
}

type AwsECRPUBLICBatchCheckLayerAvailabilityOutputFailures {
  layerDigest: String
  failureCode: String
  failureReason: String
}

input AwsECRPUBLICBatchCheckLayerAvailabilityInput {
  registryId: String
  repositoryName: String!
  layerDigests: [String]!
}

type AwsECRPUBLICBatchDeleteImageOutput {
  imageIds: [AwsECRPUBLICSk]
  failures: [AwsECRPUBLICBatchDeleteImageOutputFailures]
}

type AwsECRPUBLICSk {
  imageDigest: String
  imageTag: String
}

type AwsECRPUBLICBatchDeleteImageOutputFailures {
  imageId: AwsECRPUBLICSk
  failureCode: String
  failureReason: String
}

input AwsECRPUBLICBatchDeleteImageInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRPUBLICSkInput]!
}

input AwsECRPUBLICSkInput {
  imageDigest: String
  imageTag: String
}

type AwsECRPUBLICCompleteLayerUploadOutput {
  registryId: String
  repositoryName: String
  uploadId: String
  layerDigest: String
}

input AwsECRPUBLICCompleteLayerUploadInput {
  registryId: String
  repositoryName: String!
  uploadId: String!
  layerDigests: [String]!
}

type AwsECRPUBLICCreateRepositoryOutput {
  repository: AwsECRPUBLICS1b
  catalogData: AwsECRPUBLICS1f
}

type AwsECRPUBLICS1b {
  repositoryArn: String
  registryId: String
  repositoryName: String
  repositoryUri: String
  createdAt: Date
}

type AwsECRPUBLICS1f {
  description: String
  architectures: [String]
  operatingSystems: [String]
  logoUrl: String
  aboutText: String
  usageText: String
  marketplaceCertified: Boolean
}

input AwsECRPUBLICCreateRepositoryInput {
  repositoryName: String!
  catalogData: AwsECRPUBLICSxInput
  tags: [AwsECRPUBLICS16Input]
}

input AwsECRPUBLICSxInput {
  description: String
  architectures: [String]
  operatingSystems: [String]
  logoImageBlob: JSON
  aboutText: String
  usageText: String
}

input AwsECRPUBLICS16Input {
  Key: String
  Value: String
}

type AwsECRPUBLICDeleteRepositoryOutput {
  repository: AwsECRPUBLICS1b
}

input AwsECRPUBLICDeleteRepositoryInput {
  registryId: String
  repositoryName: String!
  force: Boolean
}

type AwsECRPUBLICDeleteRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRPUBLICDeleteRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRPUBLICDescribeImageTagsOutput {
  imageTagDetails: [AwsECRPUBLICDescribeImageTagsOutputImageTagDetails]
  nextToken: String
}

type AwsECRPUBLICDescribeImageTagsOutputImageTagDetails {
  imageTag: String
  createdAt: Date
  imageDetail: AwsECRPUBLICDescribeImageTagsOutputImageTagDetailsImageDetail
}

type AwsECRPUBLICDescribeImageTagsOutputImageTagDetailsImageDetail {
  imageDigest: String
  imageSizeInBytes: JSON
  imagePushedAt: Date
  imageManifestMediaType: String
  artifactMediaType: String
}

input AwsECRPUBLICDescribeImageTagsInput {
  registryId: String
  repositoryName: String!
  nextToken: String
  maxResults: Int
}

type AwsECRPUBLICDescribeImagesOutput {
  imageDetails: [AwsECRPUBLICDescribeImagesOutputImageDetails]
  nextToken: String
}

type AwsECRPUBLICDescribeImagesOutputImageDetails {
  registryId: String
  repositoryName: String
  imageDigest: String
  imageTags: [String]
  imageSizeInBytes: JSON
  imagePushedAt: Date
  imageManifestMediaType: String
  artifactMediaType: String
}

input AwsECRPUBLICDescribeImagesInput {
  registryId: String
  repositoryName: String!
  imageIds: [AwsECRPUBLICSkInput]
  nextToken: String
  maxResults: Int
}

type AwsECRPUBLICDescribeRegistriesOutput {
  registries: [AwsECRPUBLICDescribeRegistriesOutputRegistries]!
  nextToken: String
}

type AwsECRPUBLICDescribeRegistriesOutputRegistries {
  registryId: String!
  registryArn: String!
  registryUri: String!
  verified: Boolean!
  aliases: [AwsECRPUBLICDescribeRegistriesOutputRegistriesAliases]!
}

type AwsECRPUBLICDescribeRegistriesOutputRegistriesAliases {
  name: String!
  status: String!
  primaryRegistryAlias: Boolean!
  defaultRegistryAlias: Boolean!
}

input AwsECRPUBLICDescribeRegistriesInput {
  nextToken: String
  maxResults: Int
}

type AwsECRPUBLICDescribeRepositoriesOutput {
  repositories: [AwsECRPUBLICS1b]
  nextToken: String
}

input AwsECRPUBLICDescribeRepositoriesInput {
  registryId: String
  repositoryNames: [String]
  nextToken: String
  maxResults: Int
}

type AwsECRPUBLICGetAuthorizationTokenOutput {
  authorizationData: AwsECRPUBLICGetAuthorizationTokenOutputAuthorizationData
}

type AwsECRPUBLICGetAuthorizationTokenOutputAuthorizationData {
  authorizationToken: String
  expiresAt: Date
}

type AwsECRPUBLICGetRegistryCatalogDataOutput {
  registryCatalogData: AwsECRPUBLICS2o!
}

type AwsECRPUBLICS2o {
  displayName: String
}

type AwsECRPUBLICGetRepositoryCatalogDataOutput {
  catalogData: AwsECRPUBLICS1f
}

input AwsECRPUBLICGetRepositoryCatalogDataInput {
  registryId: String
  repositoryName: String!
}

type AwsECRPUBLICGetRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRPUBLICGetRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
}

type AwsECRPUBLICInitiateLayerUploadOutput {
  uploadId: String
  partSize: JSON
}

input AwsECRPUBLICInitiateLayerUploadInput {
  registryId: String
  repositoryName: String!
}

type AwsECRPUBLICListTagsForResourceOutput {
  tags: [AwsECRPUBLICS16]
}

type AwsECRPUBLICS16 {
  Key: String
  Value: String
}

input AwsECRPUBLICListTagsForResourceInput {
  resourceArn: String!
}

type AwsECRPUBLICPutImageOutput {
  image: AwsECRPUBLICPutImageOutputImage
}

type AwsECRPUBLICPutImageOutputImage {
  registryId: String
  repositoryName: String
  imageId: AwsECRPUBLICSk
  imageManifest: String
  imageManifestMediaType: String
}

input AwsECRPUBLICPutImageInput {
  registryId: String
  repositoryName: String!
  imageManifest: String!
  imageManifestMediaType: String
  imageTag: String
  imageDigest: String
}

type AwsECRPUBLICPutRegistryCatalogDataOutput {
  registryCatalogData: AwsECRPUBLICS2o!
}

input AwsECRPUBLICPutRegistryCatalogDataInput {
  displayName: String
}

type AwsECRPUBLICPutRepositoryCatalogDataOutput {
  catalogData: AwsECRPUBLICS1f
}

input AwsECRPUBLICPutRepositoryCatalogDataInput {
  registryId: String
  repositoryName: String!
  catalogData: AwsECRPUBLICSxInput!
}

type AwsECRPUBLICSetRepositoryPolicyOutput {
  registryId: String
  repositoryName: String
  policyText: String
}

input AwsECRPUBLICSetRepositoryPolicyInput {
  registryId: String
  repositoryName: String!
  policyText: String!
  force: Boolean
}

input AwsECRPUBLICTagResourceInput {
  resourceArn: String!
  tags: [AwsECRPUBLICS16Input]!
}

input AwsECRPUBLICUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsECRPUBLICUploadLayerPartOutput {
  registryId: String
  repositoryName: String
  uploadId: String
  lastByteReceived: JSON
}

input AwsECRPUBLICUploadLayerPartInput {
  registryId: String
  repositoryName: String!
  uploadId: String!
  partFirstByte: JSON!
  partLastByte: JSON!
  layerPartBlob: JSON!
}

"""Amazon EC2 Container Service (2014-11-13)"""
type AwsECS {
  createCapacityProvider(input: AwsECSCreateCapacityProviderInput!, config: AwsConfig): AwsECSCreateCapacityProviderOutput
  createCluster(input: AwsECSCreateClusterInput, config: AwsConfig): AwsECSCreateClusterOutput
  createService(input: AwsECSCreateServiceInput!, config: AwsConfig): AwsECSCreateServiceOutput
  createTaskSet(input: AwsECSCreateTaskSetInput!, config: AwsConfig): AwsECSCreateTaskSetOutput
  deleteAccountSetting(input: AwsECSDeleteAccountSettingInput!, config: AwsConfig): AwsECSDeleteAccountSettingOutput
  deleteAttributes(input: AwsECSDeleteAttributesInput!, config: AwsConfig): AwsECSDeleteAttributesOutput
  deleteCapacityProvider(input: AwsECSDeleteCapacityProviderInput!, config: AwsConfig): AwsECSDeleteCapacityProviderOutput
  deleteCluster(input: AwsECSDeleteClusterInput!, config: AwsConfig): AwsECSDeleteClusterOutput
  deleteService(input: AwsECSDeleteServiceInput!, config: AwsConfig): AwsECSDeleteServiceOutput
  deleteTaskSet(input: AwsECSDeleteTaskSetInput!, config: AwsConfig): AwsECSDeleteTaskSetOutput
  deregisterContainerInstance(input: AwsECSDeregisterContainerInstanceInput!, config: AwsConfig): AwsECSDeregisterContainerInstanceOutput
  deregisterTaskDefinition(input: AwsECSDeregisterTaskDefinitionInput!, config: AwsConfig): AwsECSDeregisterTaskDefinitionOutput
  describeCapacityProviders(input: AwsECSDescribeCapacityProvidersInput, config: AwsConfig): AwsECSDescribeCapacityProvidersOutput
  describeClusters(input: AwsECSDescribeClustersInput, config: AwsConfig): AwsECSDescribeClustersOutput
  describeContainerInstances(input: AwsECSDescribeContainerInstancesInput!, config: AwsConfig): AwsECSDescribeContainerInstancesOutput
  describeServices(input: AwsECSDescribeServicesInput!, config: AwsConfig): AwsECSDescribeServicesOutput
  describeTaskDefinition(input: AwsECSDescribeTaskDefinitionInput!, config: AwsConfig): AwsECSDescribeTaskDefinitionOutput
  describeTaskSets(input: AwsECSDescribeTaskSetsInput!, config: AwsConfig): AwsECSDescribeTaskSetsOutput
  describeTasks(input: AwsECSDescribeTasksInput!, config: AwsConfig): AwsECSDescribeTasksOutput
  discoverPollEndpoint(input: AwsECSDiscoverPollEndpointInput, config: AwsConfig): AwsECSDiscoverPollEndpointOutput
  executeCommand(input: AwsECSExecuteCommandInput!, config: AwsConfig): AwsECSExecuteCommandOutput
  listAccountSettings(input: AwsECSListAccountSettingsInput, config: AwsConfig): AwsECSListAccountSettingsOutput
  listAttributes(input: AwsECSListAttributesInput!, config: AwsConfig): AwsECSListAttributesOutput
  listClusters(input: AwsECSListClustersInput, config: AwsConfig): AwsECSListClustersOutput
  listContainerInstances(input: AwsECSListContainerInstancesInput, config: AwsConfig): AwsECSListContainerInstancesOutput
  listServices(input: AwsECSListServicesInput, config: AwsConfig): AwsECSListServicesOutput
  listTagsForResource(input: AwsECSListTagsForResourceInput!, config: AwsConfig): AwsECSListTagsForResourceOutput
  listTaskDefinitionFamilies(input: AwsECSListTaskDefinitionFamiliesInput, config: AwsConfig): AwsECSListTaskDefinitionFamiliesOutput
  listTaskDefinitions(input: AwsECSListTaskDefinitionsInput, config: AwsConfig): AwsECSListTaskDefinitionsOutput
  listTasks(input: AwsECSListTasksInput, config: AwsConfig): AwsECSListTasksOutput
  putAccountSetting(input: AwsECSPutAccountSettingInput!, config: AwsConfig): AwsECSPutAccountSettingOutput
  putAccountSettingDefault(input: AwsECSPutAccountSettingDefaultInput!, config: AwsConfig): AwsECSPutAccountSettingDefaultOutput
  putAttributes(input: AwsECSPutAttributesInput!, config: AwsConfig): AwsECSPutAttributesOutput
  putClusterCapacityProviders(input: AwsECSPutClusterCapacityProvidersInput!, config: AwsConfig): AwsECSPutClusterCapacityProvidersOutput
  registerContainerInstance(input: AwsECSRegisterContainerInstanceInput, config: AwsConfig): AwsECSRegisterContainerInstanceOutput
  registerTaskDefinition(input: AwsECSRegisterTaskDefinitionInput!, config: AwsConfig): AwsECSRegisterTaskDefinitionOutput
  runTask(input: AwsECSRunTaskInput!, config: AwsConfig): AwsECSRunTaskOutput
  startTask(input: AwsECSStartTaskInput!, config: AwsConfig): AwsECSStartTaskOutput
  stopTask(input: AwsECSStopTaskInput!, config: AwsConfig): AwsECSStopTaskOutput
  submitAttachmentStateChanges(input: AwsECSSubmitAttachmentStateChangesInput!, config: AwsConfig): AwsECSSubmitAttachmentStateChangesOutput
  submitContainerStateChange(input: AwsECSSubmitContainerStateChangeInput, config: AwsConfig): AwsECSSubmitContainerStateChangeOutput
  submitTaskStateChange(input: AwsECSSubmitTaskStateChangeInput, config: AwsConfig): AwsECSSubmitTaskStateChangeOutput
  tagResource(input: AwsECSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsECSUntagResourceInput!, config: AwsConfig): JSON
  updateCapacityProvider(input: AwsECSUpdateCapacityProviderInput!, config: AwsConfig): AwsECSUpdateCapacityProviderOutput
  updateCluster(input: AwsECSUpdateClusterInput!, config: AwsConfig): AwsECSUpdateClusterOutput
  updateClusterSettings(input: AwsECSUpdateClusterSettingsInput!, config: AwsConfig): AwsECSUpdateClusterSettingsOutput
  updateContainerAgent(input: AwsECSUpdateContainerAgentInput!, config: AwsConfig): AwsECSUpdateContainerAgentOutput
  updateContainerInstancesState(input: AwsECSUpdateContainerInstancesStateInput!, config: AwsConfig): AwsECSUpdateContainerInstancesStateOutput
  updateService(input: AwsECSUpdateServiceInput!, config: AwsConfig): AwsECSUpdateServiceOutput
  updateServicePrimaryTaskSet(input: AwsECSUpdateServicePrimaryTaskSetInput!, config: AwsConfig): AwsECSUpdateServicePrimaryTaskSetOutput
  updateTaskSet(input: AwsECSUpdateTaskSetInput!, config: AwsConfig): AwsECSUpdateTaskSetOutput
}

type AwsECSCreateCapacityProviderOutput {
  capacityProvider: AwsECSSf
}

type AwsECSSf {
  capacityProviderArn: String
  name: String
  status: String
  autoScalingGroupProvider: AwsECSS3
  updateStatus: String
  updateStatusReason: String
  tags: [AwsECSSa]
}

type AwsECSS3 {
  autoScalingGroupArn: String!
  managedScaling: AwsECSS4
  managedTerminationProtection: String
}

type AwsECSS4 {
  status: String
  targetCapacity: Int
  minimumScalingStepSize: Int
  maximumScalingStepSize: Int
  instanceWarmupPeriod: Int
}

type AwsECSSa {
  key: String
  value: String
}

input AwsECSCreateCapacityProviderInput {
  name: String!
  autoScalingGroupProvider: AwsECSS3Input!
  tags: [AwsECSSaInput]
}

input AwsECSS3Input {
  autoScalingGroupArn: String!
  managedScaling: AwsECSS4Input
  managedTerminationProtection: String
}

input AwsECSS4Input {
  status: String
  targetCapacity: Int
  minimumScalingStepSize: Int
  maximumScalingStepSize: Int
  instanceWarmupPeriod: Int
}

input AwsECSSaInput {
  key: String
  value: String
}

type AwsECSCreateClusterOutput {
  cluster: AwsECSSx
}

type AwsECSSx {
  clusterArn: String
  clusterName: String
  configuration: AwsECSSm
  status: String
  registeredContainerInstancesCount: Int
  runningTasksCount: Int
  pendingTasksCount: Int
  activeServicesCount: Int
  statistics: [AwsECSS10]
  tags: [AwsECSSa]
  settings: [AwsECSSj]
  capacityProviders: [String]
  defaultCapacityProviderStrategy: [AwsECSSs]
  attachments: [AwsECSS11]
  attachmentsStatus: String
}

type AwsECSSm {
  executeCommandConfiguration: AwsECSSmExecuteCommandConfiguration
}

type AwsECSSmExecuteCommandConfiguration {
  kmsKeyId: String
  logging: String
  logConfiguration: AwsECSSmExecuteCommandConfigurationLogConfiguration
}

type AwsECSSmExecuteCommandConfigurationLogConfiguration {
  cloudWatchLogGroupName: String
  cloudWatchEncryptionEnabled: Boolean
  s3BucketName: String
  s3EncryptionEnabled: Boolean
  s3KeyPrefix: String
}

type AwsECSS10 {
  name: String
  value: String
}

type AwsECSSj {
  name: String
  value: String
}

type AwsECSSs {
  capacityProvider: String!
  weight: Int
  base: Int
}

type AwsECSS11 {
  id: String
  type: String
  status: String
  details: [AwsECSS10]
}

input AwsECSCreateClusterInput {
  clusterName: String
  tags: [AwsECSSaInput]
  settings: [AwsECSSjInput]
  configuration: AwsECSSmInput
  capacityProviders: [String]
  defaultCapacityProviderStrategy: [AwsECSSsInput]
}

input AwsECSSjInput {
  name: String
  value: String
}

input AwsECSSmInput {
  executeCommandConfiguration: AwsECSSmExecuteCommandConfigurationInput
}

input AwsECSSmExecuteCommandConfigurationInput {
  kmsKeyId: String
  logging: String
  logConfiguration: AwsECSSmExecuteCommandConfigurationLogConfigurationInput
}

input AwsECSSmExecuteCommandConfigurationLogConfigurationInput {
  cloudWatchLogGroupName: String
  cloudWatchEncryptionEnabled: Boolean
  s3BucketName: String
  s3EncryptionEnabled: Boolean
  s3KeyPrefix: String
}

input AwsECSSsInput {
  capacityProvider: String!
  weight: Int
  base: Int
}

type AwsECSCreateServiceOutput {
  service: AwsECSS1r
}

type AwsECSS1r {
  serviceArn: String
  serviceName: String
  clusterArn: String
  loadBalancers: [AwsECSS15]
  serviceRegistries: [AwsECSS18]
  status: String
  desiredCount: Int
  runningCount: Int
  pendingCount: Int
  launchType: String
  capacityProviderStrategy: [AwsECSSs]
  platformVersion: String
  taskDefinition: String
  deploymentConfiguration: AwsECSS1b
  taskSets: [AwsECSS1t]
  deployments: [AwsECSS1rDeployments]
  roleArn: String
  events: [AwsECSS1rEvents]
  createdAt: Date
  placementConstraints: [AwsECSS1d]
  placementStrategy: [AwsECSS1g]
  networkConfiguration: AwsECSS1j
  healthCheckGracePeriodSeconds: Int
  schedulingStrategy: String
  deploymentController: AwsECSS1n
  tags: [AwsECSSa]
  createdBy: String
  enableECSManagedTags: Boolean
  propagateTags: String
  enableExecuteCommand: Boolean
}

type AwsECSS15 {
  targetGroupArn: String
  loadBalancerName: String
  containerName: String
  containerPort: Int
}

type AwsECSS18 {
  registryArn: String
  port: Int
  containerName: String
  containerPort: Int
}

type AwsECSS1b {
  deploymentCircuitBreaker: AwsECSS1bDeploymentCircuitBreaker
  maximumPercent: Int
  minimumHealthyPercent: Int
}

type AwsECSS1bDeploymentCircuitBreaker {
  enable: Boolean!
  rollback: Boolean!
}

type AwsECSS1t {
  id: String
  taskSetArn: String
  serviceArn: String
  clusterArn: String
  startedBy: String
  externalId: String
  status: String
  taskDefinition: String
  computedDesiredCount: Int
  pendingCount: Int
  runningCount: Int
  createdAt: Date
  updatedAt: Date
  launchType: String
  capacityProviderStrategy: [AwsECSSs]
  platformVersion: String
  networkConfiguration: AwsECSS1j
  loadBalancers: [AwsECSS15]
  serviceRegistries: [AwsECSS18]
  scale: AwsECSS1v
  stabilityStatus: String
  stabilityStatusAt: Date
  tags: [AwsECSSa]
}

type AwsECSS1j {
  awsvpcConfiguration: AwsECSS1jAwsvpcConfiguration
}

type AwsECSS1jAwsvpcConfiguration {
  subnets: [String]!
  securityGroups: [String]
  assignPublicIp: String
}

type AwsECSS1v {
  value: JSON
  unit: String
}

type AwsECSS1rDeployments {
  id: String
  status: String
  taskDefinition: String
  desiredCount: Int
  pendingCount: Int
  runningCount: Int
  failedTasks: Int
  createdAt: Date
  updatedAt: Date
  capacityProviderStrategy: [AwsECSSs]
  launchType: String
  platformVersion: String
  networkConfiguration: AwsECSS1j
  rolloutState: String
  rolloutStateReason: String
}

type AwsECSS1rEvents {
  id: String
  createdAt: Date
  message: String
}

type AwsECSS1d {
  type: String
  expression: String
}

type AwsECSS1g {
  type: String
  field: String
}

type AwsECSS1n {
  type: String!
}

input AwsECSCreateServiceInput {
  cluster: String
  serviceName: String!
  taskDefinition: String
  loadBalancers: [AwsECSS15Input]
  serviceRegistries: [AwsECSS18Input]
  desiredCount: Int
  clientToken: String
  launchType: String
  capacityProviderStrategy: [AwsECSSsInput]
  platformVersion: String
  role: String
  deploymentConfiguration: AwsECSS1bInput
  placementConstraints: [AwsECSS1dInput]
  placementStrategy: [AwsECSS1gInput]
  networkConfiguration: AwsECSS1jInput
  healthCheckGracePeriodSeconds: Int
  schedulingStrategy: String
  deploymentController: AwsECSS1nInput
  tags: [AwsECSSaInput]
  enableECSManagedTags: Boolean
  propagateTags: String
  enableExecuteCommand: Boolean
}

input AwsECSS15Input {
  targetGroupArn: String
  loadBalancerName: String
  containerName: String
  containerPort: Int
}

input AwsECSS18Input {
  registryArn: String
  port: Int
  containerName: String
  containerPort: Int
}

input AwsECSS1bInput {
  deploymentCircuitBreaker: AwsECSS1bDeploymentCircuitBreakerInput
  maximumPercent: Int
  minimumHealthyPercent: Int
}

input AwsECSS1bDeploymentCircuitBreakerInput {
  enable: Boolean!
  rollback: Boolean!
}

input AwsECSS1dInput {
  type: String
  expression: String
}

input AwsECSS1gInput {
  type: String
  field: String
}

input AwsECSS1jInput {
  awsvpcConfiguration: AwsECSS1jAwsvpcConfigurationInput
}

input AwsECSS1jAwsvpcConfigurationInput {
  subnets: [String]!
  securityGroups: [String]
  assignPublicIp: String
}

input AwsECSS1nInput {
  type: String!
}

type AwsECSCreateTaskSetOutput {
  taskSet: AwsECSS1t
}

input AwsECSCreateTaskSetInput {
  service: String!
  cluster: String!
  externalId: String
  taskDefinition: String!
  networkConfiguration: AwsECSS1jInput
  loadBalancers: [AwsECSS15Input]
  serviceRegistries: [AwsECSS18Input]
  launchType: String
  capacityProviderStrategy: [AwsECSSsInput]
  platformVersion: String
  scale: AwsECSS1vInput
  clientToken: String
  tags: [AwsECSSaInput]
}

input AwsECSS1vInput {
  value: JSON
  unit: String
}

type AwsECSDeleteAccountSettingOutput {
  setting: AwsECSS29
}

type AwsECSS29 {
  name: String
  value: String
  principalArn: String
}

input AwsECSDeleteAccountSettingInput {
  name: String!
  principalArn: String
}

type AwsECSDeleteAttributesOutput {
  attributes: [AwsECSS2c]
}

type AwsECSS2c {
  name: String!
  value: String
  targetType: String
  targetId: String
}

input AwsECSDeleteAttributesInput {
  cluster: String
  attributes: [AwsECSS2cInput]!
}

input AwsECSS2cInput {
  name: String!
  value: String
  targetType: String
  targetId: String
}

type AwsECSDeleteCapacityProviderOutput {
  capacityProvider: AwsECSSf
}

input AwsECSDeleteCapacityProviderInput {
  capacityProvider: String!
}

type AwsECSDeleteClusterOutput {
  cluster: AwsECSSx
}

input AwsECSDeleteClusterInput {
  cluster: String!
}

type AwsECSDeleteServiceOutput {
  service: AwsECSS1r
}

input AwsECSDeleteServiceInput {
  cluster: String
  service: String!
  force: Boolean
}

type AwsECSDeleteTaskSetOutput {
  taskSet: AwsECSS1t
}

input AwsECSDeleteTaskSetInput {
  cluster: String!
  service: String!
  taskSet: String!
  force: Boolean
}

type AwsECSDeregisterContainerInstanceOutput {
  containerInstance: AwsECSS2q
}

type AwsECSS2q {
  containerInstanceArn: String
  ec2InstanceId: String
  capacityProviderName: String
  version: JSON
  versionInfo: AwsECSS2s
  remainingResources: [AwsECSS2t]
  registeredResources: [AwsECSS2t]
  status: String
  statusReason: String
  agentConnected: Boolean
  runningTasksCount: Int
  pendingTasksCount: Int
  agentUpdateStatus: String
  attributes: [AwsECSS2c]
  registeredAt: Date
  attachments: [AwsECSS11]
  tags: [AwsECSSa]
}

type AwsECSS2s {
  agentVersion: String
  agentHash: String
  dockerVersion: String
}

type AwsECSS2t {
  name: String
  type: String
  doubleValue: JSON
  longValue: JSON
  integerValue: Int
  stringSetValue: [String]
}

input AwsECSDeregisterContainerInstanceInput {
  cluster: String
  containerInstance: String!
  force: Boolean
}

type AwsECSDeregisterTaskDefinitionOutput {
  taskDefinition: AwsECSS2y
}

type AwsECSS2y {
  taskDefinitionArn: String
  containerDefinitions: [AwsECSS2z]
  family: String
  taskRoleArn: String
  executionRoleArn: String
  networkMode: String
  revision: Int
  volumes: [AwsECSS49]
  status: String
  requiresAttributes: [AwsECSS2c]
  placementConstraints: [AwsECSS4n]
  compatibilities: [String]
  requiresCompatibilities: [String]
  cpu: String
  memory: String
  inferenceAccelerators: [AwsECSS4s]
  pidMode: String
  ipcMode: String
  proxyConfiguration: AwsECSS4w
  registeredAt: Date
  deregisteredAt: Date
  registeredBy: String
  ephemeralStorage: AwsECSS4z
}

type AwsECSS2z {
  name: String
  image: String
  repositoryCredentials: AwsECSS2zRepositoryCredentials
  cpu: Int
  memory: Int
  memoryReservation: Int
  links: [String]
  portMappings: [AwsECSS2zPortMappings]
  essential: Boolean
  entryPoint: [String]
  command: [String]
  environment: [AwsECSS10]
  environmentFiles: [AwsECSS36]
  mountPoints: [AwsECSS2zMountPoints]
  volumesFrom: [AwsECSS2zVolumesFrom]
  linuxParameters: AwsECSS2zLinuxParameters
  secrets: [AwsECSS3l]
  dependsOn: [AwsECSS2zDependsOn]
  startTimeout: Int
  stopTimeout: Int
  hostname: String
  user: String
  workingDirectory: String
  disableNetworking: Boolean
  privileged: Boolean
  readonlyRootFilesystem: Boolean
  dnsServers: [String]
  dnsSearchDomains: [String]
  extraHosts: [AwsECSS2zExtraHosts]
  dockerSecurityOptions: [String]
  interactive: Boolean
  pseudoTerminal: Boolean
  dockerLabels: JSON
  ulimits: [AwsECSS2zUlimits]
  logConfiguration: AwsECSS2zLogConfiguration
  healthCheck: AwsECSS2zHealthCheck
  systemControls: [AwsECSS2zSystemControls]
  resourceRequirements: [AwsECSS42]
  firelensConfiguration: AwsECSS2zFirelensConfiguration
}

type AwsECSS2zRepositoryCredentials {
  credentialsParameter: String!
}

type AwsECSS2zPortMappings {
  containerPort: Int
  hostPort: Int
  protocol: String
}

type AwsECSS36 {
  value: String!
  type: String!
}

type AwsECSS2zMountPoints {
  sourceVolume: String
  containerPath: String
  readOnly: Boolean
}

type AwsECSS2zVolumesFrom {
  sourceContainer: String
  readOnly: Boolean
}

type AwsECSS2zLinuxParameters {
  capabilities: AwsECSS2zLinuxParametersCapabilities
  devices: [AwsECSS2zLinuxParametersDevices]
  initProcessEnabled: Boolean
  sharedMemorySize: Int
  tmpfs: [AwsECSS2zLinuxParametersTmpfs]
  maxSwap: Int
  swappiness: Int
}

type AwsECSS2zLinuxParametersCapabilities {
  add: [String]
  drop: [String]
}

type AwsECSS2zLinuxParametersDevices {
  hostPath: String!
  containerPath: String
  permissions: [String]
}

type AwsECSS2zLinuxParametersTmpfs {
  containerPath: String!
  size: Int!
  mountOptions: [String]
}

type AwsECSS3l {
  name: String!
  valueFrom: String!
}

type AwsECSS2zDependsOn {
  containerName: String!
  condition: String!
}

type AwsECSS2zExtraHosts {
  hostname: String!
  ipAddress: String!
}

type AwsECSS2zUlimits {
  name: String!
  softLimit: Int!
  hardLimit: Int!
}

type AwsECSS2zLogConfiguration {
  logDriver: String!
  options: JSON
  secretOptions: [AwsECSS3l]
}

type AwsECSS2zHealthCheck {
  command: [String]!
  interval: Int
  timeout: Int
  retries: Int
  startPeriod: Int
}

type AwsECSS2zSystemControls {
  namespace: String
  value: String
}

type AwsECSS42 {
  value: String!
  type: String!
}

type AwsECSS2zFirelensConfiguration {
  type: String!
  options: JSON
}

type AwsECSS49 {
  name: String
  host: AwsECSS49Host
  dockerVolumeConfiguration: AwsECSS49DockerVolumeConfiguration
  efsVolumeConfiguration: AwsECSS49EfsVolumeConfiguration
  fsxWindowsFileServerVolumeConfiguration: AwsECSS49FsxWindowsFileServerVolumeConfiguration
}

type AwsECSS49Host {
  sourcePath: String
}

type AwsECSS49DockerVolumeConfiguration {
  scope: String
  autoprovision: Boolean
  driver: String
  driverOpts: JSON
  labels: JSON
}

type AwsECSS49EfsVolumeConfiguration {
  fileSystemId: String!
  rootDirectory: String
  transitEncryption: String
  transitEncryptionPort: Int
  authorizationConfig: AwsECSS49EfsVolumeConfigurationAuthorizationConfig
}

type AwsECSS49EfsVolumeConfigurationAuthorizationConfig {
  accessPointId: String
  iam: String
}

type AwsECSS49FsxWindowsFileServerVolumeConfiguration {
  fileSystemId: String!
  rootDirectory: String!
  authorizationConfig: AwsECSS49FsxWindowsFileServerVolumeConfigurationAuthorizationConfig!
}

type AwsECSS49FsxWindowsFileServerVolumeConfigurationAuthorizationConfig {
  credentialsParameter: String!
  domain: String!
}

type AwsECSS4n {
  type: String
  expression: String
}

type AwsECSS4s {
  deviceName: String!
  deviceType: String!
}

type AwsECSS4w {
  type: String
  containerName: String!
  properties: [AwsECSS10]
}

type AwsECSS4z {
  sizeInGiB: Int!
}

input AwsECSDeregisterTaskDefinitionInput {
  taskDefinition: String!
}

type AwsECSDescribeCapacityProvidersOutput {
  capacityProviders: [AwsECSSf]
  failures: [AwsECSS55]
  nextToken: String
}

type AwsECSS55 {
  arn: String
  reason: String
  detail: String
}

input AwsECSDescribeCapacityProvidersInput {
  capacityProviders: [String]
  include: [String]
  maxResults: Int
  nextToken: String
}

type AwsECSDescribeClustersOutput {
  clusters: [AwsECSSx]
  failures: [AwsECSS55]
}

input AwsECSDescribeClustersInput {
  clusters: [String]
  include: [String]
}

type AwsECSDescribeContainerInstancesOutput {
  containerInstances: [AwsECSS2q]
  failures: [AwsECSS55]
}

input AwsECSDescribeContainerInstancesInput {
  cluster: String
  containerInstances: [String]!
  include: [String]
}

type AwsECSDescribeServicesOutput {
  services: [AwsECSS1r]
  failures: [AwsECSS55]
}

input AwsECSDescribeServicesInput {
  cluster: String
  services: [String]!
  include: [String]
}

type AwsECSDescribeTaskDefinitionOutput {
  taskDefinition: AwsECSS2y
  tags: [AwsECSSa]
}

input AwsECSDescribeTaskDefinitionInput {
  taskDefinition: String!
  include: [String]
}

type AwsECSDescribeTaskSetsOutput {
  taskSets: [AwsECSS1t]
  failures: [AwsECSS55]
}

input AwsECSDescribeTaskSetsInput {
  cluster: String!
  service: String!
  taskSets: [String]
  include: [String]
}

type AwsECSDescribeTasksOutput {
  tasks: [AwsECSS5z]
  failures: [AwsECSS55]
}

type AwsECSS5z {
  attachments: [AwsECSS11]
  attributes: [AwsECSS2c]
  availabilityZone: String
  capacityProviderName: String
  clusterArn: String
  connectivity: String
  connectivityAt: Date
  containerInstanceArn: String
  containers: [AwsECSS5zContainers]
  cpu: String
  createdAt: Date
  desiredStatus: String
  enableExecuteCommand: Boolean
  executionStoppedAt: Date
  group: String
  healthStatus: String
  inferenceAccelerators: [AwsECSS4s]
  lastStatus: String
  launchType: String
  memory: String
  overrides: AwsECSS6c
  platformVersion: String
  pullStartedAt: Date
  pullStoppedAt: Date
  startedAt: Date
  startedBy: String
  stopCode: String
  stoppedAt: Date
  stoppedReason: String
  stoppingAt: Date
  tags: [AwsECSSa]
  taskArn: String
  taskDefinitionArn: String
  version: JSON
  ephemeralStorage: AwsECSS4z
}

type AwsECSS5zContainers {
  containerArn: String
  taskArn: String
  name: String
  image: String
  imageDigest: String
  runtimeId: String
  lastStatus: String
  exitCode: Int
  reason: String
  networkBindings: [AwsECSS63]
  networkInterfaces: [AwsECSS5zContainersNetworkInterfaces]
  healthStatus: String
  managedAgents: [AwsECSS5zContainersManagedAgents]
  cpu: String
  memory: String
  memoryReservation: String
  gpuIds: [String]
}

type AwsECSS63 {
  bindIP: String
  containerPort: Int
  hostPort: Int
  protocol: String
}

type AwsECSS5zContainersNetworkInterfaces {
  attachmentId: String
  privateIpv4Address: String
  ipv6Address: String
}

type AwsECSS5zContainersManagedAgents {
  lastStartedAt: Date
  name: String
  reason: String
  lastStatus: String
}

type AwsECSS6c {
  containerOverrides: [AwsECSS6cContainerOverrides]
  cpu: String
  inferenceAcceleratorOverrides: [AwsECSS6cInferenceAcceleratorOverrides]
  executionRoleArn: String
  memory: String
  taskRoleArn: String
  ephemeralStorage: AwsECSS4z
}

type AwsECSS6cContainerOverrides {
  name: String
  command: [String]
  environment: [AwsECSS10]
  environmentFiles: [AwsECSS36]
  cpu: Int
  memory: Int
  memoryReservation: Int
  resourceRequirements: [AwsECSS42]
}

type AwsECSS6cInferenceAcceleratorOverrides {
  deviceName: String
  deviceType: String
}

input AwsECSDescribeTasksInput {
  cluster: String
  tasks: [String]!
  include: [String]
}

type AwsECSDiscoverPollEndpointOutput {
  endpoint: String
  telemetryEndpoint: String
}

input AwsECSDiscoverPollEndpointInput {
  containerInstance: String
  cluster: String
}

type AwsECSExecuteCommandOutput {
  clusterArn: String
  containerArn: String
  containerName: String
  interactive: Boolean
  session: AwsECSExecuteCommandOutputSession
  taskArn: String
}

type AwsECSExecuteCommandOutputSession {
  sessionId: String
  streamUrl: String
  tokenValue: String
}

input AwsECSExecuteCommandInput {
  cluster: String
  container: String
  command: String!
  interactive: Boolean!
  task: String!
}

type AwsECSListAccountSettingsOutput {
  settings: [AwsECSS29]
  nextToken: String
}

input AwsECSListAccountSettingsInput {
  name: String
  value: String
  principalArn: String
  effectiveSettings: Boolean
  nextToken: String
  maxResults: Int
}

type AwsECSListAttributesOutput {
  attributes: [AwsECSS2c]
  nextToken: String
}

input AwsECSListAttributesInput {
  cluster: String
  targetType: String!
  attributeName: String
  attributeValue: String
  nextToken: String
  maxResults: Int
}

type AwsECSListClustersOutput {
  clusterArns: [String]
  nextToken: String
}

input AwsECSListClustersInput {
  nextToken: String
  maxResults: Int
}

type AwsECSListContainerInstancesOutput {
  containerInstanceArns: [String]
  nextToken: String
}

input AwsECSListContainerInstancesInput {
  cluster: String
  filter: String
  nextToken: String
  maxResults: Int
  status: String
}

type AwsECSListServicesOutput {
  serviceArns: [String]
  nextToken: String
}

input AwsECSListServicesInput {
  cluster: String
  nextToken: String
  maxResults: Int
  launchType: String
  schedulingStrategy: String
}

type AwsECSListTagsForResourceOutput {
  tags: [AwsECSSa]
}

input AwsECSListTagsForResourceInput {
  resourceArn: String!
}

type AwsECSListTaskDefinitionFamiliesOutput {
  families: [String]
  nextToken: String
}

input AwsECSListTaskDefinitionFamiliesInput {
  familyPrefix: String
  status: String
  nextToken: String
  maxResults: Int
}

type AwsECSListTaskDefinitionsOutput {
  taskDefinitionArns: [String]
  nextToken: String
}

input AwsECSListTaskDefinitionsInput {
  familyPrefix: String
  status: String
  sort: String
  nextToken: String
  maxResults: Int
}

type AwsECSListTasksOutput {
  taskArns: [String]
  nextToken: String
}

input AwsECSListTasksInput {
  cluster: String
  containerInstance: String
  family: String
  nextToken: String
  maxResults: Int
  startedBy: String
  serviceName: String
  desiredStatus: String
  launchType: String
}

type AwsECSPutAccountSettingOutput {
  setting: AwsECSS29
}

input AwsECSPutAccountSettingInput {
  name: String!
  value: String!
  principalArn: String
}

type AwsECSPutAccountSettingDefaultOutput {
  setting: AwsECSS29
}

input AwsECSPutAccountSettingDefaultInput {
  name: String!
  value: String!
}

type AwsECSPutAttributesOutput {
  attributes: [AwsECSS2c]
}

input AwsECSPutAttributesInput {
  cluster: String
  attributes: [AwsECSS2cInput]!
}

type AwsECSPutClusterCapacityProvidersOutput {
  cluster: AwsECSSx
}

input AwsECSPutClusterCapacityProvidersInput {
  cluster: String!
  capacityProviders: [String]!
  defaultCapacityProviderStrategy: [AwsECSSsInput]!
}

type AwsECSRegisterContainerInstanceOutput {
  containerInstance: AwsECSS2q
}

input AwsECSRegisterContainerInstanceInput {
  cluster: String
  instanceIdentityDocument: String
  instanceIdentityDocumentSignature: String
  totalResources: [AwsECSS2tInput]
  versionInfo: AwsECSS2sInput
  containerInstanceArn: String
  attributes: [AwsECSS2cInput]
  platformDevices: [AwsECSRegisterContainerInstancePlatformDevicesInput]
  tags: [AwsECSSaInput]
}

input AwsECSS2tInput {
  name: String
  type: String
  doubleValue: JSON
  longValue: JSON
  integerValue: Int
  stringSetValue: [String]
}

input AwsECSS2sInput {
  agentVersion: String
  agentHash: String
  dockerVersion: String
}

input AwsECSRegisterContainerInstancePlatformDevicesInput {
  id: String!
  type: String!
}

type AwsECSRegisterTaskDefinitionOutput {
  taskDefinition: AwsECSS2y
  tags: [AwsECSSa]
}

input AwsECSRegisterTaskDefinitionInput {
  family: String!
  taskRoleArn: String
  executionRoleArn: String
  networkMode: String
  containerDefinitions: [AwsECSS2zInput]!
  volumes: [AwsECSS49Input]
  placementConstraints: [AwsECSS4nInput]
  requiresCompatibilities: [String]
  cpu: String
  memory: String
  tags: [AwsECSSaInput]
  pidMode: String
  ipcMode: String
  proxyConfiguration: AwsECSS4wInput
  inferenceAccelerators: [AwsECSS4sInput]
  ephemeralStorage: AwsECSS4zInput
}

input AwsECSS2zInput {
  name: String
  image: String
  repositoryCredentials: AwsECSS2zRepositoryCredentialsInput
  cpu: Int
  memory: Int
  memoryReservation: Int
  links: [String]
  portMappings: [AwsECSS2zPortMappingsInput]
  essential: Boolean
  entryPoint: [String]
  command: [String]
  environment: [AwsECSS10Input]
  environmentFiles: [AwsECSS36Input]
  mountPoints: [AwsECSS2zMountPointsInput]
  volumesFrom: [AwsECSS2zVolumesFromInput]
  linuxParameters: AwsECSS2zLinuxParametersInput
  secrets: [AwsECSS3lInput]
  dependsOn: [AwsECSS2zDependsOnInput]
  startTimeout: Int
  stopTimeout: Int
  hostname: String
  user: String
  workingDirectory: String
  disableNetworking: Boolean
  privileged: Boolean
  readonlyRootFilesystem: Boolean
  dnsServers: [String]
  dnsSearchDomains: [String]
  extraHosts: [AwsECSS2zExtraHostsInput]
  dockerSecurityOptions: [String]
  interactive: Boolean
  pseudoTerminal: Boolean
  dockerLabels: JSON
  ulimits: [AwsECSS2zUlimitsInput]
  logConfiguration: AwsECSS2zLogConfigurationInput
  healthCheck: AwsECSS2zHealthCheckInput
  systemControls: [AwsECSS2zSystemControlsInput]
  resourceRequirements: [AwsECSS42Input]
  firelensConfiguration: AwsECSS2zFirelensConfigurationInput
}

input AwsECSS2zRepositoryCredentialsInput {
  credentialsParameter: String!
}

input AwsECSS2zPortMappingsInput {
  containerPort: Int
  hostPort: Int
  protocol: String
}

input AwsECSS10Input {
  name: String
  value: String
}

input AwsECSS36Input {
  value: String!
  type: String!
}

input AwsECSS2zMountPointsInput {
  sourceVolume: String
  containerPath: String
  readOnly: Boolean
}

input AwsECSS2zVolumesFromInput {
  sourceContainer: String
  readOnly: Boolean
}

input AwsECSS2zLinuxParametersInput {
  capabilities: AwsECSS2zLinuxParametersCapabilitiesInput
  devices: [AwsECSS2zLinuxParametersDevicesInput]
  initProcessEnabled: Boolean
  sharedMemorySize: Int
  tmpfs: [AwsECSS2zLinuxParametersTmpfsInput]
  maxSwap: Int
  swappiness: Int
}

input AwsECSS2zLinuxParametersCapabilitiesInput {
  add: [String]
  drop: [String]
}

input AwsECSS2zLinuxParametersDevicesInput {
  hostPath: String!
  containerPath: String
  permissions: [String]
}

input AwsECSS2zLinuxParametersTmpfsInput {
  containerPath: String!
  size: Int!
  mountOptions: [String]
}

input AwsECSS3lInput {
  name: String!
  valueFrom: String!
}

input AwsECSS2zDependsOnInput {
  containerName: String!
  condition: String!
}

input AwsECSS2zExtraHostsInput {
  hostname: String!
  ipAddress: String!
}

input AwsECSS2zUlimitsInput {
  name: String!
  softLimit: Int!
  hardLimit: Int!
}

input AwsECSS2zLogConfigurationInput {
  logDriver: String!
  options: JSON
  secretOptions: [AwsECSS3lInput]
}

input AwsECSS2zHealthCheckInput {
  command: [String]!
  interval: Int
  timeout: Int
  retries: Int
  startPeriod: Int
}

input AwsECSS2zSystemControlsInput {
  namespace: String
  value: String
}

input AwsECSS42Input {
  value: String!
  type: String!
}

input AwsECSS2zFirelensConfigurationInput {
  type: String!
  options: JSON
}

input AwsECSS49Input {
  name: String
  host: AwsECSS49HostInput
  dockerVolumeConfiguration: AwsECSS49DockerVolumeConfigurationInput
  efsVolumeConfiguration: AwsECSS49EfsVolumeConfigurationInput
  fsxWindowsFileServerVolumeConfiguration: AwsECSS49FsxWindowsFileServerVolumeConfigurationInput
}

input AwsECSS49HostInput {
  sourcePath: String
}

input AwsECSS49DockerVolumeConfigurationInput {
  scope: String
  autoprovision: Boolean
  driver: String
  driverOpts: JSON
  labels: JSON
}

input AwsECSS49EfsVolumeConfigurationInput {
  fileSystemId: String!
  rootDirectory: String
  transitEncryption: String
  transitEncryptionPort: Int
  authorizationConfig: AwsECSS49EfsVolumeConfigurationAuthorizationConfigInput
}

input AwsECSS49EfsVolumeConfigurationAuthorizationConfigInput {
  accessPointId: String
  iam: String
}

input AwsECSS49FsxWindowsFileServerVolumeConfigurationInput {
  fileSystemId: String!
  rootDirectory: String!
  authorizationConfig: AwsECSS49FsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput!
}

input AwsECSS49FsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput {
  credentialsParameter: String!
  domain: String!
}

input AwsECSS4nInput {
  type: String
  expression: String
}

input AwsECSS4wInput {
  type: String
  containerName: String!
  properties: [AwsECSS10Input]
}

input AwsECSS4sInput {
  deviceName: String!
  deviceType: String!
}

input AwsECSS4zInput {
  sizeInGiB: Int!
}

type AwsECSRunTaskOutput {
  tasks: [AwsECSS5z]
  failures: [AwsECSS55]
}

input AwsECSRunTaskInput {
  capacityProviderStrategy: [AwsECSSsInput]
  cluster: String
  count: Int
  enableECSManagedTags: Boolean
  enableExecuteCommand: Boolean
  group: String
  launchType: String
  networkConfiguration: AwsECSS1jInput
  overrides: AwsECSS6cInput
  placementConstraints: [AwsECSS1dInput]
  placementStrategy: [AwsECSS1gInput]
  platformVersion: String
  propagateTags: String
  referenceId: String
  startedBy: String
  tags: [AwsECSSaInput]
  taskDefinition: String!
}

input AwsECSS6cInput {
  containerOverrides: [AwsECSS6cContainerOverridesInput]
  cpu: String
  inferenceAcceleratorOverrides: [AwsECSS6cInferenceAcceleratorOverridesInput]
  executionRoleArn: String
  memory: String
  taskRoleArn: String
  ephemeralStorage: AwsECSS4zInput
}

input AwsECSS6cContainerOverridesInput {
  name: String
  command: [String]
  environment: [AwsECSS10Input]
  environmentFiles: [AwsECSS36Input]
  cpu: Int
  memory: Int
  memoryReservation: Int
  resourceRequirements: [AwsECSS42Input]
}

input AwsECSS6cInferenceAcceleratorOverridesInput {
  deviceName: String
  deviceType: String
}

type AwsECSStartTaskOutput {
  tasks: [AwsECSS5z]
  failures: [AwsECSS55]
}

input AwsECSStartTaskInput {
  cluster: String
  containerInstances: [String]!
  enableECSManagedTags: Boolean
  enableExecuteCommand: Boolean
  group: String
  networkConfiguration: AwsECSS1jInput
  overrides: AwsECSS6cInput
  propagateTags: String
  referenceId: String
  startedBy: String
  tags: [AwsECSSaInput]
  taskDefinition: String!
}

type AwsECSStopTaskOutput {
  task: AwsECSS5z
}

input AwsECSStopTaskInput {
  cluster: String
  task: String!
  reason: String
}

type AwsECSSubmitAttachmentStateChangesOutput {
  acknowledgment: String
}

input AwsECSSubmitAttachmentStateChangesInput {
  cluster: String
  attachments: [AwsECSS7xInput]!
}

input AwsECSS7xInput {
  attachmentArn: String!
  status: String!
}

type AwsECSSubmitContainerStateChangeOutput {
  acknowledgment: String
}

input AwsECSSubmitContainerStateChangeInput {
  cluster: String
  task: String
  containerName: String
  runtimeId: String
  status: String
  exitCode: Int
  reason: String
  networkBindings: [AwsECSS63Input]
}

input AwsECSS63Input {
  bindIP: String
  containerPort: Int
  hostPort: Int
  protocol: String
}

type AwsECSSubmitTaskStateChangeOutput {
  acknowledgment: String
}

input AwsECSSubmitTaskStateChangeInput {
  cluster: String
  task: String
  status: String
  reason: String
  containers: [AwsECSSubmitTaskStateChangeContainersInput]
  attachments: [AwsECSS7xInput]
  managedAgents: [AwsECSSubmitTaskStateChangeManagedAgentsInput]
  pullStartedAt: Date
  pullStoppedAt: Date
  executionStoppedAt: Date
}

input AwsECSSubmitTaskStateChangeContainersInput {
  containerName: String
  imageDigest: String
  runtimeId: String
  exitCode: Int
  networkBindings: [AwsECSS63Input]
  reason: String
  status: String
}

input AwsECSSubmitTaskStateChangeManagedAgentsInput {
  containerName: String!
  managedAgentName: String!
  status: String!
  reason: String
}

input AwsECSTagResourceInput {
  resourceArn: String!
  tags: [AwsECSSaInput]!
}

input AwsECSUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsECSUpdateCapacityProviderOutput {
  capacityProvider: AwsECSSf
}

input AwsECSUpdateCapacityProviderInput {
  name: String!
  autoScalingGroupProvider: AwsECSUpdateCapacityProviderAutoScalingGroupProviderInput!
}

input AwsECSUpdateCapacityProviderAutoScalingGroupProviderInput {
  managedScaling: AwsECSS4Input
  managedTerminationProtection: String
}

type AwsECSUpdateClusterOutput {
  cluster: AwsECSSx
}

input AwsECSUpdateClusterInput {
  cluster: String!
  settings: [AwsECSSjInput]
  configuration: AwsECSSmInput
}

type AwsECSUpdateClusterSettingsOutput {
  cluster: AwsECSSx
}

input AwsECSUpdateClusterSettingsInput {
  cluster: String!
  settings: [AwsECSSjInput]!
}

type AwsECSUpdateContainerAgentOutput {
  containerInstance: AwsECSS2q
}

input AwsECSUpdateContainerAgentInput {
  cluster: String
  containerInstance: String!
}

type AwsECSUpdateContainerInstancesStateOutput {
  containerInstances: [AwsECSS2q]
  failures: [AwsECSS55]
}

input AwsECSUpdateContainerInstancesStateInput {
  cluster: String
  containerInstances: [String]!
  status: String!
}

type AwsECSUpdateServiceOutput {
  service: AwsECSS1r
}

input AwsECSUpdateServiceInput {
  cluster: String
  service: String!
  desiredCount: Int
  taskDefinition: String
  capacityProviderStrategy: [AwsECSSsInput]
  deploymentConfiguration: AwsECSS1bInput
  networkConfiguration: AwsECSS1jInput
  placementConstraints: [AwsECSS1dInput]
  placementStrategy: [AwsECSS1gInput]
  platformVersion: String
  forceNewDeployment: Boolean
  healthCheckGracePeriodSeconds: Int
  enableExecuteCommand: Boolean
}

type AwsECSUpdateServicePrimaryTaskSetOutput {
  taskSet: AwsECSS1t
}

input AwsECSUpdateServicePrimaryTaskSetInput {
  cluster: String!
  service: String!
  primaryTaskSet: String!
}

type AwsECSUpdateTaskSetOutput {
  taskSet: AwsECSS1t
}

input AwsECSUpdateTaskSetInput {
  cluster: String!
  service: String!
  taskSet: String!
  scale: AwsECSS1vInput!
}

"""Amazon Elastic File System (2015-02-01)"""
type AwsEFS {
  createAccessPoint(input: AwsEFSCreateAccessPointInput!, config: AwsConfig): JSON
  createFileSystem(input: AwsEFSCreateFileSystemInput!, config: AwsConfig): JSON
  createMountTarget(input: AwsEFSCreateMountTargetInput!, config: AwsConfig): JSON
  createTags(input: AwsEFSCreateTagsInput!, config: AwsConfig): JSON
  deleteAccessPoint(input: AwsEFSDeleteAccessPointInput!, config: AwsConfig): JSON
  deleteFileSystem(input: AwsEFSDeleteFileSystemInput!, config: AwsConfig): JSON
  deleteFileSystemPolicy(input: AwsEFSDeleteFileSystemPolicyInput!, config: AwsConfig): JSON
  deleteMountTarget(input: AwsEFSDeleteMountTargetInput!, config: AwsConfig): JSON
  deleteTags(input: AwsEFSDeleteTagsInput!, config: AwsConfig): JSON
  describeAccessPoints(input: AwsEFSDescribeAccessPointsInput, config: AwsConfig): AwsEFSDescribeAccessPointsOutput
  describeAccountPreferences(input: AwsEFSDescribeAccountPreferencesInput, config: AwsConfig): AwsEFSDescribeAccountPreferencesOutput
  describeBackupPolicy(input: AwsEFSDescribeBackupPolicyInput!, config: AwsConfig): JSON
  describeFileSystemPolicy(input: AwsEFSDescribeFileSystemPolicyInput!, config: AwsConfig): JSON
  describeFileSystems(input: AwsEFSDescribeFileSystemsInput, config: AwsConfig): AwsEFSDescribeFileSystemsOutput
  describeLifecycleConfiguration(input: AwsEFSDescribeLifecycleConfigurationInput!, config: AwsConfig): JSON
  describeMountTargetSecurityGroups(input: AwsEFSDescribeMountTargetSecurityGroupsInput!, config: AwsConfig): AwsEFSDescribeMountTargetSecurityGroupsOutput
  describeMountTargets(input: AwsEFSDescribeMountTargetsInput, config: AwsConfig): AwsEFSDescribeMountTargetsOutput
  describeTags(input: AwsEFSDescribeTagsInput!, config: AwsConfig): AwsEFSDescribeTagsOutput
  listTagsForResource(input: AwsEFSListTagsForResourceInput!, config: AwsConfig): AwsEFSListTagsForResourceOutput
  modifyMountTargetSecurityGroups(input: AwsEFSModifyMountTargetSecurityGroupsInput!, config: AwsConfig): JSON
  putAccountPreferences(input: AwsEFSPutAccountPreferencesInput!, config: AwsConfig): AwsEFSPutAccountPreferencesOutput
  putBackupPolicy(input: AwsEFSPutBackupPolicyInput!, config: AwsConfig): JSON
  putFileSystemPolicy(input: AwsEFSPutFileSystemPolicyInput!, config: AwsConfig): JSON
  putLifecycleConfiguration(input: AwsEFSPutLifecycleConfigurationInput!, config: AwsConfig): JSON
  tagResource(input: AwsEFSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsEFSUntagResourceInput!, config: AwsConfig): JSON
  updateFileSystem(input: AwsEFSUpdateFileSystemInput!, config: AwsConfig): JSON
}

input AwsEFSCreateAccessPointInput {
  ClientToken: String!
  Tags: [AwsEFSS3Input]
  FileSystemId: String!
  PosixUser: AwsEFSS8Input
  RootDirectory: AwsEFSScInput
}

input AwsEFSS3Input {
  Key: String!
  Value: String!
}

input AwsEFSS8Input {
  Uid: JSON!
  Gid: JSON!
  SecondaryGids: [JSON]
}

input AwsEFSScInput {
  Path: String
  CreationInfo: AwsEFSScCreationInfoInput
}

input AwsEFSScCreationInfoInput {
  OwnerUid: JSON!
  OwnerGid: JSON!
  Permissions: String!
}

input AwsEFSCreateFileSystemInput {
  CreationToken: String!
  PerformanceMode: String
  Encrypted: Boolean
  KmsKeyId: String
  ThroughputMode: String
  ProvisionedThroughputInMibps: JSON
  AvailabilityZoneName: String
  Backup: Boolean
  Tags: [AwsEFSS3Input]
}

input AwsEFSCreateMountTargetInput {
  FileSystemId: String!
  SubnetId: String!
  IpAddress: String
  SecurityGroups: [String]
}

input AwsEFSCreateTagsInput {
  FileSystemId: String!
  Tags: [AwsEFSS3Input]!
}

input AwsEFSDeleteAccessPointInput {
  AccessPointId: String!
}

input AwsEFSDeleteFileSystemInput {
  FileSystemId: String!
}

input AwsEFSDeleteFileSystemPolicyInput {
  FileSystemId: String!
}

input AwsEFSDeleteMountTargetInput {
  MountTargetId: String!
}

input AwsEFSDeleteTagsInput {
  FileSystemId: String!
  TagKeys: [String]!
}

type AwsEFSDescribeAccessPointsOutput {
  AccessPoints: [AwsEFSSi]
  NextToken: String
}

type AwsEFSSi {
  ClientToken: String
  Name: String
  Tags: [AwsEFSS3]
  AccessPointId: String
  AccessPointArn: String
  FileSystemId: String
  PosixUser: AwsEFSS8
  RootDirectory: AwsEFSSc
  OwnerId: String
  LifeCycleState: String
}

type AwsEFSS3 {
  Key: String!
  Value: String!
}

type AwsEFSS8 {
  Uid: JSON!
  Gid: JSON!
  SecondaryGids: [JSON]
}

type AwsEFSSc {
  Path: String
  CreationInfo: AwsEFSScCreationInfo
}

type AwsEFSScCreationInfo {
  OwnerUid: JSON!
  OwnerGid: JSON!
  Permissions: String!
}

input AwsEFSDescribeAccessPointsInput {
  MaxResults: Int
  NextToken: String
  AccessPointId: String
  FileSystemId: String
}

type AwsEFSDescribeAccountPreferencesOutput {
  ResourceIdPreference: AwsEFSS1s
  NextToken: String
}

type AwsEFSS1s {
  ResourceIdType: String
  Resources: [String]
}

input AwsEFSDescribeAccountPreferencesInput {
  NextToken: String
  MaxResults: Int
}

input AwsEFSDescribeBackupPolicyInput {
  FileSystemId: String!
}

input AwsEFSDescribeFileSystemPolicyInput {
  FileSystemId: String!
}

type AwsEFSDescribeFileSystemsOutput {
  Marker: String
  FileSystems: [AwsEFSSx]
  NextMarker: String
}

type AwsEFSSx {
  OwnerId: String!
  CreationToken: String!
  FileSystemId: String!
  FileSystemArn: String
  CreationTime: Date!
  LifeCycleState: String!
  Name: String
  NumberOfMountTargets: Int!
  SizeInBytes: AwsEFSSxSizeInBytes!
  PerformanceMode: String!
  Encrypted: Boolean
  KmsKeyId: String
  ThroughputMode: String
  ProvisionedThroughputInMibps: JSON
  AvailabilityZoneName: String
  AvailabilityZoneId: String
  Tags: [AwsEFSS3]!
}

type AwsEFSSxSizeInBytes {
  Value: JSON!
  Timestamp: Date
  ValueInIA: JSON
  ValueInStandard: JSON
}

input AwsEFSDescribeFileSystemsInput {
  MaxItems: Int
  Marker: String
  CreationToken: String
  FileSystemId: String
}

input AwsEFSDescribeLifecycleConfigurationInput {
  FileSystemId: String!
}

type AwsEFSDescribeMountTargetSecurityGroupsOutput {
  SecurityGroups: [String]!
}

input AwsEFSDescribeMountTargetSecurityGroupsInput {
  MountTargetId: String!
}

type AwsEFSDescribeMountTargetsOutput {
  Marker: String
  MountTargets: [AwsEFSS1a]
  NextMarker: String
}

type AwsEFSS1a {
  OwnerId: String
  MountTargetId: String!
  FileSystemId: String!
  SubnetId: String!
  LifeCycleState: String!
  IpAddress: String
  NetworkInterfaceId: String
  AvailabilityZoneId: String
  AvailabilityZoneName: String
  VpcId: String
}

input AwsEFSDescribeMountTargetsInput {
  MaxItems: Int
  Marker: String
  FileSystemId: String
  MountTargetId: String
  AccessPointId: String
}

type AwsEFSDescribeTagsOutput {
  Marker: String
  Tags: [AwsEFSS3]!
  NextMarker: String
}

input AwsEFSDescribeTagsInput {
  MaxItems: Int
  Marker: String
  FileSystemId: String!
}

type AwsEFSListTagsForResourceOutput {
  Tags: [AwsEFSS3]
  NextToken: String
}

input AwsEFSListTagsForResourceInput {
  ResourceId: String!
  MaxResults: Int
  NextToken: String
}

input AwsEFSModifyMountTargetSecurityGroupsInput {
  MountTargetId: String!
  SecurityGroups: [String]
}

type AwsEFSPutAccountPreferencesOutput {
  ResourceIdPreference: AwsEFSS1s
}

input AwsEFSPutAccountPreferencesInput {
  ResourceIdType: String!
}

input AwsEFSPutBackupPolicyInput {
  FileSystemId: String!
  BackupPolicy: AwsEFSS1yInput!
}

input AwsEFSS1yInput {
  Status: String!
}

input AwsEFSPutFileSystemPolicyInput {
  FileSystemId: String!
  Policy: String!
  BypassPolicyLockoutSafetyCheck: Boolean
}

input AwsEFSPutLifecycleConfigurationInput {
  FileSystemId: String!
  LifecyclePolicies: [AwsEFSS2aInput]!
}

input AwsEFSS2aInput {
  TransitionToIA: String
}

input AwsEFSTagResourceInput {
  ResourceId: String!
  Tags: [AwsEFSS3Input]!
}

input AwsEFSUntagResourceInput {
  ResourceId: String!
  TagKeys: [String]!
}

input AwsEFSUpdateFileSystemInput {
  FileSystemId: String!
  ThroughputMode: String
  ProvisionedThroughputInMibps: JSON
}

"""Amazon Elastic Kubernetes Service (2017-11-01)"""
type AwsEKS {
  associateEncryptionConfig(input: AwsEKSAssociateEncryptionConfigInput!, config: AwsConfig): AwsEKSAssociateEncryptionConfigOutput
  associateIdentityProviderConfig(input: AwsEKSAssociateIdentityProviderConfigInput!, config: AwsConfig): AwsEKSAssociateIdentityProviderConfigOutput
  createAddon(input: AwsEKSCreateAddonInput!, config: AwsConfig): AwsEKSCreateAddonOutput
  createCluster(input: AwsEKSCreateClusterInput!, config: AwsConfig): AwsEKSCreateClusterOutput
  createFargateProfile(input: AwsEKSCreateFargateProfileInput!, config: AwsConfig): AwsEKSCreateFargateProfileOutput
  createNodegroup(input: AwsEKSCreateNodegroupInput!, config: AwsConfig): AwsEKSCreateNodegroupOutput
  deleteAddon(input: AwsEKSDeleteAddonInput!, config: AwsConfig): AwsEKSDeleteAddonOutput
  deleteCluster(input: AwsEKSDeleteClusterInput!, config: AwsConfig): AwsEKSDeleteClusterOutput
  deleteFargateProfile(input: AwsEKSDeleteFargateProfileInput!, config: AwsConfig): AwsEKSDeleteFargateProfileOutput
  deleteNodegroup(input: AwsEKSDeleteNodegroupInput!, config: AwsConfig): AwsEKSDeleteNodegroupOutput
  describeAddon(input: AwsEKSDescribeAddonInput!, config: AwsConfig): AwsEKSDescribeAddonOutput
  describeAddonVersions(input: AwsEKSDescribeAddonVersionsInput, config: AwsConfig): AwsEKSDescribeAddonVersionsOutput
  describeCluster(input: AwsEKSDescribeClusterInput!, config: AwsConfig): AwsEKSDescribeClusterOutput
  describeFargateProfile(input: AwsEKSDescribeFargateProfileInput!, config: AwsConfig): AwsEKSDescribeFargateProfileOutput
  describeIdentityProviderConfig(input: AwsEKSDescribeIdentityProviderConfigInput!, config: AwsConfig): AwsEKSDescribeIdentityProviderConfigOutput
  describeNodegroup(input: AwsEKSDescribeNodegroupInput!, config: AwsConfig): AwsEKSDescribeNodegroupOutput
  describeUpdate(input: AwsEKSDescribeUpdateInput!, config: AwsConfig): AwsEKSDescribeUpdateOutput
  disassociateIdentityProviderConfig(input: AwsEKSDisassociateIdentityProviderConfigInput!, config: AwsConfig): AwsEKSDisassociateIdentityProviderConfigOutput
  listAddons(input: AwsEKSListAddonsInput!, config: AwsConfig): AwsEKSListAddonsOutput
  listClusters(input: AwsEKSListClustersInput, config: AwsConfig): AwsEKSListClustersOutput
  listFargateProfiles(input: AwsEKSListFargateProfilesInput!, config: AwsConfig): AwsEKSListFargateProfilesOutput
  listIdentityProviderConfigs(input: AwsEKSListIdentityProviderConfigsInput!, config: AwsConfig): AwsEKSListIdentityProviderConfigsOutput
  listNodegroups(input: AwsEKSListNodegroupsInput!, config: AwsConfig): AwsEKSListNodegroupsOutput
  listTagsForResource(input: AwsEKSListTagsForResourceInput!, config: AwsConfig): AwsEKSListTagsForResourceOutput
  listUpdates(input: AwsEKSListUpdatesInput!, config: AwsConfig): AwsEKSListUpdatesOutput
  tagResource(input: AwsEKSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsEKSUntagResourceInput!, config: AwsConfig): JSON
  updateAddon(input: AwsEKSUpdateAddonInput!, config: AwsConfig): AwsEKSUpdateAddonOutput
  updateClusterConfig(input: AwsEKSUpdateClusterConfigInput!, config: AwsConfig): AwsEKSUpdateClusterConfigOutput
  updateClusterVersion(input: AwsEKSUpdateClusterVersionInput!, config: AwsConfig): AwsEKSUpdateClusterVersionOutput
  updateNodegroupConfig(input: AwsEKSUpdateNodegroupConfigInput!, config: AwsConfig): AwsEKSUpdateNodegroupConfigOutput
  updateNodegroupVersion(input: AwsEKSUpdateNodegroupVersionInput!, config: AwsConfig): AwsEKSUpdateNodegroupVersionOutput
}

type AwsEKSAssociateEncryptionConfigOutput {
  update: AwsEKSS8
}

type AwsEKSS8 {
  id: String
  status: String
  type: String
  params: [AwsEKSS8Params]
  createdAt: Date
  errors: [AwsEKSS8Errors]
}

type AwsEKSS8Params {
  type: String
  value: String
}

type AwsEKSS8Errors {
  errorCode: String
  errorMessage: String
  resourceIds: [String]
}

input AwsEKSAssociateEncryptionConfigInput {
  clusterName: String!
  encryptionConfig: [AwsEKSS3Input]!
  clientRequestToken: String
}

input AwsEKSS3Input {
  resources: [String]
  provider: AwsEKSS3ProviderInput
}

input AwsEKSS3ProviderInput {
  keyArn: String
}

type AwsEKSAssociateIdentityProviderConfigOutput {
  update: AwsEKSS8
  tags: JSON
}

input AwsEKSAssociateIdentityProviderConfigInput {
  clusterName: String!
  oidc: AwsEKSAssociateIdentityProviderConfigOidcInput!
  tags: JSON
  clientRequestToken: String
}

input AwsEKSAssociateIdentityProviderConfigOidcInput {
  identityProviderConfigName: String!
  issuerUrl: String!
  clientId: String!
  usernameClaim: String
  usernamePrefix: String
  groupsClaim: String
  groupsPrefix: String
  requiredClaims: JSON
}

type AwsEKSCreateAddonOutput {
  addon: AwsEKSSw
}

type AwsEKSSw {
  addonName: String
  clusterName: String
  status: String
  addonVersion: String
  health: AwsEKSSwHealth
  addonArn: String
  createdAt: Date
  modifiedAt: Date
  serviceAccountRoleArn: String
  tags: JSON
}

type AwsEKSSwHealth {
  issues: [AwsEKSSwHealthIssues]
}

type AwsEKSSwHealthIssues {
  code: String
  message: String
  resourceIds: [String]
}

input AwsEKSCreateAddonInput {
  clusterName: String!
  addonName: String!
  addonVersion: String
  serviceAccountRoleArn: String
  resolveConflicts: String
  clientRequestToken: String
  tags: JSON
}

type AwsEKSCreateClusterOutput {
  cluster: AwsEKSS1c
}

type AwsEKSS1c {
  name: String
  arn: String
  createdAt: Date
  version: String
  endpoint: String
  roleArn: String
  resourcesVpcConfig: AwsEKSS1cResourcesVpcConfig
  kubernetesNetworkConfig: AwsEKSS1cKubernetesNetworkConfig
  logging: AwsEKSS16
  identity: AwsEKSS1cIdentity
  status: String
  certificateAuthority: AwsEKSS1cCertificateAuthority
  clientRequestToken: String
  platformVersion: String
  tags: JSON
  encryptionConfig: [AwsEKSS3]
}

type AwsEKSS1cResourcesVpcConfig {
  subnetIds: [String]
  securityGroupIds: [String]
  clusterSecurityGroupId: String
  vpcId: String
  endpointPublicAccess: Boolean
  endpointPrivateAccess: Boolean
  publicAccessCidrs: [String]
}

type AwsEKSS1cKubernetesNetworkConfig {
  serviceIpv4Cidr: String
}

type AwsEKSS16 {
  clusterLogging: [AwsEKSS16ClusterLogging]
}

type AwsEKSS16ClusterLogging {
  types: [String]
  enabled: Boolean
}

type AwsEKSS1cIdentity {
  oidc: AwsEKSS1cIdentityOidc
}

type AwsEKSS1cIdentityOidc {
  issuer: String
}

type AwsEKSS1cCertificateAuthority {
  data: String
}

type AwsEKSS3 {
  resources: [String]
  provider: AwsEKSS3Provider
}

type AwsEKSS3Provider {
  keyArn: String
}

input AwsEKSCreateClusterInput {
  name: String!
  version: String
  roleArn: String!
  resourcesVpcConfig: AwsEKSS13Input!
  kubernetesNetworkConfig: AwsEKSCreateClusterKubernetesNetworkConfigInput
  logging: AwsEKSS16Input
  clientRequestToken: String
  tags: JSON
  encryptionConfig: [AwsEKSS3Input]
}

input AwsEKSS13Input {
  subnetIds: [String]
  securityGroupIds: [String]
  endpointPublicAccess: Boolean
  endpointPrivateAccess: Boolean
  publicAccessCidrs: [String]
}

input AwsEKSCreateClusterKubernetesNetworkConfigInput {
  serviceIpv4Cidr: String
}

input AwsEKSS16Input {
  clusterLogging: [AwsEKSS16ClusterLoggingInput]
}

input AwsEKSS16ClusterLoggingInput {
  types: [String]
  enabled: Boolean
}

type AwsEKSCreateFargateProfileOutput {
  fargateProfile: AwsEKSS1p
}

type AwsEKSS1p {
  fargateProfileName: String
  fargateProfileArn: String
  clusterName: String
  createdAt: Date
  podExecutionRoleArn: String
  subnets: [String]
  selectors: [AwsEKSS1l]
  status: String
  tags: JSON
}

type AwsEKSS1l {
  namespace: String
  labels: JSON
}

input AwsEKSCreateFargateProfileInput {
  fargateProfileName: String!
  clusterName: String!
  podExecutionRoleArn: String!
  subnets: [String]
  selectors: [AwsEKSS1lInput]
  clientRequestToken: String
  tags: JSON
}

input AwsEKSS1lInput {
  namespace: String
  labels: JSON
}

type AwsEKSCreateNodegroupOutput {
  nodegroup: AwsEKSS2c
}

type AwsEKSS2c {
  nodegroupName: String
  nodegroupArn: String
  clusterName: String
  version: String
  releaseVersion: String
  createdAt: Date
  modifiedAt: Date
  status: String
  capacityType: String
  scalingConfig: AwsEKSS1s
  instanceTypes: [String]
  subnets: [String]
  remoteAccess: AwsEKSS1x
  amiType: String
  nodeRole: String
  labels: JSON
  taints: [AwsEKSS21]
  resources: AwsEKSS2cResources
  diskSize: Int
  health: AwsEKSS2cHealth
  updateConfig: AwsEKSS27
  launchTemplate: AwsEKSS26
  tags: JSON
}

type AwsEKSS1s {
  minSize: Int
  maxSize: Int
  desiredSize: Int
}

type AwsEKSS1x {
  ec2SshKey: String
  sourceSecurityGroups: [String]
}

type AwsEKSS21 {
  key: String
  value: String
  effect: String
}

type AwsEKSS2cResources {
  autoScalingGroups: [AwsEKSS2cResourcesAutoScalingGroups]
  remoteAccessSecurityGroup: String
}

type AwsEKSS2cResourcesAutoScalingGroups {
  name: String
}

type AwsEKSS2cHealth {
  issues: [AwsEKSS2cHealthIssues]
}

type AwsEKSS2cHealthIssues {
  code: String
  message: String
  resourceIds: [String]
}

type AwsEKSS27 {
  maxUnavailable: Int
  maxUnavailablePercentage: Int
}

type AwsEKSS26 {
  name: String
  version: String
  id: String
}

input AwsEKSCreateNodegroupInput {
  clusterName: String!
  nodegroupName: String!
  scalingConfig: AwsEKSS1sInput
  diskSize: Int
  subnets: [String]!
  instanceTypes: [String]
  amiType: String
  remoteAccess: AwsEKSS1xInput
  nodeRole: String!
  labels: JSON
  taints: [AwsEKSS21Input]
  tags: JSON
  clientRequestToken: String
  launchTemplate: AwsEKSS26Input
  updateConfig: AwsEKSS27Input
  capacityType: String
  version: String
  releaseVersion: String
}

input AwsEKSS1sInput {
  minSize: Int
  maxSize: Int
  desiredSize: Int
}

input AwsEKSS1xInput {
  ec2SshKey: String
  sourceSecurityGroups: [String]
}

input AwsEKSS21Input {
  key: String
  value: String
  effect: String
}

input AwsEKSS26Input {
  name: String
  version: String
  id: String
}

input AwsEKSS27Input {
  maxUnavailable: Int
  maxUnavailablePercentage: Int
}

type AwsEKSDeleteAddonOutput {
  addon: AwsEKSSw
}

input AwsEKSDeleteAddonInput {
  clusterName: String!
  addonName: String!
}

type AwsEKSDeleteClusterOutput {
  cluster: AwsEKSS1c
}

input AwsEKSDeleteClusterInput {
  name: String!
}

type AwsEKSDeleteFargateProfileOutput {
  fargateProfile: AwsEKSS1p
}

input AwsEKSDeleteFargateProfileInput {
  clusterName: String!
  fargateProfileName: String!
}

type AwsEKSDeleteNodegroupOutput {
  nodegroup: AwsEKSS2c
}

input AwsEKSDeleteNodegroupInput {
  clusterName: String!
  nodegroupName: String!
}

type AwsEKSDescribeAddonOutput {
  addon: AwsEKSSw
}

input AwsEKSDescribeAddonInput {
  clusterName: String!
  addonName: String!
}

type AwsEKSDescribeAddonVersionsOutput {
  addons: [AwsEKSDescribeAddonVersionsOutputAddons]
  nextToken: String
}

type AwsEKSDescribeAddonVersionsOutputAddons {
  addonName: String
  type: String
  addonVersions: [AwsEKSDescribeAddonVersionsOutputAddonsAddonVersions]
}

type AwsEKSDescribeAddonVersionsOutputAddonsAddonVersions {
  addonVersion: String
  architecture: [String]
  compatibilities: [AwsEKSDescribeAddonVersionsOutputAddonsAddonVersionsCompatibilities]
}

type AwsEKSDescribeAddonVersionsOutputAddonsAddonVersionsCompatibilities {
  clusterVersion: String
  platformVersions: [String]
  defaultVersion: Boolean
}

input AwsEKSDescribeAddonVersionsInput {
  kubernetesVersion: String
  maxResults: Int
  nextToken: String
  addonName: String
}

type AwsEKSDescribeClusterOutput {
  cluster: AwsEKSS1c
}

input AwsEKSDescribeClusterInput {
  name: String!
}

type AwsEKSDescribeFargateProfileOutput {
  fargateProfile: AwsEKSS1p
}

input AwsEKSDescribeFargateProfileInput {
  clusterName: String!
  fargateProfileName: String!
}

type AwsEKSDescribeIdentityProviderConfigOutput {
  identityProviderConfig: AwsEKSDescribeIdentityProviderConfigOutputIdentityProviderConfig
}

type AwsEKSDescribeIdentityProviderConfigOutputIdentityProviderConfig {
  oidc: AwsEKSDescribeIdentityProviderConfigOutputIdentityProviderConfigOidc
}

type AwsEKSDescribeIdentityProviderConfigOutputIdentityProviderConfigOidc {
  identityProviderConfigName: String
  identityProviderConfigArn: String
  clusterName: String
  issuerUrl: String
  clientId: String
  usernameClaim: String
  usernamePrefix: String
  groupsClaim: String
  groupsPrefix: String
  requiredClaims: JSON
  tags: JSON
  status: String
}

input AwsEKSDescribeIdentityProviderConfigInput {
  clusterName: String!
  identityProviderConfig: AwsEKSS39Input!
}

input AwsEKSS39Input {
  type: String!
  name: String!
}

type AwsEKSDescribeNodegroupOutput {
  nodegroup: AwsEKSS2c
}

input AwsEKSDescribeNodegroupInput {
  clusterName: String!
  nodegroupName: String!
}

type AwsEKSDescribeUpdateOutput {
  update: AwsEKSS8
}

input AwsEKSDescribeUpdateInput {
  name: String!
  updateId: String!
  nodegroupName: String
  addonName: String
}

type AwsEKSDisassociateIdentityProviderConfigOutput {
  update: AwsEKSS8
}

input AwsEKSDisassociateIdentityProviderConfigInput {
  clusterName: String!
  identityProviderConfig: AwsEKSS39Input!
  clientRequestToken: String
}

type AwsEKSListAddonsOutput {
  addons: [String]
  nextToken: String
}

input AwsEKSListAddonsInput {
  clusterName: String!
  maxResults: Int
  nextToken: String
}

type AwsEKSListClustersOutput {
  clusters: [String]
  nextToken: String
}

input AwsEKSListClustersInput {
  maxResults: Int
  nextToken: String
}

type AwsEKSListFargateProfilesOutput {
  fargateProfileNames: [String]
  nextToken: String
}

input AwsEKSListFargateProfilesInput {
  clusterName: String!
  maxResults: Int
  nextToken: String
}

type AwsEKSListIdentityProviderConfigsOutput {
  identityProviderConfigs: [AwsEKSS39]
  nextToken: String
}

type AwsEKSS39 {
  type: String!
  name: String!
}

input AwsEKSListIdentityProviderConfigsInput {
  clusterName: String!
  maxResults: Int
  nextToken: String
}

type AwsEKSListNodegroupsOutput {
  nodegroups: [String]
  nextToken: String
}

input AwsEKSListNodegroupsInput {
  clusterName: String!
  maxResults: Int
  nextToken: String
}

type AwsEKSListTagsForResourceOutput {
  tags: JSON
}

input AwsEKSListTagsForResourceInput {
  resourceArn: String!
}

type AwsEKSListUpdatesOutput {
  updateIds: [String]
  nextToken: String
}

input AwsEKSListUpdatesInput {
  name: String!
  nodegroupName: String
  addonName: String
  nextToken: String
  maxResults: Int
}

input AwsEKSTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsEKSUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsEKSUpdateAddonOutput {
  update: AwsEKSS8
}

input AwsEKSUpdateAddonInput {
  clusterName: String!
  addonName: String!
  addonVersion: String
  serviceAccountRoleArn: String
  resolveConflicts: String
  clientRequestToken: String
}

type AwsEKSUpdateClusterConfigOutput {
  update: AwsEKSS8
}

input AwsEKSUpdateClusterConfigInput {
  name: String!
  resourcesVpcConfig: AwsEKSS13Input
  logging: AwsEKSS16Input
  clientRequestToken: String
}

type AwsEKSUpdateClusterVersionOutput {
  update: AwsEKSS8
}

input AwsEKSUpdateClusterVersionInput {
  name: String!
  version: String!
  clientRequestToken: String
}

type AwsEKSUpdateNodegroupConfigOutput {
  update: AwsEKSS8
}

input AwsEKSUpdateNodegroupConfigInput {
  clusterName: String!
  nodegroupName: String!
  labels: AwsEKSUpdateNodegroupConfigLabelsInput
  taints: AwsEKSUpdateNodegroupConfigTaintsInput
  scalingConfig: AwsEKSS1sInput
  updateConfig: AwsEKSS27Input
  clientRequestToken: String
}

input AwsEKSUpdateNodegroupConfigLabelsInput {
  addOrUpdateLabels: JSON
  removeLabels: [String]
}

input AwsEKSUpdateNodegroupConfigTaintsInput {
  addOrUpdateTaints: [AwsEKSS21Input]
  removeTaints: [AwsEKSS21Input]
}

type AwsEKSUpdateNodegroupVersionOutput {
  update: AwsEKSS8
}

input AwsEKSUpdateNodegroupVersionInput {
  clusterName: String!
  nodegroupName: String!
  version: String
  releaseVersion: String
  launchTemplate: AwsEKSS26Input
  force: Boolean
  clientRequestToken: String
}

"""Elastic Load Balancing (2012-06-01)"""
type AwsELB {
  addTags(input: AwsELBAddTagsInput!, config: AwsConfig): JSON
  applySecurityGroupsToLoadBalancer(input: AwsELBApplySecurityGroupsToLoadBalancerInput!, config: AwsConfig): AwsELBApplySecurityGroupsToLoadBalancerOutput
  attachLoadBalancerToSubnets(input: AwsELBAttachLoadBalancerToSubnetsInput!, config: AwsConfig): AwsELBAttachLoadBalancerToSubnetsOutput
  configureHealthCheck(input: AwsELBConfigureHealthCheckInput!, config: AwsConfig): AwsELBConfigureHealthCheckOutput
  createAppCookieStickinessPolicy(input: AwsELBCreateAppCookieStickinessPolicyInput!, config: AwsConfig): JSON
  createLBCookieStickinessPolicy(input: AwsELBCreateLBCookieStickinessPolicyInput!, config: AwsConfig): JSON
  createLoadBalancer(input: AwsELBCreateLoadBalancerInput!, config: AwsConfig): AwsELBCreateLoadBalancerOutput
  createLoadBalancerListeners(input: AwsELBCreateLoadBalancerListenersInput!, config: AwsConfig): JSON
  createLoadBalancerPolicy(input: AwsELBCreateLoadBalancerPolicyInput!, config: AwsConfig): JSON
  deleteLoadBalancer(input: AwsELBDeleteLoadBalancerInput!, config: AwsConfig): JSON
  deleteLoadBalancerListeners(input: AwsELBDeleteLoadBalancerListenersInput!, config: AwsConfig): JSON
  deleteLoadBalancerPolicy(input: AwsELBDeleteLoadBalancerPolicyInput!, config: AwsConfig): JSON
  deregisterInstancesFromLoadBalancer(input: AwsELBDeregisterInstancesFromLoadBalancerInput!, config: AwsConfig): AwsELBDeregisterInstancesFromLoadBalancerOutput
  describeAccountLimits(input: AwsELBDescribeAccountLimitsInput, config: AwsConfig): AwsELBDescribeAccountLimitsOutput
  describeInstanceHealth(input: AwsELBDescribeInstanceHealthInput!, config: AwsConfig): AwsELBDescribeInstanceHealthOutput
  describeLoadBalancerAttributes(input: AwsELBDescribeLoadBalancerAttributesInput!, config: AwsConfig): AwsELBDescribeLoadBalancerAttributesOutput
  describeLoadBalancerPolicies(input: AwsELBDescribeLoadBalancerPoliciesInput, config: AwsConfig): AwsELBDescribeLoadBalancerPoliciesOutput
  describeLoadBalancerPolicyTypes(input: AwsELBDescribeLoadBalancerPolicyTypesInput, config: AwsConfig): AwsELBDescribeLoadBalancerPolicyTypesOutput
  describeLoadBalancers(input: AwsELBDescribeLoadBalancersInput, config: AwsConfig): AwsELBDescribeLoadBalancersOutput
  describeTags(input: AwsELBDescribeTagsInput!, config: AwsConfig): AwsELBDescribeTagsOutput
  detachLoadBalancerFromSubnets(input: AwsELBDetachLoadBalancerFromSubnetsInput!, config: AwsConfig): AwsELBDetachLoadBalancerFromSubnetsOutput
  disableAvailabilityZonesForLoadBalancer(input: AwsELBDisableAvailabilityZonesForLoadBalancerInput!, config: AwsConfig): AwsELBDisableAvailabilityZonesForLoadBalancerOutput
  enableAvailabilityZonesForLoadBalancer(input: AwsELBEnableAvailabilityZonesForLoadBalancerInput!, config: AwsConfig): AwsELBEnableAvailabilityZonesForLoadBalancerOutput
  modifyLoadBalancerAttributes(input: AwsELBModifyLoadBalancerAttributesInput!, config: AwsConfig): AwsELBModifyLoadBalancerAttributesOutput
  registerInstancesWithLoadBalancer(input: AwsELBRegisterInstancesWithLoadBalancerInput!, config: AwsConfig): AwsELBRegisterInstancesWithLoadBalancerOutput
  removeTags(input: AwsELBRemoveTagsInput!, config: AwsConfig): JSON
  setLoadBalancerListenerSSLCertificate(input: AwsELBSetLoadBalancerListenerSSLCertificateInput!, config: AwsConfig): JSON
  setLoadBalancerPoliciesForBackendServer(input: AwsELBSetLoadBalancerPoliciesForBackendServerInput!, config: AwsConfig): JSON
  setLoadBalancerPoliciesOfListener(input: AwsELBSetLoadBalancerPoliciesOfListenerInput!, config: AwsConfig): JSON
}

input AwsELBAddTagsInput {
  LoadBalancerNames: [String]!
  Tags: [AwsELBS4Input]!
}

input AwsELBS4Input {
  Key: String!
  Value: String
}

type AwsELBApplySecurityGroupsToLoadBalancerOutput {
  SecurityGroups: [String]
}

input AwsELBApplySecurityGroupsToLoadBalancerInput {
  LoadBalancerName: String!
  SecurityGroups: [String]!
}

type AwsELBAttachLoadBalancerToSubnetsOutput {
  Subnets: [String]
}

input AwsELBAttachLoadBalancerToSubnetsInput {
  LoadBalancerName: String!
  Subnets: [String]!
}

type AwsELBConfigureHealthCheckOutput {
  HealthCheck: AwsELBSi
}

type AwsELBSi {
  Target: String!
  Interval: Int!
  Timeout: Int!
  UnhealthyThreshold: Int!
  HealthyThreshold: Int!
}

input AwsELBConfigureHealthCheckInput {
  LoadBalancerName: String!
  HealthCheck: AwsELBSiInput!
}

input AwsELBSiInput {
  Target: String!
  Interval: Int!
  Timeout: Int!
  UnhealthyThreshold: Int!
  HealthyThreshold: Int!
}

input AwsELBCreateAppCookieStickinessPolicyInput {
  LoadBalancerName: String!
  PolicyName: String!
  CookieName: String!
}

input AwsELBCreateLBCookieStickinessPolicyInput {
  LoadBalancerName: String!
  PolicyName: String!
  CookieExpirationPeriod: JSON
}

type AwsELBCreateLoadBalancerOutput {
  DNSName: String
}

input AwsELBCreateLoadBalancerInput {
  LoadBalancerName: String!
  Listeners: [AwsELBSyInput]!
  AvailabilityZones: [String]
  Subnets: [String]
  SecurityGroups: [String]
  Scheme: String
  Tags: [AwsELBS4Input]
}

input AwsELBSyInput {
  Protocol: String!
  LoadBalancerPort: Int!
  InstanceProtocol: String
  InstancePort: Int!
  SSLCertificateId: String
}

input AwsELBCreateLoadBalancerListenersInput {
  LoadBalancerName: String!
  Listeners: [AwsELBSyInput]!
}

input AwsELBCreateLoadBalancerPolicyInput {
  LoadBalancerName: String!
  PolicyName: String!
  PolicyTypeName: String!
  PolicyAttributes: [AwsELBCreateLoadBalancerPolicyPolicyAttributesInput]
}

input AwsELBCreateLoadBalancerPolicyPolicyAttributesInput {
  AttributeName: String
  AttributeValue: String
}

input AwsELBDeleteLoadBalancerInput {
  LoadBalancerName: String!
}

input AwsELBDeleteLoadBalancerListenersInput {
  LoadBalancerName: String!
  LoadBalancerPorts: [Int]!
}

input AwsELBDeleteLoadBalancerPolicyInput {
  LoadBalancerName: String!
  PolicyName: String!
}

type AwsELBDeregisterInstancesFromLoadBalancerOutput {
  Instances: [AwsELBS1p]
}

type AwsELBS1p {
  InstanceId: String
}

input AwsELBDeregisterInstancesFromLoadBalancerInput {
  LoadBalancerName: String!
  Instances: [AwsELBS1pInput]!
}

input AwsELBS1pInput {
  InstanceId: String
}

type AwsELBDescribeAccountLimitsOutput {
  Limits: [AwsELBDescribeAccountLimitsOutputLimits]
  NextMarker: String
}

type AwsELBDescribeAccountLimitsOutputLimits {
  Name: String
  Max: String
}

input AwsELBDescribeAccountLimitsInput {
  Marker: String
  PageSize: Int
}

type AwsELBDescribeInstanceHealthOutput {
  InstanceStates: [AwsELBDescribeInstanceHealthOutputInstanceStates]
}

type AwsELBDescribeInstanceHealthOutputInstanceStates {
  InstanceId: String
  State: String
  ReasonCode: String
  Description: String
}

input AwsELBDescribeInstanceHealthInput {
  LoadBalancerName: String!
  Instances: [AwsELBS1pInput]
}

type AwsELBDescribeLoadBalancerAttributesOutput {
  LoadBalancerAttributes: AwsELBS2a
}

type AwsELBS2a {
  CrossZoneLoadBalancing: AwsELBS2aCrossZoneLoadBalancing
  AccessLog: AwsELBS2aAccessLog
  ConnectionDraining: AwsELBS2aConnectionDraining
  ConnectionSettings: AwsELBS2aConnectionSettings
  AdditionalAttributes: [AwsELBS2aAdditionalAttributes]
}

type AwsELBS2aCrossZoneLoadBalancing {
  Enabled: Boolean!
}

type AwsELBS2aAccessLog {
  Enabled: Boolean!
  S3BucketName: String
  EmitInterval: Int
  S3BucketPrefix: String
}

type AwsELBS2aConnectionDraining {
  Enabled: Boolean!
  Timeout: Int
}

type AwsELBS2aConnectionSettings {
  IdleTimeout: Int!
}

type AwsELBS2aAdditionalAttributes {
  Key: String
  Value: String
}

input AwsELBDescribeLoadBalancerAttributesInput {
  LoadBalancerName: String!
}

type AwsELBDescribeLoadBalancerPoliciesOutput {
  PolicyDescriptions: [AwsELBDescribeLoadBalancerPoliciesOutputPolicyDescriptions]
}

type AwsELBDescribeLoadBalancerPoliciesOutputPolicyDescriptions {
  PolicyName: String
  PolicyTypeName: String
  PolicyAttributeDescriptions: [AwsELBDescribeLoadBalancerPoliciesOutputPolicyDescriptionsPolicyAttributeDescriptions]
}

type AwsELBDescribeLoadBalancerPoliciesOutputPolicyDescriptionsPolicyAttributeDescriptions {
  AttributeName: String
  AttributeValue: String
}

input AwsELBDescribeLoadBalancerPoliciesInput {
  LoadBalancerName: String
  PolicyNames: [String]
}

type AwsELBDescribeLoadBalancerPolicyTypesOutput {
  PolicyTypeDescriptions: [AwsELBDescribeLoadBalancerPolicyTypesOutputPolicyTypeDescriptions]
}

type AwsELBDescribeLoadBalancerPolicyTypesOutputPolicyTypeDescriptions {
  PolicyTypeName: String
  Description: String
  PolicyAttributeTypeDescriptions: [AwsELBDescribeLoadBalancerPolicyTypesOutputPolicyTypeDescriptionsPolicyAttributeTypeDescriptions]
}

type AwsELBDescribeLoadBalancerPolicyTypesOutputPolicyTypeDescriptionsPolicyAttributeTypeDescriptions {
  AttributeName: String
  AttributeType: String
  Description: String
  DefaultValue: String
  Cardinality: String
}

input AwsELBDescribeLoadBalancerPolicyTypesInput {
  PolicyTypeNames: [String]
}

type AwsELBDescribeLoadBalancersOutput {
  LoadBalancerDescriptions: [AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptions]
  NextMarker: String
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptions {
  LoadBalancerName: String
  DNSName: String
  CanonicalHostedZoneName: String
  CanonicalHostedZoneNameID: String
  ListenerDescriptions: [AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsListenerDescriptions]
  Policies: AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPolicies
  BackendServerDescriptions: [AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsBackendServerDescriptions]
  AvailabilityZones: [String]
  Subnets: [String]
  VPCId: String
  Instances: [AwsELBS1p]
  HealthCheck: AwsELBSi
  SourceSecurityGroup: AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsSourceSecurityGroup
  SecurityGroups: [String]
  CreatedTime: Date
  Scheme: String
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsListenerDescriptions {
  Listener: AwsELBSy
  PolicyNames: [String]
}

type AwsELBSy {
  Protocol: String!
  LoadBalancerPort: Int!
  InstanceProtocol: String
  InstancePort: Int!
  SSLCertificateId: String
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPolicies {
  AppCookieStickinessPolicies: [AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPoliciesAppCookieStickinessPolicies]
  LBCookieStickinessPolicies: [AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPoliciesLBCookieStickinessPolicies]
  OtherPolicies: [String]
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPoliciesAppCookieStickinessPolicies {
  PolicyName: String
  CookieName: String
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsPoliciesLBCookieStickinessPolicies {
  PolicyName: String
  CookieExpirationPeriod: JSON
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsBackendServerDescriptions {
  InstancePort: Int
  PolicyNames: [String]
}

type AwsELBDescribeLoadBalancersOutputLoadBalancerDescriptionsSourceSecurityGroup {
  OwnerAlias: String
  GroupName: String
}

input AwsELBDescribeLoadBalancersInput {
  LoadBalancerNames: [String]
  Marker: String
  PageSize: Int
}

type AwsELBDescribeTagsOutput {
  TagDescriptions: [AwsELBDescribeTagsOutputTagDescriptions]
}

type AwsELBDescribeTagsOutputTagDescriptions {
  LoadBalancerName: String
  Tags: [AwsELBS4]
}

type AwsELBS4 {
  Key: String!
  Value: String
}

input AwsELBDescribeTagsInput {
  LoadBalancerNames: [String]!
}

type AwsELBDetachLoadBalancerFromSubnetsOutput {
  Subnets: [String]
}

input AwsELBDetachLoadBalancerFromSubnetsInput {
  LoadBalancerName: String!
  Subnets: [String]!
}

type AwsELBDisableAvailabilityZonesForLoadBalancerOutput {
  AvailabilityZones: [String]
}

input AwsELBDisableAvailabilityZonesForLoadBalancerInput {
  LoadBalancerName: String!
  AvailabilityZones: [String]!
}

type AwsELBEnableAvailabilityZonesForLoadBalancerOutput {
  AvailabilityZones: [String]
}

input AwsELBEnableAvailabilityZonesForLoadBalancerInput {
  LoadBalancerName: String!
  AvailabilityZones: [String]!
}

type AwsELBModifyLoadBalancerAttributesOutput {
  LoadBalancerName: String
  LoadBalancerAttributes: AwsELBS2a
}

input AwsELBModifyLoadBalancerAttributesInput {
  LoadBalancerName: String!
  LoadBalancerAttributes: AwsELBS2aInput!
}

input AwsELBS2aInput {
  CrossZoneLoadBalancing: AwsELBS2aCrossZoneLoadBalancingInput
  AccessLog: AwsELBS2aAccessLogInput
  ConnectionDraining: AwsELBS2aConnectionDrainingInput
  ConnectionSettings: AwsELBS2aConnectionSettingsInput
  AdditionalAttributes: [AwsELBS2aAdditionalAttributesInput]
}

input AwsELBS2aCrossZoneLoadBalancingInput {
  Enabled: Boolean!
}

input AwsELBS2aAccessLogInput {
  Enabled: Boolean!
  S3BucketName: String
  EmitInterval: Int
  S3BucketPrefix: String
}

input AwsELBS2aConnectionDrainingInput {
  Enabled: Boolean!
  Timeout: Int
}

input AwsELBS2aConnectionSettingsInput {
  IdleTimeout: Int!
}

input AwsELBS2aAdditionalAttributesInput {
  Key: String
  Value: String
}

type AwsELBRegisterInstancesWithLoadBalancerOutput {
  Instances: [AwsELBS1p]
}

input AwsELBRegisterInstancesWithLoadBalancerInput {
  LoadBalancerName: String!
  Instances: [AwsELBS1pInput]!
}

input AwsELBRemoveTagsInput {
  LoadBalancerNames: [String]!
  Tags: [AwsELBRemoveTagsTagsInput]!
}

input AwsELBRemoveTagsTagsInput {
  Key: String
}

input AwsELBSetLoadBalancerListenerSSLCertificateInput {
  LoadBalancerName: String!
  LoadBalancerPort: Int!
  SSLCertificateId: String!
}

input AwsELBSetLoadBalancerPoliciesForBackendServerInput {
  LoadBalancerName: String!
  InstancePort: Int!
  PolicyNames: [String]!
}

input AwsELBSetLoadBalancerPoliciesOfListenerInput {
  LoadBalancerName: String!
  LoadBalancerPort: Int!
  PolicyNames: [String]!
}

"""Elastic Load Balancing (2015-12-01)"""
type AwsELBv2 {
  addListenerCertificates(input: AwsELBv2AddListenerCertificatesInput!, config: AwsConfig): AwsELBv2AddListenerCertificatesOutput
  addTags(input: AwsELBv2AddTagsInput!, config: AwsConfig): JSON
  createListener(input: AwsELBv2CreateListenerInput!, config: AwsConfig): AwsELBv2CreateListenerOutput
  createLoadBalancer(input: AwsELBv2CreateLoadBalancerInput!, config: AwsConfig): AwsELBv2CreateLoadBalancerOutput
  createRule(input: AwsELBv2CreateRuleInput!, config: AwsConfig): AwsELBv2CreateRuleOutput
  createTargetGroup(input: AwsELBv2CreateTargetGroupInput!, config: AwsConfig): AwsELBv2CreateTargetGroupOutput
  deleteListener(input: AwsELBv2DeleteListenerInput!, config: AwsConfig): JSON
  deleteLoadBalancer(input: AwsELBv2DeleteLoadBalancerInput!, config: AwsConfig): JSON
  deleteRule(input: AwsELBv2DeleteRuleInput!, config: AwsConfig): JSON
  deleteTargetGroup(input: AwsELBv2DeleteTargetGroupInput!, config: AwsConfig): JSON
  deregisterTargets(input: AwsELBv2DeregisterTargetsInput!, config: AwsConfig): JSON
  describeAccountLimits(input: AwsELBv2DescribeAccountLimitsInput, config: AwsConfig): AwsELBv2DescribeAccountLimitsOutput
  describeListenerCertificates(input: AwsELBv2DescribeListenerCertificatesInput!, config: AwsConfig): AwsELBv2DescribeListenerCertificatesOutput
  describeListeners(input: AwsELBv2DescribeListenersInput, config: AwsConfig): AwsELBv2DescribeListenersOutput
  describeLoadBalancerAttributes(input: AwsELBv2DescribeLoadBalancerAttributesInput!, config: AwsConfig): AwsELBv2DescribeLoadBalancerAttributesOutput
  describeLoadBalancers(input: AwsELBv2DescribeLoadBalancersInput, config: AwsConfig): AwsELBv2DescribeLoadBalancersOutput
  describeRules(input: AwsELBv2DescribeRulesInput, config: AwsConfig): AwsELBv2DescribeRulesOutput
  describeSSLPolicies(input: AwsELBv2DescribeSSLPoliciesInput, config: AwsConfig): AwsELBv2DescribeSSLPoliciesOutput
  describeTags(input: AwsELBv2DescribeTagsInput!, config: AwsConfig): AwsELBv2DescribeTagsOutput
  describeTargetGroupAttributes(input: AwsELBv2DescribeTargetGroupAttributesInput!, config: AwsConfig): AwsELBv2DescribeTargetGroupAttributesOutput
  describeTargetGroups(input: AwsELBv2DescribeTargetGroupsInput, config: AwsConfig): AwsELBv2DescribeTargetGroupsOutput
  describeTargetHealth(input: AwsELBv2DescribeTargetHealthInput!, config: AwsConfig): AwsELBv2DescribeTargetHealthOutput
  modifyListener(input: AwsELBv2ModifyListenerInput!, config: AwsConfig): AwsELBv2ModifyListenerOutput
  modifyLoadBalancerAttributes(input: AwsELBv2ModifyLoadBalancerAttributesInput!, config: AwsConfig): AwsELBv2ModifyLoadBalancerAttributesOutput
  modifyRule(input: AwsELBv2ModifyRuleInput!, config: AwsConfig): AwsELBv2ModifyRuleOutput
  modifyTargetGroup(input: AwsELBv2ModifyTargetGroupInput!, config: AwsConfig): AwsELBv2ModifyTargetGroupOutput
  modifyTargetGroupAttributes(input: AwsELBv2ModifyTargetGroupAttributesInput!, config: AwsConfig): AwsELBv2ModifyTargetGroupAttributesOutput
  registerTargets(input: AwsELBv2RegisterTargetsInput!, config: AwsConfig): JSON
  removeListenerCertificates(input: AwsELBv2RemoveListenerCertificatesInput!, config: AwsConfig): JSON
  removeTags(input: AwsELBv2RemoveTagsInput!, config: AwsConfig): JSON
  setIpAddressType(input: AwsELBv2SetIpAddressTypeInput!, config: AwsConfig): AwsELBv2SetIpAddressTypeOutput
  setRulePriorities(input: AwsELBv2SetRulePrioritiesInput!, config: AwsConfig): AwsELBv2SetRulePrioritiesOutput
  setSecurityGroups(input: AwsELBv2SetSecurityGroupsInput!, config: AwsConfig): AwsELBv2SetSecurityGroupsOutput
  setSubnets(input: AwsELBv2SetSubnetsInput!, config: AwsConfig): AwsELBv2SetSubnetsOutput
}

type AwsELBv2AddListenerCertificatesOutput {
  Certificates: [AwsELBv2S3]
}

type AwsELBv2S3 {
  CertificateArn: String
  IsDefault: Boolean
}

input AwsELBv2AddListenerCertificatesInput {
  ListenerArn: String!
  Certificates: [AwsELBv2S3Input]!
}

input AwsELBv2S3Input {
  CertificateArn: String
  IsDefault: Boolean
}

input AwsELBv2AddTagsInput {
  ResourceArns: [String]!
  Tags: [AwsELBv2SbInput]!
}

input AwsELBv2SbInput {
  Key: String!
  Value: String
}

type AwsELBv2CreateListenerOutput {
  Listeners: [AwsELBv2S21]
}

type AwsELBv2S21 {
  ListenerArn: String
  LoadBalancerArn: String
  Port: Int
  Protocol: String
  Certificates: [AwsELBv2S3]
  SslPolicy: String
  DefaultActions: [AwsELBv2Sl]
  AlpnPolicy: [String]
}

type AwsELBv2Sl {
  Type: String!
  TargetGroupArn: String
  AuthenticateOidcConfig: AwsELBv2SlAuthenticateOidcConfig
  AuthenticateCognitoConfig: AwsELBv2SlAuthenticateCognitoConfig
  Order: Int
  RedirectConfig: AwsELBv2SlRedirectConfig
  FixedResponseConfig: AwsELBv2SlFixedResponseConfig
  ForwardConfig: AwsELBv2SlForwardConfig
}

type AwsELBv2SlAuthenticateOidcConfig {
  Issuer: String!
  AuthorizationEndpoint: String!
  TokenEndpoint: String!
  UserInfoEndpoint: String!
  ClientId: String!
  ClientSecret: String
  SessionCookieName: String
  Scope: String
  SessionTimeout: JSON
  AuthenticationRequestExtraParams: JSON
  OnUnauthenticatedRequest: String
  UseExistingClientSecret: Boolean
}

type AwsELBv2SlAuthenticateCognitoConfig {
  UserPoolArn: String!
  UserPoolClientId: String!
  UserPoolDomain: String!
  SessionCookieName: String
  Scope: String
  SessionTimeout: JSON
  AuthenticationRequestExtraParams: JSON
  OnUnauthenticatedRequest: String
}

type AwsELBv2SlRedirectConfig {
  Protocol: String
  Port: String
  Host: String
  Path: String
  Query: String
  StatusCode: String!
}

type AwsELBv2SlFixedResponseConfig {
  MessageBody: String
  StatusCode: String!
  ContentType: String
}

type AwsELBv2SlForwardConfig {
  TargetGroups: [AwsELBv2SlForwardConfigTargetGroups]
  TargetGroupStickinessConfig: AwsELBv2SlForwardConfigTargetGroupStickinessConfig
}

type AwsELBv2SlForwardConfigTargetGroups {
  TargetGroupArn: String
  Weight: Int
}

type AwsELBv2SlForwardConfigTargetGroupStickinessConfig {
  Enabled: Boolean
  DurationSeconds: Int
}

input AwsELBv2CreateListenerInput {
  LoadBalancerArn: String!
  Protocol: String
  Port: Int
  SslPolicy: String
  Certificates: [AwsELBv2S3Input]
  DefaultActions: [AwsELBv2SlInput]!
  AlpnPolicy: [String]
  Tags: [AwsELBv2SbInput]
}

input AwsELBv2SlInput {
  Type: String!
  TargetGroupArn: String
  AuthenticateOidcConfig: AwsELBv2SlAuthenticateOidcConfigInput
  AuthenticateCognitoConfig: AwsELBv2SlAuthenticateCognitoConfigInput
  Order: Int
  RedirectConfig: AwsELBv2SlRedirectConfigInput
  FixedResponseConfig: AwsELBv2SlFixedResponseConfigInput
  ForwardConfig: AwsELBv2SlForwardConfigInput
}

input AwsELBv2SlAuthenticateOidcConfigInput {
  Issuer: String!
  AuthorizationEndpoint: String!
  TokenEndpoint: String!
  UserInfoEndpoint: String!
  ClientId: String!
  ClientSecret: String
  SessionCookieName: String
  Scope: String
  SessionTimeout: JSON
  AuthenticationRequestExtraParams: JSON
  OnUnauthenticatedRequest: String
  UseExistingClientSecret: Boolean
}

input AwsELBv2SlAuthenticateCognitoConfigInput {
  UserPoolArn: String!
  UserPoolClientId: String!
  UserPoolDomain: String!
  SessionCookieName: String
  Scope: String
  SessionTimeout: JSON
  AuthenticationRequestExtraParams: JSON
  OnUnauthenticatedRequest: String
}

input AwsELBv2SlRedirectConfigInput {
  Protocol: String
  Port: String
  Host: String
  Path: String
  Query: String
  StatusCode: String!
}

input AwsELBv2SlFixedResponseConfigInput {
  MessageBody: String
  StatusCode: String!
  ContentType: String
}

input AwsELBv2SlForwardConfigInput {
  TargetGroups: [AwsELBv2SlForwardConfigTargetGroupsInput]
  TargetGroupStickinessConfig: AwsELBv2SlForwardConfigTargetGroupStickinessConfigInput
}

input AwsELBv2SlForwardConfigTargetGroupsInput {
  TargetGroupArn: String
  Weight: Int
}

input AwsELBv2SlForwardConfigTargetGroupStickinessConfigInput {
  Enabled: Boolean
  DurationSeconds: Int
}

type AwsELBv2CreateLoadBalancerOutput {
  LoadBalancers: [AwsELBv2S2j]
}

type AwsELBv2S2j {
  LoadBalancerArn: String
  DNSName: String
  CanonicalHostedZoneId: String
  CreatedTime: Date
  LoadBalancerName: String
  Scheme: String
  VpcId: String
  State: AwsELBv2S2jState
  Type: String
  AvailabilityZones: [AwsELBv2S2s]
  SecurityGroups: [String]
  IpAddressType: String
  CustomerOwnedIpv4Pool: String
}

type AwsELBv2S2jState {
  Code: String
  Reason: String
}

type AwsELBv2S2s {
  ZoneName: String
  SubnetId: String
  OutpostId: String
  LoadBalancerAddresses: [AwsELBv2S2sLoadBalancerAddresses]
}

type AwsELBv2S2sLoadBalancerAddresses {
  IpAddress: String
  AllocationId: String
  PrivateIPv4Address: String
  IPv6Address: String
}

input AwsELBv2CreateLoadBalancerInput {
  Name: String!
  Subnets: [String]
  SubnetMappings: [AwsELBv2S27Input]
  SecurityGroups: [String]
  Scheme: String
  Tags: [AwsELBv2SbInput]
  Type: String
  IpAddressType: String
  CustomerOwnedIpv4Pool: String
}

input AwsELBv2S27Input {
  SubnetId: String
  AllocationId: String
  PrivateIPv4Address: String
  IPv6Address: String
}

type AwsELBv2CreateRuleOutput {
  Rules: [AwsELBv2S3g]
}

type AwsELBv2S3g {
  RuleArn: String
  Priority: String
  Conditions: [AwsELBv2S30]
  Actions: [AwsELBv2Sl]
  IsDefault: Boolean
}

type AwsELBv2S30 {
  Field: String
  Values: [String]
  HostHeaderConfig: AwsELBv2S30HostHeaderConfig
  PathPatternConfig: AwsELBv2S30PathPatternConfig
  HttpHeaderConfig: AwsELBv2S30HttpHeaderConfig
  QueryStringConfig: AwsELBv2S30QueryStringConfig
  HttpRequestMethodConfig: AwsELBv2S30HttpRequestMethodConfig
  SourceIpConfig: AwsELBv2S30SourceIpConfig
}

type AwsELBv2S30HostHeaderConfig {
  Values: [String]
}

type AwsELBv2S30PathPatternConfig {
  Values: [String]
}

type AwsELBv2S30HttpHeaderConfig {
  HttpHeaderName: String
  Values: [String]
}

type AwsELBv2S30QueryStringConfig {
  Values: [AwsELBv2S30QueryStringConfigValues]
}

type AwsELBv2S30QueryStringConfigValues {
  Key: String
  Value: String
}

type AwsELBv2S30HttpRequestMethodConfig {
  Values: [String]
}

type AwsELBv2S30SourceIpConfig {
  Values: [String]
}

input AwsELBv2CreateRuleInput {
  ListenerArn: String!
  Conditions: [AwsELBv2S30Input]!
  Priority: Int!
  Actions: [AwsELBv2SlInput]!
  Tags: [AwsELBv2SbInput]
}

input AwsELBv2S30Input {
  Field: String
  Values: [String]
  HostHeaderConfig: AwsELBv2S30HostHeaderConfigInput
  PathPatternConfig: AwsELBv2S30PathPatternConfigInput
  HttpHeaderConfig: AwsELBv2S30HttpHeaderConfigInput
  QueryStringConfig: AwsELBv2S30QueryStringConfigInput
  HttpRequestMethodConfig: AwsELBv2S30HttpRequestMethodConfigInput
  SourceIpConfig: AwsELBv2S30SourceIpConfigInput
}

input AwsELBv2S30HostHeaderConfigInput {
  Values: [String]
}

input AwsELBv2S30PathPatternConfigInput {
  Values: [String]
}

input AwsELBv2S30HttpHeaderConfigInput {
  HttpHeaderName: String
  Values: [String]
}

input AwsELBv2S30QueryStringConfigInput {
  Values: [AwsELBv2S30QueryStringConfigValuesInput]
}

input AwsELBv2S30QueryStringConfigValuesInput {
  Key: String
  Value: String
}

input AwsELBv2S30HttpRequestMethodConfigInput {
  Values: [String]
}

input AwsELBv2S30SourceIpConfigInput {
  Values: [String]
}

type AwsELBv2CreateTargetGroupOutput {
  TargetGroups: [AwsELBv2S3z]
}

type AwsELBv2S3z {
  TargetGroupArn: String
  TargetGroupName: String
  Protocol: String
  Port: Int
  VpcId: String
  HealthCheckProtocol: String
  HealthCheckPort: String
  HealthCheckEnabled: Boolean
  HealthCheckIntervalSeconds: Int
  HealthCheckTimeoutSeconds: Int
  HealthyThresholdCount: Int
  UnhealthyThresholdCount: Int
  HealthCheckPath: String
  Matcher: AwsELBv2S3u
  LoadBalancerArns: [String]
  TargetType: String
  ProtocolVersion: String
}

type AwsELBv2S3u {
  HttpCode: String
  GrpcCode: String
}

input AwsELBv2CreateTargetGroupInput {
  Name: String!
  Protocol: String
  ProtocolVersion: String
  Port: Int
  VpcId: String
  HealthCheckProtocol: String
  HealthCheckPort: String
  HealthCheckEnabled: Boolean
  HealthCheckPath: String
  HealthCheckIntervalSeconds: Int
  HealthCheckTimeoutSeconds: Int
  HealthyThresholdCount: Int
  UnhealthyThresholdCount: Int
  Matcher: AwsELBv2S3uInput
  TargetType: String
  Tags: [AwsELBv2SbInput]
}

input AwsELBv2S3uInput {
  HttpCode: String
  GrpcCode: String
}

input AwsELBv2DeleteListenerInput {
  ListenerArn: String!
}

input AwsELBv2DeleteLoadBalancerInput {
  LoadBalancerArn: String!
}

input AwsELBv2DeleteRuleInput {
  RuleArn: String!
}

input AwsELBv2DeleteTargetGroupInput {
  TargetGroupArn: String!
}

input AwsELBv2DeregisterTargetsInput {
  TargetGroupArn: String!
  Targets: [AwsELBv2S4cInput]!
}

input AwsELBv2S4cInput {
  Id: String!
  Port: Int
  AvailabilityZone: String
}

type AwsELBv2DescribeAccountLimitsOutput {
  Limits: [AwsELBv2DescribeAccountLimitsOutputLimits]
  NextMarker: String
}

type AwsELBv2DescribeAccountLimitsOutputLimits {
  Name: String
  Max: String
}

input AwsELBv2DescribeAccountLimitsInput {
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeListenerCertificatesOutput {
  Certificates: [AwsELBv2S3]
  NextMarker: String
}

input AwsELBv2DescribeListenerCertificatesInput {
  ListenerArn: String!
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeListenersOutput {
  Listeners: [AwsELBv2S21]
  NextMarker: String
}

input AwsELBv2DescribeListenersInput {
  LoadBalancerArn: String
  ListenerArns: [String]
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeLoadBalancerAttributesOutput {
  Attributes: [AwsELBv2S4u]
}

type AwsELBv2S4u {
  Key: String
  Value: String
}

input AwsELBv2DescribeLoadBalancerAttributesInput {
  LoadBalancerArn: String!
}

type AwsELBv2DescribeLoadBalancersOutput {
  LoadBalancers: [AwsELBv2S2j]
  NextMarker: String
}

input AwsELBv2DescribeLoadBalancersInput {
  LoadBalancerArns: [String]
  Names: [String]
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeRulesOutput {
  Rules: [AwsELBv2S3g]
  NextMarker: String
}

input AwsELBv2DescribeRulesInput {
  ListenerArn: String
  RuleArns: [String]
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeSSLPoliciesOutput {
  SslPolicies: [AwsELBv2DescribeSSLPoliciesOutputSslPolicies]
  NextMarker: String
}

type AwsELBv2DescribeSSLPoliciesOutputSslPolicies {
  SslProtocols: [String]
  Ciphers: [AwsELBv2DescribeSSLPoliciesOutputSslPoliciesCiphers]
  Name: String
}

type AwsELBv2DescribeSSLPoliciesOutputSslPoliciesCiphers {
  Name: String
  Priority: Int
}

input AwsELBv2DescribeSSLPoliciesInput {
  Names: [String]
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeTagsOutput {
  TagDescriptions: [AwsELBv2DescribeTagsOutputTagDescriptions]
}

type AwsELBv2DescribeTagsOutputTagDescriptions {
  ResourceArn: String
  Tags: [AwsELBv2Sb]
}

type AwsELBv2Sb {
  Key: String!
  Value: String
}

input AwsELBv2DescribeTagsInput {
  ResourceArns: [String]!
}

type AwsELBv2DescribeTargetGroupAttributesOutput {
  Attributes: [AwsELBv2S5l]
}

type AwsELBv2S5l {
  Key: String
  Value: String
}

input AwsELBv2DescribeTargetGroupAttributesInput {
  TargetGroupArn: String!
}

type AwsELBv2DescribeTargetGroupsOutput {
  TargetGroups: [AwsELBv2S3z]
  NextMarker: String
}

input AwsELBv2DescribeTargetGroupsInput {
  LoadBalancerArn: String
  TargetGroupArns: [String]
  Names: [String]
  Marker: String
  PageSize: Int
}

type AwsELBv2DescribeTargetHealthOutput {
  TargetHealthDescriptions: [AwsELBv2DescribeTargetHealthOutputTargetHealthDescriptions]
}

type AwsELBv2DescribeTargetHealthOutputTargetHealthDescriptions {
  Target: AwsELBv2S4c
  HealthCheckPort: String
  TargetHealth: AwsELBv2DescribeTargetHealthOutputTargetHealthDescriptionsTargetHealth
}

type AwsELBv2S4c {
  Id: String!
  Port: Int
  AvailabilityZone: String
}

type AwsELBv2DescribeTargetHealthOutputTargetHealthDescriptionsTargetHealth {
  State: String
  Reason: String
  Description: String
}

input AwsELBv2DescribeTargetHealthInput {
  TargetGroupArn: String!
  Targets: [AwsELBv2S4cInput]
}

type AwsELBv2ModifyListenerOutput {
  Listeners: [AwsELBv2S21]
}

input AwsELBv2ModifyListenerInput {
  ListenerArn: String!
  Port: Int
  Protocol: String
  SslPolicy: String
  Certificates: [AwsELBv2S3Input]
  DefaultActions: [AwsELBv2SlInput]
  AlpnPolicy: [String]
}

type AwsELBv2ModifyLoadBalancerAttributesOutput {
  Attributes: [AwsELBv2S4u]
}

input AwsELBv2ModifyLoadBalancerAttributesInput {
  LoadBalancerArn: String!
  Attributes: [AwsELBv2S4uInput]!
}

input AwsELBv2S4uInput {
  Key: String
  Value: String
}

type AwsELBv2ModifyRuleOutput {
  Rules: [AwsELBv2S3g]
}

input AwsELBv2ModifyRuleInput {
  RuleArn: String!
  Conditions: [AwsELBv2S30Input]
  Actions: [AwsELBv2SlInput]
}

type AwsELBv2ModifyTargetGroupOutput {
  TargetGroups: [AwsELBv2S3z]
}

input AwsELBv2ModifyTargetGroupInput {
  TargetGroupArn: String!
  HealthCheckProtocol: String
  HealthCheckPort: String
  HealthCheckPath: String
  HealthCheckEnabled: Boolean
  HealthCheckIntervalSeconds: Int
  HealthCheckTimeoutSeconds: Int
  HealthyThresholdCount: Int
  UnhealthyThresholdCount: Int
  Matcher: AwsELBv2S3uInput
}

type AwsELBv2ModifyTargetGroupAttributesOutput {
  Attributes: [AwsELBv2S5l]
}

input AwsELBv2ModifyTargetGroupAttributesInput {
  TargetGroupArn: String!
  Attributes: [AwsELBv2S5lInput]!
}

input AwsELBv2S5lInput {
  Key: String
  Value: String
}

input AwsELBv2RegisterTargetsInput {
  TargetGroupArn: String!
  Targets: [AwsELBv2S4cInput]!
}

input AwsELBv2RemoveListenerCertificatesInput {
  ListenerArn: String!
  Certificates: [AwsELBv2S3Input]!
}

input AwsELBv2RemoveTagsInput {
  ResourceArns: [String]!
  TagKeys: [String]!
}

type AwsELBv2SetIpAddressTypeOutput {
  IpAddressType: String
}

input AwsELBv2SetIpAddressTypeInput {
  LoadBalancerArn: String!
  IpAddressType: String!
}

type AwsELBv2SetRulePrioritiesOutput {
  Rules: [AwsELBv2S3g]
}

input AwsELBv2SetRulePrioritiesInput {
  RulePriorities: [AwsELBv2SetRulePrioritiesRulePrioritiesInput]!
}

input AwsELBv2SetRulePrioritiesRulePrioritiesInput {
  RuleArn: String
  Priority: Int
}

type AwsELBv2SetSecurityGroupsOutput {
  SecurityGroupIds: [String]
}

input AwsELBv2SetSecurityGroupsInput {
  LoadBalancerArn: String!
  SecurityGroups: [String]!
}

type AwsELBv2SetSubnetsOutput {
  AvailabilityZones: [AwsELBv2S2s]
  IpAddressType: String
}

input AwsELBv2SetSubnetsInput {
  LoadBalancerArn: String!
  Subnets: [String]
  SubnetMappings: [AwsELBv2S27Input]
  IpAddressType: String
}

"""Amazon Elastic MapReduce (2009-03-31)"""
type AwsEMR {
  addInstanceFleet(input: AwsEMRAddInstanceFleetInput!, config: AwsConfig): AwsEMRAddInstanceFleetOutput
  addInstanceGroups(input: AwsEMRAddInstanceGroupsInput!, config: AwsConfig): AwsEMRAddInstanceGroupsOutput
  addJobFlowSteps(input: AwsEMRAddJobFlowStepsInput!, config: AwsConfig): AwsEMRAddJobFlowStepsOutput
  addTags(input: AwsEMRAddTagsInput!, config: AwsConfig): JSON
  cancelSteps(input: AwsEMRCancelStepsInput!, config: AwsConfig): AwsEMRCancelStepsOutput
  createSecurityConfiguration(input: AwsEMRCreateSecurityConfigurationInput!, config: AwsConfig): AwsEMRCreateSecurityConfigurationOutput
  createStudio(input: AwsEMRCreateStudioInput!, config: AwsConfig): AwsEMRCreateStudioOutput
  createStudioSessionMapping(input: AwsEMRCreateStudioSessionMappingInput!, config: AwsConfig): JSON
  deleteSecurityConfiguration(input: AwsEMRDeleteSecurityConfigurationInput!, config: AwsConfig): JSON
  deleteStudio(input: AwsEMRDeleteStudioInput!, config: AwsConfig): JSON
  deleteStudioSessionMapping(input: AwsEMRDeleteStudioSessionMappingInput!, config: AwsConfig): JSON
  describeCluster(input: AwsEMRDescribeClusterInput!, config: AwsConfig): AwsEMRDescribeClusterOutput
  describeJobFlows(input: AwsEMRDescribeJobFlowsInput, config: AwsConfig): AwsEMRDescribeJobFlowsOutput
  describeNotebookExecution(input: AwsEMRDescribeNotebookExecutionInput!, config: AwsConfig): AwsEMRDescribeNotebookExecutionOutput
  describeSecurityConfiguration(input: AwsEMRDescribeSecurityConfigurationInput!, config: AwsConfig): AwsEMRDescribeSecurityConfigurationOutput
  describeStep(input: AwsEMRDescribeStepInput!, config: AwsConfig): AwsEMRDescribeStepOutput
  describeStudio(input: AwsEMRDescribeStudioInput!, config: AwsConfig): AwsEMRDescribeStudioOutput
  getBlockPublicAccessConfiguration(input: JSON, config: AwsConfig): AwsEMRGetBlockPublicAccessConfigurationOutput
  getManagedScalingPolicy(input: AwsEMRGetManagedScalingPolicyInput!, config: AwsConfig): AwsEMRGetManagedScalingPolicyOutput
  getStudioSessionMapping(input: AwsEMRGetStudioSessionMappingInput!, config: AwsConfig): AwsEMRGetStudioSessionMappingOutput
  listBootstrapActions(input: AwsEMRListBootstrapActionsInput!, config: AwsConfig): AwsEMRListBootstrapActionsOutput
  listClusters(input: AwsEMRListClustersInput, config: AwsConfig): AwsEMRListClustersOutput
  listInstanceFleets(input: AwsEMRListInstanceFleetsInput!, config: AwsConfig): AwsEMRListInstanceFleetsOutput
  listInstanceGroups(input: AwsEMRListInstanceGroupsInput!, config: AwsConfig): AwsEMRListInstanceGroupsOutput
  listInstances(input: AwsEMRListInstancesInput!, config: AwsConfig): AwsEMRListInstancesOutput
  listNotebookExecutions(input: AwsEMRListNotebookExecutionsInput, config: AwsConfig): AwsEMRListNotebookExecutionsOutput
  listSecurityConfigurations(input: AwsEMRListSecurityConfigurationsInput, config: AwsConfig): AwsEMRListSecurityConfigurationsOutput
  listSteps(input: AwsEMRListStepsInput!, config: AwsConfig): AwsEMRListStepsOutput
  listStudioSessionMappings(input: AwsEMRListStudioSessionMappingsInput, config: AwsConfig): AwsEMRListStudioSessionMappingsOutput
  listStudios(input: AwsEMRListStudiosInput, config: AwsConfig): AwsEMRListStudiosOutput
  modifyCluster(input: AwsEMRModifyClusterInput!, config: AwsConfig): AwsEMRModifyClusterOutput
  modifyInstanceFleet(input: AwsEMRModifyInstanceFleetInput!, config: AwsConfig): JSON
  modifyInstanceGroups(input: AwsEMRModifyInstanceGroupsInput, config: AwsConfig): JSON
  putAutoScalingPolicy(input: AwsEMRPutAutoScalingPolicyInput!, config: AwsConfig): AwsEMRPutAutoScalingPolicyOutput
  putBlockPublicAccessConfiguration(input: AwsEMRPutBlockPublicAccessConfigurationInput!, config: AwsConfig): JSON
  putManagedScalingPolicy(input: AwsEMRPutManagedScalingPolicyInput!, config: AwsConfig): JSON
  removeAutoScalingPolicy(input: AwsEMRRemoveAutoScalingPolicyInput!, config: AwsConfig): JSON
  removeManagedScalingPolicy(input: AwsEMRRemoveManagedScalingPolicyInput!, config: AwsConfig): JSON
  removeTags(input: AwsEMRRemoveTagsInput!, config: AwsConfig): JSON
  runJobFlow(input: AwsEMRRunJobFlowInput!, config: AwsConfig): AwsEMRRunJobFlowOutput
  setTerminationProtection(input: AwsEMRSetTerminationProtectionInput!, config: AwsConfig): JSON
  setVisibleToAllUsers(input: AwsEMRSetVisibleToAllUsersInput!, config: AwsConfig): JSON
  startNotebookExecution(input: AwsEMRStartNotebookExecutionInput!, config: AwsConfig): AwsEMRStartNotebookExecutionOutput
  stopNotebookExecution(input: AwsEMRStopNotebookExecutionInput!, config: AwsConfig): JSON
  terminateJobFlows(input: AwsEMRTerminateJobFlowsInput!, config: AwsConfig): JSON
  updateStudio(input: AwsEMRUpdateStudioInput!, config: AwsConfig): JSON
  updateStudioSessionMapping(input: AwsEMRUpdateStudioSessionMappingInput!, config: AwsConfig): JSON
}

type AwsEMRAddInstanceFleetOutput {
  ClusterId: String
  InstanceFleetId: String
  ClusterArn: String
}

input AwsEMRAddInstanceFleetInput {
  ClusterId: String!
  InstanceFleet: AwsEMRS3Input!
}

input AwsEMRS3Input {
  Name: String
  InstanceFleetType: String!
  TargetOnDemandCapacity: Int
  TargetSpotCapacity: Int
  InstanceTypeConfigs: [AwsEMRS3InstanceTypeConfigsInput]
  LaunchSpecifications: AwsEMRSkInput
}

input AwsEMRS3InstanceTypeConfigsInput {
  InstanceType: String!
  WeightedCapacity: Int
  BidPrice: String
  BidPriceAsPercentageOfOnDemandPrice: JSON
  EbsConfiguration: AwsEMRSaInput
  Configurations: [AwsEMRShInput]
}

input AwsEMRSaInput {
  EbsBlockDeviceConfigs: [AwsEMRSaEbsBlockDeviceConfigsInput]
  EbsOptimized: Boolean
}

input AwsEMRSaEbsBlockDeviceConfigsInput {
  VolumeSpecification: AwsEMRSdInput!
  VolumesPerInstance: Int
}

input AwsEMRSdInput {
  VolumeType: String!
  Iops: Int
  SizeInGB: Int!
}

input AwsEMRShInput {
  Classification: String
  Configurations: JSON
  Properties: JSON
}

input AwsEMRSkInput {
  SpotSpecification: AwsEMRSkSpotSpecificationInput
  OnDemandSpecification: AwsEMRSkOnDemandSpecificationInput
}

input AwsEMRSkSpotSpecificationInput {
  TimeoutDurationMinutes: Int!
  TimeoutAction: String!
  BlockDurationMinutes: Int
  AllocationStrategy: String
}

input AwsEMRSkOnDemandSpecificationInput {
  AllocationStrategy: String!
  CapacityReservationOptions: AwsEMRSkOnDemandSpecificationCapacityReservationOptionsInput
}

input AwsEMRSkOnDemandSpecificationCapacityReservationOptionsInput {
  UsageStrategy: String
  CapacityReservationPreference: String
  CapacityReservationResourceGroupArn: String
}

type AwsEMRAddInstanceGroupsOutput {
  JobFlowId: String
  InstanceGroupIds: [String]
  ClusterArn: String
}

input AwsEMRAddInstanceGroupsInput {
  InstanceGroups: [AwsEMRSxInput]!
  JobFlowId: String!
}

input AwsEMRSxInput {
  Name: String
  Market: String
  InstanceRole: String!
  BidPrice: String
  InstanceType: String!
  InstanceCount: Int!
  Configurations: [AwsEMRShInput]
  EbsConfiguration: AwsEMRSaInput
  AutoScalingPolicy: AwsEMRS11Input
}

input AwsEMRS11Input {
  Constraints: AwsEMRS12Input!
  Rules: [AwsEMRS13Input]!
}

input AwsEMRS12Input {
  MinCapacity: Int!
  MaxCapacity: Int!
}

input AwsEMRS13Input {
  Name: String!
  Description: String
  Action: AwsEMRS13ActionInput!
  Trigger: AwsEMRS13TriggerInput!
}

input AwsEMRS13ActionInput {
  Market: String
  SimpleScalingPolicyConfiguration: AwsEMRS13ActionSimpleScalingPolicyConfigurationInput!
}

input AwsEMRS13ActionSimpleScalingPolicyConfigurationInput {
  AdjustmentType: String
  ScalingAdjustment: Int!
  CoolDown: Int
}

input AwsEMRS13TriggerInput {
  CloudWatchAlarmDefinition: AwsEMRS13TriggerCloudWatchAlarmDefinitionInput!
}

input AwsEMRS13TriggerCloudWatchAlarmDefinitionInput {
  ComparisonOperator: String!
  EvaluationPeriods: Int
  MetricName: String!
  Namespace: String
  Period: Int!
  Statistic: String
  Threshold: JSON!
  Unit: String
  Dimensions: [AwsEMRS13TriggerCloudWatchAlarmDefinitionDimensionsInput]
}

input AwsEMRS13TriggerCloudWatchAlarmDefinitionDimensionsInput {
  Key: String
  Value: String
}

type AwsEMRAddJobFlowStepsOutput {
  StepIds: [String]
}

input AwsEMRAddJobFlowStepsInput {
  JobFlowId: String!
  Steps: [AwsEMRS1jInput]!
}

input AwsEMRS1jInput {
  Name: String!
  ActionOnFailure: String
  HadoopJarStep: AwsEMRS1jHadoopJarStepInput!
}

input AwsEMRS1jHadoopJarStepInput {
  Properties: [AwsEMRS1jHadoopJarStepPropertiesInput]
  Jar: String!
  MainClass: String
  Args: [String]
}

input AwsEMRS1jHadoopJarStepPropertiesInput {
  Key: String
  Value: String
}

input AwsEMRAddTagsInput {
  ResourceId: String!
  Tags: [AwsEMRS1uInput]!
}

input AwsEMRS1uInput {
  Key: String
  Value: String
}

type AwsEMRCancelStepsOutput {
  CancelStepsInfoList: [AwsEMRCancelStepsOutputCancelStepsInfoList]
}

type AwsEMRCancelStepsOutputCancelStepsInfoList {
  StepId: String
  Status: String
  Reason: String
}

input AwsEMRCancelStepsInput {
  ClusterId: String!
  StepIds: [String]!
  StepCancellationOption: String
}

type AwsEMRCreateSecurityConfigurationOutput {
  Name: String!
  CreationDateTime: Date!
}

input AwsEMRCreateSecurityConfigurationInput {
  Name: String!
  SecurityConfiguration: String!
}

type AwsEMRCreateStudioOutput {
  StudioId: String
  Url: String
}

input AwsEMRCreateStudioInput {
  Name: String!
  Description: String
  AuthMode: String!
  VpcId: String!
  SubnetIds: [String]!
  ServiceRole: String!
  UserRole: String!
  WorkspaceSecurityGroupId: String!
  EngineSecurityGroupId: String!
  DefaultS3Location: String!
  Tags: [AwsEMRS1uInput]
}

input AwsEMRCreateStudioSessionMappingInput {
  StudioId: String!
  IdentityId: String
  IdentityName: String
  IdentityType: String!
  SessionPolicyArn: String!
}

input AwsEMRDeleteSecurityConfigurationInput {
  Name: String!
}

input AwsEMRDeleteStudioInput {
  StudioId: String!
}

input AwsEMRDeleteStudioSessionMappingInput {
  StudioId: String!
  IdentityId: String
  IdentityName: String
  IdentityType: String!
}

type AwsEMRDescribeClusterOutput {
  Cluster: AwsEMRDescribeClusterOutputCluster
}

type AwsEMRDescribeClusterOutputCluster {
  Id: String
  Name: String
  Status: AwsEMRS2l
  Ec2InstanceAttributes: AwsEMRDescribeClusterOutputClusterEc2InstanceAttributes
  InstanceCollectionType: String
  LogUri: String
  LogEncryptionKmsKeyId: String
  RequestedAmiVersion: String
  RunningAmiVersion: String
  ReleaseLabel: String
  AutoTerminate: Boolean
  TerminationProtected: Boolean
  VisibleToAllUsers: Boolean
  Applications: [AwsEMRS2v]
  Tags: [AwsEMRS1u]
  ServiceRole: String
  NormalizedInstanceHours: Int
  MasterPublicDnsName: String
  Configurations: [AwsEMRSh]
  SecurityConfiguration: String
  AutoScalingRole: String
  ScaleDownBehavior: String
  CustomAmiId: String
  EbsRootVolumeSize: Int
  RepoUpgradeOnBoot: String
  KerberosAttributes: AwsEMRS2z
  ClusterArn: String
  OutpostArn: String
  StepConcurrencyLevel: Int
  PlacementGroups: [AwsEMRS31]
}

type AwsEMRS2l {
  State: String
  StateChangeReason: AwsEMRS2lStateChangeReason
  Timeline: AwsEMRS2lTimeline
}

type AwsEMRS2lStateChangeReason {
  Code: String
  Message: String
}

type AwsEMRS2lTimeline {
  CreationDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
}

type AwsEMRDescribeClusterOutputClusterEc2InstanceAttributes {
  Ec2KeyName: String
  Ec2SubnetId: String
  RequestedEc2SubnetIds: [String]
  Ec2AvailabilityZone: String
  RequestedEc2AvailabilityZones: [String]
  IamInstanceProfile: String
  EmrManagedMasterSecurityGroup: String
  EmrManagedSlaveSecurityGroup: String
  ServiceAccessSecurityGroup: String
  AdditionalMasterSecurityGroups: [String]
  AdditionalSlaveSecurityGroups: [String]
}

type AwsEMRS2v {
  Name: String
  Version: String
  Args: [String]
  AdditionalInfo: JSON
}

type AwsEMRS1u {
  Key: String
  Value: String
}

type AwsEMRSh {
  Classification: String
  Configurations: JSON
  Properties: JSON
}

type AwsEMRS2z {
  Realm: String!
  KdcAdminPassword: String!
  CrossRealmTrustPrincipalPassword: String
  ADDomainJoinUser: String
  ADDomainJoinPassword: String
}

type AwsEMRS31 {
  InstanceRole: String!
  PlacementStrategy: String
}

input AwsEMRDescribeClusterInput {
  ClusterId: String!
}

type AwsEMRDescribeJobFlowsOutput {
  JobFlows: [AwsEMRDescribeJobFlowsOutputJobFlows]
}

type AwsEMRDescribeJobFlowsOutputJobFlows {
  JobFlowId: String!
  Name: String!
  LogUri: String
  LogEncryptionKmsKeyId: String
  AmiVersion: String
  ExecutionStatusDetail: AwsEMRDescribeJobFlowsOutputJobFlowsExecutionStatusDetail!
  Instances: AwsEMRDescribeJobFlowsOutputJobFlowsInstances!
  Steps: [AwsEMRDescribeJobFlowsOutputJobFlowsSteps]
  BootstrapActions: [AwsEMRDescribeJobFlowsOutputJobFlowsBootstrapActions]
  SupportedProducts: [String]
  VisibleToAllUsers: Boolean
  JobFlowRole: String
  ServiceRole: String
  AutoScalingRole: String
  ScaleDownBehavior: String
}

type AwsEMRDescribeJobFlowsOutputJobFlowsExecutionStatusDetail {
  State: String!
  CreationDateTime: Date!
  StartDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
  LastStateChangeReason: String
}

type AwsEMRDescribeJobFlowsOutputJobFlowsInstances {
  MasterInstanceType: String!
  MasterPublicDnsName: String
  MasterInstanceId: String
  SlaveInstanceType: String!
  InstanceCount: Int!
  InstanceGroups: [AwsEMRDescribeJobFlowsOutputJobFlowsInstancesInstanceGroups]
  NormalizedInstanceHours: Int
  Ec2KeyName: String
  Ec2SubnetId: String
  Placement: AwsEMRS3f
  KeepJobFlowAliveWhenNoSteps: Boolean
  TerminationProtected: Boolean
  HadoopVersion: String
}

type AwsEMRDescribeJobFlowsOutputJobFlowsInstancesInstanceGroups {
  InstanceGroupId: String
  Name: String
  Market: String!
  InstanceRole: String!
  BidPrice: String
  InstanceType: String!
  InstanceRequestCount: Int!
  InstanceRunningCount: Int!
  State: String!
  LastStateChangeReason: String
  CreationDateTime: Date!
  StartDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
}

type AwsEMRS3f {
  AvailabilityZone: String
  AvailabilityZones: [String]
}

type AwsEMRDescribeJobFlowsOutputJobFlowsSteps {
  StepConfig: AwsEMRS1j!
  ExecutionStatusDetail: AwsEMRDescribeJobFlowsOutputJobFlowsStepsExecutionStatusDetail!
}

type AwsEMRS1j {
  Name: String!
  ActionOnFailure: String
  HadoopJarStep: AwsEMRS1jHadoopJarStep!
}

type AwsEMRS1jHadoopJarStep {
  Properties: [AwsEMRS1jHadoopJarStepProperties]
  Jar: String!
  MainClass: String
  Args: [String]
}

type AwsEMRS1jHadoopJarStepProperties {
  Key: String
  Value: String
}

type AwsEMRDescribeJobFlowsOutputJobFlowsStepsExecutionStatusDetail {
  State: String!
  CreationDateTime: Date!
  StartDateTime: Date
  EndDateTime: Date
  LastStateChangeReason: String
}

type AwsEMRDescribeJobFlowsOutputJobFlowsBootstrapActions {
  BootstrapActionConfig: AwsEMRS3m
}

type AwsEMRS3m {
  Name: String!
  ScriptBootstrapAction: AwsEMRS3mScriptBootstrapAction!
}

type AwsEMRS3mScriptBootstrapAction {
  Path: String!
  Args: [String]
}

input AwsEMRDescribeJobFlowsInput {
  CreatedAfter: Date
  CreatedBefore: Date
  JobFlowIds: [String]
  JobFlowStates: [String]
}

type AwsEMRDescribeNotebookExecutionOutput {
  NotebookExecution: AwsEMRDescribeNotebookExecutionOutputNotebookExecution
}

type AwsEMRDescribeNotebookExecutionOutputNotebookExecution {
  NotebookExecutionId: String
  EditorId: String
  ExecutionEngine: AwsEMRS3s
  NotebookExecutionName: String
  NotebookParams: String
  Status: String
  StartTime: Date
  EndTime: Date
  Arn: String
  OutputNotebookURI: String
  LastStateChangeReason: String
  NotebookInstanceSecurityGroupId: String
  Tags: [AwsEMRS1u]
}

type AwsEMRS3s {
  Id: String!
  Type: String
  MasterInstanceSecurityGroupId: String
}

input AwsEMRDescribeNotebookExecutionInput {
  NotebookExecutionId: String!
}

type AwsEMRDescribeSecurityConfigurationOutput {
  Name: String
  SecurityConfiguration: String
  CreationDateTime: Date
}

input AwsEMRDescribeSecurityConfigurationInput {
  Name: String!
}

type AwsEMRDescribeStepOutput {
  Step: AwsEMRDescribeStepOutputStep
}

type AwsEMRDescribeStepOutputStep {
  Id: String
  Name: String
  Config: AwsEMRS40
  ActionOnFailure: String
  Status: AwsEMRS41
}

type AwsEMRS40 {
  Jar: String
  Properties: JSON
  MainClass: String
  Args: [String]
}

type AwsEMRS41 {
  State: String
  StateChangeReason: AwsEMRS41StateChangeReason
  FailureDetails: AwsEMRS41FailureDetails
  Timeline: AwsEMRS41Timeline
}

type AwsEMRS41StateChangeReason {
  Code: String
  Message: String
}

type AwsEMRS41FailureDetails {
  Reason: String
  Message: String
  LogFile: String
}

type AwsEMRS41Timeline {
  CreationDateTime: Date
  StartDateTime: Date
  EndDateTime: Date
}

input AwsEMRDescribeStepInput {
  ClusterId: String!
  StepId: String!
}

type AwsEMRDescribeStudioOutput {
  Studio: AwsEMRDescribeStudioOutputStudio
}

type AwsEMRDescribeStudioOutputStudio {
  StudioId: String
  StudioArn: String
  Name: String
  Description: String
  AuthMode: String
  VpcId: String
  SubnetIds: [String]
  ServiceRole: String
  UserRole: String
  WorkspaceSecurityGroupId: String
  EngineSecurityGroupId: String
  Url: String
  CreationTime: Date
  DefaultS3Location: String
  Tags: [AwsEMRS1u]
}

input AwsEMRDescribeStudioInput {
  StudioId: String!
}

type AwsEMRGetBlockPublicAccessConfigurationOutput {
  BlockPublicAccessConfiguration: AwsEMRS4c!
  BlockPublicAccessConfigurationMetadata: AwsEMRGetBlockPublicAccessConfigurationOutputBlockPublicAccessConfigurationMetadata!
}

type AwsEMRS4c {
  BlockPublicSecurityGroupRules: Boolean!
  PermittedPublicSecurityGroupRuleRanges: [AwsEMRS4cPermittedPublicSecurityGroupRuleRanges]
}

type AwsEMRS4cPermittedPublicSecurityGroupRuleRanges {
  MinRange: Int!
  MaxRange: Int
}

type AwsEMRGetBlockPublicAccessConfigurationOutputBlockPublicAccessConfigurationMetadata {
  CreationDateTime: Date!
  CreatedByArn: String!
}

type AwsEMRGetManagedScalingPolicyOutput {
  ManagedScalingPolicy: AwsEMRS4j
}

type AwsEMRS4j {
  ComputeLimits: AwsEMRS4jComputeLimits
}

type AwsEMRS4jComputeLimits {
  UnitType: String!
  MinimumCapacityUnits: Int!
  MaximumCapacityUnits: Int!
  MaximumOnDemandCapacityUnits: Int
  MaximumCoreCapacityUnits: Int
}

input AwsEMRGetManagedScalingPolicyInput {
  ClusterId: String!
}

type AwsEMRGetStudioSessionMappingOutput {
  SessionMapping: AwsEMRGetStudioSessionMappingOutputSessionMapping
}

type AwsEMRGetStudioSessionMappingOutputSessionMapping {
  StudioId: String
  IdentityId: String
  IdentityName: String
  IdentityType: String
  SessionPolicyArn: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEMRGetStudioSessionMappingInput {
  StudioId: String!
  IdentityId: String
  IdentityName: String
  IdentityType: String!
}

type AwsEMRListBootstrapActionsOutput {
  BootstrapActions: [AwsEMRListBootstrapActionsOutputBootstrapActions]
  Marker: String
}

type AwsEMRListBootstrapActionsOutputBootstrapActions {
  Name: String
  ScriptPath: String
  Args: [String]
}

input AwsEMRListBootstrapActionsInput {
  ClusterId: String!
  Marker: String
}

type AwsEMRListClustersOutput {
  Clusters: [AwsEMRListClustersOutputClusters]
  Marker: String
}

type AwsEMRListClustersOutputClusters {
  Id: String
  Name: String
  Status: AwsEMRS2l
  NormalizedInstanceHours: Int
  ClusterArn: String
  OutpostArn: String
}

input AwsEMRListClustersInput {
  CreatedAfter: Date
  CreatedBefore: Date
  ClusterStates: [String]
  Marker: String
}

type AwsEMRListInstanceFleetsOutput {
  InstanceFleets: [AwsEMRListInstanceFleetsOutputInstanceFleets]
  Marker: String
}

type AwsEMRListInstanceFleetsOutputInstanceFleets {
  Id: String
  Name: String
  Status: AwsEMRListInstanceFleetsOutputInstanceFleetsStatus
  InstanceFleetType: String
  TargetOnDemandCapacity: Int
  TargetSpotCapacity: Int
  ProvisionedOnDemandCapacity: Int
  ProvisionedSpotCapacity: Int
  InstanceTypeSpecifications: [AwsEMRListInstanceFleetsOutputInstanceFleetsInstanceTypeSpecifications]
  LaunchSpecifications: AwsEMRSk
}

type AwsEMRListInstanceFleetsOutputInstanceFleetsStatus {
  State: String
  StateChangeReason: AwsEMRListInstanceFleetsOutputInstanceFleetsStatusStateChangeReason
  Timeline: AwsEMRListInstanceFleetsOutputInstanceFleetsStatusTimeline
}

type AwsEMRListInstanceFleetsOutputInstanceFleetsStatusStateChangeReason {
  Code: String
  Message: String
}

type AwsEMRListInstanceFleetsOutputInstanceFleetsStatusTimeline {
  CreationDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
}

type AwsEMRListInstanceFleetsOutputInstanceFleetsInstanceTypeSpecifications {
  InstanceType: String
  WeightedCapacity: Int
  BidPrice: String
  BidPriceAsPercentageOfOnDemandPrice: JSON
  Configurations: [AwsEMRSh]
  EbsBlockDevices: [AwsEMRS5a]
  EbsOptimized: Boolean
}

type AwsEMRS5a {
  VolumeSpecification: AwsEMRSd
  Device: String
}

type AwsEMRSd {
  VolumeType: String!
  Iops: Int
  SizeInGB: Int!
}

type AwsEMRSk {
  SpotSpecification: AwsEMRSkSpotSpecification
  OnDemandSpecification: AwsEMRSkOnDemandSpecification
}

type AwsEMRSkSpotSpecification {
  TimeoutDurationMinutes: Int!
  TimeoutAction: String!
  BlockDurationMinutes: Int
  AllocationStrategy: String
}

type AwsEMRSkOnDemandSpecification {
  AllocationStrategy: String!
  CapacityReservationOptions: AwsEMRSkOnDemandSpecificationCapacityReservationOptions
}

type AwsEMRSkOnDemandSpecificationCapacityReservationOptions {
  UsageStrategy: String
  CapacityReservationPreference: String
  CapacityReservationResourceGroupArn: String
}

input AwsEMRListInstanceFleetsInput {
  ClusterId: String!
  Marker: String
}

type AwsEMRListInstanceGroupsOutput {
  InstanceGroups: [AwsEMRListInstanceGroupsOutputInstanceGroups]
  Marker: String
}

type AwsEMRListInstanceGroupsOutputInstanceGroups {
  Id: String
  Name: String
  Market: String
  InstanceGroupType: String
  BidPrice: String
  InstanceType: String
  RequestedInstanceCount: Int
  RunningInstanceCount: Int
  Status: AwsEMRListInstanceGroupsOutputInstanceGroupsStatus
  Configurations: [AwsEMRSh]
  ConfigurationsVersion: JSON
  LastSuccessfullyAppliedConfigurations: [AwsEMRSh]
  LastSuccessfullyAppliedConfigurationsVersion: JSON
  EbsBlockDevices: [AwsEMRS5a]
  EbsOptimized: Boolean
  ShrinkPolicy: AwsEMRS5n
  AutoScalingPolicy: AwsEMRS5r
}

type AwsEMRListInstanceGroupsOutputInstanceGroupsStatus {
  State: String
  StateChangeReason: AwsEMRListInstanceGroupsOutputInstanceGroupsStatusStateChangeReason
  Timeline: AwsEMRListInstanceGroupsOutputInstanceGroupsStatusTimeline
}

type AwsEMRListInstanceGroupsOutputInstanceGroupsStatusStateChangeReason {
  Code: String
  Message: String
}

type AwsEMRListInstanceGroupsOutputInstanceGroupsStatusTimeline {
  CreationDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
}

type AwsEMRS5n {
  DecommissionTimeout: Int
  InstanceResizePolicy: AwsEMRS5nInstanceResizePolicy
}

type AwsEMRS5nInstanceResizePolicy {
  InstancesToTerminate: [String]
  InstancesToProtect: [String]
  InstanceTerminationTimeout: Int
}

type AwsEMRS5r {
  Status: AwsEMRS5rStatus
  Constraints: AwsEMRS12
  Rules: [AwsEMRS13]
}

type AwsEMRS5rStatus {
  State: String
  StateChangeReason: AwsEMRS5rStatusStateChangeReason
}

type AwsEMRS5rStatusStateChangeReason {
  Code: String
  Message: String
}

type AwsEMRS12 {
  MinCapacity: Int!
  MaxCapacity: Int!
}

type AwsEMRS13 {
  Name: String!
  Description: String
  Action: AwsEMRS13Action!
  Trigger: AwsEMRS13Trigger!
}

type AwsEMRS13Action {
  Market: String
  SimpleScalingPolicyConfiguration: AwsEMRS13ActionSimpleScalingPolicyConfiguration!
}

type AwsEMRS13ActionSimpleScalingPolicyConfiguration {
  AdjustmentType: String
  ScalingAdjustment: Int!
  CoolDown: Int
}

type AwsEMRS13Trigger {
  CloudWatchAlarmDefinition: AwsEMRS13TriggerCloudWatchAlarmDefinition!
}

type AwsEMRS13TriggerCloudWatchAlarmDefinition {
  ComparisonOperator: String!
  EvaluationPeriods: Int
  MetricName: String!
  Namespace: String
  Period: Int!
  Statistic: String
  Threshold: JSON!
  Unit: String
  Dimensions: [AwsEMRS13TriggerCloudWatchAlarmDefinitionDimensions]
}

type AwsEMRS13TriggerCloudWatchAlarmDefinitionDimensions {
  Key: String
  Value: String
}

input AwsEMRListInstanceGroupsInput {
  ClusterId: String!
  Marker: String
}

type AwsEMRListInstancesOutput {
  Instances: [AwsEMRListInstancesOutputInstances]
  Marker: String
}

type AwsEMRListInstancesOutputInstances {
  Id: String
  Ec2InstanceId: String
  PublicDnsName: String
  PublicIpAddress: String
  PrivateDnsName: String
  PrivateIpAddress: String
  Status: AwsEMRListInstancesOutputInstancesStatus
  InstanceGroupId: String
  InstanceFleetId: String
  Market: String
  InstanceType: String
  EbsVolumes: [AwsEMRListInstancesOutputInstancesEbsVolumes]
}

type AwsEMRListInstancesOutputInstancesStatus {
  State: String
  StateChangeReason: AwsEMRListInstancesOutputInstancesStatusStateChangeReason
  Timeline: AwsEMRListInstancesOutputInstancesStatusTimeline
}

type AwsEMRListInstancesOutputInstancesStatusStateChangeReason {
  Code: String
  Message: String
}

type AwsEMRListInstancesOutputInstancesStatusTimeline {
  CreationDateTime: Date
  ReadyDateTime: Date
  EndDateTime: Date
}

type AwsEMRListInstancesOutputInstancesEbsVolumes {
  Device: String
  VolumeId: String
}

input AwsEMRListInstancesInput {
  ClusterId: String!
  InstanceGroupId: String
  InstanceGroupTypes: [String]
  InstanceFleetId: String
  InstanceFleetType: String
  InstanceStates: [String]
  Marker: String
}

type AwsEMRListNotebookExecutionsOutput {
  NotebookExecutions: [AwsEMRListNotebookExecutionsOutputNotebookExecutions]
  Marker: String
}

type AwsEMRListNotebookExecutionsOutputNotebookExecutions {
  NotebookExecutionId: String
  EditorId: String
  NotebookExecutionName: String
  Status: String
  StartTime: Date
  EndTime: Date
}

input AwsEMRListNotebookExecutionsInput {
  EditorId: String
  Status: String
  From: Date
  To: Date
  Marker: String
}

type AwsEMRListSecurityConfigurationsOutput {
  SecurityConfigurations: [AwsEMRListSecurityConfigurationsOutputSecurityConfigurations]
  Marker: String
}

type AwsEMRListSecurityConfigurationsOutputSecurityConfigurations {
  Name: String
  CreationDateTime: Date
}

input AwsEMRListSecurityConfigurationsInput {
  Marker: String
}

type AwsEMRListStepsOutput {
  Steps: [AwsEMRListStepsOutputSteps]
  Marker: String
}

type AwsEMRListStepsOutputSteps {
  Id: String
  Name: String
  Config: AwsEMRS40
  ActionOnFailure: String
  Status: AwsEMRS41
}

input AwsEMRListStepsInput {
  ClusterId: String!
  StepStates: [String]
  StepIds: [String]
  Marker: String
}

type AwsEMRListStudioSessionMappingsOutput {
  SessionMappings: [AwsEMRListStudioSessionMappingsOutputSessionMappings]
  Marker: String
}

type AwsEMRListStudioSessionMappingsOutputSessionMappings {
  StudioId: String
  IdentityId: String
  IdentityName: String
  IdentityType: String
  SessionPolicyArn: String
  CreationTime: Date
}

input AwsEMRListStudioSessionMappingsInput {
  StudioId: String
  IdentityType: String
  Marker: String
}

type AwsEMRListStudiosOutput {
  Studios: [AwsEMRListStudiosOutputStudios]
  Marker: String
}

type AwsEMRListStudiosOutputStudios {
  StudioId: String
  Name: String
  VpcId: String
  Description: String
  Url: String
  CreationTime: Date
}

input AwsEMRListStudiosInput {
  Marker: String
}

type AwsEMRModifyClusterOutput {
  StepConcurrencyLevel: Int
}

input AwsEMRModifyClusterInput {
  ClusterId: String!
  StepConcurrencyLevel: Int
}

input AwsEMRModifyInstanceFleetInput {
  ClusterId: String!
  InstanceFleet: AwsEMRModifyInstanceFleetInstanceFleetInput!
}

input AwsEMRModifyInstanceFleetInstanceFleetInput {
  InstanceFleetId: String!
  TargetOnDemandCapacity: Int
  TargetSpotCapacity: Int
}

input AwsEMRModifyInstanceGroupsInput {
  ClusterId: String
  InstanceGroups: [AwsEMRModifyInstanceGroupsInstanceGroupsInput]
}

input AwsEMRModifyInstanceGroupsInstanceGroupsInput {
  InstanceGroupId: String!
  InstanceCount: Int
  EC2InstanceIdsToTerminate: [String]
  ShrinkPolicy: AwsEMRS5nInput
  Configurations: [AwsEMRShInput]
}

input AwsEMRS5nInput {
  DecommissionTimeout: Int
  InstanceResizePolicy: AwsEMRS5nInstanceResizePolicyInput
}

input AwsEMRS5nInstanceResizePolicyInput {
  InstancesToTerminate: [String]
  InstancesToProtect: [String]
  InstanceTerminationTimeout: Int
}

type AwsEMRPutAutoScalingPolicyOutput {
  ClusterId: String
  InstanceGroupId: String
  AutoScalingPolicy: AwsEMRS5r
  ClusterArn: String
}

input AwsEMRPutAutoScalingPolicyInput {
  ClusterId: String!
  InstanceGroupId: String!
  AutoScalingPolicy: AwsEMRS11Input!
}

input AwsEMRPutBlockPublicAccessConfigurationInput {
  BlockPublicAccessConfiguration: AwsEMRS4cInput!
}

input AwsEMRS4cInput {
  BlockPublicSecurityGroupRules: Boolean!
  PermittedPublicSecurityGroupRuleRanges: [AwsEMRS4cPermittedPublicSecurityGroupRuleRangesInput]
}

input AwsEMRS4cPermittedPublicSecurityGroupRuleRangesInput {
  MinRange: Int!
  MaxRange: Int
}

input AwsEMRPutManagedScalingPolicyInput {
  ClusterId: String!
  ManagedScalingPolicy: AwsEMRS4jInput!
}

input AwsEMRS4jInput {
  ComputeLimits: AwsEMRS4jComputeLimitsInput
}

input AwsEMRS4jComputeLimitsInput {
  UnitType: String!
  MinimumCapacityUnits: Int!
  MaximumCapacityUnits: Int!
  MaximumOnDemandCapacityUnits: Int
  MaximumCoreCapacityUnits: Int
}

input AwsEMRRemoveAutoScalingPolicyInput {
  ClusterId: String!
  InstanceGroupId: String!
}

input AwsEMRRemoveManagedScalingPolicyInput {
  ClusterId: String!
}

input AwsEMRRemoveTagsInput {
  ResourceId: String!
  TagKeys: [String]!
}

type AwsEMRRunJobFlowOutput {
  JobFlowId: String
  ClusterArn: String
}

input AwsEMRRunJobFlowInput {
  Name: String!
  LogUri: String
  LogEncryptionKmsKeyId: String
  AdditionalInfo: String
  AmiVersion: String
  ReleaseLabel: String
  Instances: AwsEMRRunJobFlowInstancesInput!
  Steps: [AwsEMRS1jInput]
  BootstrapActions: [AwsEMRS3mInput]
  SupportedProducts: [String]
  NewSupportedProducts: [AwsEMRRunJobFlowNewSupportedProductsInput]
  Applications: [AwsEMRS2vInput]
  Configurations: [AwsEMRShInput]
  VisibleToAllUsers: Boolean
  JobFlowRole: String
  ServiceRole: String
  Tags: [AwsEMRS1uInput]
  SecurityConfiguration: String
  AutoScalingRole: String
  ScaleDownBehavior: String
  CustomAmiId: String
  EbsRootVolumeSize: Int
  RepoUpgradeOnBoot: String
  KerberosAttributes: AwsEMRS2zInput
  StepConcurrencyLevel: Int
  ManagedScalingPolicy: AwsEMRS4jInput
  PlacementGroupConfigs: [AwsEMRS31Input]
}

input AwsEMRRunJobFlowInstancesInput {
  MasterInstanceType: String
  SlaveInstanceType: String
  InstanceCount: Int
  InstanceGroups: [AwsEMRSxInput]
  InstanceFleets: [AwsEMRS3Input]
  Ec2KeyName: String
  Placement: AwsEMRS3fInput
  KeepJobFlowAliveWhenNoSteps: Boolean
  TerminationProtected: Boolean
  HadoopVersion: String
  Ec2SubnetId: String
  Ec2SubnetIds: [String]
  EmrManagedMasterSecurityGroup: String
  EmrManagedSlaveSecurityGroup: String
  ServiceAccessSecurityGroup: String
  AdditionalMasterSecurityGroups: [String]
  AdditionalSlaveSecurityGroups: [String]
}

input AwsEMRS3fInput {
  AvailabilityZone: String
  AvailabilityZones: [String]
}

input AwsEMRS3mInput {
  Name: String!
  ScriptBootstrapAction: AwsEMRS3mScriptBootstrapActionInput!
}

input AwsEMRS3mScriptBootstrapActionInput {
  Path: String!
  Args: [String]
}

input AwsEMRRunJobFlowNewSupportedProductsInput {
  Name: String
  Args: [String]
}

input AwsEMRS2vInput {
  Name: String
  Version: String
  Args: [String]
  AdditionalInfo: JSON
}

input AwsEMRS2zInput {
  Realm: String!
  KdcAdminPassword: String!
  CrossRealmTrustPrincipalPassword: String
  ADDomainJoinUser: String
  ADDomainJoinPassword: String
}

input AwsEMRS31Input {
  InstanceRole: String!
  PlacementStrategy: String
}

input AwsEMRSetTerminationProtectionInput {
  JobFlowIds: [String]!
  TerminationProtected: Boolean!
}

input AwsEMRSetVisibleToAllUsersInput {
  JobFlowIds: [String]!
  VisibleToAllUsers: Boolean!
}

type AwsEMRStartNotebookExecutionOutput {
  NotebookExecutionId: String
}

input AwsEMRStartNotebookExecutionInput {
  EditorId: String!
  RelativePath: String!
  NotebookExecutionName: String
  NotebookParams: String
  ExecutionEngine: AwsEMRS3sInput!
  ServiceRole: String!
  NotebookInstanceSecurityGroupId: String
  Tags: [AwsEMRS1uInput]
}

input AwsEMRS3sInput {
  Id: String!
  Type: String
  MasterInstanceSecurityGroupId: String
}

input AwsEMRStopNotebookExecutionInput {
  NotebookExecutionId: String!
}

input AwsEMRTerminateJobFlowsInput {
  JobFlowIds: [String]!
}

input AwsEMRUpdateStudioInput {
  StudioId: String!
  Name: String
  Description: String
  SubnetIds: [String]
  DefaultS3Location: String
}

input AwsEMRUpdateStudioSessionMappingInput {
  StudioId: String!
  IdentityId: String
  IdentityName: String
  IdentityType: String!
  SessionPolicyArn: String!
}

"""Amazon EMR Containers (2020-10-01)"""
type AwsEMRcontainers {
  cancelJobRun(input: AwsEMRcontainersCancelJobRunInput!, config: AwsConfig): AwsEMRcontainersCancelJobRunOutput
  createManagedEndpoint(input: AwsEMRcontainersCreateManagedEndpointInput!, config: AwsConfig): AwsEMRcontainersCreateManagedEndpointOutput
  createVirtualCluster(input: AwsEMRcontainersCreateVirtualClusterInput!, config: AwsConfig): AwsEMRcontainersCreateVirtualClusterOutput
  deleteManagedEndpoint(input: AwsEMRcontainersDeleteManagedEndpointInput!, config: AwsConfig): AwsEMRcontainersDeleteManagedEndpointOutput
  deleteVirtualCluster(input: AwsEMRcontainersDeleteVirtualClusterInput!, config: AwsConfig): AwsEMRcontainersDeleteVirtualClusterOutput
  describeJobRun(input: AwsEMRcontainersDescribeJobRunInput!, config: AwsConfig): AwsEMRcontainersDescribeJobRunOutput
  describeManagedEndpoint(input: AwsEMRcontainersDescribeManagedEndpointInput!, config: AwsConfig): AwsEMRcontainersDescribeManagedEndpointOutput
  describeVirtualCluster(input: AwsEMRcontainersDescribeVirtualClusterInput!, config: AwsConfig): AwsEMRcontainersDescribeVirtualClusterOutput
  listJobRuns(input: AwsEMRcontainersListJobRunsInput!, config: AwsConfig): AwsEMRcontainersListJobRunsOutput
  listManagedEndpoints(input: AwsEMRcontainersListManagedEndpointsInput!, config: AwsConfig): AwsEMRcontainersListManagedEndpointsOutput
  listTagsForResource(input: AwsEMRcontainersListTagsForResourceInput!, config: AwsConfig): AwsEMRcontainersListTagsForResourceOutput
  listVirtualClusters(input: AwsEMRcontainersListVirtualClustersInput, config: AwsConfig): AwsEMRcontainersListVirtualClustersOutput
  startJobRun(input: AwsEMRcontainersStartJobRunInput!, config: AwsConfig): AwsEMRcontainersStartJobRunOutput
  tagResource(input: AwsEMRcontainersTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsEMRcontainersUntagResourceInput!, config: AwsConfig): JSON
}

type AwsEMRcontainersCancelJobRunOutput {
  id: String
  virtualClusterId: String
}

input AwsEMRcontainersCancelJobRunInput {
  id: String!
  virtualClusterId: String!
}

type AwsEMRcontainersCreateManagedEndpointOutput {
  id: String
  name: String
  arn: String
  virtualClusterId: String
}

input AwsEMRcontainersCreateManagedEndpointInput {
  name: String!
  virtualClusterId: String!
  type: String!
  releaseLabel: String!
  executionRoleArn: String!
  certificateArn: String!
  configurationOverrides: AwsEMRcontainersSaInput
  clientToken: String!
  tags: JSON
}

input AwsEMRcontainersSaInput {
  applicationConfiguration: [AwsEMRcontainersSbInput]
  monitoringConfiguration: AwsEMRcontainersSaMonitoringConfigurationInput
}

input AwsEMRcontainersSbInput {
  classification: String!
  properties: JSON
  configurations: JSON
}

input AwsEMRcontainersSaMonitoringConfigurationInput {
  persistentAppUI: String
  cloudWatchMonitoringConfiguration: AwsEMRcontainersSaMonitoringConfigurationCloudWatchMonitoringConfigurationInput
  s3MonitoringConfiguration: AwsEMRcontainersSaMonitoringConfigurationS3MonitoringConfigurationInput
}

input AwsEMRcontainersSaMonitoringConfigurationCloudWatchMonitoringConfigurationInput {
  logGroupName: String!
  logStreamNamePrefix: String
}

input AwsEMRcontainersSaMonitoringConfigurationS3MonitoringConfigurationInput {
  logUri: String!
}

type AwsEMRcontainersCreateVirtualClusterOutput {
  id: String
  name: String
  arn: String
}

input AwsEMRcontainersCreateVirtualClusterInput {
  name: String!
  containerProvider: AwsEMRcontainersStInput!
  clientToken: String!
  tags: JSON
}

input AwsEMRcontainersStInput {
  type: String!
  id: String!
  info: AwsEMRcontainersStInfoInput
}

input AwsEMRcontainersStInfoInput {
  eksInfo: AwsEMRcontainersStInfoEksInfoInput
}

input AwsEMRcontainersStInfoEksInfoInput {
  namespace: String
}

type AwsEMRcontainersDeleteManagedEndpointOutput {
  id: String
  virtualClusterId: String
}

input AwsEMRcontainersDeleteManagedEndpointInput {
  id: String!
  virtualClusterId: String!
}

type AwsEMRcontainersDeleteVirtualClusterOutput {
  id: String
}

input AwsEMRcontainersDeleteVirtualClusterInput {
  id: String!
}

type AwsEMRcontainersDescribeJobRunOutput {
  jobRun: AwsEMRcontainersS15
}

type AwsEMRcontainersS15 {
  id: String
  name: String
  virtualClusterId: String
  arn: String
  state: String
  clientToken: String
  executionRoleArn: String
  releaseLabel: String
  configurationOverrides: AwsEMRcontainersSa
  jobDriver: AwsEMRcontainersS18
  createdAt: Date
  createdBy: String
  finishedAt: Date
  stateDetails: String
  failureReason: String
  tags: JSON
}

type AwsEMRcontainersSa {
  applicationConfiguration: [AwsEMRcontainersSb]
  monitoringConfiguration: AwsEMRcontainersSaMonitoringConfiguration
}

type AwsEMRcontainersSb {
  classification: String!
  properties: JSON
  configurations: JSON
}

type AwsEMRcontainersSaMonitoringConfiguration {
  persistentAppUI: String
  cloudWatchMonitoringConfiguration: AwsEMRcontainersSaMonitoringConfigurationCloudWatchMonitoringConfiguration
  s3MonitoringConfiguration: AwsEMRcontainersSaMonitoringConfigurationS3MonitoringConfiguration
}

type AwsEMRcontainersSaMonitoringConfigurationCloudWatchMonitoringConfiguration {
  logGroupName: String!
  logStreamNamePrefix: String
}

type AwsEMRcontainersSaMonitoringConfigurationS3MonitoringConfiguration {
  logUri: String!
}

type AwsEMRcontainersS18 {
  sparkSubmitJobDriver: AwsEMRcontainersS18SparkSubmitJobDriver
}

type AwsEMRcontainersS18SparkSubmitJobDriver {
  entryPoint: String!
  entryPointArguments: [String]
  sparkSubmitParameters: String
}

input AwsEMRcontainersDescribeJobRunInput {
  id: String!
  virtualClusterId: String!
}

type AwsEMRcontainersDescribeManagedEndpointOutput {
  endpoint: AwsEMRcontainersS1j
}

type AwsEMRcontainersS1j {
  id: String
  name: String
  arn: String
  virtualClusterId: String
  type: String
  state: String
  releaseLabel: String
  executionRoleArn: String
  certificateArn: String
  configurationOverrides: AwsEMRcontainersSa
  serverUrl: String
  createdAt: Date
  securityGroup: String
  subnetIds: [String]
  tags: JSON
}

input AwsEMRcontainersDescribeManagedEndpointInput {
  id: String!
  virtualClusterId: String!
}

type AwsEMRcontainersDescribeVirtualClusterOutput {
  virtualCluster: AwsEMRcontainersS1o
}

type AwsEMRcontainersS1o {
  id: String
  name: String
  arn: String
  state: String
  containerProvider: AwsEMRcontainersSt
  createdAt: Date
  tags: JSON
}

type AwsEMRcontainersSt {
  type: String!
  id: String!
  info: AwsEMRcontainersStInfo
}

type AwsEMRcontainersStInfo {
  eksInfo: AwsEMRcontainersStInfoEksInfo
}

type AwsEMRcontainersStInfoEksInfo {
  namespace: String
}

input AwsEMRcontainersDescribeVirtualClusterInput {
  id: String!
}

type AwsEMRcontainersListJobRunsOutput {
  jobRuns: [AwsEMRcontainersS15]
  nextToken: String
}

input AwsEMRcontainersListJobRunsInput {
  virtualClusterId: String!
  createdBefore: Date
  createdAfter: Date
  name: String
  states: [String]
  maxResults: Int
  nextToken: String
}

type AwsEMRcontainersListManagedEndpointsOutput {
  endpoints: [AwsEMRcontainersS1j]
  nextToken: String
}

input AwsEMRcontainersListManagedEndpointsInput {
  virtualClusterId: String!
  createdBefore: Date
  createdAfter: Date
  types: [String]
  states: [String]
  maxResults: Int
  nextToken: String
}

type AwsEMRcontainersListTagsForResourceOutput {
  tags: JSON
}

input AwsEMRcontainersListTagsForResourceInput {
  resourceArn: String!
}

type AwsEMRcontainersListVirtualClustersOutput {
  virtualClusters: [AwsEMRcontainersS1o]
  nextToken: String
}

input AwsEMRcontainersListVirtualClustersInput {
  containerProviderId: String
  containerProviderType: String
  createdAfter: Date
  createdBefore: Date
  states: [String]
  maxResults: Int
  nextToken: String
}

type AwsEMRcontainersStartJobRunOutput {
  id: String
  name: String
  arn: String
  virtualClusterId: String
}

input AwsEMRcontainersStartJobRunInput {
  name: String
  virtualClusterId: String!
  clientToken: String!
  executionRoleArn: String!
  releaseLabel: String!
  jobDriver: AwsEMRcontainersS18Input!
  configurationOverrides: AwsEMRcontainersSaInput
  tags: JSON
}

input AwsEMRcontainersS18Input {
  sparkSubmitJobDriver: AwsEMRcontainersS18SparkSubmitJobDriverInput
}

input AwsEMRcontainersS18SparkSubmitJobDriverInput {
  entryPoint: String!
  entryPointArguments: [String]
  sparkSubmitParameters: String
}

input AwsEMRcontainersTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsEMRcontainersUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Amazon Elasticsearch Service (2015-01-01)"""
type AwsES {
  acceptInboundCrossClusterSearchConnection(input: AwsESAcceptInboundCrossClusterSearchConnectionInput!, config: AwsConfig): AwsESAcceptInboundCrossClusterSearchConnectionOutput
  addTags(input: AwsESAddTagsInput!, config: AwsConfig): JSON
  associatePackage(input: AwsESAssociatePackageInput!, config: AwsConfig): AwsESAssociatePackageOutput
  cancelElasticsearchServiceSoftwareUpdate(input: AwsESCancelElasticsearchServiceSoftwareUpdateInput!, config: AwsConfig): AwsESCancelElasticsearchServiceSoftwareUpdateOutput
  createElasticsearchDomain(input: AwsESCreateElasticsearchDomainInput!, config: AwsConfig): AwsESCreateElasticsearchDomainOutput
  createOutboundCrossClusterSearchConnection(input: AwsESCreateOutboundCrossClusterSearchConnectionInput!, config: AwsConfig): AwsESCreateOutboundCrossClusterSearchConnectionOutput
  createPackage(input: AwsESCreatePackageInput!, config: AwsConfig): AwsESCreatePackageOutput
  deleteElasticsearchDomain(input: AwsESDeleteElasticsearchDomainInput!, config: AwsConfig): AwsESDeleteElasticsearchDomainOutput
  deleteElasticsearchServiceRole(config: AwsConfig): JSON
  deleteInboundCrossClusterSearchConnection(input: AwsESDeleteInboundCrossClusterSearchConnectionInput!, config: AwsConfig): AwsESDeleteInboundCrossClusterSearchConnectionOutput
  deleteOutboundCrossClusterSearchConnection(input: AwsESDeleteOutboundCrossClusterSearchConnectionInput!, config: AwsConfig): AwsESDeleteOutboundCrossClusterSearchConnectionOutput
  deletePackage(input: AwsESDeletePackageInput!, config: AwsConfig): AwsESDeletePackageOutput
  describeDomainAutoTunes(input: AwsESDescribeDomainAutoTunesInput!, config: AwsConfig): AwsESDescribeDomainAutoTunesOutput
  describeElasticsearchDomain(input: AwsESDescribeElasticsearchDomainInput!, config: AwsConfig): AwsESDescribeElasticsearchDomainOutput
  describeElasticsearchDomainConfig(input: AwsESDescribeElasticsearchDomainConfigInput!, config: AwsConfig): AwsESDescribeElasticsearchDomainConfigOutput
  describeElasticsearchDomains(input: AwsESDescribeElasticsearchDomainsInput!, config: AwsConfig): AwsESDescribeElasticsearchDomainsOutput
  describeElasticsearchInstanceTypeLimits(input: AwsESDescribeElasticsearchInstanceTypeLimitsInput!, config: AwsConfig): AwsESDescribeElasticsearchInstanceTypeLimitsOutput
  describeInboundCrossClusterSearchConnections(input: AwsESDescribeInboundCrossClusterSearchConnectionsInput, config: AwsConfig): AwsESDescribeInboundCrossClusterSearchConnectionsOutput
  describeOutboundCrossClusterSearchConnections(input: AwsESDescribeOutboundCrossClusterSearchConnectionsInput, config: AwsConfig): AwsESDescribeOutboundCrossClusterSearchConnectionsOutput
  describePackages(input: AwsESDescribePackagesInput, config: AwsConfig): AwsESDescribePackagesOutput
  describeReservedElasticsearchInstanceOfferings(input: AwsESDescribeReservedElasticsearchInstanceOfferingsInput, config: AwsConfig): AwsESDescribeReservedElasticsearchInstanceOfferingsOutput
  describeReservedElasticsearchInstances(input: AwsESDescribeReservedElasticsearchInstancesInput, config: AwsConfig): AwsESDescribeReservedElasticsearchInstancesOutput
  dissociatePackage(input: AwsESDissociatePackageInput!, config: AwsConfig): AwsESDissociatePackageOutput
  getCompatibleElasticsearchVersions(input: AwsESGetCompatibleElasticsearchVersionsInput, config: AwsConfig): AwsESGetCompatibleElasticsearchVersionsOutput
  getPackageVersionHistory(input: AwsESGetPackageVersionHistoryInput!, config: AwsConfig): AwsESGetPackageVersionHistoryOutput
  getUpgradeHistory(input: AwsESGetUpgradeHistoryInput!, config: AwsConfig): AwsESGetUpgradeHistoryOutput
  getUpgradeStatus(input: AwsESGetUpgradeStatusInput!, config: AwsConfig): AwsESGetUpgradeStatusOutput
  listDomainNames(config: AwsConfig): AwsESListDomainNamesOutput
  listDomainsForPackage(input: AwsESListDomainsForPackageInput!, config: AwsConfig): AwsESListDomainsForPackageOutput
  listElasticsearchInstanceTypes(input: AwsESListElasticsearchInstanceTypesInput!, config: AwsConfig): AwsESListElasticsearchInstanceTypesOutput
  listElasticsearchVersions(input: AwsESListElasticsearchVersionsInput, config: AwsConfig): AwsESListElasticsearchVersionsOutput
  listPackagesForDomain(input: AwsESListPackagesForDomainInput!, config: AwsConfig): AwsESListPackagesForDomainOutput
  listTags(input: AwsESListTagsInput!, config: AwsConfig): AwsESListTagsOutput
  purchaseReservedElasticsearchInstanceOffering(input: AwsESPurchaseReservedElasticsearchInstanceOfferingInput!, config: AwsConfig): AwsESPurchaseReservedElasticsearchInstanceOfferingOutput
  rejectInboundCrossClusterSearchConnection(input: AwsESRejectInboundCrossClusterSearchConnectionInput!, config: AwsConfig): AwsESRejectInboundCrossClusterSearchConnectionOutput
  removeTags(input: AwsESRemoveTagsInput!, config: AwsConfig): JSON
  startElasticsearchServiceSoftwareUpdate(input: AwsESStartElasticsearchServiceSoftwareUpdateInput!, config: AwsConfig): AwsESStartElasticsearchServiceSoftwareUpdateOutput
  updateElasticsearchDomainConfig(input: AwsESUpdateElasticsearchDomainConfigInput!, config: AwsConfig): AwsESUpdateElasticsearchDomainConfigOutput
  updatePackage(input: AwsESUpdatePackageInput!, config: AwsConfig): AwsESUpdatePackageOutput
  upgradeElasticsearchDomain(input: AwsESUpgradeElasticsearchDomainInput!, config: AwsConfig): AwsESUpgradeElasticsearchDomainOutput
}

type AwsESAcceptInboundCrossClusterSearchConnectionOutput {
  CrossClusterSearchConnection: AwsESS4
}

type AwsESS4 {
  SourceDomainInfo: AwsESS5
  DestinationDomainInfo: AwsESS5
  CrossClusterSearchConnectionId: String
  ConnectionStatus: AwsESS4ConnectionStatus
}

type AwsESS5 {
  OwnerId: String
  DomainName: String!
  Region: String
}

type AwsESS4ConnectionStatus {
  StatusCode: String
  Message: String
}

input AwsESAcceptInboundCrossClusterSearchConnectionInput {
  CrossClusterSearchConnectionId: String!
}

input AwsESAddTagsInput {
  ARN: String!
  TagList: [AwsESSeInput]!
}

input AwsESSeInput {
  Key: String!
  Value: String!
}

type AwsESAssociatePackageOutput {
  DomainPackageDetails: AwsESSl
}

type AwsESSl {
  PackageID: String
  PackageName: String
  PackageType: String
  LastUpdated: Date
  DomainName: String
  DomainPackageStatus: String
  PackageVersion: String
  ReferencePath: String
  ErrorDetails: AwsESSs
}

type AwsESSs {
  ErrorType: String
  ErrorMessage: String
}

input AwsESAssociatePackageInput {
  PackageID: String!
  DomainName: String!
}

type AwsESCancelElasticsearchServiceSoftwareUpdateOutput {
  ServiceSoftwareOptions: AwsESSx
}

type AwsESSx {
  CurrentVersion: String
  NewVersion: String
  UpdateAvailable: Boolean
  Cancellable: Boolean
  UpdateStatus: String
  Description: String
  AutomatedUpdateDate: Date
  OptionalDeployment: Boolean
}

input AwsESCancelElasticsearchServiceSoftwareUpdateInput {
  DomainName: String!
}

type AwsESCreateElasticsearchDomainOutput {
  DomainStatus: AwsESS2d
}

type AwsESS2d {
  DomainId: String!
  DomainName: String!
  ARN: String!
  Created: Boolean
  Deleted: Boolean
  Endpoint: String
  Endpoints: JSON
  Processing: Boolean
  UpgradeProcessing: Boolean
  ElasticsearchVersion: String
  ElasticsearchClusterConfig: AwsESS14!
  EBSOptions: AwsESS1a
  AccessPolicies: String
  SnapshotOptions: AwsESS1d
  VPCOptions: AwsESS2h
  CognitoOptions: AwsESS1g
  EncryptionAtRestOptions: AwsESS1k
  NodeToNodeEncryptionOptions: AwsESS1m
  AdvancedOptions: JSON
  LogPublishingOptions: JSON
  ServiceSoftwareOptions: AwsESSx
  DomainEndpointOptions: AwsESS1s
  AdvancedSecurityOptions: AwsESS2i
  AutoTuneOptions: AwsESS2dAutoTuneOptions
}

type AwsESS14 {
  InstanceType: String
  InstanceCount: Int
  DedicatedMasterEnabled: Boolean
  ZoneAwarenessEnabled: Boolean
  ZoneAwarenessConfig: AwsESS14ZoneAwarenessConfig
  DedicatedMasterType: String
  DedicatedMasterCount: Int
  WarmEnabled: Boolean
  WarmType: String
  WarmCount: Int
  ColdStorageOptions: AwsESS14ColdStorageOptions
}

type AwsESS14ZoneAwarenessConfig {
  AvailabilityZoneCount: Int
}

type AwsESS14ColdStorageOptions {
  Enabled: Boolean!
}

type AwsESS1a {
  EBSEnabled: Boolean
  VolumeType: String
  VolumeSize: Int
  Iops: Int
}

type AwsESS1d {
  AutomatedSnapshotStartHour: Int
}

type AwsESS2h {
  VPCId: String
  SubnetIds: [String]
  AvailabilityZones: [String]
  SecurityGroupIds: [String]
}

type AwsESS1g {
  Enabled: Boolean
  UserPoolId: String
  IdentityPoolId: String
  RoleArn: String
}

type AwsESS1k {
  Enabled: Boolean
  KmsKeyId: String
}

type AwsESS1m {
  Enabled: Boolean
}

type AwsESS1s {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
  CustomEndpointEnabled: Boolean
  CustomEndpoint: String
  CustomEndpointCertificateArn: String
}

type AwsESS2i {
  Enabled: Boolean
  InternalUserDatabaseEnabled: Boolean
  SAMLOptions: AwsESS2iSAMLOptions
}

type AwsESS2iSAMLOptions {
  Enabled: Boolean
  Idp: AwsESS20
  SubjectKey: String
  RolesKey: String
  SessionTimeoutMinutes: Int
}

type AwsESS20 {
  MetadataContent: String!
  EntityId: String!
}

type AwsESS2dAutoTuneOptions {
  State: String
  ErrorMessage: String
}

input AwsESCreateElasticsearchDomainInput {
  DomainName: String!
  ElasticsearchVersion: String
  ElasticsearchClusterConfig: AwsESS14Input
  EBSOptions: AwsESS1aInput
  AccessPolicies: String
  SnapshotOptions: AwsESS1dInput
  VPCOptions: AwsESS1eInput
  CognitoOptions: AwsESS1gInput
  EncryptionAtRestOptions: AwsESS1kInput
  NodeToNodeEncryptionOptions: AwsESS1mInput
  AdvancedOptions: JSON
  LogPublishingOptions: JSON
  DomainEndpointOptions: AwsESS1sInput
  AdvancedSecurityOptions: AwsESS1vInput
  AutoTuneOptions: AwsESCreateElasticsearchDomainAutoTuneOptionsInput
  TagList: [AwsESSeInput]
}

input AwsESS14Input {
  InstanceType: String
  InstanceCount: Int
  DedicatedMasterEnabled: Boolean
  ZoneAwarenessEnabled: Boolean
  ZoneAwarenessConfig: AwsESS14ZoneAwarenessConfigInput
  DedicatedMasterType: String
  DedicatedMasterCount: Int
  WarmEnabled: Boolean
  WarmType: String
  WarmCount: Int
  ColdStorageOptions: AwsESS14ColdStorageOptionsInput
}

input AwsESS14ZoneAwarenessConfigInput {
  AvailabilityZoneCount: Int
}

input AwsESS14ColdStorageOptionsInput {
  Enabled: Boolean!
}

input AwsESS1aInput {
  EBSEnabled: Boolean
  VolumeType: String
  VolumeSize: Int
  Iops: Int
}

input AwsESS1dInput {
  AutomatedSnapshotStartHour: Int
}

input AwsESS1eInput {
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsESS1gInput {
  Enabled: Boolean
  UserPoolId: String
  IdentityPoolId: String
  RoleArn: String
}

input AwsESS1kInput {
  Enabled: Boolean
  KmsKeyId: String
}

input AwsESS1mInput {
  Enabled: Boolean
}

input AwsESS1sInput {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
  CustomEndpointEnabled: Boolean
  CustomEndpoint: String
  CustomEndpointCertificateArn: String
}

input AwsESS1vInput {
  Enabled: Boolean
  InternalUserDatabaseEnabled: Boolean
  MasterUserOptions: AwsESS1vMasterUserOptionsInput
  SAMLOptions: AwsESS1vSAMLOptionsInput
}

input AwsESS1vMasterUserOptionsInput {
  MasterUserARN: String
  MasterUserName: String
  MasterUserPassword: String
}

input AwsESS1vSAMLOptionsInput {
  Enabled: Boolean
  Idp: AwsESS20Input
  MasterUserName: String
  MasterBackendRole: String
  SubjectKey: String
  RolesKey: String
  SessionTimeoutMinutes: Int
}

input AwsESS20Input {
  MetadataContent: String!
  EntityId: String!
}

input AwsESCreateElasticsearchDomainAutoTuneOptionsInput {
  DesiredState: String
  MaintenanceSchedules: [AwsESS26Input]
}

input AwsESS26Input {
  StartAt: Date
  Duration: AwsESS26DurationInput
  CronExpressionForRecurrence: String
}

input AwsESS26DurationInput {
  Value: JSON
  Unit: String
}

type AwsESCreateOutboundCrossClusterSearchConnectionOutput {
  SourceDomainInfo: AwsESS5
  DestinationDomainInfo: AwsESS5
  ConnectionAlias: String
  ConnectionStatus: AwsESS2p
  CrossClusterSearchConnectionId: String
}

type AwsESS2p {
  StatusCode: String
  Message: String
}

input AwsESCreateOutboundCrossClusterSearchConnectionInput {
  SourceDomainInfo: AwsESS5Input!
  DestinationDomainInfo: AwsESS5Input!
  ConnectionAlias: String!
}

input AwsESS5Input {
  OwnerId: String
  DomainName: String!
  Region: String
}

type AwsESCreatePackageOutput {
  PackageDetails: AwsESS2x
}

type AwsESS2x {
  PackageID: String
  PackageName: String
  PackageType: String
  PackageDescription: String
  PackageStatus: String
  CreatedAt: Date
  LastUpdatedAt: Date
  AvailablePackageVersion: String
  ErrorDetails: AwsESSs
}

input AwsESCreatePackageInput {
  PackageName: String!
  PackageType: String!
  PackageDescription: String
  PackageSource: AwsESS2tInput!
}

input AwsESS2tInput {
  S3BucketName: String
  S3Key: String
}

type AwsESDeleteElasticsearchDomainOutput {
  DomainStatus: AwsESS2d
}

input AwsESDeleteElasticsearchDomainInput {
  DomainName: String!
}

type AwsESDeleteInboundCrossClusterSearchConnectionOutput {
  CrossClusterSearchConnection: AwsESS4
}

input AwsESDeleteInboundCrossClusterSearchConnectionInput {
  CrossClusterSearchConnectionId: String!
}

type AwsESDeleteOutboundCrossClusterSearchConnectionOutput {
  CrossClusterSearchConnection: AwsESS36
}

type AwsESS36 {
  SourceDomainInfo: AwsESS5
  DestinationDomainInfo: AwsESS5
  CrossClusterSearchConnectionId: String
  ConnectionAlias: String
  ConnectionStatus: AwsESS2p
}

input AwsESDeleteOutboundCrossClusterSearchConnectionInput {
  CrossClusterSearchConnectionId: String!
}

type AwsESDeletePackageOutput {
  PackageDetails: AwsESS2x
}

input AwsESDeletePackageInput {
  PackageID: String!
}

type AwsESDescribeDomainAutoTunesOutput {
  AutoTunes: [AwsESDescribeDomainAutoTunesOutputAutoTunes]
  NextToken: String
}

type AwsESDescribeDomainAutoTunesOutputAutoTunes {
  AutoTuneType: String
  AutoTuneDetails: AwsESDescribeDomainAutoTunesOutputAutoTunesAutoTuneDetails
}

type AwsESDescribeDomainAutoTunesOutputAutoTunesAutoTuneDetails {
  ScheduledAutoTuneDetails: AwsESDescribeDomainAutoTunesOutputAutoTunesAutoTuneDetailsScheduledAutoTuneDetails
}

type AwsESDescribeDomainAutoTunesOutputAutoTunesAutoTuneDetailsScheduledAutoTuneDetails {
  Date: Date
  ActionType: String
  Action: String
  Severity: String
}

input AwsESDescribeDomainAutoTunesInput {
  DomainName: String!
  MaxResults: Int
  NextToken: String
}

type AwsESDescribeElasticsearchDomainOutput {
  DomainStatus: AwsESS2d!
}

input AwsESDescribeElasticsearchDomainInput {
  DomainName: String!
}

type AwsESDescribeElasticsearchDomainConfigOutput {
  DomainConfig: AwsESS3q!
}

type AwsESS3q {
  ElasticsearchVersion: AwsESS3qElasticsearchVersion
  ElasticsearchClusterConfig: AwsESS3qElasticsearchClusterConfig
  EBSOptions: AwsESS3qEBSOptions
  AccessPolicies: AwsESS3qAccessPolicies
  SnapshotOptions: AwsESS3qSnapshotOptions
  VPCOptions: AwsESS3qVPCOptions
  CognitoOptions: AwsESS3qCognitoOptions
  EncryptionAtRestOptions: AwsESS3qEncryptionAtRestOptions
  NodeToNodeEncryptionOptions: AwsESS3qNodeToNodeEncryptionOptions
  AdvancedOptions: AwsESS3qAdvancedOptions
  LogPublishingOptions: AwsESS3qLogPublishingOptions
  DomainEndpointOptions: AwsESS3qDomainEndpointOptions
  AdvancedSecurityOptions: AwsESS3qAdvancedSecurityOptions
  AutoTuneOptions: AwsESS3qAutoTuneOptions
}

type AwsESS3qElasticsearchVersion {
  Options: String!
  Status: AwsESS3s!
}

type AwsESS3s {
  CreationDate: Date!
  UpdateDate: Date!
  UpdateVersion: Int
  State: String!
  PendingDeletion: Boolean
}

type AwsESS3qElasticsearchClusterConfig {
  Options: AwsESS14!
  Status: AwsESS3s!
}

type AwsESS3qEBSOptions {
  Options: AwsESS1a!
  Status: AwsESS3s!
}

type AwsESS3qAccessPolicies {
  Options: String!
  Status: AwsESS3s!
}

type AwsESS3qSnapshotOptions {
  Options: AwsESS1d!
  Status: AwsESS3s!
}

type AwsESS3qVPCOptions {
  Options: AwsESS2h!
  Status: AwsESS3s!
}

type AwsESS3qCognitoOptions {
  Options: AwsESS1g!
  Status: AwsESS3s!
}

type AwsESS3qEncryptionAtRestOptions {
  Options: AwsESS1k!
  Status: AwsESS3s!
}

type AwsESS3qNodeToNodeEncryptionOptions {
  Options: AwsESS1m!
  Status: AwsESS3s!
}

type AwsESS3qAdvancedOptions {
  Options: JSON!
  Status: AwsESS3s!
}

type AwsESS3qLogPublishingOptions {
  Options: JSON
  Status: AwsESS3s
}

type AwsESS3qDomainEndpointOptions {
  Options: AwsESS1s!
  Status: AwsESS3s!
}

type AwsESS3qAdvancedSecurityOptions {
  Options: AwsESS2i!
  Status: AwsESS3s!
}

type AwsESS3qAutoTuneOptions {
  Options: AwsESS49
  Status: AwsESS3qAutoTuneOptionsStatus
}

type AwsESS49 {
  DesiredState: String
  RollbackOnDisable: String
  MaintenanceSchedules: [AwsESS26]
}

type AwsESS26 {
  StartAt: Date
  Duration: AwsESS26Duration
  CronExpressionForRecurrence: String
}

type AwsESS26Duration {
  Value: JSON
  Unit: String
}

type AwsESS3qAutoTuneOptionsStatus {
  CreationDate: Date!
  UpdateDate: Date!
  UpdateVersion: Int
  State: String!
  ErrorMessage: String
  PendingDeletion: Boolean
}

input AwsESDescribeElasticsearchDomainConfigInput {
  DomainName: String!
}

type AwsESDescribeElasticsearchDomainsOutput {
  DomainStatusList: [AwsESS2d]!
}

input AwsESDescribeElasticsearchDomainsInput {
  DomainNames: [String]!
}

type AwsESDescribeElasticsearchInstanceTypeLimitsOutput {
  LimitsByRole: JSON
}

input AwsESDescribeElasticsearchInstanceTypeLimitsInput {
  DomainName: String
  InstanceType: String!
  ElasticsearchVersion: String!
}

type AwsESDescribeInboundCrossClusterSearchConnectionsOutput {
  CrossClusterSearchConnections: [AwsESS4]
  NextToken: String
}

input AwsESDescribeInboundCrossClusterSearchConnectionsInput {
  Filters: [AwsESS51Input]
  MaxResults: Int
  NextToken: String
}

input AwsESS51Input {
  Name: String
  Values: [String]
}

type AwsESDescribeOutboundCrossClusterSearchConnectionsOutput {
  CrossClusterSearchConnections: [AwsESS36]
  NextToken: String
}

input AwsESDescribeOutboundCrossClusterSearchConnectionsInput {
  Filters: [AwsESS51Input]
  MaxResults: Int
  NextToken: String
}

type AwsESDescribePackagesOutput {
  PackageDetailsList: [AwsESS2x]
  NextToken: String
}

input AwsESDescribePackagesInput {
  Filters: [AwsESDescribePackagesFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsESDescribePackagesFiltersInput {
  Name: String
  Value: [String]
}

type AwsESDescribeReservedElasticsearchInstanceOfferingsOutput {
  NextToken: String
  ReservedElasticsearchInstanceOfferings: [AwsESDescribeReservedElasticsearchInstanceOfferingsOutputReservedElasticsearchInstanceOfferings]
}

type AwsESDescribeReservedElasticsearchInstanceOfferingsOutputReservedElasticsearchInstanceOfferings {
  ReservedElasticsearchInstanceOfferingId: String
  ElasticsearchInstanceType: String
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  PaymentOption: String
  RecurringCharges: [AwsESS5q]
}

type AwsESS5q {
  RecurringChargeAmount: JSON
  RecurringChargeFrequency: String
}

input AwsESDescribeReservedElasticsearchInstanceOfferingsInput {
  ReservedElasticsearchInstanceOfferingId: String
  MaxResults: Int
  NextToken: String
}

type AwsESDescribeReservedElasticsearchInstancesOutput {
  NextToken: String
  ReservedElasticsearchInstances: [AwsESDescribeReservedElasticsearchInstancesOutputReservedElasticsearchInstances]
}

type AwsESDescribeReservedElasticsearchInstancesOutputReservedElasticsearchInstances {
  ReservationName: String
  ReservedElasticsearchInstanceId: String
  ReservedElasticsearchInstanceOfferingId: String
  ElasticsearchInstanceType: String
  StartTime: Date
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  ElasticsearchInstanceCount: Int
  State: String
  PaymentOption: String
  RecurringCharges: [AwsESS5q]
}

input AwsESDescribeReservedElasticsearchInstancesInput {
  ReservedElasticsearchInstanceId: String
  MaxResults: Int
  NextToken: String
}

type AwsESDissociatePackageOutput {
  DomainPackageDetails: AwsESSl
}

input AwsESDissociatePackageInput {
  PackageID: String!
  DomainName: String!
}

type AwsESGetCompatibleElasticsearchVersionsOutput {
  CompatibleElasticsearchVersions: [AwsESGetCompatibleElasticsearchVersionsOutputCompatibleElasticsearchVersions]
}

type AwsESGetCompatibleElasticsearchVersionsOutputCompatibleElasticsearchVersions {
  SourceVersion: String
  TargetVersions: [String]
}

input AwsESGetCompatibleElasticsearchVersionsInput {
  DomainName: String
}

type AwsESGetPackageVersionHistoryOutput {
  PackageID: String
  PackageVersionHistoryList: [AwsESGetPackageVersionHistoryOutputPackageVersionHistoryList]
  NextToken: String
}

type AwsESGetPackageVersionHistoryOutputPackageVersionHistoryList {
  PackageVersion: String
  CommitMessage: String
  CreatedAt: Date
}

input AwsESGetPackageVersionHistoryInput {
  PackageID: String!
  MaxResults: Int
  NextToken: String
}

type AwsESGetUpgradeHistoryOutput {
  UpgradeHistories: [AwsESGetUpgradeHistoryOutputUpgradeHistories]
  NextToken: String
}

type AwsESGetUpgradeHistoryOutputUpgradeHistories {
  UpgradeName: String
  StartTimestamp: Date
  UpgradeStatus: String
  StepsList: [AwsESGetUpgradeHistoryOutputUpgradeHistoriesStepsList]
}

type AwsESGetUpgradeHistoryOutputUpgradeHistoriesStepsList {
  UpgradeStep: String
  UpgradeStepStatus: String
  Issues: [String]
  ProgressPercent: JSON
}

input AwsESGetUpgradeHistoryInput {
  DomainName: String!
  MaxResults: Int
  NextToken: String
}

type AwsESGetUpgradeStatusOutput {
  UpgradeStep: String
  StepStatus: String
  UpgradeName: String
}

input AwsESGetUpgradeStatusInput {
  DomainName: String!
}

type AwsESListDomainNamesOutput {
  DomainNames: [AwsESListDomainNamesOutputDomainNames]
}

type AwsESListDomainNamesOutputDomainNames {
  DomainName: String
}

type AwsESListDomainsForPackageOutput {
  DomainPackageDetailsList: [AwsESSl]
  NextToken: String
}

input AwsESListDomainsForPackageInput {
  PackageID: String!
  MaxResults: Int
  NextToken: String
}

type AwsESListElasticsearchInstanceTypesOutput {
  ElasticsearchInstanceTypes: [String]
  NextToken: String
}

input AwsESListElasticsearchInstanceTypesInput {
  ElasticsearchVersion: String!
  DomainName: String
  MaxResults: Int
  NextToken: String
}

type AwsESListElasticsearchVersionsOutput {
  ElasticsearchVersions: [String]
  NextToken: String
}

input AwsESListElasticsearchVersionsInput {
  MaxResults: Int
  NextToken: String
}

type AwsESListPackagesForDomainOutput {
  DomainPackageDetailsList: [AwsESSl]
  NextToken: String
}

input AwsESListPackagesForDomainInput {
  DomainName: String!
  MaxResults: Int
  NextToken: String
}

type AwsESListTagsOutput {
  TagList: [AwsESSe]
}

type AwsESSe {
  Key: String!
  Value: String!
}

input AwsESListTagsInput {
  ARN: String!
}

type AwsESPurchaseReservedElasticsearchInstanceOfferingOutput {
  ReservedElasticsearchInstanceId: String
  ReservationName: String
}

input AwsESPurchaseReservedElasticsearchInstanceOfferingInput {
  ReservedElasticsearchInstanceOfferingId: String!
  ReservationName: String!
  InstanceCount: Int
}

type AwsESRejectInboundCrossClusterSearchConnectionOutput {
  CrossClusterSearchConnection: AwsESS4
}

input AwsESRejectInboundCrossClusterSearchConnectionInput {
  CrossClusterSearchConnectionId: String!
}

input AwsESRemoveTagsInput {
  ARN: String!
  TagKeys: [String]!
}

type AwsESStartElasticsearchServiceSoftwareUpdateOutput {
  ServiceSoftwareOptions: AwsESSx
}

input AwsESStartElasticsearchServiceSoftwareUpdateInput {
  DomainName: String!
}

type AwsESUpdateElasticsearchDomainConfigOutput {
  DomainConfig: AwsESS3q!
}

input AwsESUpdateElasticsearchDomainConfigInput {
  DomainName: String!
  ElasticsearchClusterConfig: AwsESS14Input
  EBSOptions: AwsESS1aInput
  SnapshotOptions: AwsESS1dInput
  VPCOptions: AwsESS1eInput
  CognitoOptions: AwsESS1gInput
  AdvancedOptions: JSON
  AccessPolicies: String
  LogPublishingOptions: JSON
  DomainEndpointOptions: AwsESS1sInput
  AdvancedSecurityOptions: AwsESS1vInput
  NodeToNodeEncryptionOptions: AwsESS1mInput
  EncryptionAtRestOptions: AwsESS1kInput
  AutoTuneOptions: AwsESS49Input
}

input AwsESS49Input {
  DesiredState: String
  RollbackOnDisable: String
  MaintenanceSchedules: [AwsESS26Input]
}

type AwsESUpdatePackageOutput {
  PackageDetails: AwsESS2x
}

input AwsESUpdatePackageInput {
  PackageID: String!
  PackageSource: AwsESS2tInput!
  PackageDescription: String
  CommitMessage: String
}

type AwsESUpgradeElasticsearchDomainOutput {
  DomainName: String
  TargetVersion: String
  PerformCheckOnly: Boolean
}

input AwsESUpgradeElasticsearchDomainInput {
  DomainName: String!
  TargetVersion: String!
  PerformCheckOnly: Boolean
}

"""Amazon ElastiCache (2015-02-02)"""
type AwsElastiCache {
  addTagsToResource(input: AwsElastiCacheAddTagsToResourceInput!, config: AwsConfig): JSON
  authorizeCacheSecurityGroupIngress(input: AwsElastiCacheAuthorizeCacheSecurityGroupIngressInput!, config: AwsConfig): AwsElastiCacheAuthorizeCacheSecurityGroupIngressOutput
  batchApplyUpdateAction(input: AwsElastiCacheBatchApplyUpdateActionInput!, config: AwsConfig): JSON
  batchStopUpdateAction(input: AwsElastiCacheBatchStopUpdateActionInput!, config: AwsConfig): JSON
  completeMigration(input: AwsElastiCacheCompleteMigrationInput!, config: AwsConfig): AwsElastiCacheCompleteMigrationOutput
  copySnapshot(input: AwsElastiCacheCopySnapshotInput!, config: AwsConfig): AwsElastiCacheCopySnapshotOutput
  createCacheCluster(input: AwsElastiCacheCreateCacheClusterInput!, config: AwsConfig): AwsElastiCacheCreateCacheClusterOutput
  createCacheParameterGroup(input: AwsElastiCacheCreateCacheParameterGroupInput!, config: AwsConfig): AwsElastiCacheCreateCacheParameterGroupOutput
  createCacheSecurityGroup(input: AwsElastiCacheCreateCacheSecurityGroupInput!, config: AwsConfig): AwsElastiCacheCreateCacheSecurityGroupOutput
  createCacheSubnetGroup(input: AwsElastiCacheCreateCacheSubnetGroupInput!, config: AwsConfig): AwsElastiCacheCreateCacheSubnetGroupOutput
  createGlobalReplicationGroup(input: AwsElastiCacheCreateGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheCreateGlobalReplicationGroupOutput
  createReplicationGroup(input: AwsElastiCacheCreateReplicationGroupInput!, config: AwsConfig): AwsElastiCacheCreateReplicationGroupOutput
  createSnapshot(input: AwsElastiCacheCreateSnapshotInput!, config: AwsConfig): AwsElastiCacheCreateSnapshotOutput
  createUser(input: AwsElastiCacheCreateUserInput!, config: AwsConfig): JSON
  createUserGroup(input: AwsElastiCacheCreateUserGroupInput!, config: AwsConfig): JSON
  decreaseNodeGroupsInGlobalReplicationGroup(input: AwsElastiCacheDecreaseNodeGroupsInGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheDecreaseNodeGroupsInGlobalReplicationGroupOutput
  decreaseReplicaCount(input: AwsElastiCacheDecreaseReplicaCountInput!, config: AwsConfig): AwsElastiCacheDecreaseReplicaCountOutput
  deleteCacheCluster(input: AwsElastiCacheDeleteCacheClusterInput!, config: AwsConfig): AwsElastiCacheDeleteCacheClusterOutput
  deleteCacheParameterGroup(input: AwsElastiCacheDeleteCacheParameterGroupInput!, config: AwsConfig): JSON
  deleteCacheSecurityGroup(input: AwsElastiCacheDeleteCacheSecurityGroupInput!, config: AwsConfig): JSON
  deleteCacheSubnetGroup(input: AwsElastiCacheDeleteCacheSubnetGroupInput!, config: AwsConfig): JSON
  deleteGlobalReplicationGroup(input: AwsElastiCacheDeleteGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheDeleteGlobalReplicationGroupOutput
  deleteReplicationGroup(input: AwsElastiCacheDeleteReplicationGroupInput!, config: AwsConfig): AwsElastiCacheDeleteReplicationGroupOutput
  deleteSnapshot(input: AwsElastiCacheDeleteSnapshotInput!, config: AwsConfig): AwsElastiCacheDeleteSnapshotOutput
  deleteUser(input: AwsElastiCacheDeleteUserInput!, config: AwsConfig): JSON
  deleteUserGroup(input: AwsElastiCacheDeleteUserGroupInput!, config: AwsConfig): JSON
  describeCacheClusters(input: AwsElastiCacheDescribeCacheClustersInput, config: AwsConfig): AwsElastiCacheDescribeCacheClustersOutput
  describeCacheEngineVersions(input: AwsElastiCacheDescribeCacheEngineVersionsInput, config: AwsConfig): AwsElastiCacheDescribeCacheEngineVersionsOutput
  describeCacheParameterGroups(input: AwsElastiCacheDescribeCacheParameterGroupsInput, config: AwsConfig): AwsElastiCacheDescribeCacheParameterGroupsOutput
  describeCacheParameters(input: AwsElastiCacheDescribeCacheParametersInput!, config: AwsConfig): AwsElastiCacheDescribeCacheParametersOutput
  describeCacheSecurityGroups(input: AwsElastiCacheDescribeCacheSecurityGroupsInput, config: AwsConfig): AwsElastiCacheDescribeCacheSecurityGroupsOutput
  describeCacheSubnetGroups(input: AwsElastiCacheDescribeCacheSubnetGroupsInput, config: AwsConfig): AwsElastiCacheDescribeCacheSubnetGroupsOutput
  describeEngineDefaultParameters(input: AwsElastiCacheDescribeEngineDefaultParametersInput!, config: AwsConfig): AwsElastiCacheDescribeEngineDefaultParametersOutput
  describeEvents(input: AwsElastiCacheDescribeEventsInput, config: AwsConfig): AwsElastiCacheDescribeEventsOutput
  describeGlobalReplicationGroups(input: AwsElastiCacheDescribeGlobalReplicationGroupsInput, config: AwsConfig): AwsElastiCacheDescribeGlobalReplicationGroupsOutput
  describeReplicationGroups(input: AwsElastiCacheDescribeReplicationGroupsInput, config: AwsConfig): AwsElastiCacheDescribeReplicationGroupsOutput
  describeReservedCacheNodes(input: AwsElastiCacheDescribeReservedCacheNodesInput, config: AwsConfig): AwsElastiCacheDescribeReservedCacheNodesOutput
  describeReservedCacheNodesOfferings(input: AwsElastiCacheDescribeReservedCacheNodesOfferingsInput, config: AwsConfig): AwsElastiCacheDescribeReservedCacheNodesOfferingsOutput
  describeServiceUpdates(input: AwsElastiCacheDescribeServiceUpdatesInput, config: AwsConfig): AwsElastiCacheDescribeServiceUpdatesOutput
  describeSnapshots(input: AwsElastiCacheDescribeSnapshotsInput, config: AwsConfig): AwsElastiCacheDescribeSnapshotsOutput
  describeUpdateActions(input: AwsElastiCacheDescribeUpdateActionsInput, config: AwsConfig): AwsElastiCacheDescribeUpdateActionsOutput
  describeUserGroups(input: AwsElastiCacheDescribeUserGroupsInput, config: AwsConfig): AwsElastiCacheDescribeUserGroupsOutput
  describeUsers(input: AwsElastiCacheDescribeUsersInput, config: AwsConfig): AwsElastiCacheDescribeUsersOutput
  disassociateGlobalReplicationGroup(input: AwsElastiCacheDisassociateGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheDisassociateGlobalReplicationGroupOutput
  failoverGlobalReplicationGroup(input: AwsElastiCacheFailoverGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheFailoverGlobalReplicationGroupOutput
  increaseNodeGroupsInGlobalReplicationGroup(input: AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupOutput
  increaseReplicaCount(input: AwsElastiCacheIncreaseReplicaCountInput!, config: AwsConfig): AwsElastiCacheIncreaseReplicaCountOutput
  listAllowedNodeTypeModifications(input: AwsElastiCacheListAllowedNodeTypeModificationsInput, config: AwsConfig): AwsElastiCacheListAllowedNodeTypeModificationsOutput
  listTagsForResource(input: AwsElastiCacheListTagsForResourceInput!, config: AwsConfig): JSON
  modifyCacheCluster(input: AwsElastiCacheModifyCacheClusterInput!, config: AwsConfig): AwsElastiCacheModifyCacheClusterOutput
  modifyCacheParameterGroup(input: AwsElastiCacheModifyCacheParameterGroupInput!, config: AwsConfig): JSON
  modifyCacheSubnetGroup(input: AwsElastiCacheModifyCacheSubnetGroupInput!, config: AwsConfig): AwsElastiCacheModifyCacheSubnetGroupOutput
  modifyGlobalReplicationGroup(input: AwsElastiCacheModifyGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheModifyGlobalReplicationGroupOutput
  modifyReplicationGroup(input: AwsElastiCacheModifyReplicationGroupInput!, config: AwsConfig): AwsElastiCacheModifyReplicationGroupOutput
  modifyReplicationGroupShardConfiguration(input: AwsElastiCacheModifyReplicationGroupShardConfigurationInput!, config: AwsConfig): AwsElastiCacheModifyReplicationGroupShardConfigurationOutput
  modifyUser(input: AwsElastiCacheModifyUserInput!, config: AwsConfig): JSON
  modifyUserGroup(input: AwsElastiCacheModifyUserGroupInput!, config: AwsConfig): JSON
  purchaseReservedCacheNodesOffering(input: AwsElastiCachePurchaseReservedCacheNodesOfferingInput!, config: AwsConfig): AwsElastiCachePurchaseReservedCacheNodesOfferingOutput
  rebalanceSlotsInGlobalReplicationGroup(input: AwsElastiCacheRebalanceSlotsInGlobalReplicationGroupInput!, config: AwsConfig): AwsElastiCacheRebalanceSlotsInGlobalReplicationGroupOutput
  rebootCacheCluster(input: AwsElastiCacheRebootCacheClusterInput!, config: AwsConfig): AwsElastiCacheRebootCacheClusterOutput
  removeTagsFromResource(input: AwsElastiCacheRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetCacheParameterGroup(input: AwsElastiCacheResetCacheParameterGroupInput!, config: AwsConfig): JSON
  revokeCacheSecurityGroupIngress(input: AwsElastiCacheRevokeCacheSecurityGroupIngressInput!, config: AwsConfig): AwsElastiCacheRevokeCacheSecurityGroupIngressOutput
  startMigration(input: AwsElastiCacheStartMigrationInput!, config: AwsConfig): AwsElastiCacheStartMigrationOutput
  testFailover(input: AwsElastiCacheTestFailoverInput!, config: AwsConfig): AwsElastiCacheTestFailoverOutput
}

input AwsElastiCacheAddTagsToResourceInput {
  ResourceName: String!
  Tags: [AwsElastiCacheS3Input]!
}

input AwsElastiCacheS3Input {
  Key: String
  Value: String
}

type AwsElastiCacheAuthorizeCacheSecurityGroupIngressOutput {
  CacheSecurityGroup: AwsElastiCacheS8
}

type AwsElastiCacheS8 {
  OwnerId: String
  CacheSecurityGroupName: String
  Description: String
  EC2SecurityGroups: [AwsElastiCacheS8EC2SecurityGroups]
  ARN: String
}

type AwsElastiCacheS8EC2SecurityGroups {
  Status: String
  EC2SecurityGroupName: String
  EC2SecurityGroupOwnerId: String
}

input AwsElastiCacheAuthorizeCacheSecurityGroupIngressInput {
  CacheSecurityGroupName: String!
  EC2SecurityGroupName: String!
  EC2SecurityGroupOwnerId: String!
}

input AwsElastiCacheBatchApplyUpdateActionInput {
  ReplicationGroupIds: [String]
  CacheClusterIds: [String]
  ServiceUpdateName: String!
}

input AwsElastiCacheBatchStopUpdateActionInput {
  ReplicationGroupIds: [String]
  CacheClusterIds: [String]
  ServiceUpdateName: String!
}

type AwsElastiCacheCompleteMigrationOutput {
  ReplicationGroup: AwsElastiCacheSo
}

type AwsElastiCacheSo {
  ReplicationGroupId: String
  Description: String
  GlobalReplicationGroupInfo: AwsElastiCacheSoGlobalReplicationGroupInfo
  Status: String
  PendingModifiedValues: AwsElastiCacheSoPendingModifiedValues
  MemberClusters: [String]
  NodeGroups: [AwsElastiCacheSoNodeGroups]
  SnapshottingClusterId: String
  AutomaticFailover: String
  MultiAZ: String
  ConfigurationEndpoint: AwsElastiCacheS1a
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  ClusterEnabled: Boolean
  CacheNodeType: String
  AuthTokenEnabled: Boolean
  AuthTokenLastModifiedDate: Date
  TransitEncryptionEnabled: Boolean
  AtRestEncryptionEnabled: Boolean
  MemberClustersOutpostArns: [String]
  KmsKeyId: String
  ARN: String
  UserGroupIds: [String]
  LogDeliveryConfigurations: [AwsElastiCacheS1k]
}

type AwsElastiCacheSoGlobalReplicationGroupInfo {
  GlobalReplicationGroupId: String
  GlobalReplicationGroupMemberRole: String
}

type AwsElastiCacheSoPendingModifiedValues {
  PrimaryClusterId: String
  AutomaticFailoverStatus: String
  Resharding: AwsElastiCacheSoPendingModifiedValuesResharding
  AuthTokenStatus: String
  UserGroups: AwsElastiCacheSoPendingModifiedValuesUserGroups
  LogDeliveryConfigurations: [AwsElastiCacheSz]
}

type AwsElastiCacheSoPendingModifiedValuesResharding {
  SlotMigration: AwsElastiCacheSoPendingModifiedValuesReshardingSlotMigration
}

type AwsElastiCacheSoPendingModifiedValuesReshardingSlotMigration {
  ProgressPercentage: JSON
}

type AwsElastiCacheSoPendingModifiedValuesUserGroups {
  UserGroupIdsToAdd: [String]
  UserGroupIdsToRemove: [String]
}

type AwsElastiCacheSz {
  LogType: String
  DestinationType: String
  DestinationDetails: AwsElastiCacheS13
  LogFormat: String
}

type AwsElastiCacheS13 {
  CloudWatchLogsDetails: AwsElastiCacheS13CloudWatchLogsDetails
  KinesisFirehoseDetails: AwsElastiCacheS13KinesisFirehoseDetails
}

type AwsElastiCacheS13CloudWatchLogsDetails {
  LogGroup: String
}

type AwsElastiCacheS13KinesisFirehoseDetails {
  DeliveryStream: String
}

type AwsElastiCacheSoNodeGroups {
  NodeGroupId: String
  Status: String
  PrimaryEndpoint: AwsElastiCacheS1a
  ReaderEndpoint: AwsElastiCacheS1a
  Slots: String
  NodeGroupMembers: [AwsElastiCacheSoNodeGroupsNodeGroupMembers]
}

type AwsElastiCacheS1a {
  Address: String
  Port: Int
}

type AwsElastiCacheSoNodeGroupsNodeGroupMembers {
  CacheClusterId: String
  CacheNodeId: String
  ReadEndpoint: AwsElastiCacheS1a
  PreferredAvailabilityZone: String
  PreferredOutpostArn: String
  CurrentRole: String
}

type AwsElastiCacheS1k {
  LogType: String
  DestinationType: String
  DestinationDetails: AwsElastiCacheS13
  LogFormat: String
  Status: String
  Message: String
}

input AwsElastiCacheCompleteMigrationInput {
  ReplicationGroupId: String!
  Force: Boolean
}

type AwsElastiCacheCopySnapshotOutput {
  Snapshot: AwsElastiCacheS1p
}

type AwsElastiCacheS1p {
  SnapshotName: String
  ReplicationGroupId: String
  ReplicationGroupDescription: String
  CacheClusterId: String
  SnapshotStatus: String
  SnapshotSource: String
  CacheNodeType: String
  Engine: String
  EngineVersion: String
  NumCacheNodes: Int
  PreferredAvailabilityZone: String
  PreferredOutpostArn: String
  CacheClusterCreateTime: Date
  PreferredMaintenanceWindow: String
  TopicArn: String
  Port: Int
  CacheParameterGroupName: String
  CacheSubnetGroupName: String
  VpcId: String
  AutoMinorVersionUpgrade: Boolean
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  NumNodeGroups: Int
  AutomaticFailover: String
  NodeSnapshots: [AwsElastiCacheS1pNodeSnapshots]
  KmsKeyId: String
  ARN: String
}

type AwsElastiCacheS1pNodeSnapshots {
  CacheClusterId: String
  NodeGroupId: String
  CacheNodeId: String
  NodeGroupConfiguration: AwsElastiCacheS1s
  CacheSize: String
  CacheNodeCreateTime: Date
  SnapshotCreateTime: Date
}

type AwsElastiCacheS1s {
  NodeGroupId: String
  Slots: String
  ReplicaCount: Int
  PrimaryAvailabilityZone: String
  ReplicaAvailabilityZones: [String]
  PrimaryOutpostArn: String
  ReplicaOutpostArns: [String]
}

input AwsElastiCacheCopySnapshotInput {
  SourceSnapshotName: String!
  TargetSnapshotName: String!
  TargetBucket: String
  KmsKeyId: String
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheCreateCacheClusterOutput {
  CacheCluster: AwsElastiCacheS27
}

type AwsElastiCacheS27 {
  CacheClusterId: String
  ConfigurationEndpoint: AwsElastiCacheS1a
  ClientDownloadLandingPage: String
  CacheNodeType: String
  Engine: String
  EngineVersion: String
  CacheClusterStatus: String
  NumCacheNodes: Int
  PreferredAvailabilityZone: String
  PreferredOutpostArn: String
  CacheClusterCreateTime: Date
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsElastiCacheS27PendingModifiedValues
  NotificationConfiguration: AwsElastiCacheS27NotificationConfiguration
  CacheSecurityGroups: [AwsElastiCacheS27CacheSecurityGroups]
  CacheParameterGroup: AwsElastiCacheS27CacheParameterGroup
  CacheSubnetGroupName: String
  CacheNodes: [AwsElastiCacheS27CacheNodes]
  AutoMinorVersionUpgrade: Boolean
  SecurityGroups: [AwsElastiCacheS27SecurityGroups]
  ReplicationGroupId: String
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  AuthTokenEnabled: Boolean
  AuthTokenLastModifiedDate: Date
  TransitEncryptionEnabled: Boolean
  AtRestEncryptionEnabled: Boolean
  ARN: String
  ReplicationGroupLogDeliveryEnabled: Boolean
  LogDeliveryConfigurations: [AwsElastiCacheS1k]
}

type AwsElastiCacheS27PendingModifiedValues {
  NumCacheNodes: Int
  CacheNodeIdsToRemove: [String]
  EngineVersion: String
  CacheNodeType: String
  AuthTokenStatus: String
  LogDeliveryConfigurations: [AwsElastiCacheSz]
}

type AwsElastiCacheS27NotificationConfiguration {
  TopicArn: String
  TopicStatus: String
}

type AwsElastiCacheS27CacheSecurityGroups {
  CacheSecurityGroupName: String
  Status: String
}

type AwsElastiCacheS27CacheParameterGroup {
  CacheParameterGroupName: String
  ParameterApplyStatus: String
  CacheNodeIdsToReboot: [String]
}

type AwsElastiCacheS27CacheNodes {
  CacheNodeId: String
  CacheNodeStatus: String
  CacheNodeCreateTime: Date
  Endpoint: AwsElastiCacheS1a
  ParameterGroupStatus: String
  SourceCacheNodeId: String
  CustomerAvailabilityZone: String
  CustomerOutpostArn: String
}

type AwsElastiCacheS27SecurityGroups {
  SecurityGroupId: String
  Status: String
}

input AwsElastiCacheCreateCacheClusterInput {
  CacheClusterId: String!
  ReplicationGroupId: String
  AZMode: String
  PreferredAvailabilityZone: String
  PreferredAvailabilityZones: [String]
  NumCacheNodes: Int
  CacheNodeType: String
  Engine: String
  EngineVersion: String
  CacheParameterGroupName: String
  CacheSubnetGroupName: String
  CacheSecurityGroupNames: [String]
  SecurityGroupIds: [String]
  Tags: [AwsElastiCacheS3Input]
  SnapshotArns: [String]
  SnapshotName: String
  PreferredMaintenanceWindow: String
  Port: Int
  NotificationTopicArn: String
  AutoMinorVersionUpgrade: Boolean
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  AuthToken: String
  OutpostMode: String
  PreferredOutpostArn: String
  PreferredOutpostArns: [String]
  LogDeliveryConfigurations: [AwsElastiCacheS24Input]
}

input AwsElastiCacheS24Input {
  LogType: String
  DestinationType: String
  DestinationDetails: AwsElastiCacheS13Input
  LogFormat: String
  Enabled: Boolean
}

input AwsElastiCacheS13Input {
  CloudWatchLogsDetails: AwsElastiCacheS13CloudWatchLogsDetailsInput
  KinesisFirehoseDetails: AwsElastiCacheS13KinesisFirehoseDetailsInput
}

input AwsElastiCacheS13CloudWatchLogsDetailsInput {
  LogGroup: String
}

input AwsElastiCacheS13KinesisFirehoseDetailsInput {
  DeliveryStream: String
}

type AwsElastiCacheCreateCacheParameterGroupOutput {
  CacheParameterGroup: AwsElastiCacheS2k
}

type AwsElastiCacheS2k {
  CacheParameterGroupName: String
  CacheParameterGroupFamily: String
  Description: String
  IsGlobal: Boolean
  ARN: String
}

input AwsElastiCacheCreateCacheParameterGroupInput {
  CacheParameterGroupName: String!
  CacheParameterGroupFamily: String!
  Description: String!
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheCreateCacheSecurityGroupOutput {
  CacheSecurityGroup: AwsElastiCacheS8
}

input AwsElastiCacheCreateCacheSecurityGroupInput {
  CacheSecurityGroupName: String!
  Description: String!
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheCreateCacheSubnetGroupOutput {
  CacheSubnetGroup: AwsElastiCacheS2q
}

type AwsElastiCacheS2q {
  CacheSubnetGroupName: String
  CacheSubnetGroupDescription: String
  VpcId: String
  Subnets: [AwsElastiCacheS2qSubnets]
  ARN: String
}

type AwsElastiCacheS2qSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsElastiCacheS2qSubnetsSubnetAvailabilityZone
  SubnetOutpost: AwsElastiCacheS2qSubnetsSubnetOutpost
}

type AwsElastiCacheS2qSubnetsSubnetAvailabilityZone {
  Name: String
}

type AwsElastiCacheS2qSubnetsSubnetOutpost {
  SubnetOutpostArn: String
}

input AwsElastiCacheCreateCacheSubnetGroupInput {
  CacheSubnetGroupName: String!
  CacheSubnetGroupDescription: String!
  SubnetIds: [String]!
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheCreateGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

type AwsElastiCacheS2x {
  GlobalReplicationGroupId: String
  GlobalReplicationGroupDescription: String
  Status: String
  CacheNodeType: String
  Engine: String
  EngineVersion: String
  Members: [AwsElastiCacheS2xMembers]
  ClusterEnabled: Boolean
  GlobalNodeGroups: [AwsElastiCacheS2xGlobalNodeGroups]
  AuthTokenEnabled: Boolean
  TransitEncryptionEnabled: Boolean
  AtRestEncryptionEnabled: Boolean
  ARN: String
}

type AwsElastiCacheS2xMembers {
  ReplicationGroupId: String
  ReplicationGroupRegion: String
  Role: String
  AutomaticFailover: String
  Status: String
}

type AwsElastiCacheS2xGlobalNodeGroups {
  GlobalNodeGroupId: String
  Slots: String
}

input AwsElastiCacheCreateGlobalReplicationGroupInput {
  GlobalReplicationGroupIdSuffix: String!
  GlobalReplicationGroupDescription: String
  PrimaryReplicationGroupId: String!
}

type AwsElastiCacheCreateReplicationGroupOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheCreateReplicationGroupInput {
  ReplicationGroupId: String!
  ReplicationGroupDescription: String!
  GlobalReplicationGroupId: String
  PrimaryClusterId: String
  AutomaticFailoverEnabled: Boolean
  MultiAZEnabled: Boolean
  NumCacheClusters: Int
  PreferredCacheClusterAZs: [String]
  NumNodeGroups: Int
  ReplicasPerNodeGroup: Int
  NodeGroupConfiguration: [AwsElastiCacheS1sInput]
  CacheNodeType: String
  Engine: String
  EngineVersion: String
  CacheParameterGroupName: String
  CacheSubnetGroupName: String
  CacheSecurityGroupNames: [String]
  SecurityGroupIds: [String]
  Tags: [AwsElastiCacheS3Input]
  SnapshotArns: [String]
  SnapshotName: String
  PreferredMaintenanceWindow: String
  Port: Int
  NotificationTopicArn: String
  AutoMinorVersionUpgrade: Boolean
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  AuthToken: String
  TransitEncryptionEnabled: Boolean
  AtRestEncryptionEnabled: Boolean
  KmsKeyId: String
  UserGroupIds: [String]
  LogDeliveryConfigurations: [AwsElastiCacheS24Input]
}

input AwsElastiCacheS1sInput {
  NodeGroupId: String
  Slots: String
  ReplicaCount: Int
  PrimaryAvailabilityZone: String
  ReplicaAvailabilityZones: [String]
  PrimaryOutpostArn: String
  ReplicaOutpostArns: [String]
}

type AwsElastiCacheCreateSnapshotOutput {
  Snapshot: AwsElastiCacheS1p
}

input AwsElastiCacheCreateSnapshotInput {
  ReplicationGroupId: String
  CacheClusterId: String
  SnapshotName: String!
  KmsKeyId: String
  Tags: [AwsElastiCacheS3Input]
}

input AwsElastiCacheCreateUserInput {
  UserId: String!
  UserName: String!
  Engine: String!
  Passwords: [String]
  AccessString: String!
  NoPasswordRequired: Boolean
  Tags: [AwsElastiCacheS3Input]
}

input AwsElastiCacheCreateUserGroupInput {
  UserGroupId: String!
  Engine: String!
  UserIds: [String]
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheDecreaseNodeGroupsInGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheDecreaseNodeGroupsInGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  NodeGroupCount: Int!
  GlobalNodeGroupsToRemove: [String]
  GlobalNodeGroupsToRetain: [String]
  ApplyImmediately: Boolean!
}

type AwsElastiCacheDecreaseReplicaCountOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheDecreaseReplicaCountInput {
  ReplicationGroupId: String!
  NewReplicaCount: Int
  ReplicaConfiguration: [AwsElastiCacheS3rInput]
  ReplicasToRemove: [String]
  ApplyImmediately: Boolean!
}

input AwsElastiCacheS3rInput {
  NodeGroupId: String!
  NewReplicaCount: Int!
  PreferredAvailabilityZones: [String]
  PreferredOutpostArns: [String]
}

type AwsElastiCacheDeleteCacheClusterOutput {
  CacheCluster: AwsElastiCacheS27
}

input AwsElastiCacheDeleteCacheClusterInput {
  CacheClusterId: String!
  FinalSnapshotIdentifier: String
}

input AwsElastiCacheDeleteCacheParameterGroupInput {
  CacheParameterGroupName: String!
}

input AwsElastiCacheDeleteCacheSecurityGroupInput {
  CacheSecurityGroupName: String!
}

input AwsElastiCacheDeleteCacheSubnetGroupInput {
  CacheSubnetGroupName: String!
}

type AwsElastiCacheDeleteGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheDeleteGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  RetainPrimaryReplicationGroup: Boolean!
}

type AwsElastiCacheDeleteReplicationGroupOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheDeleteReplicationGroupInput {
  ReplicationGroupId: String!
  RetainPrimaryCluster: Boolean
  FinalSnapshotIdentifier: String
}

type AwsElastiCacheDeleteSnapshotOutput {
  Snapshot: AwsElastiCacheS1p
}

input AwsElastiCacheDeleteSnapshotInput {
  SnapshotName: String!
}

input AwsElastiCacheDeleteUserInput {
  UserId: String!
}

input AwsElastiCacheDeleteUserGroupInput {
  UserGroupId: String!
}

type AwsElastiCacheDescribeCacheClustersOutput {
  Marker: String
  CacheClusters: [AwsElastiCacheS27]
}

input AwsElastiCacheDescribeCacheClustersInput {
  CacheClusterId: String
  MaxRecords: Int
  Marker: String
  ShowCacheNodeInfo: Boolean
  ShowCacheClustersNotInReplicationGroups: Boolean
}

type AwsElastiCacheDescribeCacheEngineVersionsOutput {
  Marker: String
  CacheEngineVersions: [AwsElastiCacheDescribeCacheEngineVersionsOutputCacheEngineVersions]
}

type AwsElastiCacheDescribeCacheEngineVersionsOutputCacheEngineVersions {
  Engine: String
  EngineVersion: String
  CacheParameterGroupFamily: String
  CacheEngineDescription: String
  CacheEngineVersionDescription: String
}

input AwsElastiCacheDescribeCacheEngineVersionsInput {
  Engine: String
  EngineVersion: String
  CacheParameterGroupFamily: String
  MaxRecords: Int
  Marker: String
  DefaultOnly: Boolean
}

type AwsElastiCacheDescribeCacheParameterGroupsOutput {
  Marker: String
  CacheParameterGroups: [AwsElastiCacheS2k]
}

input AwsElastiCacheDescribeCacheParameterGroupsInput {
  CacheParameterGroupName: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeCacheParametersOutput {
  Marker: String
  Parameters: [AwsElastiCacheS4k]
  CacheNodeTypeSpecificParameters: [AwsElastiCacheS4n]
}

type AwsElastiCacheS4k {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ChangeType: String
}

type AwsElastiCacheS4n {
  ParameterName: String
  Description: String
  Source: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  CacheNodeTypeSpecificValues: [AwsElastiCacheS4nCacheNodeTypeSpecificValues]
  ChangeType: String
}

type AwsElastiCacheS4nCacheNodeTypeSpecificValues {
  CacheNodeType: String
  Value: String
}

input AwsElastiCacheDescribeCacheParametersInput {
  CacheParameterGroupName: String!
  Source: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeCacheSecurityGroupsOutput {
  Marker: String
  CacheSecurityGroups: [AwsElastiCacheS8]
}

input AwsElastiCacheDescribeCacheSecurityGroupsInput {
  CacheSecurityGroupName: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeCacheSubnetGroupsOutput {
  Marker: String
  CacheSubnetGroups: [AwsElastiCacheS2q]
}

input AwsElastiCacheDescribeCacheSubnetGroupsInput {
  CacheSubnetGroupName: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeEngineDefaultParametersOutput {
  EngineDefaults: AwsElastiCacheDescribeEngineDefaultParametersOutputEngineDefaults
}

type AwsElastiCacheDescribeEngineDefaultParametersOutputEngineDefaults {
  CacheParameterGroupFamily: String
  Marker: String
  Parameters: [AwsElastiCacheS4k]
  CacheNodeTypeSpecificParameters: [AwsElastiCacheS4n]
}

input AwsElastiCacheDescribeEngineDefaultParametersInput {
  CacheParameterGroupFamily: String!
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeEventsOutput {
  Marker: String
  Events: [AwsElastiCacheDescribeEventsOutputEvents]
}

type AwsElastiCacheDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  Date: Date
}

input AwsElastiCacheDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeGlobalReplicationGroupsOutput {
  Marker: String
  GlobalReplicationGroups: [AwsElastiCacheS2x]
}

input AwsElastiCacheDescribeGlobalReplicationGroupsInput {
  GlobalReplicationGroupId: String
  MaxRecords: Int
  Marker: String
  ShowMemberInfo: Boolean
}

type AwsElastiCacheDescribeReplicationGroupsOutput {
  Marker: String
  ReplicationGroups: [AwsElastiCacheSo]
}

input AwsElastiCacheDescribeReplicationGroupsInput {
  ReplicationGroupId: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeReservedCacheNodesOutput {
  Marker: String
  ReservedCacheNodes: [AwsElastiCacheS5e]
}

type AwsElastiCacheS5e {
  ReservedCacheNodeId: String
  ReservedCacheNodesOfferingId: String
  CacheNodeType: String
  StartTime: Date
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CacheNodeCount: Int
  ProductDescription: String
  OfferingType: String
  State: String
  RecurringCharges: [AwsElastiCacheS5f]
  ReservationARN: String
}

type AwsElastiCacheS5f {
  RecurringChargeAmount: JSON
  RecurringChargeFrequency: String
}

input AwsElastiCacheDescribeReservedCacheNodesInput {
  ReservedCacheNodeId: String
  ReservedCacheNodesOfferingId: String
  CacheNodeType: String
  Duration: String
  ProductDescription: String
  OfferingType: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeReservedCacheNodesOfferingsOutput {
  Marker: String
  ReservedCacheNodesOfferings: [AwsElastiCacheDescribeReservedCacheNodesOfferingsOutputReservedCacheNodesOfferings]
}

type AwsElastiCacheDescribeReservedCacheNodesOfferingsOutputReservedCacheNodesOfferings {
  ReservedCacheNodesOfferingId: String
  CacheNodeType: String
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  ProductDescription: String
  OfferingType: String
  RecurringCharges: [AwsElastiCacheS5f]
}

input AwsElastiCacheDescribeReservedCacheNodesOfferingsInput {
  ReservedCacheNodesOfferingId: String
  CacheNodeType: String
  Duration: String
  ProductDescription: String
  OfferingType: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeServiceUpdatesOutput {
  Marker: String
  ServiceUpdates: [AwsElastiCacheDescribeServiceUpdatesOutputServiceUpdates]
}

type AwsElastiCacheDescribeServiceUpdatesOutputServiceUpdates {
  ServiceUpdateName: String
  ServiceUpdateReleaseDate: Date
  ServiceUpdateEndDate: Date
  ServiceUpdateSeverity: String
  ServiceUpdateRecommendedApplyByDate: Date
  ServiceUpdateStatus: String
  ServiceUpdateDescription: String
  ServiceUpdateType: String
  Engine: String
  EngineVersion: String
  AutoUpdateAfterRecommendedApplyByDate: Boolean
  EstimatedUpdateTime: String
}

input AwsElastiCacheDescribeServiceUpdatesInput {
  ServiceUpdateName: String
  ServiceUpdateStatus: [String]
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeSnapshotsOutput {
  Marker: String
  Snapshots: [AwsElastiCacheS1p]
}

input AwsElastiCacheDescribeSnapshotsInput {
  ReplicationGroupId: String
  CacheClusterId: String
  SnapshotName: String
  SnapshotSource: String
  Marker: String
  MaxRecords: Int
  ShowNodeGroupConfig: Boolean
}

type AwsElastiCacheDescribeUpdateActionsOutput {
  Marker: String
  UpdateActions: [AwsElastiCacheDescribeUpdateActionsOutputUpdateActions]
}

type AwsElastiCacheDescribeUpdateActionsOutputUpdateActions {
  ReplicationGroupId: String
  CacheClusterId: String
  ServiceUpdateName: String
  ServiceUpdateReleaseDate: Date
  ServiceUpdateSeverity: String
  ServiceUpdateStatus: String
  ServiceUpdateRecommendedApplyByDate: Date
  ServiceUpdateType: String
  UpdateActionAvailableDate: Date
  UpdateActionStatus: String
  NodesUpdated: String
  UpdateActionStatusModifiedDate: Date
  SlaMet: String
  NodeGroupUpdateStatus: [AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsNodeGroupUpdateStatus]
  CacheNodeUpdateStatus: [AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsCacheNodeUpdateStatus]
  EstimatedUpdateTime: String
  Engine: String
}

type AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsNodeGroupUpdateStatus {
  NodeGroupId: String
  NodeGroupMemberUpdateStatus: [AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsNodeGroupUpdateStatusNodeGroupMemberUpdateStatus]
}

type AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsNodeGroupUpdateStatusNodeGroupMemberUpdateStatus {
  CacheClusterId: String
  CacheNodeId: String
  NodeUpdateStatus: String
  NodeDeletionDate: Date
  NodeUpdateStartDate: Date
  NodeUpdateEndDate: Date
  NodeUpdateInitiatedBy: String
  NodeUpdateInitiatedDate: Date
  NodeUpdateStatusModifiedDate: Date
}

type AwsElastiCacheDescribeUpdateActionsOutputUpdateActionsCacheNodeUpdateStatus {
  CacheNodeId: String
  NodeUpdateStatus: String
  NodeDeletionDate: Date
  NodeUpdateStartDate: Date
  NodeUpdateEndDate: Date
  NodeUpdateInitiatedBy: String
  NodeUpdateInitiatedDate: Date
  NodeUpdateStatusModifiedDate: Date
}

input AwsElastiCacheDescribeUpdateActionsInput {
  ServiceUpdateName: String
  ReplicationGroupIds: [String]
  CacheClusterIds: [String]
  Engine: String
  ServiceUpdateStatus: [String]
  ServiceUpdateTimeRange: AwsElastiCacheDescribeUpdateActionsServiceUpdateTimeRangeInput
  UpdateActionStatus: [String]
  ShowNodeLevelUpdateStatus: Boolean
  MaxRecords: Int
  Marker: String
}

input AwsElastiCacheDescribeUpdateActionsServiceUpdateTimeRangeInput {
  StartTime: Date
  EndTime: Date
}

type AwsElastiCacheDescribeUserGroupsOutput {
  UserGroups: [AwsElastiCacheS3j]
  Marker: String
}

type AwsElastiCacheS3j {
  UserGroupId: String
  Status: String
  Engine: String
  UserIds: [String]
  PendingChanges: AwsElastiCacheS3jPendingChanges
  ReplicationGroups: [String]
  ARN: String
}

type AwsElastiCacheS3jPendingChanges {
  UserIdsToRemove: [String]
  UserIdsToAdd: [String]
}

input AwsElastiCacheDescribeUserGroupsInput {
  UserGroupId: String
  MaxRecords: Int
  Marker: String
}

type AwsElastiCacheDescribeUsersOutput {
  Users: [AwsElastiCacheS3e]
  Marker: String
}

type AwsElastiCacheS3e {
  UserId: String
  UserName: String
  Status: String
  Engine: String
  AccessString: String
  UserGroupIds: [String]
  Authentication: AwsElastiCacheS3eAuthentication
  ARN: String
}

type AwsElastiCacheS3eAuthentication {
  Type: String
  PasswordCount: Int
}

input AwsElastiCacheDescribeUsersInput {
  Engine: String
  UserId: String
  Filters: [AwsElastiCacheDescribeUsersFiltersInput]
  MaxRecords: Int
  Marker: String
}

input AwsElastiCacheDescribeUsersFiltersInput {
  Name: String!
  Values: [String]!
}

type AwsElastiCacheDisassociateGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheDisassociateGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  ReplicationGroupId: String!
  ReplicationGroupRegion: String!
}

type AwsElastiCacheFailoverGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheFailoverGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  PrimaryRegion: String!
  PrimaryReplicationGroupId: String!
}

type AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  NodeGroupCount: Int!
  RegionalConfigurations: [AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupRegionalConfigurationsInput]
  ApplyImmediately: Boolean!
}

input AwsElastiCacheIncreaseNodeGroupsInGlobalReplicationGroupRegionalConfigurationsInput {
  ReplicationGroupId: String!
  ReplicationGroupRegion: String!
  ReshardingConfiguration: [AwsElastiCacheS6tInput]!
}

input AwsElastiCacheS6tInput {
  NodeGroupId: String
  PreferredAvailabilityZones: [String]
}

type AwsElastiCacheIncreaseReplicaCountOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheIncreaseReplicaCountInput {
  ReplicationGroupId: String!
  NewReplicaCount: Int
  ReplicaConfiguration: [AwsElastiCacheS3rInput]
  ApplyImmediately: Boolean!
}

type AwsElastiCacheListAllowedNodeTypeModificationsOutput {
  ScaleUpModifications: [String]
  ScaleDownModifications: [String]
}

input AwsElastiCacheListAllowedNodeTypeModificationsInput {
  CacheClusterId: String
  ReplicationGroupId: String
}

input AwsElastiCacheListTagsForResourceInput {
  ResourceName: String!
}

type AwsElastiCacheModifyCacheClusterOutput {
  CacheCluster: AwsElastiCacheS27
}

input AwsElastiCacheModifyCacheClusterInput {
  CacheClusterId: String!
  NumCacheNodes: Int
  CacheNodeIdsToRemove: [String]
  AZMode: String
  NewAvailabilityZones: [String]
  CacheSecurityGroupNames: [String]
  SecurityGroupIds: [String]
  PreferredMaintenanceWindow: String
  NotificationTopicArn: String
  CacheParameterGroupName: String
  NotificationTopicStatus: String
  ApplyImmediately: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  CacheNodeType: String
  AuthToken: String
  AuthTokenUpdateStrategy: String
  LogDeliveryConfigurations: [AwsElastiCacheS24Input]
}

input AwsElastiCacheModifyCacheParameterGroupInput {
  CacheParameterGroupName: String!
  ParameterNameValues: [AwsElastiCacheS76Input]!
}

input AwsElastiCacheS76Input {
  ParameterName: String
  ParameterValue: String
}

type AwsElastiCacheModifyCacheSubnetGroupOutput {
  CacheSubnetGroup: AwsElastiCacheS2q
}

input AwsElastiCacheModifyCacheSubnetGroupInput {
  CacheSubnetGroupName: String!
  CacheSubnetGroupDescription: String
  SubnetIds: [String]
}

type AwsElastiCacheModifyGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheModifyGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  ApplyImmediately: Boolean!
  CacheNodeType: String
  EngineVersion: String
  CacheParameterGroupName: String
  GlobalReplicationGroupDescription: String
  AutomaticFailoverEnabled: Boolean
}

type AwsElastiCacheModifyReplicationGroupOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheModifyReplicationGroupInput {
  ReplicationGroupId: String!
  ReplicationGroupDescription: String
  PrimaryClusterId: String
  SnapshottingClusterId: String
  AutomaticFailoverEnabled: Boolean
  MultiAZEnabled: Boolean
  NodeGroupId: String
  CacheSecurityGroupNames: [String]
  SecurityGroupIds: [String]
  PreferredMaintenanceWindow: String
  NotificationTopicArn: String
  CacheParameterGroupName: String
  NotificationTopicStatus: String
  ApplyImmediately: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  SnapshotRetentionLimit: Int
  SnapshotWindow: String
  CacheNodeType: String
  AuthToken: String
  AuthTokenUpdateStrategy: String
  UserGroupIdsToAdd: [String]
  UserGroupIdsToRemove: [String]
  RemoveUserGroups: Boolean
  LogDeliveryConfigurations: [AwsElastiCacheS24Input]
}

type AwsElastiCacheModifyReplicationGroupShardConfigurationOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheModifyReplicationGroupShardConfigurationInput {
  ReplicationGroupId: String!
  NodeGroupCount: Int!
  ApplyImmediately: Boolean!
  ReshardingConfiguration: [AwsElastiCacheS6tInput]
  NodeGroupsToRemove: [String]
  NodeGroupsToRetain: [String]
}

input AwsElastiCacheModifyUserInput {
  UserId: String!
  AccessString: String
  AppendAccessString: String
  Passwords: [String]
  NoPasswordRequired: Boolean
}

input AwsElastiCacheModifyUserGroupInput {
  UserGroupId: String!
  UserIdsToAdd: [String]
  UserIdsToRemove: [String]
}

type AwsElastiCachePurchaseReservedCacheNodesOfferingOutput {
  ReservedCacheNode: AwsElastiCacheS5e
}

input AwsElastiCachePurchaseReservedCacheNodesOfferingInput {
  ReservedCacheNodesOfferingId: String!
  ReservedCacheNodeId: String
  CacheNodeCount: Int
  Tags: [AwsElastiCacheS3Input]
}

type AwsElastiCacheRebalanceSlotsInGlobalReplicationGroupOutput {
  GlobalReplicationGroup: AwsElastiCacheS2x
}

input AwsElastiCacheRebalanceSlotsInGlobalReplicationGroupInput {
  GlobalReplicationGroupId: String!
  ApplyImmediately: Boolean!
}

type AwsElastiCacheRebootCacheClusterOutput {
  CacheCluster: AwsElastiCacheS27
}

input AwsElastiCacheRebootCacheClusterInput {
  CacheClusterId: String!
  CacheNodeIdsToReboot: [String]!
}

input AwsElastiCacheRemoveTagsFromResourceInput {
  ResourceName: String!
  TagKeys: [String]!
}

input AwsElastiCacheResetCacheParameterGroupInput {
  CacheParameterGroupName: String!
  ResetAllParameters: Boolean
  ParameterNameValues: [AwsElastiCacheS76Input]
}

type AwsElastiCacheRevokeCacheSecurityGroupIngressOutput {
  CacheSecurityGroup: AwsElastiCacheS8
}

input AwsElastiCacheRevokeCacheSecurityGroupIngressInput {
  CacheSecurityGroupName: String!
  EC2SecurityGroupName: String!
  EC2SecurityGroupOwnerId: String!
}

type AwsElastiCacheStartMigrationOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheStartMigrationInput {
  ReplicationGroupId: String!
  CustomerNodeEndpointList: [AwsElastiCacheStartMigrationCustomerNodeEndpointListInput]!
}

input AwsElastiCacheStartMigrationCustomerNodeEndpointListInput {
  Address: String
  Port: Int
}

type AwsElastiCacheTestFailoverOutput {
  ReplicationGroup: AwsElastiCacheSo
}

input AwsElastiCacheTestFailoverInput {
  ReplicationGroupId: String!
  NodeGroupId: String!
}

"""AWS Elastic Beanstalk (2010-12-01)"""
type AwsElasticBeanstalk {
  abortEnvironmentUpdate(input: AwsElasticBeanstalkAbortEnvironmentUpdateInput, config: AwsConfig): JSON
  applyEnvironmentManagedAction(input: AwsElasticBeanstalkApplyEnvironmentManagedActionInput!, config: AwsConfig): AwsElasticBeanstalkApplyEnvironmentManagedActionOutput
  associateEnvironmentOperationsRole(input: AwsElasticBeanstalkAssociateEnvironmentOperationsRoleInput!, config: AwsConfig): JSON
  checkDNSAvailability(input: AwsElasticBeanstalkCheckDNSAvailabilityInput!, config: AwsConfig): AwsElasticBeanstalkCheckDNSAvailabilityOutput
  composeEnvironments(input: AwsElasticBeanstalkComposeEnvironmentsInput, config: AwsConfig): JSON
  createApplication(input: AwsElasticBeanstalkCreateApplicationInput!, config: AwsConfig): JSON
  createApplicationVersion(input: AwsElasticBeanstalkCreateApplicationVersionInput!, config: AwsConfig): JSON
  createConfigurationTemplate(input: AwsElasticBeanstalkCreateConfigurationTemplateInput!, config: AwsConfig): JSON
  createEnvironment(input: AwsElasticBeanstalkCreateEnvironmentInput!, config: AwsConfig): JSON
  createPlatformVersion(input: AwsElasticBeanstalkCreatePlatformVersionInput!, config: AwsConfig): AwsElasticBeanstalkCreatePlatformVersionOutput
  createStorageLocation(config: AwsConfig): AwsElasticBeanstalkCreateStorageLocationOutput
  deleteApplication(input: AwsElasticBeanstalkDeleteApplicationInput!, config: AwsConfig): JSON
  deleteApplicationVersion(input: AwsElasticBeanstalkDeleteApplicationVersionInput!, config: AwsConfig): JSON
  deleteConfigurationTemplate(input: AwsElasticBeanstalkDeleteConfigurationTemplateInput!, config: AwsConfig): JSON
  deleteEnvironmentConfiguration(input: AwsElasticBeanstalkDeleteEnvironmentConfigurationInput!, config: AwsConfig): JSON
  deletePlatformVersion(input: AwsElasticBeanstalkDeletePlatformVersionInput, config: AwsConfig): AwsElasticBeanstalkDeletePlatformVersionOutput
  describeAccountAttributes(config: AwsConfig): AwsElasticBeanstalkDescribeAccountAttributesOutput
  describeApplicationVersions(input: AwsElasticBeanstalkDescribeApplicationVersionsInput, config: AwsConfig): AwsElasticBeanstalkDescribeApplicationVersionsOutput
  describeApplications(input: AwsElasticBeanstalkDescribeApplicationsInput, config: AwsConfig): AwsElasticBeanstalkDescribeApplicationsOutput
  describeConfigurationOptions(input: AwsElasticBeanstalkDescribeConfigurationOptionsInput, config: AwsConfig): AwsElasticBeanstalkDescribeConfigurationOptionsOutput
  describeConfigurationSettings(input: AwsElasticBeanstalkDescribeConfigurationSettingsInput!, config: AwsConfig): AwsElasticBeanstalkDescribeConfigurationSettingsOutput
  describeEnvironmentHealth(input: AwsElasticBeanstalkDescribeEnvironmentHealthInput, config: AwsConfig): AwsElasticBeanstalkDescribeEnvironmentHealthOutput
  describeEnvironmentManagedActionHistory(input: AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryInput, config: AwsConfig): AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryOutput
  describeEnvironmentManagedActions(input: AwsElasticBeanstalkDescribeEnvironmentManagedActionsInput, config: AwsConfig): AwsElasticBeanstalkDescribeEnvironmentManagedActionsOutput
  describeEnvironmentResources(input: AwsElasticBeanstalkDescribeEnvironmentResourcesInput, config: AwsConfig): AwsElasticBeanstalkDescribeEnvironmentResourcesOutput
  describeEnvironments(input: AwsElasticBeanstalkDescribeEnvironmentsInput, config: AwsConfig): JSON
  describeEvents(input: AwsElasticBeanstalkDescribeEventsInput, config: AwsConfig): AwsElasticBeanstalkDescribeEventsOutput
  describeInstancesHealth(input: AwsElasticBeanstalkDescribeInstancesHealthInput, config: AwsConfig): AwsElasticBeanstalkDescribeInstancesHealthOutput
  describePlatformVersion(input: AwsElasticBeanstalkDescribePlatformVersionInput, config: AwsConfig): AwsElasticBeanstalkDescribePlatformVersionOutput
  disassociateEnvironmentOperationsRole(input: AwsElasticBeanstalkDisassociateEnvironmentOperationsRoleInput!, config: AwsConfig): JSON
  listAvailableSolutionStacks(config: AwsConfig): AwsElasticBeanstalkListAvailableSolutionStacksOutput
  listPlatformBranches(input: AwsElasticBeanstalkListPlatformBranchesInput, config: AwsConfig): AwsElasticBeanstalkListPlatformBranchesOutput
  listPlatformVersions(input: AwsElasticBeanstalkListPlatformVersionsInput, config: AwsConfig): AwsElasticBeanstalkListPlatformVersionsOutput
  listTagsForResource(input: AwsElasticBeanstalkListTagsForResourceInput!, config: AwsConfig): AwsElasticBeanstalkListTagsForResourceOutput
  rebuildEnvironment(input: AwsElasticBeanstalkRebuildEnvironmentInput, config: AwsConfig): JSON
  requestEnvironmentInfo(input: AwsElasticBeanstalkRequestEnvironmentInfoInput!, config: AwsConfig): JSON
  restartAppServer(input: AwsElasticBeanstalkRestartAppServerInput, config: AwsConfig): JSON
  retrieveEnvironmentInfo(input: AwsElasticBeanstalkRetrieveEnvironmentInfoInput!, config: AwsConfig): AwsElasticBeanstalkRetrieveEnvironmentInfoOutput
  swapEnvironmentCNAMEs(input: AwsElasticBeanstalkSwapEnvironmentCNAMEsInput, config: AwsConfig): JSON
  terminateEnvironment(input: AwsElasticBeanstalkTerminateEnvironmentInput, config: AwsConfig): JSON
  updateApplication(input: AwsElasticBeanstalkUpdateApplicationInput!, config: AwsConfig): JSON
  updateApplicationResourceLifecycle(input: AwsElasticBeanstalkUpdateApplicationResourceLifecycleInput!, config: AwsConfig): AwsElasticBeanstalkUpdateApplicationResourceLifecycleOutput
  updateApplicationVersion(input: AwsElasticBeanstalkUpdateApplicationVersionInput!, config: AwsConfig): JSON
  updateConfigurationTemplate(input: AwsElasticBeanstalkUpdateConfigurationTemplateInput!, config: AwsConfig): JSON
  updateEnvironment(input: AwsElasticBeanstalkUpdateEnvironmentInput, config: AwsConfig): JSON
  updateTagsForResource(input: AwsElasticBeanstalkUpdateTagsForResourceInput!, config: AwsConfig): JSON
  validateConfigurationSettings(input: AwsElasticBeanstalkValidateConfigurationSettingsInput!, config: AwsConfig): AwsElasticBeanstalkValidateConfigurationSettingsOutput
}

input AwsElasticBeanstalkAbortEnvironmentUpdateInput {
  EnvironmentId: String
  EnvironmentName: String
}

type AwsElasticBeanstalkApplyEnvironmentManagedActionOutput {
  ActionId: String
  ActionDescription: String
  ActionType: String
  Status: String
}

input AwsElasticBeanstalkApplyEnvironmentManagedActionInput {
  EnvironmentName: String
  EnvironmentId: String
  ActionId: String!
}

input AwsElasticBeanstalkAssociateEnvironmentOperationsRoleInput {
  EnvironmentName: String!
  OperationsRole: String!
}

type AwsElasticBeanstalkCheckDNSAvailabilityOutput {
  Available: Boolean
  FullyQualifiedCNAME: String
}

input AwsElasticBeanstalkCheckDNSAvailabilityInput {
  CNAMEPrefix: String!
}

input AwsElasticBeanstalkComposeEnvironmentsInput {
  ApplicationName: String
  GroupName: String
  VersionLabels: [String]
}

input AwsElasticBeanstalkCreateApplicationInput {
  ApplicationName: String!
  Description: String
  ResourceLifecycleConfig: AwsElasticBeanstalkS19Input
  Tags: [AwsElasticBeanstalkS1gInput]
}

input AwsElasticBeanstalkS19Input {
  ServiceRole: String
  VersionLifecycleConfig: AwsElasticBeanstalkS19VersionLifecycleConfigInput
}

input AwsElasticBeanstalkS19VersionLifecycleConfigInput {
  MaxCountRule: AwsElasticBeanstalkS19VersionLifecycleConfigMaxCountRuleInput
  MaxAgeRule: AwsElasticBeanstalkS19VersionLifecycleConfigMaxAgeRuleInput
}

input AwsElasticBeanstalkS19VersionLifecycleConfigMaxCountRuleInput {
  Enabled: Boolean!
  MaxCount: Int
  DeleteSourceFromS3: Boolean
}

input AwsElasticBeanstalkS19VersionLifecycleConfigMaxAgeRuleInput {
  Enabled: Boolean!
  MaxAgeInDays: Int
  DeleteSourceFromS3: Boolean
}

input AwsElasticBeanstalkS1gInput {
  Key: String
  Value: String
}

input AwsElasticBeanstalkCreateApplicationVersionInput {
  ApplicationName: String!
  VersionLabel: String!
  Description: String
  SourceBuildInformation: AwsElasticBeanstalkS1pInput
  SourceBundle: AwsElasticBeanstalkS1tInput
  BuildConfiguration: AwsElasticBeanstalkCreateApplicationVersionBuildConfigurationInput
  AutoCreateApplication: Boolean
  Process: Boolean
  Tags: [AwsElasticBeanstalkS1gInput]
}

input AwsElasticBeanstalkS1pInput {
  SourceType: String!
  SourceRepository: String!
  SourceLocation: String!
}

input AwsElasticBeanstalkS1tInput {
  S3Bucket: String
  S3Key: String
}

input AwsElasticBeanstalkCreateApplicationVersionBuildConfigurationInput {
  ArtifactName: String
  CodeBuildServiceRole: String!
  ComputeType: String
  Image: String!
  TimeoutInMinutes: Int
}

input AwsElasticBeanstalkCreateConfigurationTemplateInput {
  ApplicationName: String!
  TemplateName: String!
  SolutionStackName: String
  PlatformArn: String
  SourceConfiguration: AwsElasticBeanstalkCreateConfigurationTemplateSourceConfigurationInput
  EnvironmentId: String
  Description: String
  OptionSettings: [AwsElasticBeanstalkS27Input]
  Tags: [AwsElasticBeanstalkS1gInput]
}

input AwsElasticBeanstalkCreateConfigurationTemplateSourceConfigurationInput {
  ApplicationName: String
  TemplateName: String
}

input AwsElasticBeanstalkS27Input {
  ResourceName: String
  Namespace: String
  OptionName: String
  Value: String
}

input AwsElasticBeanstalkCreateEnvironmentInput {
  ApplicationName: String!
  EnvironmentName: String
  GroupName: String
  Description: String
  CNAMEPrefix: String
  Tier: AwsElasticBeanstalkS13Input
  Tags: [AwsElasticBeanstalkS1gInput]
  VersionLabel: String
  TemplateName: String
  SolutionStackName: String
  PlatformArn: String
  OptionSettings: [AwsElasticBeanstalkS27Input]
  OptionsToRemove: [AwsElasticBeanstalkS2gInput]
  OperationsRole: String
}

input AwsElasticBeanstalkS13Input {
  Name: String
  Type: String
  Version: String
}

input AwsElasticBeanstalkS2gInput {
  ResourceName: String
  Namespace: String
  OptionName: String
}

type AwsElasticBeanstalkCreatePlatformVersionOutput {
  PlatformSummary: AwsElasticBeanstalkS2m
  Builder: AwsElasticBeanstalkCreatePlatformVersionOutputBuilder
}

type AwsElasticBeanstalkS2m {
  PlatformArn: String
  PlatformOwner: String
  PlatformStatus: String
  PlatformCategory: String
  OperatingSystemName: String
  OperatingSystemVersion: String
  SupportedTierList: [String]
  SupportedAddonList: [String]
  PlatformLifecycleState: String
  PlatformVersion: String
  PlatformBranchName: String
  PlatformBranchLifecycleState: String
}

type AwsElasticBeanstalkCreatePlatformVersionOutputBuilder {
  ARN: String
}

input AwsElasticBeanstalkCreatePlatformVersionInput {
  PlatformName: String!
  PlatformVersion: String!
  PlatformDefinitionBundle: AwsElasticBeanstalkS1tInput!
  EnvironmentName: String
  OptionSettings: [AwsElasticBeanstalkS27Input]
  Tags: [AwsElasticBeanstalkS1gInput]
}

type AwsElasticBeanstalkCreateStorageLocationOutput {
  S3Bucket: String
}

input AwsElasticBeanstalkDeleteApplicationInput {
  ApplicationName: String!
  TerminateEnvByForce: Boolean
}

input AwsElasticBeanstalkDeleteApplicationVersionInput {
  ApplicationName: String!
  VersionLabel: String!
  DeleteSourceBundle: Boolean
}

input AwsElasticBeanstalkDeleteConfigurationTemplateInput {
  ApplicationName: String!
  TemplateName: String!
}

input AwsElasticBeanstalkDeleteEnvironmentConfigurationInput {
  ApplicationName: String!
  EnvironmentName: String!
}

type AwsElasticBeanstalkDeletePlatformVersionOutput {
  PlatformSummary: AwsElasticBeanstalkS2m
}

input AwsElasticBeanstalkDeletePlatformVersionInput {
  PlatformArn: String
}

type AwsElasticBeanstalkDescribeAccountAttributesOutput {
  ResourceQuotas: AwsElasticBeanstalkDescribeAccountAttributesOutputResourceQuotas
}

type AwsElasticBeanstalkDescribeAccountAttributesOutputResourceQuotas {
  ApplicationQuota: AwsElasticBeanstalkS3c
  ApplicationVersionQuota: AwsElasticBeanstalkS3c
  EnvironmentQuota: AwsElasticBeanstalkS3c
  ConfigurationTemplateQuota: AwsElasticBeanstalkS3c
  CustomPlatformQuota: AwsElasticBeanstalkS3c
}

type AwsElasticBeanstalkS3c {
  Maximum: Int
}

type AwsElasticBeanstalkDescribeApplicationVersionsOutput {
  ApplicationVersions: [AwsElasticBeanstalkS22]
  NextToken: String
}

type AwsElasticBeanstalkS22 {
  ApplicationVersionArn: String
  ApplicationName: String
  Description: String
  VersionLabel: String
  SourceBuildInformation: AwsElasticBeanstalkS1p
  BuildArn: String
  SourceBundle: AwsElasticBeanstalkS1t
  DateCreated: Date
  DateUpdated: Date
  Status: String
}

type AwsElasticBeanstalkS1p {
  SourceType: String!
  SourceRepository: String!
  SourceLocation: String!
}

type AwsElasticBeanstalkS1t {
  S3Bucket: String
  S3Key: String
}

input AwsElasticBeanstalkDescribeApplicationVersionsInput {
  ApplicationName: String
  VersionLabels: [String]
  MaxRecords: Int
  NextToken: String
}

type AwsElasticBeanstalkDescribeApplicationsOutput {
  Applications: [AwsElasticBeanstalkS1k]
}

type AwsElasticBeanstalkS1k {
  ApplicationArn: String
  ApplicationName: String
  Description: String
  DateCreated: Date
  DateUpdated: Date
  Versions: [String]
  ConfigurationTemplates: [String]
  ResourceLifecycleConfig: AwsElasticBeanstalkS19
}

type AwsElasticBeanstalkS19 {
  ServiceRole: String
  VersionLifecycleConfig: AwsElasticBeanstalkS19VersionLifecycleConfig
}

type AwsElasticBeanstalkS19VersionLifecycleConfig {
  MaxCountRule: AwsElasticBeanstalkS19VersionLifecycleConfigMaxCountRule
  MaxAgeRule: AwsElasticBeanstalkS19VersionLifecycleConfigMaxAgeRule
}

type AwsElasticBeanstalkS19VersionLifecycleConfigMaxCountRule {
  Enabled: Boolean!
  MaxCount: Int
  DeleteSourceFromS3: Boolean
}

type AwsElasticBeanstalkS19VersionLifecycleConfigMaxAgeRule {
  Enabled: Boolean!
  MaxAgeInDays: Int
  DeleteSourceFromS3: Boolean
}

input AwsElasticBeanstalkDescribeApplicationsInput {
  ApplicationNames: [String]
}

type AwsElasticBeanstalkDescribeConfigurationOptionsOutput {
  SolutionStackName: String
  PlatformArn: String
  Options: [AwsElasticBeanstalkDescribeConfigurationOptionsOutputOptions]
}

type AwsElasticBeanstalkDescribeConfigurationOptionsOutputOptions {
  Namespace: String
  Name: String
  DefaultValue: String
  ChangeSeverity: String
  UserDefined: Boolean
  ValueType: String
  ValueOptions: [String]
  MinValue: Int
  MaxValue: Int
  MaxLength: Int
  Regex: AwsElasticBeanstalkDescribeConfigurationOptionsOutputOptionsRegex
}

type AwsElasticBeanstalkDescribeConfigurationOptionsOutputOptionsRegex {
  Pattern: String
  Label: String
}

input AwsElasticBeanstalkDescribeConfigurationOptionsInput {
  ApplicationName: String
  TemplateName: String
  EnvironmentName: String
  SolutionStackName: String
  PlatformArn: String
  Options: [AwsElasticBeanstalkS2gInput]
}

type AwsElasticBeanstalkDescribeConfigurationSettingsOutput {
  ConfigurationSettings: [AwsElasticBeanstalkS2d]
}

type AwsElasticBeanstalkS2d {
  SolutionStackName: String
  PlatformArn: String
  ApplicationName: String
  TemplateName: String
  Description: String
  EnvironmentName: String
  DeploymentStatus: String
  DateCreated: Date
  DateUpdated: Date
  OptionSettings: [AwsElasticBeanstalkS27]
}

type AwsElasticBeanstalkS27 {
  ResourceName: String
  Namespace: String
  OptionName: String
  Value: String
}

input AwsElasticBeanstalkDescribeConfigurationSettingsInput {
  ApplicationName: String!
  TemplateName: String
  EnvironmentName: String
}

type AwsElasticBeanstalkDescribeEnvironmentHealthOutput {
  EnvironmentName: String
  HealthStatus: String
  Status: String
  Color: String
  Causes: [String]
  ApplicationMetrics: AwsElasticBeanstalkS4a
  InstancesHealth: AwsElasticBeanstalkDescribeEnvironmentHealthOutputInstancesHealth
  RefreshedAt: Date
}

type AwsElasticBeanstalkS4a {
  Duration: Int
  RequestCount: Int
  StatusCodes: AwsElasticBeanstalkS4aStatusCodes
  Latency: AwsElasticBeanstalkS4aLatency
}

type AwsElasticBeanstalkS4aStatusCodes {
  Status2xx: Int
  Status3xx: Int
  Status4xx: Int
  Status5xx: Int
}

type AwsElasticBeanstalkS4aLatency {
  P999: JSON
  P99: JSON
  P95: JSON
  P90: JSON
  P85: JSON
  P75: JSON
  P50: JSON
  P10: JSON
}

type AwsElasticBeanstalkDescribeEnvironmentHealthOutputInstancesHealth {
  NoData: Int
  Unknown: Int
  Pending: Int
  Ok: Int
  Info: Int
  Warning: Int
  Degraded: Int
  Severe: Int
}

input AwsElasticBeanstalkDescribeEnvironmentHealthInput {
  EnvironmentName: String
  EnvironmentId: String
  AttributeNames: [String]
}

type AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryOutput {
  ManagedActionHistoryItems: [AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryOutputManagedActionHistoryItems]
  NextToken: String
}

type AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryOutputManagedActionHistoryItems {
  ActionId: String
  ActionType: String
  ActionDescription: String
  FailureType: String
  Status: String
  FailureDescription: String
  ExecutedTime: Date
  FinishedTime: Date
}

input AwsElasticBeanstalkDescribeEnvironmentManagedActionHistoryInput {
  EnvironmentId: String
  EnvironmentName: String
  NextToken: String
  MaxItems: Int
}

type AwsElasticBeanstalkDescribeEnvironmentManagedActionsOutput {
  ManagedActions: [AwsElasticBeanstalkDescribeEnvironmentManagedActionsOutputManagedActions]
}

type AwsElasticBeanstalkDescribeEnvironmentManagedActionsOutputManagedActions {
  ActionId: String
  ActionDescription: String
  ActionType: String
  Status: String
  WindowStartTime: Date
}

input AwsElasticBeanstalkDescribeEnvironmentManagedActionsInput {
  EnvironmentName: String
  EnvironmentId: String
  Status: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutput {
  EnvironmentResources: AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResources
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResources {
  EnvironmentName: String
  AutoScalingGroups: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesAutoScalingGroups]
  Instances: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesInstances]
  LaunchConfigurations: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLaunchConfigurations]
  LaunchTemplates: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLaunchTemplates]
  LoadBalancers: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLoadBalancers]
  Triggers: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesTriggers]
  Queues: [AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesQueues]
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesAutoScalingGroups {
  Name: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesInstances {
  Id: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLaunchConfigurations {
  Name: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLaunchTemplates {
  Id: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesLoadBalancers {
  Name: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesTriggers {
  Name: String
}

type AwsElasticBeanstalkDescribeEnvironmentResourcesOutputEnvironmentResourcesQueues {
  Name: String
  URL: String
}

input AwsElasticBeanstalkDescribeEnvironmentResourcesInput {
  EnvironmentId: String
  EnvironmentName: String
}

input AwsElasticBeanstalkDescribeEnvironmentsInput {
  ApplicationName: String
  VersionLabel: String
  EnvironmentIds: [String]
  EnvironmentNames: [String]
  IncludeDeleted: Boolean
  IncludedDeletedBackTo: Date
  MaxRecords: Int
  NextToken: String
}

type AwsElasticBeanstalkDescribeEventsOutput {
  Events: [AwsElasticBeanstalkDescribeEventsOutputEvents]
  NextToken: String
}

type AwsElasticBeanstalkDescribeEventsOutputEvents {
  EventDate: Date
  Message: String
  ApplicationName: String
  VersionLabel: String
  TemplateName: String
  EnvironmentName: String
  PlatformArn: String
  RequestId: String
  Severity: String
}

input AwsElasticBeanstalkDescribeEventsInput {
  ApplicationName: String
  VersionLabel: String
  TemplateName: String
  EnvironmentId: String
  EnvironmentName: String
  PlatformArn: String
  RequestId: String
  Severity: String
  StartTime: Date
  EndTime: Date
  MaxRecords: Int
  NextToken: String
}

type AwsElasticBeanstalkDescribeInstancesHealthOutput {
  InstanceHealthList: [AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthList]
  RefreshedAt: Date
  NextToken: String
}

type AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthList {
  InstanceId: String
  HealthStatus: String
  Color: String
  Causes: [String]
  LaunchedAt: Date
  ApplicationMetrics: AwsElasticBeanstalkS4a
  System: AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListSystem
  Deployment: AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListDeployment
  AvailabilityZone: String
  InstanceType: String
}

type AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListSystem {
  CPUUtilization: AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListSystemCPUUtilization
  LoadAverage: [JSON]
}

type AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListSystemCPUUtilization {
  User: JSON
  Nice: JSON
  System: JSON
  Idle: JSON
  IOWait: JSON
  IRQ: JSON
  SoftIRQ: JSON
  Privileged: JSON
}

type AwsElasticBeanstalkDescribeInstancesHealthOutputInstanceHealthListDeployment {
  VersionLabel: String
  DeploymentId: JSON
  Status: String
  DeploymentTime: Date
}

input AwsElasticBeanstalkDescribeInstancesHealthInput {
  EnvironmentName: String
  EnvironmentId: String
  AttributeNames: [String]
  NextToken: String
}

type AwsElasticBeanstalkDescribePlatformVersionOutput {
  PlatformDescription: AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescription
}

type AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescription {
  PlatformArn: String
  PlatformOwner: String
  PlatformName: String
  PlatformVersion: String
  SolutionStackName: String
  PlatformStatus: String
  DateCreated: Date
  DateUpdated: Date
  PlatformCategory: String
  Description: String
  Maintainer: String
  OperatingSystemName: String
  OperatingSystemVersion: String
  ProgrammingLanguages: [AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionProgrammingLanguages]
  Frameworks: [AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionFrameworks]
  CustomAmiList: [AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionCustomAmiList]
  SupportedTierList: [String]
  SupportedAddonList: [String]
  PlatformLifecycleState: String
  PlatformBranchName: String
  PlatformBranchLifecycleState: String
}

type AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionProgrammingLanguages {
  Name: String
  Version: String
}

type AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionFrameworks {
  Name: String
  Version: String
}

type AwsElasticBeanstalkDescribePlatformVersionOutputPlatformDescriptionCustomAmiList {
  VirtualizationType: String
  ImageId: String
}

input AwsElasticBeanstalkDescribePlatformVersionInput {
  PlatformArn: String
}

input AwsElasticBeanstalkDisassociateEnvironmentOperationsRoleInput {
  EnvironmentName: String!
}

type AwsElasticBeanstalkListAvailableSolutionStacksOutput {
  SolutionStacks: [String]
  SolutionStackDetails: [AwsElasticBeanstalkListAvailableSolutionStacksOutputSolutionStackDetails]
}

type AwsElasticBeanstalkListAvailableSolutionStacksOutputSolutionStackDetails {
  SolutionStackName: String
  PermittedFileTypes: [String]
}

type AwsElasticBeanstalkListPlatformBranchesOutput {
  PlatformBranchSummaryList: [AwsElasticBeanstalkListPlatformBranchesOutputPlatformBranchSummaryList]
  NextToken: String
}

type AwsElasticBeanstalkListPlatformBranchesOutputPlatformBranchSummaryList {
  PlatformName: String
  BranchName: String
  LifecycleState: String
  BranchOrder: Int
  SupportedTierList: [String]
}

input AwsElasticBeanstalkListPlatformBranchesInput {
  Filters: [AwsElasticBeanstalkListPlatformBranchesFiltersInput]
  MaxRecords: Int
  NextToken: String
}

input AwsElasticBeanstalkListPlatformBranchesFiltersInput {
  Attribute: String
  Operator: String
  Values: [String]
}

type AwsElasticBeanstalkListPlatformVersionsOutput {
  PlatformSummaryList: [AwsElasticBeanstalkS2m]
  NextToken: String
}

input AwsElasticBeanstalkListPlatformVersionsInput {
  Filters: [AwsElasticBeanstalkListPlatformVersionsFiltersInput]
  MaxRecords: Int
  NextToken: String
}

input AwsElasticBeanstalkListPlatformVersionsFiltersInput {
  Type: String
  Operator: String
  Values: [String]
}

type AwsElasticBeanstalkListTagsForResourceOutput {
  ResourceArn: String
  ResourceTags: [AwsElasticBeanstalkS1g]
}

type AwsElasticBeanstalkS1g {
  Key: String
  Value: String
}

input AwsElasticBeanstalkListTagsForResourceInput {
  ResourceArn: String!
}

input AwsElasticBeanstalkRebuildEnvironmentInput {
  EnvironmentId: String
  EnvironmentName: String
}

input AwsElasticBeanstalkRequestEnvironmentInfoInput {
  EnvironmentId: String
  EnvironmentName: String
  InfoType: String!
}

input AwsElasticBeanstalkRestartAppServerInput {
  EnvironmentId: String
  EnvironmentName: String
}

type AwsElasticBeanstalkRetrieveEnvironmentInfoOutput {
  EnvironmentInfo: [AwsElasticBeanstalkRetrieveEnvironmentInfoOutputEnvironmentInfo]
}

type AwsElasticBeanstalkRetrieveEnvironmentInfoOutputEnvironmentInfo {
  InfoType: String
  Ec2InstanceId: String
  SampleTimestamp: Date
  Message: String
}

input AwsElasticBeanstalkRetrieveEnvironmentInfoInput {
  EnvironmentId: String
  EnvironmentName: String
  InfoType: String!
}

input AwsElasticBeanstalkSwapEnvironmentCNAMEsInput {
  SourceEnvironmentId: String
  SourceEnvironmentName: String
  DestinationEnvironmentId: String
  DestinationEnvironmentName: String
}

input AwsElasticBeanstalkTerminateEnvironmentInput {
  EnvironmentId: String
  EnvironmentName: String
  TerminateResources: Boolean
  ForceTerminate: Boolean
}

input AwsElasticBeanstalkUpdateApplicationInput {
  ApplicationName: String!
  Description: String
}

type AwsElasticBeanstalkUpdateApplicationResourceLifecycleOutput {
  ApplicationName: String
  ResourceLifecycleConfig: AwsElasticBeanstalkS19
}

input AwsElasticBeanstalkUpdateApplicationResourceLifecycleInput {
  ApplicationName: String!
  ResourceLifecycleConfig: AwsElasticBeanstalkS19Input!
}

input AwsElasticBeanstalkUpdateApplicationVersionInput {
  ApplicationName: String!
  VersionLabel: String!
  Description: String
}

input AwsElasticBeanstalkUpdateConfigurationTemplateInput {
  ApplicationName: String!
  TemplateName: String!
  Description: String
  OptionSettings: [AwsElasticBeanstalkS27Input]
  OptionsToRemove: [AwsElasticBeanstalkS2gInput]
}

input AwsElasticBeanstalkUpdateEnvironmentInput {
  ApplicationName: String
  EnvironmentId: String
  EnvironmentName: String
  GroupName: String
  Description: String
  Tier: AwsElasticBeanstalkS13Input
  VersionLabel: String
  TemplateName: String
  SolutionStackName: String
  PlatformArn: String
  OptionSettings: [AwsElasticBeanstalkS27Input]
  OptionsToRemove: [AwsElasticBeanstalkS2gInput]
}

input AwsElasticBeanstalkUpdateTagsForResourceInput {
  ResourceArn: String!
  TagsToAdd: [AwsElasticBeanstalkS1gInput]
  TagsToRemove: [String]
}

type AwsElasticBeanstalkValidateConfigurationSettingsOutput {
  Messages: [AwsElasticBeanstalkValidateConfigurationSettingsOutputMessages]
}

type AwsElasticBeanstalkValidateConfigurationSettingsOutputMessages {
  Message: String
  Severity: String
  Namespace: String
  OptionName: String
}

input AwsElasticBeanstalkValidateConfigurationSettingsInput {
  ApplicationName: String!
  TemplateName: String
  EnvironmentName: String
  OptionSettings: [AwsElasticBeanstalkS27Input]!
}

"""Amazon Elastic  Inference (2017-07-25)"""
type AwsElasticInference {
  describeAcceleratorOfferings(input: AwsElasticInferenceDescribeAcceleratorOfferingsInput!, config: AwsConfig): AwsElasticInferenceDescribeAcceleratorOfferingsOutput
  describeAcceleratorTypes(input: JSON, config: AwsConfig): AwsElasticInferenceDescribeAcceleratorTypesOutput
  describeAccelerators(input: AwsElasticInferenceDescribeAcceleratorsInput, config: AwsConfig): AwsElasticInferenceDescribeAcceleratorsOutput
  listTagsForResource(input: AwsElasticInferenceListTagsForResourceInput!, config: AwsConfig): AwsElasticInferenceListTagsForResourceOutput
  tagResource(input: AwsElasticInferenceTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsElasticInferenceUntagResourceInput!, config: AwsConfig): JSON
}

type AwsElasticInferenceDescribeAcceleratorOfferingsOutput {
  acceleratorTypeOfferings: [AwsElasticInferenceDescribeAcceleratorOfferingsOutputAcceleratorTypeOfferings]
}

type AwsElasticInferenceDescribeAcceleratorOfferingsOutputAcceleratorTypeOfferings {
  acceleratorType: String
  locationType: String
  location: String
}

input AwsElasticInferenceDescribeAcceleratorOfferingsInput {
  locationType: String!
  acceleratorTypes: [String]
}

type AwsElasticInferenceDescribeAcceleratorTypesOutput {
  acceleratorTypes: [AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypes]
}

type AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypes {
  acceleratorTypeName: String
  memoryInfo: AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypesMemoryInfo
  throughputInfo: [AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypesThroughputInfo]
}

type AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypesMemoryInfo {
  sizeInMiB: Int
}

type AwsElasticInferenceDescribeAcceleratorTypesOutputAcceleratorTypesThroughputInfo {
  key: String
  value: Int
}

type AwsElasticInferenceDescribeAcceleratorsOutput {
  acceleratorSet: [AwsElasticInferenceDescribeAcceleratorsOutputAcceleratorSet]
  nextToken: String
}

type AwsElasticInferenceDescribeAcceleratorsOutputAcceleratorSet {
  acceleratorHealth: AwsElasticInferenceDescribeAcceleratorsOutputAcceleratorSetAcceleratorHealth
  acceleratorType: String
  acceleratorId: String
  availabilityZone: String
  attachedResource: String
}

type AwsElasticInferenceDescribeAcceleratorsOutputAcceleratorSetAcceleratorHealth {
  status: String
}

input AwsElasticInferenceDescribeAcceleratorsInput {
  acceleratorIds: [String]
  filters: [AwsElasticInferenceDescribeAcceleratorsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsElasticInferenceDescribeAcceleratorsFiltersInput {
  name: String
  values: [String]
}

type AwsElasticInferenceListTagsForResourceOutput {
  tags: JSON
}

input AwsElasticInferenceListTagsForResourceInput {
  resourceArn: String!
}

input AwsElasticInferenceTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsElasticInferenceUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Amazon Elastic Transcoder (2012-09-25)"""
type AwsElasticTranscoder {
  cancelJob(input: AwsElasticTranscoderCancelJobInput!, config: AwsConfig): JSON
  createJob(input: AwsElasticTranscoderCreateJobInput!, config: AwsConfig): AwsElasticTranscoderCreateJobOutput
  createPipeline(input: AwsElasticTranscoderCreatePipelineInput!, config: AwsConfig): AwsElasticTranscoderCreatePipelineOutput
  createPreset(input: AwsElasticTranscoderCreatePresetInput!, config: AwsConfig): AwsElasticTranscoderCreatePresetOutput
  deletePipeline(input: AwsElasticTranscoderDeletePipelineInput!, config: AwsConfig): JSON
  deletePreset(input: AwsElasticTranscoderDeletePresetInput!, config: AwsConfig): JSON
  listJobsByPipeline(input: AwsElasticTranscoderListJobsByPipelineInput!, config: AwsConfig): AwsElasticTranscoderListJobsByPipelineOutput
  listJobsByStatus(input: AwsElasticTranscoderListJobsByStatusInput!, config: AwsConfig): AwsElasticTranscoderListJobsByStatusOutput
  listPipelines(input: AwsElasticTranscoderListPipelinesInput, config: AwsConfig): AwsElasticTranscoderListPipelinesOutput
  listPresets(input: AwsElasticTranscoderListPresetsInput, config: AwsConfig): AwsElasticTranscoderListPresetsOutput
  readJob(input: AwsElasticTranscoderReadJobInput!, config: AwsConfig): AwsElasticTranscoderReadJobOutput
  readPipeline(input: AwsElasticTranscoderReadPipelineInput!, config: AwsConfig): AwsElasticTranscoderReadPipelineOutput
  readPreset(input: AwsElasticTranscoderReadPresetInput!, config: AwsConfig): AwsElasticTranscoderReadPresetOutput
  testRole(input: AwsElasticTranscoderTestRoleInput!, config: AwsConfig): AwsElasticTranscoderTestRoleOutput
  updatePipeline(input: AwsElasticTranscoderUpdatePipelineInput!, config: AwsConfig): AwsElasticTranscoderUpdatePipelineOutput
  updatePipelineNotifications(input: AwsElasticTranscoderUpdatePipelineNotificationsInput!, config: AwsConfig): AwsElasticTranscoderUpdatePipelineNotificationsOutput
  updatePipelineStatus(input: AwsElasticTranscoderUpdatePipelineStatusInput!, config: AwsConfig): AwsElasticTranscoderUpdatePipelineStatusOutput
}

input AwsElasticTranscoderCancelJobInput {
  Id: String!
}

type AwsElasticTranscoderCreateJobOutput {
  Job: AwsElasticTranscoderS1y
}

type AwsElasticTranscoderS1y {
  Id: String
  Arn: String
  PipelineId: String
  Input: AwsElasticTranscoderS5
  Inputs: [AwsElasticTranscoderS5]
  Output: AwsElasticTranscoderS1z
  Outputs: [AwsElasticTranscoderS1z]
  OutputKeyPrefix: String
  Playlists: [AwsElasticTranscoderS1yPlaylists]
  Status: String
  UserMetadata: JSON
  Timing: AwsElasticTranscoderS1yTiming
}

type AwsElasticTranscoderS5 {
  Key: String
  FrameRate: String
  Resolution: String
  AspectRatio: String
  Interlaced: String
  Container: String
  Encryption: AwsElasticTranscoderSc
  TimeSpan: AwsElasticTranscoderSg
  InputCaptions: AwsElasticTranscoderS5InputCaptions
  DetectedProperties: AwsElasticTranscoderS5DetectedProperties
}

type AwsElasticTranscoderSc {
  Mode: String
  Key: String
  KeyMd5: String
  InitializationVector: String
}

type AwsElasticTranscoderSg {
  StartTime: String
  Duration: String
}

type AwsElasticTranscoderS5InputCaptions {
  MergePolicy: String
  CaptionSources: [AwsElasticTranscoderSk]
}

type AwsElasticTranscoderSk {
  Key: String
  Language: String
  TimeOffset: String
  Label: String
  Encryption: AwsElasticTranscoderSc
}

type AwsElasticTranscoderS5DetectedProperties {
  Width: Int
  Height: Int
  FrameRate: String
  FileSize: JSON
  DurationMillis: JSON
}

type AwsElasticTranscoderS1z {
  Id: String
  Key: String
  ThumbnailPattern: String
  ThumbnailEncryption: AwsElasticTranscoderSc
  Rotate: String
  PresetId: String
  SegmentDuration: String
  Status: String
  StatusDetail: String
  Duration: JSON
  Width: Int
  Height: Int
  FrameRate: String
  FileSize: JSON
  DurationMillis: JSON
  Watermarks: [AwsElasticTranscoderSx]
  AlbumArt: AwsElasticTranscoderS11
  Composition: [AwsElasticTranscoderS19]
  Captions: AwsElasticTranscoderS1b
  Encryption: AwsElasticTranscoderSc
  AppliedColorSpaceConversion: String
}

type AwsElasticTranscoderSx {
  PresetWatermarkId: String
  InputKey: String
  Encryption: AwsElasticTranscoderSc
}

type AwsElasticTranscoderS11 {
  MergePolicy: String
  Artwork: [AwsElasticTranscoderS11Artwork]
}

type AwsElasticTranscoderS11Artwork {
  InputKey: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  PaddingPolicy: String
  AlbumArtFormat: String
  Encryption: AwsElasticTranscoderSc
}

type AwsElasticTranscoderS19 {
  TimeSpan: AwsElasticTranscoderSg
}

type AwsElasticTranscoderS1b {
  MergePolicy: String
  CaptionSources: [AwsElasticTranscoderSk]
  CaptionFormats: [AwsElasticTranscoderS1bCaptionFormats]
}

type AwsElasticTranscoderS1bCaptionFormats {
  Format: String
  Pattern: String
  Encryption: AwsElasticTranscoderSc
}

type AwsElasticTranscoderS1yPlaylists {
  Name: String
  Format: String
  OutputKeys: [String]
  HlsContentProtection: AwsElasticTranscoderS1m
  PlayReadyDrm: AwsElasticTranscoderS1q
  Status: String
  StatusDetail: String
}

type AwsElasticTranscoderS1m {
  Method: String
  Key: String
  KeyMd5: String
  InitializationVector: String
  LicenseAcquisitionUrl: String
  KeyStoragePolicy: String
}

type AwsElasticTranscoderS1q {
  Format: String
  Key: String
  KeyMd5: String
  KeyId: String
  InitializationVector: String
  LicenseAcquisitionUrl: String
}

type AwsElasticTranscoderS1yTiming {
  SubmitTimeMillis: JSON
  StartTimeMillis: JSON
  FinishTimeMillis: JSON
}

input AwsElasticTranscoderCreateJobInput {
  PipelineId: String!
  Input: AwsElasticTranscoderS5Input
  Inputs: [AwsElasticTranscoderS5Input]
  Output: AwsElasticTranscoderSuInput
  Outputs: [AwsElasticTranscoderSuInput]
  OutputKeyPrefix: String
  Playlists: [AwsElasticTranscoderCreateJobPlaylistsInput]
  UserMetadata: JSON
}

input AwsElasticTranscoderS5Input {
  Key: String
  FrameRate: String
  Resolution: String
  AspectRatio: String
  Interlaced: String
  Container: String
  Encryption: AwsElasticTranscoderScInput
  TimeSpan: AwsElasticTranscoderSgInput
  InputCaptions: AwsElasticTranscoderS5InputCaptionsInput
  DetectedProperties: AwsElasticTranscoderS5DetectedPropertiesInput
}

input AwsElasticTranscoderScInput {
  Mode: String
  Key: String
  KeyMd5: String
  InitializationVector: String
}

input AwsElasticTranscoderSgInput {
  StartTime: String
  Duration: String
}

input AwsElasticTranscoderS5InputCaptionsInput {
  MergePolicy: String
  CaptionSources: [AwsElasticTranscoderSkInput]
}

input AwsElasticTranscoderSkInput {
  Key: String
  Language: String
  TimeOffset: String
  Label: String
  Encryption: AwsElasticTranscoderScInput
}

input AwsElasticTranscoderS5DetectedPropertiesInput {
  Width: Int
  Height: Int
  FrameRate: String
  FileSize: JSON
  DurationMillis: JSON
}

input AwsElasticTranscoderSuInput {
  Key: String
  ThumbnailPattern: String
  ThumbnailEncryption: AwsElasticTranscoderScInput
  Rotate: String
  PresetId: String
  SegmentDuration: String
  Watermarks: [AwsElasticTranscoderSxInput]
  AlbumArt: AwsElasticTranscoderS11Input
  Composition: [AwsElasticTranscoderS19Input]
  Captions: AwsElasticTranscoderS1bInput
  Encryption: AwsElasticTranscoderScInput
}

input AwsElasticTranscoderSxInput {
  PresetWatermarkId: String
  InputKey: String
  Encryption: AwsElasticTranscoderScInput
}

input AwsElasticTranscoderS11Input {
  MergePolicy: String
  Artwork: [AwsElasticTranscoderS11ArtworkInput]
}

input AwsElasticTranscoderS11ArtworkInput {
  InputKey: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  PaddingPolicy: String
  AlbumArtFormat: String
  Encryption: AwsElasticTranscoderScInput
}

input AwsElasticTranscoderS19Input {
  TimeSpan: AwsElasticTranscoderSgInput
}

input AwsElasticTranscoderS1bInput {
  MergePolicy: String
  CaptionSources: [AwsElasticTranscoderSkInput]
  CaptionFormats: [AwsElasticTranscoderS1bCaptionFormatsInput]
}

input AwsElasticTranscoderS1bCaptionFormatsInput {
  Format: String
  Pattern: String
  Encryption: AwsElasticTranscoderScInput
}

input AwsElasticTranscoderCreateJobPlaylistsInput {
  Name: String
  Format: String
  OutputKeys: [String]
  HlsContentProtection: AwsElasticTranscoderS1mInput
  PlayReadyDrm: AwsElasticTranscoderS1qInput
}

input AwsElasticTranscoderS1mInput {
  Method: String
  Key: String
  KeyMd5: String
  InitializationVector: String
  LicenseAcquisitionUrl: String
  KeyStoragePolicy: String
}

input AwsElasticTranscoderS1qInput {
  Format: String
  Key: String
  KeyMd5: String
  KeyId: String
  InitializationVector: String
  LicenseAcquisitionUrl: String
}

type AwsElasticTranscoderCreatePipelineOutput {
  Pipeline: AwsElasticTranscoderS2l
  Warnings: [AwsElasticTranscoderS2n]
}

type AwsElasticTranscoderS2l {
  Id: String
  Arn: String
  Name: String
  Status: String
  InputBucket: String
  OutputBucket: String
  Role: String
  AwsKmsKeyArn: String
  Notifications: AwsElasticTranscoderS2a
  ContentConfig: AwsElasticTranscoderS2c
  ThumbnailConfig: AwsElasticTranscoderS2c
}

type AwsElasticTranscoderS2a {
  Progressing: String
  Completed: String
  Warning: String
  Error: String
}

type AwsElasticTranscoderS2c {
  Bucket: String
  StorageClass: String
  Permissions: [AwsElasticTranscoderS2cPermissions]
}

type AwsElasticTranscoderS2cPermissions {
  GranteeType: String
  Grantee: String
  Access: [String]
}

type AwsElasticTranscoderS2n {
  Code: String
  Message: String
}

input AwsElasticTranscoderCreatePipelineInput {
  Name: String!
  InputBucket: String!
  OutputBucket: String
  Role: String!
  AwsKmsKeyArn: String
  Notifications: AwsElasticTranscoderS2aInput
  ContentConfig: AwsElasticTranscoderS2cInput
  ThumbnailConfig: AwsElasticTranscoderS2cInput
}

input AwsElasticTranscoderS2aInput {
  Progressing: String
  Completed: String
  Warning: String
  Error: String
}

input AwsElasticTranscoderS2cInput {
  Bucket: String
  StorageClass: String
  Permissions: [AwsElasticTranscoderS2cPermissionsInput]
}

input AwsElasticTranscoderS2cPermissionsInput {
  GranteeType: String
  Grantee: String
  Access: [String]
}

type AwsElasticTranscoderCreatePresetOutput {
  Preset: AwsElasticTranscoderS3m
  Warning: String
}

type AwsElasticTranscoderS3m {
  Id: String
  Arn: String
  Name: String
  Description: String
  Container: String
  Audio: AwsElasticTranscoderS37
  Video: AwsElasticTranscoderS2r
  Thumbnails: AwsElasticTranscoderS3i
  Type: String
}

type AwsElasticTranscoderS37 {
  Codec: String
  SampleRate: String
  BitRate: String
  Channels: String
  AudioPackingMode: String
  CodecOptions: AwsElasticTranscoderS37CodecOptions
}

type AwsElasticTranscoderS37CodecOptions {
  Profile: String
  BitDepth: String
  BitOrder: String
  Signed: String
}

type AwsElasticTranscoderS2r {
  Codec: String
  CodecOptions: JSON
  KeyframesMaxDist: String
  FixedGOP: String
  BitRate: String
  FrameRate: String
  MaxFrameRate: String
  Resolution: String
  AspectRatio: String
  MaxWidth: String
  MaxHeight: String
  DisplayAspectRatio: String
  SizingPolicy: String
  PaddingPolicy: String
  Watermarks: [AwsElasticTranscoderS2rWatermarks]
}

type AwsElasticTranscoderS2rWatermarks {
  Id: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  HorizontalAlign: String
  HorizontalOffset: String
  VerticalAlign: String
  VerticalOffset: String
  Opacity: String
  Target: String
}

type AwsElasticTranscoderS3i {
  Format: String
  Interval: String
  Resolution: String
  AspectRatio: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  PaddingPolicy: String
}

input AwsElasticTranscoderCreatePresetInput {
  Name: String!
  Description: String
  Container: String!
  Video: AwsElasticTranscoderS2rInput
  Audio: AwsElasticTranscoderS37Input
  Thumbnails: AwsElasticTranscoderS3iInput
}

input AwsElasticTranscoderS2rInput {
  Codec: String
  CodecOptions: JSON
  KeyframesMaxDist: String
  FixedGOP: String
  BitRate: String
  FrameRate: String
  MaxFrameRate: String
  Resolution: String
  AspectRatio: String
  MaxWidth: String
  MaxHeight: String
  DisplayAspectRatio: String
  SizingPolicy: String
  PaddingPolicy: String
  Watermarks: [AwsElasticTranscoderS2rWatermarksInput]
}

input AwsElasticTranscoderS2rWatermarksInput {
  Id: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  HorizontalAlign: String
  HorizontalOffset: String
  VerticalAlign: String
  VerticalOffset: String
  Opacity: String
  Target: String
}

input AwsElasticTranscoderS37Input {
  Codec: String
  SampleRate: String
  BitRate: String
  Channels: String
  AudioPackingMode: String
  CodecOptions: AwsElasticTranscoderS37CodecOptionsInput
}

input AwsElasticTranscoderS37CodecOptionsInput {
  Profile: String
  BitDepth: String
  BitOrder: String
  Signed: String
}

input AwsElasticTranscoderS3iInput {
  Format: String
  Interval: String
  Resolution: String
  AspectRatio: String
  MaxWidth: String
  MaxHeight: String
  SizingPolicy: String
  PaddingPolicy: String
}

input AwsElasticTranscoderDeletePipelineInput {
  Id: String!
}

input AwsElasticTranscoderDeletePresetInput {
  Id: String!
}

type AwsElasticTranscoderListJobsByPipelineOutput {
  Jobs: [AwsElasticTranscoderS1y]
  NextPageToken: String
}

input AwsElasticTranscoderListJobsByPipelineInput {
  PipelineId: String!
  Ascending: String
  PageToken: String
}

type AwsElasticTranscoderListJobsByStatusOutput {
  Jobs: [AwsElasticTranscoderS1y]
  NextPageToken: String
}

input AwsElasticTranscoderListJobsByStatusInput {
  Status: String!
  Ascending: String
  PageToken: String
}

type AwsElasticTranscoderListPipelinesOutput {
  Pipelines: [AwsElasticTranscoderS2l]
  NextPageToken: String
}

input AwsElasticTranscoderListPipelinesInput {
  Ascending: String
  PageToken: String
}

type AwsElasticTranscoderListPresetsOutput {
  Presets: [AwsElasticTranscoderS3m]
  NextPageToken: String
}

input AwsElasticTranscoderListPresetsInput {
  Ascending: String
  PageToken: String
}

type AwsElasticTranscoderReadJobOutput {
  Job: AwsElasticTranscoderS1y
}

input AwsElasticTranscoderReadJobInput {
  Id: String!
}

type AwsElasticTranscoderReadPipelineOutput {
  Pipeline: AwsElasticTranscoderS2l
  Warnings: [AwsElasticTranscoderS2n]
}

input AwsElasticTranscoderReadPipelineInput {
  Id: String!
}

type AwsElasticTranscoderReadPresetOutput {
  Preset: AwsElasticTranscoderS3m
}

input AwsElasticTranscoderReadPresetInput {
  Id: String!
}

type AwsElasticTranscoderTestRoleOutput {
  Success: String
  Messages: [String]
}

input AwsElasticTranscoderTestRoleInput {
  Role: String!
  InputBucket: String!
  OutputBucket: String!
  Topics: [String]!
}

type AwsElasticTranscoderUpdatePipelineOutput {
  Pipeline: AwsElasticTranscoderS2l
  Warnings: [AwsElasticTranscoderS2n]
}

input AwsElasticTranscoderUpdatePipelineInput {
  Id: String!
  Name: String
  InputBucket: String
  Role: String
  AwsKmsKeyArn: String
  Notifications: AwsElasticTranscoderS2aInput
  ContentConfig: AwsElasticTranscoderS2cInput
  ThumbnailConfig: AwsElasticTranscoderS2cInput
}

type AwsElasticTranscoderUpdatePipelineNotificationsOutput {
  Pipeline: AwsElasticTranscoderS2l
}

input AwsElasticTranscoderUpdatePipelineNotificationsInput {
  Id: String!
  Notifications: AwsElasticTranscoderS2aInput!
}

type AwsElasticTranscoderUpdatePipelineStatusOutput {
  Pipeline: AwsElasticTranscoderS2l
}

input AwsElasticTranscoderUpdatePipelineStatusInput {
  Id: String!
  Status: String!
}

"""Amazon EventBridge (2015-10-07)"""
type AwsEventBridge {
  activateEventSource(input: AwsEventBridgeActivateEventSourceInput!, config: AwsConfig): JSON
  cancelReplay(input: AwsEventBridgeCancelReplayInput!, config: AwsConfig): AwsEventBridgeCancelReplayOutput
  createApiDestination(input: AwsEventBridgeCreateApiDestinationInput!, config: AwsConfig): AwsEventBridgeCreateApiDestinationOutput
  createArchive(input: AwsEventBridgeCreateArchiveInput!, config: AwsConfig): AwsEventBridgeCreateArchiveOutput
  createConnection(input: AwsEventBridgeCreateConnectionInput!, config: AwsConfig): AwsEventBridgeCreateConnectionOutput
  createEventBus(input: AwsEventBridgeCreateEventBusInput!, config: AwsConfig): AwsEventBridgeCreateEventBusOutput
  createPartnerEventSource(input: AwsEventBridgeCreatePartnerEventSourceInput!, config: AwsConfig): AwsEventBridgeCreatePartnerEventSourceOutput
  deactivateEventSource(input: AwsEventBridgeDeactivateEventSourceInput!, config: AwsConfig): JSON
  deauthorizeConnection(input: AwsEventBridgeDeauthorizeConnectionInput!, config: AwsConfig): AwsEventBridgeDeauthorizeConnectionOutput
  deleteApiDestination(input: AwsEventBridgeDeleteApiDestinationInput!, config: AwsConfig): JSON
  deleteArchive(input: AwsEventBridgeDeleteArchiveInput!, config: AwsConfig): JSON
  deleteConnection(input: AwsEventBridgeDeleteConnectionInput!, config: AwsConfig): AwsEventBridgeDeleteConnectionOutput
  deleteEventBus(input: AwsEventBridgeDeleteEventBusInput!, config: AwsConfig): JSON
  deletePartnerEventSource(input: AwsEventBridgeDeletePartnerEventSourceInput!, config: AwsConfig): JSON
  deleteRule(input: AwsEventBridgeDeleteRuleInput!, config: AwsConfig): JSON
  describeApiDestination(input: AwsEventBridgeDescribeApiDestinationInput!, config: AwsConfig): AwsEventBridgeDescribeApiDestinationOutput
  describeArchive(input: AwsEventBridgeDescribeArchiveInput!, config: AwsConfig): AwsEventBridgeDescribeArchiveOutput
  describeConnection(input: AwsEventBridgeDescribeConnectionInput!, config: AwsConfig): AwsEventBridgeDescribeConnectionOutput
  describeEventBus(input: AwsEventBridgeDescribeEventBusInput, config: AwsConfig): AwsEventBridgeDescribeEventBusOutput
  describeEventSource(input: AwsEventBridgeDescribeEventSourceInput!, config: AwsConfig): AwsEventBridgeDescribeEventSourceOutput
  describePartnerEventSource(input: AwsEventBridgeDescribePartnerEventSourceInput!, config: AwsConfig): AwsEventBridgeDescribePartnerEventSourceOutput
  describeReplay(input: AwsEventBridgeDescribeReplayInput!, config: AwsConfig): AwsEventBridgeDescribeReplayOutput
  describeRule(input: AwsEventBridgeDescribeRuleInput!, config: AwsConfig): AwsEventBridgeDescribeRuleOutput
  disableRule(input: AwsEventBridgeDisableRuleInput!, config: AwsConfig): JSON
  enableRule(input: AwsEventBridgeEnableRuleInput!, config: AwsConfig): JSON
  listApiDestinations(input: AwsEventBridgeListApiDestinationsInput, config: AwsConfig): AwsEventBridgeListApiDestinationsOutput
  listArchives(input: AwsEventBridgeListArchivesInput, config: AwsConfig): AwsEventBridgeListArchivesOutput
  listConnections(input: AwsEventBridgeListConnectionsInput, config: AwsConfig): AwsEventBridgeListConnectionsOutput
  listEventBuses(input: AwsEventBridgeListEventBusesInput, config: AwsConfig): AwsEventBridgeListEventBusesOutput
  listEventSources(input: AwsEventBridgeListEventSourcesInput, config: AwsConfig): AwsEventBridgeListEventSourcesOutput
  listPartnerEventSourceAccounts(input: AwsEventBridgeListPartnerEventSourceAccountsInput!, config: AwsConfig): AwsEventBridgeListPartnerEventSourceAccountsOutput
  listPartnerEventSources(input: AwsEventBridgeListPartnerEventSourcesInput!, config: AwsConfig): AwsEventBridgeListPartnerEventSourcesOutput
  listReplays(input: AwsEventBridgeListReplaysInput, config: AwsConfig): AwsEventBridgeListReplaysOutput
  listRuleNamesByTarget(input: AwsEventBridgeListRuleNamesByTargetInput!, config: AwsConfig): AwsEventBridgeListRuleNamesByTargetOutput
  listRules(input: AwsEventBridgeListRulesInput, config: AwsConfig): AwsEventBridgeListRulesOutput
  listTagsForResource(input: AwsEventBridgeListTagsForResourceInput!, config: AwsConfig): AwsEventBridgeListTagsForResourceOutput
  listTargetsByRule(input: AwsEventBridgeListTargetsByRuleInput!, config: AwsConfig): AwsEventBridgeListTargetsByRuleOutput
  putEvents(input: AwsEventBridgePutEventsInput!, config: AwsConfig): AwsEventBridgePutEventsOutput
  putPartnerEvents(input: AwsEventBridgePutPartnerEventsInput!, config: AwsConfig): AwsEventBridgePutPartnerEventsOutput
  putPermission(input: AwsEventBridgePutPermissionInput, config: AwsConfig): JSON
  putRule(input: AwsEventBridgePutRuleInput!, config: AwsConfig): AwsEventBridgePutRuleOutput
  putTargets(input: AwsEventBridgePutTargetsInput!, config: AwsConfig): AwsEventBridgePutTargetsOutput
  removePermission(input: AwsEventBridgeRemovePermissionInput, config: AwsConfig): JSON
  removeTargets(input: AwsEventBridgeRemoveTargetsInput!, config: AwsConfig): AwsEventBridgeRemoveTargetsOutput
  startReplay(input: AwsEventBridgeStartReplayInput!, config: AwsConfig): AwsEventBridgeStartReplayOutput
  tagResource(input: AwsEventBridgeTagResourceInput!, config: AwsConfig): JSON
  testEventPattern(input: AwsEventBridgeTestEventPatternInput!, config: AwsConfig): AwsEventBridgeTestEventPatternOutput
  untagResource(input: AwsEventBridgeUntagResourceInput!, config: AwsConfig): JSON
  updateApiDestination(input: AwsEventBridgeUpdateApiDestinationInput!, config: AwsConfig): AwsEventBridgeUpdateApiDestinationOutput
  updateArchive(input: AwsEventBridgeUpdateArchiveInput!, config: AwsConfig): AwsEventBridgeUpdateArchiveOutput
  updateConnection(input: AwsEventBridgeUpdateConnectionInput!, config: AwsConfig): AwsEventBridgeUpdateConnectionOutput
}

input AwsEventBridgeActivateEventSourceInput {
  Name: String!
}

type AwsEventBridgeCancelReplayOutput {
  ReplayArn: String
  State: String
  StateReason: String
}

input AwsEventBridgeCancelReplayInput {
  ReplayName: String!
}

type AwsEventBridgeCreateApiDestinationOutput {
  ApiDestinationArn: String
  ApiDestinationState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEventBridgeCreateApiDestinationInput {
  Name: String!
  Description: String
  ConnectionArn: String!
  InvocationEndpoint: String!
  HttpMethod: String!
  InvocationRateLimitPerSecond: Int
}

type AwsEventBridgeCreateArchiveOutput {
  ArchiveArn: String
  State: String
  StateReason: String
  CreationTime: Date
}

input AwsEventBridgeCreateArchiveInput {
  ArchiveName: String!
  EventSourceArn: String!
  Description: String
  EventPattern: String
  RetentionDays: Int
}

type AwsEventBridgeCreateConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEventBridgeCreateConnectionInput {
  Name: String!
  Description: String
  AuthorizationType: String!
  AuthParameters: AwsEventBridgeCreateConnectionAuthParametersInput!
}

input AwsEventBridgeCreateConnectionAuthParametersInput {
  BasicAuthParameters: AwsEventBridgeCreateConnectionAuthParametersBasicAuthParametersInput
  OAuthParameters: AwsEventBridgeCreateConnectionAuthParametersOAuthParametersInput
  ApiKeyAuthParameters: AwsEventBridgeCreateConnectionAuthParametersApiKeyAuthParametersInput
  InvocationHttpParameters: AwsEventBridgeS14Input
}

input AwsEventBridgeCreateConnectionAuthParametersBasicAuthParametersInput {
  Username: String!
  Password: String!
}

input AwsEventBridgeCreateConnectionAuthParametersOAuthParametersInput {
  ClientParameters: AwsEventBridgeCreateConnectionAuthParametersOAuthParametersClientParametersInput!
  AuthorizationEndpoint: String!
  HttpMethod: String!
  OAuthHttpParameters: AwsEventBridgeS14Input
}

input AwsEventBridgeCreateConnectionAuthParametersOAuthParametersClientParametersInput {
  ClientID: String!
  ClientSecret: String!
}

input AwsEventBridgeS14Input {
  HeaderParameters: [AwsEventBridgeS14HeaderParametersInput]
  QueryStringParameters: [AwsEventBridgeS14QueryStringParametersInput]
  BodyParameters: [AwsEventBridgeS14BodyParametersInput]
}

input AwsEventBridgeS14HeaderParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsEventBridgeS14QueryStringParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsEventBridgeS14BodyParametersInput {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

input AwsEventBridgeCreateConnectionAuthParametersApiKeyAuthParametersInput {
  ApiKeyName: String!
  ApiKeyValue: String!
}

type AwsEventBridgeCreateEventBusOutput {
  EventBusArn: String
}

input AwsEventBridgeCreateEventBusInput {
  Name: String!
  EventSourceName: String
  Tags: [AwsEventBridgeS1mInput]
}

input AwsEventBridgeS1mInput {
  Key: String!
  Value: String!
}

type AwsEventBridgeCreatePartnerEventSourceOutput {
  EventSourceArn: String
}

input AwsEventBridgeCreatePartnerEventSourceInput {
  Name: String!
  Account: String!
}

input AwsEventBridgeDeactivateEventSourceInput {
  Name: String!
}

type AwsEventBridgeDeauthorizeConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsEventBridgeDeauthorizeConnectionInput {
  Name: String!
}

input AwsEventBridgeDeleteApiDestinationInput {
  Name: String!
}

input AwsEventBridgeDeleteArchiveInput {
  ArchiveName: String!
}

type AwsEventBridgeDeleteConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsEventBridgeDeleteConnectionInput {
  Name: String!
}

input AwsEventBridgeDeleteEventBusInput {
  Name: String!
}

input AwsEventBridgeDeletePartnerEventSourceInput {
  Name: String!
  Account: String!
}

input AwsEventBridgeDeleteRuleInput {
  Name: String!
  EventBusName: String
  Force: Boolean
}

type AwsEventBridgeDescribeApiDestinationOutput {
  ApiDestinationArn: String
  Name: String
  Description: String
  ApiDestinationState: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEventBridgeDescribeApiDestinationInput {
  Name: String!
}

type AwsEventBridgeDescribeArchiveOutput {
  ArchiveArn: String
  ArchiveName: String
  EventSourceArn: String
  Description: String
  EventPattern: String
  State: String
  StateReason: String
  RetentionDays: Int
  SizeBytes: JSON
  EventCount: JSON
  CreationTime: Date
}

input AwsEventBridgeDescribeArchiveInput {
  ArchiveName: String!
}

type AwsEventBridgeDescribeConnectionOutput {
  ConnectionArn: String
  Name: String
  Description: String
  ConnectionState: String
  StateReason: String
  AuthorizationType: String
  SecretArn: String
  AuthParameters: AwsEventBridgeDescribeConnectionOutputAuthParameters
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

type AwsEventBridgeDescribeConnectionOutputAuthParameters {
  BasicAuthParameters: AwsEventBridgeDescribeConnectionOutputAuthParametersBasicAuthParameters
  OAuthParameters: AwsEventBridgeDescribeConnectionOutputAuthParametersOAuthParameters
  ApiKeyAuthParameters: AwsEventBridgeDescribeConnectionOutputAuthParametersApiKeyAuthParameters
  InvocationHttpParameters: AwsEventBridgeS14
}

type AwsEventBridgeDescribeConnectionOutputAuthParametersBasicAuthParameters {
  Username: String
}

type AwsEventBridgeDescribeConnectionOutputAuthParametersOAuthParameters {
  ClientParameters: AwsEventBridgeDescribeConnectionOutputAuthParametersOAuthParametersClientParameters
  AuthorizationEndpoint: String
  HttpMethod: String
  OAuthHttpParameters: AwsEventBridgeS14
}

type AwsEventBridgeDescribeConnectionOutputAuthParametersOAuthParametersClientParameters {
  ClientID: String
}

type AwsEventBridgeS14 {
  HeaderParameters: [AwsEventBridgeS14HeaderParameters]
  QueryStringParameters: [AwsEventBridgeS14QueryStringParameters]
  BodyParameters: [AwsEventBridgeS14BodyParameters]
}

type AwsEventBridgeS14HeaderParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsEventBridgeS14QueryStringParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsEventBridgeS14BodyParameters {
  Key: String
  Value: String
  IsValueSecret: Boolean
}

type AwsEventBridgeDescribeConnectionOutputAuthParametersApiKeyAuthParameters {
  ApiKeyName: String
}

input AwsEventBridgeDescribeConnectionInput {
  Name: String!
}

type AwsEventBridgeDescribeEventBusOutput {
  Name: String
  Arn: String
  Policy: String
}

input AwsEventBridgeDescribeEventBusInput {
  Name: String
}

type AwsEventBridgeDescribeEventSourceOutput {
  Arn: String
  CreatedBy: String
  CreationTime: Date
  ExpirationTime: Date
  Name: String
  State: String
}

input AwsEventBridgeDescribeEventSourceInput {
  Name: String!
}

type AwsEventBridgeDescribePartnerEventSourceOutput {
  Arn: String
  Name: String
}

input AwsEventBridgeDescribePartnerEventSourceInput {
  Name: String!
}

type AwsEventBridgeDescribeReplayOutput {
  ReplayName: String
  ReplayArn: String
  Description: String
  State: String
  StateReason: String
  EventSourceArn: String
  Destination: AwsEventBridgeS2w
  EventStartTime: Date
  EventEndTime: Date
  EventLastReplayedTime: Date
  ReplayStartTime: Date
  ReplayEndTime: Date
}

type AwsEventBridgeS2w {
  Arn: String!
  FilterArns: [String]
}

input AwsEventBridgeDescribeReplayInput {
  ReplayName: String!
}

type AwsEventBridgeDescribeRuleOutput {
  Name: String
  Arn: String
  EventPattern: String
  ScheduleExpression: String
  State: String
  Description: String
  RoleArn: String
  ManagedBy: String
  EventBusName: String
  CreatedBy: String
}

input AwsEventBridgeDescribeRuleInput {
  Name: String!
  EventBusName: String
}

input AwsEventBridgeDisableRuleInput {
  Name: String!
  EventBusName: String
}

input AwsEventBridgeEnableRuleInput {
  Name: String!
  EventBusName: String
}

type AwsEventBridgeListApiDestinationsOutput {
  ApiDestinations: [AwsEventBridgeListApiDestinationsOutputApiDestinations]
  NextToken: String
}

type AwsEventBridgeListApiDestinationsOutputApiDestinations {
  ApiDestinationArn: String
  Name: String
  ApiDestinationState: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEventBridgeListApiDestinationsInput {
  NamePrefix: String
  ConnectionArn: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListArchivesOutput {
  Archives: [AwsEventBridgeListArchivesOutputArchives]
  NextToken: String
}

type AwsEventBridgeListArchivesOutputArchives {
  ArchiveName: String
  EventSourceArn: String
  State: String
  StateReason: String
  RetentionDays: Int
  SizeBytes: JSON
  EventCount: JSON
  CreationTime: Date
}

input AwsEventBridgeListArchivesInput {
  NamePrefix: String
  EventSourceArn: String
  State: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListConnectionsOutput {
  Connections: [AwsEventBridgeListConnectionsOutputConnections]
  NextToken: String
}

type AwsEventBridgeListConnectionsOutputConnections {
  ConnectionArn: String
  Name: String
  ConnectionState: String
  StateReason: String
  AuthorizationType: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsEventBridgeListConnectionsInput {
  NamePrefix: String
  ConnectionState: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListEventBusesOutput {
  EventBuses: [AwsEventBridgeListEventBusesOutputEventBuses]
  NextToken: String
}

type AwsEventBridgeListEventBusesOutputEventBuses {
  Name: String
  Arn: String
  Policy: String
}

input AwsEventBridgeListEventBusesInput {
  NamePrefix: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListEventSourcesOutput {
  EventSources: [AwsEventBridgeListEventSourcesOutputEventSources]
  NextToken: String
}

type AwsEventBridgeListEventSourcesOutputEventSources {
  Arn: String
  CreatedBy: String
  CreationTime: Date
  ExpirationTime: Date
  Name: String
  State: String
}

input AwsEventBridgeListEventSourcesInput {
  NamePrefix: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListPartnerEventSourceAccountsOutput {
  PartnerEventSourceAccounts: [AwsEventBridgeListPartnerEventSourceAccountsOutputPartnerEventSourceAccounts]
  NextToken: String
}

type AwsEventBridgeListPartnerEventSourceAccountsOutputPartnerEventSourceAccounts {
  Account: String
  CreationTime: Date
  ExpirationTime: Date
  State: String
}

input AwsEventBridgeListPartnerEventSourceAccountsInput {
  EventSourceName: String!
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListPartnerEventSourcesOutput {
  PartnerEventSources: [AwsEventBridgeListPartnerEventSourcesOutputPartnerEventSources]
  NextToken: String
}

type AwsEventBridgeListPartnerEventSourcesOutputPartnerEventSources {
  Arn: String
  Name: String
}

input AwsEventBridgeListPartnerEventSourcesInput {
  NamePrefix: String!
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListReplaysOutput {
  Replays: [AwsEventBridgeListReplaysOutputReplays]
  NextToken: String
}

type AwsEventBridgeListReplaysOutputReplays {
  ReplayName: String
  EventSourceArn: String
  State: String
  StateReason: String
  EventStartTime: Date
  EventEndTime: Date
  EventLastReplayedTime: Date
  ReplayStartTime: Date
  ReplayEndTime: Date
}

input AwsEventBridgeListReplaysInput {
  NamePrefix: String
  State: String
  EventSourceArn: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListRuleNamesByTargetOutput {
  RuleNames: [String]
  NextToken: String
}

input AwsEventBridgeListRuleNamesByTargetInput {
  TargetArn: String!
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListRulesOutput {
  Rules: [AwsEventBridgeListRulesOutputRules]
  NextToken: String
}

type AwsEventBridgeListRulesOutputRules {
  Name: String
  Arn: String
  EventPattern: String
  State: String
  Description: String
  ScheduleExpression: String
  RoleArn: String
  ManagedBy: String
  EventBusName: String
}

input AwsEventBridgeListRulesInput {
  NamePrefix: String
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgeListTagsForResourceOutput {
  Tags: [AwsEventBridgeS1m]
}

type AwsEventBridgeS1m {
  Key: String!
  Value: String!
}

input AwsEventBridgeListTagsForResourceInput {
  ResourceARN: String!
}

type AwsEventBridgeListTargetsByRuleOutput {
  Targets: [AwsEventBridgeS4l]
  NextToken: String
}

type AwsEventBridgeS4l {
  Id: String!
  Arn: String!
  RoleArn: String
  Input: String
  InputPath: String
  InputTransformer: AwsEventBridgeS4lInputTransformer
  KinesisParameters: AwsEventBridgeS4lKinesisParameters
  RunCommandParameters: AwsEventBridgeS4lRunCommandParameters
  EcsParameters: AwsEventBridgeS4lEcsParameters
  BatchParameters: AwsEventBridgeS4lBatchParameters
  SqsParameters: AwsEventBridgeS4lSqsParameters
  HttpParameters: AwsEventBridgeS4lHttpParameters
  RedshiftDataParameters: AwsEventBridgeS4lRedshiftDataParameters
  SageMakerPipelineParameters: AwsEventBridgeS4lSageMakerPipelineParameters
  DeadLetterConfig: AwsEventBridgeS4lDeadLetterConfig
  RetryPolicy: AwsEventBridgeS4lRetryPolicy
}

type AwsEventBridgeS4lInputTransformer {
  InputPathsMap: JSON
  InputTemplate: String!
}

type AwsEventBridgeS4lKinesisParameters {
  PartitionKeyPath: String!
}

type AwsEventBridgeS4lRunCommandParameters {
  RunCommandTargets: [AwsEventBridgeS4lRunCommandParametersRunCommandTargets]!
}

type AwsEventBridgeS4lRunCommandParametersRunCommandTargets {
  Key: String!
  Values: [String]!
}

type AwsEventBridgeS4lEcsParameters {
  TaskDefinitionArn: String!
  TaskCount: Int
  LaunchType: String
  NetworkConfiguration: AwsEventBridgeS4lEcsParametersNetworkConfiguration
  PlatformVersion: String
  Group: String
  CapacityProviderStrategy: [AwsEventBridgeS4lEcsParametersCapacityProviderStrategy]
  EnableECSManagedTags: Boolean
  EnableExecuteCommand: Boolean
  PlacementConstraints: [AwsEventBridgeS4lEcsParametersPlacementConstraints]
  PlacementStrategy: [AwsEventBridgeS4lEcsParametersPlacementStrategy]
  PropagateTags: String
  ReferenceId: String
  Tags: [AwsEventBridgeS1m]
}

type AwsEventBridgeS4lEcsParametersNetworkConfiguration {
  awsvpcConfiguration: AwsEventBridgeS4lEcsParametersNetworkConfigurationAwsvpcConfiguration
}

type AwsEventBridgeS4lEcsParametersNetworkConfigurationAwsvpcConfiguration {
  Subnets: [String]!
  SecurityGroups: [String]
  AssignPublicIp: String
}

type AwsEventBridgeS4lEcsParametersCapacityProviderStrategy {
  capacityProvider: String!
  weight: Int
  base: Int
}

type AwsEventBridgeS4lEcsParametersPlacementConstraints {
  type: String
  expression: String
}

type AwsEventBridgeS4lEcsParametersPlacementStrategy {
  type: String
  field: String
}

type AwsEventBridgeS4lBatchParameters {
  JobDefinition: String!
  JobName: String!
  ArrayProperties: AwsEventBridgeS4lBatchParametersArrayProperties
  RetryStrategy: AwsEventBridgeS4lBatchParametersRetryStrategy
}

type AwsEventBridgeS4lBatchParametersArrayProperties {
  Size: Int
}

type AwsEventBridgeS4lBatchParametersRetryStrategy {
  Attempts: Int
}

type AwsEventBridgeS4lSqsParameters {
  MessageGroupId: String
}

type AwsEventBridgeS4lHttpParameters {
  PathParameterValues: [String]
  HeaderParameters: JSON
  QueryStringParameters: JSON
}

type AwsEventBridgeS4lRedshiftDataParameters {
  SecretManagerArn: String
  Database: String!
  DbUser: String
  Sql: String!
  StatementName: String
  WithEvent: Boolean
}

type AwsEventBridgeS4lSageMakerPipelineParameters {
  PipelineParameterList: [AwsEventBridgeS4lSageMakerPipelineParametersPipelineParameterList]
}

type AwsEventBridgeS4lSageMakerPipelineParametersPipelineParameterList {
  Name: String!
  Value: String!
}

type AwsEventBridgeS4lDeadLetterConfig {
  Arn: String
}

type AwsEventBridgeS4lRetryPolicy {
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
}

input AwsEventBridgeListTargetsByRuleInput {
  Rule: String!
  EventBusName: String
  NextToken: String
  Limit: Int
}

type AwsEventBridgePutEventsOutput {
  FailedEntryCount: Int
  Entries: [AwsEventBridgePutEventsOutputEntries]
}

type AwsEventBridgePutEventsOutputEntries {
  EventId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsEventBridgePutEventsInput {
  Entries: [AwsEventBridgePutEventsEntriesInput]!
}

input AwsEventBridgePutEventsEntriesInput {
  Time: Date
  Source: String
  Resources: [String]
  DetailType: String
  Detail: String
  EventBusName: String
  TraceHeader: String
}

type AwsEventBridgePutPartnerEventsOutput {
  FailedEntryCount: Int
  Entries: [AwsEventBridgePutPartnerEventsOutputEntries]
}

type AwsEventBridgePutPartnerEventsOutputEntries {
  EventId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsEventBridgePutPartnerEventsInput {
  Entries: [AwsEventBridgePutPartnerEventsEntriesInput]!
}

input AwsEventBridgePutPartnerEventsEntriesInput {
  Time: Date
  Source: String
  Resources: [String]
  DetailType: String
  Detail: String
}

input AwsEventBridgePutPermissionInput {
  EventBusName: String
  Action: String
  Principal: String
  StatementId: String
  Condition: AwsEventBridgePutPermissionConditionInput
  Policy: String
}

input AwsEventBridgePutPermissionConditionInput {
  Type: String!
  Key: String!
  Value: String!
}

type AwsEventBridgePutRuleOutput {
  RuleArn: String
}

input AwsEventBridgePutRuleInput {
  Name: String!
  ScheduleExpression: String
  EventPattern: String
  State: String
  Description: String
  RoleArn: String
  Tags: [AwsEventBridgeS1mInput]
  EventBusName: String
}

type AwsEventBridgePutTargetsOutput {
  FailedEntryCount: Int
  FailedEntries: [AwsEventBridgePutTargetsOutputFailedEntries]
}

type AwsEventBridgePutTargetsOutputFailedEntries {
  TargetId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsEventBridgePutTargetsInput {
  Rule: String!
  EventBusName: String
  Targets: [AwsEventBridgeS4lInput]!
}

input AwsEventBridgeS4lInput {
  Id: String!
  Arn: String!
  RoleArn: String
  Input: String
  InputPath: String
  InputTransformer: AwsEventBridgeS4lInputTransformerInput
  KinesisParameters: AwsEventBridgeS4lKinesisParametersInput
  RunCommandParameters: AwsEventBridgeS4lRunCommandParametersInput
  EcsParameters: AwsEventBridgeS4lEcsParametersInput
  BatchParameters: AwsEventBridgeS4lBatchParametersInput
  SqsParameters: AwsEventBridgeS4lSqsParametersInput
  HttpParameters: AwsEventBridgeS4lHttpParametersInput
  RedshiftDataParameters: AwsEventBridgeS4lRedshiftDataParametersInput
  SageMakerPipelineParameters: AwsEventBridgeS4lSageMakerPipelineParametersInput
  DeadLetterConfig: AwsEventBridgeS4lDeadLetterConfigInput
  RetryPolicy: AwsEventBridgeS4lRetryPolicyInput
}

input AwsEventBridgeS4lInputTransformerInput {
  InputPathsMap: JSON
  InputTemplate: String!
}

input AwsEventBridgeS4lKinesisParametersInput {
  PartitionKeyPath: String!
}

input AwsEventBridgeS4lRunCommandParametersInput {
  RunCommandTargets: [AwsEventBridgeS4lRunCommandParametersRunCommandTargetsInput]!
}

input AwsEventBridgeS4lRunCommandParametersRunCommandTargetsInput {
  Key: String!
  Values: [String]!
}

input AwsEventBridgeS4lEcsParametersInput {
  TaskDefinitionArn: String!
  TaskCount: Int
  LaunchType: String
  NetworkConfiguration: AwsEventBridgeS4lEcsParametersNetworkConfigurationInput
  PlatformVersion: String
  Group: String
  CapacityProviderStrategy: [AwsEventBridgeS4lEcsParametersCapacityProviderStrategyInput]
  EnableECSManagedTags: Boolean
  EnableExecuteCommand: Boolean
  PlacementConstraints: [AwsEventBridgeS4lEcsParametersPlacementConstraintsInput]
  PlacementStrategy: [AwsEventBridgeS4lEcsParametersPlacementStrategyInput]
  PropagateTags: String
  ReferenceId: String
  Tags: [AwsEventBridgeS1mInput]
}

input AwsEventBridgeS4lEcsParametersNetworkConfigurationInput {
  awsvpcConfiguration: AwsEventBridgeS4lEcsParametersNetworkConfigurationAwsvpcConfigurationInput
}

input AwsEventBridgeS4lEcsParametersNetworkConfigurationAwsvpcConfigurationInput {
  Subnets: [String]!
  SecurityGroups: [String]
  AssignPublicIp: String
}

input AwsEventBridgeS4lEcsParametersCapacityProviderStrategyInput {
  capacityProvider: String!
  weight: Int
  base: Int
}

input AwsEventBridgeS4lEcsParametersPlacementConstraintsInput {
  type: String
  expression: String
}

input AwsEventBridgeS4lEcsParametersPlacementStrategyInput {
  type: String
  field: String
}

input AwsEventBridgeS4lBatchParametersInput {
  JobDefinition: String!
  JobName: String!
  ArrayProperties: AwsEventBridgeS4lBatchParametersArrayPropertiesInput
  RetryStrategy: AwsEventBridgeS4lBatchParametersRetryStrategyInput
}

input AwsEventBridgeS4lBatchParametersArrayPropertiesInput {
  Size: Int
}

input AwsEventBridgeS4lBatchParametersRetryStrategyInput {
  Attempts: Int
}

input AwsEventBridgeS4lSqsParametersInput {
  MessageGroupId: String
}

input AwsEventBridgeS4lHttpParametersInput {
  PathParameterValues: [String]
  HeaderParameters: JSON
  QueryStringParameters: JSON
}

input AwsEventBridgeS4lRedshiftDataParametersInput {
  SecretManagerArn: String
  Database: String!
  DbUser: String
  Sql: String!
  StatementName: String
  WithEvent: Boolean
}

input AwsEventBridgeS4lSageMakerPipelineParametersInput {
  PipelineParameterList: [AwsEventBridgeS4lSageMakerPipelineParametersPipelineParameterListInput]
}

input AwsEventBridgeS4lSageMakerPipelineParametersPipelineParameterListInput {
  Name: String!
  Value: String!
}

input AwsEventBridgeS4lDeadLetterConfigInput {
  Arn: String
}

input AwsEventBridgeS4lRetryPolicyInput {
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
}

input AwsEventBridgeRemovePermissionInput {
  StatementId: String
  RemoveAllPermissions: Boolean
  EventBusName: String
}

type AwsEventBridgeRemoveTargetsOutput {
  FailedEntryCount: Int
  FailedEntries: [AwsEventBridgeRemoveTargetsOutputFailedEntries]
}

type AwsEventBridgeRemoveTargetsOutputFailedEntries {
  TargetId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsEventBridgeRemoveTargetsInput {
  Rule: String!
  EventBusName: String
  Ids: [String]!
  Force: Boolean
}

type AwsEventBridgeStartReplayOutput {
  ReplayArn: String
  State: String
  StateReason: String
  ReplayStartTime: Date
}

input AwsEventBridgeStartReplayInput {
  ReplayName: String!
  Description: String
  EventSourceArn: String!
  EventStartTime: Date!
  EventEndTime: Date!
  Destination: AwsEventBridgeS2wInput!
}

input AwsEventBridgeS2wInput {
  Arn: String!
  FilterArns: [String]
}

input AwsEventBridgeTagResourceInput {
  ResourceARN: String!
  Tags: [AwsEventBridgeS1mInput]!
}

type AwsEventBridgeTestEventPatternOutput {
  Result: Boolean
}

input AwsEventBridgeTestEventPatternInput {
  EventPattern: String!
  Event: String!
}

input AwsEventBridgeUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsEventBridgeUpdateApiDestinationOutput {
  ApiDestinationArn: String
  ApiDestinationState: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsEventBridgeUpdateApiDestinationInput {
  Name: String!
  Description: String
  ConnectionArn: String
  InvocationEndpoint: String
  HttpMethod: String
  InvocationRateLimitPerSecond: Int
}

type AwsEventBridgeUpdateArchiveOutput {
  ArchiveArn: String
  State: String
  StateReason: String
  CreationTime: Date
}

input AwsEventBridgeUpdateArchiveInput {
  ArchiveName: String!
  Description: String
  EventPattern: String
  RetentionDays: Int
}

type AwsEventBridgeUpdateConnectionOutput {
  ConnectionArn: String
  ConnectionState: String
  CreationTime: Date
  LastModifiedTime: Date
  LastAuthorizedTime: Date
}

input AwsEventBridgeUpdateConnectionInput {
  Name: String!
  Description: String
  AuthorizationType: String
  AuthParameters: AwsEventBridgeUpdateConnectionAuthParametersInput
}

input AwsEventBridgeUpdateConnectionAuthParametersInput {
  BasicAuthParameters: AwsEventBridgeUpdateConnectionAuthParametersBasicAuthParametersInput
  OAuthParameters: AwsEventBridgeUpdateConnectionAuthParametersOAuthParametersInput
  ApiKeyAuthParameters: AwsEventBridgeUpdateConnectionAuthParametersApiKeyAuthParametersInput
  InvocationHttpParameters: AwsEventBridgeS14Input
}

input AwsEventBridgeUpdateConnectionAuthParametersBasicAuthParametersInput {
  Username: String
  Password: String
}

input AwsEventBridgeUpdateConnectionAuthParametersOAuthParametersInput {
  ClientParameters: AwsEventBridgeUpdateConnectionAuthParametersOAuthParametersClientParametersInput
  AuthorizationEndpoint: String
  HttpMethod: String
  OAuthHttpParameters: AwsEventBridgeS14Input
}

input AwsEventBridgeUpdateConnectionAuthParametersOAuthParametersClientParametersInput {
  ClientID: String
  ClientSecret: String
}

input AwsEventBridgeUpdateConnectionAuthParametersApiKeyAuthParametersInput {
  ApiKeyName: String
  ApiKeyValue: String
}

"""Firewall Management Service (2018-01-01)"""
type AwsFMS {
  associateAdminAccount(input: AwsFMSAssociateAdminAccountInput!, config: AwsConfig): JSON
  deleteAppsList(input: AwsFMSDeleteAppsListInput!, config: AwsConfig): JSON
  deleteNotificationChannel(input: JSON, config: AwsConfig): JSON
  deletePolicy(input: AwsFMSDeletePolicyInput!, config: AwsConfig): JSON
  deleteProtocolsList(input: AwsFMSDeleteProtocolsListInput!, config: AwsConfig): JSON
  disassociateAdminAccount(input: JSON, config: AwsConfig): JSON
  getAdminAccount(input: JSON, config: AwsConfig): AwsFMSGetAdminAccountOutput
  getAppsList(input: AwsFMSGetAppsListInput!, config: AwsConfig): AwsFMSGetAppsListOutput
  getComplianceDetail(input: AwsFMSGetComplianceDetailInput!, config: AwsConfig): AwsFMSGetComplianceDetailOutput
  getNotificationChannel(input: JSON, config: AwsConfig): AwsFMSGetNotificationChannelOutput
  getPolicy(input: AwsFMSGetPolicyInput!, config: AwsConfig): AwsFMSGetPolicyOutput
  getProtectionStatus(input: AwsFMSGetProtectionStatusInput!, config: AwsConfig): AwsFMSGetProtectionStatusOutput
  getProtocolsList(input: AwsFMSGetProtocolsListInput!, config: AwsConfig): AwsFMSGetProtocolsListOutput
  getViolationDetails(input: AwsFMSGetViolationDetailsInput!, config: AwsConfig): AwsFMSGetViolationDetailsOutput
  listAppsLists(input: AwsFMSListAppsListsInput!, config: AwsConfig): AwsFMSListAppsListsOutput
  listComplianceStatus(input: AwsFMSListComplianceStatusInput!, config: AwsConfig): AwsFMSListComplianceStatusOutput
  listMemberAccounts(input: AwsFMSListMemberAccountsInput, config: AwsConfig): AwsFMSListMemberAccountsOutput
  listPolicies(input: AwsFMSListPoliciesInput, config: AwsConfig): AwsFMSListPoliciesOutput
  listProtocolsLists(input: AwsFMSListProtocolsListsInput!, config: AwsConfig): AwsFMSListProtocolsListsOutput
  listTagsForResource(input: AwsFMSListTagsForResourceInput!, config: AwsConfig): AwsFMSListTagsForResourceOutput
  putAppsList(input: AwsFMSPutAppsListInput!, config: AwsConfig): AwsFMSPutAppsListOutput
  putNotificationChannel(input: AwsFMSPutNotificationChannelInput!, config: AwsConfig): JSON
  putPolicy(input: AwsFMSPutPolicyInput!, config: AwsConfig): AwsFMSPutPolicyOutput
  putProtocolsList(input: AwsFMSPutProtocolsListInput!, config: AwsConfig): AwsFMSPutProtocolsListOutput
  tagResource(input: AwsFMSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsFMSUntagResourceInput!, config: AwsConfig): JSON
}

input AwsFMSAssociateAdminAccountInput {
  AdminAccount: String!
}

input AwsFMSDeleteAppsListInput {
  ListId: String!
}

input AwsFMSDeletePolicyInput {
  PolicyId: String!
  DeleteAllPolicyResources: Boolean
}

input AwsFMSDeleteProtocolsListInput {
  ListId: String!
}

type AwsFMSGetAdminAccountOutput {
  AdminAccount: String
  RoleStatus: String
}

type AwsFMSGetAppsListOutput {
  AppsList: AwsFMSSg
  AppsListArn: String
}

type AwsFMSSg {
  ListId: String
  ListName: String!
  ListUpdateToken: String
  CreateTime: Date
  LastUpdateTime: Date
  AppsList: [AwsFMSSk]!
  PreviousAppsList: JSON
}

type AwsFMSSk {
  AppName: String!
  Protocol: String!
  Port: JSON!
}

input AwsFMSGetAppsListInput {
  ListId: String!
  DefaultList: Boolean
}

type AwsFMSGetComplianceDetailOutput {
  PolicyComplianceDetail: AwsFMSGetComplianceDetailOutputPolicyComplianceDetail
}

type AwsFMSGetComplianceDetailOutputPolicyComplianceDetail {
  PolicyOwner: String
  PolicyId: String
  MemberAccount: String
  Violators: [AwsFMSGetComplianceDetailOutputPolicyComplianceDetailViolators]
  EvaluationLimitExceeded: Boolean
  ExpiredAt: Date
  IssueInfoMap: JSON
}

type AwsFMSGetComplianceDetailOutputPolicyComplianceDetailViolators {
  ResourceId: String
  ViolationReason: String
  ResourceType: String
}

input AwsFMSGetComplianceDetailInput {
  PolicyId: String!
  MemberAccount: String!
}

type AwsFMSGetNotificationChannelOutput {
  SnsTopicArn: String
  SnsRoleName: String
}

type AwsFMSGetPolicyOutput {
  Policy: AwsFMSS16
  PolicyArn: String
}

type AwsFMSS16 {
  PolicyId: String
  PolicyName: String!
  PolicyUpdateToken: String
  SecurityServicePolicyData: AwsFMSS16SecurityServicePolicyData!
  ResourceType: String!
  ResourceTypeList: [String]
  ResourceTags: [AwsFMSS16ResourceTags]
  ExcludeResourceTags: Boolean!
  RemediationEnabled: Boolean!
  IncludeMap: JSON
  ExcludeMap: JSON
}

type AwsFMSS16SecurityServicePolicyData {
  Type: String!
  ManagedServiceData: String
}

type AwsFMSS16ResourceTags {
  Key: String!
  Value: String
}

input AwsFMSGetPolicyInput {
  PolicyId: String!
}

type AwsFMSGetProtectionStatusOutput {
  AdminAccountId: String
  ServiceType: String
  Data: String
  NextToken: String
}

input AwsFMSGetProtectionStatusInput {
  PolicyId: String!
  MemberAccountId: String
  StartTime: Date
  EndTime: Date
  NextToken: String
  MaxResults: Int
}

type AwsFMSGetProtocolsListOutput {
  ProtocolsList: AwsFMSS1r
  ProtocolsListArn: String
}

type AwsFMSS1r {
  ListId: String
  ListName: String!
  ListUpdateToken: String
  CreateTime: Date
  LastUpdateTime: Date
  ProtocolsList: [String]!
  PreviousProtocolsList: JSON
}

input AwsFMSGetProtocolsListInput {
  ListId: String!
  DefaultList: Boolean
}

type AwsFMSGetViolationDetailsOutput {
  ViolationDetail: AwsFMSGetViolationDetailsOutputViolationDetail
}

type AwsFMSGetViolationDetailsOutputViolationDetail {
  PolicyId: String!
  MemberAccount: String!
  ResourceId: String!
  ResourceType: String!
  ResourceViolations: [AwsFMSGetViolationDetailsOutputViolationDetailResourceViolations]!
  ResourceTags: [AwsFMSS30]
  ResourceDescription: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolations {
  AwsVPCSecurityGroupViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolation
  AwsEc2NetworkInterfaceViolation: AwsFMSS2d
  AwsEc2InstanceViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsEc2InstanceViolation
  NetworkFirewallMissingFirewallViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingFirewallViolation
  NetworkFirewallMissingSubnetViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingSubnetViolation
  NetworkFirewallMissingExpectedRTViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingExpectedRTViolation
  NetworkFirewallPolicyModifiedViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallPolicyModifiedViolation
  DnsRuleGroupPriorityConflictViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsRuleGroupPriorityConflictViolation
  DnsDuplicateRuleGroupViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsDuplicateRuleGroupViolation
  DnsRuleGroupLimitExceededViolation: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsRuleGroupLimitExceededViolation
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolation {
  ViolationTarget: String
  ViolationTargetDescription: String
  PartialMatches: [AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPartialMatches]
  PossibleSecurityGroupRemediationActions: [AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPossibleSecurityGroupRemediationActions]
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPartialMatches {
  Reference: String
  TargetViolationReasons: [String]
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPossibleSecurityGroupRemediationActions {
  RemediationActionType: String
  Description: String
  RemediationResult: AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPossibleSecurityGroupRemediationActionsRemediationResult
  IsDefaultAction: Boolean
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsVPCSecurityGroupViolationPossibleSecurityGroupRemediationActionsRemediationResult {
  IPV4Range: String
  IPV6Range: String
  PrefixListId: String
  Protocol: String
  FromPort: JSON
  ToPort: JSON
}

type AwsFMSS2d {
  ViolationTarget: String
  ViolatingSecurityGroups: [String]
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsAwsEc2InstanceViolation {
  ViolationTarget: String
  AwsEc2NetworkInterfaceViolations: [AwsFMSS2d]
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingFirewallViolation {
  ViolationTarget: String
  VPC: String
  AvailabilityZone: String
  TargetViolationReason: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingSubnetViolation {
  ViolationTarget: String
  VPC: String
  AvailabilityZone: String
  TargetViolationReason: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallMissingExpectedRTViolation {
  ViolationTarget: String
  VPC: String
  AvailabilityZone: String
  CurrentRouteTable: String
  ExpectedRouteTable: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsNetworkFirewallPolicyModifiedViolation {
  ViolationTarget: String
  CurrentPolicyDescription: AwsFMSS2l
  ExpectedPolicyDescription: AwsFMSS2l
}

type AwsFMSS2l {
  StatelessRuleGroups: [AwsFMSS2lStatelessRuleGroups]
  StatelessDefaultActions: [String]
  StatelessFragmentDefaultActions: [String]
  StatelessCustomActions: [String]
  StatefulRuleGroups: [AwsFMSS2lStatefulRuleGroups]
}

type AwsFMSS2lStatelessRuleGroups {
  RuleGroupName: String
  ResourceId: String
  Priority: Int
}

type AwsFMSS2lStatefulRuleGroups {
  RuleGroupName: String
  ResourceId: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsRuleGroupPriorityConflictViolation {
  ViolationTarget: String
  ViolationTargetDescription: String
  ConflictingPriority: Int
  ConflictingPolicyId: String
  UnavailablePriorities: [Int]
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsDuplicateRuleGroupViolation {
  ViolationTarget: String
  ViolationTargetDescription: String
}

type AwsFMSGetViolationDetailsOutputViolationDetailResourceViolationsDnsRuleGroupLimitExceededViolation {
  ViolationTarget: String
  ViolationTargetDescription: String
  NumberOfRuleGroupsAlreadyAssociated: Int
}

type AwsFMSS30 {
  Key: String!
  Value: String!
}

input AwsFMSGetViolationDetailsInput {
  PolicyId: String!
  MemberAccount: String!
  ResourceId: String!
  ResourceType: String!
}

type AwsFMSListAppsListsOutput {
  AppsLists: [AwsFMSListAppsListsOutputAppsLists]
  NextToken: String
}

type AwsFMSListAppsListsOutputAppsLists {
  ListArn: String
  ListId: String
  ListName: String
  AppsList: [AwsFMSSk]
}

input AwsFMSListAppsListsInput {
  DefaultLists: Boolean
  NextToken: String
  MaxResults: Int!
}

type AwsFMSListComplianceStatusOutput {
  PolicyComplianceStatusList: [AwsFMSListComplianceStatusOutputPolicyComplianceStatusList]
  NextToken: String
}

type AwsFMSListComplianceStatusOutputPolicyComplianceStatusList {
  PolicyOwner: String
  PolicyId: String
  PolicyName: String
  MemberAccount: String
  EvaluationResults: [AwsFMSListComplianceStatusOutputPolicyComplianceStatusListEvaluationResults]
  LastUpdated: Date
  IssueInfoMap: JSON
}

type AwsFMSListComplianceStatusOutputPolicyComplianceStatusListEvaluationResults {
  ComplianceStatus: String
  ViolatorCount: JSON
  EvaluationLimitExceeded: Boolean
}

input AwsFMSListComplianceStatusInput {
  PolicyId: String!
  NextToken: String
  MaxResults: Int
}

type AwsFMSListMemberAccountsOutput {
  MemberAccounts: [String]
  NextToken: String
}

input AwsFMSListMemberAccountsInput {
  NextToken: String
  MaxResults: Int
}

type AwsFMSListPoliciesOutput {
  PolicyList: [AwsFMSListPoliciesOutputPolicyList]
  NextToken: String
}

type AwsFMSListPoliciesOutputPolicyList {
  PolicyArn: String
  PolicyId: String
  PolicyName: String
  ResourceType: String
  SecurityServiceType: String
  RemediationEnabled: Boolean
}

input AwsFMSListPoliciesInput {
  NextToken: String
  MaxResults: Int
}

type AwsFMSListProtocolsListsOutput {
  ProtocolsLists: [AwsFMSListProtocolsListsOutputProtocolsLists]
  NextToken: String
}

type AwsFMSListProtocolsListsOutputProtocolsLists {
  ListArn: String
  ListId: String
  ListName: String
  ProtocolsList: [String]
}

input AwsFMSListProtocolsListsInput {
  DefaultLists: Boolean
  NextToken: String
  MaxResults: Int!
}

type AwsFMSListTagsForResourceOutput {
  TagList: [AwsFMSS30]
}

input AwsFMSListTagsForResourceInput {
  ResourceArn: String!
}

type AwsFMSPutAppsListOutput {
  AppsList: AwsFMSSg
  AppsListArn: String
}

input AwsFMSPutAppsListInput {
  AppsList: AwsFMSSgInput!
  TagList: [AwsFMSS30Input]
}

input AwsFMSSgInput {
  ListId: String
  ListName: String!
  ListUpdateToken: String
  CreateTime: Date
  LastUpdateTime: Date
  AppsList: [AwsFMSSkInput]!
  PreviousAppsList: JSON
}

input AwsFMSSkInput {
  AppName: String!
  Protocol: String!
  Port: JSON!
}

input AwsFMSS30Input {
  Key: String!
  Value: String!
}

input AwsFMSPutNotificationChannelInput {
  SnsTopicArn: String!
  SnsRoleName: String!
}

type AwsFMSPutPolicyOutput {
  Policy: AwsFMSS16
  PolicyArn: String
}

input AwsFMSPutPolicyInput {
  Policy: AwsFMSS16Input!
  TagList: [AwsFMSS30Input]
}

input AwsFMSS16Input {
  PolicyId: String
  PolicyName: String!
  PolicyUpdateToken: String
  SecurityServicePolicyData: AwsFMSS16SecurityServicePolicyDataInput!
  ResourceType: String!
  ResourceTypeList: [String]
  ResourceTags: [AwsFMSS16ResourceTagsInput]
  ExcludeResourceTags: Boolean!
  RemediationEnabled: Boolean!
  IncludeMap: JSON
  ExcludeMap: JSON
}

input AwsFMSS16SecurityServicePolicyDataInput {
  Type: String!
  ManagedServiceData: String
}

input AwsFMSS16ResourceTagsInput {
  Key: String!
  Value: String
}

type AwsFMSPutProtocolsListOutput {
  ProtocolsList: AwsFMSS1r
  ProtocolsListArn: String
}

input AwsFMSPutProtocolsListInput {
  ProtocolsList: AwsFMSS1rInput!
  TagList: [AwsFMSS30Input]
}

input AwsFMSS1rInput {
  ListId: String
  ListName: String!
  ListUpdateToken: String
  CreateTime: Date
  LastUpdateTime: Date
  ProtocolsList: [String]!
  PreviousProtocolsList: JSON
}

input AwsFMSTagResourceInput {
  ResourceArn: String!
  TagList: [AwsFMSS30Input]!
}

input AwsFMSUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""Amazon FSx (2018-03-01)"""
type AwsFSx {
  associateFileSystemAliases(input: AwsFSxAssociateFileSystemAliasesInput!, config: AwsConfig): AwsFSxAssociateFileSystemAliasesOutput
  cancelDataRepositoryTask(input: AwsFSxCancelDataRepositoryTaskInput!, config: AwsConfig): AwsFSxCancelDataRepositoryTaskOutput
  copyBackup(input: AwsFSxCopyBackupInput!, config: AwsConfig): AwsFSxCopyBackupOutput
  createBackup(input: AwsFSxCreateBackupInput!, config: AwsConfig): AwsFSxCreateBackupOutput
  createDataRepositoryTask(input: AwsFSxCreateDataRepositoryTaskInput!, config: AwsConfig): AwsFSxCreateDataRepositoryTaskOutput
  createFileSystem(input: AwsFSxCreateFileSystemInput!, config: AwsConfig): AwsFSxCreateFileSystemOutput
  createFileSystemFromBackup(input: AwsFSxCreateFileSystemFromBackupInput!, config: AwsConfig): AwsFSxCreateFileSystemFromBackupOutput
  deleteBackup(input: AwsFSxDeleteBackupInput!, config: AwsConfig): AwsFSxDeleteBackupOutput
  deleteFileSystem(input: AwsFSxDeleteFileSystemInput!, config: AwsConfig): AwsFSxDeleteFileSystemOutput
  describeBackups(input: AwsFSxDescribeBackupsInput, config: AwsConfig): AwsFSxDescribeBackupsOutput
  describeDataRepositoryTasks(input: AwsFSxDescribeDataRepositoryTasksInput, config: AwsConfig): AwsFSxDescribeDataRepositoryTasksOutput
  describeFileSystemAliases(input: AwsFSxDescribeFileSystemAliasesInput!, config: AwsConfig): AwsFSxDescribeFileSystemAliasesOutput
  describeFileSystems(input: AwsFSxDescribeFileSystemsInput, config: AwsConfig): AwsFSxDescribeFileSystemsOutput
  disassociateFileSystemAliases(input: AwsFSxDisassociateFileSystemAliasesInput!, config: AwsConfig): AwsFSxDisassociateFileSystemAliasesOutput
  listTagsForResource(input: AwsFSxListTagsForResourceInput!, config: AwsConfig): AwsFSxListTagsForResourceOutput
  tagResource(input: AwsFSxTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsFSxUntagResourceInput!, config: AwsConfig): JSON
  updateFileSystem(input: AwsFSxUpdateFileSystemInput!, config: AwsConfig): AwsFSxUpdateFileSystemOutput
}

type AwsFSxAssociateFileSystemAliasesOutput {
  Aliases: [AwsFSxS7]
}

type AwsFSxS7 {
  Name: String
  Lifecycle: String
}

input AwsFSxAssociateFileSystemAliasesInput {
  ClientRequestToken: String
  FileSystemId: String!
  Aliases: [String]!
}

type AwsFSxCancelDataRepositoryTaskOutput {
  Lifecycle: String
  TaskId: String
}

input AwsFSxCancelDataRepositoryTaskInput {
  TaskId: String!
}

type AwsFSxCopyBackupOutput {
  Backup: AwsFSxSo
}

type AwsFSxSo {
  BackupId: String!
  Lifecycle: String!
  FailureDetails: AwsFSxSoFailureDetails
  Type: String!
  ProgressPercent: Int
  CreationTime: Date!
  KmsKeyId: String
  ResourceARN: String
  Tags: [AwsFSxSj]
  FileSystem: AwsFSxSx!
  DirectoryInformation: AwsFSxSoDirectoryInformation
  OwnerId: String
  SourceBackupId: String
  SourceBackupRegion: String
}

type AwsFSxSoFailureDetails {
  Message: String
}

type AwsFSxSj {
  Key: String!
  Value: String!
}

type AwsFSxSx {
  OwnerId: String
  CreationTime: Date
  FileSystemId: String
  FileSystemType: String
  Lifecycle: String
  FailureDetails: AwsFSxSxFailureDetails
  StorageCapacity: Int
  StorageType: String
  VpcId: String
  SubnetIds: [String]
  NetworkInterfaceIds: [String]
  DNSName: String
  KmsKeyId: String
  ResourceARN: String
  Tags: [AwsFSxSj]
  WindowsConfiguration: AwsFSxSxWindowsConfiguration
  LustreConfiguration: AwsFSxSxLustreConfiguration
  AdministrativeActions: [AwsFSxSxAdministrativeActions]
}

type AwsFSxSxFailureDetails {
  Message: String
}

type AwsFSxSxWindowsConfiguration {
  ActiveDirectoryId: String
  SelfManagedActiveDirectoryConfiguration: AwsFSxSxWindowsConfigurationSelfManagedActiveDirectoryConfiguration
  DeploymentType: String
  RemoteAdministrationEndpoint: String
  PreferredSubnetId: String
  PreferredFileServerIp: String
  ThroughputCapacity: Int
  MaintenanceOperationsInProgress: [String]
  WeeklyMaintenanceStartTime: String
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  CopyTagsToBackups: Boolean
  Aliases: [AwsFSxS7]
  AuditLogConfiguration: AwsFSxSxWindowsConfigurationAuditLogConfiguration
}

type AwsFSxSxWindowsConfigurationSelfManagedActiveDirectoryConfiguration {
  DomainName: String
  OrganizationalUnitDistinguishedName: String
  FileSystemAdministratorsGroup: String
  UserName: String
  DnsIps: [String]
}

type AwsFSxSxWindowsConfigurationAuditLogConfiguration {
  FileAccessAuditLogLevel: String!
  FileShareAccessAuditLogLevel: String!
  AuditLogDestination: String
}

type AwsFSxSxLustreConfiguration {
  WeeklyMaintenanceStartTime: String
  DataRepositoryConfiguration: AwsFSxSxLustreConfigurationDataRepositoryConfiguration
  DeploymentType: String
  PerUnitStorageThroughput: Int
  MountName: String
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  CopyTagsToBackups: Boolean
  DriveCacheType: String
  DataCompressionType: String
}

type AwsFSxSxLustreConfigurationDataRepositoryConfiguration {
  Lifecycle: String
  ImportPath: String
  ExportPath: String
  ImportedFileChunkSize: Int
  AutoImportPolicy: String
  FailureDetails: AwsFSxSxLustreConfigurationDataRepositoryConfigurationFailureDetails
}

type AwsFSxSxLustreConfigurationDataRepositoryConfigurationFailureDetails {
  Message: String
}

type AwsFSxSxAdministrativeActions {
  AdministrativeActionType: String
  ProgressPercent: Int
  RequestTime: Date
  Status: String
  TargetFileSystemValues: JSON
  FailureDetails: AwsFSxSxAdministrativeActionsFailureDetails
}

type AwsFSxSxAdministrativeActionsFailureDetails {
  Message: String
}

type AwsFSxSoDirectoryInformation {
  DomainName: String
  ActiveDirectoryId: String
  ResourceARN: String
}

input AwsFSxCopyBackupInput {
  ClientRequestToken: String
  SourceBackupId: String!
  SourceRegion: String
  KmsKeyId: String
  CopyTags: Boolean
  Tags: [AwsFSxSjInput]
}

input AwsFSxSjInput {
  Key: String!
  Value: String!
}

type AwsFSxCreateBackupOutput {
  Backup: AwsFSxSo
}

input AwsFSxCreateBackupInput {
  FileSystemId: String!
  ClientRequestToken: String
  Tags: [AwsFSxSjInput]
}

type AwsFSxCreateDataRepositoryTaskOutput {
  DataRepositoryTask: AwsFSxS2m
}

type AwsFSxS2m {
  TaskId: String!
  Lifecycle: String!
  Type: String!
  CreationTime: Date!
  StartTime: Date
  EndTime: Date
  ResourceARN: String
  Tags: [AwsFSxSj]
  FileSystemId: String!
  Paths: [String]
  FailureDetails: AwsFSxS2mFailureDetails
  Status: AwsFSxS2mStatus
  Report: AwsFSxS2i
}

type AwsFSxS2mFailureDetails {
  Message: String
}

type AwsFSxS2mStatus {
  TotalCount: JSON
  SucceededCount: JSON
  FailedCount: JSON
  LastUpdatedTime: Date
}

type AwsFSxS2i {
  Enabled: Boolean!
  Path: String
  Format: String
  Scope: String
}

input AwsFSxCreateDataRepositoryTaskInput {
  Type: String!
  Paths: [String]
  FileSystemId: String!
  Report: AwsFSxS2iInput!
  ClientRequestToken: String
  Tags: [AwsFSxSjInput]
}

input AwsFSxS2iInput {
  Enabled: Boolean!
  Path: String
  Format: String
  Scope: String
}

type AwsFSxCreateFileSystemOutput {
  FileSystem: AwsFSxSx
}

input AwsFSxCreateFileSystemInput {
  ClientRequestToken: String
  FileSystemType: String!
  StorageCapacity: Int!
  StorageType: String
  SubnetIds: [String]!
  SecurityGroupIds: [String]
  Tags: [AwsFSxSjInput]
  KmsKeyId: String
  WindowsConfiguration: AwsFSxS2yInput
  LustreConfiguration: AwsFSxS32Input
}

input AwsFSxS2yInput {
  ActiveDirectoryId: String
  SelfManagedActiveDirectoryConfiguration: AwsFSxS2ySelfManagedActiveDirectoryConfigurationInput
  DeploymentType: String
  PreferredSubnetId: String
  ThroughputCapacity: Int!
  WeeklyMaintenanceStartTime: String
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  CopyTagsToBackups: Boolean
  Aliases: [String]
  AuditLogConfiguration: AwsFSxS31Input
}

input AwsFSxS2ySelfManagedActiveDirectoryConfigurationInput {
  DomainName: String!
  OrganizationalUnitDistinguishedName: String
  FileSystemAdministratorsGroup: String
  UserName: String!
  Password: String!
  DnsIps: [String]!
}

input AwsFSxS31Input {
  FileAccessAuditLogLevel: String!
  FileShareAccessAuditLogLevel: String!
  AuditLogDestination: String
}

input AwsFSxS32Input {
  WeeklyMaintenanceStartTime: String
  ImportPath: String
  ExportPath: String
  ImportedFileChunkSize: Int
  DeploymentType: String
  AutoImportPolicy: String
  PerUnitStorageThroughput: Int
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  CopyTagsToBackups: Boolean
  DriveCacheType: String
  DataCompressionType: String
}

type AwsFSxCreateFileSystemFromBackupOutput {
  FileSystem: AwsFSxSx
}

input AwsFSxCreateFileSystemFromBackupInput {
  BackupId: String!
  ClientRequestToken: String
  SubnetIds: [String]!
  SecurityGroupIds: [String]
  Tags: [AwsFSxSjInput]
  WindowsConfiguration: AwsFSxS2yInput
  LustreConfiguration: AwsFSxS32Input
  StorageType: String
  KmsKeyId: String
}

type AwsFSxDeleteBackupOutput {
  BackupId: String
  Lifecycle: String
}

input AwsFSxDeleteBackupInput {
  BackupId: String!
  ClientRequestToken: String
}

type AwsFSxDeleteFileSystemOutput {
  FileSystemId: String
  Lifecycle: String
  WindowsResponse: AwsFSxDeleteFileSystemOutputWindowsResponse
  LustreResponse: AwsFSxDeleteFileSystemOutputLustreResponse
}

type AwsFSxDeleteFileSystemOutputWindowsResponse {
  FinalBackupId: String
  FinalBackupTags: [AwsFSxSj]
}

type AwsFSxDeleteFileSystemOutputLustreResponse {
  FinalBackupId: String
  FinalBackupTags: [AwsFSxSj]
}

input AwsFSxDeleteFileSystemInput {
  FileSystemId: String!
  ClientRequestToken: String
  WindowsConfiguration: AwsFSxDeleteFileSystemWindowsConfigurationInput
  LustreConfiguration: AwsFSxDeleteFileSystemLustreConfigurationInput
}

input AwsFSxDeleteFileSystemWindowsConfigurationInput {
  SkipFinalBackup: Boolean
  FinalBackupTags: [AwsFSxSjInput]
}

input AwsFSxDeleteFileSystemLustreConfigurationInput {
  SkipFinalBackup: Boolean
  FinalBackupTags: [AwsFSxSjInput]
}

type AwsFSxDescribeBackupsOutput {
  Backups: [AwsFSxSo]
  NextToken: String
}

input AwsFSxDescribeBackupsInput {
  BackupIds: [String]
  Filters: [AwsFSxDescribeBackupsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsFSxDescribeBackupsFiltersInput {
  Name: String
  Values: [String]
}

type AwsFSxDescribeDataRepositoryTasksOutput {
  DataRepositoryTasks: [AwsFSxS2m]
  NextToken: String
}

input AwsFSxDescribeDataRepositoryTasksInput {
  TaskIds: [String]
  Filters: [AwsFSxDescribeDataRepositoryTasksFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsFSxDescribeDataRepositoryTasksFiltersInput {
  Name: String
  Values: [String]
}

type AwsFSxDescribeFileSystemAliasesOutput {
  Aliases: [AwsFSxS7]
  NextToken: String
}

input AwsFSxDescribeFileSystemAliasesInput {
  ClientRequestToken: String
  FileSystemId: String!
  MaxResults: Int
  NextToken: String
}

type AwsFSxDescribeFileSystemsOutput {
  FileSystems: [AwsFSxSx]
  NextToken: String
}

input AwsFSxDescribeFileSystemsInput {
  FileSystemIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsFSxDisassociateFileSystemAliasesOutput {
  Aliases: [AwsFSxS7]
}

input AwsFSxDisassociateFileSystemAliasesInput {
  ClientRequestToken: String
  FileSystemId: String!
  Aliases: [String]!
}

type AwsFSxListTagsForResourceOutput {
  Tags: [AwsFSxSj]
  NextToken: String
}

input AwsFSxListTagsForResourceInput {
  ResourceARN: String!
  MaxResults: Int
  NextToken: String
}

input AwsFSxTagResourceInput {
  ResourceARN: String!
  Tags: [AwsFSxSjInput]!
}

input AwsFSxUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsFSxUpdateFileSystemOutput {
  FileSystem: AwsFSxSx
}

input AwsFSxUpdateFileSystemInput {
  FileSystemId: String!
  ClientRequestToken: String
  StorageCapacity: Int
  WindowsConfiguration: AwsFSxUpdateFileSystemWindowsConfigurationInput
  LustreConfiguration: AwsFSxUpdateFileSystemLustreConfigurationInput
}

input AwsFSxUpdateFileSystemWindowsConfigurationInput {
  WeeklyMaintenanceStartTime: String
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  ThroughputCapacity: Int
  SelfManagedActiveDirectoryConfiguration: AwsFSxUpdateFileSystemWindowsConfigurationSelfManagedActiveDirectoryConfigurationInput
  AuditLogConfiguration: AwsFSxS31Input
}

input AwsFSxUpdateFileSystemWindowsConfigurationSelfManagedActiveDirectoryConfigurationInput {
  UserName: String
  Password: String
  DnsIps: [String]
}

input AwsFSxUpdateFileSystemLustreConfigurationInput {
  WeeklyMaintenanceStartTime: String
  DailyAutomaticBackupStartTime: String
  AutomaticBackupRetentionDays: Int
  AutoImportPolicy: String
  DataCompressionType: String
}

"""FinSpace User Environment Management service (2021-03-12)"""
type AwsFinspace {
  createEnvironment(input: AwsFinspaceCreateEnvironmentInput!, config: AwsConfig): AwsFinspaceCreateEnvironmentOutput
  deleteEnvironment(input: AwsFinspaceDeleteEnvironmentInput!, config: AwsConfig): JSON
  getEnvironment(input: AwsFinspaceGetEnvironmentInput!, config: AwsConfig): AwsFinspaceGetEnvironmentOutput
  listEnvironments(input: AwsFinspaceListEnvironmentsInput, config: AwsConfig): AwsFinspaceListEnvironmentsOutput
  listTagsForResource(input: AwsFinspaceListTagsForResourceInput!, config: AwsConfig): AwsFinspaceListTagsForResourceOutput
  tagResource(input: AwsFinspaceTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsFinspaceUntagResourceInput!, config: AwsConfig): JSON
  updateEnvironment(input: AwsFinspaceUpdateEnvironmentInput!, config: AwsConfig): AwsFinspaceUpdateEnvironmentOutput
}

type AwsFinspaceCreateEnvironmentOutput {
  environmentId: String
  environmentArn: String
  environmentUrl: String
}

input AwsFinspaceCreateEnvironmentInput {
  name: String!
  description: String
  kmsKeyId: String
  tags: JSON
  federationMode: String
  federationParameters: AwsFinspaceS9Input
}

input AwsFinspaceS9Input {
  samlMetadataDocument: String
  samlMetadataURL: String
  applicationCallBackURL: String
  federationURN: String
  federationProviderName: String
  attributeMap: JSON
}

input AwsFinspaceDeleteEnvironmentInput {
  environmentId: String!
}

type AwsFinspaceGetEnvironmentOutput {
  environment: AwsFinspaceSn
}

type AwsFinspaceSn {
  name: String
  environmentId: String
  awsAccountId: String
  status: String
  environmentUrl: String
  description: String
  environmentArn: String
  sageMakerStudioDomainUrl: String
  kmsKeyId: String
  dedicatedServiceAccountId: String
  federationMode: String
  federationParameters: AwsFinspaceS9
}

type AwsFinspaceS9 {
  samlMetadataDocument: String
  samlMetadataURL: String
  applicationCallBackURL: String
  federationURN: String
  federationProviderName: String
  attributeMap: JSON
}

input AwsFinspaceGetEnvironmentInput {
  environmentId: String!
}

type AwsFinspaceListEnvironmentsOutput {
  environments: [AwsFinspaceSn]
  nextToken: String
}

input AwsFinspaceListEnvironmentsInput {
  nextToken: String
  maxResults: Int
}

type AwsFinspaceListTagsForResourceOutput {
  tags: JSON
}

input AwsFinspaceListTagsForResourceInput {
  resourceArn: String!
}

input AwsFinspaceTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsFinspaceUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsFinspaceUpdateEnvironmentOutput {
  environment: AwsFinspaceSn
}

input AwsFinspaceUpdateEnvironmentInput {
  environmentId: String!
  name: String
  description: String
  federationMode: String
  federationParameters: AwsFinspaceS9Input
}

"""FinSpace Public API (2020-07-13)"""
type AwsFinspacedata {
  createChangeset(input: AwsFinspacedataCreateChangesetInput!, config: AwsConfig): AwsFinspacedataCreateChangesetOutput
  getProgrammaticAccessCredentials(input: AwsFinspacedataGetProgrammaticAccessCredentialsInput!, config: AwsConfig): AwsFinspacedataGetProgrammaticAccessCredentialsOutput
  getWorkingLocation(input: AwsFinspacedataGetWorkingLocationInput, config: AwsConfig): AwsFinspacedataGetWorkingLocationOutput
}

type AwsFinspacedataCreateChangesetOutput {
  changeset: AwsFinspacedataCreateChangesetOutputChangeset
}

type AwsFinspacedataCreateChangesetOutputChangeset {
  id: String
  changesetArn: String
  datasetId: String
  changeType: String
  sourceType: String
  sourceParams: JSON
  formatType: String
  formatParams: JSON
  createTimestamp: Date
  status: String
  errorInfo: AwsFinspacedataCreateChangesetOutputChangesetErrorInfo
  changesetLabels: JSON
  updatesChangesetId: String
  updatedByChangesetId: String
}

type AwsFinspacedataCreateChangesetOutputChangesetErrorInfo {
  errorMessage: String
  errorCategory: String
}

input AwsFinspacedataCreateChangesetInput {
  datasetId: String!
  changeType: String!
  sourceType: String!
  sourceParams: JSON!
  formatType: String
  formatParams: JSON
  tags: JSON
}

type AwsFinspacedataGetProgrammaticAccessCredentialsOutput {
  credentials: AwsFinspacedataGetProgrammaticAccessCredentialsOutputCredentials
  durationInMinutes: JSON
}

type AwsFinspacedataGetProgrammaticAccessCredentialsOutputCredentials {
  accessKeyId: String
  secretAccessKey: String
  sessionToken: String
}

input AwsFinspacedataGetProgrammaticAccessCredentialsInput {
  durationInMinutes: JSON
  environmentId: String!
}

type AwsFinspacedataGetWorkingLocationOutput {
  s3Uri: String
  s3Path: String
  s3Bucket: String
}

input AwsFinspacedataGetWorkingLocationInput {
  locationType: String
}

"""Amazon Kinesis Firehose (2015-08-04)"""
type AwsFirehose {
  createDeliveryStream(input: AwsFirehoseCreateDeliveryStreamInput!, config: AwsConfig): AwsFirehoseCreateDeliveryStreamOutput
  deleteDeliveryStream(input: AwsFirehoseDeleteDeliveryStreamInput!, config: AwsConfig): JSON
  describeDeliveryStream(input: AwsFirehoseDescribeDeliveryStreamInput!, config: AwsConfig): AwsFirehoseDescribeDeliveryStreamOutput
  listDeliveryStreams(input: AwsFirehoseListDeliveryStreamsInput, config: AwsConfig): AwsFirehoseListDeliveryStreamsOutput
  listTagsForDeliveryStream(input: AwsFirehoseListTagsForDeliveryStreamInput!, config: AwsConfig): AwsFirehoseListTagsForDeliveryStreamOutput
  putRecord(input: AwsFirehosePutRecordInput!, config: AwsConfig): AwsFirehosePutRecordOutput
  putRecordBatch(input: AwsFirehosePutRecordBatchInput!, config: AwsConfig): AwsFirehosePutRecordBatchOutput
  startDeliveryStreamEncryption(input: AwsFirehoseStartDeliveryStreamEncryptionInput!, config: AwsConfig): JSON
  stopDeliveryStreamEncryption(input: AwsFirehoseStopDeliveryStreamEncryptionInput!, config: AwsConfig): JSON
  tagDeliveryStream(input: AwsFirehoseTagDeliveryStreamInput!, config: AwsConfig): JSON
  untagDeliveryStream(input: AwsFirehoseUntagDeliveryStreamInput!, config: AwsConfig): JSON
  updateDestination(input: AwsFirehoseUpdateDestinationInput!, config: AwsConfig): JSON
}

type AwsFirehoseCreateDeliveryStreamOutput {
  DeliveryStreamARN: String
}

input AwsFirehoseCreateDeliveryStreamInput {
  DeliveryStreamName: String!
  DeliveryStreamType: String
  KinesisStreamSourceConfiguration: AwsFirehoseCreateDeliveryStreamKinesisStreamSourceConfigurationInput
  DeliveryStreamEncryptionConfigurationInput: AwsFirehoseS7Input
  S3DestinationConfiguration: AwsFirehoseSaInput
  ExtendedS3DestinationConfiguration: AwsFirehoseCreateDeliveryStreamExtendedS3DestinationConfigurationInput
  RedshiftDestinationConfiguration: AwsFirehoseCreateDeliveryStreamRedshiftDestinationConfigurationInput
  ElasticsearchDestinationConfiguration: AwsFirehoseCreateDeliveryStreamElasticsearchDestinationConfigurationInput
  SplunkDestinationConfiguration: AwsFirehoseCreateDeliveryStreamSplunkDestinationConfigurationInput
  HttpEndpointDestinationConfiguration: AwsFirehoseCreateDeliveryStreamHttpEndpointDestinationConfigurationInput
  Tags: [AwsFirehoseS34Input]
}

input AwsFirehoseCreateDeliveryStreamKinesisStreamSourceConfigurationInput {
  KinesisStreamARN: String!
  RoleARN: String!
}

input AwsFirehoseS7Input {
  KeyARN: String
  KeyType: String!
}

input AwsFirehoseSaInput {
  RoleARN: String!
  BucketARN: String!
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSeInput
  CompressionFormat: String
  EncryptionConfiguration: AwsFirehoseSiInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseSeInput {
  SizeInMBs: Int
  IntervalInSeconds: Int
}

input AwsFirehoseSiInput {
  NoEncryptionConfig: String
  KMSEncryptionConfig: AwsFirehoseSiKMSEncryptionConfigInput
}

input AwsFirehoseSiKMSEncryptionConfigInput {
  AWSKMSKeyARN: String!
}

input AwsFirehoseSlInput {
  Enabled: Boolean
  LogGroupName: String
  LogStreamName: String
}

input AwsFirehoseCreateDeliveryStreamExtendedS3DestinationConfigurationInput {
  RoleARN: String!
  BucketARN: String!
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSeInput
  CompressionFormat: String
  EncryptionConfiguration: AwsFirehoseSiInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
  ProcessingConfiguration: AwsFirehoseSqInput
  S3BackupMode: String
  S3BackupConfiguration: AwsFirehoseSaInput
  DataFormatConversionConfiguration: AwsFirehoseSzInput
}

input AwsFirehoseSqInput {
  Enabled: Boolean
  Processors: [AwsFirehoseSqProcessorsInput]
}

input AwsFirehoseSqProcessorsInput {
  Type: String!
  Parameters: [AwsFirehoseSqProcessorsParametersInput]
}

input AwsFirehoseSqProcessorsParametersInput {
  ParameterName: String!
  ParameterValue: String!
}

input AwsFirehoseSzInput {
  SchemaConfiguration: AwsFirehoseSzSchemaConfigurationInput
  InputFormatConfiguration: AwsFirehoseSzInputFormatConfigurationInput
  OutputFormatConfiguration: AwsFirehoseSzOutputFormatConfigurationInput
  Enabled: Boolean
}

input AwsFirehoseSzSchemaConfigurationInput {
  RoleARN: String
  CatalogId: String
  DatabaseName: String
  TableName: String
  Region: String
  VersionId: String
}

input AwsFirehoseSzInputFormatConfigurationInput {
  Deserializer: AwsFirehoseSzInputFormatConfigurationDeserializerInput
}

input AwsFirehoseSzInputFormatConfigurationDeserializerInput {
  OpenXJsonSerDe: AwsFirehoseSzInputFormatConfigurationDeserializerOpenXJsonSerDeInput
  HiveJsonSerDe: AwsFirehoseSzInputFormatConfigurationDeserializerHiveJsonSerDeInput
}

input AwsFirehoseSzInputFormatConfigurationDeserializerOpenXJsonSerDeInput {
  ConvertDotsInJsonKeysToUnderscores: Boolean
  CaseInsensitive: Boolean
  ColumnToJsonKeyMappings: JSON
}

input AwsFirehoseSzInputFormatConfigurationDeserializerHiveJsonSerDeInput {
  TimestampFormats: [String]
}

input AwsFirehoseSzOutputFormatConfigurationInput {
  Serializer: AwsFirehoseSzOutputFormatConfigurationSerializerInput
}

input AwsFirehoseSzOutputFormatConfigurationSerializerInput {
  ParquetSerDe: AwsFirehoseSzOutputFormatConfigurationSerializerParquetSerDeInput
  OrcSerDe: AwsFirehoseSzOutputFormatConfigurationSerializerOrcSerDeInput
}

input AwsFirehoseSzOutputFormatConfigurationSerializerParquetSerDeInput {
  BlockSizeBytes: Int
  PageSizeBytes: Int
  Compression: String
  EnableDictionaryCompression: Boolean
  MaxPaddingBytes: Int
  WriterVersion: String
}

input AwsFirehoseSzOutputFormatConfigurationSerializerOrcSerDeInput {
  StripeSizeBytes: Int
  BlockSizeBytes: Int
  RowIndexStride: Int
  EnablePadding: Boolean
  PaddingTolerance: JSON
  Compression: String
  BloomFilterColumns: [String]
  BloomFilterFalsePositiveProbability: JSON
  DictionaryKeyThreshold: JSON
  FormatVersion: String
}

input AwsFirehoseCreateDeliveryStreamRedshiftDestinationConfigurationInput {
  RoleARN: String!
  ClusterJDBCURL: String!
  CopyCommand: AwsFirehoseS1qInput!
  Username: String!
  Password: String!
  RetryOptions: AwsFirehoseS1wInput
  S3Configuration: AwsFirehoseSaInput!
  ProcessingConfiguration: AwsFirehoseSqInput
  S3BackupMode: String
  S3BackupConfiguration: AwsFirehoseSaInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseS1qInput {
  DataTableName: String!
  DataTableColumns: String
  CopyOptions: String
}

input AwsFirehoseS1wInput {
  DurationInSeconds: Int
}

input AwsFirehoseCreateDeliveryStreamElasticsearchDestinationConfigurationInput {
  RoleARN: String!
  DomainARN: String
  ClusterEndpoint: String
  IndexName: String!
  TypeName: String
  IndexRotationPeriod: String
  BufferingHints: AwsFirehoseS25Input
  RetryOptions: AwsFirehoseS28Input
  S3BackupMode: String
  S3Configuration: AwsFirehoseSaInput!
  ProcessingConfiguration: AwsFirehoseSqInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
  VpcConfiguration: AwsFirehoseCreateDeliveryStreamElasticsearchDestinationConfigurationVpcConfigurationInput
}

input AwsFirehoseS25Input {
  IntervalInSeconds: Int
  SizeInMBs: Int
}

input AwsFirehoseS28Input {
  DurationInSeconds: Int
}

input AwsFirehoseCreateDeliveryStreamElasticsearchDestinationConfigurationVpcConfigurationInput {
  SubnetIds: [String]!
  RoleARN: String!
  SecurityGroupIds: [String]!
}

input AwsFirehoseCreateDeliveryStreamSplunkDestinationConfigurationInput {
  HECEndpoint: String!
  HECEndpointType: String!
  HECToken: String!
  HECAcknowledgmentTimeoutInSeconds: Int
  RetryOptions: AwsFirehoseS2jInput
  S3BackupMode: String
  S3Configuration: AwsFirehoseSaInput!
  ProcessingConfiguration: AwsFirehoseSqInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseS2jInput {
  DurationInSeconds: Int
}

input AwsFirehoseCreateDeliveryStreamHttpEndpointDestinationConfigurationInput {
  EndpointConfiguration: AwsFirehoseS2nInput!
  BufferingHints: AwsFirehoseS2rInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
  RequestConfiguration: AwsFirehoseS2uInput
  ProcessingConfiguration: AwsFirehoseSqInput
  RoleARN: String
  RetryOptions: AwsFirehoseS30Input
  S3BackupMode: String
  S3Configuration: AwsFirehoseSaInput!
}

input AwsFirehoseS2nInput {
  Url: String!
  Name: String
  AccessKey: String
}

input AwsFirehoseS2rInput {
  SizeInMBs: Int
  IntervalInSeconds: Int
}

input AwsFirehoseS2uInput {
  ContentEncoding: String
  CommonAttributes: [AwsFirehoseS2uCommonAttributesInput]
}

input AwsFirehoseS2uCommonAttributesInput {
  AttributeName: String!
  AttributeValue: String!
}

input AwsFirehoseS30Input {
  DurationInSeconds: Int
}

input AwsFirehoseS34Input {
  Key: String!
  Value: String
}

input AwsFirehoseDeleteDeliveryStreamInput {
  DeliveryStreamName: String!
  AllowForceDelete: Boolean
}

type AwsFirehoseDescribeDeliveryStreamOutput {
  DeliveryStreamDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescription!
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescription {
  DeliveryStreamName: String!
  DeliveryStreamARN: String!
  DeliveryStreamStatus: String!
  FailureDescription: AwsFirehoseS3h
  DeliveryStreamEncryptionConfiguration: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDeliveryStreamEncryptionConfiguration
  DeliveryStreamType: String!
  VersionId: String!
  CreateTimestamp: Date
  LastUpdateTimestamp: Date
  Source: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionSource
  Destinations: [AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinations]!
  HasMoreDestinations: Boolean!
}

type AwsFirehoseS3h {
  Type: String!
  Details: String!
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDeliveryStreamEncryptionConfiguration {
  KeyARN: String
  KeyType: String
  Status: String
  FailureDescription: AwsFirehoseS3h
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionSource {
  KinesisStreamSourceDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionSourceKinesisStreamSourceDescription
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionSourceKinesisStreamSourceDescription {
  KinesisStreamARN: String
  RoleARN: String
  DeliveryStartTimestamp: Date
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinations {
  DestinationId: String!
  S3DestinationDescription: AwsFirehoseS3s
  ExtendedS3DestinationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsExtendedS3DestinationDescription
  RedshiftDestinationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsRedshiftDestinationDescription
  ElasticsearchDestinationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsElasticsearchDestinationDescription
  SplunkDestinationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsSplunkDestinationDescription
  HttpEndpointDestinationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsHttpEndpointDestinationDescription
}

type AwsFirehoseS3s {
  RoleARN: String!
  BucketARN: String!
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSe!
  CompressionFormat: String!
  EncryptionConfiguration: AwsFirehoseSi!
  CloudWatchLoggingOptions: AwsFirehoseSl
}

type AwsFirehoseSe {
  SizeInMBs: Int
  IntervalInSeconds: Int
}

type AwsFirehoseSi {
  NoEncryptionConfig: String
  KMSEncryptionConfig: AwsFirehoseSiKMSEncryptionConfig
}

type AwsFirehoseSiKMSEncryptionConfig {
  AWSKMSKeyARN: String!
}

type AwsFirehoseSl {
  Enabled: Boolean
  LogGroupName: String
  LogStreamName: String
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsExtendedS3DestinationDescription {
  RoleARN: String!
  BucketARN: String!
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSe!
  CompressionFormat: String!
  EncryptionConfiguration: AwsFirehoseSi!
  CloudWatchLoggingOptions: AwsFirehoseSl
  ProcessingConfiguration: AwsFirehoseSq
  S3BackupMode: String
  S3BackupDescription: AwsFirehoseS3s
  DataFormatConversionConfiguration: AwsFirehoseSz
}

type AwsFirehoseSq {
  Enabled: Boolean
  Processors: [AwsFirehoseSqProcessors]
}

type AwsFirehoseSqProcessors {
  Type: String!
  Parameters: [AwsFirehoseSqProcessorsParameters]
}

type AwsFirehoseSqProcessorsParameters {
  ParameterName: String!
  ParameterValue: String!
}

type AwsFirehoseSz {
  SchemaConfiguration: AwsFirehoseSzSchemaConfiguration
  InputFormatConfiguration: AwsFirehoseSzInputFormatConfiguration
  OutputFormatConfiguration: AwsFirehoseSzOutputFormatConfiguration
  Enabled: Boolean
}

type AwsFirehoseSzSchemaConfiguration {
  RoleARN: String
  CatalogId: String
  DatabaseName: String
  TableName: String
  Region: String
  VersionId: String
}

type AwsFirehoseSzInputFormatConfiguration {
  Deserializer: AwsFirehoseSzInputFormatConfigurationDeserializer
}

type AwsFirehoseSzInputFormatConfigurationDeserializer {
  OpenXJsonSerDe: AwsFirehoseSzInputFormatConfigurationDeserializerOpenXJsonSerDe
  HiveJsonSerDe: AwsFirehoseSzInputFormatConfigurationDeserializerHiveJsonSerDe
}

type AwsFirehoseSzInputFormatConfigurationDeserializerOpenXJsonSerDe {
  ConvertDotsInJsonKeysToUnderscores: Boolean
  CaseInsensitive: Boolean
  ColumnToJsonKeyMappings: JSON
}

type AwsFirehoseSzInputFormatConfigurationDeserializerHiveJsonSerDe {
  TimestampFormats: [String]
}

type AwsFirehoseSzOutputFormatConfiguration {
  Serializer: AwsFirehoseSzOutputFormatConfigurationSerializer
}

type AwsFirehoseSzOutputFormatConfigurationSerializer {
  ParquetSerDe: AwsFirehoseSzOutputFormatConfigurationSerializerParquetSerDe
  OrcSerDe: AwsFirehoseSzOutputFormatConfigurationSerializerOrcSerDe
}

type AwsFirehoseSzOutputFormatConfigurationSerializerParquetSerDe {
  BlockSizeBytes: Int
  PageSizeBytes: Int
  Compression: String
  EnableDictionaryCompression: Boolean
  MaxPaddingBytes: Int
  WriterVersion: String
}

type AwsFirehoseSzOutputFormatConfigurationSerializerOrcSerDe {
  StripeSizeBytes: Int
  BlockSizeBytes: Int
  RowIndexStride: Int
  EnablePadding: Boolean
  PaddingTolerance: JSON
  Compression: String
  BloomFilterColumns: [String]
  BloomFilterFalsePositiveProbability: JSON
  DictionaryKeyThreshold: JSON
  FormatVersion: String
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsRedshiftDestinationDescription {
  RoleARN: String!
  ClusterJDBCURL: String!
  CopyCommand: AwsFirehoseS1q!
  Username: String!
  RetryOptions: AwsFirehoseS1w
  S3DestinationDescription: AwsFirehoseS3s!
  ProcessingConfiguration: AwsFirehoseSq
  S3BackupMode: String
  S3BackupDescription: AwsFirehoseS3s
  CloudWatchLoggingOptions: AwsFirehoseSl
}

type AwsFirehoseS1q {
  DataTableName: String!
  DataTableColumns: String
  CopyOptions: String
}

type AwsFirehoseS1w {
  DurationInSeconds: Int
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsElasticsearchDestinationDescription {
  RoleARN: String
  DomainARN: String
  ClusterEndpoint: String
  IndexName: String
  TypeName: String
  IndexRotationPeriod: String
  BufferingHints: AwsFirehoseS25
  RetryOptions: AwsFirehoseS28
  S3BackupMode: String
  S3DestinationDescription: AwsFirehoseS3s
  ProcessingConfiguration: AwsFirehoseSq
  CloudWatchLoggingOptions: AwsFirehoseSl
  VpcConfigurationDescription: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsElasticsearchDestinationDescriptionVpcConfigurationDescription
}

type AwsFirehoseS25 {
  IntervalInSeconds: Int
  SizeInMBs: Int
}

type AwsFirehoseS28 {
  DurationInSeconds: Int
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsElasticsearchDestinationDescriptionVpcConfigurationDescription {
  SubnetIds: [String]!
  RoleARN: String!
  SecurityGroupIds: [String]!
  VpcId: String!
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsSplunkDestinationDescription {
  HECEndpoint: String
  HECEndpointType: String
  HECToken: String
  HECAcknowledgmentTimeoutInSeconds: Int
  RetryOptions: AwsFirehoseS2j
  S3BackupMode: String
  S3DestinationDescription: AwsFirehoseS3s
  ProcessingConfiguration: AwsFirehoseSq
  CloudWatchLoggingOptions: AwsFirehoseSl
}

type AwsFirehoseS2j {
  DurationInSeconds: Int
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsHttpEndpointDestinationDescription {
  EndpointConfiguration: AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsHttpEndpointDestinationDescriptionEndpointConfiguration
  BufferingHints: AwsFirehoseS2r
  CloudWatchLoggingOptions: AwsFirehoseSl
  RequestConfiguration: AwsFirehoseS2u
  ProcessingConfiguration: AwsFirehoseSq
  RoleARN: String
  RetryOptions: AwsFirehoseS30
  S3BackupMode: String
  S3DestinationDescription: AwsFirehoseS3s
}

type AwsFirehoseDescribeDeliveryStreamOutputDeliveryStreamDescriptionDestinationsHttpEndpointDestinationDescriptionEndpointConfiguration {
  Url: String
  Name: String
}

type AwsFirehoseS2r {
  SizeInMBs: Int
  IntervalInSeconds: Int
}

type AwsFirehoseS2u {
  ContentEncoding: String
  CommonAttributes: [AwsFirehoseS2uCommonAttributes]
}

type AwsFirehoseS2uCommonAttributes {
  AttributeName: String!
  AttributeValue: String!
}

type AwsFirehoseS30 {
  DurationInSeconds: Int
}

input AwsFirehoseDescribeDeliveryStreamInput {
  DeliveryStreamName: String!
  Limit: Int
  ExclusiveStartDestinationId: String
}

type AwsFirehoseListDeliveryStreamsOutput {
  DeliveryStreamNames: [String]!
  HasMoreDeliveryStreams: Boolean!
}

input AwsFirehoseListDeliveryStreamsInput {
  Limit: Int
  DeliveryStreamType: String
  ExclusiveStartDeliveryStreamName: String
}

type AwsFirehoseListTagsForDeliveryStreamOutput {
  Tags: [AwsFirehoseS34]!
  HasMoreTags: Boolean!
}

type AwsFirehoseS34 {
  Key: String!
  Value: String
}

input AwsFirehoseListTagsForDeliveryStreamInput {
  DeliveryStreamName: String!
  ExclusiveStartTagKey: String
  Limit: Int
}

type AwsFirehosePutRecordOutput {
  RecordId: String!
  Encrypted: Boolean
}

input AwsFirehosePutRecordInput {
  DeliveryStreamName: String!
  Record: AwsFirehoseS49Input!
}

input AwsFirehoseS49Input {
  Data: JSON!
}

type AwsFirehosePutRecordBatchOutput {
  FailedPutCount: Int!
  Encrypted: Boolean
  RequestResponses: [AwsFirehosePutRecordBatchOutputRequestResponses]!
}

type AwsFirehosePutRecordBatchOutputRequestResponses {
  RecordId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsFirehosePutRecordBatchInput {
  DeliveryStreamName: String!
  Records: [AwsFirehoseS49Input]!
}

input AwsFirehoseStartDeliveryStreamEncryptionInput {
  DeliveryStreamName: String!
  DeliveryStreamEncryptionConfigurationInput: AwsFirehoseS7Input
}

input AwsFirehoseStopDeliveryStreamEncryptionInput {
  DeliveryStreamName: String!
}

input AwsFirehoseTagDeliveryStreamInput {
  DeliveryStreamName: String!
  Tags: [AwsFirehoseS34Input]!
}

input AwsFirehoseUntagDeliveryStreamInput {
  DeliveryStreamName: String!
  TagKeys: [String]!
}

input AwsFirehoseUpdateDestinationInput {
  DeliveryStreamName: String!
  CurrentDeliveryStreamVersionId: String!
  DestinationId: String!
  S3DestinationUpdate: AwsFirehoseS4uInput
  ExtendedS3DestinationUpdate: AwsFirehoseUpdateDestinationExtendedS3DestinationUpdateInput
  RedshiftDestinationUpdate: AwsFirehoseUpdateDestinationRedshiftDestinationUpdateInput
  ElasticsearchDestinationUpdate: AwsFirehoseUpdateDestinationElasticsearchDestinationUpdateInput
  SplunkDestinationUpdate: AwsFirehoseUpdateDestinationSplunkDestinationUpdateInput
  HttpEndpointDestinationUpdate: AwsFirehoseUpdateDestinationHttpEndpointDestinationUpdateInput
}

input AwsFirehoseS4uInput {
  RoleARN: String
  BucketARN: String
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSeInput
  CompressionFormat: String
  EncryptionConfiguration: AwsFirehoseSiInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseUpdateDestinationExtendedS3DestinationUpdateInput {
  RoleARN: String
  BucketARN: String
  Prefix: String
  ErrorOutputPrefix: String
  BufferingHints: AwsFirehoseSeInput
  CompressionFormat: String
  EncryptionConfiguration: AwsFirehoseSiInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
  ProcessingConfiguration: AwsFirehoseSqInput
  S3BackupMode: String
  S3BackupUpdate: AwsFirehoseS4uInput
  DataFormatConversionConfiguration: AwsFirehoseSzInput
}

input AwsFirehoseUpdateDestinationRedshiftDestinationUpdateInput {
  RoleARN: String
  ClusterJDBCURL: String
  CopyCommand: AwsFirehoseS1qInput
  Username: String
  Password: String
  RetryOptions: AwsFirehoseS1wInput
  S3Update: AwsFirehoseS4uInput
  ProcessingConfiguration: AwsFirehoseSqInput
  S3BackupMode: String
  S3BackupUpdate: AwsFirehoseS4uInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseUpdateDestinationElasticsearchDestinationUpdateInput {
  RoleARN: String
  DomainARN: String
  ClusterEndpoint: String
  IndexName: String
  TypeName: String
  IndexRotationPeriod: String
  BufferingHints: AwsFirehoseS25Input
  RetryOptions: AwsFirehoseS28Input
  S3Update: AwsFirehoseS4uInput
  ProcessingConfiguration: AwsFirehoseSqInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseUpdateDestinationSplunkDestinationUpdateInput {
  HECEndpoint: String
  HECEndpointType: String
  HECToken: String
  HECAcknowledgmentTimeoutInSeconds: Int
  RetryOptions: AwsFirehoseS2jInput
  S3BackupMode: String
  S3Update: AwsFirehoseS4uInput
  ProcessingConfiguration: AwsFirehoseSqInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
}

input AwsFirehoseUpdateDestinationHttpEndpointDestinationUpdateInput {
  EndpointConfiguration: AwsFirehoseS2nInput
  BufferingHints: AwsFirehoseS2rInput
  CloudWatchLoggingOptions: AwsFirehoseSlInput
  RequestConfiguration: AwsFirehoseS2uInput
  ProcessingConfiguration: AwsFirehoseSqInput
  RoleARN: String
  RetryOptions: AwsFirehoseS30Input
  S3BackupMode: String
  S3Update: AwsFirehoseS4uInput
}

"""AWS Fault Injection Simulator (2020-12-01)"""
type AwsFis {
  createExperimentTemplate(input: AwsFisCreateExperimentTemplateInput!, config: AwsConfig): AwsFisCreateExperimentTemplateOutput
  deleteExperimentTemplate(input: AwsFisDeleteExperimentTemplateInput!, config: AwsConfig): AwsFisDeleteExperimentTemplateOutput
  getAction(input: AwsFisGetActionInput!, config: AwsConfig): AwsFisGetActionOutput
  getExperiment(input: AwsFisGetExperimentInput!, config: AwsConfig): AwsFisGetExperimentOutput
  getExperimentTemplate(input: AwsFisGetExperimentTemplateInput!, config: AwsConfig): AwsFisGetExperimentTemplateOutput
  listActions(input: AwsFisListActionsInput, config: AwsConfig): AwsFisListActionsOutput
  listExperimentTemplates(input: AwsFisListExperimentTemplatesInput, config: AwsConfig): AwsFisListExperimentTemplatesOutput
  listExperiments(input: AwsFisListExperimentsInput, config: AwsConfig): AwsFisListExperimentsOutput
  listTagsForResource(input: AwsFisListTagsForResourceInput!, config: AwsConfig): AwsFisListTagsForResourceOutput
  startExperiment(input: AwsFisStartExperimentInput!, config: AwsConfig): AwsFisStartExperimentOutput
  stopExperiment(input: AwsFisStopExperimentInput!, config: AwsConfig): AwsFisStopExperimentOutput
  tagResource(input: AwsFisTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsFisUntagResourceInput!, config: AwsConfig): JSON
  updateExperimentTemplate(input: AwsFisUpdateExperimentTemplateInput!, config: AwsConfig): AwsFisUpdateExperimentTemplateOutput
}

type AwsFisCreateExperimentTemplateOutput {
  experimentTemplate: AwsFisS11
}

type AwsFisS11 {
  id: String
  description: String
  targets: JSON
  actions: JSON
  stopConditions: [AwsFisS11StopConditions]
  creationTime: Date
  lastUpdateTime: Date
  roleArn: String
  tags: JSON
}

type AwsFisS11StopConditions {
  source: String
  value: String
}

input AwsFisCreateExperimentTemplateInput {
  clientToken: String!
  description: String!
  stopConditions: [AwsFisCreateExperimentTemplateStopConditionsInput]!
  targets: JSON
  actions: JSON!
  roleArn: String!
  tags: JSON
}

input AwsFisCreateExperimentTemplateStopConditionsInput {
  source: String!
  value: String
}

type AwsFisDeleteExperimentTemplateOutput {
  experimentTemplate: AwsFisS11
}

input AwsFisDeleteExperimentTemplateInput {
  id: String!
}

type AwsFisGetActionOutput {
  action: AwsFisGetActionOutputAction
}

type AwsFisGetActionOutputAction {
  id: String
  description: String
  parameters: JSON
  targets: JSON
  tags: JSON
}

input AwsFisGetActionInput {
  id: String!
}

type AwsFisGetExperimentOutput {
  experiment: AwsFisS1v
}

type AwsFisS1v {
  id: String
  experimentTemplateId: String
  roleArn: String
  state: AwsFisS1w
  targets: JSON
  actions: JSON
  stopConditions: [AwsFisS1vStopConditions]
  creationTime: Date
  startTime: Date
  endTime: Date
  tags: JSON
}

type AwsFisS1w {
  status: String
  reason: String
}

type AwsFisS1vStopConditions {
  source: String
  value: String
}

input AwsFisGetExperimentInput {
  id: String!
}

type AwsFisGetExperimentTemplateOutput {
  experimentTemplate: AwsFisS11
}

input AwsFisGetExperimentTemplateInput {
  id: String!
}

type AwsFisListActionsOutput {
  actions: [AwsFisListActionsOutputActions]
  nextToken: String
}

type AwsFisListActionsOutputActions {
  id: String
  description: String
  targets: JSON
  tags: JSON
}

input AwsFisListActionsInput {
  maxResults: Int
  nextToken: String
}

type AwsFisListExperimentTemplatesOutput {
  experimentTemplates: [AwsFisListExperimentTemplatesOutputExperimentTemplates]
  nextToken: String
}

type AwsFisListExperimentTemplatesOutputExperimentTemplates {
  id: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
  tags: JSON
}

input AwsFisListExperimentTemplatesInput {
  maxResults: Int
  nextToken: String
}

type AwsFisListExperimentsOutput {
  experiments: [AwsFisListExperimentsOutputExperiments]
  nextToken: String
}

type AwsFisListExperimentsOutputExperiments {
  id: String
  experimentTemplateId: String
  state: AwsFisS1w
  creationTime: Date
  tags: JSON
}

input AwsFisListExperimentsInput {
  maxResults: Int
  nextToken: String
}

type AwsFisListTagsForResourceOutput {
  tags: JSON
}

input AwsFisListTagsForResourceInput {
  resourceArn: String!
}

type AwsFisStartExperimentOutput {
  experiment: AwsFisS1v
}

input AwsFisStartExperimentInput {
  clientToken: String!
  experimentTemplateId: String!
  tags: JSON
}

type AwsFisStopExperimentOutput {
  experiment: AwsFisS1v
}

input AwsFisStopExperimentInput {
  id: String!
}

input AwsFisTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsFisUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]
}

type AwsFisUpdateExperimentTemplateOutput {
  experimentTemplate: AwsFisS11
}

input AwsFisUpdateExperimentTemplateInput {
  id: String!
  description: String
  stopConditions: [AwsFisUpdateExperimentTemplateStopConditionsInput]
  targets: JSON
  actions: JSON
  roleArn: String
}

input AwsFisUpdateExperimentTemplateStopConditionsInput {
  source: String!
  value: String
}

"""Amazon Forecast Query Service (2018-06-26)"""
type AwsForecastQueryService {
  queryForecast(input: AwsForecastQueryServiceQueryForecastInput!, config: AwsConfig): AwsForecastQueryServiceQueryForecastOutput
}

type AwsForecastQueryServiceQueryForecastOutput {
  Forecast: AwsForecastQueryServiceQueryForecastOutputForecast
}

type AwsForecastQueryServiceQueryForecastOutputForecast {
  Predictions: JSON
}

input AwsForecastQueryServiceQueryForecastInput {
  ForecastArn: String!
  StartDate: String
  EndDate: String
  Filters: JSON!
  NextToken: String
}

"""Amazon Forecast Service (2018-06-26)"""
type AwsForecastService {
  createDataset(input: AwsForecastServiceCreateDatasetInput!, config: AwsConfig): AwsForecastServiceCreateDatasetOutput
  createDatasetGroup(input: AwsForecastServiceCreateDatasetGroupInput!, config: AwsConfig): AwsForecastServiceCreateDatasetGroupOutput
  createDatasetImportJob(input: AwsForecastServiceCreateDatasetImportJobInput!, config: AwsConfig): AwsForecastServiceCreateDatasetImportJobOutput
  createForecast(input: AwsForecastServiceCreateForecastInput!, config: AwsConfig): AwsForecastServiceCreateForecastOutput
  createForecastExportJob(input: AwsForecastServiceCreateForecastExportJobInput!, config: AwsConfig): AwsForecastServiceCreateForecastExportJobOutput
  createPredictor(input: AwsForecastServiceCreatePredictorInput!, config: AwsConfig): AwsForecastServiceCreatePredictorOutput
  createPredictorBacktestExportJob(input: AwsForecastServiceCreatePredictorBacktestExportJobInput!, config: AwsConfig): AwsForecastServiceCreatePredictorBacktestExportJobOutput
  deleteDataset(input: AwsForecastServiceDeleteDatasetInput!, config: AwsConfig): JSON
  deleteDatasetGroup(input: AwsForecastServiceDeleteDatasetGroupInput!, config: AwsConfig): JSON
  deleteDatasetImportJob(input: AwsForecastServiceDeleteDatasetImportJobInput!, config: AwsConfig): JSON
  deleteForecast(input: AwsForecastServiceDeleteForecastInput!, config: AwsConfig): JSON
  deleteForecastExportJob(input: AwsForecastServiceDeleteForecastExportJobInput!, config: AwsConfig): JSON
  deletePredictor(input: AwsForecastServiceDeletePredictorInput!, config: AwsConfig): JSON
  deletePredictorBacktestExportJob(input: AwsForecastServiceDeletePredictorBacktestExportJobInput!, config: AwsConfig): JSON
  deleteResourceTree(input: AwsForecastServiceDeleteResourceTreeInput!, config: AwsConfig): JSON
  describeDataset(input: AwsForecastServiceDescribeDatasetInput!, config: AwsConfig): AwsForecastServiceDescribeDatasetOutput
  describeDatasetGroup(input: AwsForecastServiceDescribeDatasetGroupInput!, config: AwsConfig): AwsForecastServiceDescribeDatasetGroupOutput
  describeDatasetImportJob(input: AwsForecastServiceDescribeDatasetImportJobInput!, config: AwsConfig): AwsForecastServiceDescribeDatasetImportJobOutput
  describeForecast(input: AwsForecastServiceDescribeForecastInput!, config: AwsConfig): AwsForecastServiceDescribeForecastOutput
  describeForecastExportJob(input: AwsForecastServiceDescribeForecastExportJobInput!, config: AwsConfig): AwsForecastServiceDescribeForecastExportJobOutput
  describePredictor(input: AwsForecastServiceDescribePredictorInput!, config: AwsConfig): AwsForecastServiceDescribePredictorOutput
  describePredictorBacktestExportJob(input: AwsForecastServiceDescribePredictorBacktestExportJobInput!, config: AwsConfig): AwsForecastServiceDescribePredictorBacktestExportJobOutput
  getAccuracyMetrics(input: AwsForecastServiceGetAccuracyMetricsInput!, config: AwsConfig): AwsForecastServiceGetAccuracyMetricsOutput
  listDatasetGroups(input: AwsForecastServiceListDatasetGroupsInput, config: AwsConfig): AwsForecastServiceListDatasetGroupsOutput
  listDatasetImportJobs(input: AwsForecastServiceListDatasetImportJobsInput, config: AwsConfig): AwsForecastServiceListDatasetImportJobsOutput
  listDatasets(input: AwsForecastServiceListDatasetsInput, config: AwsConfig): AwsForecastServiceListDatasetsOutput
  listForecastExportJobs(input: AwsForecastServiceListForecastExportJobsInput, config: AwsConfig): AwsForecastServiceListForecastExportJobsOutput
  listForecasts(input: AwsForecastServiceListForecastsInput, config: AwsConfig): AwsForecastServiceListForecastsOutput
  listPredictorBacktestExportJobs(input: AwsForecastServiceListPredictorBacktestExportJobsInput, config: AwsConfig): AwsForecastServiceListPredictorBacktestExportJobsOutput
  listPredictors(input: AwsForecastServiceListPredictorsInput, config: AwsConfig): AwsForecastServiceListPredictorsOutput
  listTagsForResource(input: AwsForecastServiceListTagsForResourceInput!, config: AwsConfig): AwsForecastServiceListTagsForResourceOutput
  stopResource(input: AwsForecastServiceStopResourceInput!, config: AwsConfig): JSON
  tagResource(input: AwsForecastServiceTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsForecastServiceUntagResourceInput!, config: AwsConfig): JSON
  updateDatasetGroup(input: AwsForecastServiceUpdateDatasetGroupInput!, config: AwsConfig): JSON
}

type AwsForecastServiceCreateDatasetOutput {
  DatasetArn: String
}

input AwsForecastServiceCreateDatasetInput {
  DatasetName: String!
  Domain: String!
  DatasetType: String!
  DataFrequency: String
  Schema: AwsForecastServiceS6Input!
  EncryptionConfig: AwsForecastServiceSaInput
  Tags: [AwsForecastServiceSdInput]
}

input AwsForecastServiceS6Input {
  Attributes: [AwsForecastServiceS6AttributesInput]
}

input AwsForecastServiceS6AttributesInput {
  AttributeName: String
  AttributeType: String
}

input AwsForecastServiceSaInput {
  RoleArn: String!
  KMSKeyArn: String!
}

input AwsForecastServiceSdInput {
  Key: String!
  Value: String!
}

type AwsForecastServiceCreateDatasetGroupOutput {
  DatasetGroupArn: String
}

input AwsForecastServiceCreateDatasetGroupInput {
  DatasetGroupName: String!
  Domain: String!
  DatasetArns: [String]
  Tags: [AwsForecastServiceSdInput]
}

type AwsForecastServiceCreateDatasetImportJobOutput {
  DatasetImportJobArn: String
}

input AwsForecastServiceCreateDatasetImportJobInput {
  DatasetImportJobName: String!
  DatasetArn: String!
  DataSource: AwsForecastServiceSmInput!
  TimestampFormat: String
  TimeZone: String
  UseGeolocationForTimeZone: Boolean
  GeolocationFormat: String
  Tags: [AwsForecastServiceSdInput]
}

input AwsForecastServiceSmInput {
  S3Config: AwsForecastServiceSnInput!
}

input AwsForecastServiceSnInput {
  Path: String!
  RoleArn: String!
  KMSKeyArn: String
}

type AwsForecastServiceCreateForecastOutput {
  ForecastArn: String
}

input AwsForecastServiceCreateForecastInput {
  ForecastName: String!
  PredictorArn: String!
  ForecastTypes: [String]
  Tags: [AwsForecastServiceSdInput]
}

type AwsForecastServiceCreateForecastExportJobOutput {
  ForecastExportJobArn: String
}

input AwsForecastServiceCreateForecastExportJobInput {
  ForecastExportJobName: String!
  ForecastArn: String!
  Destination: AwsForecastServiceSzInput!
  Tags: [AwsForecastServiceSdInput]
}

input AwsForecastServiceSzInput {
  S3Config: AwsForecastServiceSnInput!
}

type AwsForecastServiceCreatePredictorOutput {
  PredictorArn: String
}

input AwsForecastServiceCreatePredictorInput {
  PredictorName: String!
  AlgorithmArn: String
  ForecastHorizon: Int!
  ForecastTypes: [String]
  PerformAutoML: Boolean
  AutoMLOverrideStrategy: String
  PerformHPO: Boolean
  TrainingParameters: JSON
  EvaluationParameters: AwsForecastServiceS18Input
  HPOConfig: AwsForecastServiceS19Input
  InputDataConfig: AwsForecastServiceS1lInput!
  FeaturizationConfig: AwsForecastServiceS1oInput!
  EncryptionConfig: AwsForecastServiceSaInput
  Tags: [AwsForecastServiceSdInput]
}

input AwsForecastServiceS18Input {
  NumberOfBacktestWindows: Int
  BackTestWindowOffset: Int
}

input AwsForecastServiceS19Input {
  ParameterRanges: AwsForecastServiceS19ParameterRangesInput
}

input AwsForecastServiceS19ParameterRangesInput {
  CategoricalParameterRanges: [AwsForecastServiceS19ParameterRangesCategoricalParameterRangesInput]
  ContinuousParameterRanges: [AwsForecastServiceS19ParameterRangesContinuousParameterRangesInput]
  IntegerParameterRanges: [AwsForecastServiceS19ParameterRangesIntegerParameterRangesInput]
}

input AwsForecastServiceS19ParameterRangesCategoricalParameterRangesInput {
  Name: String!
  Values: [String]!
}

input AwsForecastServiceS19ParameterRangesContinuousParameterRangesInput {
  Name: String!
  MaxValue: JSON!
  MinValue: JSON!
  ScalingType: String
}

input AwsForecastServiceS19ParameterRangesIntegerParameterRangesInput {
  Name: String!
  MaxValue: Int!
  MinValue: Int!
  ScalingType: String
}

input AwsForecastServiceS1lInput {
  DatasetGroupArn: String!
  SupplementaryFeatures: [AwsForecastServiceS1lSupplementaryFeaturesInput]
}

input AwsForecastServiceS1lSupplementaryFeaturesInput {
  Name: String!
  Value: String!
}

input AwsForecastServiceS1oInput {
  ForecastFrequency: String!
  ForecastDimensions: [String]
  Featurizations: [AwsForecastServiceS1oFeaturizationsInput]
}

input AwsForecastServiceS1oFeaturizationsInput {
  AttributeName: String!
  FeaturizationPipeline: [AwsForecastServiceS1oFeaturizationsFeaturizationPipelineInput]
}

input AwsForecastServiceS1oFeaturizationsFeaturizationPipelineInput {
  FeaturizationMethodName: String!
  FeaturizationMethodParameters: JSON
}

type AwsForecastServiceCreatePredictorBacktestExportJobOutput {
  PredictorBacktestExportJobArn: String
}

input AwsForecastServiceCreatePredictorBacktestExportJobInput {
  PredictorBacktestExportJobName: String!
  PredictorArn: String!
  Destination: AwsForecastServiceSzInput!
  Tags: [AwsForecastServiceSdInput]
}

input AwsForecastServiceDeleteDatasetInput {
  DatasetArn: String!
}

input AwsForecastServiceDeleteDatasetGroupInput {
  DatasetGroupArn: String!
}

input AwsForecastServiceDeleteDatasetImportJobInput {
  DatasetImportJobArn: String!
}

input AwsForecastServiceDeleteForecastInput {
  ForecastArn: String!
}

input AwsForecastServiceDeleteForecastExportJobInput {
  ForecastExportJobArn: String!
}

input AwsForecastServiceDeletePredictorInput {
  PredictorArn: String!
}

input AwsForecastServiceDeletePredictorBacktestExportJobInput {
  PredictorBacktestExportJobArn: String!
}

input AwsForecastServiceDeleteResourceTreeInput {
  ResourceArn: String!
}

type AwsForecastServiceDescribeDatasetOutput {
  DatasetArn: String
  DatasetName: String
  Domain: String
  DatasetType: String
  DataFrequency: String
  Schema: AwsForecastServiceS6
  EncryptionConfig: AwsForecastServiceSa
  Status: String
  CreationTime: Date
  LastModificationTime: Date
}

type AwsForecastServiceS6 {
  Attributes: [AwsForecastServiceS6Attributes]
}

type AwsForecastServiceS6Attributes {
  AttributeName: String
  AttributeType: String
}

type AwsForecastServiceSa {
  RoleArn: String!
  KMSKeyArn: String!
}

input AwsForecastServiceDescribeDatasetInput {
  DatasetArn: String!
}

type AwsForecastServiceDescribeDatasetGroupOutput {
  DatasetGroupName: String
  DatasetGroupArn: String
  DatasetArns: [String]
  Domain: String
  Status: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceDescribeDatasetGroupInput {
  DatasetGroupArn: String!
}

type AwsForecastServiceDescribeDatasetImportJobOutput {
  DatasetImportJobName: String
  DatasetImportJobArn: String
  DatasetArn: String
  TimestampFormat: String
  TimeZone: String
  UseGeolocationForTimeZone: Boolean
  GeolocationFormat: String
  DataSource: AwsForecastServiceSm
  EstimatedTimeRemainingInMinutes: JSON
  FieldStatistics: JSON
  DataSize: JSON
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

type AwsForecastServiceSm {
  S3Config: AwsForecastServiceSn!
}

type AwsForecastServiceSn {
  Path: String!
  RoleArn: String!
  KMSKeyArn: String
}

input AwsForecastServiceDescribeDatasetImportJobInput {
  DatasetImportJobArn: String!
}

type AwsForecastServiceDescribeForecastOutput {
  ForecastArn: String
  ForecastName: String
  ForecastTypes: [String]
  PredictorArn: String
  DatasetGroupArn: String
  EstimatedTimeRemainingInMinutes: JSON
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceDescribeForecastInput {
  ForecastArn: String!
}

type AwsForecastServiceDescribeForecastExportJobOutput {
  ForecastExportJobArn: String
  ForecastExportJobName: String
  ForecastArn: String
  Destination: AwsForecastServiceSz
  Message: String
  Status: String
  CreationTime: Date
  LastModificationTime: Date
}

type AwsForecastServiceSz {
  S3Config: AwsForecastServiceSn!
}

input AwsForecastServiceDescribeForecastExportJobInput {
  ForecastExportJobArn: String!
}

type AwsForecastServiceDescribePredictorOutput {
  PredictorArn: String
  PredictorName: String
  AlgorithmArn: String
  ForecastHorizon: Int
  ForecastTypes: [String]
  PerformAutoML: Boolean
  AutoMLOverrideStrategy: String
  PerformHPO: Boolean
  TrainingParameters: JSON
  EvaluationParameters: AwsForecastServiceS18
  HPOConfig: AwsForecastServiceS19
  InputDataConfig: AwsForecastServiceS1l
  FeaturizationConfig: AwsForecastServiceS1o
  EncryptionConfig: AwsForecastServiceSa
  PredictorExecutionDetails: AwsForecastServiceDescribePredictorOutputPredictorExecutionDetails
  EstimatedTimeRemainingInMinutes: JSON
  DatasetImportJobArns: [String]
  AutoMLAlgorithmArns: [String]
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

type AwsForecastServiceS18 {
  NumberOfBacktestWindows: Int
  BackTestWindowOffset: Int
}

type AwsForecastServiceS19 {
  ParameterRanges: AwsForecastServiceS19ParameterRanges
}

type AwsForecastServiceS19ParameterRanges {
  CategoricalParameterRanges: [AwsForecastServiceS19ParameterRangesCategoricalParameterRanges]
  ContinuousParameterRanges: [AwsForecastServiceS19ParameterRangesContinuousParameterRanges]
  IntegerParameterRanges: [AwsForecastServiceS19ParameterRangesIntegerParameterRanges]
}

type AwsForecastServiceS19ParameterRangesCategoricalParameterRanges {
  Name: String!
  Values: [String]!
}

type AwsForecastServiceS19ParameterRangesContinuousParameterRanges {
  Name: String!
  MaxValue: JSON!
  MinValue: JSON!
  ScalingType: String
}

type AwsForecastServiceS19ParameterRangesIntegerParameterRanges {
  Name: String!
  MaxValue: Int!
  MinValue: Int!
  ScalingType: String
}

type AwsForecastServiceS1l {
  DatasetGroupArn: String!
  SupplementaryFeatures: [AwsForecastServiceS1lSupplementaryFeatures]
}

type AwsForecastServiceS1lSupplementaryFeatures {
  Name: String!
  Value: String!
}

type AwsForecastServiceS1o {
  ForecastFrequency: String!
  ForecastDimensions: [String]
  Featurizations: [AwsForecastServiceS1oFeaturizations]
}

type AwsForecastServiceS1oFeaturizations {
  AttributeName: String!
  FeaturizationPipeline: [AwsForecastServiceS1oFeaturizationsFeaturizationPipeline]
}

type AwsForecastServiceS1oFeaturizationsFeaturizationPipeline {
  FeaturizationMethodName: String!
  FeaturizationMethodParameters: JSON
}

type AwsForecastServiceDescribePredictorOutputPredictorExecutionDetails {
  PredictorExecutions: [AwsForecastServiceDescribePredictorOutputPredictorExecutionDetailsPredictorExecutions]
}

type AwsForecastServiceDescribePredictorOutputPredictorExecutionDetailsPredictorExecutions {
  AlgorithmArn: String
  TestWindows: [AwsForecastServiceDescribePredictorOutputPredictorExecutionDetailsPredictorExecutionsTestWindows]
}

type AwsForecastServiceDescribePredictorOutputPredictorExecutionDetailsPredictorExecutionsTestWindows {
  TestWindowStart: Date
  TestWindowEnd: Date
  Status: String
  Message: String
}

input AwsForecastServiceDescribePredictorInput {
  PredictorArn: String!
}

type AwsForecastServiceDescribePredictorBacktestExportJobOutput {
  PredictorBacktestExportJobArn: String
  PredictorBacktestExportJobName: String
  PredictorArn: String
  Destination: AwsForecastServiceSz
  Message: String
  Status: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceDescribePredictorBacktestExportJobInput {
  PredictorBacktestExportJobArn: String!
}

type AwsForecastServiceGetAccuracyMetricsOutput {
  PredictorEvaluationResults: [AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResults]
  AutoMLOverrideStrategy: String
}

type AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResults {
  AlgorithmArn: String
  TestWindows: [AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindows]
}

type AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindows {
  TestWindowStart: Date
  TestWindowEnd: Date
  ItemCount: Int
  EvaluationType: String
  Metrics: AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetrics
}

type AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetrics {
  RMSE: JSON
  WeightedQuantileLosses: [AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetricsWeightedQuantileLosses]
  ErrorMetrics: [AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetricsErrorMetrics]
}

type AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetricsWeightedQuantileLosses {
  Quantile: JSON
  LossValue: JSON
}

type AwsForecastServiceGetAccuracyMetricsOutputPredictorEvaluationResultsTestWindowsMetricsErrorMetrics {
  ForecastType: String
  WAPE: JSON
  RMSE: JSON
}

input AwsForecastServiceGetAccuracyMetricsInput {
  PredictorArn: String!
}

type AwsForecastServiceListDatasetGroupsOutput {
  DatasetGroups: [AwsForecastServiceListDatasetGroupsOutputDatasetGroups]
  NextToken: String
}

type AwsForecastServiceListDatasetGroupsOutputDatasetGroups {
  DatasetGroupArn: String
  DatasetGroupName: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListDatasetGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsForecastServiceListDatasetImportJobsOutput {
  DatasetImportJobs: [AwsForecastServiceListDatasetImportJobsOutputDatasetImportJobs]
  NextToken: String
}

type AwsForecastServiceListDatasetImportJobsOutputDatasetImportJobs {
  DatasetImportJobArn: String
  DatasetImportJobName: String
  DataSource: AwsForecastServiceSm
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListDatasetImportJobsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsForecastServiceS3hInput]
}

input AwsForecastServiceS3hInput {
  Key: String!
  Value: String!
  Condition: String!
}

type AwsForecastServiceListDatasetsOutput {
  Datasets: [AwsForecastServiceListDatasetsOutputDatasets]
  NextToken: String
}

type AwsForecastServiceListDatasetsOutputDatasets {
  DatasetArn: String
  DatasetName: String
  DatasetType: String
  Domain: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListDatasetsInput {
  NextToken: String
  MaxResults: Int
}

type AwsForecastServiceListForecastExportJobsOutput {
  ForecastExportJobs: [AwsForecastServiceListForecastExportJobsOutputForecastExportJobs]
  NextToken: String
}

type AwsForecastServiceListForecastExportJobsOutputForecastExportJobs {
  ForecastExportJobArn: String
  ForecastExportJobName: String
  Destination: AwsForecastServiceSz
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListForecastExportJobsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsForecastServiceS3hInput]
}

type AwsForecastServiceListForecastsOutput {
  Forecasts: [AwsForecastServiceListForecastsOutputForecasts]
  NextToken: String
}

type AwsForecastServiceListForecastsOutputForecasts {
  ForecastArn: String
  ForecastName: String
  PredictorArn: String
  DatasetGroupArn: String
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListForecastsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsForecastServiceS3hInput]
}

type AwsForecastServiceListPredictorBacktestExportJobsOutput {
  PredictorBacktestExportJobs: [AwsForecastServiceListPredictorBacktestExportJobsOutputPredictorBacktestExportJobs]
  NextToken: String
}

type AwsForecastServiceListPredictorBacktestExportJobsOutputPredictorBacktestExportJobs {
  PredictorBacktestExportJobArn: String
  PredictorBacktestExportJobName: String
  Destination: AwsForecastServiceSz
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListPredictorBacktestExportJobsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsForecastServiceS3hInput]
}

type AwsForecastServiceListPredictorsOutput {
  Predictors: [AwsForecastServiceListPredictorsOutputPredictors]
  NextToken: String
}

type AwsForecastServiceListPredictorsOutputPredictors {
  PredictorArn: String
  PredictorName: String
  DatasetGroupArn: String
  Status: String
  Message: String
  CreationTime: Date
  LastModificationTime: Date
}

input AwsForecastServiceListPredictorsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsForecastServiceS3hInput]
}

type AwsForecastServiceListTagsForResourceOutput {
  Tags: [AwsForecastServiceSd]
}

type AwsForecastServiceSd {
  Key: String!
  Value: String!
}

input AwsForecastServiceListTagsForResourceInput {
  ResourceArn: String!
}

input AwsForecastServiceStopResourceInput {
  ResourceArn: String!
}

input AwsForecastServiceTagResourceInput {
  ResourceArn: String!
  Tags: [AwsForecastServiceSdInput]!
}

input AwsForecastServiceUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsForecastServiceUpdateDatasetGroupInput {
  DatasetGroupArn: String!
  DatasetArns: [String]!
}

"""Amazon Fraud Detector (2019-11-15)"""
type AwsFraudDetector {
  batchCreateVariable(input: AwsFraudDetectorBatchCreateVariableInput!, config: AwsConfig): AwsFraudDetectorBatchCreateVariableOutput
  batchGetVariable(input: AwsFraudDetectorBatchGetVariableInput!, config: AwsConfig): AwsFraudDetectorBatchGetVariableOutput
  cancelBatchPredictionJob(input: AwsFraudDetectorCancelBatchPredictionJobInput!, config: AwsConfig): JSON
  createBatchPredictionJob(input: AwsFraudDetectorCreateBatchPredictionJobInput!, config: AwsConfig): JSON
  createDetectorVersion(input: AwsFraudDetectorCreateDetectorVersionInput!, config: AwsConfig): AwsFraudDetectorCreateDetectorVersionOutput
  createModel(input: AwsFraudDetectorCreateModelInput!, config: AwsConfig): JSON
  createModelVersion(input: AwsFraudDetectorCreateModelVersionInput!, config: AwsConfig): AwsFraudDetectorCreateModelVersionOutput
  createRule(input: AwsFraudDetectorCreateRuleInput!, config: AwsConfig): AwsFraudDetectorCreateRuleOutput
  createVariable(input: AwsFraudDetectorCreateVariableInput!, config: AwsConfig): JSON
  deleteBatchPredictionJob(input: AwsFraudDetectorDeleteBatchPredictionJobInput!, config: AwsConfig): JSON
  deleteDetector(input: AwsFraudDetectorDeleteDetectorInput!, config: AwsConfig): JSON
  deleteDetectorVersion(input: AwsFraudDetectorDeleteDetectorVersionInput!, config: AwsConfig): JSON
  deleteEntityType(input: AwsFraudDetectorDeleteEntityTypeInput!, config: AwsConfig): JSON
  deleteEvent(input: AwsFraudDetectorDeleteEventInput!, config: AwsConfig): JSON
  deleteEventType(input: AwsFraudDetectorDeleteEventTypeInput!, config: AwsConfig): JSON
  deleteExternalModel(input: AwsFraudDetectorDeleteExternalModelInput!, config: AwsConfig): JSON
  deleteLabel(input: AwsFraudDetectorDeleteLabelInput!, config: AwsConfig): JSON
  deleteModel(input: AwsFraudDetectorDeleteModelInput!, config: AwsConfig): JSON
  deleteModelVersion(input: AwsFraudDetectorDeleteModelVersionInput!, config: AwsConfig): JSON
  deleteOutcome(input: AwsFraudDetectorDeleteOutcomeInput!, config: AwsConfig): JSON
  deleteRule(input: AwsFraudDetectorDeleteRuleInput!, config: AwsConfig): JSON
  deleteVariable(input: AwsFraudDetectorDeleteVariableInput!, config: AwsConfig): JSON
  describeDetector(input: AwsFraudDetectorDescribeDetectorInput!, config: AwsConfig): AwsFraudDetectorDescribeDetectorOutput
  describeModelVersions(input: AwsFraudDetectorDescribeModelVersionsInput, config: AwsConfig): AwsFraudDetectorDescribeModelVersionsOutput
  getBatchPredictionJobs(input: AwsFraudDetectorGetBatchPredictionJobsInput, config: AwsConfig): AwsFraudDetectorGetBatchPredictionJobsOutput
  getDetectorVersion(input: AwsFraudDetectorGetDetectorVersionInput!, config: AwsConfig): AwsFraudDetectorGetDetectorVersionOutput
  getDetectors(input: AwsFraudDetectorGetDetectorsInput, config: AwsConfig): AwsFraudDetectorGetDetectorsOutput
  getEntityTypes(input: AwsFraudDetectorGetEntityTypesInput, config: AwsConfig): AwsFraudDetectorGetEntityTypesOutput
  getEventPrediction(input: AwsFraudDetectorGetEventPredictionInput!, config: AwsConfig): AwsFraudDetectorGetEventPredictionOutput
  getEventTypes(input: AwsFraudDetectorGetEventTypesInput, config: AwsConfig): AwsFraudDetectorGetEventTypesOutput
  getExternalModels(input: AwsFraudDetectorGetExternalModelsInput, config: AwsConfig): AwsFraudDetectorGetExternalModelsOutput
  getKMSEncryptionKey(config: AwsConfig): AwsFraudDetectorGetKMSEncryptionKeyOutput
  getLabels(input: AwsFraudDetectorGetLabelsInput, config: AwsConfig): AwsFraudDetectorGetLabelsOutput
  getModelVersion(input: AwsFraudDetectorGetModelVersionInput!, config: AwsConfig): AwsFraudDetectorGetModelVersionOutput
  getModels(input: AwsFraudDetectorGetModelsInput, config: AwsConfig): AwsFraudDetectorGetModelsOutput
  getOutcomes(input: AwsFraudDetectorGetOutcomesInput, config: AwsConfig): AwsFraudDetectorGetOutcomesOutput
  getRules(input: AwsFraudDetectorGetRulesInput!, config: AwsConfig): AwsFraudDetectorGetRulesOutput
  getVariables(input: AwsFraudDetectorGetVariablesInput, config: AwsConfig): AwsFraudDetectorGetVariablesOutput
  listTagsForResource(input: AwsFraudDetectorListTagsForResourceInput!, config: AwsConfig): AwsFraudDetectorListTagsForResourceOutput
  putDetector(input: AwsFraudDetectorPutDetectorInput!, config: AwsConfig): JSON
  putEntityType(input: AwsFraudDetectorPutEntityTypeInput!, config: AwsConfig): JSON
  putEventType(input: AwsFraudDetectorPutEventTypeInput!, config: AwsConfig): JSON
  putExternalModel(input: AwsFraudDetectorPutExternalModelInput!, config: AwsConfig): JSON
  putKMSEncryptionKey(input: AwsFraudDetectorPutKMSEncryptionKeyInput!, config: AwsConfig): JSON
  putLabel(input: AwsFraudDetectorPutLabelInput!, config: AwsConfig): JSON
  putOutcome(input: AwsFraudDetectorPutOutcomeInput!, config: AwsConfig): JSON
  tagResource(input: AwsFraudDetectorTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsFraudDetectorUntagResourceInput!, config: AwsConfig): JSON
  updateDetectorVersion(input: AwsFraudDetectorUpdateDetectorVersionInput!, config: AwsConfig): JSON
  updateDetectorVersionMetadata(input: AwsFraudDetectorUpdateDetectorVersionMetadataInput!, config: AwsConfig): JSON
  updateDetectorVersionStatus(input: AwsFraudDetectorUpdateDetectorVersionStatusInput!, config: AwsConfig): JSON
  updateModel(input: AwsFraudDetectorUpdateModelInput!, config: AwsConfig): JSON
  updateModelVersion(input: AwsFraudDetectorUpdateModelVersionInput!, config: AwsConfig): AwsFraudDetectorUpdateModelVersionOutput
  updateModelVersionStatus(input: AwsFraudDetectorUpdateModelVersionStatusInput!, config: AwsConfig): JSON
  updateRuleMetadata(input: AwsFraudDetectorUpdateRuleMetadataInput!, config: AwsConfig): JSON
  updateRuleVersion(input: AwsFraudDetectorUpdateRuleVersionInput!, config: AwsConfig): AwsFraudDetectorUpdateRuleVersionOutput
  updateVariable(input: AwsFraudDetectorUpdateVariableInput!, config: AwsConfig): JSON
}

type AwsFraudDetectorBatchCreateVariableOutput {
  errors: [AwsFraudDetectorBatchCreateVariableOutputErrors]
}

type AwsFraudDetectorBatchCreateVariableOutputErrors {
  name: String
  code: Int
  message: String
}

input AwsFraudDetectorBatchCreateVariableInput {
  variableEntries: [AwsFraudDetectorBatchCreateVariableVariableEntriesInput]!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorBatchCreateVariableVariableEntriesInput {
  name: String
  dataType: String
  dataSource: String
  defaultValue: String
  description: String
  variableType: String
}

input AwsFraudDetectorS5Input {
  key: String!
  value: String!
}

type AwsFraudDetectorBatchGetVariableOutput {
  variables: [AwsFraudDetectorSg]
  errors: [AwsFraudDetectorBatchGetVariableOutputErrors]
}

type AwsFraudDetectorSg {
  name: String
  dataType: String
  dataSource: String
  defaultValue: String
  description: String
  variableType: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

type AwsFraudDetectorBatchGetVariableOutputErrors {
  name: String
  code: Int
  message: String
}

input AwsFraudDetectorBatchGetVariableInput {
  names: [String]!
}

input AwsFraudDetectorCancelBatchPredictionJobInput {
  jobId: String!
}

input AwsFraudDetectorCreateBatchPredictionJobInput {
  jobId: String!
  inputPath: String!
  outputPath: String!
  eventTypeName: String!
  detectorName: String!
  detectorVersion: String
  iamRoleArn: String!
  tags: [AwsFraudDetectorS5Input]
}

type AwsFraudDetectorCreateDetectorVersionOutput {
  detectorId: String
  detectorVersionId: String
  status: String
}

input AwsFraudDetectorCreateDetectorVersionInput {
  detectorId: String!
  description: String
  externalModelEndpoints: [String]
  rules: [AwsFraudDetectorS10Input]!
  modelVersions: [AwsFraudDetectorS12Input]
  ruleExecutionMode: String
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorS10Input {
  detectorId: String!
  ruleId: String!
  ruleVersion: String!
}

input AwsFraudDetectorS12Input {
  modelId: String!
  modelType: String!
  modelVersionNumber: String!
  arn: String
}

input AwsFraudDetectorCreateModelInput {
  modelId: String!
  modelType: String!
  description: String
  eventTypeName: String!
  tags: [AwsFraudDetectorS5Input]
}

type AwsFraudDetectorCreateModelVersionOutput {
  modelId: String
  modelType: String
  modelVersionNumber: String
  status: String
}

input AwsFraudDetectorCreateModelVersionInput {
  modelId: String!
  modelType: String!
  trainingDataSource: String!
  trainingDataSchema: AwsFraudDetectorS1dInput!
  externalEventsDetail: AwsFraudDetectorS1gInput
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorS1dInput {
  modelVariables: [String]!
  labelSchema: AwsFraudDetectorS1dLabelSchemaInput!
}

input AwsFraudDetectorS1dLabelSchemaInput {
  labelMapper: JSON!
}

input AwsFraudDetectorS1gInput {
  dataLocation: String!
  dataAccessRoleArn: String!
}

type AwsFraudDetectorCreateRuleOutput {
  rule: AwsFraudDetectorS10
}

type AwsFraudDetectorS10 {
  detectorId: String!
  ruleId: String!
  ruleVersion: String!
}

input AwsFraudDetectorCreateRuleInput {
  ruleId: String!
  detectorId: String!
  description: String
  expression: String!
  language: String!
  outcomes: [String]!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorCreateVariableInput {
  name: String!
  dataType: String!
  dataSource: String!
  defaultValue: String!
  description: String
  variableType: String
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorDeleteBatchPredictionJobInput {
  jobId: String!
}

input AwsFraudDetectorDeleteDetectorInput {
  detectorId: String!
}

input AwsFraudDetectorDeleteDetectorVersionInput {
  detectorId: String!
  detectorVersionId: String!
}

input AwsFraudDetectorDeleteEntityTypeInput {
  name: String!
}

input AwsFraudDetectorDeleteEventInput {
  eventId: String!
  eventTypeName: String!
}

input AwsFraudDetectorDeleteEventTypeInput {
  name: String!
}

input AwsFraudDetectorDeleteExternalModelInput {
  modelEndpoint: String!
}

input AwsFraudDetectorDeleteLabelInput {
  name: String!
}

input AwsFraudDetectorDeleteModelInput {
  modelId: String!
  modelType: String!
}

input AwsFraudDetectorDeleteModelVersionInput {
  modelId: String!
  modelType: String!
  modelVersionNumber: String!
}

input AwsFraudDetectorDeleteOutcomeInput {
  name: String!
}

input AwsFraudDetectorDeleteRuleInput {
  rule: AwsFraudDetectorS10Input!
}

input AwsFraudDetectorDeleteVariableInput {
  name: String!
}

type AwsFraudDetectorDescribeDetectorOutput {
  detectorId: String
  detectorVersionSummaries: [AwsFraudDetectorDescribeDetectorOutputDetectorVersionSummaries]
  nextToken: String
  arn: String
}

type AwsFraudDetectorDescribeDetectorOutputDetectorVersionSummaries {
  detectorVersionId: String
  status: String
  description: String
  lastUpdatedTime: String
}

input AwsFraudDetectorDescribeDetectorInput {
  detectorId: String!
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorDescribeModelVersionsOutput {
  modelVersionDetails: [AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetails]
  nextToken: String
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetails {
  modelId: String
  modelType: String
  modelVersionNumber: String
  status: String
  trainingDataSource: String
  trainingDataSchema: AwsFraudDetectorS1d
  externalEventsDetail: AwsFraudDetectorS1g
  trainingResult: AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResult
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

type AwsFraudDetectorS1d {
  modelVariables: [String]!
  labelSchema: AwsFraudDetectorS1dLabelSchema!
}

type AwsFraudDetectorS1dLabelSchema {
  labelMapper: JSON!
}

type AwsFraudDetectorS1g {
  dataLocation: String!
  dataAccessRoleArn: String!
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResult {
  dataValidationMetrics: AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetrics
  trainingMetrics: AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultTrainingMetrics
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetrics {
  fileLevelMessages: [AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetricsFileLevelMessages]
  fieldLevelMessages: [AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetricsFieldLevelMessages]
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetricsFileLevelMessages {
  title: String
  content: String
  type: String
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultDataValidationMetricsFieldLevelMessages {
  fieldName: String
  identifier: String
  title: String
  content: String
  type: String
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultTrainingMetrics {
  auc: Float
  metricDataPoints: [AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultTrainingMetricsMetricDataPoints]
}

type AwsFraudDetectorDescribeModelVersionsOutputModelVersionDetailsTrainingResultTrainingMetricsMetricDataPoints {
  fpr: Float
  precision: Float
  tpr: Float
  threshold: Float
}

input AwsFraudDetectorDescribeModelVersionsInput {
  modelId: String
  modelVersionNumber: String
  modelType: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetBatchPredictionJobsOutput {
  batchPredictions: [AwsFraudDetectorGetBatchPredictionJobsOutputBatchPredictions]
  nextToken: String
}

type AwsFraudDetectorGetBatchPredictionJobsOutputBatchPredictions {
  jobId: String
  status: String
  failureReason: String
  startTime: String
  completionTime: String
  lastHeartbeatTime: String
  inputPath: String
  outputPath: String
  eventTypeName: String
  detectorName: String
  detectorVersion: String
  iamRoleArn: String
  arn: String
  processedRecordsCount: Int
  totalRecordsCount: Int
}

input AwsFraudDetectorGetBatchPredictionJobsInput {
  jobId: String
  maxResults: Int
  nextToken: String
}

type AwsFraudDetectorGetDetectorVersionOutput {
  detectorId: String
  detectorVersionId: String
  description: String
  externalModelEndpoints: [String]
  modelVersions: [AwsFraudDetectorS12]
  rules: [AwsFraudDetectorS10]
  status: String
  lastUpdatedTime: String
  createdTime: String
  ruleExecutionMode: String
  arn: String
}

type AwsFraudDetectorS12 {
  modelId: String!
  modelType: String!
  modelVersionNumber: String!
  arn: String
}

input AwsFraudDetectorGetDetectorVersionInput {
  detectorId: String!
  detectorVersionId: String!
}

type AwsFraudDetectorGetDetectorsOutput {
  detectors: [AwsFraudDetectorGetDetectorsOutputDetectors]
  nextToken: String
}

type AwsFraudDetectorGetDetectorsOutputDetectors {
  detectorId: String
  description: String
  eventTypeName: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetDetectorsInput {
  detectorId: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetEntityTypesOutput {
  entityTypes: [AwsFraudDetectorGetEntityTypesOutputEntityTypes]
  nextToken: String
}

type AwsFraudDetectorGetEntityTypesOutputEntityTypes {
  name: String
  description: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetEntityTypesInput {
  name: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetEventPredictionOutput {
  modelScores: [AwsFraudDetectorGetEventPredictionOutputModelScores]
  ruleResults: [AwsFraudDetectorGetEventPredictionOutputRuleResults]
}

type AwsFraudDetectorGetEventPredictionOutputModelScores {
  modelVersion: AwsFraudDetectorS12
  scores: JSON
}

type AwsFraudDetectorGetEventPredictionOutputRuleResults {
  ruleId: String
  outcomes: [String]
}

input AwsFraudDetectorGetEventPredictionInput {
  detectorId: String!
  detectorVersionId: String
  eventId: String!
  eventTypeName: String!
  entities: [AwsFraudDetectorGetEventPredictionEntitiesInput]!
  eventTimestamp: String!
  eventVariables: JSON!
  externalModelEndpointDataBlobs: JSON
}

input AwsFraudDetectorGetEventPredictionEntitiesInput {
  entityType: String!
  entityId: String!
}

type AwsFraudDetectorGetEventTypesOutput {
  eventTypes: [AwsFraudDetectorGetEventTypesOutputEventTypes]
  nextToken: String
}

type AwsFraudDetectorGetEventTypesOutputEventTypes {
  name: String
  description: String
  eventVariables: [String]
  labels: [String]
  entityTypes: [String]
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetEventTypesInput {
  name: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetExternalModelsOutput {
  externalModels: [AwsFraudDetectorGetExternalModelsOutputExternalModels]
  nextToken: String
}

type AwsFraudDetectorGetExternalModelsOutputExternalModels {
  modelEndpoint: String
  modelSource: String
  invokeModelEndpointRoleArn: String
  inputConfiguration: AwsFraudDetectorS4b
  outputConfiguration: AwsFraudDetectorS4e
  modelEndpointStatus: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

type AwsFraudDetectorS4b {
  eventTypeName: String
  format: String
  useEventVariables: Boolean!
  jsonInputTemplate: String
  csvInputTemplate: String
}

type AwsFraudDetectorS4e {
  format: String!
  jsonKeyToVariableMap: JSON
  csvIndexToVariableMap: JSON
}

input AwsFraudDetectorGetExternalModelsInput {
  modelEndpoint: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetKMSEncryptionKeyOutput {
  kmsKey: AwsFraudDetectorGetKMSEncryptionKeyOutputKmsKey
}

type AwsFraudDetectorGetKMSEncryptionKeyOutputKmsKey {
  kmsEncryptionKeyArn: String
}

type AwsFraudDetectorGetLabelsOutput {
  labels: [AwsFraudDetectorGetLabelsOutputLabels]
  nextToken: String
}

type AwsFraudDetectorGetLabelsOutputLabels {
  name: String
  description: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetLabelsInput {
  name: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetModelVersionOutput {
  modelId: String
  modelType: String
  modelVersionNumber: String
  trainingDataSource: String
  trainingDataSchema: AwsFraudDetectorS1d
  externalEventsDetail: AwsFraudDetectorS1g
  status: String
  arn: String
}

input AwsFraudDetectorGetModelVersionInput {
  modelId: String!
  modelType: String!
  modelVersionNumber: String!
}

type AwsFraudDetectorGetModelsOutput {
  nextToken: String
  models: [AwsFraudDetectorGetModelsOutputModels]
}

type AwsFraudDetectorGetModelsOutputModels {
  modelId: String
  modelType: String
  description: String
  eventTypeName: String
  createdTime: String
  lastUpdatedTime: String
  arn: String
}

input AwsFraudDetectorGetModelsInput {
  modelId: String
  modelType: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetOutcomesOutput {
  outcomes: [AwsFraudDetectorGetOutcomesOutputOutcomes]
  nextToken: String
}

type AwsFraudDetectorGetOutcomesOutputOutcomes {
  name: String
  description: String
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetOutcomesInput {
  name: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetRulesOutput {
  ruleDetails: [AwsFraudDetectorGetRulesOutputRuleDetails]
  nextToken: String
}

type AwsFraudDetectorGetRulesOutputRuleDetails {
  ruleId: String
  description: String
  detectorId: String
  ruleVersion: String
  expression: String
  language: String
  outcomes: [String]
  lastUpdatedTime: String
  createdTime: String
  arn: String
}

input AwsFraudDetectorGetRulesInput {
  ruleId: String
  detectorId: String!
  ruleVersion: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorGetVariablesOutput {
  variables: [AwsFraudDetectorSg]
  nextToken: String
}

input AwsFraudDetectorGetVariablesInput {
  name: String
  nextToken: String
  maxResults: Int
}

type AwsFraudDetectorListTagsForResourceOutput {
  tags: [AwsFraudDetectorS5]
  nextToken: String
}

type AwsFraudDetectorS5 {
  key: String!
  value: String!
}

input AwsFraudDetectorListTagsForResourceInput {
  resourceARN: String!
  nextToken: String
  maxResults: Int
}

input AwsFraudDetectorPutDetectorInput {
  detectorId: String!
  description: String
  eventTypeName: String!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorPutEntityTypeInput {
  name: String!
  description: String
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorPutEventTypeInput {
  name: String!
  description: String
  eventVariables: [String]!
  labels: [String]
  entityTypes: [String]!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorPutExternalModelInput {
  modelEndpoint: String!
  modelSource: String!
  invokeModelEndpointRoleArn: String!
  inputConfiguration: AwsFraudDetectorS4bInput!
  outputConfiguration: AwsFraudDetectorS4eInput!
  modelEndpointStatus: String!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorS4bInput {
  eventTypeName: String
  format: String
  useEventVariables: Boolean!
  jsonInputTemplate: String
  csvInputTemplate: String
}

input AwsFraudDetectorS4eInput {
  format: String!
  jsonKeyToVariableMap: JSON
  csvIndexToVariableMap: JSON
}

input AwsFraudDetectorPutKMSEncryptionKeyInput {
  kmsEncryptionKeyArn: String!
}

input AwsFraudDetectorPutLabelInput {
  name: String!
  description: String
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorPutOutcomeInput {
  name: String!
  description: String
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorTagResourceInput {
  resourceARN: String!
  tags: [AwsFraudDetectorS5Input]!
}

input AwsFraudDetectorUntagResourceInput {
  resourceARN: String!
  tagKeys: [String]!
}

input AwsFraudDetectorUpdateDetectorVersionInput {
  detectorId: String!
  detectorVersionId: String!
  externalModelEndpoints: [String]!
  rules: [AwsFraudDetectorS10Input]!
  description: String
  modelVersions: [AwsFraudDetectorS12Input]
  ruleExecutionMode: String
}

input AwsFraudDetectorUpdateDetectorVersionMetadataInput {
  detectorId: String!
  detectorVersionId: String!
  description: String!
}

input AwsFraudDetectorUpdateDetectorVersionStatusInput {
  detectorId: String!
  detectorVersionId: String!
  status: String!
}

input AwsFraudDetectorUpdateModelInput {
  modelId: String!
  modelType: String!
  description: String
}

type AwsFraudDetectorUpdateModelVersionOutput {
  modelId: String
  modelType: String
  modelVersionNumber: String
  status: String
}

input AwsFraudDetectorUpdateModelVersionInput {
  modelId: String!
  modelType: String!
  majorVersionNumber: String!
  externalEventsDetail: AwsFraudDetectorS1gInput
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorUpdateModelVersionStatusInput {
  modelId: String!
  modelType: String!
  modelVersionNumber: String!
  status: String!
}

input AwsFraudDetectorUpdateRuleMetadataInput {
  rule: AwsFraudDetectorS10Input!
  description: String!
}

type AwsFraudDetectorUpdateRuleVersionOutput {
  rule: AwsFraudDetectorS10
}

input AwsFraudDetectorUpdateRuleVersionInput {
  rule: AwsFraudDetectorS10Input!
  description: String
  expression: String!
  language: String!
  outcomes: [String]!
  tags: [AwsFraudDetectorS5Input]
}

input AwsFraudDetectorUpdateVariableInput {
  name: String!
  defaultValue: String
  description: String
  variableType: String
}

"""Amazon GameLift (2015-10-01)"""
type AwsGameLift {
  acceptMatch(input: AwsGameLiftAcceptMatchInput!, config: AwsConfig): JSON
  claimGameServer(input: AwsGameLiftClaimGameServerInput!, config: AwsConfig): AwsGameLiftClaimGameServerOutput
  createAlias(input: AwsGameLiftCreateAliasInput!, config: AwsConfig): AwsGameLiftCreateAliasOutput
  createBuild(input: AwsGameLiftCreateBuildInput, config: AwsConfig): AwsGameLiftCreateBuildOutput
  createFleet(input: AwsGameLiftCreateFleetInput!, config: AwsConfig): AwsGameLiftCreateFleetOutput
  createFleetLocations(input: AwsGameLiftCreateFleetLocationsInput!, config: AwsConfig): AwsGameLiftCreateFleetLocationsOutput
  createGameServerGroup(input: AwsGameLiftCreateGameServerGroupInput!, config: AwsConfig): AwsGameLiftCreateGameServerGroupOutput
  createGameSession(input: AwsGameLiftCreateGameSessionInput!, config: AwsConfig): AwsGameLiftCreateGameSessionOutput
  createGameSessionQueue(input: AwsGameLiftCreateGameSessionQueueInput!, config: AwsConfig): AwsGameLiftCreateGameSessionQueueOutput
  createMatchmakingConfiguration(input: AwsGameLiftCreateMatchmakingConfigurationInput!, config: AwsConfig): AwsGameLiftCreateMatchmakingConfigurationOutput
  createMatchmakingRuleSet(input: AwsGameLiftCreateMatchmakingRuleSetInput!, config: AwsConfig): AwsGameLiftCreateMatchmakingRuleSetOutput
  createPlayerSession(input: AwsGameLiftCreatePlayerSessionInput!, config: AwsConfig): AwsGameLiftCreatePlayerSessionOutput
  createPlayerSessions(input: AwsGameLiftCreatePlayerSessionsInput!, config: AwsConfig): AwsGameLiftCreatePlayerSessionsOutput
  createScript(input: AwsGameLiftCreateScriptInput, config: AwsConfig): AwsGameLiftCreateScriptOutput
  createVpcPeeringAuthorization(input: AwsGameLiftCreateVpcPeeringAuthorizationInput!, config: AwsConfig): AwsGameLiftCreateVpcPeeringAuthorizationOutput
  createVpcPeeringConnection(input: AwsGameLiftCreateVpcPeeringConnectionInput!, config: AwsConfig): JSON
  deleteAlias(input: AwsGameLiftDeleteAliasInput!, config: AwsConfig): JSON
  deleteBuild(input: AwsGameLiftDeleteBuildInput!, config: AwsConfig): JSON
  deleteFleet(input: AwsGameLiftDeleteFleetInput!, config: AwsConfig): JSON
  deleteFleetLocations(input: AwsGameLiftDeleteFleetLocationsInput!, config: AwsConfig): AwsGameLiftDeleteFleetLocationsOutput
  deleteGameServerGroup(input: AwsGameLiftDeleteGameServerGroupInput!, config: AwsConfig): AwsGameLiftDeleteGameServerGroupOutput
  deleteGameSessionQueue(input: AwsGameLiftDeleteGameSessionQueueInput!, config: AwsConfig): JSON
  deleteMatchmakingConfiguration(input: AwsGameLiftDeleteMatchmakingConfigurationInput!, config: AwsConfig): JSON
  deleteMatchmakingRuleSet(input: AwsGameLiftDeleteMatchmakingRuleSetInput!, config: AwsConfig): JSON
  deleteScalingPolicy(input: AwsGameLiftDeleteScalingPolicyInput!, config: AwsConfig): JSON
  deleteScript(input: AwsGameLiftDeleteScriptInput!, config: AwsConfig): JSON
  deleteVpcPeeringAuthorization(input: AwsGameLiftDeleteVpcPeeringAuthorizationInput!, config: AwsConfig): JSON
  deleteVpcPeeringConnection(input: AwsGameLiftDeleteVpcPeeringConnectionInput!, config: AwsConfig): JSON
  deregisterGameServer(input: AwsGameLiftDeregisterGameServerInput!, config: AwsConfig): JSON
  describeAlias(input: AwsGameLiftDescribeAliasInput!, config: AwsConfig): AwsGameLiftDescribeAliasOutput
  describeBuild(input: AwsGameLiftDescribeBuildInput!, config: AwsConfig): AwsGameLiftDescribeBuildOutput
  describeEC2InstanceLimits(input: AwsGameLiftDescribeEC2InstanceLimitsInput, config: AwsConfig): AwsGameLiftDescribeEC2InstanceLimitsOutput
  describeFleetAttributes(input: AwsGameLiftDescribeFleetAttributesInput, config: AwsConfig): AwsGameLiftDescribeFleetAttributesOutput
  describeFleetCapacity(input: AwsGameLiftDescribeFleetCapacityInput, config: AwsConfig): AwsGameLiftDescribeFleetCapacityOutput
  describeFleetEvents(input: AwsGameLiftDescribeFleetEventsInput!, config: AwsConfig): AwsGameLiftDescribeFleetEventsOutput
  describeFleetLocationAttributes(input: AwsGameLiftDescribeFleetLocationAttributesInput!, config: AwsConfig): AwsGameLiftDescribeFleetLocationAttributesOutput
  describeFleetLocationCapacity(input: AwsGameLiftDescribeFleetLocationCapacityInput!, config: AwsConfig): AwsGameLiftDescribeFleetLocationCapacityOutput
  describeFleetLocationUtilization(input: AwsGameLiftDescribeFleetLocationUtilizationInput!, config: AwsConfig): AwsGameLiftDescribeFleetLocationUtilizationOutput
  describeFleetPortSettings(input: AwsGameLiftDescribeFleetPortSettingsInput!, config: AwsConfig): AwsGameLiftDescribeFleetPortSettingsOutput
  describeFleetUtilization(input: AwsGameLiftDescribeFleetUtilizationInput, config: AwsConfig): AwsGameLiftDescribeFleetUtilizationOutput
  describeGameServer(input: AwsGameLiftDescribeGameServerInput!, config: AwsConfig): AwsGameLiftDescribeGameServerOutput
  describeGameServerGroup(input: AwsGameLiftDescribeGameServerGroupInput!, config: AwsConfig): AwsGameLiftDescribeGameServerGroupOutput
  describeGameServerInstances(input: AwsGameLiftDescribeGameServerInstancesInput!, config: AwsConfig): AwsGameLiftDescribeGameServerInstancesOutput
  describeGameSessionDetails(input: AwsGameLiftDescribeGameSessionDetailsInput, config: AwsConfig): AwsGameLiftDescribeGameSessionDetailsOutput
  describeGameSessionPlacement(input: AwsGameLiftDescribeGameSessionPlacementInput!, config: AwsConfig): AwsGameLiftDescribeGameSessionPlacementOutput
  describeGameSessionQueues(input: AwsGameLiftDescribeGameSessionQueuesInput, config: AwsConfig): AwsGameLiftDescribeGameSessionQueuesOutput
  describeGameSessions(input: AwsGameLiftDescribeGameSessionsInput, config: AwsConfig): AwsGameLiftDescribeGameSessionsOutput
  describeInstances(input: AwsGameLiftDescribeInstancesInput!, config: AwsConfig): AwsGameLiftDescribeInstancesOutput
  describeMatchmaking(input: AwsGameLiftDescribeMatchmakingInput!, config: AwsConfig): AwsGameLiftDescribeMatchmakingOutput
  describeMatchmakingConfigurations(input: AwsGameLiftDescribeMatchmakingConfigurationsInput, config: AwsConfig): AwsGameLiftDescribeMatchmakingConfigurationsOutput
  describeMatchmakingRuleSets(input: AwsGameLiftDescribeMatchmakingRuleSetsInput, config: AwsConfig): AwsGameLiftDescribeMatchmakingRuleSetsOutput
  describePlayerSessions(input: AwsGameLiftDescribePlayerSessionsInput, config: AwsConfig): AwsGameLiftDescribePlayerSessionsOutput
  describeRuntimeConfiguration(input: AwsGameLiftDescribeRuntimeConfigurationInput!, config: AwsConfig): AwsGameLiftDescribeRuntimeConfigurationOutput
  describeScalingPolicies(input: AwsGameLiftDescribeScalingPoliciesInput!, config: AwsConfig): AwsGameLiftDescribeScalingPoliciesOutput
  describeScript(input: AwsGameLiftDescribeScriptInput!, config: AwsConfig): AwsGameLiftDescribeScriptOutput
  describeVpcPeeringAuthorizations(input: JSON, config: AwsConfig): AwsGameLiftDescribeVpcPeeringAuthorizationsOutput
  describeVpcPeeringConnections(input: AwsGameLiftDescribeVpcPeeringConnectionsInput, config: AwsConfig): AwsGameLiftDescribeVpcPeeringConnectionsOutput
  getGameSessionLogUrl(input: AwsGameLiftGetGameSessionLogUrlInput!, config: AwsConfig): AwsGameLiftGetGameSessionLogUrlOutput
  getInstanceAccess(input: AwsGameLiftGetInstanceAccessInput!, config: AwsConfig): AwsGameLiftGetInstanceAccessOutput
  listAliases(input: AwsGameLiftListAliasesInput, config: AwsConfig): AwsGameLiftListAliasesOutput
  listBuilds(input: AwsGameLiftListBuildsInput, config: AwsConfig): AwsGameLiftListBuildsOutput
  listFleets(input: AwsGameLiftListFleetsInput, config: AwsConfig): AwsGameLiftListFleetsOutput
  listGameServerGroups(input: AwsGameLiftListGameServerGroupsInput, config: AwsConfig): AwsGameLiftListGameServerGroupsOutput
  listGameServers(input: AwsGameLiftListGameServersInput!, config: AwsConfig): AwsGameLiftListGameServersOutput
  listScripts(input: AwsGameLiftListScriptsInput, config: AwsConfig): AwsGameLiftListScriptsOutput
  listTagsForResource(input: AwsGameLiftListTagsForResourceInput!, config: AwsConfig): AwsGameLiftListTagsForResourceOutput
  putScalingPolicy(input: AwsGameLiftPutScalingPolicyInput!, config: AwsConfig): AwsGameLiftPutScalingPolicyOutput
  registerGameServer(input: AwsGameLiftRegisterGameServerInput!, config: AwsConfig): AwsGameLiftRegisterGameServerOutput
  requestUploadCredentials(input: AwsGameLiftRequestUploadCredentialsInput!, config: AwsConfig): AwsGameLiftRequestUploadCredentialsOutput
  resolveAlias(input: AwsGameLiftResolveAliasInput!, config: AwsConfig): AwsGameLiftResolveAliasOutput
  resumeGameServerGroup(input: AwsGameLiftResumeGameServerGroupInput!, config: AwsConfig): AwsGameLiftResumeGameServerGroupOutput
  searchGameSessions(input: AwsGameLiftSearchGameSessionsInput, config: AwsConfig): AwsGameLiftSearchGameSessionsOutput
  startFleetActions(input: AwsGameLiftStartFleetActionsInput!, config: AwsConfig): AwsGameLiftStartFleetActionsOutput
  startGameSessionPlacement(input: AwsGameLiftStartGameSessionPlacementInput!, config: AwsConfig): AwsGameLiftStartGameSessionPlacementOutput
  startMatchBackfill(input: AwsGameLiftStartMatchBackfillInput!, config: AwsConfig): AwsGameLiftStartMatchBackfillOutput
  startMatchmaking(input: AwsGameLiftStartMatchmakingInput!, config: AwsConfig): AwsGameLiftStartMatchmakingOutput
  stopFleetActions(input: AwsGameLiftStopFleetActionsInput!, config: AwsConfig): AwsGameLiftStopFleetActionsOutput
  stopGameSessionPlacement(input: AwsGameLiftStopGameSessionPlacementInput!, config: AwsConfig): AwsGameLiftStopGameSessionPlacementOutput
  stopMatchmaking(input: AwsGameLiftStopMatchmakingInput!, config: AwsConfig): JSON
  suspendGameServerGroup(input: AwsGameLiftSuspendGameServerGroupInput!, config: AwsConfig): AwsGameLiftSuspendGameServerGroupOutput
  tagResource(input: AwsGameLiftTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGameLiftUntagResourceInput!, config: AwsConfig): JSON
  updateAlias(input: AwsGameLiftUpdateAliasInput!, config: AwsConfig): AwsGameLiftUpdateAliasOutput
  updateBuild(input: AwsGameLiftUpdateBuildInput!, config: AwsConfig): AwsGameLiftUpdateBuildOutput
  updateFleetAttributes(input: AwsGameLiftUpdateFleetAttributesInput!, config: AwsConfig): AwsGameLiftUpdateFleetAttributesOutput
  updateFleetCapacity(input: AwsGameLiftUpdateFleetCapacityInput!, config: AwsConfig): AwsGameLiftUpdateFleetCapacityOutput
  updateFleetPortSettings(input: AwsGameLiftUpdateFleetPortSettingsInput!, config: AwsConfig): AwsGameLiftUpdateFleetPortSettingsOutput
  updateGameServer(input: AwsGameLiftUpdateGameServerInput!, config: AwsConfig): AwsGameLiftUpdateGameServerOutput
  updateGameServerGroup(input: AwsGameLiftUpdateGameServerGroupInput!, config: AwsConfig): AwsGameLiftUpdateGameServerGroupOutput
  updateGameSession(input: AwsGameLiftUpdateGameSessionInput!, config: AwsConfig): AwsGameLiftUpdateGameSessionOutput
  updateGameSessionQueue(input: AwsGameLiftUpdateGameSessionQueueInput!, config: AwsConfig): AwsGameLiftUpdateGameSessionQueueOutput
  updateMatchmakingConfiguration(input: AwsGameLiftUpdateMatchmakingConfigurationInput!, config: AwsConfig): AwsGameLiftUpdateMatchmakingConfigurationOutput
  updateRuntimeConfiguration(input: AwsGameLiftUpdateRuntimeConfigurationInput!, config: AwsConfig): AwsGameLiftUpdateRuntimeConfigurationOutput
  updateScript(input: AwsGameLiftUpdateScriptInput!, config: AwsConfig): AwsGameLiftUpdateScriptOutput
  validateMatchmakingRuleSet(input: AwsGameLiftValidateMatchmakingRuleSetInput!, config: AwsConfig): AwsGameLiftValidateMatchmakingRuleSetOutput
}

input AwsGameLiftAcceptMatchInput {
  TicketId: String!
  PlayerIds: [String]!
  AcceptanceType: String!
}

type AwsGameLiftClaimGameServerOutput {
  GameServer: AwsGameLiftSc
}

type AwsGameLiftSc {
  GameServerGroupName: String
  GameServerGroupArn: String
  GameServerId: String
  InstanceId: String
  ConnectionInfo: String
  GameServerData: String
  ClaimStatus: String
  UtilizationStatus: String
  RegistrationTime: Date
  LastClaimTime: Date
  LastHealthCheckTime: Date
}

input AwsGameLiftClaimGameServerInput {
  GameServerGroupName: String!
  GameServerId: String
  GameServerData: String
}

type AwsGameLiftCreateAliasOutput {
  Alias: AwsGameLiftSv
}

type AwsGameLiftSv {
  AliasId: String
  Name: String
  AliasArn: String
  Description: String
  RoutingStrategy: AwsGameLiftSm
  CreationTime: Date
  LastUpdatedTime: Date
}

type AwsGameLiftSm {
  Type: String
  FleetId: String
  Message: String
}

input AwsGameLiftCreateAliasInput {
  Name: String!
  Description: String
  RoutingStrategy: AwsGameLiftSmInput!
  Tags: [AwsGameLiftSqInput]
}

input AwsGameLiftSmInput {
  Type: String
  FleetId: String
  Message: String
}

input AwsGameLiftSqInput {
  Key: String!
  Value: String!
}

type AwsGameLiftCreateBuildOutput {
  Build: AwsGameLiftS13
  UploadCredentials: AwsGameLiftS18
  StorageLocation: AwsGameLiftSz
}

type AwsGameLiftS13 {
  BuildId: String
  BuildArn: String
  Name: String
  Version: String
  Status: String
  SizeOnDisk: JSON
  OperatingSystem: String
  CreationTime: Date
}

type AwsGameLiftS18 {
  AccessKeyId: String
  SecretAccessKey: String
  SessionToken: String
}

type AwsGameLiftSz {
  Bucket: String
  Key: String
  RoleArn: String
  ObjectVersion: String
}

input AwsGameLiftCreateBuildInput {
  Name: String
  Version: String
  StorageLocation: AwsGameLiftSzInput
  OperatingSystem: String
  Tags: [AwsGameLiftSqInput]
}

input AwsGameLiftSzInput {
  Bucket: String
  Key: String
  RoleArn: String
  ObjectVersion: String
}

type AwsGameLiftCreateFleetOutput {
  FleetAttributes: AwsGameLiftS20
  LocationStates: [AwsGameLiftS28]
}

type AwsGameLiftS20 {
  FleetId: String
  FleetArn: String
  FleetType: String
  InstanceType: String
  Description: String
  Name: String
  CreationTime: Date
  TerminationTime: Date
  Status: String
  BuildId: String
  BuildArn: String
  ScriptId: String
  ScriptArn: String
  ServerLaunchPath: String
  ServerLaunchParameters: String
  LogPaths: [String]
  NewGameSessionProtectionPolicy: String
  OperatingSystem: String
  ResourceCreationLimitPolicy: AwsGameLiftS1p
  MetricGroups: [String]
  StoppedActions: [String]
  InstanceRoleArn: String
  CertificateConfiguration: AwsGameLiftS1u
}

type AwsGameLiftS1p {
  NewGameSessionsPerCreator: Int
  PolicyPeriodInMinutes: Int
}

type AwsGameLiftS1u {
  CertificateType: String!
}

type AwsGameLiftS28 {
  Location: String
  Status: String
}

input AwsGameLiftCreateFleetInput {
  Name: String!
  Description: String
  BuildId: String
  ScriptId: String
  ServerLaunchPath: String
  ServerLaunchParameters: String
  LogPaths: [String]
  EC2InstanceType: String!
  EC2InboundPermissions: [AwsGameLiftS1dInput]
  NewGameSessionProtectionPolicy: String
  RuntimeConfiguration: AwsGameLiftS1jInput
  ResourceCreationLimitPolicy: AwsGameLiftS1pInput
  MetricGroups: [String]
  PeerVpcAwsAccountId: String
  PeerVpcId: String
  FleetType: String
  InstanceRoleArn: String
  CertificateConfiguration: AwsGameLiftS1uInput
  Locations: [AwsGameLiftS1wInput]
  Tags: [AwsGameLiftSqInput]
}

input AwsGameLiftS1dInput {
  FromPort: Int!
  ToPort: Int!
  IpRange: String!
  Protocol: String!
}

input AwsGameLiftS1jInput {
  ServerProcesses: [AwsGameLiftS1jServerProcessesInput]
  MaxConcurrentGameSessionActivations: Int
  GameSessionActivationTimeoutSeconds: Int
}

input AwsGameLiftS1jServerProcessesInput {
  LaunchPath: String!
  Parameters: String
  ConcurrentExecutions: Int!
}

input AwsGameLiftS1pInput {
  NewGameSessionsPerCreator: Int
  PolicyPeriodInMinutes: Int
}

input AwsGameLiftS1uInput {
  CertificateType: String!
}

input AwsGameLiftS1wInput {
  Location: String
}

type AwsGameLiftCreateFleetLocationsOutput {
  FleetId: String
  FleetArn: String
  LocationStates: [AwsGameLiftS28]
}

input AwsGameLiftCreateFleetLocationsInput {
  FleetId: String!
  Locations: [AwsGameLiftS1wInput]!
}

type AwsGameLiftCreateGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

type AwsGameLiftS2u {
  GameServerGroupName: String
  GameServerGroupArn: String
  RoleArn: String
  InstanceDefinitions: [AwsGameLiftS2i]
  BalancingStrategy: String
  GameServerProtectionPolicy: String
  AutoScalingGroupArn: String
  Status: String
  StatusReason: String
  SuspendedActions: [String]
  CreationTime: Date
  LastUpdatedTime: Date
}

type AwsGameLiftS2i {
  InstanceType: String!
  WeightedCapacity: String
}

input AwsGameLiftCreateGameServerGroupInput {
  GameServerGroupName: String!
  RoleArn: String!
  MinSize: Int!
  MaxSize: Int!
  LaunchTemplate: AwsGameLiftCreateGameServerGroupLaunchTemplateInput!
  InstanceDefinitions: [AwsGameLiftS2iInput]!
  AutoScalingPolicy: AwsGameLiftCreateGameServerGroupAutoScalingPolicyInput
  BalancingStrategy: String
  GameServerProtectionPolicy: String
  VpcSubnets: [String]
  Tags: [AwsGameLiftSqInput]
}

input AwsGameLiftCreateGameServerGroupLaunchTemplateInput {
  LaunchTemplateId: String
  LaunchTemplateName: String
  Version: String
}

input AwsGameLiftS2iInput {
  InstanceType: String!
  WeightedCapacity: String
}

input AwsGameLiftCreateGameServerGroupAutoScalingPolicyInput {
  EstimatedInstanceWarmup: Int
  TargetTrackingConfiguration: AwsGameLiftCreateGameServerGroupAutoScalingPolicyTargetTrackingConfigurationInput!
}

input AwsGameLiftCreateGameServerGroupAutoScalingPolicyTargetTrackingConfigurationInput {
  TargetValue: JSON!
}

type AwsGameLiftCreateGameSessionOutput {
  GameSession: AwsGameLiftS38
}

type AwsGameLiftS38 {
  GameSessionId: String
  Name: String
  FleetId: String
  FleetArn: String
  CreationTime: Date
  TerminationTime: Date
  CurrentPlayerSessionCount: Int
  MaximumPlayerSessionCount: Int
  Status: String
  StatusReason: String
  GameProperties: [AwsGameLiftS31]
  IpAddress: String
  DnsName: String
  Port: Int
  PlayerSessionCreationPolicy: String
  CreatorId: String
  GameSessionData: String
  MatchmakerData: String
  Location: String
}

type AwsGameLiftS31 {
  Key: String!
  Value: String!
}

input AwsGameLiftCreateGameSessionInput {
  FleetId: String
  AliasId: String
  MaximumPlayerSessionCount: Int!
  Name: String
  GameProperties: [AwsGameLiftS31Input]
  CreatorId: String
  GameSessionId: String
  IdempotencyToken: String
  GameSessionData: String
  Location: String
}

input AwsGameLiftS31Input {
  Key: String!
  Value: String!
}

type AwsGameLiftCreateGameSessionQueueOutput {
  GameSessionQueue: AwsGameLiftS3u
}

type AwsGameLiftS3u {
  Name: String
  GameSessionQueueArn: String
  TimeoutInSeconds: Int
  PlayerLatencyPolicies: [AwsGameLiftS3h]
  Destinations: [AwsGameLiftS3j]
  FilterConfiguration: AwsGameLiftS3m
  PriorityConfiguration: AwsGameLiftS3o
  CustomEventData: String
  NotificationTarget: String
}

type AwsGameLiftS3h {
  MaximumIndividualPlayerLatencyMilliseconds: Int
  PolicyDurationSeconds: Int
}

type AwsGameLiftS3j {
  DestinationArn: String
}

type AwsGameLiftS3m {
  AllowedLocations: [String]
}

type AwsGameLiftS3o {
  PriorityOrder: [String]
  LocationOrder: [String]
}

input AwsGameLiftCreateGameSessionQueueInput {
  Name: String!
  TimeoutInSeconds: Int
  PlayerLatencyPolicies: [AwsGameLiftS3hInput]
  Destinations: [AwsGameLiftS3jInput]
  FilterConfiguration: AwsGameLiftS3mInput
  PriorityConfiguration: AwsGameLiftS3oInput
  CustomEventData: String
  NotificationTarget: String
  Tags: [AwsGameLiftSqInput]
}

input AwsGameLiftS3hInput {
  MaximumIndividualPlayerLatencyMilliseconds: Int
  PolicyDurationSeconds: Int
}

input AwsGameLiftS3jInput {
  DestinationArn: String
}

input AwsGameLiftS3mInput {
  AllowedLocations: [String]
}

input AwsGameLiftS3oInput {
  PriorityOrder: [String]
  LocationOrder: [String]
}

type AwsGameLiftCreateMatchmakingConfigurationOutput {
  Configuration: AwsGameLiftS48
}

type AwsGameLiftS48 {
  Name: String
  ConfigurationArn: String
  Description: String
  GameSessionQueueArns: [String]
  RequestTimeoutSeconds: Int
  AcceptanceTimeoutSeconds: Int
  AcceptanceRequired: Boolean
  RuleSetName: String
  RuleSetArn: String
  NotificationTarget: String
  AdditionalPlayerCount: Int
  CustomEventData: String
  CreationTime: Date
  GameProperties: [AwsGameLiftS31]
  GameSessionData: String
  BackfillMode: String
  FlexMatchMode: String
}

input AwsGameLiftCreateMatchmakingConfigurationInput {
  Name: String!
  Description: String
  GameSessionQueueArns: [String]
  RequestTimeoutSeconds: Int!
  AcceptanceTimeoutSeconds: Int
  AcceptanceRequired: Boolean!
  RuleSetName: String!
  NotificationTarget: String
  AdditionalPlayerCount: Int
  CustomEventData: String
  GameProperties: [AwsGameLiftS31Input]
  GameSessionData: String
  BackfillMode: String
  FlexMatchMode: String
  Tags: [AwsGameLiftSqInput]
}

type AwsGameLiftCreateMatchmakingRuleSetOutput {
  RuleSet: AwsGameLiftS4e!
}

type AwsGameLiftS4e {
  RuleSetName: String
  RuleSetArn: String
  RuleSetBody: String!
  CreationTime: Date
}

input AwsGameLiftCreateMatchmakingRuleSetInput {
  Name: String!
  RuleSetBody: String!
  Tags: [AwsGameLiftSqInput]
}

type AwsGameLiftCreatePlayerSessionOutput {
  PlayerSession: AwsGameLiftS4i
}

type AwsGameLiftS4i {
  PlayerSessionId: String
  PlayerId: String
  GameSessionId: String
  FleetId: String
  FleetArn: String
  CreationTime: Date
  TerminationTime: Date
  Status: String
  IpAddress: String
  DnsName: String
  Port: Int
  PlayerData: String
}

input AwsGameLiftCreatePlayerSessionInput {
  GameSessionId: String!
  PlayerId: String!
  PlayerData: String
}

type AwsGameLiftCreatePlayerSessionsOutput {
  PlayerSessions: [AwsGameLiftS4i]
}

input AwsGameLiftCreatePlayerSessionsInput {
  GameSessionId: String!
  PlayerIds: [String]!
  PlayerDataMap: JSON
}

type AwsGameLiftCreateScriptOutput {
  Script: AwsGameLiftS4t
}

type AwsGameLiftS4t {
  ScriptId: String
  ScriptArn: String
  Name: String
  Version: String
  SizeOnDisk: JSON
  CreationTime: Date
  StorageLocation: AwsGameLiftSz
}

input AwsGameLiftCreateScriptInput {
  Name: String
  Version: String
  StorageLocation: AwsGameLiftSzInput
  ZipFile: JSON
  Tags: [AwsGameLiftSqInput]
}

type AwsGameLiftCreateVpcPeeringAuthorizationOutput {
  VpcPeeringAuthorization: AwsGameLiftS4w
}

type AwsGameLiftS4w {
  GameLiftAwsAccountId: String
  PeerVpcAwsAccountId: String
  PeerVpcId: String
  CreationTime: Date
  ExpirationTime: Date
}

input AwsGameLiftCreateVpcPeeringAuthorizationInput {
  GameLiftAwsAccountId: String!
  PeerVpcId: String!
}

input AwsGameLiftCreateVpcPeeringConnectionInput {
  FleetId: String!
  PeerVpcAwsAccountId: String!
  PeerVpcId: String!
}

input AwsGameLiftDeleteAliasInput {
  AliasId: String!
}

input AwsGameLiftDeleteBuildInput {
  BuildId: String!
}

input AwsGameLiftDeleteFleetInput {
  FleetId: String!
}

type AwsGameLiftDeleteFleetLocationsOutput {
  FleetId: String
  FleetArn: String
  LocationStates: [AwsGameLiftS28]
}

input AwsGameLiftDeleteFleetLocationsInput {
  FleetId: String!
  Locations: [String]!
}

type AwsGameLiftDeleteGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

input AwsGameLiftDeleteGameServerGroupInput {
  GameServerGroupName: String!
  DeleteOption: String
}

input AwsGameLiftDeleteGameSessionQueueInput {
  Name: String!
}

input AwsGameLiftDeleteMatchmakingConfigurationInput {
  Name: String!
}

input AwsGameLiftDeleteMatchmakingRuleSetInput {
  Name: String!
}

input AwsGameLiftDeleteScalingPolicyInput {
  Name: String!
  FleetId: String!
}

input AwsGameLiftDeleteScriptInput {
  ScriptId: String!
}

input AwsGameLiftDeleteVpcPeeringAuthorizationInput {
  GameLiftAwsAccountId: String!
  PeerVpcId: String!
}

input AwsGameLiftDeleteVpcPeeringConnectionInput {
  FleetId: String!
  VpcPeeringConnectionId: String!
}

input AwsGameLiftDeregisterGameServerInput {
  GameServerGroupName: String!
  GameServerId: String!
}

type AwsGameLiftDescribeAliasOutput {
  Alias: AwsGameLiftSv
}

input AwsGameLiftDescribeAliasInput {
  AliasId: String!
}

type AwsGameLiftDescribeBuildOutput {
  Build: AwsGameLiftS13
}

input AwsGameLiftDescribeBuildInput {
  BuildId: String!
}

type AwsGameLiftDescribeEC2InstanceLimitsOutput {
  EC2InstanceLimits: [AwsGameLiftDescribeEC2InstanceLimitsOutputEC2InstanceLimits]
}

type AwsGameLiftDescribeEC2InstanceLimitsOutputEC2InstanceLimits {
  EC2InstanceType: String
  CurrentInstances: Int
  InstanceLimit: Int
  Location: String
}

input AwsGameLiftDescribeEC2InstanceLimitsInput {
  EC2InstanceType: String
  Location: String
}

type AwsGameLiftDescribeFleetAttributesOutput {
  FleetAttributes: [AwsGameLiftS20]
  NextToken: String
}

input AwsGameLiftDescribeFleetAttributesInput {
  FleetIds: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeFleetCapacityOutput {
  FleetCapacity: [AwsGameLiftS61]
  NextToken: String
}

type AwsGameLiftS61 {
  FleetId: String
  FleetArn: String
  InstanceType: String
  InstanceCounts: AwsGameLiftS61InstanceCounts
  Location: String
}

type AwsGameLiftS61InstanceCounts {
  DESIRED: Int
  MINIMUM: Int
  MAXIMUM: Int
  PENDING: Int
  ACTIVE: Int
  IDLE: Int
  TERMINATING: Int
}

input AwsGameLiftDescribeFleetCapacityInput {
  FleetIds: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeFleetEventsOutput {
  Events: [AwsGameLiftDescribeFleetEventsOutputEvents]
  NextToken: String
}

type AwsGameLiftDescribeFleetEventsOutputEvents {
  EventId: String
  ResourceId: String
  EventCode: String
  Message: String
  EventTime: Date
  PreSignedLogUrl: String
}

input AwsGameLiftDescribeFleetEventsInput {
  FleetId: String!
  StartTime: Date
  EndTime: Date
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeFleetLocationAttributesOutput {
  FleetId: String
  FleetArn: String
  LocationAttributes: [AwsGameLiftDescribeFleetLocationAttributesOutputLocationAttributes]
  NextToken: String
}

type AwsGameLiftDescribeFleetLocationAttributesOutputLocationAttributes {
  LocationState: AwsGameLiftS28
  StoppedActions: [String]
  UpdateStatus: String
}

input AwsGameLiftDescribeFleetLocationAttributesInput {
  FleetId: String!
  Locations: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeFleetLocationCapacityOutput {
  FleetCapacity: AwsGameLiftS61
}

input AwsGameLiftDescribeFleetLocationCapacityInput {
  FleetId: String!
  Location: String!
}

type AwsGameLiftDescribeFleetLocationUtilizationOutput {
  FleetUtilization: AwsGameLiftS6h
}

type AwsGameLiftS6h {
  FleetId: String
  FleetArn: String
  ActiveServerProcessCount: Int
  ActiveGameSessionCount: Int
  CurrentPlayerSessionCount: Int
  MaximumPlayerSessionCount: Int
  Location: String
}

input AwsGameLiftDescribeFleetLocationUtilizationInput {
  FleetId: String!
  Location: String!
}

type AwsGameLiftDescribeFleetPortSettingsOutput {
  FleetId: String
  FleetArn: String
  InboundPermissions: [AwsGameLiftS1d]
  UpdateStatus: String
  Location: String
}

type AwsGameLiftS1d {
  FromPort: Int!
  ToPort: Int!
  IpRange: String!
  Protocol: String!
}

input AwsGameLiftDescribeFleetPortSettingsInput {
  FleetId: String!
  Location: String
}

type AwsGameLiftDescribeFleetUtilizationOutput {
  FleetUtilization: [AwsGameLiftS6h]
  NextToken: String
}

input AwsGameLiftDescribeFleetUtilizationInput {
  FleetIds: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeGameServerOutput {
  GameServer: AwsGameLiftSc
}

input AwsGameLiftDescribeGameServerInput {
  GameServerGroupName: String!
  GameServerId: String!
}

type AwsGameLiftDescribeGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

input AwsGameLiftDescribeGameServerGroupInput {
  GameServerGroupName: String!
}

type AwsGameLiftDescribeGameServerInstancesOutput {
  GameServerInstances: [AwsGameLiftDescribeGameServerInstancesOutputGameServerInstances]
  NextToken: String
}

type AwsGameLiftDescribeGameServerInstancesOutputGameServerInstances {
  GameServerGroupName: String
  GameServerGroupArn: String
  InstanceId: String
  InstanceStatus: String
}

input AwsGameLiftDescribeGameServerInstancesInput {
  GameServerGroupName: String!
  InstanceIds: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeGameSessionDetailsOutput {
  GameSessionDetails: [AwsGameLiftDescribeGameSessionDetailsOutputGameSessionDetails]
  NextToken: String
}

type AwsGameLiftDescribeGameSessionDetailsOutputGameSessionDetails {
  GameSession: AwsGameLiftS38
  ProtectionPolicy: String
}

input AwsGameLiftDescribeGameSessionDetailsInput {
  FleetId: String
  GameSessionId: String
  AliasId: String
  Location: String
  StatusFilter: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeGameSessionPlacementOutput {
  GameSessionPlacement: AwsGameLiftS73
}

type AwsGameLiftS73 {
  PlacementId: String
  GameSessionQueueName: String
  Status: String
  GameProperties: [AwsGameLiftS31]
  MaximumPlayerSessionCount: Int
  GameSessionName: String
  GameSessionId: String
  GameSessionArn: String
  GameSessionRegion: String
  PlayerLatencies: [AwsGameLiftS75]
  StartTime: Date
  EndTime: Date
  IpAddress: String
  DnsName: String
  Port: Int
  PlacedPlayerSessions: [AwsGameLiftS73PlacedPlayerSessions]
  GameSessionData: String
  MatchmakerData: String
}

type AwsGameLiftS75 {
  PlayerId: String
  RegionIdentifier: String
  LatencyInMilliseconds: Float
}

type AwsGameLiftS73PlacedPlayerSessions {
  PlayerId: String
  PlayerSessionId: String
}

input AwsGameLiftDescribeGameSessionPlacementInput {
  PlacementId: String!
}

type AwsGameLiftDescribeGameSessionQueuesOutput {
  GameSessionQueues: [AwsGameLiftS3u]
  NextToken: String
}

input AwsGameLiftDescribeGameSessionQueuesInput {
  Names: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeGameSessionsOutput {
  GameSessions: [AwsGameLiftS38]
  NextToken: String
}

input AwsGameLiftDescribeGameSessionsInput {
  FleetId: String
  GameSessionId: String
  AliasId: String
  Location: String
  StatusFilter: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeInstancesOutput {
  Instances: [AwsGameLiftDescribeInstancesOutputInstances]
  NextToken: String
}

type AwsGameLiftDescribeInstancesOutputInstances {
  FleetId: String
  FleetArn: String
  InstanceId: String
  IpAddress: String
  DnsName: String
  OperatingSystem: String
  Type: String
  Status: String
  CreationTime: Date
  Location: String
}

input AwsGameLiftDescribeInstancesInput {
  FleetId: String!
  InstanceId: String
  Limit: Int
  NextToken: String
  Location: String
}

type AwsGameLiftDescribeMatchmakingOutput {
  TicketList: [AwsGameLiftS7r]
}

type AwsGameLiftS7r {
  TicketId: String
  ConfigurationName: String
  ConfigurationArn: String
  Status: String
  StatusReason: String
  StatusMessage: String
  StartTime: Date
  EndTime: Date
  Players: [AwsGameLiftS7u]
  GameSessionConnectionInfo: AwsGameLiftS7rGameSessionConnectionInfo
  EstimatedWaitTime: Int
}

type AwsGameLiftS7u {
  PlayerId: String
  PlayerAttributes: JSON
  Team: String
  LatencyInMs: JSON
}

type AwsGameLiftS7rGameSessionConnectionInfo {
  GameSessionArn: String
  IpAddress: String
  DnsName: String
  Port: Int
  MatchedPlayerSessions: [AwsGameLiftS7rGameSessionConnectionInfoMatchedPlayerSessions]
}

type AwsGameLiftS7rGameSessionConnectionInfoMatchedPlayerSessions {
  PlayerId: String
  PlayerSessionId: String
}

input AwsGameLiftDescribeMatchmakingInput {
  TicketIds: [String]!
}

type AwsGameLiftDescribeMatchmakingConfigurationsOutput {
  Configurations: [AwsGameLiftS48]
  NextToken: String
}

input AwsGameLiftDescribeMatchmakingConfigurationsInput {
  Names: [String]
  RuleSetName: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeMatchmakingRuleSetsOutput {
  RuleSets: [AwsGameLiftS4e]!
  NextToken: String
}

input AwsGameLiftDescribeMatchmakingRuleSetsInput {
  Names: [String]
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribePlayerSessionsOutput {
  PlayerSessions: [AwsGameLiftS4i]
  NextToken: String
}

input AwsGameLiftDescribePlayerSessionsInput {
  GameSessionId: String
  PlayerId: String
  PlayerSessionId: String
  PlayerSessionStatusFilter: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftDescribeRuntimeConfigurationOutput {
  RuntimeConfiguration: AwsGameLiftS1j
}

type AwsGameLiftS1j {
  ServerProcesses: [AwsGameLiftS1jServerProcesses]
  MaxConcurrentGameSessionActivations: Int
  GameSessionActivationTimeoutSeconds: Int
}

type AwsGameLiftS1jServerProcesses {
  LaunchPath: String!
  Parameters: String
  ConcurrentExecutions: Int!
}

input AwsGameLiftDescribeRuntimeConfigurationInput {
  FleetId: String!
}

type AwsGameLiftDescribeScalingPoliciesOutput {
  ScalingPolicies: [AwsGameLiftDescribeScalingPoliciesOutputScalingPolicies]
  NextToken: String
}

type AwsGameLiftDescribeScalingPoliciesOutputScalingPolicies {
  FleetId: String
  FleetArn: String
  Name: String
  Status: String
  ScalingAdjustment: Int
  ScalingAdjustmentType: String
  ComparisonOperator: String
  Threshold: JSON
  EvaluationPeriods: Int
  MetricName: String
  PolicyType: String
  TargetConfiguration: AwsGameLiftS8s
  UpdateStatus: String
  Location: String
}

type AwsGameLiftS8s {
  TargetValue: JSON!
}

input AwsGameLiftDescribeScalingPoliciesInput {
  FleetId: String!
  StatusFilter: String
  Limit: Int
  NextToken: String
  Location: String
}

type AwsGameLiftDescribeScriptOutput {
  Script: AwsGameLiftS4t
}

input AwsGameLiftDescribeScriptInput {
  ScriptId: String!
}

type AwsGameLiftDescribeVpcPeeringAuthorizationsOutput {
  VpcPeeringAuthorizations: [AwsGameLiftS4w]
}

type AwsGameLiftDescribeVpcPeeringConnectionsOutput {
  VpcPeeringConnections: [AwsGameLiftDescribeVpcPeeringConnectionsOutputVpcPeeringConnections]
}

type AwsGameLiftDescribeVpcPeeringConnectionsOutputVpcPeeringConnections {
  FleetId: String
  FleetArn: String
  IpV4CidrBlock: String
  VpcPeeringConnectionId: String
  Status: AwsGameLiftDescribeVpcPeeringConnectionsOutputVpcPeeringConnectionsStatus
  PeerVpcId: String
  GameLiftVpcId: String
}

type AwsGameLiftDescribeVpcPeeringConnectionsOutputVpcPeeringConnectionsStatus {
  Code: String
  Message: String
}

input AwsGameLiftDescribeVpcPeeringConnectionsInput {
  FleetId: String
}

type AwsGameLiftGetGameSessionLogUrlOutput {
  PreSignedUrl: String
}

input AwsGameLiftGetGameSessionLogUrlInput {
  GameSessionId: String!
}

type AwsGameLiftGetInstanceAccessOutput {
  InstanceAccess: AwsGameLiftGetInstanceAccessOutputInstanceAccess
}

type AwsGameLiftGetInstanceAccessOutputInstanceAccess {
  FleetId: String
  InstanceId: String
  IpAddress: String
  OperatingSystem: String
  Credentials: AwsGameLiftGetInstanceAccessOutputInstanceAccessCredentials
}

type AwsGameLiftGetInstanceAccessOutputInstanceAccessCredentials {
  UserName: String
  Secret: String
}

input AwsGameLiftGetInstanceAccessInput {
  FleetId: String!
  InstanceId: String!
}

type AwsGameLiftListAliasesOutput {
  Aliases: [AwsGameLiftSv]
  NextToken: String
}

input AwsGameLiftListAliasesInput {
  RoutingStrategyType: String
  Name: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftListBuildsOutput {
  Builds: [AwsGameLiftS13]
  NextToken: String
}

input AwsGameLiftListBuildsInput {
  Status: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftListFleetsOutput {
  FleetIds: [String]
  NextToken: String
}

input AwsGameLiftListFleetsInput {
  BuildId: String
  ScriptId: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftListGameServerGroupsOutput {
  GameServerGroups: [AwsGameLiftS2u]
  NextToken: String
}

input AwsGameLiftListGameServerGroupsInput {
  Limit: Int
  NextToken: String
}

type AwsGameLiftListGameServersOutput {
  GameServers: [AwsGameLiftSc]
  NextToken: String
}

input AwsGameLiftListGameServersInput {
  GameServerGroupName: String!
  SortOrder: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftListScriptsOutput {
  Scripts: [AwsGameLiftS4t]
  NextToken: String
}

input AwsGameLiftListScriptsInput {
  Limit: Int
  NextToken: String
}

type AwsGameLiftListTagsForResourceOutput {
  Tags: [AwsGameLiftSq]
}

type AwsGameLiftSq {
  Key: String!
  Value: String!
}

input AwsGameLiftListTagsForResourceInput {
  ResourceARN: String!
}

type AwsGameLiftPutScalingPolicyOutput {
  Name: String
}

input AwsGameLiftPutScalingPolicyInput {
  Name: String!
  FleetId: String!
  ScalingAdjustment: Int
  ScalingAdjustmentType: String
  Threshold: JSON
  ComparisonOperator: String
  EvaluationPeriods: Int
  MetricName: String!
  PolicyType: String
  TargetConfiguration: AwsGameLiftS8sInput
}

input AwsGameLiftS8sInput {
  TargetValue: JSON!
}

type AwsGameLiftRegisterGameServerOutput {
  GameServer: AwsGameLiftSc
}

input AwsGameLiftRegisterGameServerInput {
  GameServerGroupName: String!
  GameServerId: String!
  InstanceId: String!
  ConnectionInfo: String
  GameServerData: String
}

type AwsGameLiftRequestUploadCredentialsOutput {
  UploadCredentials: AwsGameLiftS18
  StorageLocation: AwsGameLiftSz
}

input AwsGameLiftRequestUploadCredentialsInput {
  BuildId: String!
}

type AwsGameLiftResolveAliasOutput {
  FleetId: String
  FleetArn: String
}

input AwsGameLiftResolveAliasInput {
  AliasId: String!
}

type AwsGameLiftResumeGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

input AwsGameLiftResumeGameServerGroupInput {
  GameServerGroupName: String!
  ResumeActions: [String]!
}

type AwsGameLiftSearchGameSessionsOutput {
  GameSessions: [AwsGameLiftS38]
  NextToken: String
}

input AwsGameLiftSearchGameSessionsInput {
  FleetId: String
  AliasId: String
  Location: String
  FilterExpression: String
  SortExpression: String
  Limit: Int
  NextToken: String
}

type AwsGameLiftStartFleetActionsOutput {
  FleetId: String
  FleetArn: String
}

input AwsGameLiftStartFleetActionsInput {
  FleetId: String!
  Actions: [String]!
  Location: String
}

type AwsGameLiftStartGameSessionPlacementOutput {
  GameSessionPlacement: AwsGameLiftS73
}

input AwsGameLiftStartGameSessionPlacementInput {
  PlacementId: String!
  GameSessionQueueName: String!
  GameProperties: [AwsGameLiftS31Input]
  MaximumPlayerSessionCount: Int!
  GameSessionName: String
  PlayerLatencies: [AwsGameLiftS75Input]
  DesiredPlayerSessions: [AwsGameLiftStartGameSessionPlacementDesiredPlayerSessionsInput]
  GameSessionData: String
}

input AwsGameLiftS75Input {
  PlayerId: String
  RegionIdentifier: String
  LatencyInMilliseconds: Float
}

input AwsGameLiftStartGameSessionPlacementDesiredPlayerSessionsInput {
  PlayerId: String
  PlayerData: String
}

type AwsGameLiftStartMatchBackfillOutput {
  MatchmakingTicket: AwsGameLiftS7r
}

input AwsGameLiftStartMatchBackfillInput {
  TicketId: String
  ConfigurationName: String!
  GameSessionArn: String
  Players: [AwsGameLiftS7uInput]!
}

input AwsGameLiftS7uInput {
  PlayerId: String
  PlayerAttributes: JSON
  Team: String
  LatencyInMs: JSON
}

type AwsGameLiftStartMatchmakingOutput {
  MatchmakingTicket: AwsGameLiftS7r
}

input AwsGameLiftStartMatchmakingInput {
  TicketId: String
  ConfigurationName: String!
  Players: [AwsGameLiftS7uInput]!
}

type AwsGameLiftStopFleetActionsOutput {
  FleetId: String
  FleetArn: String
}

input AwsGameLiftStopFleetActionsInput {
  FleetId: String!
  Actions: [String]!
  Location: String
}

type AwsGameLiftStopGameSessionPlacementOutput {
  GameSessionPlacement: AwsGameLiftS73
}

input AwsGameLiftStopGameSessionPlacementInput {
  PlacementId: String!
}

input AwsGameLiftStopMatchmakingInput {
  TicketId: String!
}

type AwsGameLiftSuspendGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

input AwsGameLiftSuspendGameServerGroupInput {
  GameServerGroupName: String!
  SuspendActions: [String]!
}

input AwsGameLiftTagResourceInput {
  ResourceARN: String!
  Tags: [AwsGameLiftSqInput]!
}

input AwsGameLiftUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsGameLiftUpdateAliasOutput {
  Alias: AwsGameLiftSv
}

input AwsGameLiftUpdateAliasInput {
  AliasId: String!
  Name: String
  Description: String
  RoutingStrategy: AwsGameLiftSmInput
}

type AwsGameLiftUpdateBuildOutput {
  Build: AwsGameLiftS13
}

input AwsGameLiftUpdateBuildInput {
  BuildId: String!
  Name: String
  Version: String
}

type AwsGameLiftUpdateFleetAttributesOutput {
  FleetId: String
}

input AwsGameLiftUpdateFleetAttributesInput {
  FleetId: String!
  Name: String
  Description: String
  NewGameSessionProtectionPolicy: String
  ResourceCreationLimitPolicy: AwsGameLiftS1pInput
  MetricGroups: [String]
}

type AwsGameLiftUpdateFleetCapacityOutput {
  FleetId: String
  FleetArn: String
  Location: String
}

input AwsGameLiftUpdateFleetCapacityInput {
  FleetId: String!
  DesiredInstances: Int
  MinSize: Int
  MaxSize: Int
  Location: String
}

type AwsGameLiftUpdateFleetPortSettingsOutput {
  FleetId: String
}

input AwsGameLiftUpdateFleetPortSettingsInput {
  FleetId: String!
  InboundPermissionAuthorizations: [AwsGameLiftS1dInput]
  InboundPermissionRevocations: [AwsGameLiftS1dInput]
}

type AwsGameLiftUpdateGameServerOutput {
  GameServer: AwsGameLiftSc
}

input AwsGameLiftUpdateGameServerInput {
  GameServerGroupName: String!
  GameServerId: String!
  GameServerData: String
  UtilizationStatus: String
  HealthCheck: String
}

type AwsGameLiftUpdateGameServerGroupOutput {
  GameServerGroup: AwsGameLiftS2u
}

input AwsGameLiftUpdateGameServerGroupInput {
  GameServerGroupName: String!
  RoleArn: String
  InstanceDefinitions: [AwsGameLiftS2iInput]
  GameServerProtectionPolicy: String
  BalancingStrategy: String
}

type AwsGameLiftUpdateGameSessionOutput {
  GameSession: AwsGameLiftS38
}

input AwsGameLiftUpdateGameSessionInput {
  GameSessionId: String!
  MaximumPlayerSessionCount: Int
  Name: String
  PlayerSessionCreationPolicy: String
  ProtectionPolicy: String
}

type AwsGameLiftUpdateGameSessionQueueOutput {
  GameSessionQueue: AwsGameLiftS3u
}

input AwsGameLiftUpdateGameSessionQueueInput {
  Name: String!
  TimeoutInSeconds: Int
  PlayerLatencyPolicies: [AwsGameLiftS3hInput]
  Destinations: [AwsGameLiftS3jInput]
  FilterConfiguration: AwsGameLiftS3mInput
  PriorityConfiguration: AwsGameLiftS3oInput
  CustomEventData: String
  NotificationTarget: String
}

type AwsGameLiftUpdateMatchmakingConfigurationOutput {
  Configuration: AwsGameLiftS48
}

input AwsGameLiftUpdateMatchmakingConfigurationInput {
  Name: String!
  Description: String
  GameSessionQueueArns: [String]
  RequestTimeoutSeconds: Int
  AcceptanceTimeoutSeconds: Int
  AcceptanceRequired: Boolean
  RuleSetName: String
  NotificationTarget: String
  AdditionalPlayerCount: Int
  CustomEventData: String
  GameProperties: [AwsGameLiftS31Input]
  GameSessionData: String
  BackfillMode: String
  FlexMatchMode: String
}

type AwsGameLiftUpdateRuntimeConfigurationOutput {
  RuntimeConfiguration: AwsGameLiftS1j
}

input AwsGameLiftUpdateRuntimeConfigurationInput {
  FleetId: String!
  RuntimeConfiguration: AwsGameLiftS1jInput!
}

type AwsGameLiftUpdateScriptOutput {
  Script: AwsGameLiftS4t
}

input AwsGameLiftUpdateScriptInput {
  ScriptId: String!
  Name: String
  Version: String
  StorageLocation: AwsGameLiftSzInput
  ZipFile: JSON
}

type AwsGameLiftValidateMatchmakingRuleSetOutput {
  Valid: Boolean
}

input AwsGameLiftValidateMatchmakingRuleSetInput {
  RuleSetBody: String!
}

"""Amazon Glacier (2012-06-01)"""
type AwsGlacier {
  abortMultipartUpload(input: AwsGlacierAbortMultipartUploadInput!, config: AwsConfig): JSON
  abortVaultLock(input: AwsGlacierAbortVaultLockInput!, config: AwsConfig): JSON
  addTagsToVault(input: AwsGlacierAddTagsToVaultInput!, config: AwsConfig): JSON
  completeMultipartUpload(input: AwsGlacierCompleteMultipartUploadInput!, config: AwsConfig): JSON
  completeVaultLock(input: AwsGlacierCompleteVaultLockInput!, config: AwsConfig): JSON
  createVault(input: AwsGlacierCreateVaultInput!, config: AwsConfig): AwsGlacierCreateVaultOutput
  deleteArchive(input: AwsGlacierDeleteArchiveInput!, config: AwsConfig): JSON
  deleteVault(input: AwsGlacierDeleteVaultInput!, config: AwsConfig): JSON
  deleteVaultAccessPolicy(input: AwsGlacierDeleteVaultAccessPolicyInput!, config: AwsConfig): JSON
  deleteVaultNotifications(input: AwsGlacierDeleteVaultNotificationsInput!, config: AwsConfig): JSON
  describeJob(input: AwsGlacierDescribeJobInput!, config: AwsConfig): JSON
  describeVault(input: AwsGlacierDescribeVaultInput!, config: AwsConfig): JSON
  getDataRetrievalPolicy(input: AwsGlacierGetDataRetrievalPolicyInput!, config: AwsConfig): AwsGlacierGetDataRetrievalPolicyOutput
  getJobOutput(input: AwsGlacierGetJobOutputInput!, config: AwsConfig): AwsGlacierGetJobOutputOutput
  getVaultAccessPolicy(input: AwsGlacierGetVaultAccessPolicyInput!, config: AwsConfig): AwsGlacierGetVaultAccessPolicyOutput
  getVaultLock(input: AwsGlacierGetVaultLockInput!, config: AwsConfig): AwsGlacierGetVaultLockOutput
  getVaultNotifications(input: AwsGlacierGetVaultNotificationsInput!, config: AwsConfig): AwsGlacierGetVaultNotificationsOutput
  initiateJob(input: AwsGlacierInitiateJobInput!, config: AwsConfig): AwsGlacierInitiateJobOutput
  initiateMultipartUpload(input: AwsGlacierInitiateMultipartUploadInput!, config: AwsConfig): AwsGlacierInitiateMultipartUploadOutput
  initiateVaultLock(input: AwsGlacierInitiateVaultLockInput!, config: AwsConfig): AwsGlacierInitiateVaultLockOutput
  listJobs(input: AwsGlacierListJobsInput!, config: AwsConfig): AwsGlacierListJobsOutput
  listMultipartUploads(input: AwsGlacierListMultipartUploadsInput!, config: AwsConfig): AwsGlacierListMultipartUploadsOutput
  listParts(input: AwsGlacierListPartsInput!, config: AwsConfig): AwsGlacierListPartsOutput
  listProvisionedCapacity(input: AwsGlacierListProvisionedCapacityInput!, config: AwsConfig): AwsGlacierListProvisionedCapacityOutput
  listTagsForVault(input: AwsGlacierListTagsForVaultInput!, config: AwsConfig): AwsGlacierListTagsForVaultOutput
  listVaults(input: AwsGlacierListVaultsInput!, config: AwsConfig): AwsGlacierListVaultsOutput
  purchaseProvisionedCapacity(input: AwsGlacierPurchaseProvisionedCapacityInput!, config: AwsConfig): AwsGlacierPurchaseProvisionedCapacityOutput
  removeTagsFromVault(input: AwsGlacierRemoveTagsFromVaultInput!, config: AwsConfig): JSON
  setDataRetrievalPolicy(input: AwsGlacierSetDataRetrievalPolicyInput!, config: AwsConfig): JSON
  setVaultAccessPolicy(input: AwsGlacierSetVaultAccessPolicyInput!, config: AwsConfig): JSON
  setVaultNotifications(input: AwsGlacierSetVaultNotificationsInput!, config: AwsConfig): JSON
  uploadArchive(input: AwsGlacierUploadArchiveInput!, config: AwsConfig): JSON
  uploadMultipartPart(input: AwsGlacierUploadMultipartPartInput!, config: AwsConfig): AwsGlacierUploadMultipartPartOutput
}

input AwsGlacierAbortMultipartUploadInput {
  accountId: String!
  vaultName: String!
  uploadId: String!
}

input AwsGlacierAbortVaultLockInput {
  accountId: String!
  vaultName: String!
}

input AwsGlacierAddTagsToVaultInput {
  accountId: String!
  vaultName: String!
  Tags: JSON
}

input AwsGlacierCompleteMultipartUploadInput {
  accountId: String!
  vaultName: String!
  uploadId: String!
  archiveSize: String
  checksum: String
}

input AwsGlacierCompleteVaultLockInput {
  accountId: String!
  vaultName: String!
  lockId: String!
}

type AwsGlacierCreateVaultOutput {
  location: String
}

input AwsGlacierCreateVaultInput {
  accountId: String!
  vaultName: String!
}

input AwsGlacierDeleteArchiveInput {
  accountId: String!
  vaultName: String!
  archiveId: String!
}

input AwsGlacierDeleteVaultInput {
  accountId: String!
  vaultName: String!
}

input AwsGlacierDeleteVaultAccessPolicyInput {
  accountId: String!
  vaultName: String!
}

input AwsGlacierDeleteVaultNotificationsInput {
  accountId: String!
  vaultName: String!
}

input AwsGlacierDescribeJobInput {
  accountId: String!
  vaultName: String!
  jobId: String!
}

input AwsGlacierDescribeVaultInput {
  accountId: String!
  vaultName: String!
}

type AwsGlacierGetDataRetrievalPolicyOutput {
  Policy: AwsGlacierS1e
}

type AwsGlacierS1e {
  Rules: [AwsGlacierS1eRules]
}

type AwsGlacierS1eRules {
  Strategy: String
  BytesPerHour: JSON
}

input AwsGlacierGetDataRetrievalPolicyInput {
  accountId: String!
}

type AwsGlacierGetJobOutputOutput {
  body: JSON
  checksum: String
  status: Int
  contentRange: String
  acceptRanges: String
  contentType: String
  archiveDescription: String
}

input AwsGlacierGetJobOutputInput {
  accountId: String!
  vaultName: String!
  jobId: String!
  range: String
}

type AwsGlacierGetVaultAccessPolicyOutput {
  policy: AwsGlacierS1o
}

type AwsGlacierS1o {
  Policy: String
}

input AwsGlacierGetVaultAccessPolicyInput {
  accountId: String!
  vaultName: String!
}

type AwsGlacierGetVaultLockOutput {
  Policy: String
  State: String
  ExpirationDate: String
  CreationDate: String
}

input AwsGlacierGetVaultLockInput {
  accountId: String!
  vaultName: String!
}

type AwsGlacierGetVaultNotificationsOutput {
  vaultNotificationConfig: AwsGlacierS1t
}

type AwsGlacierS1t {
  SNSTopic: String
  Events: [String]
}

input AwsGlacierGetVaultNotificationsInput {
  accountId: String!
  vaultName: String!
}

type AwsGlacierInitiateJobOutput {
  location: String
  jobId: String
  jobOutputPath: String
}

input AwsGlacierInitiateJobInput {
  accountId: String!
  vaultName: String!
  jobParameters: AwsGlacierInitiateJobJobParametersInput
}

input AwsGlacierInitiateJobJobParametersInput {
  Format: String
  Type: String
  ArchiveId: String
  Description: String
  SNSTopic: String
  RetrievalByteRange: String
  Tier: String
  InventoryRetrievalParameters: AwsGlacierInitiateJobJobParametersInventoryRetrievalParametersInput
  SelectParameters: AwsGlacierSpInput
  OutputLocation: AwsGlacierSxInput
}

input AwsGlacierInitiateJobJobParametersInventoryRetrievalParametersInput {
  StartDate: String
  EndDate: String
  Limit: String
  Marker: String
}

input AwsGlacierSpInput {
  InputSerialization: AwsGlacierSpInputSerializationInput
  ExpressionType: String
  Expression: String
  OutputSerialization: AwsGlacierSpOutputSerializationInput
}

input AwsGlacierSpInputSerializationInput {
  csv: AwsGlacierSpInputSerializationCsvInput
}

input AwsGlacierSpInputSerializationCsvInput {
  FileHeaderInfo: String
  Comments: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
}

input AwsGlacierSpOutputSerializationInput {
  csv: AwsGlacierSpOutputSerializationCsvInput
}

input AwsGlacierSpOutputSerializationCsvInput {
  QuoteFields: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
}

input AwsGlacierSxInput {
  S3: AwsGlacierSxS3Input
}

input AwsGlacierSxS3Input {
  BucketName: String
  Prefix: String
  Encryption: AwsGlacierSxS3EncryptionInput
  CannedACL: String
  AccessControlList: [AwsGlacierSxS3AccessControlListInput]
  Tagging: JSON
  UserMetadata: JSON
  StorageClass: String
}

input AwsGlacierSxS3EncryptionInput {
  EncryptionType: String
  KMSKeyId: String
  KMSContext: String
}

input AwsGlacierSxS3AccessControlListInput {
  Grantee: AwsGlacierSxS3AccessControlListGranteeInput
  Permission: String
}

input AwsGlacierSxS3AccessControlListGranteeInput {
  Type: String!
  DisplayName: String
  URI: String
  ID: String
  EmailAddress: String
}

type AwsGlacierInitiateMultipartUploadOutput {
  location: String
  uploadId: String
}

input AwsGlacierInitiateMultipartUploadInput {
  accountId: String!
  vaultName: String!
  archiveDescription: String
  partSize: String
}

type AwsGlacierInitiateVaultLockOutput {
  lockId: String
}

input AwsGlacierInitiateVaultLockInput {
  accountId: String!
  vaultName: String!
  policy: AwsGlacierInitiateVaultLockPolicyInput
}

input AwsGlacierInitiateVaultLockPolicyInput {
  Policy: String
}

type AwsGlacierListJobsOutput {
  JobList: [AwsGlacierSi]
  Marker: String
}

type AwsGlacierSi {
  JobId: String
  JobDescription: String
  Action: String
  ArchiveId: String
  VaultARN: String
  CreationDate: String
  Completed: Boolean
  StatusCode: String
  StatusMessage: String
  ArchiveSizeInBytes: JSON
  InventorySizeInBytes: JSON
  SNSTopic: String
  CompletionDate: String
  SHA256TreeHash: String
  ArchiveSHA256TreeHash: String
  RetrievalByteRange: String
  Tier: String
  InventoryRetrievalParameters: AwsGlacierSiInventoryRetrievalParameters
  JobOutputPath: String
  SelectParameters: AwsGlacierSp
  OutputLocation: AwsGlacierSx
}

type AwsGlacierSiInventoryRetrievalParameters {
  Format: String
  StartDate: String
  EndDate: String
  Limit: String
  Marker: String
}

type AwsGlacierSp {
  InputSerialization: AwsGlacierSpInputSerialization
  ExpressionType: String
  Expression: String
  OutputSerialization: AwsGlacierSpOutputSerialization
}

type AwsGlacierSpInputSerialization {
  csv: AwsGlacierSpInputSerializationCsv
}

type AwsGlacierSpInputSerializationCsv {
  FileHeaderInfo: String
  Comments: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
}

type AwsGlacierSpOutputSerialization {
  csv: AwsGlacierSpOutputSerializationCsv
}

type AwsGlacierSpOutputSerializationCsv {
  QuoteFields: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
}

type AwsGlacierSx {
  S3: AwsGlacierSxS3
}

type AwsGlacierSxS3 {
  BucketName: String
  Prefix: String
  Encryption: AwsGlacierSxS3Encryption
  CannedACL: String
  AccessControlList: [AwsGlacierSxS3AccessControlList]
  Tagging: JSON
  UserMetadata: JSON
  StorageClass: String
}

type AwsGlacierSxS3Encryption {
  EncryptionType: String
  KMSKeyId: String
  KMSContext: String
}

type AwsGlacierSxS3AccessControlList {
  Grantee: AwsGlacierSxS3AccessControlListGrantee
  Permission: String
}

type AwsGlacierSxS3AccessControlListGrantee {
  Type: String!
  DisplayName: String
  URI: String
  ID: String
  EmailAddress: String
}

input AwsGlacierListJobsInput {
  accountId: String!
  vaultName: String!
  limit: String
  marker: String
  statuscode: String
  completed: String
}

type AwsGlacierListMultipartUploadsOutput {
  UploadsList: [AwsGlacierListMultipartUploadsOutputUploadsList]
  Marker: String
}

type AwsGlacierListMultipartUploadsOutputUploadsList {
  MultipartUploadId: String
  VaultARN: String
  ArchiveDescription: String
  PartSizeInBytes: JSON
  CreationDate: String
}

input AwsGlacierListMultipartUploadsInput {
  accountId: String!
  vaultName: String!
  marker: String
  limit: String
}

type AwsGlacierListPartsOutput {
  MultipartUploadId: String
  VaultARN: String
  ArchiveDescription: String
  PartSizeInBytes: JSON
  CreationDate: String
  Parts: [AwsGlacierListPartsOutputParts]
  Marker: String
}

type AwsGlacierListPartsOutputParts {
  RangeInBytes: String
  SHA256TreeHash: String
}

input AwsGlacierListPartsInput {
  accountId: String!
  vaultName: String!
  uploadId: String!
  marker: String
  limit: String
}

type AwsGlacierListProvisionedCapacityOutput {
  ProvisionedCapacityList: [AwsGlacierListProvisionedCapacityOutputProvisionedCapacityList]
}

type AwsGlacierListProvisionedCapacityOutputProvisionedCapacityList {
  CapacityId: String
  StartDate: String
  ExpirationDate: String
}

input AwsGlacierListProvisionedCapacityInput {
  accountId: String!
}

type AwsGlacierListTagsForVaultOutput {
  Tags: JSON
}

input AwsGlacierListTagsForVaultInput {
  accountId: String!
  vaultName: String!
}

type AwsGlacierListVaultsOutput {
  VaultList: [AwsGlacierS1a]
  Marker: String
}

type AwsGlacierS1a {
  VaultARN: String
  VaultName: String
  CreationDate: String
  LastInventoryDate: String
  NumberOfArchives: JSON
  SizeInBytes: JSON
}

input AwsGlacierListVaultsInput {
  accountId: String!
  marker: String
  limit: String
}

type AwsGlacierPurchaseProvisionedCapacityOutput {
  capacityId: String
}

input AwsGlacierPurchaseProvisionedCapacityInput {
  accountId: String!
}

input AwsGlacierRemoveTagsFromVaultInput {
  accountId: String!
  vaultName: String!
  TagKeys: [String]
}

input AwsGlacierSetDataRetrievalPolicyInput {
  accountId: String!
  Policy: AwsGlacierS1eInput
}

input AwsGlacierS1eInput {
  Rules: [AwsGlacierS1eRulesInput]
}

input AwsGlacierS1eRulesInput {
  Strategy: String
  BytesPerHour: JSON
}

input AwsGlacierSetVaultAccessPolicyInput {
  accountId: String!
  vaultName: String!
  policy: AwsGlacierS1oInput
}

input AwsGlacierS1oInput {
  Policy: String
}

input AwsGlacierSetVaultNotificationsInput {
  accountId: String!
  vaultName: String!
  vaultNotificationConfig: AwsGlacierS1tInput
}

input AwsGlacierS1tInput {
  SNSTopic: String
  Events: [String]
}

input AwsGlacierUploadArchiveInput {
  vaultName: String!
  accountId: String!
  archiveDescription: String
  checksum: String
  body: JSON
}

type AwsGlacierUploadMultipartPartOutput {
  checksum: String
}

input AwsGlacierUploadMultipartPartInput {
  accountId: String!
  vaultName: String!
  uploadId: String!
  checksum: String
  range: String
  body: JSON
}

"""AWS Global Accelerator (2018-08-08)"""
type AwsGlobalAccelerator {
  addCustomRoutingEndpoints(input: AwsGlobalAcceleratorAddCustomRoutingEndpointsInput!, config: AwsConfig): AwsGlobalAcceleratorAddCustomRoutingEndpointsOutput
  advertiseByoipCidr(input: AwsGlobalAcceleratorAdvertiseByoipCidrInput!, config: AwsConfig): AwsGlobalAcceleratorAdvertiseByoipCidrOutput
  allowCustomRoutingTraffic(input: AwsGlobalAcceleratorAllowCustomRoutingTrafficInput!, config: AwsConfig): JSON
  createAccelerator(input: AwsGlobalAcceleratorCreateAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorCreateAcceleratorOutput
  createCustomRoutingAccelerator(input: AwsGlobalAcceleratorCreateCustomRoutingAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorCreateCustomRoutingAcceleratorOutput
  createCustomRoutingEndpointGroup(input: AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupInput!, config: AwsConfig): AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupOutput
  createCustomRoutingListener(input: AwsGlobalAcceleratorCreateCustomRoutingListenerInput!, config: AwsConfig): AwsGlobalAcceleratorCreateCustomRoutingListenerOutput
  createEndpointGroup(input: AwsGlobalAcceleratorCreateEndpointGroupInput!, config: AwsConfig): AwsGlobalAcceleratorCreateEndpointGroupOutput
  createListener(input: AwsGlobalAcceleratorCreateListenerInput!, config: AwsConfig): AwsGlobalAcceleratorCreateListenerOutput
  deleteAccelerator(input: AwsGlobalAcceleratorDeleteAcceleratorInput!, config: AwsConfig): JSON
  deleteCustomRoutingAccelerator(input: AwsGlobalAcceleratorDeleteCustomRoutingAcceleratorInput!, config: AwsConfig): JSON
  deleteCustomRoutingEndpointGroup(input: AwsGlobalAcceleratorDeleteCustomRoutingEndpointGroupInput!, config: AwsConfig): JSON
  deleteCustomRoutingListener(input: AwsGlobalAcceleratorDeleteCustomRoutingListenerInput!, config: AwsConfig): JSON
  deleteEndpointGroup(input: AwsGlobalAcceleratorDeleteEndpointGroupInput!, config: AwsConfig): JSON
  deleteListener(input: AwsGlobalAcceleratorDeleteListenerInput!, config: AwsConfig): JSON
  denyCustomRoutingTraffic(input: AwsGlobalAcceleratorDenyCustomRoutingTrafficInput!, config: AwsConfig): JSON
  deprovisionByoipCidr(input: AwsGlobalAcceleratorDeprovisionByoipCidrInput!, config: AwsConfig): AwsGlobalAcceleratorDeprovisionByoipCidrOutput
  describeAccelerator(input: AwsGlobalAcceleratorDescribeAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeAcceleratorOutput
  describeAcceleratorAttributes(input: AwsGlobalAcceleratorDescribeAcceleratorAttributesInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeAcceleratorAttributesOutput
  describeCustomRoutingAccelerator(input: AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorOutput
  describeCustomRoutingAcceleratorAttributes(input: AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorAttributesInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorAttributesOutput
  describeCustomRoutingEndpointGroup(input: AwsGlobalAcceleratorDescribeCustomRoutingEndpointGroupInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeCustomRoutingEndpointGroupOutput
  describeCustomRoutingListener(input: AwsGlobalAcceleratorDescribeCustomRoutingListenerInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeCustomRoutingListenerOutput
  describeEndpointGroup(input: AwsGlobalAcceleratorDescribeEndpointGroupInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeEndpointGroupOutput
  describeListener(input: AwsGlobalAcceleratorDescribeListenerInput!, config: AwsConfig): AwsGlobalAcceleratorDescribeListenerOutput
  listAccelerators(input: AwsGlobalAcceleratorListAcceleratorsInput, config: AwsConfig): AwsGlobalAcceleratorListAcceleratorsOutput
  listByoipCidrs(input: AwsGlobalAcceleratorListByoipCidrsInput, config: AwsConfig): AwsGlobalAcceleratorListByoipCidrsOutput
  listCustomRoutingAccelerators(input: AwsGlobalAcceleratorListCustomRoutingAcceleratorsInput, config: AwsConfig): AwsGlobalAcceleratorListCustomRoutingAcceleratorsOutput
  listCustomRoutingEndpointGroups(input: AwsGlobalAcceleratorListCustomRoutingEndpointGroupsInput!, config: AwsConfig): AwsGlobalAcceleratorListCustomRoutingEndpointGroupsOutput
  listCustomRoutingListeners(input: AwsGlobalAcceleratorListCustomRoutingListenersInput!, config: AwsConfig): AwsGlobalAcceleratorListCustomRoutingListenersOutput
  listCustomRoutingPortMappings(input: AwsGlobalAcceleratorListCustomRoutingPortMappingsInput!, config: AwsConfig): AwsGlobalAcceleratorListCustomRoutingPortMappingsOutput
  listCustomRoutingPortMappingsByDestination(input: AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationInput!, config: AwsConfig): AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationOutput
  listEndpointGroups(input: AwsGlobalAcceleratorListEndpointGroupsInput!, config: AwsConfig): AwsGlobalAcceleratorListEndpointGroupsOutput
  listListeners(input: AwsGlobalAcceleratorListListenersInput!, config: AwsConfig): AwsGlobalAcceleratorListListenersOutput
  listTagsForResource(input: AwsGlobalAcceleratorListTagsForResourceInput!, config: AwsConfig): AwsGlobalAcceleratorListTagsForResourceOutput
  provisionByoipCidr(input: AwsGlobalAcceleratorProvisionByoipCidrInput!, config: AwsConfig): AwsGlobalAcceleratorProvisionByoipCidrOutput
  removeCustomRoutingEndpoints(input: AwsGlobalAcceleratorRemoveCustomRoutingEndpointsInput!, config: AwsConfig): JSON
  tagResource(input: AwsGlobalAcceleratorTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGlobalAcceleratorUntagResourceInput!, config: AwsConfig): JSON
  updateAccelerator(input: AwsGlobalAcceleratorUpdateAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateAcceleratorOutput
  updateAcceleratorAttributes(input: AwsGlobalAcceleratorUpdateAcceleratorAttributesInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateAcceleratorAttributesOutput
  updateCustomRoutingAccelerator(input: AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorOutput
  updateCustomRoutingAcceleratorAttributes(input: AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorAttributesInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorAttributesOutput
  updateCustomRoutingListener(input: AwsGlobalAcceleratorUpdateCustomRoutingListenerInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateCustomRoutingListenerOutput
  updateEndpointGroup(input: AwsGlobalAcceleratorUpdateEndpointGroupInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateEndpointGroupOutput
  updateListener(input: AwsGlobalAcceleratorUpdateListenerInput!, config: AwsConfig): AwsGlobalAcceleratorUpdateListenerOutput
  withdrawByoipCidr(input: AwsGlobalAcceleratorWithdrawByoipCidrInput!, config: AwsConfig): AwsGlobalAcceleratorWithdrawByoipCidrOutput
}

type AwsGlobalAcceleratorAddCustomRoutingEndpointsOutput {
  EndpointDescriptions: [AwsGlobalAcceleratorS6]
  EndpointGroupArn: String
}

type AwsGlobalAcceleratorS6 {
  EndpointId: String
}

input AwsGlobalAcceleratorAddCustomRoutingEndpointsInput {
  EndpointConfigurations: [AwsGlobalAcceleratorAddCustomRoutingEndpointsEndpointConfigurationsInput]!
  EndpointGroupArn: String!
}

input AwsGlobalAcceleratorAddCustomRoutingEndpointsEndpointConfigurationsInput {
  EndpointId: String
}

type AwsGlobalAcceleratorAdvertiseByoipCidrOutput {
  ByoipCidr: AwsGlobalAcceleratorSa
}

type AwsGlobalAcceleratorSa {
  Cidr: String
  State: String
  Events: [AwsGlobalAcceleratorSaEvents]
}

type AwsGlobalAcceleratorSaEvents {
  Message: String
  Timestamp: Date
}

input AwsGlobalAcceleratorAdvertiseByoipCidrInput {
  Cidr: String!
}

input AwsGlobalAcceleratorAllowCustomRoutingTrafficInput {
  EndpointGroupArn: String!
  EndpointId: String!
  DestinationAddresses: [String]
  DestinationPorts: [Int]
  AllowAllTrafficToEndpoint: Boolean
}

type AwsGlobalAcceleratorCreateAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorSu
}

type AwsGlobalAcceleratorSu {
  AcceleratorArn: String
  Name: String
  IpAddressType: String
  Enabled: Boolean
  IpSets: [AwsGlobalAcceleratorSv]
  DnsName: String
  Status: String
  CreatedTime: Date
  LastModifiedTime: Date
}

type AwsGlobalAcceleratorSv {
  IpFamily: String
  IpAddresses: [String]
}

input AwsGlobalAcceleratorCreateAcceleratorInput {
  Name: String!
  IpAddressType: String
  IpAddresses: [String]
  Enabled: Boolean
  IdempotencyToken: String!
  Tags: [AwsGlobalAcceleratorSpInput]
}

input AwsGlobalAcceleratorSpInput {
  Key: String!
  Value: String!
}

type AwsGlobalAcceleratorCreateCustomRoutingAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorS10
}

type AwsGlobalAcceleratorS10 {
  AcceleratorArn: String
  Name: String
  IpAddressType: String
  Enabled: Boolean
  IpSets: [AwsGlobalAcceleratorSv]
  DnsName: String
  Status: String
  CreatedTime: Date
  LastModifiedTime: Date
}

input AwsGlobalAcceleratorCreateCustomRoutingAcceleratorInput {
  Name: String!
  IpAddressType: String
  IpAddresses: [String]
  Enabled: Boolean
  IdempotencyToken: String!
  Tags: [AwsGlobalAcceleratorSpInput]
}

type AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupOutput {
  EndpointGroup: AwsGlobalAcceleratorS18
}

type AwsGlobalAcceleratorS18 {
  EndpointGroupArn: String
  EndpointGroupRegion: String
  DestinationDescriptions: [AwsGlobalAcceleratorS18DestinationDescriptions]
  EndpointDescriptions: [AwsGlobalAcceleratorS6]
}

type AwsGlobalAcceleratorS18DestinationDescriptions {
  FromPort: Int
  ToPort: Int
  Protocols: [String]
}

input AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupInput {
  ListenerArn: String!
  EndpointGroupRegion: String!
  DestinationConfigurations: [AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupDestinationConfigurationsInput]!
  IdempotencyToken: String!
}

input AwsGlobalAcceleratorCreateCustomRoutingEndpointGroupDestinationConfigurationsInput {
  FromPort: Int!
  ToPort: Int!
  Protocols: [String]!
}

type AwsGlobalAcceleratorCreateCustomRoutingListenerOutput {
  Listener: AwsGlobalAcceleratorS1h
}

type AwsGlobalAcceleratorS1h {
  ListenerArn: String
  PortRanges: [AwsGlobalAcceleratorS1e]
}

type AwsGlobalAcceleratorS1e {
  FromPort: Int
  ToPort: Int
}

input AwsGlobalAcceleratorCreateCustomRoutingListenerInput {
  AcceleratorArn: String!
  PortRanges: [AwsGlobalAcceleratorS1eInput]!
  IdempotencyToken: String!
}

input AwsGlobalAcceleratorS1eInput {
  FromPort: Int
  ToPort: Int
}

type AwsGlobalAcceleratorCreateEndpointGroupOutput {
  EndpointGroup: AwsGlobalAcceleratorS1v
}

type AwsGlobalAcceleratorS1v {
  EndpointGroupArn: String
  EndpointGroupRegion: String
  EndpointDescriptions: [AwsGlobalAcceleratorS1vEndpointDescriptions]
  TrafficDialPercentage: Float
  HealthCheckPort: Int
  HealthCheckProtocol: String
  HealthCheckPath: String
  HealthCheckIntervalSeconds: Int
  ThresholdCount: Int
  PortOverrides: [AwsGlobalAcceleratorS1s]
}

type AwsGlobalAcceleratorS1vEndpointDescriptions {
  EndpointId: String
  Weight: Int
  HealthState: String
  HealthReason: String
  ClientIPPreservationEnabled: Boolean
}

type AwsGlobalAcceleratorS1s {
  ListenerPort: Int
  EndpointPort: Int
}

input AwsGlobalAcceleratorCreateEndpointGroupInput {
  ListenerArn: String!
  EndpointGroupRegion: String!
  EndpointConfigurations: [AwsGlobalAcceleratorS1jInput]
  TrafficDialPercentage: Float
  HealthCheckPort: Int
  HealthCheckProtocol: String
  HealthCheckPath: String
  HealthCheckIntervalSeconds: Int
  ThresholdCount: Int
  IdempotencyToken: String!
  PortOverrides: [AwsGlobalAcceleratorS1sInput]
}

input AwsGlobalAcceleratorS1jInput {
  EndpointId: String
  Weight: Int
  ClientIPPreservationEnabled: Boolean
}

input AwsGlobalAcceleratorS1sInput {
  ListenerPort: Int
  EndpointPort: Int
}

type AwsGlobalAcceleratorCreateListenerOutput {
  Listener: AwsGlobalAcceleratorS22
}

type AwsGlobalAcceleratorS22 {
  ListenerArn: String
  PortRanges: [AwsGlobalAcceleratorS1e]
  Protocol: String
  ClientAffinity: String
}

input AwsGlobalAcceleratorCreateListenerInput {
  AcceleratorArn: String!
  PortRanges: [AwsGlobalAcceleratorS1eInput]!
  Protocol: String!
  ClientAffinity: String
  IdempotencyToken: String!
}

input AwsGlobalAcceleratorDeleteAcceleratorInput {
  AcceleratorArn: String!
}

input AwsGlobalAcceleratorDeleteCustomRoutingAcceleratorInput {
  AcceleratorArn: String!
}

input AwsGlobalAcceleratorDeleteCustomRoutingEndpointGroupInput {
  EndpointGroupArn: String!
}

input AwsGlobalAcceleratorDeleteCustomRoutingListenerInput {
  ListenerArn: String!
}

input AwsGlobalAcceleratorDeleteEndpointGroupInput {
  EndpointGroupArn: String!
}

input AwsGlobalAcceleratorDeleteListenerInput {
  ListenerArn: String!
}

input AwsGlobalAcceleratorDenyCustomRoutingTrafficInput {
  EndpointGroupArn: String!
  EndpointId: String!
  DestinationAddresses: [String]
  DestinationPorts: [Int]
  DenyAllTrafficToEndpoint: Boolean
}

type AwsGlobalAcceleratorDeprovisionByoipCidrOutput {
  ByoipCidr: AwsGlobalAcceleratorSa
}

input AwsGlobalAcceleratorDeprovisionByoipCidrInput {
  Cidr: String!
}

type AwsGlobalAcceleratorDescribeAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorSu
}

input AwsGlobalAcceleratorDescribeAcceleratorInput {
  AcceleratorArn: String!
}

type AwsGlobalAcceleratorDescribeAcceleratorAttributesOutput {
  AcceleratorAttributes: AwsGlobalAcceleratorS2g
}

type AwsGlobalAcceleratorS2g {
  FlowLogsEnabled: Boolean
  FlowLogsS3Bucket: String
  FlowLogsS3Prefix: String
}

input AwsGlobalAcceleratorDescribeAcceleratorAttributesInput {
  AcceleratorArn: String!
}

type AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorS10
}

input AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorInput {
  AcceleratorArn: String!
}

type AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorAttributesOutput {
  AcceleratorAttributes: AwsGlobalAcceleratorS2l
}

type AwsGlobalAcceleratorS2l {
  FlowLogsEnabled: Boolean
  FlowLogsS3Bucket: String
  FlowLogsS3Prefix: String
}

input AwsGlobalAcceleratorDescribeCustomRoutingAcceleratorAttributesInput {
  AcceleratorArn: String!
}

type AwsGlobalAcceleratorDescribeCustomRoutingEndpointGroupOutput {
  EndpointGroup: AwsGlobalAcceleratorS18
}

input AwsGlobalAcceleratorDescribeCustomRoutingEndpointGroupInput {
  EndpointGroupArn: String!
}

type AwsGlobalAcceleratorDescribeCustomRoutingListenerOutput {
  Listener: AwsGlobalAcceleratorS1h
}

input AwsGlobalAcceleratorDescribeCustomRoutingListenerInput {
  ListenerArn: String!
}

type AwsGlobalAcceleratorDescribeEndpointGroupOutput {
  EndpointGroup: AwsGlobalAcceleratorS1v
}

input AwsGlobalAcceleratorDescribeEndpointGroupInput {
  EndpointGroupArn: String!
}

type AwsGlobalAcceleratorDescribeListenerOutput {
  Listener: AwsGlobalAcceleratorS22
}

input AwsGlobalAcceleratorDescribeListenerInput {
  ListenerArn: String!
}

type AwsGlobalAcceleratorListAcceleratorsOutput {
  Accelerators: [AwsGlobalAcceleratorSu]
  NextToken: String
}

input AwsGlobalAcceleratorListAcceleratorsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListByoipCidrsOutput {
  ByoipCidrs: [AwsGlobalAcceleratorSa]
  NextToken: String
}

input AwsGlobalAcceleratorListByoipCidrsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingAcceleratorsOutput {
  Accelerators: [AwsGlobalAcceleratorS10]
  NextToken: String
}

input AwsGlobalAcceleratorListCustomRoutingAcceleratorsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingEndpointGroupsOutput {
  EndpointGroups: [AwsGlobalAcceleratorS18]
  NextToken: String
}

input AwsGlobalAcceleratorListCustomRoutingEndpointGroupsInput {
  ListenerArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingListenersOutput {
  Listeners: [AwsGlobalAcceleratorS1h]
  NextToken: String
}

input AwsGlobalAcceleratorListCustomRoutingListenersInput {
  AcceleratorArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingPortMappingsOutput {
  PortMappings: [AwsGlobalAcceleratorListCustomRoutingPortMappingsOutputPortMappings]
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingPortMappingsOutputPortMappings {
  AcceleratorPort: Int
  EndpointGroupArn: String
  EndpointId: String
  DestinationSocketAddress: AwsGlobalAcceleratorS3f
  Protocols: [String]
  DestinationTrafficState: String
}

type AwsGlobalAcceleratorS3f {
  IpAddress: String
  Port: Int
}

input AwsGlobalAcceleratorListCustomRoutingPortMappingsInput {
  AcceleratorArn: String!
  EndpointGroupArn: String
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationOutput {
  DestinationPortMappings: [AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationOutputDestinationPortMappings]
  NextToken: String
}

type AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationOutputDestinationPortMappings {
  AcceleratorArn: String
  AcceleratorSocketAddresses: [AwsGlobalAcceleratorS3f]
  EndpointGroupArn: String
  EndpointId: String
  EndpointGroupRegion: String
  DestinationSocketAddress: AwsGlobalAcceleratorS3f
  IpAddressType: String
  DestinationTrafficState: String
}

input AwsGlobalAcceleratorListCustomRoutingPortMappingsByDestinationInput {
  EndpointId: String!
  DestinationAddress: String!
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListEndpointGroupsOutput {
  EndpointGroups: [AwsGlobalAcceleratorS1v]
  NextToken: String
}

input AwsGlobalAcceleratorListEndpointGroupsInput {
  ListenerArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListListenersOutput {
  Listeners: [AwsGlobalAcceleratorS22]
  NextToken: String
}

input AwsGlobalAcceleratorListListenersInput {
  AcceleratorArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsGlobalAcceleratorListTagsForResourceOutput {
  Tags: [AwsGlobalAcceleratorSp]
}

type AwsGlobalAcceleratorSp {
  Key: String!
  Value: String!
}

input AwsGlobalAcceleratorListTagsForResourceInput {
  ResourceArn: String!
}

type AwsGlobalAcceleratorProvisionByoipCidrOutput {
  ByoipCidr: AwsGlobalAcceleratorSa
}

input AwsGlobalAcceleratorProvisionByoipCidrInput {
  Cidr: String!
  CidrAuthorizationContext: AwsGlobalAcceleratorProvisionByoipCidrCidrAuthorizationContextInput!
}

input AwsGlobalAcceleratorProvisionByoipCidrCidrAuthorizationContextInput {
  Message: String!
  Signature: String!
}

input AwsGlobalAcceleratorRemoveCustomRoutingEndpointsInput {
  EndpointIds: [String]!
  EndpointGroupArn: String!
}

input AwsGlobalAcceleratorTagResourceInput {
  ResourceArn: String!
  Tags: [AwsGlobalAcceleratorSpInput]!
}

input AwsGlobalAcceleratorUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsGlobalAcceleratorUpdateAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorSu
}

input AwsGlobalAcceleratorUpdateAcceleratorInput {
  AcceleratorArn: String!
  Name: String
  IpAddressType: String
  Enabled: Boolean
}

type AwsGlobalAcceleratorUpdateAcceleratorAttributesOutput {
  AcceleratorAttributes: AwsGlobalAcceleratorS2g
}

input AwsGlobalAcceleratorUpdateAcceleratorAttributesInput {
  AcceleratorArn: String!
  FlowLogsEnabled: Boolean
  FlowLogsS3Bucket: String
  FlowLogsS3Prefix: String
}

type AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorOutput {
  Accelerator: AwsGlobalAcceleratorS10
}

input AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorInput {
  AcceleratorArn: String!
  Name: String
  IpAddressType: String
  Enabled: Boolean
}

type AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorAttributesOutput {
  AcceleratorAttributes: AwsGlobalAcceleratorS2l
}

input AwsGlobalAcceleratorUpdateCustomRoutingAcceleratorAttributesInput {
  AcceleratorArn: String!
  FlowLogsEnabled: Boolean
  FlowLogsS3Bucket: String
  FlowLogsS3Prefix: String
}

type AwsGlobalAcceleratorUpdateCustomRoutingListenerOutput {
  Listener: AwsGlobalAcceleratorS1h
}

input AwsGlobalAcceleratorUpdateCustomRoutingListenerInput {
  ListenerArn: String!
  PortRanges: [AwsGlobalAcceleratorS1eInput]!
}

type AwsGlobalAcceleratorUpdateEndpointGroupOutput {
  EndpointGroup: AwsGlobalAcceleratorS1v
}

input AwsGlobalAcceleratorUpdateEndpointGroupInput {
  EndpointGroupArn: String!
  EndpointConfigurations: [AwsGlobalAcceleratorS1jInput]
  TrafficDialPercentage: Float
  HealthCheckPort: Int
  HealthCheckProtocol: String
  HealthCheckPath: String
  HealthCheckIntervalSeconds: Int
  ThresholdCount: Int
  PortOverrides: [AwsGlobalAcceleratorS1sInput]
}

type AwsGlobalAcceleratorUpdateListenerOutput {
  Listener: AwsGlobalAcceleratorS22
}

input AwsGlobalAcceleratorUpdateListenerInput {
  ListenerArn: String!
  PortRanges: [AwsGlobalAcceleratorS1eInput]
  Protocol: String
  ClientAffinity: String
}

type AwsGlobalAcceleratorWithdrawByoipCidrOutput {
  ByoipCidr: AwsGlobalAcceleratorSa
}

input AwsGlobalAcceleratorWithdrawByoipCidrInput {
  Cidr: String!
}

"""AWS Glue (2017-03-31)"""
type AwsGlue {
  batchCreatePartition(input: AwsGlueBatchCreatePartitionInput!, config: AwsConfig): AwsGlueBatchCreatePartitionOutput
  batchDeleteConnection(input: AwsGlueBatchDeleteConnectionInput!, config: AwsConfig): AwsGlueBatchDeleteConnectionOutput
  batchDeletePartition(input: AwsGlueBatchDeletePartitionInput!, config: AwsConfig): AwsGlueBatchDeletePartitionOutput
  batchDeleteTable(input: AwsGlueBatchDeleteTableInput!, config: AwsConfig): AwsGlueBatchDeleteTableOutput
  batchDeleteTableVersion(input: AwsGlueBatchDeleteTableVersionInput!, config: AwsConfig): AwsGlueBatchDeleteTableVersionOutput
  batchGetCrawlers(input: AwsGlueBatchGetCrawlersInput!, config: AwsConfig): AwsGlueBatchGetCrawlersOutput
  batchGetDevEndpoints(input: AwsGlueBatchGetDevEndpointsInput!, config: AwsConfig): AwsGlueBatchGetDevEndpointsOutput
  batchGetJobs(input: AwsGlueBatchGetJobsInput!, config: AwsConfig): AwsGlueBatchGetJobsOutput
  batchGetPartition(input: AwsGlueBatchGetPartitionInput!, config: AwsConfig): AwsGlueBatchGetPartitionOutput
  batchGetTriggers(input: AwsGlueBatchGetTriggersInput!, config: AwsConfig): AwsGlueBatchGetTriggersOutput
  batchGetWorkflows(input: AwsGlueBatchGetWorkflowsInput!, config: AwsConfig): AwsGlueBatchGetWorkflowsOutput
  batchStopJobRun(input: AwsGlueBatchStopJobRunInput!, config: AwsConfig): AwsGlueBatchStopJobRunOutput
  batchUpdatePartition(input: AwsGlueBatchUpdatePartitionInput!, config: AwsConfig): AwsGlueBatchUpdatePartitionOutput
  cancelMLTaskRun(input: AwsGlueCancelMLTaskRunInput!, config: AwsConfig): AwsGlueCancelMLTaskRunOutput
  checkSchemaVersionValidity(input: AwsGlueCheckSchemaVersionValidityInput!, config: AwsConfig): AwsGlueCheckSchemaVersionValidityOutput
  createClassifier(input: AwsGlueCreateClassifierInput, config: AwsConfig): JSON
  createConnection(input: AwsGlueCreateConnectionInput!, config: AwsConfig): JSON
  createCrawler(input: AwsGlueCreateCrawlerInput!, config: AwsConfig): JSON
  createDatabase(input: AwsGlueCreateDatabaseInput!, config: AwsConfig): JSON
  createDevEndpoint(input: AwsGlueCreateDevEndpointInput!, config: AwsConfig): AwsGlueCreateDevEndpointOutput
  createJob(input: AwsGlueCreateJobInput!, config: AwsConfig): AwsGlueCreateJobOutput
  createMLTransform(input: AwsGlueCreateMLTransformInput!, config: AwsConfig): AwsGlueCreateMLTransformOutput
  createPartition(input: AwsGlueCreatePartitionInput!, config: AwsConfig): JSON
  createPartitionIndex(input: AwsGlueCreatePartitionIndexInput!, config: AwsConfig): JSON
  createRegistry(input: AwsGlueCreateRegistryInput!, config: AwsConfig): AwsGlueCreateRegistryOutput
  createSchema(input: AwsGlueCreateSchemaInput!, config: AwsConfig): AwsGlueCreateSchemaOutput
  createScript(input: AwsGlueCreateScriptInput, config: AwsConfig): AwsGlueCreateScriptOutput
  createSecurityConfiguration(input: AwsGlueCreateSecurityConfigurationInput!, config: AwsConfig): AwsGlueCreateSecurityConfigurationOutput
  createTable(input: AwsGlueCreateTableInput!, config: AwsConfig): JSON
  createTrigger(input: AwsGlueCreateTriggerInput!, config: AwsConfig): AwsGlueCreateTriggerOutput
  createUserDefinedFunction(input: AwsGlueCreateUserDefinedFunctionInput!, config: AwsConfig): JSON
  createWorkflow(input: AwsGlueCreateWorkflowInput!, config: AwsConfig): AwsGlueCreateWorkflowOutput
  deleteClassifier(input: AwsGlueDeleteClassifierInput!, config: AwsConfig): JSON
  deleteColumnStatisticsForPartition(input: AwsGlueDeleteColumnStatisticsForPartitionInput!, config: AwsConfig): JSON
  deleteColumnStatisticsForTable(input: AwsGlueDeleteColumnStatisticsForTableInput!, config: AwsConfig): JSON
  deleteConnection(input: AwsGlueDeleteConnectionInput!, config: AwsConfig): JSON
  deleteCrawler(input: AwsGlueDeleteCrawlerInput!, config: AwsConfig): JSON
  deleteDatabase(input: AwsGlueDeleteDatabaseInput!, config: AwsConfig): JSON
  deleteDevEndpoint(input: AwsGlueDeleteDevEndpointInput!, config: AwsConfig): JSON
  deleteJob(input: AwsGlueDeleteJobInput!, config: AwsConfig): AwsGlueDeleteJobOutput
  deleteMLTransform(input: AwsGlueDeleteMLTransformInput!, config: AwsConfig): AwsGlueDeleteMLTransformOutput
  deletePartition(input: AwsGlueDeletePartitionInput!, config: AwsConfig): JSON
  deletePartitionIndex(input: AwsGlueDeletePartitionIndexInput!, config: AwsConfig): JSON
  deleteRegistry(input: AwsGlueDeleteRegistryInput!, config: AwsConfig): AwsGlueDeleteRegistryOutput
  deleteResourcePolicy(input: AwsGlueDeleteResourcePolicyInput, config: AwsConfig): JSON
  deleteSchema(input: AwsGlueDeleteSchemaInput!, config: AwsConfig): AwsGlueDeleteSchemaOutput
  deleteSchemaVersions(input: AwsGlueDeleteSchemaVersionsInput!, config: AwsConfig): AwsGlueDeleteSchemaVersionsOutput
  deleteSecurityConfiguration(input: AwsGlueDeleteSecurityConfigurationInput!, config: AwsConfig): JSON
  deleteTable(input: AwsGlueDeleteTableInput!, config: AwsConfig): JSON
  deleteTableVersion(input: AwsGlueDeleteTableVersionInput!, config: AwsConfig): JSON
  deleteTrigger(input: AwsGlueDeleteTriggerInput!, config: AwsConfig): AwsGlueDeleteTriggerOutput
  deleteUserDefinedFunction(input: AwsGlueDeleteUserDefinedFunctionInput!, config: AwsConfig): JSON
  deleteWorkflow(input: AwsGlueDeleteWorkflowInput!, config: AwsConfig): AwsGlueDeleteWorkflowOutput
  getCatalogImportStatus(input: AwsGlueGetCatalogImportStatusInput, config: AwsConfig): AwsGlueGetCatalogImportStatusOutput
  getClassifier(input: AwsGlueGetClassifierInput!, config: AwsConfig): AwsGlueGetClassifierOutput
  getClassifiers(input: AwsGlueGetClassifiersInput, config: AwsConfig): AwsGlueGetClassifiersOutput
  getColumnStatisticsForPartition(input: AwsGlueGetColumnStatisticsForPartitionInput!, config: AwsConfig): AwsGlueGetColumnStatisticsForPartitionOutput
  getColumnStatisticsForTable(input: AwsGlueGetColumnStatisticsForTableInput!, config: AwsConfig): AwsGlueGetColumnStatisticsForTableOutput
  getConnection(input: AwsGlueGetConnectionInput!, config: AwsConfig): AwsGlueGetConnectionOutput
  getConnections(input: AwsGlueGetConnectionsInput, config: AwsConfig): AwsGlueGetConnectionsOutput
  getCrawler(input: AwsGlueGetCrawlerInput!, config: AwsConfig): AwsGlueGetCrawlerOutput
  getCrawlerMetrics(input: AwsGlueGetCrawlerMetricsInput, config: AwsConfig): AwsGlueGetCrawlerMetricsOutput
  getCrawlers(input: AwsGlueGetCrawlersInput, config: AwsConfig): AwsGlueGetCrawlersOutput
  getDataCatalogEncryptionSettings(input: AwsGlueGetDataCatalogEncryptionSettingsInput, config: AwsConfig): AwsGlueGetDataCatalogEncryptionSettingsOutput
  getDatabase(input: AwsGlueGetDatabaseInput!, config: AwsConfig): AwsGlueGetDatabaseOutput
  getDatabases(input: AwsGlueGetDatabasesInput, config: AwsConfig): AwsGlueGetDatabasesOutput
  getDataflowGraph(input: AwsGlueGetDataflowGraphInput, config: AwsConfig): AwsGlueGetDataflowGraphOutput
  getDevEndpoint(input: AwsGlueGetDevEndpointInput!, config: AwsConfig): AwsGlueGetDevEndpointOutput
  getDevEndpoints(input: AwsGlueGetDevEndpointsInput, config: AwsConfig): AwsGlueGetDevEndpointsOutput
  getJob(input: AwsGlueGetJobInput!, config: AwsConfig): AwsGlueGetJobOutput
  getJobBookmark(input: AwsGlueGetJobBookmarkInput!, config: AwsConfig): AwsGlueGetJobBookmarkOutput
  getJobRun(input: AwsGlueGetJobRunInput!, config: AwsConfig): AwsGlueGetJobRunOutput
  getJobRuns(input: AwsGlueGetJobRunsInput!, config: AwsConfig): AwsGlueGetJobRunsOutput
  getJobs(input: AwsGlueGetJobsInput, config: AwsConfig): AwsGlueGetJobsOutput
  getMLTaskRun(input: AwsGlueGetMLTaskRunInput!, config: AwsConfig): AwsGlueGetMLTaskRunOutput
  getMLTaskRuns(input: AwsGlueGetMLTaskRunsInput!, config: AwsConfig): AwsGlueGetMLTaskRunsOutput
  getMLTransform(input: AwsGlueGetMLTransformInput!, config: AwsConfig): AwsGlueGetMLTransformOutput
  getMLTransforms(input: AwsGlueGetMLTransformsInput, config: AwsConfig): AwsGlueGetMLTransformsOutput
  getMapping(input: AwsGlueGetMappingInput!, config: AwsConfig): AwsGlueGetMappingOutput
  getPartition(input: AwsGlueGetPartitionInput!, config: AwsConfig): AwsGlueGetPartitionOutput
  getPartitionIndexes(input: AwsGlueGetPartitionIndexesInput!, config: AwsConfig): AwsGlueGetPartitionIndexesOutput
  getPartitions(input: AwsGlueGetPartitionsInput!, config: AwsConfig): AwsGlueGetPartitionsOutput
  getPlan(input: AwsGlueGetPlanInput!, config: AwsConfig): AwsGlueGetPlanOutput
  getRegistry(input: AwsGlueGetRegistryInput!, config: AwsConfig): AwsGlueGetRegistryOutput
  getResourcePolicies(input: AwsGlueGetResourcePoliciesInput, config: AwsConfig): AwsGlueGetResourcePoliciesOutput
  getResourcePolicy(input: AwsGlueGetResourcePolicyInput, config: AwsConfig): AwsGlueGetResourcePolicyOutput
  getSchema(input: AwsGlueGetSchemaInput!, config: AwsConfig): AwsGlueGetSchemaOutput
  getSchemaByDefinition(input: AwsGlueGetSchemaByDefinitionInput!, config: AwsConfig): AwsGlueGetSchemaByDefinitionOutput
  getSchemaVersion(input: AwsGlueGetSchemaVersionInput, config: AwsConfig): AwsGlueGetSchemaVersionOutput
  getSchemaVersionsDiff(input: AwsGlueGetSchemaVersionsDiffInput!, config: AwsConfig): AwsGlueGetSchemaVersionsDiffOutput
  getSecurityConfiguration(input: AwsGlueGetSecurityConfigurationInput!, config: AwsConfig): AwsGlueGetSecurityConfigurationOutput
  getSecurityConfigurations(input: AwsGlueGetSecurityConfigurationsInput, config: AwsConfig): AwsGlueGetSecurityConfigurationsOutput
  getTable(input: AwsGlueGetTableInput!, config: AwsConfig): AwsGlueGetTableOutput
  getTableVersion(input: AwsGlueGetTableVersionInput!, config: AwsConfig): AwsGlueGetTableVersionOutput
  getTableVersions(input: AwsGlueGetTableVersionsInput!, config: AwsConfig): AwsGlueGetTableVersionsOutput
  getTables(input: AwsGlueGetTablesInput!, config: AwsConfig): AwsGlueGetTablesOutput
  getTags(input: AwsGlueGetTagsInput!, config: AwsConfig): AwsGlueGetTagsOutput
  getTrigger(input: AwsGlueGetTriggerInput!, config: AwsConfig): AwsGlueGetTriggerOutput
  getTriggers(input: AwsGlueGetTriggersInput, config: AwsConfig): AwsGlueGetTriggersOutput
  getUserDefinedFunction(input: AwsGlueGetUserDefinedFunctionInput!, config: AwsConfig): AwsGlueGetUserDefinedFunctionOutput
  getUserDefinedFunctions(input: AwsGlueGetUserDefinedFunctionsInput!, config: AwsConfig): AwsGlueGetUserDefinedFunctionsOutput
  getWorkflow(input: AwsGlueGetWorkflowInput!, config: AwsConfig): AwsGlueGetWorkflowOutput
  getWorkflowRun(input: AwsGlueGetWorkflowRunInput!, config: AwsConfig): AwsGlueGetWorkflowRunOutput
  getWorkflowRunProperties(input: AwsGlueGetWorkflowRunPropertiesInput!, config: AwsConfig): AwsGlueGetWorkflowRunPropertiesOutput
  getWorkflowRuns(input: AwsGlueGetWorkflowRunsInput!, config: AwsConfig): AwsGlueGetWorkflowRunsOutput
  importCatalogToGlue(input: AwsGlueImportCatalogToGlueInput, config: AwsConfig): JSON
  listCrawlers(input: AwsGlueListCrawlersInput, config: AwsConfig): AwsGlueListCrawlersOutput
  listDevEndpoints(input: AwsGlueListDevEndpointsInput, config: AwsConfig): AwsGlueListDevEndpointsOutput
  listJobs(input: AwsGlueListJobsInput, config: AwsConfig): AwsGlueListJobsOutput
  listMLTransforms(input: AwsGlueListMLTransformsInput, config: AwsConfig): AwsGlueListMLTransformsOutput
  listRegistries(input: AwsGlueListRegistriesInput, config: AwsConfig): AwsGlueListRegistriesOutput
  listSchemaVersions(input: AwsGlueListSchemaVersionsInput!, config: AwsConfig): AwsGlueListSchemaVersionsOutput
  listSchemas(input: AwsGlueListSchemasInput, config: AwsConfig): AwsGlueListSchemasOutput
  listTriggers(input: AwsGlueListTriggersInput, config: AwsConfig): AwsGlueListTriggersOutput
  listWorkflows(input: AwsGlueListWorkflowsInput, config: AwsConfig): AwsGlueListWorkflowsOutput
  putDataCatalogEncryptionSettings(input: AwsGluePutDataCatalogEncryptionSettingsInput!, config: AwsConfig): JSON
  putResourcePolicy(input: AwsGluePutResourcePolicyInput!, config: AwsConfig): AwsGluePutResourcePolicyOutput
  putSchemaVersionMetadata(input: AwsGluePutSchemaVersionMetadataInput!, config: AwsConfig): AwsGluePutSchemaVersionMetadataOutput
  putWorkflowRunProperties(input: AwsGluePutWorkflowRunPropertiesInput!, config: AwsConfig): JSON
  querySchemaVersionMetadata(input: AwsGlueQuerySchemaVersionMetadataInput, config: AwsConfig): AwsGlueQuerySchemaVersionMetadataOutput
  registerSchemaVersion(input: AwsGlueRegisterSchemaVersionInput!, config: AwsConfig): AwsGlueRegisterSchemaVersionOutput
  removeSchemaVersionMetadata(input: AwsGlueRemoveSchemaVersionMetadataInput!, config: AwsConfig): AwsGlueRemoveSchemaVersionMetadataOutput
  resetJobBookmark(input: AwsGlueResetJobBookmarkInput!, config: AwsConfig): AwsGlueResetJobBookmarkOutput
  resumeWorkflowRun(input: AwsGlueResumeWorkflowRunInput!, config: AwsConfig): AwsGlueResumeWorkflowRunOutput
  searchTables(input: AwsGlueSearchTablesInput, config: AwsConfig): AwsGlueSearchTablesOutput
  startCrawler(input: AwsGlueStartCrawlerInput!, config: AwsConfig): JSON
  startCrawlerSchedule(input: AwsGlueStartCrawlerScheduleInput!, config: AwsConfig): JSON
  startExportLabelsTaskRun(input: AwsGlueStartExportLabelsTaskRunInput!, config: AwsConfig): AwsGlueStartExportLabelsTaskRunOutput
  startImportLabelsTaskRun(input: AwsGlueStartImportLabelsTaskRunInput!, config: AwsConfig): AwsGlueStartImportLabelsTaskRunOutput
  startJobRun(input: AwsGlueStartJobRunInput!, config: AwsConfig): AwsGlueStartJobRunOutput
  startMLEvaluationTaskRun(input: AwsGlueStartMLEvaluationTaskRunInput!, config: AwsConfig): AwsGlueStartMLEvaluationTaskRunOutput
  startMLLabelingSetGenerationTaskRun(input: AwsGlueStartMLLabelingSetGenerationTaskRunInput!, config: AwsConfig): AwsGlueStartMLLabelingSetGenerationTaskRunOutput
  startTrigger(input: AwsGlueStartTriggerInput!, config: AwsConfig): AwsGlueStartTriggerOutput
  startWorkflowRun(input: AwsGlueStartWorkflowRunInput!, config: AwsConfig): AwsGlueStartWorkflowRunOutput
  stopCrawler(input: AwsGlueStopCrawlerInput!, config: AwsConfig): JSON
  stopCrawlerSchedule(input: AwsGlueStopCrawlerScheduleInput!, config: AwsConfig): JSON
  stopTrigger(input: AwsGlueStopTriggerInput!, config: AwsConfig): AwsGlueStopTriggerOutput
  stopWorkflowRun(input: AwsGlueStopWorkflowRunInput!, config: AwsConfig): JSON
  tagResource(input: AwsGlueTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGlueUntagResourceInput!, config: AwsConfig): JSON
  updateClassifier(input: AwsGlueUpdateClassifierInput, config: AwsConfig): JSON
  updateColumnStatisticsForPartition(input: AwsGlueUpdateColumnStatisticsForPartitionInput!, config: AwsConfig): AwsGlueUpdateColumnStatisticsForPartitionOutput
  updateColumnStatisticsForTable(input: AwsGlueUpdateColumnStatisticsForTableInput!, config: AwsConfig): AwsGlueUpdateColumnStatisticsForTableOutput
  updateConnection(input: AwsGlueUpdateConnectionInput!, config: AwsConfig): JSON
  updateCrawler(input: AwsGlueUpdateCrawlerInput!, config: AwsConfig): JSON
  updateCrawlerSchedule(input: AwsGlueUpdateCrawlerScheduleInput!, config: AwsConfig): JSON
  updateDatabase(input: AwsGlueUpdateDatabaseInput!, config: AwsConfig): JSON
  updateDevEndpoint(input: AwsGlueUpdateDevEndpointInput!, config: AwsConfig): JSON
  updateJob(input: AwsGlueUpdateJobInput!, config: AwsConfig): AwsGlueUpdateJobOutput
  updateMLTransform(input: AwsGlueUpdateMLTransformInput!, config: AwsConfig): AwsGlueUpdateMLTransformOutput
  updatePartition(input: AwsGlueUpdatePartitionInput!, config: AwsConfig): JSON
  updateRegistry(input: AwsGlueUpdateRegistryInput!, config: AwsConfig): AwsGlueUpdateRegistryOutput
  updateSchema(input: AwsGlueUpdateSchemaInput!, config: AwsConfig): AwsGlueUpdateSchemaOutput
  updateTable(input: AwsGlueUpdateTableInput!, config: AwsConfig): JSON
  updateTrigger(input: AwsGlueUpdateTriggerInput!, config: AwsConfig): AwsGlueUpdateTriggerOutput
  updateUserDefinedFunction(input: AwsGlueUpdateUserDefinedFunctionInput!, config: AwsConfig): JSON
  updateWorkflow(input: AwsGlueUpdateWorkflowInput!, config: AwsConfig): AwsGlueUpdateWorkflowOutput
}

type AwsGlueBatchCreatePartitionOutput {
  Errors: [AwsGlueS11]
}

type AwsGlueS11 {
  PartitionValues: [String]
  ErrorDetail: AwsGlueS13
}

type AwsGlueS13 {
  ErrorCode: String
  ErrorMessage: String
}

input AwsGlueBatchCreatePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionInputList: [AwsGlueS5Input]!
}

input AwsGlueS5Input {
  Values: [String]
  LastAccessTime: Date
  StorageDescriptor: AwsGlueS9Input
  Parameters: JSON
  LastAnalyzedTime: Date
}

input AwsGlueS9Input {
  Columns: [AwsGlueSaInput]
  Location: String
  InputFormat: String
  OutputFormat: String
  Compressed: Boolean
  NumberOfBuckets: Int
  SerdeInfo: AwsGlueS9SerdeInfoInput
  BucketColumns: [String]
  SortColumns: [AwsGlueS9SortColumnsInput]
  Parameters: JSON
  SkewedInfo: AwsGlueS9SkewedInfoInput
  StoredAsSubDirectories: Boolean
  SchemaReference: AwsGlueS9SchemaReferenceInput
}

input AwsGlueSaInput {
  Name: String!
  Type: String
  Comment: String
  Parameters: JSON
}

input AwsGlueS9SerdeInfoInput {
  Name: String
  SerializationLibrary: String
  Parameters: JSON
}

input AwsGlueS9SortColumnsInput {
  Column: String!
  SortOrder: Int!
}

input AwsGlueS9SkewedInfoInput {
  SkewedColumnNames: [String]
  SkewedColumnValues: [String]
  SkewedColumnValueLocationMaps: JSON
}

input AwsGlueS9SchemaReferenceInput {
  SchemaId: AwsGlueSvInput
  SchemaVersionId: String
  SchemaVersionNumber: JSON
}

input AwsGlueSvInput {
  SchemaArn: String
  SchemaName: String
  RegistryName: String
}

type AwsGlueBatchDeleteConnectionOutput {
  Succeeded: [String]
  Errors: JSON
}

input AwsGlueBatchDeleteConnectionInput {
  CatalogId: String
  ConnectionNameList: [String]!
}

type AwsGlueBatchDeletePartitionOutput {
  Errors: [AwsGlueS11]
}

input AwsGlueBatchDeletePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionsToDelete: [AwsGlueS1bInput]!
}

input AwsGlueS1bInput {
  Values: [String]!
}

type AwsGlueBatchDeleteTableOutput {
  Errors: [AwsGlueBatchDeleteTableOutputErrors]
}

type AwsGlueBatchDeleteTableOutputErrors {
  TableName: String
  ErrorDetail: AwsGlueS13
}

input AwsGlueBatchDeleteTableInput {
  CatalogId: String
  DatabaseName: String!
  TablesToDelete: [String]!
}

type AwsGlueBatchDeleteTableVersionOutput {
  Errors: [AwsGlueBatchDeleteTableVersionOutputErrors]
}

type AwsGlueBatchDeleteTableVersionOutputErrors {
  TableName: String
  VersionId: String
  ErrorDetail: AwsGlueS13
}

input AwsGlueBatchDeleteTableVersionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  VersionIds: [String]!
}

type AwsGlueBatchGetCrawlersOutput {
  Crawlers: [AwsGlueS1s]
  CrawlersNotFound: [String]
}

type AwsGlueS1s {
  Name: String
  Role: String
  Targets: AwsGlueS1u
  DatabaseName: String
  Description: String
  Classifiers: [String]
  RecrawlPolicy: AwsGlueS2e
  SchemaChangePolicy: AwsGlueS2g
  LineageConfiguration: AwsGlueS2j
  State: String
  TablePrefix: String
  Schedule: AwsGlueS1sSchedule
  CrawlElapsedTime: JSON
  CreationTime: Date
  LastUpdated: Date
  LastCrawl: AwsGlueS1sLastCrawl
  Version: JSON
  Configuration: String
  CrawlerSecurityConfiguration: String
}

type AwsGlueS1u {
  S3Targets: [AwsGlueS1uS3Targets]
  JdbcTargets: [AwsGlueS1uJdbcTargets]
  MongoDBTargets: [AwsGlueS1uMongoDBTargets]
  DynamoDBTargets: [AwsGlueS1uDynamoDBTargets]
  CatalogTargets: [AwsGlueS1uCatalogTargets]
}

type AwsGlueS1uS3Targets {
  Path: String
  Exclusions: [String]
  ConnectionName: String
  SampleSize: Int
}

type AwsGlueS1uJdbcTargets {
  ConnectionName: String
  Path: String
  Exclusions: [String]
}

type AwsGlueS1uMongoDBTargets {
  ConnectionName: String
  Path: String
  ScanAll: Boolean
}

type AwsGlueS1uDynamoDBTargets {
  Path: String
  scanAll: Boolean
  scanRate: JSON
}

type AwsGlueS1uCatalogTargets {
  DatabaseName: String!
  Tables: [String]!
}

type AwsGlueS2e {
  RecrawlBehavior: String
}

type AwsGlueS2g {
  UpdateBehavior: String
  DeleteBehavior: String
}

type AwsGlueS2j {
  CrawlerLineageSettings: String
}

type AwsGlueS1sSchedule {
  ScheduleExpression: String
  State: String
}

type AwsGlueS1sLastCrawl {
  Status: String
  ErrorMessage: String
  LogGroup: String
  LogStream: String
  MessagePrefix: String
  StartTime: Date
}

input AwsGlueBatchGetCrawlersInput {
  CrawlerNames: [String]!
}

type AwsGlueBatchGetDevEndpointsOutput {
  DevEndpoints: [AwsGlueS34]
  DevEndpointsNotFound: [String]
}

type AwsGlueS34 {
  EndpointName: String
  RoleArn: String
  SecurityGroupIds: [String]
  SubnetId: String
  YarnEndpointAddress: String
  PrivateAddress: String
  ZeppelinRemoteSparkInterpreterPort: Int
  PublicAddress: String
  Status: String
  WorkerType: String
  GlueVersion: String
  NumberOfWorkers: Int
  NumberOfNodes: Int
  AvailabilityZone: String
  VpcId: String
  ExtraPythonLibsS3Path: String
  ExtraJarsS3Path: String
  FailureReason: String
  LastUpdateStatus: String
  CreatedTimestamp: Date
  LastModifiedTimestamp: Date
  PublicKey: String
  PublicKeys: [String]
  SecurityConfiguration: String
  Arguments: JSON
}

input AwsGlueBatchGetDevEndpointsInput {
  DevEndpointNames: [String]!
}

type AwsGlueBatchGetJobsOutput {
  Jobs: [AwsGlueS3h]
  JobsNotFound: [String]
}

type AwsGlueS3h {
  Name: String
  Description: String
  LogUri: String
  Role: String
  CreatedOn: Date
  LastModifiedOn: Date
  ExecutionProperty: AwsGlueS3k
  Command: AwsGlueS3m
  DefaultArguments: JSON
  NonOverridableArguments: JSON
  Connections: AwsGlueS3q
  MaxRetries: Int
  AllocatedCapacity: Int
  Timeout: Int
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  SecurityConfiguration: String
  NotificationProperty: AwsGlueS3u
  GlueVersion: String
}

type AwsGlueS3k {
  MaxConcurrentRuns: Int
}

type AwsGlueS3m {
  Name: String
  ScriptLocation: String
  PythonVersion: String
}

type AwsGlueS3q {
  Connections: [String]
}

type AwsGlueS3u {
  NotifyDelayAfter: Int
}

input AwsGlueBatchGetJobsInput {
  JobNames: [String]!
}

type AwsGlueBatchGetPartitionOutput {
  Partitions: [AwsGlueS40]
  UnprocessedKeys: [AwsGlueS1b]
}

type AwsGlueS40 {
  Values: [String]
  DatabaseName: String
  TableName: String
  CreationTime: Date
  LastAccessTime: Date
  StorageDescriptor: AwsGlueS9
  Parameters: JSON
  LastAnalyzedTime: Date
  CatalogId: String
}

type AwsGlueS9 {
  Columns: [AwsGlueSa]
  Location: String
  InputFormat: String
  OutputFormat: String
  Compressed: Boolean
  NumberOfBuckets: Int
  SerdeInfo: AwsGlueS9SerdeInfo
  BucketColumns: [String]
  SortColumns: [AwsGlueS9SortColumns]
  Parameters: JSON
  SkewedInfo: AwsGlueS9SkewedInfo
  StoredAsSubDirectories: Boolean
  SchemaReference: AwsGlueS9SchemaReference
}

type AwsGlueSa {
  Name: String!
  Type: String
  Comment: String
  Parameters: JSON
}

type AwsGlueS9SerdeInfo {
  Name: String
  SerializationLibrary: String
  Parameters: JSON
}

type AwsGlueS9SortColumns {
  Column: String!
  SortOrder: Int!
}

type AwsGlueS9SkewedInfo {
  SkewedColumnNames: [String]
  SkewedColumnValues: [String]
  SkewedColumnValueLocationMaps: JSON
}

type AwsGlueS9SchemaReference {
  SchemaId: AwsGlueSv
  SchemaVersionId: String
  SchemaVersionNumber: JSON
}

type AwsGlueSv {
  SchemaArn: String
  SchemaName: String
  RegistryName: String
}

type AwsGlueS1b {
  Values: [String]!
}

input AwsGlueBatchGetPartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionsToGet: [AwsGlueS1bInput]!
}

type AwsGlueBatchGetTriggersOutput {
  Triggers: [AwsGlueS45]
  TriggersNotFound: [String]
}

type AwsGlueS45 {
  Name: String
  WorkflowName: String
  Id: String
  Type: String
  State: String
  Description: String
  Schedule: String
  Actions: [AwsGlueS49]
  Predicate: AwsGlueS4b
}

type AwsGlueS49 {
  JobName: String
  Arguments: JSON
  Timeout: Int
  SecurityConfiguration: String
  NotificationProperty: AwsGlueS3u
  CrawlerName: String
}

type AwsGlueS4b {
  Logical: String
  Conditions: [AwsGlueS4bConditions]
}

type AwsGlueS4bConditions {
  LogicalOperator: String
  JobName: String
  State: String
  CrawlerName: String
  CrawlState: String
}

input AwsGlueBatchGetTriggersInput {
  TriggerNames: [String]!
}

type AwsGlueBatchGetWorkflowsOutput {
  Workflows: [AwsGlueS4m]
  MissingWorkflows: [String]
}

type AwsGlueS4m {
  Name: String
  Description: String
  DefaultRunProperties: JSON
  CreatedOn: Date
  LastModifiedOn: Date
  LastRun: AwsGlueS4o
  Graph: AwsGlueS4s
  MaxConcurrentRuns: Int
}

type AwsGlueS4o {
  Name: String
  WorkflowRunId: String
  PreviousRunId: String
  WorkflowRunProperties: JSON
  StartedOn: Date
  CompletedOn: Date
  Status: String
  ErrorMessage: String
  Statistics: AwsGlueS4oStatistics
  Graph: AwsGlueS4s
}

type AwsGlueS4oStatistics {
  TotalActions: Int
  TimeoutActions: Int
  FailedActions: Int
  StoppedActions: Int
  SucceededActions: Int
  RunningActions: Int
}

type AwsGlueS4s {
  Nodes: [AwsGlueS4sNodes]
  Edges: [AwsGlueS4sEdges]
}

type AwsGlueS4sNodes {
  Type: String
  Name: String
  UniqueId: String
  TriggerDetails: AwsGlueS4sNodesTriggerDetails
  JobDetails: AwsGlueS4sNodesJobDetails
  CrawlerDetails: AwsGlueS4sNodesCrawlerDetails
}

type AwsGlueS4sNodesTriggerDetails {
  Trigger: AwsGlueS45
}

type AwsGlueS4sNodesJobDetails {
  JobRuns: [AwsGlueS4z]
}

type AwsGlueS4z {
  Id: String
  Attempt: Int
  PreviousRunId: String
  TriggerName: String
  JobName: String
  StartedOn: Date
  LastModifiedOn: Date
  CompletedOn: Date
  JobRunState: String
  Arguments: JSON
  ErrorMessage: String
  PredecessorRuns: [AwsGlueS4zPredecessorRuns]
  AllocatedCapacity: Int
  ExecutionTime: Int
  Timeout: Int
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  SecurityConfiguration: String
  LogGroupName: String
  NotificationProperty: AwsGlueS3u
  GlueVersion: String
}

type AwsGlueS4zPredecessorRuns {
  JobName: String
  RunId: String
}

type AwsGlueS4sNodesCrawlerDetails {
  Crawls: [AwsGlueS4sNodesCrawlerDetailsCrawls]
}

type AwsGlueS4sNodesCrawlerDetailsCrawls {
  State: String
  StartedOn: Date
  CompletedOn: Date
  ErrorMessage: String
  LogGroup: String
  LogStream: String
}

type AwsGlueS4sEdges {
  SourceId: String
  DestinationId: String
}

input AwsGlueBatchGetWorkflowsInput {
  Names: [String]!
  IncludeGraph: Boolean
}

type AwsGlueBatchStopJobRunOutput {
  SuccessfulSubmissions: [AwsGlueBatchStopJobRunOutputSuccessfulSubmissions]
  Errors: [AwsGlueBatchStopJobRunOutputErrors]
}

type AwsGlueBatchStopJobRunOutputSuccessfulSubmissions {
  JobName: String
  JobRunId: String
}

type AwsGlueBatchStopJobRunOutputErrors {
  JobName: String
  JobRunId: String
  ErrorDetail: AwsGlueS13
}

input AwsGlueBatchStopJobRunInput {
  JobName: String!
  JobRunIds: [String]!
}

type AwsGlueBatchUpdatePartitionOutput {
  Errors: [AwsGlueBatchUpdatePartitionOutputErrors]
}

type AwsGlueBatchUpdatePartitionOutputErrors {
  PartitionValueList: [String]
  ErrorDetail: AwsGlueS13
}

input AwsGlueBatchUpdatePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  Entries: [AwsGlueBatchUpdatePartitionEntriesInput]!
}

input AwsGlueBatchUpdatePartitionEntriesInput {
  PartitionValueList: [String]!
  PartitionInput: AwsGlueS5Input!
}

type AwsGlueCancelMLTaskRunOutput {
  TransformId: String
  TaskRunId: String
  Status: String
}

input AwsGlueCancelMLTaskRunInput {
  TransformId: String!
  TaskRunId: String!
}

type AwsGlueCheckSchemaVersionValidityOutput {
  Valid: Boolean
  Error: String
}

input AwsGlueCheckSchemaVersionValidityInput {
  DataFormat: String!
  SchemaDefinition: String!
}

input AwsGlueCreateClassifierInput {
  GrokClassifier: AwsGlueCreateClassifierGrokClassifierInput
  XMLClassifier: AwsGlueCreateClassifierXMLClassifierInput
  JsonClassifier: AwsGlueCreateClassifierJsonClassifierInput
  CsvClassifier: AwsGlueCreateClassifierCsvClassifierInput
}

input AwsGlueCreateClassifierGrokClassifierInput {
  Classification: String!
  Name: String!
  GrokPattern: String!
  CustomPatterns: String
}

input AwsGlueCreateClassifierXMLClassifierInput {
  Classification: String!
  Name: String!
  RowTag: String
}

input AwsGlueCreateClassifierJsonClassifierInput {
  Name: String!
  JsonPath: String!
}

input AwsGlueCreateClassifierCsvClassifierInput {
  Name: String!
  Delimiter: String
  QuoteSymbol: String
  ContainsHeader: String
  Header: [String]
  DisableValueTrimming: Boolean
  AllowSingleColumn: Boolean
}

input AwsGlueCreateConnectionInput {
  CatalogId: String
  ConnectionInput: AwsGlueS6dInput!
}

input AwsGlueS6dInput {
  Name: String!
  Description: String
  ConnectionType: String!
  MatchCriteria: [String]
  ConnectionProperties: JSON!
  PhysicalConnectionRequirements: AwsGlueS6iInput
}

input AwsGlueS6iInput {
  SubnetId: String
  SecurityGroupIdList: [String]
  AvailabilityZone: String
}

input AwsGlueCreateCrawlerInput {
  Name: String!
  Role: String!
  DatabaseName: String
  Description: String
  Targets: AwsGlueS1uInput!
  Schedule: String
  Classifiers: [String]
  TablePrefix: String
  SchemaChangePolicy: AwsGlueS2gInput
  RecrawlPolicy: AwsGlueS2eInput
  LineageConfiguration: AwsGlueS2jInput
  Configuration: String
  CrawlerSecurityConfiguration: String
  Tags: JSON
}

input AwsGlueS1uInput {
  S3Targets: [AwsGlueS1uS3TargetsInput]
  JdbcTargets: [AwsGlueS1uJdbcTargetsInput]
  MongoDBTargets: [AwsGlueS1uMongoDBTargetsInput]
  DynamoDBTargets: [AwsGlueS1uDynamoDBTargetsInput]
  CatalogTargets: [AwsGlueS1uCatalogTargetsInput]
}

input AwsGlueS1uS3TargetsInput {
  Path: String
  Exclusions: [String]
  ConnectionName: String
  SampleSize: Int
}

input AwsGlueS1uJdbcTargetsInput {
  ConnectionName: String
  Path: String
  Exclusions: [String]
}

input AwsGlueS1uMongoDBTargetsInput {
  ConnectionName: String
  Path: String
  ScanAll: Boolean
}

input AwsGlueS1uDynamoDBTargetsInput {
  Path: String
  scanAll: Boolean
  scanRate: JSON
}

input AwsGlueS1uCatalogTargetsInput {
  DatabaseName: String!
  Tables: [String]!
}

input AwsGlueS2gInput {
  UpdateBehavior: String
  DeleteBehavior: String
}

input AwsGlueS2eInput {
  RecrawlBehavior: String
}

input AwsGlueS2jInput {
  CrawlerLineageSettings: String
}

input AwsGlueCreateDatabaseInput {
  CatalogId: String
  DatabaseInput: AwsGlueS6rInput!
}

input AwsGlueS6rInput {
  Name: String!
  Description: String
  LocationUri: String
  Parameters: JSON
  CreateTableDefaultPermissions: [AwsGlueS6tInput]
  TargetDatabase: AwsGlueS6zInput
}

input AwsGlueS6tInput {
  Principal: AwsGlueS6tPrincipalInput
  Permissions: [String]
}

input AwsGlueS6tPrincipalInput {
  DataLakePrincipalIdentifier: String
}

input AwsGlueS6zInput {
  CatalogId: String
  DatabaseName: String
}

type AwsGlueCreateDevEndpointOutput {
  EndpointName: String
  Status: String
  SecurityGroupIds: [String]
  SubnetId: String
  RoleArn: String
  YarnEndpointAddress: String
  ZeppelinRemoteSparkInterpreterPort: Int
  NumberOfNodes: Int
  WorkerType: String
  GlueVersion: String
  NumberOfWorkers: Int
  AvailabilityZone: String
  VpcId: String
  ExtraPythonLibsS3Path: String
  ExtraJarsS3Path: String
  FailureReason: String
  SecurityConfiguration: String
  CreatedTimestamp: Date
  Arguments: JSON
}

input AwsGlueCreateDevEndpointInput {
  EndpointName: String!
  RoleArn: String!
  SecurityGroupIds: [String]
  SubnetId: String
  PublicKey: String
  PublicKeys: [String]
  NumberOfNodes: Int
  WorkerType: String
  GlueVersion: String
  NumberOfWorkers: Int
  ExtraPythonLibsS3Path: String
  ExtraJarsS3Path: String
  SecurityConfiguration: String
  Tags: JSON
  Arguments: JSON
}

type AwsGlueCreateJobOutput {
  Name: String
}

input AwsGlueCreateJobInput {
  Name: String!
  Description: String
  LogUri: String
  Role: String!
  ExecutionProperty: AwsGlueS3kInput
  Command: AwsGlueS3mInput!
  DefaultArguments: JSON
  NonOverridableArguments: JSON
  Connections: AwsGlueS3qInput
  MaxRetries: Int
  AllocatedCapacity: Int
  Timeout: Int
  MaxCapacity: JSON
  SecurityConfiguration: String
  Tags: JSON
  NotificationProperty: AwsGlueS3uInput
  GlueVersion: String
  NumberOfWorkers: Int
  WorkerType: String
}

input AwsGlueS3kInput {
  MaxConcurrentRuns: Int
}

input AwsGlueS3mInput {
  Name: String
  ScriptLocation: String
  PythonVersion: String
}

input AwsGlueS3qInput {
  Connections: [String]
}

input AwsGlueS3uInput {
  NotifyDelayAfter: Int
}

type AwsGlueCreateMLTransformOutput {
  TransformId: String
}

input AwsGlueCreateMLTransformInput {
  Name: String!
  Description: String
  InputRecordTables: [AwsGlueS76Input]!
  Parameters: AwsGlueS78Input!
  Role: String!
  GlueVersion: String
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  Timeout: Int
  MaxRetries: Int
  Tags: JSON
  TransformEncryption: AwsGlueS7dInput
}

input AwsGlueS76Input {
  DatabaseName: String!
  TableName: String!
  CatalogId: String
  ConnectionName: String
}

input AwsGlueS78Input {
  TransformType: String!
  FindMatchesParameters: AwsGlueS78FindMatchesParametersInput
}

input AwsGlueS78FindMatchesParametersInput {
  PrimaryKeyColumnName: String
  PrecisionRecallTradeoff: JSON
  AccuracyCostTradeoff: JSON
  EnforceProvidedLabels: Boolean
}

input AwsGlueS7dInput {
  MlUserDataEncryption: AwsGlueS7dMlUserDataEncryptionInput
  TaskRunSecurityConfigurationName: String
}

input AwsGlueS7dMlUserDataEncryptionInput {
  MlUserDataEncryptionMode: String!
  KmsKeyId: String
}

input AwsGlueCreatePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionInput: AwsGlueS5Input!
}

input AwsGlueCreatePartitionIndexInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionIndex: AwsGlueS7kInput!
}

input AwsGlueS7kInput {
  Keys: [String]!
  IndexName: String!
}

type AwsGlueCreateRegistryOutput {
  RegistryArn: String
  RegistryName: String
  Description: String
  Tags: JSON
}

input AwsGlueCreateRegistryInput {
  RegistryName: String!
  Description: String
  Tags: JSON
}

type AwsGlueCreateSchemaOutput {
  RegistryName: String
  RegistryArn: String
  SchemaName: String
  SchemaArn: String
  Description: String
  DataFormat: String
  Compatibility: String
  SchemaCheckpoint: JSON
  LatestSchemaVersion: JSON
  NextSchemaVersion: JSON
  SchemaStatus: String
  Tags: JSON
  SchemaVersionId: String
  SchemaVersionStatus: String
}

input AwsGlueCreateSchemaInput {
  RegistryId: AwsGlueS7qInput
  SchemaName: String!
  DataFormat: String!
  Compatibility: String
  Description: String
  Tags: JSON
  SchemaDefinition: String
}

input AwsGlueS7qInput {
  RegistryName: String
  RegistryArn: String
}

type AwsGlueCreateScriptOutput {
  PythonScript: String
  ScalaCode: String
}

input AwsGlueCreateScriptInput {
  DagNodes: [AwsGlueS7xInput]
  DagEdges: [AwsGlueS85Input]
  Language: String
}

input AwsGlueS7xInput {
  Id: String!
  NodeType: String!
  Args: [AwsGlueS81Input]!
  LineNumber: Int
}

input AwsGlueS81Input {
  Name: String!
  Value: String!
  Param: Boolean
}

input AwsGlueS85Input {
  Source: String!
  Target: String!
  TargetParameter: String
}

type AwsGlueCreateSecurityConfigurationOutput {
  Name: String
  CreatedTimestamp: Date
}

input AwsGlueCreateSecurityConfigurationInput {
  Name: String!
  EncryptionConfiguration: AwsGlueS8cInput!
}

input AwsGlueS8cInput {
  S3Encryption: [AwsGlueS8cS3EncryptionInput]
  CloudWatchEncryption: AwsGlueS8cCloudWatchEncryptionInput
  JobBookmarksEncryption: AwsGlueS8cJobBookmarksEncryptionInput
}

input AwsGlueS8cS3EncryptionInput {
  S3EncryptionMode: String
  KmsKeyArn: String
}

input AwsGlueS8cCloudWatchEncryptionInput {
  CloudWatchEncryptionMode: String
  KmsKeyArn: String
}

input AwsGlueS8cJobBookmarksEncryptionInput {
  JobBookmarksEncryptionMode: String
  KmsKeyArn: String
}

input AwsGlueCreateTableInput {
  CatalogId: String
  DatabaseName: String!
  TableInput: AwsGlueS8nInput!
  PartitionIndexes: [AwsGlueS7kInput]
}

input AwsGlueS8nInput {
  Name: String!
  Description: String
  Owner: String
  LastAccessTime: Date
  LastAnalyzedTime: Date
  Retention: Int
  StorageDescriptor: AwsGlueS9Input
  PartitionKeys: [AwsGlueSaInput]
  ViewOriginalText: String
  ViewExpandedText: String
  TableType: String
  Parameters: JSON
  TargetTable: AwsGlueS8rInput
}

input AwsGlueS8rInput {
  CatalogId: String
  DatabaseName: String
  Name: String
}

type AwsGlueCreateTriggerOutput {
  Name: String
}

input AwsGlueCreateTriggerInput {
  Name: String!
  WorkflowName: String
  Type: String!
  Schedule: String
  Predicate: AwsGlueS4bInput
  Actions: [AwsGlueS49Input]!
  Description: String
  StartOnCreation: Boolean
  Tags: JSON
}

input AwsGlueS4bInput {
  Logical: String
  Conditions: [AwsGlueS4bConditionsInput]
}

input AwsGlueS4bConditionsInput {
  LogicalOperator: String
  JobName: String
  State: String
  CrawlerName: String
  CrawlState: String
}

input AwsGlueS49Input {
  JobName: String
  Arguments: JSON
  Timeout: Int
  SecurityConfiguration: String
  NotificationProperty: AwsGlueS3uInput
  CrawlerName: String
}

input AwsGlueCreateUserDefinedFunctionInput {
  CatalogId: String
  DatabaseName: String!
  FunctionInput: AwsGlueS8yInput!
}

input AwsGlueS8yInput {
  FunctionName: String
  ClassName: String
  OwnerName: String
  OwnerType: String
  ResourceUris: [AwsGlueS90Input]
}

input AwsGlueS90Input {
  ResourceType: String
  Uri: String
}

type AwsGlueCreateWorkflowOutput {
  Name: String
}

input AwsGlueCreateWorkflowInput {
  Name: String!
  Description: String
  DefaultRunProperties: JSON
  Tags: JSON
  MaxConcurrentRuns: Int
}

input AwsGlueDeleteClassifierInput {
  Name: String!
}

input AwsGlueDeleteColumnStatisticsForPartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValues: [String]!
  ColumnName: String!
}

input AwsGlueDeleteColumnStatisticsForTableInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  ColumnName: String!
}

input AwsGlueDeleteConnectionInput {
  CatalogId: String
  ConnectionName: String!
}

input AwsGlueDeleteCrawlerInput {
  Name: String!
}

input AwsGlueDeleteDatabaseInput {
  CatalogId: String
  Name: String!
}

input AwsGlueDeleteDevEndpointInput {
  EndpointName: String!
}

type AwsGlueDeleteJobOutput {
  JobName: String
}

input AwsGlueDeleteJobInput {
  JobName: String!
}

type AwsGlueDeleteMLTransformOutput {
  TransformId: String
}

input AwsGlueDeleteMLTransformInput {
  TransformId: String!
}

input AwsGlueDeletePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValues: [String]!
}

input AwsGlueDeletePartitionIndexInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  IndexName: String!
}

type AwsGlueDeleteRegistryOutput {
  RegistryName: String
  RegistryArn: String
  Status: String
}

input AwsGlueDeleteRegistryInput {
  RegistryId: AwsGlueS7qInput!
}

input AwsGlueDeleteResourcePolicyInput {
  PolicyHashCondition: String
  ResourceArn: String
}

type AwsGlueDeleteSchemaOutput {
  SchemaArn: String
  SchemaName: String
  Status: String
}

input AwsGlueDeleteSchemaInput {
  SchemaId: AwsGlueSvInput!
}

type AwsGlueDeleteSchemaVersionsOutput {
  SchemaVersionErrors: [AwsGlueDeleteSchemaVersionsOutputSchemaVersionErrors]
}

type AwsGlueDeleteSchemaVersionsOutputSchemaVersionErrors {
  VersionNumber: JSON
  ErrorDetails: AwsGlueDeleteSchemaVersionsOutputSchemaVersionErrorsErrorDetails
}

type AwsGlueDeleteSchemaVersionsOutputSchemaVersionErrorsErrorDetails {
  ErrorCode: String
  ErrorMessage: String
}

input AwsGlueDeleteSchemaVersionsInput {
  SchemaId: AwsGlueSvInput!
  Versions: String!
}

input AwsGlueDeleteSecurityConfigurationInput {
  Name: String!
}

input AwsGlueDeleteTableInput {
  CatalogId: String
  DatabaseName: String!
  Name: String!
}

input AwsGlueDeleteTableVersionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  VersionId: String!
}

type AwsGlueDeleteTriggerOutput {
  Name: String
}

input AwsGlueDeleteTriggerInput {
  Name: String!
}

input AwsGlueDeleteUserDefinedFunctionInput {
  CatalogId: String
  DatabaseName: String!
  FunctionName: String!
}

type AwsGlueDeleteWorkflowOutput {
  Name: String
}

input AwsGlueDeleteWorkflowInput {
  Name: String!
}

type AwsGlueGetCatalogImportStatusOutput {
  ImportStatus: AwsGlueGetCatalogImportStatusOutputImportStatus
}

type AwsGlueGetCatalogImportStatusOutputImportStatus {
  ImportCompleted: Boolean
  ImportTime: Date
  ImportedBy: String
}

input AwsGlueGetCatalogImportStatusInput {
  CatalogId: String
}

type AwsGlueGetClassifierOutput {
  Classifier: AwsGlueSao
}

type AwsGlueSao {
  GrokClassifier: AwsGlueSaoGrokClassifier
  XMLClassifier: AwsGlueSaoXMLClassifier
  JsonClassifier: AwsGlueSaoJsonClassifier
  CsvClassifier: AwsGlueSaoCsvClassifier
}

type AwsGlueSaoGrokClassifier {
  Name: String!
  Classification: String!
  CreationTime: Date
  LastUpdated: Date
  Version: JSON
  GrokPattern: String!
  CustomPatterns: String
}

type AwsGlueSaoXMLClassifier {
  Name: String!
  Classification: String!
  CreationTime: Date
  LastUpdated: Date
  Version: JSON
  RowTag: String
}

type AwsGlueSaoJsonClassifier {
  Name: String!
  CreationTime: Date
  LastUpdated: Date
  Version: JSON
  JsonPath: String!
}

type AwsGlueSaoCsvClassifier {
  Name: String!
  CreationTime: Date
  LastUpdated: Date
  Version: JSON
  Delimiter: String
  QuoteSymbol: String
  ContainsHeader: String
  Header: [String]
  DisableValueTrimming: Boolean
  AllowSingleColumn: Boolean
}

input AwsGlueGetClassifierInput {
  Name: String!
}

type AwsGlueGetClassifiersOutput {
  Classifiers: [AwsGlueSao]
  NextToken: String
}

input AwsGlueGetClassifiersInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlueGetColumnStatisticsForPartitionOutput {
  ColumnStatisticsList: [AwsGlueSb2]
  Errors: [AwsGlueSbj]
}

type AwsGlueSb2 {
  ColumnName: String!
  ColumnType: String!
  AnalyzedTime: Date!
  StatisticsData: AwsGlueSb2StatisticsData!
}

type AwsGlueSb2StatisticsData {
  Type: String!
  BooleanColumnStatisticsData: AwsGlueSb2StatisticsDataBooleanColumnStatisticsData
  DateColumnStatisticsData: AwsGlueSb2StatisticsDataDateColumnStatisticsData
  DecimalColumnStatisticsData: AwsGlueSb2StatisticsDataDecimalColumnStatisticsData
  DoubleColumnStatisticsData: AwsGlueSb2StatisticsDataDoubleColumnStatisticsData
  LongColumnStatisticsData: AwsGlueSb2StatisticsDataLongColumnStatisticsData
  StringColumnStatisticsData: AwsGlueSb2StatisticsDataStringColumnStatisticsData
  BinaryColumnStatisticsData: AwsGlueSb2StatisticsDataBinaryColumnStatisticsData
}

type AwsGlueSb2StatisticsDataBooleanColumnStatisticsData {
  NumberOfTrues: JSON!
  NumberOfFalses: JSON!
  NumberOfNulls: JSON!
}

type AwsGlueSb2StatisticsDataDateColumnStatisticsData {
  MinimumValue: Date
  MaximumValue: Date
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

type AwsGlueSb2StatisticsDataDecimalColumnStatisticsData {
  MinimumValue: AwsGlueSba
  MaximumValue: AwsGlueSba
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

type AwsGlueSba {
  UnscaledValue: JSON!
  Scale: Int!
}

type AwsGlueSb2StatisticsDataDoubleColumnStatisticsData {
  MinimumValue: JSON
  MaximumValue: JSON
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

type AwsGlueSb2StatisticsDataLongColumnStatisticsData {
  MinimumValue: JSON
  MaximumValue: JSON
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

type AwsGlueSb2StatisticsDataStringColumnStatisticsData {
  MaximumLength: JSON!
  AverageLength: JSON!
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

type AwsGlueSb2StatisticsDataBinaryColumnStatisticsData {
  MaximumLength: JSON!
  AverageLength: JSON!
  NumberOfNulls: JSON!
}

type AwsGlueSbj {
  ColumnName: String
  Error: AwsGlueS13
}

input AwsGlueGetColumnStatisticsForPartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValues: [String]!
  ColumnNames: [String]!
}

type AwsGlueGetColumnStatisticsForTableOutput {
  ColumnStatisticsList: [AwsGlueSb2]
  Errors: [AwsGlueSbj]
}

input AwsGlueGetColumnStatisticsForTableInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  ColumnNames: [String]!
}

type AwsGlueGetConnectionOutput {
  Connection: AwsGlueSbp
}

type AwsGlueSbp {
  Name: String
  Description: String
  ConnectionType: String
  MatchCriteria: [String]
  ConnectionProperties: JSON
  PhysicalConnectionRequirements: AwsGlueS6i
  CreationTime: Date
  LastUpdatedTime: Date
  LastUpdatedBy: String
}

type AwsGlueS6i {
  SubnetId: String
  SecurityGroupIdList: [String]
  AvailabilityZone: String
}

input AwsGlueGetConnectionInput {
  CatalogId: String
  Name: String!
  HidePassword: Boolean
}

type AwsGlueGetConnectionsOutput {
  ConnectionList: [AwsGlueSbp]
  NextToken: String
}

input AwsGlueGetConnectionsInput {
  CatalogId: String
  Filter: AwsGlueGetConnectionsFilterInput
  HidePassword: Boolean
  NextToken: String
  MaxResults: Int
}

input AwsGlueGetConnectionsFilterInput {
  MatchCriteria: [String]
  ConnectionType: String
}

type AwsGlueGetCrawlerOutput {
  Crawler: AwsGlueS1s
}

input AwsGlueGetCrawlerInput {
  Name: String!
}

type AwsGlueGetCrawlerMetricsOutput {
  CrawlerMetricsList: [AwsGlueGetCrawlerMetricsOutputCrawlerMetricsList]
  NextToken: String
}

type AwsGlueGetCrawlerMetricsOutputCrawlerMetricsList {
  CrawlerName: String
  TimeLeftSeconds: JSON
  StillEstimating: Boolean
  LastRuntimeSeconds: JSON
  MedianRuntimeSeconds: JSON
  TablesCreated: Int
  TablesUpdated: Int
  TablesDeleted: Int
}

input AwsGlueGetCrawlerMetricsInput {
  CrawlerNameList: [String]
  MaxResults: Int
  NextToken: String
}

type AwsGlueGetCrawlersOutput {
  Crawlers: [AwsGlueS1s]
  NextToken: String
}

input AwsGlueGetCrawlersInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlueGetDataCatalogEncryptionSettingsOutput {
  DataCatalogEncryptionSettings: AwsGlueSc4
}

type AwsGlueSc4 {
  EncryptionAtRest: AwsGlueSc4EncryptionAtRest
  ConnectionPasswordEncryption: AwsGlueSc4ConnectionPasswordEncryption
}

type AwsGlueSc4EncryptionAtRest {
  CatalogEncryptionMode: String!
  SseAwsKmsKeyId: String
}

type AwsGlueSc4ConnectionPasswordEncryption {
  ReturnConnectionPasswordEncrypted: Boolean!
  AwsKmsKeyId: String
}

input AwsGlueGetDataCatalogEncryptionSettingsInput {
  CatalogId: String
}

type AwsGlueGetDatabaseOutput {
  Database: AwsGlueSca
}

type AwsGlueSca {
  Name: String!
  Description: String
  LocationUri: String
  Parameters: JSON
  CreateTime: Date
  CreateTableDefaultPermissions: [AwsGlueS6t]
  TargetDatabase: AwsGlueS6z
  CatalogId: String
}

type AwsGlueS6t {
  Principal: AwsGlueS6tPrincipal
  Permissions: [String]
}

type AwsGlueS6tPrincipal {
  DataLakePrincipalIdentifier: String
}

type AwsGlueS6z {
  CatalogId: String
  DatabaseName: String
}

input AwsGlueGetDatabaseInput {
  CatalogId: String
  Name: String!
}

type AwsGlueGetDatabasesOutput {
  DatabaseList: [AwsGlueSca]!
  NextToken: String
}

input AwsGlueGetDatabasesInput {
  CatalogId: String
  NextToken: String
  MaxResults: Int
  ResourceShareType: String
}

type AwsGlueGetDataflowGraphOutput {
  DagNodes: [AwsGlueS7x]
  DagEdges: [AwsGlueS85]
}

type AwsGlueS7x {
  Id: String!
  NodeType: String!
  Args: [AwsGlueS81]!
  LineNumber: Int
}

type AwsGlueS81 {
  Name: String!
  Value: String!
  Param: Boolean
}

type AwsGlueS85 {
  Source: String!
  Target: String!
  TargetParameter: String
}

input AwsGlueGetDataflowGraphInput {
  PythonScript: String
}

type AwsGlueGetDevEndpointOutput {
  DevEndpoint: AwsGlueS34
}

input AwsGlueGetDevEndpointInput {
  EndpointName: String!
}

type AwsGlueGetDevEndpointsOutput {
  DevEndpoints: [AwsGlueS34]
  NextToken: String
}

input AwsGlueGetDevEndpointsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlueGetJobOutput {
  Job: AwsGlueS3h
}

input AwsGlueGetJobInput {
  JobName: String!
}

type AwsGlueGetJobBookmarkOutput {
  JobBookmarkEntry: AwsGlueScs
}

type AwsGlueScs {
  JobName: String
  Version: Int
  Run: Int
  Attempt: Int
  PreviousRunId: String
  RunId: String
  JobBookmark: String
}

input AwsGlueGetJobBookmarkInput {
  JobName: String!
  RunId: String
}

type AwsGlueGetJobRunOutput {
  JobRun: AwsGlueS4z
}

input AwsGlueGetJobRunInput {
  JobName: String!
  RunId: String!
  PredecessorsIncluded: Boolean
}

type AwsGlueGetJobRunsOutput {
  JobRuns: [AwsGlueS4z]
  NextToken: String
}

input AwsGlueGetJobRunsInput {
  JobName: String!
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetJobsOutput {
  Jobs: [AwsGlueS3h]
  NextToken: String
}

input AwsGlueGetJobsInput {
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetMLTaskRunOutput {
  TransformId: String
  TaskRunId: String
  Status: String
  LogGroupName: String
  Properties: AwsGlueSd2
  ErrorString: String
  StartedOn: Date
  LastModifiedOn: Date
  CompletedOn: Date
  ExecutionTime: Int
}

type AwsGlueSd2 {
  TaskType: String
  ImportLabelsTaskRunProperties: AwsGlueSd2ImportLabelsTaskRunProperties
  ExportLabelsTaskRunProperties: AwsGlueSd2ExportLabelsTaskRunProperties
  LabelingSetGenerationTaskRunProperties: AwsGlueSd2LabelingSetGenerationTaskRunProperties
  FindMatchesTaskRunProperties: AwsGlueSd2FindMatchesTaskRunProperties
}

type AwsGlueSd2ImportLabelsTaskRunProperties {
  InputS3Path: String
  Replace: Boolean
}

type AwsGlueSd2ExportLabelsTaskRunProperties {
  OutputS3Path: String
}

type AwsGlueSd2LabelingSetGenerationTaskRunProperties {
  OutputS3Path: String
}

type AwsGlueSd2FindMatchesTaskRunProperties {
  JobId: String
  JobName: String
  JobRunId: String
}

input AwsGlueGetMLTaskRunInput {
  TransformId: String!
  TaskRunId: String!
}

type AwsGlueGetMLTaskRunsOutput {
  TaskRuns: [AwsGlueGetMLTaskRunsOutputTaskRuns]
  NextToken: String
}

type AwsGlueGetMLTaskRunsOutputTaskRuns {
  TransformId: String
  TaskRunId: String
  Status: String
  LogGroupName: String
  Properties: AwsGlueSd2
  ErrorString: String
  StartedOn: Date
  LastModifiedOn: Date
  CompletedOn: Date
  ExecutionTime: Int
}

input AwsGlueGetMLTaskRunsInput {
  TransformId: String!
  NextToken: String
  MaxResults: Int
  Filter: AwsGlueGetMLTaskRunsFilterInput
  Sort: AwsGlueGetMLTaskRunsSortInput
}

input AwsGlueGetMLTaskRunsFilterInput {
  TaskRunType: String
  Status: String
  StartedBefore: Date
  StartedAfter: Date
}

input AwsGlueGetMLTaskRunsSortInput {
  Column: String!
  SortDirection: String!
}

type AwsGlueGetMLTransformOutput {
  TransformId: String
  Name: String
  Description: String
  Status: String
  CreatedOn: Date
  LastModifiedOn: Date
  InputRecordTables: [AwsGlueS76]
  Parameters: AwsGlueS78
  EvaluationMetrics: AwsGlueSdl
  LabelCount: Int
  Schema: [AwsGlueSds]
  Role: String
  GlueVersion: String
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  Timeout: Int
  MaxRetries: Int
  TransformEncryption: AwsGlueS7d
}

type AwsGlueS76 {
  DatabaseName: String!
  TableName: String!
  CatalogId: String
  ConnectionName: String
}

type AwsGlueS78 {
  TransformType: String!
  FindMatchesParameters: AwsGlueS78FindMatchesParameters
}

type AwsGlueS78FindMatchesParameters {
  PrimaryKeyColumnName: String
  PrecisionRecallTradeoff: JSON
  AccuracyCostTradeoff: JSON
  EnforceProvidedLabels: Boolean
}

type AwsGlueSdl {
  TransformType: String!
  FindMatchesMetrics: AwsGlueSdlFindMatchesMetrics
}

type AwsGlueSdlFindMatchesMetrics {
  AreaUnderPRCurve: JSON
  Precision: JSON
  Recall: JSON
  F1: JSON
  ConfusionMatrix: AwsGlueSdlFindMatchesMetricsConfusionMatrix
  ColumnImportances: [AwsGlueSdlFindMatchesMetricsColumnImportances]
}

type AwsGlueSdlFindMatchesMetricsConfusionMatrix {
  NumTruePositives: JSON
  NumFalsePositives: JSON
  NumTrueNegatives: JSON
  NumFalseNegatives: JSON
}

type AwsGlueSdlFindMatchesMetricsColumnImportances {
  ColumnName: String
  Importance: JSON
}

type AwsGlueSds {
  Name: String
  DataType: String
}

type AwsGlueS7d {
  MlUserDataEncryption: AwsGlueS7dMlUserDataEncryption
  TaskRunSecurityConfigurationName: String
}

type AwsGlueS7dMlUserDataEncryption {
  MlUserDataEncryptionMode: String!
  KmsKeyId: String
}

input AwsGlueGetMLTransformInput {
  TransformId: String!
}

type AwsGlueGetMLTransformsOutput {
  Transforms: [AwsGlueGetMLTransformsOutputTransforms]!
  NextToken: String
}

type AwsGlueGetMLTransformsOutputTransforms {
  TransformId: String
  Name: String
  Description: String
  Status: String
  CreatedOn: Date
  LastModifiedOn: Date
  InputRecordTables: [AwsGlueS76]
  Parameters: AwsGlueS78
  EvaluationMetrics: AwsGlueSdl
  LabelCount: Int
  Schema: [AwsGlueSds]
  Role: String
  GlueVersion: String
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  Timeout: Int
  MaxRetries: Int
  TransformEncryption: AwsGlueS7d
}

input AwsGlueGetMLTransformsInput {
  NextToken: String
  MaxResults: Int
  Filter: AwsGlueSdvInput
  Sort: AwsGlueSdwInput
}

input AwsGlueSdvInput {
  Name: String
  TransformType: String
  Status: String
  GlueVersion: String
  CreatedBefore: Date
  CreatedAfter: Date
  LastModifiedBefore: Date
  LastModifiedAfter: Date
  Schema: [AwsGlueSdsInput]
}

input AwsGlueSdsInput {
  Name: String
  DataType: String
}

input AwsGlueSdwInput {
  Column: String!
  SortDirection: String!
}

type AwsGlueGetMappingOutput {
  Mapping: [AwsGlueSe6]!
}

type AwsGlueSe6 {
  SourceTable: String
  SourcePath: String
  SourceType: String
  TargetTable: String
  TargetPath: String
  TargetType: String
}

input AwsGlueGetMappingInput {
  Source: AwsGlueSe2Input!
  Sinks: [AwsGlueSe2Input]
  Location: AwsGlueSe4Input
}

input AwsGlueSe2Input {
  DatabaseName: String!
  TableName: String!
}

input AwsGlueSe4Input {
  Jdbc: [AwsGlueS81Input]
  S3: [AwsGlueS81Input]
  DynamoDB: [AwsGlueS81Input]
}

type AwsGlueGetPartitionOutput {
  Partition: AwsGlueS40
}

input AwsGlueGetPartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValues: [String]!
}

type AwsGlueGetPartitionIndexesOutput {
  PartitionIndexDescriptorList: [AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorList]
  NextToken: String
}

type AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorList {
  IndexName: String!
  Keys: [AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorListKeys]!
  IndexStatus: String!
  BackfillErrors: [AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorListBackfillErrors]
}

type AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorListKeys {
  Name: String!
  Type: String!
}

type AwsGlueGetPartitionIndexesOutputPartitionIndexDescriptorListBackfillErrors {
  Code: String
  Partitions: [AwsGlueS1b]
}

input AwsGlueGetPartitionIndexesInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  NextToken: String
}

type AwsGlueGetPartitionsOutput {
  Partitions: [AwsGlueS40]
  NextToken: String
}

input AwsGlueGetPartitionsInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  Expression: String
  NextToken: String
  Segment: AwsGlueGetPartitionsSegmentInput
  MaxResults: Int
  ExcludeColumnSchema: Boolean
}

input AwsGlueGetPartitionsSegmentInput {
  SegmentNumber: Int!
  TotalSegments: Int!
}

type AwsGlueGetPlanOutput {
  PythonScript: String
  ScalaCode: String
}

input AwsGlueGetPlanInput {
  Mapping: [AwsGlueSe6Input]!
  Source: AwsGlueSe2Input!
  Sinks: [AwsGlueSe2Input]
  Location: AwsGlueSe4Input
  Language: String
  AdditionalPlanOptionsMap: JSON
}

input AwsGlueSe6Input {
  SourceTable: String
  SourcePath: String
  SourceType: String
  TargetTable: String
  TargetPath: String
  TargetType: String
}

type AwsGlueGetRegistryOutput {
  RegistryName: String
  RegistryArn: String
  Description: String
  Status: String
  CreatedTime: String
  UpdatedTime: String
}

input AwsGlueGetRegistryInput {
  RegistryId: AwsGlueS7qInput!
}

type AwsGlueGetResourcePoliciesOutput {
  GetResourcePoliciesResponseList: [AwsGlueGetResourcePoliciesOutputGetResourcePoliciesResponseList]
  NextToken: String
}

type AwsGlueGetResourcePoliciesOutputGetResourcePoliciesResponseList {
  PolicyInJson: String
  PolicyHash: String
  CreateTime: Date
  UpdateTime: Date
}

input AwsGlueGetResourcePoliciesInput {
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetResourcePolicyOutput {
  PolicyInJson: String
  PolicyHash: String
  CreateTime: Date
  UpdateTime: Date
}

input AwsGlueGetResourcePolicyInput {
  ResourceArn: String
}

type AwsGlueGetSchemaOutput {
  RegistryName: String
  RegistryArn: String
  SchemaName: String
  SchemaArn: String
  Description: String
  DataFormat: String
  Compatibility: String
  SchemaCheckpoint: JSON
  LatestSchemaVersion: JSON
  NextSchemaVersion: JSON
  SchemaStatus: String
  CreatedTime: String
  UpdatedTime: String
}

input AwsGlueGetSchemaInput {
  SchemaId: AwsGlueSvInput!
}

type AwsGlueGetSchemaByDefinitionOutput {
  SchemaVersionId: String
  SchemaArn: String
  DataFormat: String
  Status: String
  CreatedTime: String
}

input AwsGlueGetSchemaByDefinitionInput {
  SchemaId: AwsGlueSvInput!
  SchemaDefinition: String!
}

type AwsGlueGetSchemaVersionOutput {
  SchemaVersionId: String
  SchemaDefinition: String
  DataFormat: String
  SchemaArn: String
  VersionNumber: JSON
  Status: String
  CreatedTime: String
}

input AwsGlueGetSchemaVersionInput {
  SchemaId: AwsGlueSvInput
  SchemaVersionId: String
  SchemaVersionNumber: AwsGlueSfdInput
}

input AwsGlueSfdInput {
  LatestVersion: Boolean
  VersionNumber: JSON
}

type AwsGlueGetSchemaVersionsDiffOutput {
  Diff: String
}

input AwsGlueGetSchemaVersionsDiffInput {
  SchemaId: AwsGlueSvInput!
  FirstSchemaVersionNumber: AwsGlueSfdInput!
  SecondSchemaVersionNumber: AwsGlueSfdInput!
  SchemaDiffType: String!
}

type AwsGlueGetSecurityConfigurationOutput {
  SecurityConfiguration: AwsGlueSfm
}

type AwsGlueSfm {
  Name: String
  CreatedTimeStamp: Date
  EncryptionConfiguration: AwsGlueS8c
}

type AwsGlueS8c {
  S3Encryption: [AwsGlueS8cS3Encryption]
  CloudWatchEncryption: AwsGlueS8cCloudWatchEncryption
  JobBookmarksEncryption: AwsGlueS8cJobBookmarksEncryption
}

type AwsGlueS8cS3Encryption {
  S3EncryptionMode: String
  KmsKeyArn: String
}

type AwsGlueS8cCloudWatchEncryption {
  CloudWatchEncryptionMode: String
  KmsKeyArn: String
}

type AwsGlueS8cJobBookmarksEncryption {
  JobBookmarksEncryptionMode: String
  KmsKeyArn: String
}

input AwsGlueGetSecurityConfigurationInput {
  Name: String!
}

type AwsGlueGetSecurityConfigurationsOutput {
  SecurityConfigurations: [AwsGlueSfm]
  NextToken: String
}

input AwsGlueGetSecurityConfigurationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlueGetTableOutput {
  Table: AwsGlueSfs
}

type AwsGlueSfs {
  Name: String!
  DatabaseName: String
  Description: String
  Owner: String
  CreateTime: Date
  UpdateTime: Date
  LastAccessTime: Date
  LastAnalyzedTime: Date
  Retention: Int
  StorageDescriptor: AwsGlueS9
  PartitionKeys: [AwsGlueSa]
  ViewOriginalText: String
  ViewExpandedText: String
  TableType: String
  Parameters: JSON
  CreatedBy: String
  IsRegisteredWithLakeFormation: Boolean
  TargetTable: AwsGlueS8r
  CatalogId: String
}

type AwsGlueS8r {
  CatalogId: String
  DatabaseName: String
  Name: String
}

input AwsGlueGetTableInput {
  CatalogId: String
  DatabaseName: String!
  Name: String!
}

type AwsGlueGetTableVersionOutput {
  TableVersion: AwsGlueSfv
}

type AwsGlueSfv {
  Table: AwsGlueSfs
  VersionId: String
}

input AwsGlueGetTableVersionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  VersionId: String
}

type AwsGlueGetTableVersionsOutput {
  TableVersions: [AwsGlueSfv]
  NextToken: String
}

input AwsGlueGetTableVersionsInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetTablesOutput {
  TableList: [AwsGlueSfs]
  NextToken: String
}

input AwsGlueGetTablesInput {
  CatalogId: String
  DatabaseName: String!
  Expression: String
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetTagsOutput {
  Tags: JSON
}

input AwsGlueGetTagsInput {
  ResourceArn: String!
}

type AwsGlueGetTriggerOutput {
  Trigger: AwsGlueS45
}

input AwsGlueGetTriggerInput {
  Name: String!
}

type AwsGlueGetTriggersOutput {
  Triggers: [AwsGlueS45]
  NextToken: String
}

input AwsGlueGetTriggersInput {
  NextToken: String
  DependentJobName: String
  MaxResults: Int
}

type AwsGlueGetUserDefinedFunctionOutput {
  UserDefinedFunction: AwsGlueSgb
}

type AwsGlueSgb {
  FunctionName: String
  DatabaseName: String
  ClassName: String
  OwnerName: String
  OwnerType: String
  CreateTime: Date
  ResourceUris: [AwsGlueS90]
  CatalogId: String
}

type AwsGlueS90 {
  ResourceType: String
  Uri: String
}

input AwsGlueGetUserDefinedFunctionInput {
  CatalogId: String
  DatabaseName: String!
  FunctionName: String!
}

type AwsGlueGetUserDefinedFunctionsOutput {
  UserDefinedFunctions: [AwsGlueSgb]
  NextToken: String
}

input AwsGlueGetUserDefinedFunctionsInput {
  CatalogId: String
  DatabaseName: String
  Pattern: String!
  NextToken: String
  MaxResults: Int
}

type AwsGlueGetWorkflowOutput {
  Workflow: AwsGlueS4m
}

input AwsGlueGetWorkflowInput {
  Name: String!
  IncludeGraph: Boolean
}

type AwsGlueGetWorkflowRunOutput {
  Run: AwsGlueS4o
}

input AwsGlueGetWorkflowRunInput {
  Name: String!
  RunId: String!
  IncludeGraph: Boolean
}

type AwsGlueGetWorkflowRunPropertiesOutput {
  RunProperties: JSON
}

input AwsGlueGetWorkflowRunPropertiesInput {
  Name: String!
  RunId: String!
}

type AwsGlueGetWorkflowRunsOutput {
  Runs: [AwsGlueS4o]
  NextToken: String
}

input AwsGlueGetWorkflowRunsInput {
  Name: String!
  IncludeGraph: Boolean
  NextToken: String
  MaxResults: Int
}

input AwsGlueImportCatalogToGlueInput {
  CatalogId: String
}

type AwsGlueListCrawlersOutput {
  CrawlerNames: [String]
  NextToken: String
}

input AwsGlueListCrawlersInput {
  MaxResults: Int
  NextToken: String
  Tags: JSON
}

type AwsGlueListDevEndpointsOutput {
  DevEndpointNames: [String]
  NextToken: String
}

input AwsGlueListDevEndpointsInput {
  NextToken: String
  MaxResults: Int
  Tags: JSON
}

type AwsGlueListJobsOutput {
  JobNames: [String]
  NextToken: String
}

input AwsGlueListJobsInput {
  NextToken: String
  MaxResults: Int
  Tags: JSON
}

type AwsGlueListMLTransformsOutput {
  TransformIds: [String]!
  NextToken: String
}

input AwsGlueListMLTransformsInput {
  NextToken: String
  MaxResults: Int
  Filter: AwsGlueSdvInput
  Sort: AwsGlueSdwInput
  Tags: JSON
}

type AwsGlueListRegistriesOutput {
  Registries: [AwsGlueListRegistriesOutputRegistries]
  NextToken: String
}

type AwsGlueListRegistriesOutputRegistries {
  RegistryName: String
  RegistryArn: String
  Description: String
  Status: String
  CreatedTime: String
  UpdatedTime: String
}

input AwsGlueListRegistriesInput {
  MaxResults: Int
  NextToken: String
}

type AwsGlueListSchemaVersionsOutput {
  Schemas: [AwsGlueListSchemaVersionsOutputSchemas]
  NextToken: String
}

type AwsGlueListSchemaVersionsOutputSchemas {
  SchemaArn: String
  SchemaVersionId: String
  VersionNumber: JSON
  Status: String
  CreatedTime: String
}

input AwsGlueListSchemaVersionsInput {
  SchemaId: AwsGlueSvInput!
  MaxResults: Int
  NextToken: String
}

type AwsGlueListSchemasOutput {
  Schemas: [AwsGlueListSchemasOutputSchemas]
  NextToken: String
}

type AwsGlueListSchemasOutputSchemas {
  RegistryName: String
  SchemaName: String
  SchemaArn: String
  Description: String
  SchemaStatus: String
  CreatedTime: String
  UpdatedTime: String
}

input AwsGlueListSchemasInput {
  RegistryId: AwsGlueS7qInput
  MaxResults: Int
  NextToken: String
}

type AwsGlueListTriggersOutput {
  TriggerNames: [String]
  NextToken: String
}

input AwsGlueListTriggersInput {
  NextToken: String
  DependentJobName: String
  MaxResults: Int
  Tags: JSON
}

type AwsGlueListWorkflowsOutput {
  Workflows: [String]
  NextToken: String
}

input AwsGlueListWorkflowsInput {
  NextToken: String
  MaxResults: Int
}

input AwsGluePutDataCatalogEncryptionSettingsInput {
  CatalogId: String
  DataCatalogEncryptionSettings: AwsGlueSc4Input!
}

input AwsGlueSc4Input {
  EncryptionAtRest: AwsGlueSc4EncryptionAtRestInput
  ConnectionPasswordEncryption: AwsGlueSc4ConnectionPasswordEncryptionInput
}

input AwsGlueSc4EncryptionAtRestInput {
  CatalogEncryptionMode: String!
  SseAwsKmsKeyId: String
}

input AwsGlueSc4ConnectionPasswordEncryptionInput {
  ReturnConnectionPasswordEncrypted: Boolean!
  AwsKmsKeyId: String
}

type AwsGluePutResourcePolicyOutput {
  PolicyHash: String
}

input AwsGluePutResourcePolicyInput {
  PolicyInJson: String!
  ResourceArn: String
  PolicyHashCondition: String
  PolicyExistsCondition: String
  EnableHybrid: String
}

type AwsGluePutSchemaVersionMetadataOutput {
  SchemaArn: String
  SchemaName: String
  RegistryName: String
  LatestVersion: Boolean
  VersionNumber: JSON
  SchemaVersionId: String
  MetadataKey: String
  MetadataValue: String
}

input AwsGluePutSchemaVersionMetadataInput {
  SchemaId: AwsGlueSvInput
  SchemaVersionNumber: AwsGlueSfdInput
  SchemaVersionId: String
  MetadataKeyValue: AwsGlueShpInput!
}

input AwsGlueShpInput {
  MetadataKey: String
  MetadataValue: String
}

input AwsGluePutWorkflowRunPropertiesInput {
  Name: String!
  RunId: String!
  RunProperties: JSON!
}

type AwsGlueQuerySchemaVersionMetadataOutput {
  MetadataInfoMap: JSON
  SchemaVersionId: String
  NextToken: String
}

input AwsGlueQuerySchemaVersionMetadataInput {
  SchemaId: AwsGlueSvInput
  SchemaVersionNumber: AwsGlueSfdInput
  SchemaVersionId: String
  MetadataList: [AwsGlueShpInput]
  MaxResults: Int
  NextToken: String
}

type AwsGlueRegisterSchemaVersionOutput {
  SchemaVersionId: String
  VersionNumber: JSON
  Status: String
}

input AwsGlueRegisterSchemaVersionInput {
  SchemaId: AwsGlueSvInput!
  SchemaDefinition: String!
}

type AwsGlueRemoveSchemaVersionMetadataOutput {
  SchemaArn: String
  SchemaName: String
  RegistryName: String
  LatestVersion: Boolean
  VersionNumber: JSON
  SchemaVersionId: String
  MetadataKey: String
  MetadataValue: String
}

input AwsGlueRemoveSchemaVersionMetadataInput {
  SchemaId: AwsGlueSvInput
  SchemaVersionNumber: AwsGlueSfdInput
  SchemaVersionId: String
  MetadataKeyValue: AwsGlueShpInput!
}

type AwsGlueResetJobBookmarkOutput {
  JobBookmarkEntry: AwsGlueScs
}

input AwsGlueResetJobBookmarkInput {
  JobName: String!
  RunId: String
}

type AwsGlueResumeWorkflowRunOutput {
  RunId: String
  NodeIds: [String]
}

input AwsGlueResumeWorkflowRunInput {
  Name: String!
  RunId: String!
  NodeIds: [String]!
}

type AwsGlueSearchTablesOutput {
  NextToken: String
  TableList: [AwsGlueSfs]
}

input AwsGlueSearchTablesInput {
  CatalogId: String
  NextToken: String
  Filters: [AwsGlueSearchTablesFiltersInput]
  SearchText: String
  SortCriteria: [AwsGlueSearchTablesSortCriteriaInput]
  MaxResults: Int
  ResourceShareType: String
}

input AwsGlueSearchTablesFiltersInput {
  Key: String
  Value: String
  Comparator: String
}

input AwsGlueSearchTablesSortCriteriaInput {
  FieldName: String
  Sort: String
}

input AwsGlueStartCrawlerInput {
  Name: String!
}

input AwsGlueStartCrawlerScheduleInput {
  CrawlerName: String!
}

type AwsGlueStartExportLabelsTaskRunOutput {
  TaskRunId: String
}

input AwsGlueStartExportLabelsTaskRunInput {
  TransformId: String!
  OutputS3Path: String!
}

type AwsGlueStartImportLabelsTaskRunOutput {
  TaskRunId: String
}

input AwsGlueStartImportLabelsTaskRunInput {
  TransformId: String!
  InputS3Path: String!
  ReplaceAllLabels: Boolean
}

type AwsGlueStartJobRunOutput {
  JobRunId: String
}

input AwsGlueStartJobRunInput {
  JobName: String!
  JobRunId: String
  Arguments: JSON
  AllocatedCapacity: Int
  Timeout: Int
  MaxCapacity: JSON
  SecurityConfiguration: String
  NotificationProperty: AwsGlueS3uInput
  WorkerType: String
  NumberOfWorkers: Int
}

type AwsGlueStartMLEvaluationTaskRunOutput {
  TaskRunId: String
}

input AwsGlueStartMLEvaluationTaskRunInput {
  TransformId: String!
}

type AwsGlueStartMLLabelingSetGenerationTaskRunOutput {
  TaskRunId: String
}

input AwsGlueStartMLLabelingSetGenerationTaskRunInput {
  TransformId: String!
  OutputS3Path: String!
}

type AwsGlueStartTriggerOutput {
  Name: String
}

input AwsGlueStartTriggerInput {
  Name: String!
}

type AwsGlueStartWorkflowRunOutput {
  RunId: String
}

input AwsGlueStartWorkflowRunInput {
  Name: String!
}

input AwsGlueStopCrawlerInput {
  Name: String!
}

input AwsGlueStopCrawlerScheduleInput {
  CrawlerName: String!
}

type AwsGlueStopTriggerOutput {
  Name: String
}

input AwsGlueStopTriggerInput {
  Name: String!
}

input AwsGlueStopWorkflowRunInput {
  Name: String!
  RunId: String!
}

input AwsGlueTagResourceInput {
  ResourceArn: String!
  TagsToAdd: JSON!
}

input AwsGlueUntagResourceInput {
  ResourceArn: String!
  TagsToRemove: [String]!
}

input AwsGlueUpdateClassifierInput {
  GrokClassifier: AwsGlueUpdateClassifierGrokClassifierInput
  XMLClassifier: AwsGlueUpdateClassifierXMLClassifierInput
  JsonClassifier: AwsGlueUpdateClassifierJsonClassifierInput
  CsvClassifier: AwsGlueUpdateClassifierCsvClassifierInput
}

input AwsGlueUpdateClassifierGrokClassifierInput {
  Name: String!
  Classification: String
  GrokPattern: String
  CustomPatterns: String
}

input AwsGlueUpdateClassifierXMLClassifierInput {
  Name: String!
  Classification: String
  RowTag: String
}

input AwsGlueUpdateClassifierJsonClassifierInput {
  Name: String!
  JsonPath: String
}

input AwsGlueUpdateClassifierCsvClassifierInput {
  Name: String!
  Delimiter: String
  QuoteSymbol: String
  ContainsHeader: String
  Header: [String]
  DisableValueTrimming: Boolean
  AllowSingleColumn: Boolean
}

type AwsGlueUpdateColumnStatisticsForPartitionOutput {
  Errors: [AwsGlueSjo]
}

type AwsGlueSjo {
  ColumnStatistics: AwsGlueSb2
  Error: AwsGlueS13
}

input AwsGlueUpdateColumnStatisticsForPartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValues: [String]!
  ColumnStatisticsList: [AwsGlueSb2Input]!
}

input AwsGlueSb2Input {
  ColumnName: String!
  ColumnType: String!
  AnalyzedTime: Date!
  StatisticsData: AwsGlueSb2StatisticsDataInput!
}

input AwsGlueSb2StatisticsDataInput {
  Type: String!
  BooleanColumnStatisticsData: AwsGlueSb2StatisticsDataBooleanColumnStatisticsDataInput
  DateColumnStatisticsData: AwsGlueSb2StatisticsDataDateColumnStatisticsDataInput
  DecimalColumnStatisticsData: AwsGlueSb2StatisticsDataDecimalColumnStatisticsDataInput
  DoubleColumnStatisticsData: AwsGlueSb2StatisticsDataDoubleColumnStatisticsDataInput
  LongColumnStatisticsData: AwsGlueSb2StatisticsDataLongColumnStatisticsDataInput
  StringColumnStatisticsData: AwsGlueSb2StatisticsDataStringColumnStatisticsDataInput
  BinaryColumnStatisticsData: AwsGlueSb2StatisticsDataBinaryColumnStatisticsDataInput
}

input AwsGlueSb2StatisticsDataBooleanColumnStatisticsDataInput {
  NumberOfTrues: JSON!
  NumberOfFalses: JSON!
  NumberOfNulls: JSON!
}

input AwsGlueSb2StatisticsDataDateColumnStatisticsDataInput {
  MinimumValue: Date
  MaximumValue: Date
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

input AwsGlueSb2StatisticsDataDecimalColumnStatisticsDataInput {
  MinimumValue: AwsGlueSbaInput
  MaximumValue: AwsGlueSbaInput
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

input AwsGlueSbaInput {
  UnscaledValue: JSON!
  Scale: Int!
}

input AwsGlueSb2StatisticsDataDoubleColumnStatisticsDataInput {
  MinimumValue: JSON
  MaximumValue: JSON
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

input AwsGlueSb2StatisticsDataLongColumnStatisticsDataInput {
  MinimumValue: JSON
  MaximumValue: JSON
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

input AwsGlueSb2StatisticsDataStringColumnStatisticsDataInput {
  MaximumLength: JSON!
  AverageLength: JSON!
  NumberOfNulls: JSON!
  NumberOfDistinctValues: JSON!
}

input AwsGlueSb2StatisticsDataBinaryColumnStatisticsDataInput {
  MaximumLength: JSON!
  AverageLength: JSON!
  NumberOfNulls: JSON!
}

type AwsGlueUpdateColumnStatisticsForTableOutput {
  Errors: [AwsGlueSjo]
}

input AwsGlueUpdateColumnStatisticsForTableInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  ColumnStatisticsList: [AwsGlueSb2Input]!
}

input AwsGlueUpdateConnectionInput {
  CatalogId: String
  Name: String!
  ConnectionInput: AwsGlueS6dInput!
}

input AwsGlueUpdateCrawlerInput {
  Name: String!
  Role: String
  DatabaseName: String
  Description: String
  Targets: AwsGlueS1uInput
  Schedule: String
  Classifiers: [String]
  TablePrefix: String
  SchemaChangePolicy: AwsGlueS2gInput
  RecrawlPolicy: AwsGlueS2eInput
  LineageConfiguration: AwsGlueS2jInput
  Configuration: String
  CrawlerSecurityConfiguration: String
}

input AwsGlueUpdateCrawlerScheduleInput {
  CrawlerName: String!
  Schedule: String
}

input AwsGlueUpdateDatabaseInput {
  CatalogId: String
  Name: String!
  DatabaseInput: AwsGlueS6rInput!
}

input AwsGlueUpdateDevEndpointInput {
  EndpointName: String!
  PublicKey: String
  AddPublicKeys: [String]
  DeletePublicKeys: [String]
  CustomLibraries: AwsGlueUpdateDevEndpointCustomLibrariesInput
  UpdateEtlLibraries: Boolean
  DeleteArguments: [String]
  AddArguments: JSON
}

input AwsGlueUpdateDevEndpointCustomLibrariesInput {
  ExtraPythonLibsS3Path: String
  ExtraJarsS3Path: String
}

type AwsGlueUpdateJobOutput {
  JobName: String
}

input AwsGlueUpdateJobInput {
  JobName: String!
  JobUpdate: AwsGlueUpdateJobJobUpdateInput!
}

input AwsGlueUpdateJobJobUpdateInput {
  Description: String
  LogUri: String
  Role: String
  ExecutionProperty: AwsGlueS3kInput
  Command: AwsGlueS3mInput
  DefaultArguments: JSON
  NonOverridableArguments: JSON
  Connections: AwsGlueS3qInput
  MaxRetries: Int
  AllocatedCapacity: Int
  Timeout: Int
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  SecurityConfiguration: String
  NotificationProperty: AwsGlueS3uInput
  GlueVersion: String
}

type AwsGlueUpdateMLTransformOutput {
  TransformId: String
}

input AwsGlueUpdateMLTransformInput {
  TransformId: String!
  Name: String
  Description: String
  Parameters: AwsGlueS78Input
  Role: String
  GlueVersion: String
  MaxCapacity: JSON
  WorkerType: String
  NumberOfWorkers: Int
  Timeout: Int
  MaxRetries: Int
}

input AwsGlueUpdatePartitionInput {
  CatalogId: String
  DatabaseName: String!
  TableName: String!
  PartitionValueList: [String]!
  PartitionInput: AwsGlueS5Input!
}

type AwsGlueUpdateRegistryOutput {
  RegistryName: String
  RegistryArn: String
}

input AwsGlueUpdateRegistryInput {
  RegistryId: AwsGlueS7qInput!
  Description: String!
}

type AwsGlueUpdateSchemaOutput {
  SchemaArn: String
  SchemaName: String
  RegistryName: String
}

input AwsGlueUpdateSchemaInput {
  SchemaId: AwsGlueSvInput!
  SchemaVersionNumber: AwsGlueSfdInput
  Compatibility: String
  Description: String
}

input AwsGlueUpdateTableInput {
  CatalogId: String
  DatabaseName: String!
  TableInput: AwsGlueS8nInput!
  SkipArchive: Boolean
}

type AwsGlueUpdateTriggerOutput {
  Trigger: AwsGlueS45
}

input AwsGlueUpdateTriggerInput {
  Name: String!
  TriggerUpdate: AwsGlueUpdateTriggerTriggerUpdateInput!
}

input AwsGlueUpdateTriggerTriggerUpdateInput {
  Name: String
  Description: String
  Schedule: String
  Actions: [AwsGlueS49Input]
  Predicate: AwsGlueS4bInput
}

input AwsGlueUpdateUserDefinedFunctionInput {
  CatalogId: String
  DatabaseName: String!
  FunctionName: String!
  FunctionInput: AwsGlueS8yInput!
}

type AwsGlueUpdateWorkflowOutput {
  Name: String
}

input AwsGlueUpdateWorkflowInput {
  Name: String!
  Description: String
  DefaultRunProperties: JSON
  MaxConcurrentRuns: Int
}

"""AWS Greengrass (2017-06-07)"""
type AwsGreengrass {
  associateRoleToGroup(input: AwsGreengrassAssociateRoleToGroupInput!, config: AwsConfig): AwsGreengrassAssociateRoleToGroupOutput
  associateServiceRoleToAccount(input: AwsGreengrassAssociateServiceRoleToAccountInput!, config: AwsConfig): AwsGreengrassAssociateServiceRoleToAccountOutput
  createConnectorDefinition(input: AwsGreengrassCreateConnectorDefinitionInput, config: AwsConfig): AwsGreengrassCreateConnectorDefinitionOutput
  createConnectorDefinitionVersion(input: AwsGreengrassCreateConnectorDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateConnectorDefinitionVersionOutput
  createCoreDefinition(input: AwsGreengrassCreateCoreDefinitionInput, config: AwsConfig): AwsGreengrassCreateCoreDefinitionOutput
  createCoreDefinitionVersion(input: AwsGreengrassCreateCoreDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateCoreDefinitionVersionOutput
  createDeployment(input: AwsGreengrassCreateDeploymentInput!, config: AwsConfig): AwsGreengrassCreateDeploymentOutput
  createDeviceDefinition(input: AwsGreengrassCreateDeviceDefinitionInput, config: AwsConfig): AwsGreengrassCreateDeviceDefinitionOutput
  createDeviceDefinitionVersion(input: AwsGreengrassCreateDeviceDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateDeviceDefinitionVersionOutput
  createFunctionDefinition(input: AwsGreengrassCreateFunctionDefinitionInput, config: AwsConfig): AwsGreengrassCreateFunctionDefinitionOutput
  createFunctionDefinitionVersion(input: AwsGreengrassCreateFunctionDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateFunctionDefinitionVersionOutput
  createGroup(input: AwsGreengrassCreateGroupInput!, config: AwsConfig): AwsGreengrassCreateGroupOutput
  createGroupCertificateAuthority(input: AwsGreengrassCreateGroupCertificateAuthorityInput!, config: AwsConfig): AwsGreengrassCreateGroupCertificateAuthorityOutput
  createGroupVersion(input: AwsGreengrassCreateGroupVersionInput!, config: AwsConfig): AwsGreengrassCreateGroupVersionOutput
  createLoggerDefinition(input: AwsGreengrassCreateLoggerDefinitionInput, config: AwsConfig): AwsGreengrassCreateLoggerDefinitionOutput
  createLoggerDefinitionVersion(input: AwsGreengrassCreateLoggerDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateLoggerDefinitionVersionOutput
  createResourceDefinition(input: AwsGreengrassCreateResourceDefinitionInput, config: AwsConfig): AwsGreengrassCreateResourceDefinitionOutput
  createResourceDefinitionVersion(input: AwsGreengrassCreateResourceDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateResourceDefinitionVersionOutput
  createSoftwareUpdateJob(input: AwsGreengrassCreateSoftwareUpdateJobInput!, config: AwsConfig): AwsGreengrassCreateSoftwareUpdateJobOutput
  createSubscriptionDefinition(input: AwsGreengrassCreateSubscriptionDefinitionInput, config: AwsConfig): AwsGreengrassCreateSubscriptionDefinitionOutput
  createSubscriptionDefinitionVersion(input: AwsGreengrassCreateSubscriptionDefinitionVersionInput!, config: AwsConfig): AwsGreengrassCreateSubscriptionDefinitionVersionOutput
  deleteConnectorDefinition(input: AwsGreengrassDeleteConnectorDefinitionInput!, config: AwsConfig): JSON
  deleteCoreDefinition(input: AwsGreengrassDeleteCoreDefinitionInput!, config: AwsConfig): JSON
  deleteDeviceDefinition(input: AwsGreengrassDeleteDeviceDefinitionInput!, config: AwsConfig): JSON
  deleteFunctionDefinition(input: AwsGreengrassDeleteFunctionDefinitionInput!, config: AwsConfig): JSON
  deleteGroup(input: AwsGreengrassDeleteGroupInput!, config: AwsConfig): JSON
  deleteLoggerDefinition(input: AwsGreengrassDeleteLoggerDefinitionInput!, config: AwsConfig): JSON
  deleteResourceDefinition(input: AwsGreengrassDeleteResourceDefinitionInput!, config: AwsConfig): JSON
  deleteSubscriptionDefinition(input: AwsGreengrassDeleteSubscriptionDefinitionInput!, config: AwsConfig): JSON
  disassociateRoleFromGroup(input: AwsGreengrassDisassociateRoleFromGroupInput!, config: AwsConfig): AwsGreengrassDisassociateRoleFromGroupOutput
  disassociateServiceRoleFromAccount(input: JSON, config: AwsConfig): AwsGreengrassDisassociateServiceRoleFromAccountOutput
  getAssociatedRole(input: AwsGreengrassGetAssociatedRoleInput!, config: AwsConfig): AwsGreengrassGetAssociatedRoleOutput
  getBulkDeploymentStatus(input: AwsGreengrassGetBulkDeploymentStatusInput!, config: AwsConfig): AwsGreengrassGetBulkDeploymentStatusOutput
  getConnectivityInfo(input: AwsGreengrassGetConnectivityInfoInput!, config: AwsConfig): AwsGreengrassGetConnectivityInfoOutput
  getConnectorDefinition(input: AwsGreengrassGetConnectorDefinitionInput!, config: AwsConfig): AwsGreengrassGetConnectorDefinitionOutput
  getConnectorDefinitionVersion(input: AwsGreengrassGetConnectorDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetConnectorDefinitionVersionOutput
  getCoreDefinition(input: AwsGreengrassGetCoreDefinitionInput!, config: AwsConfig): AwsGreengrassGetCoreDefinitionOutput
  getCoreDefinitionVersion(input: AwsGreengrassGetCoreDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetCoreDefinitionVersionOutput
  getDeploymentStatus(input: AwsGreengrassGetDeploymentStatusInput!, config: AwsConfig): AwsGreengrassGetDeploymentStatusOutput
  getDeviceDefinition(input: AwsGreengrassGetDeviceDefinitionInput!, config: AwsConfig): AwsGreengrassGetDeviceDefinitionOutput
  getDeviceDefinitionVersion(input: AwsGreengrassGetDeviceDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetDeviceDefinitionVersionOutput
  getFunctionDefinition(input: AwsGreengrassGetFunctionDefinitionInput!, config: AwsConfig): AwsGreengrassGetFunctionDefinitionOutput
  getFunctionDefinitionVersion(input: AwsGreengrassGetFunctionDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetFunctionDefinitionVersionOutput
  getGroup(input: AwsGreengrassGetGroupInput!, config: AwsConfig): AwsGreengrassGetGroupOutput
  getGroupCertificateAuthority(input: AwsGreengrassGetGroupCertificateAuthorityInput!, config: AwsConfig): AwsGreengrassGetGroupCertificateAuthorityOutput
  getGroupCertificateConfiguration(input: AwsGreengrassGetGroupCertificateConfigurationInput!, config: AwsConfig): AwsGreengrassGetGroupCertificateConfigurationOutput
  getGroupVersion(input: AwsGreengrassGetGroupVersionInput!, config: AwsConfig): AwsGreengrassGetGroupVersionOutput
  getLoggerDefinition(input: AwsGreengrassGetLoggerDefinitionInput!, config: AwsConfig): AwsGreengrassGetLoggerDefinitionOutput
  getLoggerDefinitionVersion(input: AwsGreengrassGetLoggerDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetLoggerDefinitionVersionOutput
  getResourceDefinition(input: AwsGreengrassGetResourceDefinitionInput!, config: AwsConfig): AwsGreengrassGetResourceDefinitionOutput
  getResourceDefinitionVersion(input: AwsGreengrassGetResourceDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetResourceDefinitionVersionOutput
  getServiceRoleForAccount(input: JSON, config: AwsConfig): AwsGreengrassGetServiceRoleForAccountOutput
  getSubscriptionDefinition(input: AwsGreengrassGetSubscriptionDefinitionInput!, config: AwsConfig): AwsGreengrassGetSubscriptionDefinitionOutput
  getSubscriptionDefinitionVersion(input: AwsGreengrassGetSubscriptionDefinitionVersionInput!, config: AwsConfig): AwsGreengrassGetSubscriptionDefinitionVersionOutput
  getThingRuntimeConfiguration(input: AwsGreengrassGetThingRuntimeConfigurationInput!, config: AwsConfig): AwsGreengrassGetThingRuntimeConfigurationOutput
  listBulkDeploymentDetailedReports(input: AwsGreengrassListBulkDeploymentDetailedReportsInput!, config: AwsConfig): AwsGreengrassListBulkDeploymentDetailedReportsOutput
  listBulkDeployments(input: AwsGreengrassListBulkDeploymentsInput, config: AwsConfig): AwsGreengrassListBulkDeploymentsOutput
  listConnectorDefinitionVersions(input: AwsGreengrassListConnectorDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListConnectorDefinitionVersionsOutput
  listConnectorDefinitions(input: AwsGreengrassListConnectorDefinitionsInput, config: AwsConfig): AwsGreengrassListConnectorDefinitionsOutput
  listCoreDefinitionVersions(input: AwsGreengrassListCoreDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListCoreDefinitionVersionsOutput
  listCoreDefinitions(input: AwsGreengrassListCoreDefinitionsInput, config: AwsConfig): AwsGreengrassListCoreDefinitionsOutput
  listDeployments(input: AwsGreengrassListDeploymentsInput!, config: AwsConfig): AwsGreengrassListDeploymentsOutput
  listDeviceDefinitionVersions(input: AwsGreengrassListDeviceDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListDeviceDefinitionVersionsOutput
  listDeviceDefinitions(input: AwsGreengrassListDeviceDefinitionsInput, config: AwsConfig): AwsGreengrassListDeviceDefinitionsOutput
  listFunctionDefinitionVersions(input: AwsGreengrassListFunctionDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListFunctionDefinitionVersionsOutput
  listFunctionDefinitions(input: AwsGreengrassListFunctionDefinitionsInput, config: AwsConfig): AwsGreengrassListFunctionDefinitionsOutput
  listGroupCertificateAuthorities(input: AwsGreengrassListGroupCertificateAuthoritiesInput!, config: AwsConfig): AwsGreengrassListGroupCertificateAuthoritiesOutput
  listGroupVersions(input: AwsGreengrassListGroupVersionsInput!, config: AwsConfig): AwsGreengrassListGroupVersionsOutput
  listGroups(input: AwsGreengrassListGroupsInput, config: AwsConfig): AwsGreengrassListGroupsOutput
  listLoggerDefinitionVersions(input: AwsGreengrassListLoggerDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListLoggerDefinitionVersionsOutput
  listLoggerDefinitions(input: AwsGreengrassListLoggerDefinitionsInput, config: AwsConfig): AwsGreengrassListLoggerDefinitionsOutput
  listResourceDefinitionVersions(input: AwsGreengrassListResourceDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListResourceDefinitionVersionsOutput
  listResourceDefinitions(input: AwsGreengrassListResourceDefinitionsInput, config: AwsConfig): AwsGreengrassListResourceDefinitionsOutput
  listSubscriptionDefinitionVersions(input: AwsGreengrassListSubscriptionDefinitionVersionsInput!, config: AwsConfig): AwsGreengrassListSubscriptionDefinitionVersionsOutput
  listSubscriptionDefinitions(input: AwsGreengrassListSubscriptionDefinitionsInput, config: AwsConfig): AwsGreengrassListSubscriptionDefinitionsOutput
  listTagsForResource(input: AwsGreengrassListTagsForResourceInput!, config: AwsConfig): AwsGreengrassListTagsForResourceOutput
  resetDeployments(input: AwsGreengrassResetDeploymentsInput!, config: AwsConfig): AwsGreengrassResetDeploymentsOutput
  startBulkDeployment(input: AwsGreengrassStartBulkDeploymentInput!, config: AwsConfig): AwsGreengrassStartBulkDeploymentOutput
  stopBulkDeployment(input: AwsGreengrassStopBulkDeploymentInput!, config: AwsConfig): JSON
  tagResource(input: AwsGreengrassTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGreengrassUntagResourceInput!, config: AwsConfig): JSON
  updateConnectivityInfo(input: AwsGreengrassUpdateConnectivityInfoInput!, config: AwsConfig): AwsGreengrassUpdateConnectivityInfoOutput
  updateConnectorDefinition(input: AwsGreengrassUpdateConnectorDefinitionInput!, config: AwsConfig): JSON
  updateCoreDefinition(input: AwsGreengrassUpdateCoreDefinitionInput!, config: AwsConfig): JSON
  updateDeviceDefinition(input: AwsGreengrassUpdateDeviceDefinitionInput!, config: AwsConfig): JSON
  updateFunctionDefinition(input: AwsGreengrassUpdateFunctionDefinitionInput!, config: AwsConfig): JSON
  updateGroup(input: AwsGreengrassUpdateGroupInput!, config: AwsConfig): JSON
  updateGroupCertificateConfiguration(input: AwsGreengrassUpdateGroupCertificateConfigurationInput!, config: AwsConfig): AwsGreengrassUpdateGroupCertificateConfigurationOutput
  updateLoggerDefinition(input: AwsGreengrassUpdateLoggerDefinitionInput!, config: AwsConfig): JSON
  updateResourceDefinition(input: AwsGreengrassUpdateResourceDefinitionInput!, config: AwsConfig): JSON
  updateSubscriptionDefinition(input: AwsGreengrassUpdateSubscriptionDefinitionInput!, config: AwsConfig): JSON
  updateThingRuntimeConfiguration(input: AwsGreengrassUpdateThingRuntimeConfigurationInput!, config: AwsConfig): JSON
}

type AwsGreengrassAssociateRoleToGroupOutput {
  AssociatedAt: String
}

input AwsGreengrassAssociateRoleToGroupInput {
  GroupId: String!
  RoleArn: String!
}

type AwsGreengrassAssociateServiceRoleToAccountOutput {
  AssociatedAt: String
}

input AwsGreengrassAssociateServiceRoleToAccountInput {
  RoleArn: String!
}

type AwsGreengrassCreateConnectorDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateConnectorDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassS7Input
  Name: String
  tags: JSON
}

input AwsGreengrassS7Input {
  Connectors: [AwsGreengrassS8Input]
}

input AwsGreengrassS8Input {
  ConnectorArn: String!
  Id: String!
  Parameters: JSON
}

type AwsGreengrassCreateConnectorDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateConnectorDefinitionVersionInput {
  AmznClientToken: String
  ConnectorDefinitionId: String!
  Connectors: [AwsGreengrassS8Input]
}

type AwsGreengrassCreateCoreDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateCoreDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassSgInput
  Name: String
  tags: JSON
}

input AwsGreengrassSgInput {
  Cores: [AwsGreengrassShInput]
}

input AwsGreengrassShInput {
  CertificateArn: String!
  Id: String!
  SyncShadow: Boolean
  ThingArn: String!
}

type AwsGreengrassCreateCoreDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateCoreDefinitionVersionInput {
  AmznClientToken: String
  CoreDefinitionId: String!
  Cores: [AwsGreengrassShInput]
}

type AwsGreengrassCreateDeploymentOutput {
  DeploymentArn: String
  DeploymentId: String
}

input AwsGreengrassCreateDeploymentInput {
  AmznClientToken: String
  DeploymentId: String
  DeploymentType: String!
  GroupId: String!
  GroupVersionId: String
}

type AwsGreengrassCreateDeviceDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateDeviceDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassSrInput
  Name: String
  tags: JSON
}

input AwsGreengrassSrInput {
  Devices: [AwsGreengrassSsInput]
}

input AwsGreengrassSsInput {
  CertificateArn: String!
  Id: String!
  SyncShadow: Boolean
  ThingArn: String!
}

type AwsGreengrassCreateDeviceDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateDeviceDefinitionVersionInput {
  AmznClientToken: String
  DeviceDefinitionId: String!
  Devices: [AwsGreengrassSsInput]
}

type AwsGreengrassCreateFunctionDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateFunctionDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassSyInput
  Name: String
  tags: JSON
}

input AwsGreengrassSyInput {
  DefaultConfig: AwsGreengrassSzInput
  Functions: [AwsGreengrassS14Input]
}

input AwsGreengrassSzInput {
  Execution: AwsGreengrassSzExecutionInput
}

input AwsGreengrassSzExecutionInput {
  IsolationMode: String
  RunAs: AwsGreengrassS12Input
}

input AwsGreengrassS12Input {
  Gid: Int
  Uid: Int
}

input AwsGreengrassS14Input {
  FunctionArn: String
  FunctionConfiguration: AwsGreengrassS14FunctionConfigurationInput
  Id: String!
}

input AwsGreengrassS14FunctionConfigurationInput {
  EncodingType: String
  Environment: AwsGreengrassS14FunctionConfigurationEnvironmentInput
  ExecArgs: String
  Executable: String
  MemorySize: Int
  Pinned: Boolean
  Timeout: Int
}

input AwsGreengrassS14FunctionConfigurationEnvironmentInput {
  AccessSysfs: Boolean
  Execution: AwsGreengrassS14FunctionConfigurationEnvironmentExecutionInput
  ResourceAccessPolicies: [AwsGreengrassS14FunctionConfigurationEnvironmentResourceAccessPoliciesInput]
  Variables: JSON
}

input AwsGreengrassS14FunctionConfigurationEnvironmentExecutionInput {
  IsolationMode: String
  RunAs: AwsGreengrassS12Input
}

input AwsGreengrassS14FunctionConfigurationEnvironmentResourceAccessPoliciesInput {
  Permission: String
  ResourceId: String!
}

type AwsGreengrassCreateFunctionDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateFunctionDefinitionVersionInput {
  AmznClientToken: String
  DefaultConfig: AwsGreengrassSzInput
  FunctionDefinitionId: String!
  Functions: [AwsGreengrassS14Input]
}

type AwsGreengrassCreateGroupOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateGroupInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassS1hInput
  Name: String!
  tags: JSON
}

input AwsGreengrassS1hInput {
  ConnectorDefinitionVersionArn: String
  CoreDefinitionVersionArn: String
  DeviceDefinitionVersionArn: String
  FunctionDefinitionVersionArn: String
  LoggerDefinitionVersionArn: String
  ResourceDefinitionVersionArn: String
  SubscriptionDefinitionVersionArn: String
}

type AwsGreengrassCreateGroupCertificateAuthorityOutput {
  GroupCertificateAuthorityArn: String
}

input AwsGreengrassCreateGroupCertificateAuthorityInput {
  AmznClientToken: String
  GroupId: String!
}

type AwsGreengrassCreateGroupVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateGroupVersionInput {
  AmznClientToken: String
  ConnectorDefinitionVersionArn: String
  CoreDefinitionVersionArn: String
  DeviceDefinitionVersionArn: String
  FunctionDefinitionVersionArn: String
  GroupId: String!
  LoggerDefinitionVersionArn: String
  ResourceDefinitionVersionArn: String
  SubscriptionDefinitionVersionArn: String
}

type AwsGreengrassCreateLoggerDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateLoggerDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassS1oInput
  Name: String
  tags: JSON
}

input AwsGreengrassS1oInput {
  Loggers: [AwsGreengrassS1pInput]
}

input AwsGreengrassS1pInput {
  Component: String!
  Id: String!
  Level: String!
  Space: Int
  Type: String!
}

type AwsGreengrassCreateLoggerDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateLoggerDefinitionVersionInput {
  AmznClientToken: String
  LoggerDefinitionId: String!
  Loggers: [AwsGreengrassS1pInput]
}

type AwsGreengrassCreateResourceDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateResourceDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassS1yInput
  Name: String
  tags: JSON
}

input AwsGreengrassS1yInput {
  Resources: [AwsGreengrassS1zInput]
}

input AwsGreengrassS1zInput {
  Id: String!
  Name: String!
  ResourceDataContainer: AwsGreengrassS1zResourceDataContainerInput!
}

input AwsGreengrassS1zResourceDataContainerInput {
  LocalDeviceResourceData: AwsGreengrassS1zResourceDataContainerLocalDeviceResourceDataInput
  LocalVolumeResourceData: AwsGreengrassS1zResourceDataContainerLocalVolumeResourceDataInput
  S3MachineLearningModelResourceData: AwsGreengrassS1zResourceDataContainerS3MachineLearningModelResourceDataInput
  SageMakerMachineLearningModelResourceData: AwsGreengrassS1zResourceDataContainerSageMakerMachineLearningModelResourceDataInput
  SecretsManagerSecretResourceData: AwsGreengrassS1zResourceDataContainerSecretsManagerSecretResourceDataInput
}

input AwsGreengrassS1zResourceDataContainerLocalDeviceResourceDataInput {
  GroupOwnerSetting: AwsGreengrassS23Input
  SourcePath: String
}

input AwsGreengrassS23Input {
  AutoAddGroupOwner: Boolean
  GroupOwner: String
}

input AwsGreengrassS1zResourceDataContainerLocalVolumeResourceDataInput {
  DestinationPath: String
  GroupOwnerSetting: AwsGreengrassS23Input
  SourcePath: String
}

input AwsGreengrassS1zResourceDataContainerS3MachineLearningModelResourceDataInput {
  DestinationPath: String
  OwnerSetting: AwsGreengrassS26Input
  S3Uri: String
}

input AwsGreengrassS26Input {
  GroupOwner: String!
  GroupPermission: String!
}

input AwsGreengrassS1zResourceDataContainerSageMakerMachineLearningModelResourceDataInput {
  DestinationPath: String
  OwnerSetting: AwsGreengrassS26Input
  SageMakerJobArn: String
}

input AwsGreengrassS1zResourceDataContainerSecretsManagerSecretResourceDataInput {
  ARN: String
  AdditionalStagingLabelsToDownload: [String]
}

type AwsGreengrassCreateResourceDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateResourceDefinitionVersionInput {
  AmznClientToken: String
  ResourceDefinitionId: String!
  Resources: [AwsGreengrassS1zInput]
}

type AwsGreengrassCreateSoftwareUpdateJobOutput {
  IotJobArn: String
  IotJobId: String
  PlatformSoftwareVersion: String
}

input AwsGreengrassCreateSoftwareUpdateJobInput {
  AmznClientToken: String
  S3UrlSignerRole: String!
  SoftwareToUpdate: String!
  UpdateAgentLogLevel: String
  UpdateTargets: [String]!
  UpdateTargetsArchitecture: String!
  UpdateTargetsOperatingSystem: String!
}

type AwsGreengrassCreateSubscriptionDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassCreateSubscriptionDefinitionInput {
  AmznClientToken: String
  InitialVersion: AwsGreengrassS2mInput
  Name: String
  tags: JSON
}

input AwsGreengrassS2mInput {
  Subscriptions: [AwsGreengrassS2nInput]
}

input AwsGreengrassS2nInput {
  Id: String!
  Source: String!
  Subject: String!
  Target: String!
}

type AwsGreengrassCreateSubscriptionDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassCreateSubscriptionDefinitionVersionInput {
  AmznClientToken: String
  SubscriptionDefinitionId: String!
  Subscriptions: [AwsGreengrassS2nInput]
}

input AwsGreengrassDeleteConnectorDefinitionInput {
  ConnectorDefinitionId: String!
}

input AwsGreengrassDeleteCoreDefinitionInput {
  CoreDefinitionId: String!
}

input AwsGreengrassDeleteDeviceDefinitionInput {
  DeviceDefinitionId: String!
}

input AwsGreengrassDeleteFunctionDefinitionInput {
  FunctionDefinitionId: String!
}

input AwsGreengrassDeleteGroupInput {
  GroupId: String!
}

input AwsGreengrassDeleteLoggerDefinitionInput {
  LoggerDefinitionId: String!
}

input AwsGreengrassDeleteResourceDefinitionInput {
  ResourceDefinitionId: String!
}

input AwsGreengrassDeleteSubscriptionDefinitionInput {
  SubscriptionDefinitionId: String!
}

type AwsGreengrassDisassociateRoleFromGroupOutput {
  DisassociatedAt: String
}

input AwsGreengrassDisassociateRoleFromGroupInput {
  GroupId: String!
}

type AwsGreengrassDisassociateServiceRoleFromAccountOutput {
  DisassociatedAt: String
}

type AwsGreengrassGetAssociatedRoleOutput {
  AssociatedAt: String
  RoleArn: String
}

input AwsGreengrassGetAssociatedRoleInput {
  GroupId: String!
}

type AwsGreengrassGetBulkDeploymentStatusOutput {
  BulkDeploymentMetrics: AwsGreengrassGetBulkDeploymentStatusOutputBulkDeploymentMetrics
  BulkDeploymentStatus: String
  CreatedAt: String
  ErrorDetails: [AwsGreengrassS3i]
  ErrorMessage: String
  tags: JSON
}

type AwsGreengrassGetBulkDeploymentStatusOutputBulkDeploymentMetrics {
  InvalidInputRecords: Int
  RecordsProcessed: Int
  RetryAttempts: Int
}

type AwsGreengrassS3i {
  DetailedErrorCode: String
  DetailedErrorMessage: String
}

input AwsGreengrassGetBulkDeploymentStatusInput {
  BulkDeploymentId: String!
}

type AwsGreengrassGetConnectivityInfoOutput {
  ConnectivityInfo: [AwsGreengrassS3m]
  Message: String
}

type AwsGreengrassS3m {
  HostAddress: String
  Id: String
  Metadata: String
  PortNumber: Int
}

input AwsGreengrassGetConnectivityInfoInput {
  ThingName: String!
}

type AwsGreengrassGetConnectorDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetConnectorDefinitionInput {
  ConnectorDefinitionId: String!
}

type AwsGreengrassGetConnectorDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassS7
  Id: String
  NextToken: String
  Version: String
}

type AwsGreengrassS7 {
  Connectors: [AwsGreengrassS8]
}

type AwsGreengrassS8 {
  ConnectorArn: String!
  Id: String!
  Parameters: JSON
}

input AwsGreengrassGetConnectorDefinitionVersionInput {
  ConnectorDefinitionId: String!
  ConnectorDefinitionVersionId: String!
  NextToken: String
}

type AwsGreengrassGetCoreDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetCoreDefinitionInput {
  CoreDefinitionId: String!
}

type AwsGreengrassGetCoreDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassSg
  Id: String
  NextToken: String
  Version: String
}

type AwsGreengrassSg {
  Cores: [AwsGreengrassSh]
}

type AwsGreengrassSh {
  CertificateArn: String!
  Id: String!
  SyncShadow: Boolean
  ThingArn: String!
}

input AwsGreengrassGetCoreDefinitionVersionInput {
  CoreDefinitionId: String!
  CoreDefinitionVersionId: String!
}

type AwsGreengrassGetDeploymentStatusOutput {
  DeploymentStatus: String
  DeploymentType: String
  ErrorDetails: [AwsGreengrassS3i]
  ErrorMessage: String
  UpdatedAt: String
}

input AwsGreengrassGetDeploymentStatusInput {
  DeploymentId: String!
  GroupId: String!
}

type AwsGreengrassGetDeviceDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetDeviceDefinitionInput {
  DeviceDefinitionId: String!
}

type AwsGreengrassGetDeviceDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassSr
  Id: String
  NextToken: String
  Version: String
}

type AwsGreengrassSr {
  Devices: [AwsGreengrassSs]
}

type AwsGreengrassSs {
  CertificateArn: String!
  Id: String!
  SyncShadow: Boolean
  ThingArn: String!
}

input AwsGreengrassGetDeviceDefinitionVersionInput {
  DeviceDefinitionId: String!
  DeviceDefinitionVersionId: String!
  NextToken: String
}

type AwsGreengrassGetFunctionDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetFunctionDefinitionInput {
  FunctionDefinitionId: String!
}

type AwsGreengrassGetFunctionDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassSy
  Id: String
  NextToken: String
  Version: String
}

type AwsGreengrassSy {
  DefaultConfig: AwsGreengrassSz
  Functions: [AwsGreengrassS14]
}

type AwsGreengrassSz {
  Execution: AwsGreengrassSzExecution
}

type AwsGreengrassSzExecution {
  IsolationMode: String
  RunAs: AwsGreengrassS12
}

type AwsGreengrassS12 {
  Gid: Int
  Uid: Int
}

type AwsGreengrassS14 {
  FunctionArn: String
  FunctionConfiguration: AwsGreengrassS14FunctionConfiguration
  Id: String!
}

type AwsGreengrassS14FunctionConfiguration {
  EncodingType: String
  Environment: AwsGreengrassS14FunctionConfigurationEnvironment
  ExecArgs: String
  Executable: String
  MemorySize: Int
  Pinned: Boolean
  Timeout: Int
}

type AwsGreengrassS14FunctionConfigurationEnvironment {
  AccessSysfs: Boolean
  Execution: AwsGreengrassS14FunctionConfigurationEnvironmentExecution
  ResourceAccessPolicies: [AwsGreengrassS14FunctionConfigurationEnvironmentResourceAccessPolicies]
  Variables: JSON
}

type AwsGreengrassS14FunctionConfigurationEnvironmentExecution {
  IsolationMode: String
  RunAs: AwsGreengrassS12
}

type AwsGreengrassS14FunctionConfigurationEnvironmentResourceAccessPolicies {
  Permission: String
  ResourceId: String!
}

input AwsGreengrassGetFunctionDefinitionVersionInput {
  FunctionDefinitionId: String!
  FunctionDefinitionVersionId: String!
  NextToken: String
}

type AwsGreengrassGetGroupOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetGroupInput {
  GroupId: String!
}

type AwsGreengrassGetGroupCertificateAuthorityOutput {
  GroupCertificateAuthorityArn: String
  GroupCertificateAuthorityId: String
  PemEncodedCertificate: String
}

input AwsGreengrassGetGroupCertificateAuthorityInput {
  CertificateAuthorityId: String!
  GroupId: String!
}

type AwsGreengrassGetGroupCertificateConfigurationOutput {
  CertificateAuthorityExpiryInMilliseconds: String
  CertificateExpiryInMilliseconds: String
  GroupId: String
}

input AwsGreengrassGetGroupCertificateConfigurationInput {
  GroupId: String!
}

type AwsGreengrassGetGroupVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassS1h
  Id: String
  Version: String
}

type AwsGreengrassS1h {
  ConnectorDefinitionVersionArn: String
  CoreDefinitionVersionArn: String
  DeviceDefinitionVersionArn: String
  FunctionDefinitionVersionArn: String
  LoggerDefinitionVersionArn: String
  ResourceDefinitionVersionArn: String
  SubscriptionDefinitionVersionArn: String
}

input AwsGreengrassGetGroupVersionInput {
  GroupId: String!
  GroupVersionId: String!
}

type AwsGreengrassGetLoggerDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetLoggerDefinitionInput {
  LoggerDefinitionId: String!
}

type AwsGreengrassGetLoggerDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassS1o
  Id: String
  Version: String
}

type AwsGreengrassS1o {
  Loggers: [AwsGreengrassS1p]
}

type AwsGreengrassS1p {
  Component: String!
  Id: String!
  Level: String!
  Space: Int
  Type: String!
}

input AwsGreengrassGetLoggerDefinitionVersionInput {
  LoggerDefinitionId: String!
  LoggerDefinitionVersionId: String!
  NextToken: String
}

type AwsGreengrassGetResourceDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetResourceDefinitionInput {
  ResourceDefinitionId: String!
}

type AwsGreengrassGetResourceDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassS1y
  Id: String
  Version: String
}

type AwsGreengrassS1y {
  Resources: [AwsGreengrassS1z]
}

type AwsGreengrassS1z {
  Id: String!
  Name: String!
  ResourceDataContainer: AwsGreengrassS1zResourceDataContainer!
}

type AwsGreengrassS1zResourceDataContainer {
  LocalDeviceResourceData: AwsGreengrassS1zResourceDataContainerLocalDeviceResourceData
  LocalVolumeResourceData: AwsGreengrassS1zResourceDataContainerLocalVolumeResourceData
  S3MachineLearningModelResourceData: AwsGreengrassS1zResourceDataContainerS3MachineLearningModelResourceData
  SageMakerMachineLearningModelResourceData: AwsGreengrassS1zResourceDataContainerSageMakerMachineLearningModelResourceData
  SecretsManagerSecretResourceData: AwsGreengrassS1zResourceDataContainerSecretsManagerSecretResourceData
}

type AwsGreengrassS1zResourceDataContainerLocalDeviceResourceData {
  GroupOwnerSetting: AwsGreengrassS23
  SourcePath: String
}

type AwsGreengrassS23 {
  AutoAddGroupOwner: Boolean
  GroupOwner: String
}

type AwsGreengrassS1zResourceDataContainerLocalVolumeResourceData {
  DestinationPath: String
  GroupOwnerSetting: AwsGreengrassS23
  SourcePath: String
}

type AwsGreengrassS1zResourceDataContainerS3MachineLearningModelResourceData {
  DestinationPath: String
  OwnerSetting: AwsGreengrassS26
  S3Uri: String
}

type AwsGreengrassS26 {
  GroupOwner: String!
  GroupPermission: String!
}

type AwsGreengrassS1zResourceDataContainerSageMakerMachineLearningModelResourceData {
  DestinationPath: String
  OwnerSetting: AwsGreengrassS26
  SageMakerJobArn: String
}

type AwsGreengrassS1zResourceDataContainerSecretsManagerSecretResourceData {
  ARN: String
  AdditionalStagingLabelsToDownload: [String]
}

input AwsGreengrassGetResourceDefinitionVersionInput {
  ResourceDefinitionId: String!
  ResourceDefinitionVersionId: String!
}

type AwsGreengrassGetServiceRoleForAccountOutput {
  AssociatedAt: String
  RoleArn: String
}

type AwsGreengrassGetSubscriptionDefinitionOutput {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  tags: JSON
}

input AwsGreengrassGetSubscriptionDefinitionInput {
  SubscriptionDefinitionId: String!
}

type AwsGreengrassGetSubscriptionDefinitionVersionOutput {
  Arn: String
  CreationTimestamp: String
  Definition: AwsGreengrassS2m
  Id: String
  NextToken: String
  Version: String
}

type AwsGreengrassS2m {
  Subscriptions: [AwsGreengrassS2n]
}

type AwsGreengrassS2n {
  Id: String!
  Source: String!
  Subject: String!
  Target: String!
}

input AwsGreengrassGetSubscriptionDefinitionVersionInput {
  NextToken: String
  SubscriptionDefinitionId: String!
  SubscriptionDefinitionVersionId: String!
}

type AwsGreengrassGetThingRuntimeConfigurationOutput {
  RuntimeConfiguration: AwsGreengrassGetThingRuntimeConfigurationOutputRuntimeConfiguration
}

type AwsGreengrassGetThingRuntimeConfigurationOutputRuntimeConfiguration {
  TelemetryConfiguration: AwsGreengrassGetThingRuntimeConfigurationOutputRuntimeConfigurationTelemetryConfiguration
}

type AwsGreengrassGetThingRuntimeConfigurationOutputRuntimeConfigurationTelemetryConfiguration {
  ConfigurationSyncStatus: String
  Telemetry: String!
}

input AwsGreengrassGetThingRuntimeConfigurationInput {
  ThingName: String!
}

type AwsGreengrassListBulkDeploymentDetailedReportsOutput {
  Deployments: [AwsGreengrassListBulkDeploymentDetailedReportsOutputDeployments]
  NextToken: String
}

type AwsGreengrassListBulkDeploymentDetailedReportsOutputDeployments {
  CreatedAt: String
  DeploymentArn: String
  DeploymentId: String
  DeploymentStatus: String
  DeploymentType: String
  ErrorDetails: [AwsGreengrassS3i]
  ErrorMessage: String
  GroupArn: String
}

input AwsGreengrassListBulkDeploymentDetailedReportsInput {
  BulkDeploymentId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListBulkDeploymentsOutput {
  BulkDeployments: [AwsGreengrassListBulkDeploymentsOutputBulkDeployments]
  NextToken: String
}

type AwsGreengrassListBulkDeploymentsOutputBulkDeployments {
  BulkDeploymentArn: String
  BulkDeploymentId: String
  CreatedAt: String
}

input AwsGreengrassListBulkDeploymentsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListConnectorDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

type AwsGreengrassS58 {
  Arn: String
  CreationTimestamp: String
  Id: String
  Version: String
}

input AwsGreengrassListConnectorDefinitionVersionsInput {
  ConnectorDefinitionId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListConnectorDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

type AwsGreengrassS5c {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
  Tags: JSON
}

input AwsGreengrassListConnectorDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListCoreDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListCoreDefinitionVersionsInput {
  CoreDefinitionId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListCoreDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListCoreDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListDeploymentsOutput {
  Deployments: [AwsGreengrassListDeploymentsOutputDeployments]
  NextToken: String
}

type AwsGreengrassListDeploymentsOutputDeployments {
  CreatedAt: String
  DeploymentArn: String
  DeploymentId: String
  DeploymentType: String
  GroupArn: String
}

input AwsGreengrassListDeploymentsInput {
  GroupId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListDeviceDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListDeviceDefinitionVersionsInput {
  DeviceDefinitionId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListDeviceDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListDeviceDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListFunctionDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListFunctionDefinitionVersionsInput {
  FunctionDefinitionId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListFunctionDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListFunctionDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListGroupCertificateAuthoritiesOutput {
  GroupCertificateAuthorities: [AwsGreengrassListGroupCertificateAuthoritiesOutputGroupCertificateAuthorities]
}

type AwsGreengrassListGroupCertificateAuthoritiesOutputGroupCertificateAuthorities {
  GroupCertificateAuthorityArn: String
  GroupCertificateAuthorityId: String
}

input AwsGreengrassListGroupCertificateAuthoritiesInput {
  GroupId: String!
}

type AwsGreengrassListGroupVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListGroupVersionsInput {
  GroupId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListGroupsOutput {
  Groups: [AwsGreengrassListGroupsOutputGroups]
  NextToken: String
}

type AwsGreengrassListGroupsOutputGroups {
  Arn: String
  CreationTimestamp: String
  Id: String
  LastUpdatedTimestamp: String
  LatestVersion: String
  LatestVersionArn: String
  Name: String
}

input AwsGreengrassListGroupsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListLoggerDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListLoggerDefinitionVersionsInput {
  LoggerDefinitionId: String!
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListLoggerDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListLoggerDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListResourceDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListResourceDefinitionVersionsInput {
  MaxResults: String
  NextToken: String
  ResourceDefinitionId: String!
}

type AwsGreengrassListResourceDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListResourceDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListSubscriptionDefinitionVersionsOutput {
  NextToken: String
  Versions: [AwsGreengrassS58]
}

input AwsGreengrassListSubscriptionDefinitionVersionsInput {
  MaxResults: String
  NextToken: String
  SubscriptionDefinitionId: String!
}

type AwsGreengrassListSubscriptionDefinitionsOutput {
  Definitions: [AwsGreengrassS5c]
  NextToken: String
}

input AwsGreengrassListSubscriptionDefinitionsInput {
  MaxResults: String
  NextToken: String
}

type AwsGreengrassListTagsForResourceOutput {
  tags: JSON
}

input AwsGreengrassListTagsForResourceInput {
  ResourceArn: String!
}

type AwsGreengrassResetDeploymentsOutput {
  DeploymentArn: String
  DeploymentId: String
}

input AwsGreengrassResetDeploymentsInput {
  AmznClientToken: String
  Force: Boolean
  GroupId: String!
}

type AwsGreengrassStartBulkDeploymentOutput {
  BulkDeploymentArn: String
  BulkDeploymentId: String
}

input AwsGreengrassStartBulkDeploymentInput {
  AmznClientToken: String
  ExecutionRoleArn: String!
  InputFileUri: String!
  tags: JSON
}

input AwsGreengrassStopBulkDeploymentInput {
  BulkDeploymentId: String!
}

input AwsGreengrassTagResourceInput {
  ResourceArn: String!
  tags: JSON
}

input AwsGreengrassUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsGreengrassUpdateConnectivityInfoOutput {
  Message: String
  Version: String
}

input AwsGreengrassUpdateConnectivityInfoInput {
  ConnectivityInfo: [AwsGreengrassS3mInput]
  ThingName: String!
}

input AwsGreengrassS3mInput {
  HostAddress: String
  Id: String
  Metadata: String
  PortNumber: Int
}

input AwsGreengrassUpdateConnectorDefinitionInput {
  ConnectorDefinitionId: String!
  Name: String
}

input AwsGreengrassUpdateCoreDefinitionInput {
  CoreDefinitionId: String!
  Name: String
}

input AwsGreengrassUpdateDeviceDefinitionInput {
  DeviceDefinitionId: String!
  Name: String
}

input AwsGreengrassUpdateFunctionDefinitionInput {
  FunctionDefinitionId: String!
  Name: String
}

input AwsGreengrassUpdateGroupInput {
  GroupId: String!
  Name: String
}

type AwsGreengrassUpdateGroupCertificateConfigurationOutput {
  CertificateAuthorityExpiryInMilliseconds: String
  CertificateExpiryInMilliseconds: String
  GroupId: String
}

input AwsGreengrassUpdateGroupCertificateConfigurationInput {
  CertificateExpiryInMilliseconds: String
  GroupId: String!
}

input AwsGreengrassUpdateLoggerDefinitionInput {
  LoggerDefinitionId: String!
  Name: String
}

input AwsGreengrassUpdateResourceDefinitionInput {
  Name: String
  ResourceDefinitionId: String!
}

input AwsGreengrassUpdateSubscriptionDefinitionInput {
  Name: String
  SubscriptionDefinitionId: String!
}

input AwsGreengrassUpdateThingRuntimeConfigurationInput {
  TelemetryConfiguration: AwsGreengrassUpdateThingRuntimeConfigurationTelemetryConfigurationInput
  ThingName: String!
}

input AwsGreengrassUpdateThingRuntimeConfigurationTelemetryConfigurationInput {
  Telemetry: String!
}

"""AWS IoT Greengrass V2 (2020-11-30)"""
type AwsGreengrassV2 {
  batchAssociateClientDeviceWithCoreDevice(input: AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceInput!, config: AwsConfig): AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceOutput
  batchDisassociateClientDeviceFromCoreDevice(input: AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceInput!, config: AwsConfig): AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceOutput
  cancelDeployment(input: AwsGreengrassV2CancelDeploymentInput!, config: AwsConfig): AwsGreengrassV2CancelDeploymentOutput
  createComponentVersion(input: AwsGreengrassV2CreateComponentVersionInput, config: AwsConfig): AwsGreengrassV2CreateComponentVersionOutput
  createDeployment(input: AwsGreengrassV2CreateDeploymentInput!, config: AwsConfig): AwsGreengrassV2CreateDeploymentOutput
  deleteComponent(input: AwsGreengrassV2DeleteComponentInput!, config: AwsConfig): JSON
  deleteCoreDevice(input: AwsGreengrassV2DeleteCoreDeviceInput!, config: AwsConfig): JSON
  describeComponent(input: AwsGreengrassV2DescribeComponentInput!, config: AwsConfig): AwsGreengrassV2DescribeComponentOutput
  getComponent(input: AwsGreengrassV2GetComponentInput!, config: AwsConfig): AwsGreengrassV2GetComponentOutput
  getComponentVersionArtifact(input: AwsGreengrassV2GetComponentVersionArtifactInput!, config: AwsConfig): AwsGreengrassV2GetComponentVersionArtifactOutput
  getCoreDevice(input: AwsGreengrassV2GetCoreDeviceInput!, config: AwsConfig): AwsGreengrassV2GetCoreDeviceOutput
  getDeployment(input: AwsGreengrassV2GetDeploymentInput!, config: AwsConfig): AwsGreengrassV2GetDeploymentOutput
  listClientDevicesAssociatedWithCoreDevice(input: AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceInput!, config: AwsConfig): AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceOutput
  listComponentVersions(input: AwsGreengrassV2ListComponentVersionsInput!, config: AwsConfig): AwsGreengrassV2ListComponentVersionsOutput
  listComponents(input: AwsGreengrassV2ListComponentsInput, config: AwsConfig): AwsGreengrassV2ListComponentsOutput
  listCoreDevices(input: AwsGreengrassV2ListCoreDevicesInput, config: AwsConfig): AwsGreengrassV2ListCoreDevicesOutput
  listDeployments(input: AwsGreengrassV2ListDeploymentsInput, config: AwsConfig): AwsGreengrassV2ListDeploymentsOutput
  listEffectiveDeployments(input: AwsGreengrassV2ListEffectiveDeploymentsInput!, config: AwsConfig): AwsGreengrassV2ListEffectiveDeploymentsOutput
  listInstalledComponents(input: AwsGreengrassV2ListInstalledComponentsInput!, config: AwsConfig): AwsGreengrassV2ListInstalledComponentsOutput
  listTagsForResource(input: AwsGreengrassV2ListTagsForResourceInput!, config: AwsConfig): AwsGreengrassV2ListTagsForResourceOutput
  resolveComponentCandidates(input: AwsGreengrassV2ResolveComponentCandidatesInput!, config: AwsConfig): AwsGreengrassV2ResolveComponentCandidatesOutput
  tagResource(input: AwsGreengrassV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGreengrassV2UntagResourceInput!, config: AwsConfig): JSON
}

type AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceOutput {
  errorEntries: [AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceOutputErrorEntries]
}

type AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceOutputErrorEntries {
  thingName: String
  code: String
  message: String
}

input AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceInput {
  entries: [AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceEntriesInput]
  coreDeviceThingName: String!
}

input AwsGreengrassV2BatchAssociateClientDeviceWithCoreDeviceEntriesInput {
  thingName: String!
}

type AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceOutput {
  errorEntries: [AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceOutputErrorEntries]
}

type AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceOutputErrorEntries {
  thingName: String
  code: String
  message: String
}

input AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceInput {
  entries: [AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceEntriesInput]
  coreDeviceThingName: String!
}

input AwsGreengrassV2BatchDisassociateClientDeviceFromCoreDeviceEntriesInput {
  thingName: String!
}

type AwsGreengrassV2CancelDeploymentOutput {
  message: String
}

input AwsGreengrassV2CancelDeploymentInput {
  deploymentId: String!
}

type AwsGreengrassV2CreateComponentVersionOutput {
  arn: String
  componentName: String!
  componentVersion: String!
  creationTimestamp: Date!
  status: AwsGreengrassV2S1k!
}

type AwsGreengrassV2S1k {
  componentState: String
  message: String
  errors: JSON
}

input AwsGreengrassV2CreateComponentVersionInput {
  inlineRecipe: JSON
  lambdaFunction: AwsGreengrassV2CreateComponentVersionLambdaFunctionInput
  tags: JSON
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionInput {
  lambdaArn: String!
  componentName: String
  componentVersion: String
  componentPlatforms: [AwsGreengrassV2SoInput]
  componentDependencies: JSON
  componentLambdaParameters: AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersInput
}

input AwsGreengrassV2SoInput {
  name: String
  attributes: JSON
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersInput {
  eventSources: [AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersEventSourcesInput]
  maxQueueSize: Int
  maxInstancesCount: Int
  maxIdleTimeInSeconds: Int
  timeoutInSeconds: Int
  statusTimeoutInSeconds: Int
  pinned: Boolean
  inputPayloadEncodingType: String
  execArgs: [String]
  environmentVariables: JSON
  linuxProcessParams: AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsInput
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersEventSourcesInput {
  topic: String!
  type: String!
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsInput {
  isolationMode: String
  containerParams: AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsInput
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsInput {
  memorySizeInKB: Int
  mountROSysfs: Boolean
  volumes: [AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsVolumesInput]
  devices: [AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsDevicesInput]
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsVolumesInput {
  sourcePath: String!
  destinationPath: String!
  permission: String
  addGroupOwner: Boolean
}

input AwsGreengrassV2CreateComponentVersionLambdaFunctionComponentLambdaParametersLinuxProcessParamsContainerParamsDevicesInput {
  path: String!
  permission: String
  addGroupOwner: Boolean
}

type AwsGreengrassV2CreateDeploymentOutput {
  deploymentId: String
  iotJobId: String
  iotJobArn: String
}

input AwsGreengrassV2CreateDeploymentInput {
  targetArn: String!
  deploymentName: String
  components: JSON
  iotJobConfiguration: AwsGreengrassV2S1wInput
  deploymentPolicies: AwsGreengrassV2S2dInput
  tags: JSON
}

input AwsGreengrassV2S1wInput {
  jobExecutionsRolloutConfig: AwsGreengrassV2S1wJobExecutionsRolloutConfigInput
  abortConfig: AwsGreengrassV2S1wAbortConfigInput
  timeoutConfig: AwsGreengrassV2S1wTimeoutConfigInput
}

input AwsGreengrassV2S1wJobExecutionsRolloutConfigInput {
  exponentialRate: AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateInput
  maximumPerMinute: Int
}

input AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateInput {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateRateIncreaseCriteriaInput!
}

input AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateRateIncreaseCriteriaInput {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

input AwsGreengrassV2S1wAbortConfigInput {
  criteriaList: [AwsGreengrassV2S1wAbortConfigCriteriaListInput]!
}

input AwsGreengrassV2S1wAbortConfigCriteriaListInput {
  failureType: String!
  action: String!
  thresholdPercentage: JSON!
  minNumberOfExecutedThings: Int!
}

input AwsGreengrassV2S1wTimeoutConfigInput {
  inProgressTimeoutInMinutes: JSON
}

input AwsGreengrassV2S2dInput {
  failureHandlingPolicy: String
  componentUpdatePolicy: AwsGreengrassV2S2dComponentUpdatePolicyInput
  configurationValidationPolicy: AwsGreengrassV2S2dConfigurationValidationPolicyInput
}

input AwsGreengrassV2S2dComponentUpdatePolicyInput {
  timeoutInSeconds: Int
  action: String
}

input AwsGreengrassV2S2dConfigurationValidationPolicyInput {
  timeoutInSeconds: Int
}

input AwsGreengrassV2DeleteComponentInput {
  arn: String!
}

input AwsGreengrassV2DeleteCoreDeviceInput {
  coreDeviceThingName: String!
}

type AwsGreengrassV2DescribeComponentOutput {
  arn: String
  componentName: String
  componentVersion: String
  creationTimestamp: Date
  publisher: String
  description: String
  status: AwsGreengrassV2S1k
  platforms: [AwsGreengrassV2So]
  tags: JSON
}

type AwsGreengrassV2So {
  name: String
  attributes: JSON
}

input AwsGreengrassV2DescribeComponentInput {
  arn: String!
}

type AwsGreengrassV2GetComponentOutput {
  recipeOutputFormat: String!
  recipe: JSON!
  tags: JSON
}

input AwsGreengrassV2GetComponentInput {
  recipeOutputFormat: String
  arn: String!
}

type AwsGreengrassV2GetComponentVersionArtifactOutput {
  preSignedUrl: String!
}

input AwsGreengrassV2GetComponentVersionArtifactInput {
  arn: String!
  artifactName: String!
}

type AwsGreengrassV2GetCoreDeviceOutput {
  coreDeviceThingName: String
  coreVersion: String
  platform: String
  architecture: String
  status: String
  lastStatusUpdateTimestamp: Date
  tags: JSON
}

input AwsGreengrassV2GetCoreDeviceInput {
  coreDeviceThingName: String!
}

type AwsGreengrassV2GetDeploymentOutput {
  targetArn: String
  revisionId: String
  deploymentId: String
  deploymentName: String
  deploymentStatus: String
  iotJobId: String
  iotJobArn: String
  components: JSON
  deploymentPolicies: AwsGreengrassV2S2d
  iotJobConfiguration: AwsGreengrassV2S1w
  creationTimestamp: Date
  isLatestForTarget: Boolean
  tags: JSON
}

type AwsGreengrassV2S2d {
  failureHandlingPolicy: String
  componentUpdatePolicy: AwsGreengrassV2S2dComponentUpdatePolicy
  configurationValidationPolicy: AwsGreengrassV2S2dConfigurationValidationPolicy
}

type AwsGreengrassV2S2dComponentUpdatePolicy {
  timeoutInSeconds: Int
  action: String
}

type AwsGreengrassV2S2dConfigurationValidationPolicy {
  timeoutInSeconds: Int
}

type AwsGreengrassV2S1w {
  jobExecutionsRolloutConfig: AwsGreengrassV2S1wJobExecutionsRolloutConfig
  abortConfig: AwsGreengrassV2S1wAbortConfig
  timeoutConfig: AwsGreengrassV2S1wTimeoutConfig
}

type AwsGreengrassV2S1wJobExecutionsRolloutConfig {
  exponentialRate: AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRate
  maximumPerMinute: Int
}

type AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRate {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateRateIncreaseCriteria!
}

type AwsGreengrassV2S1wJobExecutionsRolloutConfigExponentialRateRateIncreaseCriteria {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

type AwsGreengrassV2S1wAbortConfig {
  criteriaList: [AwsGreengrassV2S1wAbortConfigCriteriaList]!
}

type AwsGreengrassV2S1wAbortConfigCriteriaList {
  failureType: String!
  action: String!
  thresholdPercentage: JSON!
  minNumberOfExecutedThings: Int!
}

type AwsGreengrassV2S1wTimeoutConfig {
  inProgressTimeoutInMinutes: JSON
}

input AwsGreengrassV2GetDeploymentInput {
  deploymentId: String!
}

type AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceOutput {
  associatedClientDevices: [AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceOutputAssociatedClientDevices]
  nextToken: String
}

type AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceOutputAssociatedClientDevices {
  thingName: String
  associationTimestamp: Date
}

input AwsGreengrassV2ListClientDevicesAssociatedWithCoreDeviceInput {
  coreDeviceThingName: String!
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListComponentVersionsOutput {
  componentVersions: [AwsGreengrassV2ListComponentVersionsOutputComponentVersions]
  nextToken: String
}

type AwsGreengrassV2ListComponentVersionsOutputComponentVersions {
  componentName: String
  componentVersion: String
  arn: String
}

input AwsGreengrassV2ListComponentVersionsInput {
  arn: String!
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListComponentsOutput {
  components: [AwsGreengrassV2ListComponentsOutputComponents]
  nextToken: String
}

type AwsGreengrassV2ListComponentsOutputComponents {
  arn: String
  componentName: String
  latestVersion: AwsGreengrassV2ListComponentsOutputComponentsLatestVersion
}

type AwsGreengrassV2ListComponentsOutputComponentsLatestVersion {
  arn: String
  componentVersion: String
  creationTimestamp: Date
  description: String
  publisher: String
  platforms: [AwsGreengrassV2So]
}

input AwsGreengrassV2ListComponentsInput {
  scope: String
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListCoreDevicesOutput {
  coreDevices: [AwsGreengrassV2ListCoreDevicesOutputCoreDevices]
  nextToken: String
}

type AwsGreengrassV2ListCoreDevicesOutputCoreDevices {
  coreDeviceThingName: String
  status: String
  lastStatusUpdateTimestamp: Date
}

input AwsGreengrassV2ListCoreDevicesInput {
  thingGroupArn: String
  status: String
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListDeploymentsOutput {
  deployments: [AwsGreengrassV2ListDeploymentsOutputDeployments]
  nextToken: String
}

type AwsGreengrassV2ListDeploymentsOutputDeployments {
  targetArn: String
  revisionId: String
  deploymentId: String
  deploymentName: String
  creationTimestamp: Date
  deploymentStatus: String
  isLatestForTarget: Boolean
}

input AwsGreengrassV2ListDeploymentsInput {
  targetArn: String
  historyFilter: String
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListEffectiveDeploymentsOutput {
  effectiveDeployments: [AwsGreengrassV2ListEffectiveDeploymentsOutputEffectiveDeployments]
  nextToken: String
}

type AwsGreengrassV2ListEffectiveDeploymentsOutputEffectiveDeployments {
  deploymentId: String!
  deploymentName: String!
  iotJobId: String
  iotJobArn: String
  description: String
  targetArn: String!
  coreDeviceExecutionStatus: String!
  reason: String
  creationTimestamp: Date!
  modifiedTimestamp: Date!
}

input AwsGreengrassV2ListEffectiveDeploymentsInput {
  coreDeviceThingName: String!
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListInstalledComponentsOutput {
  installedComponents: [AwsGreengrassV2ListInstalledComponentsOutputInstalledComponents]
  nextToken: String
}

type AwsGreengrassV2ListInstalledComponentsOutputInstalledComponents {
  componentName: String
  componentVersion: String
  lifecycleState: String
  lifecycleStateDetails: String
  isRoot: Boolean
}

input AwsGreengrassV2ListInstalledComponentsInput {
  coreDeviceThingName: String!
  maxResults: Int
  nextToken: String
}

type AwsGreengrassV2ListTagsForResourceOutput {
  tags: JSON
}

input AwsGreengrassV2ListTagsForResourceInput {
  resourceArn: String!
}

type AwsGreengrassV2ResolveComponentCandidatesOutput {
  resolvedComponentVersions: [AwsGreengrassV2ResolveComponentCandidatesOutputResolvedComponentVersions]
}

type AwsGreengrassV2ResolveComponentCandidatesOutputResolvedComponentVersions {
  arn: String
  componentName: String
  componentVersion: String
  recipe: JSON
}

input AwsGreengrassV2ResolveComponentCandidatesInput {
  platform: AwsGreengrassV2SoInput!
  componentCandidates: [AwsGreengrassV2ResolveComponentCandidatesComponentCandidatesInput]!
}

input AwsGreengrassV2ResolveComponentCandidatesComponentCandidatesInput {
  componentName: String
  componentVersion: String
  versionRequirements: JSON
}

input AwsGreengrassV2TagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsGreengrassV2UntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""AWS Ground Station (2019-05-23)"""
type AwsGroundStation {
  cancelContact(input: AwsGroundStationCancelContactInput!, config: AwsConfig): JSON
  createConfig(input: AwsGroundStationCreateConfigInput!, config: AwsConfig): JSON
  createDataflowEndpointGroup(input: AwsGroundStationCreateDataflowEndpointGroupInput!, config: AwsConfig): JSON
  createMissionProfile(input: AwsGroundStationCreateMissionProfileInput!, config: AwsConfig): JSON
  deleteConfig(input: AwsGroundStationDeleteConfigInput!, config: AwsConfig): JSON
  deleteDataflowEndpointGroup(input: AwsGroundStationDeleteDataflowEndpointGroupInput!, config: AwsConfig): JSON
  deleteMissionProfile(input: AwsGroundStationDeleteMissionProfileInput!, config: AwsConfig): JSON
  describeContact(input: AwsGroundStationDescribeContactInput!, config: AwsConfig): AwsGroundStationDescribeContactOutput
  getConfig(input: AwsGroundStationGetConfigInput!, config: AwsConfig): AwsGroundStationGetConfigOutput
  getDataflowEndpointGroup(input: AwsGroundStationGetDataflowEndpointGroupInput!, config: AwsConfig): AwsGroundStationGetDataflowEndpointGroupOutput
  getMinuteUsage(input: AwsGroundStationGetMinuteUsageInput!, config: AwsConfig): AwsGroundStationGetMinuteUsageOutput
  getMissionProfile(input: AwsGroundStationGetMissionProfileInput!, config: AwsConfig): AwsGroundStationGetMissionProfileOutput
  getSatellite(input: AwsGroundStationGetSatelliteInput!, config: AwsConfig): AwsGroundStationGetSatelliteOutput
  listConfigs(input: AwsGroundStationListConfigsInput, config: AwsConfig): AwsGroundStationListConfigsOutput
  listContacts(input: AwsGroundStationListContactsInput!, config: AwsConfig): AwsGroundStationListContactsOutput
  listDataflowEndpointGroups(input: AwsGroundStationListDataflowEndpointGroupsInput, config: AwsConfig): AwsGroundStationListDataflowEndpointGroupsOutput
  listGroundStations(input: AwsGroundStationListGroundStationsInput, config: AwsConfig): AwsGroundStationListGroundStationsOutput
  listMissionProfiles(input: AwsGroundStationListMissionProfilesInput, config: AwsConfig): AwsGroundStationListMissionProfilesOutput
  listSatellites(input: AwsGroundStationListSatellitesInput, config: AwsConfig): AwsGroundStationListSatellitesOutput
  listTagsForResource(input: AwsGroundStationListTagsForResourceInput!, config: AwsConfig): AwsGroundStationListTagsForResourceOutput
  reserveContact(input: AwsGroundStationReserveContactInput!, config: AwsConfig): JSON
  tagResource(input: AwsGroundStationTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsGroundStationUntagResourceInput!, config: AwsConfig): JSON
  updateConfig(input: AwsGroundStationUpdateConfigInput!, config: AwsConfig): JSON
  updateMissionProfile(input: AwsGroundStationUpdateMissionProfileInput!, config: AwsConfig): JSON
}

input AwsGroundStationCancelContactInput {
  contactId: String!
}

input AwsGroundStationCreateConfigInput {
  configData: AwsGroundStationS5Input!
  name: String!
  tags: JSON
}

input AwsGroundStationS5Input {
  antennaDownlinkConfig: AwsGroundStationS5AntennaDownlinkConfigInput
  antennaDownlinkDemodDecodeConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfigInput
  antennaUplinkConfig: AwsGroundStationS5AntennaUplinkConfigInput
  dataflowEndpointConfig: AwsGroundStationS5DataflowEndpointConfigInput
  s3RecordingConfig: AwsGroundStationS5S3RecordingConfigInput
  trackingConfig: AwsGroundStationS5TrackingConfigInput
  uplinkEchoConfig: AwsGroundStationS5UplinkEchoConfigInput
}

input AwsGroundStationS5AntennaDownlinkConfigInput {
  spectrumConfig: AwsGroundStationS7Input!
}

input AwsGroundStationS7Input {
  bandwidth: AwsGroundStationS7BandwidthInput!
  centerFrequency: AwsGroundStationSbInput!
  polarization: String
}

input AwsGroundStationS7BandwidthInput {
  units: String!
  value: JSON!
}

input AwsGroundStationSbInput {
  units: String!
  value: JSON!
}

input AwsGroundStationS5AntennaDownlinkDemodDecodeConfigInput {
  decodeConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDecodeConfigInput!
  demodulationConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDemodulationConfigInput!
  spectrumConfig: AwsGroundStationS7Input!
}

input AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDecodeConfigInput {
  unvalidatedJSON: String!
}

input AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDemodulationConfigInput {
  unvalidatedJSON: String!
}

input AwsGroundStationS5AntennaUplinkConfigInput {
  spectrumConfig: AwsGroundStationS5AntennaUplinkConfigSpectrumConfigInput!
  targetEirp: AwsGroundStationS5AntennaUplinkConfigTargetEirpInput!
  transmitDisabled: Boolean
}

input AwsGroundStationS5AntennaUplinkConfigSpectrumConfigInput {
  centerFrequency: AwsGroundStationSbInput!
  polarization: String
}

input AwsGroundStationS5AntennaUplinkConfigTargetEirpInput {
  units: String!
  value: JSON!
}

input AwsGroundStationS5DataflowEndpointConfigInput {
  dataflowEndpointName: String!
  dataflowEndpointRegion: String
}

input AwsGroundStationS5S3RecordingConfigInput {
  bucketArn: String!
  prefix: String
  roleArn: String!
}

input AwsGroundStationS5TrackingConfigInput {
  autotrack: String!
}

input AwsGroundStationS5UplinkEchoConfigInput {
  antennaUplinkConfigArn: String!
  enabled: Boolean!
}

input AwsGroundStationCreateDataflowEndpointGroupInput {
  endpointDetails: [AwsGroundStationS12Input]!
  tags: JSON
}

input AwsGroundStationS12Input {
  endpoint: AwsGroundStationS12EndpointInput
  securityDetails: AwsGroundStationS12SecurityDetailsInput
}

input AwsGroundStationS12EndpointInput {
  address: AwsGroundStationS12EndpointAddressInput
  mtu: Int
  name: String
  status: String
}

input AwsGroundStationS12EndpointAddressInput {
  name: String!
  port: Int!
}

input AwsGroundStationS12SecurityDetailsInput {
  roleArn: String!
  securityGroupIds: [String]!
  subnetIds: [String]!
}

input AwsGroundStationCreateMissionProfileInput {
  contactPostPassDurationSeconds: Int
  contactPrePassDurationSeconds: Int
  dataflowEdges: [[String]]!
  minimumViableContactDurationSeconds: Int!
  name: String!
  tags: JSON
  trackingConfigArn: String!
}

input AwsGroundStationDeleteConfigInput {
  configId: String!
  configType: String!
}

input AwsGroundStationDeleteDataflowEndpointGroupInput {
  dataflowEndpointGroupId: String!
}

input AwsGroundStationDeleteMissionProfileInput {
  missionProfileId: String!
}

type AwsGroundStationDescribeContactOutput {
  contactId: String
  contactStatus: String
  dataflowList: [AwsGroundStationDescribeContactOutputDataflowList]
  endTime: Date
  errorMessage: String
  groundStation: String
  maximumElevation: AwsGroundStationS1v
  missionProfileArn: String
  postPassEndTime: Date
  prePassStartTime: Date
  region: String
  satelliteArn: String
  startTime: Date
  tags: JSON
}

type AwsGroundStationDescribeContactOutputDataflowList {
  destination: AwsGroundStationDescribeContactOutputDataflowListDestination
  errorMessage: String
  source: AwsGroundStationDescribeContactOutputDataflowListSource
}

type AwsGroundStationDescribeContactOutputDataflowListDestination {
  configDetails: AwsGroundStationS1q
  configId: String
  configType: String
  dataflowDestinationRegion: String
}

type AwsGroundStationS1q {
  antennaDemodDecodeDetails: AwsGroundStationS1qAntennaDemodDecodeDetails
  endpointDetails: AwsGroundStationS12
  s3RecordingDetails: AwsGroundStationS1qS3RecordingDetails
}

type AwsGroundStationS1qAntennaDemodDecodeDetails {
  outputNode: String
}

type AwsGroundStationS12 {
  endpoint: AwsGroundStationS12Endpoint
  securityDetails: AwsGroundStationS12SecurityDetails
}

type AwsGroundStationS12Endpoint {
  address: AwsGroundStationS12EndpointAddress
  mtu: Int
  name: String
  status: String
}

type AwsGroundStationS12EndpointAddress {
  name: String!
  port: Int!
}

type AwsGroundStationS12SecurityDetails {
  roleArn: String!
  securityGroupIds: [String]!
  subnetIds: [String]!
}

type AwsGroundStationS1qS3RecordingDetails {
  bucketArn: String
  keyTemplate: String
}

type AwsGroundStationDescribeContactOutputDataflowListSource {
  configDetails: AwsGroundStationS1q
  configId: String
  configType: String
  dataflowSourceRegion: String
}

type AwsGroundStationS1v {
  unit: String!
  value: JSON!
}

input AwsGroundStationDescribeContactInput {
  contactId: String!
}

type AwsGroundStationGetConfigOutput {
  configArn: String!
  configData: AwsGroundStationS5!
  configId: String!
  configType: String
  name: String!
  tags: JSON
}

type AwsGroundStationS5 {
  antennaDownlinkConfig: AwsGroundStationS5AntennaDownlinkConfig
  antennaDownlinkDemodDecodeConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfig
  antennaUplinkConfig: AwsGroundStationS5AntennaUplinkConfig
  dataflowEndpointConfig: AwsGroundStationS5DataflowEndpointConfig
  s3RecordingConfig: AwsGroundStationS5S3RecordingConfig
  trackingConfig: AwsGroundStationS5TrackingConfig
  uplinkEchoConfig: AwsGroundStationS5UplinkEchoConfig
}

type AwsGroundStationS5AntennaDownlinkConfig {
  spectrumConfig: AwsGroundStationS7!
}

type AwsGroundStationS7 {
  bandwidth: AwsGroundStationS7Bandwidth!
  centerFrequency: AwsGroundStationSb!
  polarization: String
}

type AwsGroundStationS7Bandwidth {
  units: String!
  value: JSON!
}

type AwsGroundStationSb {
  units: String!
  value: JSON!
}

type AwsGroundStationS5AntennaDownlinkDemodDecodeConfig {
  decodeConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDecodeConfig!
  demodulationConfig: AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDemodulationConfig!
  spectrumConfig: AwsGroundStationS7!
}

type AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDecodeConfig {
  unvalidatedJSON: String!
}

type AwsGroundStationS5AntennaDownlinkDemodDecodeConfigDemodulationConfig {
  unvalidatedJSON: String!
}

type AwsGroundStationS5AntennaUplinkConfig {
  spectrumConfig: AwsGroundStationS5AntennaUplinkConfigSpectrumConfig!
  targetEirp: AwsGroundStationS5AntennaUplinkConfigTargetEirp!
  transmitDisabled: Boolean
}

type AwsGroundStationS5AntennaUplinkConfigSpectrumConfig {
  centerFrequency: AwsGroundStationSb!
  polarization: String
}

type AwsGroundStationS5AntennaUplinkConfigTargetEirp {
  units: String!
  value: JSON!
}

type AwsGroundStationS5DataflowEndpointConfig {
  dataflowEndpointName: String!
  dataflowEndpointRegion: String
}

type AwsGroundStationS5S3RecordingConfig {
  bucketArn: String!
  prefix: String
  roleArn: String!
}

type AwsGroundStationS5TrackingConfig {
  autotrack: String!
}

type AwsGroundStationS5UplinkEchoConfig {
  antennaUplinkConfigArn: String!
  enabled: Boolean!
}

input AwsGroundStationGetConfigInput {
  configId: String!
  configType: String!
}

type AwsGroundStationGetDataflowEndpointGroupOutput {
  dataflowEndpointGroupArn: String
  dataflowEndpointGroupId: String
  endpointsDetails: [AwsGroundStationS12]
  tags: JSON
}

input AwsGroundStationGetDataflowEndpointGroupInput {
  dataflowEndpointGroupId: String!
}

type AwsGroundStationGetMinuteUsageOutput {
  estimatedMinutesRemaining: Int
  isReservedMinutesCustomer: Boolean
  totalReservedMinuteAllocation: Int
  totalScheduledMinutes: Int
  upcomingMinutesScheduled: Int
}

input AwsGroundStationGetMinuteUsageInput {
  month: Int!
  year: Int!
}

type AwsGroundStationGetMissionProfileOutput {
  contactPostPassDurationSeconds: Int
  contactPrePassDurationSeconds: Int
  dataflowEdges: [[String]]
  minimumViableContactDurationSeconds: Int
  missionProfileArn: String
  missionProfileId: String
  name: String
  region: String
  tags: JSON
  trackingConfigArn: String
}

input AwsGroundStationGetMissionProfileInput {
  missionProfileId: String!
}

type AwsGroundStationGetSatelliteOutput {
  groundStations: [String]
  noradSatelliteID: Int
  satelliteArn: String
  satelliteId: String
}

input AwsGroundStationGetSatelliteInput {
  satelliteId: String!
}

type AwsGroundStationListConfigsOutput {
  configList: [AwsGroundStationListConfigsOutputConfigList]
  nextToken: String
}

type AwsGroundStationListConfigsOutputConfigList {
  configArn: String
  configId: String
  configType: String
  name: String
}

input AwsGroundStationListConfigsInput {
  maxResults: Int
  nextToken: String
}

type AwsGroundStationListContactsOutput {
  contactList: [AwsGroundStationListContactsOutputContactList]
  nextToken: String
}

type AwsGroundStationListContactsOutputContactList {
  contactId: String
  contactStatus: String
  endTime: Date
  errorMessage: String
  groundStation: String
  maximumElevation: AwsGroundStationS1v
  missionProfileArn: String
  postPassEndTime: Date
  prePassStartTime: Date
  region: String
  satelliteArn: String
  startTime: Date
  tags: JSON
}

input AwsGroundStationListContactsInput {
  endTime: Date!
  groundStation: String
  maxResults: Int
  missionProfileArn: String
  nextToken: String
  satelliteArn: String
  startTime: Date!
  statusList: [String]!
}

type AwsGroundStationListDataflowEndpointGroupsOutput {
  dataflowEndpointGroupList: [AwsGroundStationListDataflowEndpointGroupsOutputDataflowEndpointGroupList]
  nextToken: String
}

type AwsGroundStationListDataflowEndpointGroupsOutputDataflowEndpointGroupList {
  dataflowEndpointGroupArn: String
  dataflowEndpointGroupId: String
}

input AwsGroundStationListDataflowEndpointGroupsInput {
  maxResults: Int
  nextToken: String
}

type AwsGroundStationListGroundStationsOutput {
  groundStationList: [AwsGroundStationListGroundStationsOutputGroundStationList]
  nextToken: String
}

type AwsGroundStationListGroundStationsOutputGroundStationList {
  groundStationId: String
  groundStationName: String
  region: String
}

input AwsGroundStationListGroundStationsInput {
  maxResults: Int
  nextToken: String
  satelliteId: String
}

type AwsGroundStationListMissionProfilesOutput {
  missionProfileList: [AwsGroundStationListMissionProfilesOutputMissionProfileList]
  nextToken: String
}

type AwsGroundStationListMissionProfilesOutputMissionProfileList {
  missionProfileArn: String
  missionProfileId: String
  name: String
  region: String
}

input AwsGroundStationListMissionProfilesInput {
  maxResults: Int
  nextToken: String
}

type AwsGroundStationListSatellitesOutput {
  nextToken: String
  satellites: [AwsGroundStationListSatellitesOutputSatellites]
}

type AwsGroundStationListSatellitesOutputSatellites {
  groundStations: [String]
  noradSatelliteID: Int
  satelliteArn: String
  satelliteId: String
}

input AwsGroundStationListSatellitesInput {
  maxResults: Int
  nextToken: String
}

type AwsGroundStationListTagsForResourceOutput {
  tags: JSON
}

input AwsGroundStationListTagsForResourceInput {
  resourceArn: String!
}

input AwsGroundStationReserveContactInput {
  endTime: Date!
  groundStation: String!
  missionProfileArn: String!
  satelliteArn: String!
  startTime: Date!
  tags: JSON
}

input AwsGroundStationTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsGroundStationUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsGroundStationUpdateConfigInput {
  configData: AwsGroundStationS5Input!
  configId: String!
  configType: String!
  name: String!
}

input AwsGroundStationUpdateMissionProfileInput {
  contactPostPassDurationSeconds: Int
  contactPrePassDurationSeconds: Int
  dataflowEdges: [[String]]
  minimumViableContactDurationSeconds: Int
  missionProfileId: String!
  name: String
  trackingConfigArn: String
}

"""Amazon GuardDuty (2017-11-28)"""
type AwsGuardDuty {
  acceptInvitation(input: AwsGuardDutyAcceptInvitationInput!, config: AwsConfig): JSON
  archiveFindings(input: AwsGuardDutyArchiveFindingsInput!, config: AwsConfig): JSON
  createDetector(input: AwsGuardDutyCreateDetectorInput!, config: AwsConfig): AwsGuardDutyCreateDetectorOutput
  createFilter(input: AwsGuardDutyCreateFilterInput!, config: AwsConfig): AwsGuardDutyCreateFilterOutput
  createIPSet(input: AwsGuardDutyCreateIPSetInput!, config: AwsConfig): AwsGuardDutyCreateIPSetOutput
  createMembers(input: AwsGuardDutyCreateMembersInput!, config: AwsConfig): AwsGuardDutyCreateMembersOutput
  createPublishingDestination(input: AwsGuardDutyCreatePublishingDestinationInput!, config: AwsConfig): AwsGuardDutyCreatePublishingDestinationOutput
  createSampleFindings(input: AwsGuardDutyCreateSampleFindingsInput!, config: AwsConfig): JSON
  createThreatIntelSet(input: AwsGuardDutyCreateThreatIntelSetInput!, config: AwsConfig): AwsGuardDutyCreateThreatIntelSetOutput
  declineInvitations(input: AwsGuardDutyDeclineInvitationsInput!, config: AwsConfig): AwsGuardDutyDeclineInvitationsOutput
  deleteDetector(input: AwsGuardDutyDeleteDetectorInput!, config: AwsConfig): JSON
  deleteFilter(input: AwsGuardDutyDeleteFilterInput!, config: AwsConfig): JSON
  deleteIPSet(input: AwsGuardDutyDeleteIPSetInput!, config: AwsConfig): JSON
  deleteInvitations(input: AwsGuardDutyDeleteInvitationsInput!, config: AwsConfig): AwsGuardDutyDeleteInvitationsOutput
  deleteMembers(input: AwsGuardDutyDeleteMembersInput!, config: AwsConfig): AwsGuardDutyDeleteMembersOutput
  deletePublishingDestination(input: AwsGuardDutyDeletePublishingDestinationInput!, config: AwsConfig): JSON
  deleteThreatIntelSet(input: AwsGuardDutyDeleteThreatIntelSetInput!, config: AwsConfig): JSON
  describeOrganizationConfiguration(input: AwsGuardDutyDescribeOrganizationConfigurationInput!, config: AwsConfig): AwsGuardDutyDescribeOrganizationConfigurationOutput
  describePublishingDestination(input: AwsGuardDutyDescribePublishingDestinationInput!, config: AwsConfig): AwsGuardDutyDescribePublishingDestinationOutput
  disableOrganizationAdminAccount(input: AwsGuardDutyDisableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  disassociateFromMasterAccount(input: AwsGuardDutyDisassociateFromMasterAccountInput!, config: AwsConfig): JSON
  disassociateMembers(input: AwsGuardDutyDisassociateMembersInput!, config: AwsConfig): AwsGuardDutyDisassociateMembersOutput
  enableOrganizationAdminAccount(input: AwsGuardDutyEnableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  getDetector(input: AwsGuardDutyGetDetectorInput!, config: AwsConfig): AwsGuardDutyGetDetectorOutput
  getFilter(input: AwsGuardDutyGetFilterInput!, config: AwsConfig): AwsGuardDutyGetFilterOutput
  getFindings(input: AwsGuardDutyGetFindingsInput!, config: AwsConfig): AwsGuardDutyGetFindingsOutput
  getFindingsStatistics(input: AwsGuardDutyGetFindingsStatisticsInput!, config: AwsConfig): AwsGuardDutyGetFindingsStatisticsOutput
  getIPSet(input: AwsGuardDutyGetIPSetInput!, config: AwsConfig): AwsGuardDutyGetIPSetOutput
  getInvitationsCount(input: JSON, config: AwsConfig): AwsGuardDutyGetInvitationsCountOutput
  getMasterAccount(input: AwsGuardDutyGetMasterAccountInput!, config: AwsConfig): AwsGuardDutyGetMasterAccountOutput
  getMemberDetectors(input: AwsGuardDutyGetMemberDetectorsInput!, config: AwsConfig): AwsGuardDutyGetMemberDetectorsOutput
  getMembers(input: AwsGuardDutyGetMembersInput!, config: AwsConfig): AwsGuardDutyGetMembersOutput
  getThreatIntelSet(input: AwsGuardDutyGetThreatIntelSetInput!, config: AwsConfig): AwsGuardDutyGetThreatIntelSetOutput
  getUsageStatistics(input: AwsGuardDutyGetUsageStatisticsInput!, config: AwsConfig): AwsGuardDutyGetUsageStatisticsOutput
  inviteMembers(input: AwsGuardDutyInviteMembersInput!, config: AwsConfig): AwsGuardDutyInviteMembersOutput
  listDetectors(input: AwsGuardDutyListDetectorsInput, config: AwsConfig): AwsGuardDutyListDetectorsOutput
  listFilters(input: AwsGuardDutyListFiltersInput!, config: AwsConfig): AwsGuardDutyListFiltersOutput
  listFindings(input: AwsGuardDutyListFindingsInput!, config: AwsConfig): AwsGuardDutyListFindingsOutput
  listIPSets(input: AwsGuardDutyListIPSetsInput!, config: AwsConfig): AwsGuardDutyListIPSetsOutput
  listInvitations(input: AwsGuardDutyListInvitationsInput, config: AwsConfig): AwsGuardDutyListInvitationsOutput
  listMembers(input: AwsGuardDutyListMembersInput!, config: AwsConfig): AwsGuardDutyListMembersOutput
  listOrganizationAdminAccounts(input: AwsGuardDutyListOrganizationAdminAccountsInput, config: AwsConfig): AwsGuardDutyListOrganizationAdminAccountsOutput
  listPublishingDestinations(input: AwsGuardDutyListPublishingDestinationsInput!, config: AwsConfig): AwsGuardDutyListPublishingDestinationsOutput
  listTagsForResource(input: AwsGuardDutyListTagsForResourceInput!, config: AwsConfig): AwsGuardDutyListTagsForResourceOutput
  listThreatIntelSets(input: AwsGuardDutyListThreatIntelSetsInput!, config: AwsConfig): AwsGuardDutyListThreatIntelSetsOutput
  startMonitoringMembers(input: AwsGuardDutyStartMonitoringMembersInput!, config: AwsConfig): AwsGuardDutyStartMonitoringMembersOutput
  stopMonitoringMembers(input: AwsGuardDutyStopMonitoringMembersInput!, config: AwsConfig): AwsGuardDutyStopMonitoringMembersOutput
  tagResource(input: AwsGuardDutyTagResourceInput!, config: AwsConfig): JSON
  unarchiveFindings(input: AwsGuardDutyUnarchiveFindingsInput!, config: AwsConfig): JSON
  untagResource(input: AwsGuardDutyUntagResourceInput!, config: AwsConfig): JSON
  updateDetector(input: AwsGuardDutyUpdateDetectorInput!, config: AwsConfig): JSON
  updateFilter(input: AwsGuardDutyUpdateFilterInput!, config: AwsConfig): AwsGuardDutyUpdateFilterOutput
  updateFindingsFeedback(input: AwsGuardDutyUpdateFindingsFeedbackInput!, config: AwsConfig): JSON
  updateIPSet(input: AwsGuardDutyUpdateIPSetInput!, config: AwsConfig): JSON
  updateMemberDetectors(input: AwsGuardDutyUpdateMemberDetectorsInput!, config: AwsConfig): AwsGuardDutyUpdateMemberDetectorsOutput
  updateOrganizationConfiguration(input: AwsGuardDutyUpdateOrganizationConfigurationInput!, config: AwsConfig): JSON
  updatePublishingDestination(input: AwsGuardDutyUpdatePublishingDestinationInput!, config: AwsConfig): JSON
  updateThreatIntelSet(input: AwsGuardDutyUpdateThreatIntelSetInput!, config: AwsConfig): JSON
}

input AwsGuardDutyAcceptInvitationInput {
  DetectorId: String!
  MasterId: String!
  InvitationId: String!
}

input AwsGuardDutyArchiveFindingsInput {
  DetectorId: String!
  FindingIds: [String]!
}

type AwsGuardDutyCreateDetectorOutput {
  DetectorId: String
}

input AwsGuardDutyCreateDetectorInput {
  Enable: Boolean!
  ClientToken: String
  FindingPublishingFrequency: String
  DataSources: AwsGuardDutySdInput
  Tags: JSON
}

input AwsGuardDutySdInput {
  S3Logs: AwsGuardDutySdS3LogsInput
}

input AwsGuardDutySdS3LogsInput {
  Enable: Boolean!
}

type AwsGuardDutyCreateFilterOutput {
  Name: String!
}

input AwsGuardDutyCreateFilterInput {
  DetectorId: String!
  Name: String!
  Description: String
  Action: String
  Rank: Int
  FindingCriteria: AwsGuardDutySoInput!
  ClientToken: String
  Tags: JSON
}

input AwsGuardDutySoInput {
  Criterion: JSON
}

type AwsGuardDutyCreateIPSetOutput {
  IpSetId: String!
}

input AwsGuardDutyCreateIPSetInput {
  DetectorId: String!
  Name: String!
  Format: String!
  Location: String!
  Activate: Boolean!
  ClientToken: String
  Tags: JSON
}

type AwsGuardDutyCreateMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

type AwsGuardDutyS19 {
  AccountId: String!
  Result: String!
}

input AwsGuardDutyCreateMembersInput {
  DetectorId: String!
  AccountDetails: [AwsGuardDutyCreateMembersAccountDetailsInput]!
}

input AwsGuardDutyCreateMembersAccountDetailsInput {
  AccountId: String!
  Email: String!
}

type AwsGuardDutyCreatePublishingDestinationOutput {
  DestinationId: String!
}

input AwsGuardDutyCreatePublishingDestinationInput {
  DetectorId: String!
  DestinationType: String!
  DestinationProperties: AwsGuardDutyS1dInput!
  ClientToken: String
}

input AwsGuardDutyS1dInput {
  DestinationArn: String
  KmsKeyArn: String
}

input AwsGuardDutyCreateSampleFindingsInput {
  DetectorId: String!
  FindingTypes: [String]
}

type AwsGuardDutyCreateThreatIntelSetOutput {
  ThreatIntelSetId: String!
}

input AwsGuardDutyCreateThreatIntelSetInput {
  DetectorId: String!
  Name: String!
  Format: String!
  Location: String!
  Activate: Boolean!
  ClientToken: String
  Tags: JSON
}

type AwsGuardDutyDeclineInvitationsOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyDeclineInvitationsInput {
  AccountIds: [String]!
}

input AwsGuardDutyDeleteDetectorInput {
  DetectorId: String!
}

input AwsGuardDutyDeleteFilterInput {
  DetectorId: String!
  FilterName: String!
}

input AwsGuardDutyDeleteIPSetInput {
  DetectorId: String!
  IpSetId: String!
}

type AwsGuardDutyDeleteInvitationsOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyDeleteInvitationsInput {
  AccountIds: [String]!
}

type AwsGuardDutyDeleteMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyDeleteMembersInput {
  DetectorId: String!
  AccountIds: [String]!
}

input AwsGuardDutyDeletePublishingDestinationInput {
  DetectorId: String!
  DestinationId: String!
}

input AwsGuardDutyDeleteThreatIntelSetInput {
  DetectorId: String!
  ThreatIntelSetId: String!
}

type AwsGuardDutyDescribeOrganizationConfigurationOutput {
  AutoEnable: Boolean!
  MemberAccountLimitReached: Boolean!
  DataSources: AwsGuardDutyDescribeOrganizationConfigurationOutputDataSources
}

type AwsGuardDutyDescribeOrganizationConfigurationOutputDataSources {
  S3Logs: AwsGuardDutyDescribeOrganizationConfigurationOutputDataSourcesS3Logs!
}

type AwsGuardDutyDescribeOrganizationConfigurationOutputDataSourcesS3Logs {
  AutoEnable: Boolean!
}

input AwsGuardDutyDescribeOrganizationConfigurationInput {
  DetectorId: String!
}

type AwsGuardDutyDescribePublishingDestinationOutput {
  DestinationId: String!
  DestinationType: String!
  Status: String!
  PublishingFailureStartTimestamp: JSON!
  DestinationProperties: AwsGuardDutyS1d!
}

type AwsGuardDutyS1d {
  DestinationArn: String
  KmsKeyArn: String
}

input AwsGuardDutyDescribePublishingDestinationInput {
  DetectorId: String!
  DestinationId: String!
}

input AwsGuardDutyDisableOrganizationAdminAccountInput {
  AdminAccountId: String!
}

input AwsGuardDutyDisassociateFromMasterAccountInput {
  DetectorId: String!
}

type AwsGuardDutyDisassociateMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyDisassociateMembersInput {
  DetectorId: String!
  AccountIds: [String]!
}

input AwsGuardDutyEnableOrganizationAdminAccountInput {
  AdminAccountId: String!
}

type AwsGuardDutyGetDetectorOutput {
  CreatedAt: String
  FindingPublishingFrequency: String
  ServiceRole: String!
  Status: String!
  UpdatedAt: String
  DataSources: AwsGuardDutyS2l
  Tags: JSON
}

type AwsGuardDutyS2l {
  CloudTrail: AwsGuardDutyS2lCloudTrail!
  DNSLogs: AwsGuardDutyS2lDNSLogs!
  FlowLogs: AwsGuardDutyS2lFlowLogs!
  S3Logs: AwsGuardDutyS2lS3Logs!
}

type AwsGuardDutyS2lCloudTrail {
  Status: String!
}

type AwsGuardDutyS2lDNSLogs {
  Status: String!
}

type AwsGuardDutyS2lFlowLogs {
  Status: String!
}

type AwsGuardDutyS2lS3Logs {
  Status: String!
}

input AwsGuardDutyGetDetectorInput {
  DetectorId: String!
}

type AwsGuardDutyGetFilterOutput {
  Name: String!
  Description: String
  Action: String!
  Rank: Int
  FindingCriteria: AwsGuardDutySo!
  Tags: JSON
}

type AwsGuardDutySo {
  Criterion: JSON
}

input AwsGuardDutyGetFilterInput {
  DetectorId: String!
  FilterName: String!
}

type AwsGuardDutyGetFindingsOutput {
  Findings: [AwsGuardDutyGetFindingsOutputFindings]!
}

type AwsGuardDutyGetFindingsOutputFindings {
  AccountId: String!
  Arn: String!
  Confidence: JSON
  CreatedAt: String!
  Description: String
  Id: String!
  Partition: String
  Region: String!
  Resource: AwsGuardDutyGetFindingsOutputFindingsResource!
  SchemaVersion: String!
  Service: AwsGuardDutyGetFindingsOutputFindingsService
  Severity: JSON!
  Title: String
  Type: String!
  UpdatedAt: String!
}

type AwsGuardDutyGetFindingsOutputFindingsResource {
  AccessKeyDetails: AwsGuardDutyGetFindingsOutputFindingsResourceAccessKeyDetails
  S3BucketDetails: [AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetails]
  InstanceDetails: AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetails
  ResourceType: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceAccessKeyDetails {
  AccessKeyId: String
  PrincipalId: String
  UserName: String
  UserType: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetails {
  Arn: String
  Name: String
  Type: String
  CreatedAt: Date
  Owner: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsOwner
  Tags: [AwsGuardDutyS36]
  DefaultServerSideEncryption: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsDefaultServerSideEncryption
  PublicAccess: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccess
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsOwner {
  Id: String
}

type AwsGuardDutyS36 {
  Key: String
  Value: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsDefaultServerSideEncryption {
  EncryptionType: String
  KmsMasterKeyArn: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccess {
  PermissionConfiguration: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfiguration
  EffectivePermission: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfiguration {
  BucketLevelPermissions: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissions
  AccountLevelPermissions: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationAccountLevelPermissions
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissions {
  AccessControlList: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissionsAccessControlList
  BucketPolicy: AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissionsBucketPolicy
  BlockPublicAccess: AwsGuardDutyS3e
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissionsAccessControlList {
  AllowsPublicReadAccess: Boolean
  AllowsPublicWriteAccess: Boolean
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationBucketLevelPermissionsBucketPolicy {
  AllowsPublicReadAccess: Boolean
  AllowsPublicWriteAccess: Boolean
}

type AwsGuardDutyS3e {
  IgnorePublicAcls: Boolean
  RestrictPublicBuckets: Boolean
  BlockPublicAcls: Boolean
  BlockPublicPolicy: Boolean
}

type AwsGuardDutyGetFindingsOutputFindingsResourceS3BucketDetailsPublicAccessPermissionConfigurationAccountLevelPermissions {
  BlockPublicAccess: AwsGuardDutyS3e
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetails {
  AvailabilityZone: String
  IamInstanceProfile: AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsIamInstanceProfile
  ImageDescription: String
  ImageId: String
  InstanceId: String
  InstanceState: String
  InstanceType: String
  OutpostArn: String
  LaunchTime: String
  NetworkInterfaces: [AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfaces]
  Platform: String
  ProductCodes: [AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsProductCodes]
  Tags: [AwsGuardDutyS36]
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsIamInstanceProfile {
  Arn: String
  Id: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfaces {
  Ipv6Addresses: [String]
  NetworkInterfaceId: String
  PrivateDnsName: String
  PrivateIpAddress: String
  PrivateIpAddresses: [AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfacesPrivateIpAddresses]
  PublicDnsName: String
  PublicIp: String
  SecurityGroups: [AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfacesSecurityGroups]
  SubnetId: String
  VpcId: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfacesPrivateIpAddresses {
  PrivateDnsName: String
  PrivateIpAddress: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsNetworkInterfacesSecurityGroups {
  GroupId: String
  GroupName: String
}

type AwsGuardDutyGetFindingsOutputFindingsResourceInstanceDetailsProductCodes {
  Code: String
  ProductType: String
}

type AwsGuardDutyGetFindingsOutputFindingsService {
  Action: AwsGuardDutyGetFindingsOutputFindingsServiceAction
  Evidence: AwsGuardDutyGetFindingsOutputFindingsServiceEvidence
  Archived: Boolean
  Count: Int
  DetectorId: String
  EventFirstSeen: String
  EventLastSeen: String
  ResourceRole: String
  ServiceName: String
  UserFeedback: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceAction {
  ActionType: String
  AwsApiCallAction: AwsGuardDutyGetFindingsOutputFindingsServiceActionAwsApiCallAction
  DnsRequestAction: AwsGuardDutyGetFindingsOutputFindingsServiceActionDnsRequestAction
  NetworkConnectionAction: AwsGuardDutyGetFindingsOutputFindingsServiceActionNetworkConnectionAction
  PortProbeAction: AwsGuardDutyGetFindingsOutputFindingsServiceActionPortProbeAction
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionAwsApiCallAction {
  Api: String
  CallerType: String
  DomainDetails: AwsGuardDutyGetFindingsOutputFindingsServiceActionAwsApiCallActionDomainDetails
  ErrorCode: String
  RemoteIpDetails: AwsGuardDutyS3v
  ServiceName: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionAwsApiCallActionDomainDetails {
  Domain: String
}

type AwsGuardDutyS3v {
  City: AwsGuardDutyS3vCity
  Country: AwsGuardDutyS3vCountry
  GeoLocation: AwsGuardDutyS3vGeoLocation
  IpAddressV4: String
  Organization: AwsGuardDutyS3vOrganization
}

type AwsGuardDutyS3vCity {
  CityName: String
}

type AwsGuardDutyS3vCountry {
  CountryCode: String
  CountryName: String
}

type AwsGuardDutyS3vGeoLocation {
  Lat: JSON
  Lon: JSON
}

type AwsGuardDutyS3vOrganization {
  Asn: String
  AsnOrg: String
  Isp: String
  Org: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionDnsRequestAction {
  Domain: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionNetworkConnectionAction {
  Blocked: Boolean
  ConnectionDirection: String
  LocalPortDetails: AwsGuardDutyS42
  Protocol: String
  LocalIpDetails: AwsGuardDutyS43
  RemoteIpDetails: AwsGuardDutyS3v
  RemotePortDetails: AwsGuardDutyGetFindingsOutputFindingsServiceActionNetworkConnectionActionRemotePortDetails
}

type AwsGuardDutyS42 {
  Port: Int
  PortName: String
}

type AwsGuardDutyS43 {
  IpAddressV4: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionNetworkConnectionActionRemotePortDetails {
  Port: Int
  PortName: String
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionPortProbeAction {
  Blocked: Boolean
  PortProbeDetails: [AwsGuardDutyGetFindingsOutputFindingsServiceActionPortProbeActionPortProbeDetails]
}

type AwsGuardDutyGetFindingsOutputFindingsServiceActionPortProbeActionPortProbeDetails {
  LocalPortDetails: AwsGuardDutyS42
  LocalIpDetails: AwsGuardDutyS43
  RemoteIpDetails: AwsGuardDutyS3v
}

type AwsGuardDutyGetFindingsOutputFindingsServiceEvidence {
  ThreatIntelligenceDetails: [AwsGuardDutyGetFindingsOutputFindingsServiceEvidenceThreatIntelligenceDetails]
}

type AwsGuardDutyGetFindingsOutputFindingsServiceEvidenceThreatIntelligenceDetails {
  ThreatListName: String
  ThreatNames: [String]
}

input AwsGuardDutyGetFindingsInput {
  DetectorId: String!
  FindingIds: [String]!
  SortCriteria: AwsGuardDutyS2uInput
}

input AwsGuardDutyS2uInput {
  AttributeName: String
  OrderBy: String
}

type AwsGuardDutyGetFindingsStatisticsOutput {
  FindingStatistics: AwsGuardDutyGetFindingsStatisticsOutputFindingStatistics!
}

type AwsGuardDutyGetFindingsStatisticsOutputFindingStatistics {
  CountBySeverity: JSON
}

input AwsGuardDutyGetFindingsStatisticsInput {
  DetectorId: String!
  FindingStatisticTypes: [String]!
  FindingCriteria: AwsGuardDutySoInput
}

type AwsGuardDutyGetIPSetOutput {
  Name: String!
  Format: String!
  Location: String!
  Status: String!
  Tags: JSON
}

input AwsGuardDutyGetIPSetInput {
  DetectorId: String!
  IpSetId: String!
}

type AwsGuardDutyGetInvitationsCountOutput {
  InvitationsCount: Int
}

type AwsGuardDutyGetMasterAccountOutput {
  Master: AwsGuardDutyGetMasterAccountOutputMaster!
}

type AwsGuardDutyGetMasterAccountOutputMaster {
  AccountId: String
  InvitationId: String
  RelationshipStatus: String
  InvitedAt: String
}

input AwsGuardDutyGetMasterAccountInput {
  DetectorId: String!
}

type AwsGuardDutyGetMemberDetectorsOutput {
  MemberDataSourceConfigurations: [AwsGuardDutyGetMemberDetectorsOutputMemberDataSourceConfigurations]!
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

type AwsGuardDutyGetMemberDetectorsOutputMemberDataSourceConfigurations {
  AccountId: String!
  DataSources: AwsGuardDutyS2l!
}

input AwsGuardDutyGetMemberDetectorsInput {
  DetectorId: String!
  AccountIds: [String]!
}

type AwsGuardDutyGetMembersOutput {
  Members: [AwsGuardDutyS4w]!
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

type AwsGuardDutyS4w {
  AccountId: String!
  DetectorId: String
  MasterId: String!
  Email: String!
  RelationshipStatus: String!
  InvitedAt: String
  UpdatedAt: String!
}

input AwsGuardDutyGetMembersInput {
  DetectorId: String!
  AccountIds: [String]!
}

type AwsGuardDutyGetThreatIntelSetOutput {
  Name: String!
  Format: String!
  Location: String!
  Status: String!
  Tags: JSON
}

input AwsGuardDutyGetThreatIntelSetInput {
  DetectorId: String!
  ThreatIntelSetId: String!
}

type AwsGuardDutyGetUsageStatisticsOutput {
  UsageStatistics: AwsGuardDutyGetUsageStatisticsOutputUsageStatistics
  NextToken: String
}

type AwsGuardDutyGetUsageStatisticsOutputUsageStatistics {
  SumByAccount: [AwsGuardDutyGetUsageStatisticsOutputUsageStatisticsSumByAccount]
  SumByDataSource: [AwsGuardDutyGetUsageStatisticsOutputUsageStatisticsSumByDataSource]
  SumByResource: [AwsGuardDutyS5f]
  TopResources: [AwsGuardDutyS5f]
}

type AwsGuardDutyGetUsageStatisticsOutputUsageStatisticsSumByAccount {
  AccountId: String
  Total: AwsGuardDutyS5c
}

type AwsGuardDutyS5c {
  Amount: String
  Unit: String
}

type AwsGuardDutyGetUsageStatisticsOutputUsageStatisticsSumByDataSource {
  DataSource: String
  Total: AwsGuardDutyS5c
}

type AwsGuardDutyS5f {
  Resource: String
  Total: AwsGuardDutyS5c
}

input AwsGuardDutyGetUsageStatisticsInput {
  DetectorId: String!
  UsageStatisticType: String!
  UsageCriteria: AwsGuardDutyGetUsageStatisticsUsageCriteriaInput!
  Unit: String
  MaxResults: Int
  NextToken: String
}

input AwsGuardDutyGetUsageStatisticsUsageCriteriaInput {
  AccountIds: [String]
  DataSources: [String]!
  Resources: [String]
}

type AwsGuardDutyInviteMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyInviteMembersInput {
  DetectorId: String!
  AccountIds: [String]!
  DisableEmailNotification: Boolean
  Message: String
}

type AwsGuardDutyListDetectorsOutput {
  DetectorIds: [String]!
  NextToken: String
}

input AwsGuardDutyListDetectorsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListFiltersOutput {
  FilterNames: [String]!
  NextToken: String
}

input AwsGuardDutyListFiltersInput {
  DetectorId: String!
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListFindingsOutput {
  FindingIds: [String]!
  NextToken: String
}

input AwsGuardDutyListFindingsInput {
  DetectorId: String!
  FindingCriteria: AwsGuardDutySoInput
  SortCriteria: AwsGuardDutyS2uInput
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListIPSetsOutput {
  IpSetIds: [String]!
  NextToken: String
}

input AwsGuardDutyListIPSetsInput {
  DetectorId: String!
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListInvitationsOutput {
  Invitations: [AwsGuardDutyListInvitationsOutputInvitations]
  NextToken: String
}

type AwsGuardDutyListInvitationsOutputInvitations {
  AccountId: String
  InvitationId: String
  RelationshipStatus: String
  InvitedAt: String
}

input AwsGuardDutyListInvitationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListMembersOutput {
  Members: [AwsGuardDutyS4w]
  NextToken: String
}

input AwsGuardDutyListMembersInput {
  DetectorId: String!
  MaxResults: Int
  NextToken: String
  OnlyAssociated: String
}

type AwsGuardDutyListOrganizationAdminAccountsOutput {
  AdminAccounts: [AwsGuardDutyListOrganizationAdminAccountsOutputAdminAccounts]
  NextToken: String
}

type AwsGuardDutyListOrganizationAdminAccountsOutputAdminAccounts {
  AdminAccountId: String
  AdminStatus: String
}

input AwsGuardDutyListOrganizationAdminAccountsInput {
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListPublishingDestinationsOutput {
  Destinations: [AwsGuardDutyListPublishingDestinationsOutputDestinations]!
  NextToken: String
}

type AwsGuardDutyListPublishingDestinationsOutputDestinations {
  DestinationId: String!
  DestinationType: String!
  Status: String!
}

input AwsGuardDutyListPublishingDestinationsInput {
  DetectorId: String!
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyListTagsForResourceOutput {
  Tags: JSON
}

input AwsGuardDutyListTagsForResourceInput {
  ResourceArn: String!
}

type AwsGuardDutyListThreatIntelSetsOutput {
  ThreatIntelSetIds: [String]!
  NextToken: String
}

input AwsGuardDutyListThreatIntelSetsInput {
  DetectorId: String!
  MaxResults: Int
  NextToken: String
}

type AwsGuardDutyStartMonitoringMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyStartMonitoringMembersInput {
  DetectorId: String!
  AccountIds: [String]!
}

type AwsGuardDutyStopMonitoringMembersOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyStopMonitoringMembersInput {
  DetectorId: String!
  AccountIds: [String]!
}

input AwsGuardDutyTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsGuardDutyUnarchiveFindingsInput {
  DetectorId: String!
  FindingIds: [String]!
}

input AwsGuardDutyUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsGuardDutyUpdateDetectorInput {
  DetectorId: String!
  Enable: Boolean
  FindingPublishingFrequency: String
  DataSources: AwsGuardDutySdInput
}

type AwsGuardDutyUpdateFilterOutput {
  Name: String!
}

input AwsGuardDutyUpdateFilterInput {
  DetectorId: String!
  FilterName: String!
  Description: String
  Action: String
  Rank: Int
  FindingCriteria: AwsGuardDutySoInput
}

input AwsGuardDutyUpdateFindingsFeedbackInput {
  DetectorId: String!
  FindingIds: [String]!
  Feedback: String!
  Comments: String
}

input AwsGuardDutyUpdateIPSetInput {
  DetectorId: String!
  IpSetId: String!
  Name: String
  Location: String
  Activate: Boolean
}

type AwsGuardDutyUpdateMemberDetectorsOutput {
  UnprocessedAccounts: [AwsGuardDutyS19]!
}

input AwsGuardDutyUpdateMemberDetectorsInput {
  DetectorId: String!
  AccountIds: [String]!
  DataSources: AwsGuardDutySdInput
}

input AwsGuardDutyUpdateOrganizationConfigurationInput {
  DetectorId: String!
  AutoEnable: Boolean!
  DataSources: AwsGuardDutyUpdateOrganizationConfigurationDataSourcesInput
}

input AwsGuardDutyUpdateOrganizationConfigurationDataSourcesInput {
  S3Logs: AwsGuardDutyUpdateOrganizationConfigurationDataSourcesS3LogsInput
}

input AwsGuardDutyUpdateOrganizationConfigurationDataSourcesS3LogsInput {
  AutoEnable: Boolean!
}

input AwsGuardDutyUpdatePublishingDestinationInput {
  DetectorId: String!
  DestinationId: String!
  DestinationProperties: AwsGuardDutyS1dInput
}

input AwsGuardDutyUpdateThreatIntelSetInput {
  DetectorId: String!
  ThreatIntelSetId: String!
  Name: String
  Location: String
  Activate: Boolean
}

"""AWS Health APIs and Notifications (2016-08-04)"""
type AwsHealth {
  describeAffectedAccountsForOrganization(input: AwsHealthDescribeAffectedAccountsForOrganizationInput!, config: AwsConfig): AwsHealthDescribeAffectedAccountsForOrganizationOutput
  describeAffectedEntities(input: AwsHealthDescribeAffectedEntitiesInput!, config: AwsConfig): AwsHealthDescribeAffectedEntitiesOutput
  describeAffectedEntitiesForOrganization(input: AwsHealthDescribeAffectedEntitiesForOrganizationInput!, config: AwsConfig): AwsHealthDescribeAffectedEntitiesForOrganizationOutput
  describeEntityAggregates(input: AwsHealthDescribeEntityAggregatesInput, config: AwsConfig): AwsHealthDescribeEntityAggregatesOutput
  describeEventAggregates(input: AwsHealthDescribeEventAggregatesInput!, config: AwsConfig): AwsHealthDescribeEventAggregatesOutput
  describeEventDetails(input: AwsHealthDescribeEventDetailsInput!, config: AwsConfig): AwsHealthDescribeEventDetailsOutput
  describeEventDetailsForOrganization(input: AwsHealthDescribeEventDetailsForOrganizationInput!, config: AwsConfig): AwsHealthDescribeEventDetailsForOrganizationOutput
  describeEventTypes(input: AwsHealthDescribeEventTypesInput, config: AwsConfig): AwsHealthDescribeEventTypesOutput
  describeEvents(input: AwsHealthDescribeEventsInput, config: AwsConfig): AwsHealthDescribeEventsOutput
  describeEventsForOrganization(input: AwsHealthDescribeEventsForOrganizationInput, config: AwsConfig): AwsHealthDescribeEventsForOrganizationOutput
  describeHealthServiceStatusForOrganization(config: AwsConfig): AwsHealthDescribeHealthServiceStatusForOrganizationOutput
  disableHealthServiceAccessForOrganization(config: AwsConfig): JSON
  enableHealthServiceAccessForOrganization(config: AwsConfig): JSON
}

type AwsHealthDescribeAffectedAccountsForOrganizationOutput {
  affectedAccounts: [String]
  eventScopeCode: String
  nextToken: String
}

input AwsHealthDescribeAffectedAccountsForOrganizationInput {
  eventArn: String!
  nextToken: String
  maxResults: Int
}

type AwsHealthDescribeAffectedEntitiesOutput {
  entities: [AwsHealthSr]
  nextToken: String
}

type AwsHealthSr {
  entityArn: String
  eventArn: String
  entityValue: String
  entityUrl: String
  awsAccountId: String
  lastUpdatedTime: Date
  statusCode: String
  tags: JSON
}

input AwsHealthDescribeAffectedEntitiesInput {
  filter: AwsHealthDescribeAffectedEntitiesFilterInput!
  locale: String
  nextToken: String
  maxResults: Int
}

input AwsHealthDescribeAffectedEntitiesFilterInput {
  eventArns: [String]!
  entityArns: [String]
  entityValues: [String]
  lastUpdatedTimes: [AwsHealthShInput]
  tags: [JSON]
  statusCodes: [String]
}

input AwsHealthShInput {
  from: Date
  to: Date
}

type AwsHealthDescribeAffectedEntitiesForOrganizationOutput {
  entities: [AwsHealthSr]
  failedSet: [AwsHealthDescribeAffectedEntitiesForOrganizationOutputFailedSet]
  nextToken: String
}

type AwsHealthDescribeAffectedEntitiesForOrganizationOutputFailedSet {
  awsAccountId: String
  eventArn: String
  errorName: String
  errorMessage: String
}

input AwsHealthDescribeAffectedEntitiesForOrganizationInput {
  organizationEntityFilters: [AwsHealthSwInput]!
  locale: String
  nextToken: String
  maxResults: Int
}

input AwsHealthSwInput {
  eventArn: String!
  awsAccountId: String
}

type AwsHealthDescribeEntityAggregatesOutput {
  entityAggregates: [AwsHealthDescribeEntityAggregatesOutputEntityAggregates]
}

type AwsHealthDescribeEntityAggregatesOutputEntityAggregates {
  eventArn: String
  count: Int
}

input AwsHealthDescribeEntityAggregatesInput {
  eventArns: [String]
}

type AwsHealthDescribeEventAggregatesOutput {
  eventAggregates: [AwsHealthDescribeEventAggregatesOutputEventAggregates]
  nextToken: String
}

type AwsHealthDescribeEventAggregatesOutputEventAggregates {
  aggregateValue: String
  count: Int
}

input AwsHealthDescribeEventAggregatesInput {
  filter: AwsHealthS18Input
  aggregateField: String!
  maxResults: Int
  nextToken: String
}

input AwsHealthS18Input {
  eventArns: [String]
  eventTypeCodes: [String]
  services: [String]
  regions: [String]
  availabilityZones: [String]
  startTimes: [AwsHealthShInput]
  endTimes: [AwsHealthShInput]
  lastUpdatedTimes: [AwsHealthShInput]
  entityArns: [String]
  entityValues: [String]
  eventTypeCategories: [String]
  tags: [JSON]
  eventStatusCodes: [String]
}

type AwsHealthDescribeEventDetailsOutput {
  successfulSet: [AwsHealthDescribeEventDetailsOutputSuccessfulSet]
  failedSet: [AwsHealthDescribeEventDetailsOutputFailedSet]
}

type AwsHealthDescribeEventDetailsOutputSuccessfulSet {
  event: AwsHealthS1u
  eventDescription: AwsHealthS1w
  eventMetadata: JSON
}

type AwsHealthS1u {
  arn: String
  service: String
  eventTypeCode: String
  eventTypeCategory: String
  region: String
  availabilityZone: String
  startTime: Date
  endTime: Date
  lastUpdatedTime: Date
  statusCode: String
  eventScopeCode: String
}

type AwsHealthS1w {
  latestDescription: String
}

type AwsHealthDescribeEventDetailsOutputFailedSet {
  eventArn: String
  errorName: String
  errorMessage: String
}

input AwsHealthDescribeEventDetailsInput {
  eventArns: [String]!
  locale: String
}

type AwsHealthDescribeEventDetailsForOrganizationOutput {
  successfulSet: [AwsHealthDescribeEventDetailsForOrganizationOutputSuccessfulSet]
  failedSet: [AwsHealthDescribeEventDetailsForOrganizationOutputFailedSet]
}

type AwsHealthDescribeEventDetailsForOrganizationOutputSuccessfulSet {
  awsAccountId: String
  event: AwsHealthS1u
  eventDescription: AwsHealthS1w
  eventMetadata: JSON
}

type AwsHealthDescribeEventDetailsForOrganizationOutputFailedSet {
  awsAccountId: String
  eventArn: String
  errorName: String
  errorMessage: String
}

input AwsHealthDescribeEventDetailsForOrganizationInput {
  organizationEventDetailFilters: [AwsHealthSwInput]!
  locale: String
}

type AwsHealthDescribeEventTypesOutput {
  eventTypes: [AwsHealthDescribeEventTypesOutputEventTypes]
  nextToken: String
}

type AwsHealthDescribeEventTypesOutputEventTypes {
  service: String
  code: String
  category: String
}

input AwsHealthDescribeEventTypesInput {
  filter: AwsHealthDescribeEventTypesFilterInput
  locale: String
  nextToken: String
  maxResults: Int
}

input AwsHealthDescribeEventTypesFilterInput {
  eventTypeCodes: [String]
  services: [String]
  eventTypeCategories: [String]
}

type AwsHealthDescribeEventsOutput {
  events: [AwsHealthS1u]
  nextToken: String
}

input AwsHealthDescribeEventsInput {
  filter: AwsHealthS18Input
  nextToken: String
  maxResults: Int
  locale: String
}

type AwsHealthDescribeEventsForOrganizationOutput {
  events: [AwsHealthDescribeEventsForOrganizationOutputEvents]
  nextToken: String
}

type AwsHealthDescribeEventsForOrganizationOutputEvents {
  arn: String
  service: String
  eventTypeCode: String
  eventTypeCategory: String
  eventScopeCode: String
  region: String
  startTime: Date
  endTime: Date
  lastUpdatedTime: Date
  statusCode: String
}

input AwsHealthDescribeEventsForOrganizationInput {
  filter: AwsHealthDescribeEventsForOrganizationFilterInput
  nextToken: String
  maxResults: Int
  locale: String
}

input AwsHealthDescribeEventsForOrganizationFilterInput {
  eventTypeCodes: [String]
  awsAccountIds: [String]
  services: [String]
  regions: [String]
  startTime: AwsHealthShInput
  endTime: AwsHealthShInput
  lastUpdatedTime: AwsHealthShInput
  entityArns: [String]
  entityValues: [String]
  eventTypeCategories: [String]
  eventStatusCodes: [String]
}

type AwsHealthDescribeHealthServiceStatusForOrganizationOutput {
  healthServiceAccessStatusForOrganization: String
}

"""Amazon HealthLake (2017-07-01)"""
type AwsHealthLake {
  createFHIRDatastore(input: AwsHealthLakeCreateFHIRDatastoreInput!, config: AwsConfig): AwsHealthLakeCreateFHIRDatastoreOutput
  deleteFHIRDatastore(input: AwsHealthLakeDeleteFHIRDatastoreInput, config: AwsConfig): AwsHealthLakeDeleteFHIRDatastoreOutput
  describeFHIRDatastore(input: AwsHealthLakeDescribeFHIRDatastoreInput, config: AwsConfig): AwsHealthLakeDescribeFHIRDatastoreOutput
  describeFHIRExportJob(input: AwsHealthLakeDescribeFHIRExportJobInput!, config: AwsConfig): AwsHealthLakeDescribeFHIRExportJobOutput
  describeFHIRImportJob(input: AwsHealthLakeDescribeFHIRImportJobInput!, config: AwsConfig): AwsHealthLakeDescribeFHIRImportJobOutput
  listFHIRDatastores(input: AwsHealthLakeListFHIRDatastoresInput, config: AwsConfig): AwsHealthLakeListFHIRDatastoresOutput
  startFHIRExportJob(input: AwsHealthLakeStartFHIRExportJobInput!, config: AwsConfig): AwsHealthLakeStartFHIRExportJobOutput
  startFHIRImportJob(input: AwsHealthLakeStartFHIRImportJobInput!, config: AwsConfig): AwsHealthLakeStartFHIRImportJobOutput
}

type AwsHealthLakeCreateFHIRDatastoreOutput {
  DatastoreId: String!
  DatastoreArn: String!
  DatastoreStatus: String!
  DatastoreEndpoint: String!
}

input AwsHealthLakeCreateFHIRDatastoreInput {
  DatastoreName: String
  DatastoreTypeVersion: String!
  PreloadDataConfig: AwsHealthLakeS4Input
  ClientToken: String
}

input AwsHealthLakeS4Input {
  PreloadDataType: String!
}

type AwsHealthLakeDeleteFHIRDatastoreOutput {
  DatastoreId: String!
  DatastoreArn: String!
  DatastoreStatus: String!
  DatastoreEndpoint: String!
}

input AwsHealthLakeDeleteFHIRDatastoreInput {
  DatastoreId: String
}

type AwsHealthLakeDescribeFHIRDatastoreOutput {
  DatastoreProperties: AwsHealthLakeSg!
}

type AwsHealthLakeSg {
  DatastoreId: String!
  DatastoreArn: String!
  DatastoreName: String
  DatastoreStatus: String!
  CreatedAt: Date
  DatastoreTypeVersion: String!
  DatastoreEndpoint: String!
  PreloadDataConfig: AwsHealthLakeS4
}

type AwsHealthLakeS4 {
  PreloadDataType: String!
}

input AwsHealthLakeDescribeFHIRDatastoreInput {
  DatastoreId: String
}

type AwsHealthLakeDescribeFHIRExportJobOutput {
  ExportJobProperties: AwsHealthLakeDescribeFHIRExportJobOutputExportJobProperties!
}

type AwsHealthLakeDescribeFHIRExportJobOutputExportJobProperties {
  JobId: String!
  JobName: String
  JobStatus: String!
  SubmitTime: Date!
  EndTime: Date
  DatastoreId: String!
  OutputDataConfig: AwsHealthLakeSp!
  DataAccessRoleArn: String
  Message: String
}

type AwsHealthLakeSp {
  S3Uri: String
}

input AwsHealthLakeDescribeFHIRExportJobInput {
  DatastoreId: String!
  JobId: String!
}

type AwsHealthLakeDescribeFHIRImportJobOutput {
  ImportJobProperties: AwsHealthLakeDescribeFHIRImportJobOutputImportJobProperties!
}

type AwsHealthLakeDescribeFHIRImportJobOutputImportJobProperties {
  JobId: String!
  JobName: String
  JobStatus: String!
  SubmitTime: Date!
  EndTime: Date
  DatastoreId: String!
  InputDataConfig: AwsHealthLakeSw!
  DataAccessRoleArn: String
  Message: String
}

type AwsHealthLakeSw {
  S3Uri: String
}

input AwsHealthLakeDescribeFHIRImportJobInput {
  DatastoreId: String!
  JobId: String!
}

type AwsHealthLakeListFHIRDatastoresOutput {
  DatastorePropertiesList: [AwsHealthLakeSg]!
  NextToken: String
}

input AwsHealthLakeListFHIRDatastoresInput {
  Filter: AwsHealthLakeListFHIRDatastoresFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsHealthLakeListFHIRDatastoresFilterInput {
  DatastoreName: String
  DatastoreStatus: String
  CreatedBefore: Date
  CreatedAfter: Date
}

type AwsHealthLakeStartFHIRExportJobOutput {
  JobId: String!
  JobStatus: String!
  DatastoreId: String
}

input AwsHealthLakeStartFHIRExportJobInput {
  JobName: String
  OutputDataConfig: AwsHealthLakeSpInput!
  DatastoreId: String!
  DataAccessRoleArn: String!
  ClientToken: String!
}

input AwsHealthLakeSpInput {
  S3Uri: String
}

type AwsHealthLakeStartFHIRImportJobOutput {
  JobId: String!
  JobStatus: String!
  DatastoreId: String
}

input AwsHealthLakeStartFHIRImportJobInput {
  JobName: String
  InputDataConfig: AwsHealthLakeSwInput!
  DatastoreId: String!
  DataAccessRoleArn: String!
  ClientToken: String!
}

input AwsHealthLakeSwInput {
  S3Uri: String
}

"""Amazon Honeycode (2020-03-01)"""
type AwsHoneycode {
  batchCreateTableRows(input: AwsHoneycodeBatchCreateTableRowsInput!, config: AwsConfig): AwsHoneycodeBatchCreateTableRowsOutput
  batchDeleteTableRows(input: AwsHoneycodeBatchDeleteTableRowsInput!, config: AwsConfig): AwsHoneycodeBatchDeleteTableRowsOutput
  batchUpdateTableRows(input: AwsHoneycodeBatchUpdateTableRowsInput!, config: AwsConfig): AwsHoneycodeBatchUpdateTableRowsOutput
  batchUpsertTableRows(input: AwsHoneycodeBatchUpsertTableRowsInput!, config: AwsConfig): AwsHoneycodeBatchUpsertTableRowsOutput
  describeTableDataImportJob(input: AwsHoneycodeDescribeTableDataImportJobInput!, config: AwsConfig): AwsHoneycodeDescribeTableDataImportJobOutput
  getScreenData(input: AwsHoneycodeGetScreenDataInput!, config: AwsConfig): AwsHoneycodeGetScreenDataOutput
  invokeScreenAutomation(input: AwsHoneycodeInvokeScreenAutomationInput!, config: AwsConfig): AwsHoneycodeInvokeScreenAutomationOutput
  listTableColumns(input: AwsHoneycodeListTableColumnsInput!, config: AwsConfig): AwsHoneycodeListTableColumnsOutput
  listTableRows(input: AwsHoneycodeListTableRowsInput!, config: AwsConfig): AwsHoneycodeListTableRowsOutput
  listTables(input: AwsHoneycodeListTablesInput!, config: AwsConfig): AwsHoneycodeListTablesOutput
  queryTableRows(input: AwsHoneycodeQueryTableRowsInput!, config: AwsConfig): AwsHoneycodeQueryTableRowsOutput
  startTableDataImportJob(input: AwsHoneycodeStartTableDataImportJobInput!, config: AwsConfig): AwsHoneycodeStartTableDataImportJobOutput
}

type AwsHoneycodeBatchCreateTableRowsOutput {
  workbookCursor: JSON!
  createdRows: JSON!
  failedBatchItems: [AwsHoneycodeSe]
}

type AwsHoneycodeSe {
  id: String!
  errorMessage: String!
}

input AwsHoneycodeBatchCreateTableRowsInput {
  workbookId: String!
  tableId: String!
  rowsToCreate: [AwsHoneycodeBatchCreateTableRowsRowsToCreateInput]!
  clientRequestToken: String
}

input AwsHoneycodeBatchCreateTableRowsRowsToCreateInput {
  batchItemId: String!
  cellsToCreate: JSON!
}

type AwsHoneycodeBatchDeleteTableRowsOutput {
  workbookCursor: JSON!
  failedBatchItems: [AwsHoneycodeSe]
}

input AwsHoneycodeBatchDeleteTableRowsInput {
  workbookId: String!
  tableId: String!
  rowIds: [String]!
  clientRequestToken: String
}

type AwsHoneycodeBatchUpdateTableRowsOutput {
  workbookCursor: JSON!
  failedBatchItems: [AwsHoneycodeSe]
}

input AwsHoneycodeBatchUpdateTableRowsInput {
  workbookId: String!
  tableId: String!
  rowsToUpdate: [AwsHoneycodeBatchUpdateTableRowsRowsToUpdateInput]!
  clientRequestToken: String
}

input AwsHoneycodeBatchUpdateTableRowsRowsToUpdateInput {
  rowId: String!
  cellsToUpdate: JSON!
}

type AwsHoneycodeBatchUpsertTableRowsOutput {
  rows: JSON!
  workbookCursor: JSON!
  failedBatchItems: [AwsHoneycodeSe]
}

input AwsHoneycodeBatchUpsertTableRowsInput {
  workbookId: String!
  tableId: String!
  rowsToUpsert: [AwsHoneycodeBatchUpsertTableRowsRowsToUpsertInput]!
  clientRequestToken: String
}

input AwsHoneycodeBatchUpsertTableRowsRowsToUpsertInput {
  batchItemId: String!
  filter: AwsHoneycodeSrInput!
  cellsToUpdate: JSON!
}

input AwsHoneycodeSrInput {
  formula: String!
  contextRowId: String
}

type AwsHoneycodeDescribeTableDataImportJobOutput {
  jobStatus: String!
  message: String!
  jobMetadata: AwsHoneycodeDescribeTableDataImportJobOutputJobMetadata!
}

type AwsHoneycodeDescribeTableDataImportJobOutputJobMetadata {
  submitter: AwsHoneycodeDescribeTableDataImportJobOutputJobMetadataSubmitter!
  submitTime: Date!
  importOptions: AwsHoneycodeS17!
  dataSource: AwsHoneycodeS1h!
}

type AwsHoneycodeDescribeTableDataImportJobOutputJobMetadataSubmitter {
  email: String
  userArn: String
}

type AwsHoneycodeS17 {
  destinationOptions: AwsHoneycodeS17DestinationOptions
  delimitedTextOptions: AwsHoneycodeS17DelimitedTextOptions
}

type AwsHoneycodeS17DestinationOptions {
  columnMap: JSON
}

type AwsHoneycodeS17DelimitedTextOptions {
  delimiter: String!
  hasHeaderRow: Boolean
  ignoreEmptyRows: Boolean
  dataCharacterEncoding: String
}

type AwsHoneycodeS1h {
  dataSourceConfig: AwsHoneycodeS1hDataSourceConfig!
}

type AwsHoneycodeS1hDataSourceConfig {
  dataSourceUrl: String
}

input AwsHoneycodeDescribeTableDataImportJobInput {
  workbookId: String!
  tableId: String!
  jobId: String!
}

type AwsHoneycodeGetScreenDataOutput {
  results: JSON!
  workbookCursor: JSON!
  nextToken: String
}

input AwsHoneycodeGetScreenDataInput {
  workbookId: String!
  appId: String!
  screenId: String!
  variables: JSON
  maxResults: Int
  nextToken: String
}

type AwsHoneycodeInvokeScreenAutomationOutput {
  workbookCursor: JSON!
}

input AwsHoneycodeInvokeScreenAutomationInput {
  workbookId: String!
  appId: String!
  screenId: String!
  screenAutomationId: String!
  variables: JSON
  rowId: String
  clientRequestToken: String
}

type AwsHoneycodeListTableColumnsOutput {
  tableColumns: [AwsHoneycodeListTableColumnsOutputTableColumns]!
  nextToken: String
  workbookCursor: JSON
}

type AwsHoneycodeListTableColumnsOutputTableColumns {
  tableColumnId: String
  tableColumnName: String
  format: String
}

input AwsHoneycodeListTableColumnsInput {
  workbookId: String!
  tableId: String!
  nextToken: String
}

type AwsHoneycodeListTableRowsOutput {
  columnIds: [String]!
  rows: [AwsHoneycodeS2d]!
  rowIdsNotFound: [String]
  nextToken: String
  workbookCursor: JSON!
}

type AwsHoneycodeS2d {
  rowId: String!
  cells: [AwsHoneycodeS2dCells]!
}

type AwsHoneycodeS2dCells {
  formula: String
  format: String
  rawValue: String
  formattedValue: String
}

input AwsHoneycodeListTableRowsInput {
  workbookId: String!
  tableId: String!
  rowIds: [String]
  maxResults: Int
  nextToken: String
}

type AwsHoneycodeListTablesOutput {
  tables: [AwsHoneycodeListTablesOutputTables]!
  nextToken: String
  workbookCursor: JSON
}

type AwsHoneycodeListTablesOutputTables {
  tableId: String
  tableName: String
}

input AwsHoneycodeListTablesInput {
  workbookId: String!
  maxResults: Int
  nextToken: String
}

type AwsHoneycodeQueryTableRowsOutput {
  columnIds: [String]!
  rows: [AwsHoneycodeS2d]!
  nextToken: String
  workbookCursor: JSON!
}

input AwsHoneycodeQueryTableRowsInput {
  workbookId: String!
  tableId: String!
  filterFormula: AwsHoneycodeSrInput!
  maxResults: Int
  nextToken: String
}

type AwsHoneycodeStartTableDataImportJobOutput {
  jobId: String!
  jobStatus: String!
}

input AwsHoneycodeStartTableDataImportJobInput {
  workbookId: String!
  dataSource: AwsHoneycodeS1hInput!
  dataFormat: String!
  destinationTableId: String!
  importOptions: AwsHoneycodeS17Input!
  clientRequestToken: String!
}

input AwsHoneycodeS1hInput {
  dataSourceConfig: AwsHoneycodeS1hDataSourceConfigInput!
}

input AwsHoneycodeS1hDataSourceConfigInput {
  dataSourceUrl: String
}

input AwsHoneycodeS17Input {
  destinationOptions: AwsHoneycodeS17DestinationOptionsInput
  delimitedTextOptions: AwsHoneycodeS17DelimitedTextOptionsInput
}

input AwsHoneycodeS17DestinationOptionsInput {
  columnMap: JSON
}

input AwsHoneycodeS17DelimitedTextOptionsInput {
  delimiter: String!
  hasHeaderRow: Boolean
  ignoreEmptyRows: Boolean
  dataCharacterEncoding: String
}

"""AWS Identity and Access Management (2010-05-08)"""
type AwsIAM {
  addClientIDToOpenIDConnectProvider(input: AwsIAMAddClientIDToOpenIDConnectProviderInput!, config: AwsConfig): JSON
  addRoleToInstanceProfile(input: AwsIAMAddRoleToInstanceProfileInput!, config: AwsConfig): JSON
  addUserToGroup(input: AwsIAMAddUserToGroupInput!, config: AwsConfig): JSON
  attachGroupPolicy(input: AwsIAMAttachGroupPolicyInput!, config: AwsConfig): JSON
  attachRolePolicy(input: AwsIAMAttachRolePolicyInput!, config: AwsConfig): JSON
  attachUserPolicy(input: AwsIAMAttachUserPolicyInput!, config: AwsConfig): JSON
  changePassword(input: AwsIAMChangePasswordInput!, config: AwsConfig): JSON
  createAccessKey(input: AwsIAMCreateAccessKeyInput, config: AwsConfig): AwsIAMCreateAccessKeyOutput
  createAccountAlias(input: AwsIAMCreateAccountAliasInput!, config: AwsConfig): JSON
  createGroup(input: AwsIAMCreateGroupInput!, config: AwsConfig): AwsIAMCreateGroupOutput
  createInstanceProfile(input: AwsIAMCreateInstanceProfileInput!, config: AwsConfig): AwsIAMCreateInstanceProfileOutput
  createLoginProfile(input: AwsIAMCreateLoginProfileInput!, config: AwsConfig): AwsIAMCreateLoginProfileOutput
  createOpenIDConnectProvider(input: AwsIAMCreateOpenIDConnectProviderInput!, config: AwsConfig): AwsIAMCreateOpenIDConnectProviderOutput
  createPolicy(input: AwsIAMCreatePolicyInput!, config: AwsConfig): AwsIAMCreatePolicyOutput
  createPolicyVersion(input: AwsIAMCreatePolicyVersionInput!, config: AwsConfig): AwsIAMCreatePolicyVersionOutput
  createRole(input: AwsIAMCreateRoleInput!, config: AwsConfig): AwsIAMCreateRoleOutput
  createSAMLProvider(input: AwsIAMCreateSAMLProviderInput!, config: AwsConfig): AwsIAMCreateSAMLProviderOutput
  createServiceLinkedRole(input: AwsIAMCreateServiceLinkedRoleInput!, config: AwsConfig): AwsIAMCreateServiceLinkedRoleOutput
  createServiceSpecificCredential(input: AwsIAMCreateServiceSpecificCredentialInput!, config: AwsConfig): AwsIAMCreateServiceSpecificCredentialOutput
  createUser(input: AwsIAMCreateUserInput!, config: AwsConfig): AwsIAMCreateUserOutput
  createVirtualMFADevice(input: AwsIAMCreateVirtualMFADeviceInput!, config: AwsConfig): AwsIAMCreateVirtualMFADeviceOutput
  deactivateMFADevice(input: AwsIAMDeactivateMFADeviceInput!, config: AwsConfig): JSON
  deleteAccessKey(input: AwsIAMDeleteAccessKeyInput!, config: AwsConfig): JSON
  deleteAccountAlias(input: AwsIAMDeleteAccountAliasInput!, config: AwsConfig): JSON
  deleteAccountPasswordPolicy(config: AwsConfig): JSON
  deleteGroup(input: AwsIAMDeleteGroupInput!, config: AwsConfig): JSON
  deleteGroupPolicy(input: AwsIAMDeleteGroupPolicyInput!, config: AwsConfig): JSON
  deleteInstanceProfile(input: AwsIAMDeleteInstanceProfileInput!, config: AwsConfig): JSON
  deleteLoginProfile(input: AwsIAMDeleteLoginProfileInput!, config: AwsConfig): JSON
  deleteOpenIDConnectProvider(input: AwsIAMDeleteOpenIDConnectProviderInput!, config: AwsConfig): JSON
  deletePolicy(input: AwsIAMDeletePolicyInput!, config: AwsConfig): JSON
  deletePolicyVersion(input: AwsIAMDeletePolicyVersionInput!, config: AwsConfig): JSON
  deleteRole(input: AwsIAMDeleteRoleInput!, config: AwsConfig): JSON
  deleteRolePermissionsBoundary(input: AwsIAMDeleteRolePermissionsBoundaryInput!, config: AwsConfig): JSON
  deleteRolePolicy(input: AwsIAMDeleteRolePolicyInput!, config: AwsConfig): JSON
  deleteSAMLProvider(input: AwsIAMDeleteSAMLProviderInput!, config: AwsConfig): JSON
  deleteSSHPublicKey(input: AwsIAMDeleteSSHPublicKeyInput!, config: AwsConfig): JSON
  deleteServerCertificate(input: AwsIAMDeleteServerCertificateInput!, config: AwsConfig): JSON
  deleteServiceLinkedRole(input: AwsIAMDeleteServiceLinkedRoleInput!, config: AwsConfig): AwsIAMDeleteServiceLinkedRoleOutput
  deleteServiceSpecificCredential(input: AwsIAMDeleteServiceSpecificCredentialInput!, config: AwsConfig): JSON
  deleteSigningCertificate(input: AwsIAMDeleteSigningCertificateInput!, config: AwsConfig): JSON
  deleteUser(input: AwsIAMDeleteUserInput!, config: AwsConfig): JSON
  deleteUserPermissionsBoundary(input: AwsIAMDeleteUserPermissionsBoundaryInput!, config: AwsConfig): JSON
  deleteUserPolicy(input: AwsIAMDeleteUserPolicyInput!, config: AwsConfig): JSON
  deleteVirtualMFADevice(input: AwsIAMDeleteVirtualMFADeviceInput!, config: AwsConfig): JSON
  detachGroupPolicy(input: AwsIAMDetachGroupPolicyInput!, config: AwsConfig): JSON
  detachRolePolicy(input: AwsIAMDetachRolePolicyInput!, config: AwsConfig): JSON
  detachUserPolicy(input: AwsIAMDetachUserPolicyInput!, config: AwsConfig): JSON
  enableMFADevice(input: AwsIAMEnableMFADeviceInput!, config: AwsConfig): JSON
  generateCredentialReport(config: AwsConfig): AwsIAMGenerateCredentialReportOutput
  generateOrganizationsAccessReport(input: AwsIAMGenerateOrganizationsAccessReportInput!, config: AwsConfig): AwsIAMGenerateOrganizationsAccessReportOutput
  generateServiceLastAccessedDetails(input: AwsIAMGenerateServiceLastAccessedDetailsInput!, config: AwsConfig): AwsIAMGenerateServiceLastAccessedDetailsOutput
  getAccessKeyLastUsed(input: AwsIAMGetAccessKeyLastUsedInput!, config: AwsConfig): AwsIAMGetAccessKeyLastUsedOutput
  getAccountAuthorizationDetails(input: AwsIAMGetAccountAuthorizationDetailsInput, config: AwsConfig): AwsIAMGetAccountAuthorizationDetailsOutput
  getAccountPasswordPolicy(config: AwsConfig): AwsIAMGetAccountPasswordPolicyOutput
  getAccountSummary(config: AwsConfig): AwsIAMGetAccountSummaryOutput
  getContextKeysForCustomPolicy(input: AwsIAMGetContextKeysForCustomPolicyInput!, config: AwsConfig): JSON
  getContextKeysForPrincipalPolicy(input: AwsIAMGetContextKeysForPrincipalPolicyInput!, config: AwsConfig): JSON
  getCredentialReport(config: AwsConfig): AwsIAMGetCredentialReportOutput
  getGroup(input: AwsIAMGetGroupInput!, config: AwsConfig): AwsIAMGetGroupOutput
  getGroupPolicy(input: AwsIAMGetGroupPolicyInput!, config: AwsConfig): AwsIAMGetGroupPolicyOutput
  getInstanceProfile(input: AwsIAMGetInstanceProfileInput!, config: AwsConfig): AwsIAMGetInstanceProfileOutput
  getLoginProfile(input: AwsIAMGetLoginProfileInput!, config: AwsConfig): AwsIAMGetLoginProfileOutput
  getOpenIDConnectProvider(input: AwsIAMGetOpenIDConnectProviderInput!, config: AwsConfig): AwsIAMGetOpenIDConnectProviderOutput
  getOrganizationsAccessReport(input: AwsIAMGetOrganizationsAccessReportInput!, config: AwsConfig): AwsIAMGetOrganizationsAccessReportOutput
  getPolicy(input: AwsIAMGetPolicyInput!, config: AwsConfig): AwsIAMGetPolicyOutput
  getPolicyVersion(input: AwsIAMGetPolicyVersionInput!, config: AwsConfig): AwsIAMGetPolicyVersionOutput
  getRole(input: AwsIAMGetRoleInput!, config: AwsConfig): AwsIAMGetRoleOutput
  getRolePolicy(input: AwsIAMGetRolePolicyInput!, config: AwsConfig): AwsIAMGetRolePolicyOutput
  getSAMLProvider(input: AwsIAMGetSAMLProviderInput!, config: AwsConfig): AwsIAMGetSAMLProviderOutput
  getSSHPublicKey(input: AwsIAMGetSSHPublicKeyInput!, config: AwsConfig): AwsIAMGetSSHPublicKeyOutput
  getServerCertificate(input: AwsIAMGetServerCertificateInput!, config: AwsConfig): AwsIAMGetServerCertificateOutput
  getServiceLastAccessedDetails(input: AwsIAMGetServiceLastAccessedDetailsInput!, config: AwsConfig): AwsIAMGetServiceLastAccessedDetailsOutput
  getServiceLastAccessedDetailsWithEntities(input: AwsIAMGetServiceLastAccessedDetailsWithEntitiesInput!, config: AwsConfig): AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutput
  getServiceLinkedRoleDeletionStatus(input: AwsIAMGetServiceLinkedRoleDeletionStatusInput!, config: AwsConfig): AwsIAMGetServiceLinkedRoleDeletionStatusOutput
  getUser(input: AwsIAMGetUserInput, config: AwsConfig): AwsIAMGetUserOutput
  getUserPolicy(input: AwsIAMGetUserPolicyInput!, config: AwsConfig): AwsIAMGetUserPolicyOutput
  listAccessKeys(input: AwsIAMListAccessKeysInput, config: AwsConfig): AwsIAMListAccessKeysOutput
  listAccountAliases(input: AwsIAMListAccountAliasesInput, config: AwsConfig): AwsIAMListAccountAliasesOutput
  listAttachedGroupPolicies(input: AwsIAMListAttachedGroupPoliciesInput!, config: AwsConfig): AwsIAMListAttachedGroupPoliciesOutput
  listAttachedRolePolicies(input: AwsIAMListAttachedRolePoliciesInput!, config: AwsConfig): AwsIAMListAttachedRolePoliciesOutput
  listAttachedUserPolicies(input: AwsIAMListAttachedUserPoliciesInput!, config: AwsConfig): AwsIAMListAttachedUserPoliciesOutput
  listEntitiesForPolicy(input: AwsIAMListEntitiesForPolicyInput!, config: AwsConfig): AwsIAMListEntitiesForPolicyOutput
  listGroupPolicies(input: AwsIAMListGroupPoliciesInput!, config: AwsConfig): AwsIAMListGroupPoliciesOutput
  listGroups(input: AwsIAMListGroupsInput, config: AwsConfig): AwsIAMListGroupsOutput
  listGroupsForUser(input: AwsIAMListGroupsForUserInput!, config: AwsConfig): AwsIAMListGroupsForUserOutput
  listInstanceProfileTags(input: AwsIAMListInstanceProfileTagsInput!, config: AwsConfig): AwsIAMListInstanceProfileTagsOutput
  listInstanceProfiles(input: AwsIAMListInstanceProfilesInput, config: AwsConfig): AwsIAMListInstanceProfilesOutput
  listInstanceProfilesForRole(input: AwsIAMListInstanceProfilesForRoleInput!, config: AwsConfig): AwsIAMListInstanceProfilesForRoleOutput
  listMFADeviceTags(input: AwsIAMListMFADeviceTagsInput!, config: AwsConfig): AwsIAMListMFADeviceTagsOutput
  listMFADevices(input: AwsIAMListMFADevicesInput, config: AwsConfig): AwsIAMListMFADevicesOutput
  listOpenIDConnectProviderTags(input: AwsIAMListOpenIDConnectProviderTagsInput!, config: AwsConfig): AwsIAMListOpenIDConnectProviderTagsOutput
  listOpenIDConnectProviders(input: JSON, config: AwsConfig): AwsIAMListOpenIDConnectProvidersOutput
  listPolicies(input: AwsIAMListPoliciesInput, config: AwsConfig): AwsIAMListPoliciesOutput
  listPoliciesGrantingServiceAccess(input: AwsIAMListPoliciesGrantingServiceAccessInput!, config: AwsConfig): AwsIAMListPoliciesGrantingServiceAccessOutput
  listPolicyTags(input: AwsIAMListPolicyTagsInput!, config: AwsConfig): AwsIAMListPolicyTagsOutput
  listPolicyVersions(input: AwsIAMListPolicyVersionsInput!, config: AwsConfig): AwsIAMListPolicyVersionsOutput
  listRolePolicies(input: AwsIAMListRolePoliciesInput!, config: AwsConfig): AwsIAMListRolePoliciesOutput
  listRoleTags(input: AwsIAMListRoleTagsInput!, config: AwsConfig): AwsIAMListRoleTagsOutput
  listRoles(input: AwsIAMListRolesInput, config: AwsConfig): AwsIAMListRolesOutput
  listSAMLProviderTags(input: AwsIAMListSAMLProviderTagsInput!, config: AwsConfig): AwsIAMListSAMLProviderTagsOutput
  listSAMLProviders(input: JSON, config: AwsConfig): AwsIAMListSAMLProvidersOutput
  listSSHPublicKeys(input: AwsIAMListSSHPublicKeysInput, config: AwsConfig): AwsIAMListSSHPublicKeysOutput
  listServerCertificateTags(input: AwsIAMListServerCertificateTagsInput!, config: AwsConfig): AwsIAMListServerCertificateTagsOutput
  listServerCertificates(input: AwsIAMListServerCertificatesInput, config: AwsConfig): AwsIAMListServerCertificatesOutput
  listServiceSpecificCredentials(input: AwsIAMListServiceSpecificCredentialsInput, config: AwsConfig): AwsIAMListServiceSpecificCredentialsOutput
  listSigningCertificates(input: AwsIAMListSigningCertificatesInput, config: AwsConfig): AwsIAMListSigningCertificatesOutput
  listUserPolicies(input: AwsIAMListUserPoliciesInput!, config: AwsConfig): AwsIAMListUserPoliciesOutput
  listUserTags(input: AwsIAMListUserTagsInput!, config: AwsConfig): AwsIAMListUserTagsOutput
  listUsers(input: AwsIAMListUsersInput, config: AwsConfig): AwsIAMListUsersOutput
  listVirtualMFADevices(input: AwsIAMListVirtualMFADevicesInput, config: AwsConfig): AwsIAMListVirtualMFADevicesOutput
  putGroupPolicy(input: AwsIAMPutGroupPolicyInput!, config: AwsConfig): JSON
  putRolePermissionsBoundary(input: AwsIAMPutRolePermissionsBoundaryInput!, config: AwsConfig): JSON
  putRolePolicy(input: AwsIAMPutRolePolicyInput!, config: AwsConfig): JSON
  putUserPermissionsBoundary(input: AwsIAMPutUserPermissionsBoundaryInput!, config: AwsConfig): JSON
  putUserPolicy(input: AwsIAMPutUserPolicyInput!, config: AwsConfig): JSON
  removeClientIDFromOpenIDConnectProvider(input: AwsIAMRemoveClientIDFromOpenIDConnectProviderInput!, config: AwsConfig): JSON
  removeRoleFromInstanceProfile(input: AwsIAMRemoveRoleFromInstanceProfileInput!, config: AwsConfig): JSON
  removeUserFromGroup(input: AwsIAMRemoveUserFromGroupInput!, config: AwsConfig): JSON
  resetServiceSpecificCredential(input: AwsIAMResetServiceSpecificCredentialInput!, config: AwsConfig): AwsIAMResetServiceSpecificCredentialOutput
  resyncMFADevice(input: AwsIAMResyncMFADeviceInput!, config: AwsConfig): JSON
  setDefaultPolicyVersion(input: AwsIAMSetDefaultPolicyVersionInput!, config: AwsConfig): JSON
  setSecurityTokenServicePreferences(input: AwsIAMSetSecurityTokenServicePreferencesInput!, config: AwsConfig): JSON
  simulateCustomPolicy(input: AwsIAMSimulateCustomPolicyInput!, config: AwsConfig): JSON
  simulatePrincipalPolicy(input: AwsIAMSimulatePrincipalPolicyInput!, config: AwsConfig): JSON
  tagInstanceProfile(input: AwsIAMTagInstanceProfileInput!, config: AwsConfig): JSON
  tagMFADevice(input: AwsIAMTagMFADeviceInput!, config: AwsConfig): JSON
  tagOpenIDConnectProvider(input: AwsIAMTagOpenIDConnectProviderInput!, config: AwsConfig): JSON
  tagPolicy(input: AwsIAMTagPolicyInput!, config: AwsConfig): JSON
  tagRole(input: AwsIAMTagRoleInput!, config: AwsConfig): JSON
  tagSAMLProvider(input: AwsIAMTagSAMLProviderInput!, config: AwsConfig): JSON
  tagServerCertificate(input: AwsIAMTagServerCertificateInput!, config: AwsConfig): JSON
  tagUser(input: AwsIAMTagUserInput!, config: AwsConfig): JSON
  untagInstanceProfile(input: AwsIAMUntagInstanceProfileInput!, config: AwsConfig): JSON
  untagMFADevice(input: AwsIAMUntagMFADeviceInput!, config: AwsConfig): JSON
  untagOpenIDConnectProvider(input: AwsIAMUntagOpenIDConnectProviderInput!, config: AwsConfig): JSON
  untagPolicy(input: AwsIAMUntagPolicyInput!, config: AwsConfig): JSON
  untagRole(input: AwsIAMUntagRoleInput!, config: AwsConfig): JSON
  untagSAMLProvider(input: AwsIAMUntagSAMLProviderInput!, config: AwsConfig): JSON
  untagServerCertificate(input: AwsIAMUntagServerCertificateInput!, config: AwsConfig): JSON
  untagUser(input: AwsIAMUntagUserInput!, config: AwsConfig): JSON
  updateAccessKey(input: AwsIAMUpdateAccessKeyInput!, config: AwsConfig): JSON
  updateAccountPasswordPolicy(input: AwsIAMUpdateAccountPasswordPolicyInput, config: AwsConfig): JSON
  updateAssumeRolePolicy(input: AwsIAMUpdateAssumeRolePolicyInput!, config: AwsConfig): JSON
  updateGroup(input: AwsIAMUpdateGroupInput!, config: AwsConfig): JSON
  updateLoginProfile(input: AwsIAMUpdateLoginProfileInput!, config: AwsConfig): JSON
  updateOpenIDConnectProviderThumbprint(input: AwsIAMUpdateOpenIDConnectProviderThumbprintInput!, config: AwsConfig): JSON
  updateRole(input: AwsIAMUpdateRoleInput!, config: AwsConfig): JSON
  updateRoleDescription(input: AwsIAMUpdateRoleDescriptionInput!, config: AwsConfig): AwsIAMUpdateRoleDescriptionOutput
  updateSAMLProvider(input: AwsIAMUpdateSAMLProviderInput!, config: AwsConfig): AwsIAMUpdateSAMLProviderOutput
  updateSSHPublicKey(input: AwsIAMUpdateSSHPublicKeyInput!, config: AwsConfig): JSON
  updateServerCertificate(input: AwsIAMUpdateServerCertificateInput!, config: AwsConfig): JSON
  updateServiceSpecificCredential(input: AwsIAMUpdateServiceSpecificCredentialInput!, config: AwsConfig): JSON
  updateSigningCertificate(input: AwsIAMUpdateSigningCertificateInput!, config: AwsConfig): JSON
  updateUser(input: AwsIAMUpdateUserInput!, config: AwsConfig): JSON
  uploadSSHPublicKey(input: AwsIAMUploadSSHPublicKeyInput!, config: AwsConfig): AwsIAMUploadSSHPublicKeyOutput
  uploadServerCertificate(input: AwsIAMUploadServerCertificateInput!, config: AwsConfig): AwsIAMUploadServerCertificateOutput
  uploadSigningCertificate(input: AwsIAMUploadSigningCertificateInput!, config: AwsConfig): AwsIAMUploadSigningCertificateOutput
}

input AwsIAMAddClientIDToOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
  ClientID: String!
}

input AwsIAMAddRoleToInstanceProfileInput {
  InstanceProfileName: String!
  RoleName: String!
}

input AwsIAMAddUserToGroupInput {
  GroupName: String!
  UserName: String!
}

input AwsIAMAttachGroupPolicyInput {
  GroupName: String!
  PolicyArn: String!
}

input AwsIAMAttachRolePolicyInput {
  RoleName: String!
  PolicyArn: String!
}

input AwsIAMAttachUserPolicyInput {
  UserName: String!
  PolicyArn: String!
}

input AwsIAMChangePasswordInput {
  OldPassword: String!
  NewPassword: String!
}

type AwsIAMCreateAccessKeyOutput {
  AccessKey: AwsIAMCreateAccessKeyOutputAccessKey!
}

type AwsIAMCreateAccessKeyOutputAccessKey {
  UserName: String!
  AccessKeyId: String!
  Status: String!
  SecretAccessKey: String!
  CreateDate: Date
}

input AwsIAMCreateAccessKeyInput {
  UserName: String
}

input AwsIAMCreateAccountAliasInput {
  AccountAlias: String!
}

type AwsIAMCreateGroupOutput {
  Group: AwsIAMSs!
}

type AwsIAMSs {
  Path: String!
  GroupName: String!
  GroupId: String!
  Arn: String!
  CreateDate: Date!
}

input AwsIAMCreateGroupInput {
  Path: String
  GroupName: String!
}

type AwsIAMCreateInstanceProfileOutput {
  InstanceProfile: AwsIAMS10!
}

type AwsIAMS10 {
  Path: String!
  InstanceProfileName: String!
  InstanceProfileId: String!
  Arn: String!
  CreateDate: Date!
  Roles: [AwsIAMS12]!
  Tags: [AwsIAMSv]
}

type AwsIAMS12 {
  Path: String!
  RoleName: String!
  RoleId: String!
  Arn: String!
  CreateDate: Date!
  AssumeRolePolicyDocument: String
  Description: String
  MaxSessionDuration: Int
  PermissionsBoundary: AwsIAMS16
  Tags: [AwsIAMSv]
  RoleLastUsed: AwsIAMS18
}

type AwsIAMS16 {
  PermissionsBoundaryType: String
  PermissionsBoundaryArn: String
}

type AwsIAMSv {
  Key: String!
  Value: String!
}

type AwsIAMS18 {
  LastUsedDate: Date
  Region: String
}

input AwsIAMCreateInstanceProfileInput {
  InstanceProfileName: String!
  Path: String
  Tags: [AwsIAMSvInput]
}

input AwsIAMSvInput {
  Key: String!
  Value: String!
}

type AwsIAMCreateLoginProfileOutput {
  LoginProfile: AwsIAMS1d!
}

type AwsIAMS1d {
  UserName: String!
  CreateDate: Date!
  PasswordResetRequired: Boolean
}

input AwsIAMCreateLoginProfileInput {
  UserName: String!
  Password: String!
  PasswordResetRequired: Boolean
}

type AwsIAMCreateOpenIDConnectProviderOutput {
  OpenIDConnectProviderArn: String
  Tags: [AwsIAMSv]
}

input AwsIAMCreateOpenIDConnectProviderInput {
  Url: String!
  ClientIDList: [String]
  ThumbprintList: [String]!
  Tags: [AwsIAMSvInput]
}

type AwsIAMCreatePolicyOutput {
  Policy: AwsIAMS1p
}

type AwsIAMS1p {
  PolicyName: String
  PolicyId: String
  Arn: String
  Path: String
  DefaultVersionId: String
  AttachmentCount: Int
  PermissionsBoundaryUsageCount: Int
  IsAttachable: Boolean
  Description: String
  CreateDate: Date
  UpdateDate: Date
  Tags: [AwsIAMSv]
}

input AwsIAMCreatePolicyInput {
  PolicyName: String!
  Path: String
  PolicyDocument: String!
  Description: String
  Tags: [AwsIAMSvInput]
}

type AwsIAMCreatePolicyVersionOutput {
  PolicyVersion: AwsIAMS1u
}

type AwsIAMS1u {
  Document: String
  VersionId: String
  IsDefaultVersion: Boolean
  CreateDate: Date
}

input AwsIAMCreatePolicyVersionInput {
  PolicyArn: String!
  PolicyDocument: String!
  SetAsDefault: Boolean
}

type AwsIAMCreateRoleOutput {
  Role: AwsIAMS12!
}

input AwsIAMCreateRoleInput {
  Path: String
  RoleName: String!
  AssumeRolePolicyDocument: String!
  Description: String
  MaxSessionDuration: Int
  PermissionsBoundary: String
  Tags: [AwsIAMSvInput]
}

type AwsIAMCreateSAMLProviderOutput {
  SAMLProviderArn: String
  Tags: [AwsIAMSv]
}

input AwsIAMCreateSAMLProviderInput {
  SAMLMetadataDocument: String!
  Name: String!
  Tags: [AwsIAMSvInput]
}

type AwsIAMCreateServiceLinkedRoleOutput {
  Role: AwsIAMS12
}

input AwsIAMCreateServiceLinkedRoleInput {
  AWSServiceName: String!
  Description: String
  CustomSuffix: String
}

type AwsIAMCreateServiceSpecificCredentialOutput {
  ServiceSpecificCredential: AwsIAMS27
}

type AwsIAMS27 {
  CreateDate: Date!
  ServiceName: String!
  ServiceUserName: String!
  ServicePassword: String!
  ServiceSpecificCredentialId: String!
  UserName: String!
  Status: String!
}

input AwsIAMCreateServiceSpecificCredentialInput {
  UserName: String!
  ServiceName: String!
}

type AwsIAMCreateUserOutput {
  User: AwsIAMS2d
}

type AwsIAMS2d {
  Path: String!
  UserName: String!
  UserId: String!
  Arn: String!
  CreateDate: Date!
  PasswordLastUsed: Date
  PermissionsBoundary: AwsIAMS16
  Tags: [AwsIAMSv]
}

input AwsIAMCreateUserInput {
  Path: String
  UserName: String!
  PermissionsBoundary: String
  Tags: [AwsIAMSvInput]
}

type AwsIAMCreateVirtualMFADeviceOutput {
  VirtualMFADevice: AwsIAMS2h!
}

type AwsIAMS2h {
  SerialNumber: String!
  Base32StringSeed: JSON
  QRCodePNG: JSON
  User: AwsIAMS2d
  EnableDate: Date
  Tags: [AwsIAMSv]
}

input AwsIAMCreateVirtualMFADeviceInput {
  Path: String
  VirtualMFADeviceName: String!
  Tags: [AwsIAMSvInput]
}

input AwsIAMDeactivateMFADeviceInput {
  UserName: String!
  SerialNumber: String!
}

input AwsIAMDeleteAccessKeyInput {
  UserName: String
  AccessKeyId: String!
}

input AwsIAMDeleteAccountAliasInput {
  AccountAlias: String!
}

input AwsIAMDeleteGroupInput {
  GroupName: String!
}

input AwsIAMDeleteGroupPolicyInput {
  GroupName: String!
  PolicyName: String!
}

input AwsIAMDeleteInstanceProfileInput {
  InstanceProfileName: String!
}

input AwsIAMDeleteLoginProfileInput {
  UserName: String!
}

input AwsIAMDeleteOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
}

input AwsIAMDeletePolicyInput {
  PolicyArn: String!
}

input AwsIAMDeletePolicyVersionInput {
  PolicyArn: String!
  VersionId: String!
}

input AwsIAMDeleteRoleInput {
  RoleName: String!
}

input AwsIAMDeleteRolePermissionsBoundaryInput {
  RoleName: String!
}

input AwsIAMDeleteRolePolicyInput {
  RoleName: String!
  PolicyName: String!
}

input AwsIAMDeleteSAMLProviderInput {
  SAMLProviderArn: String!
}

input AwsIAMDeleteSSHPublicKeyInput {
  UserName: String!
  SSHPublicKeyId: String!
}

input AwsIAMDeleteServerCertificateInput {
  ServerCertificateName: String!
}

type AwsIAMDeleteServiceLinkedRoleOutput {
  DeletionTaskId: String!
}

input AwsIAMDeleteServiceLinkedRoleInput {
  RoleName: String!
}

input AwsIAMDeleteServiceSpecificCredentialInput {
  UserName: String
  ServiceSpecificCredentialId: String!
}

input AwsIAMDeleteSigningCertificateInput {
  UserName: String
  CertificateId: String!
}

input AwsIAMDeleteUserInput {
  UserName: String!
}

input AwsIAMDeleteUserPermissionsBoundaryInput {
  UserName: String!
}

input AwsIAMDeleteUserPolicyInput {
  UserName: String!
  PolicyName: String!
}

input AwsIAMDeleteVirtualMFADeviceInput {
  SerialNumber: String!
}

input AwsIAMDetachGroupPolicyInput {
  GroupName: String!
  PolicyArn: String!
}

input AwsIAMDetachRolePolicyInput {
  RoleName: String!
  PolicyArn: String!
}

input AwsIAMDetachUserPolicyInput {
  UserName: String!
  PolicyArn: String!
}

input AwsIAMEnableMFADeviceInput {
  UserName: String!
  SerialNumber: String!
  AuthenticationCode1: String!
  AuthenticationCode2: String!
}

type AwsIAMGenerateCredentialReportOutput {
  State: String
  Description: String
}

type AwsIAMGenerateOrganizationsAccessReportOutput {
  JobId: String
}

input AwsIAMGenerateOrganizationsAccessReportInput {
  EntityPath: String!
  OrganizationsPolicyId: String
}

type AwsIAMGenerateServiceLastAccessedDetailsOutput {
  JobId: String
}

input AwsIAMGenerateServiceLastAccessedDetailsInput {
  Arn: String!
  Granularity: String
}

type AwsIAMGetAccessKeyLastUsedOutput {
  UserName: String
  AccessKeyLastUsed: AwsIAMGetAccessKeyLastUsedOutputAccessKeyLastUsed
}

type AwsIAMGetAccessKeyLastUsedOutputAccessKeyLastUsed {
  LastUsedDate: Date!
  ServiceName: String!
  Region: String!
}

input AwsIAMGetAccessKeyLastUsedInput {
  AccessKeyId: String!
}

type AwsIAMGetAccountAuthorizationDetailsOutput {
  UserDetailList: [AwsIAMGetAccountAuthorizationDetailsOutputUserDetailList]
  GroupDetailList: [AwsIAMGetAccountAuthorizationDetailsOutputGroupDetailList]
  RoleDetailList: [AwsIAMGetAccountAuthorizationDetailsOutputRoleDetailList]
  Policies: [AwsIAMGetAccountAuthorizationDetailsOutputPolicies]
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMGetAccountAuthorizationDetailsOutputUserDetailList {
  Path: String
  UserName: String
  UserId: String
  Arn: String
  CreateDate: Date
  UserPolicyList: [AwsIAMS43]
  GroupList: [String]
  AttachedManagedPolicies: [AwsIAMS46]
  PermissionsBoundary: AwsIAMS16
  Tags: [AwsIAMSv]
}

type AwsIAMS43 {
  PolicyName: String
  PolicyDocument: String
}

type AwsIAMS46 {
  PolicyName: String
  PolicyArn: String
}

type AwsIAMGetAccountAuthorizationDetailsOutputGroupDetailList {
  Path: String
  GroupName: String
  GroupId: String
  Arn: String
  CreateDate: Date
  GroupPolicyList: [AwsIAMS43]
  AttachedManagedPolicies: [AwsIAMS46]
}

type AwsIAMGetAccountAuthorizationDetailsOutputRoleDetailList {
  Path: String
  RoleName: String
  RoleId: String
  Arn: String
  CreateDate: Date
  AssumeRolePolicyDocument: String
  InstanceProfileList: [AwsIAMS10]
  RolePolicyList: [AwsIAMS43]
  AttachedManagedPolicies: [AwsIAMS46]
  PermissionsBoundary: AwsIAMS16
  Tags: [AwsIAMSv]
  RoleLastUsed: AwsIAMS18
}

type AwsIAMGetAccountAuthorizationDetailsOutputPolicies {
  PolicyName: String
  PolicyId: String
  Arn: String
  Path: String
  DefaultVersionId: String
  AttachmentCount: Int
  PermissionsBoundaryUsageCount: Int
  IsAttachable: Boolean
  Description: String
  CreateDate: Date
  UpdateDate: Date
  PolicyVersionList: [AwsIAMS1u]
}

input AwsIAMGetAccountAuthorizationDetailsInput {
  Filter: [String]
  MaxItems: Int
  Marker: String
}

type AwsIAMGetAccountPasswordPolicyOutput {
  PasswordPolicy: AwsIAMGetAccountPasswordPolicyOutputPasswordPolicy!
}

type AwsIAMGetAccountPasswordPolicyOutputPasswordPolicy {
  MinimumPasswordLength: Int
  RequireSymbols: Boolean
  RequireNumbers: Boolean
  RequireUppercaseCharacters: Boolean
  RequireLowercaseCharacters: Boolean
  AllowUsersToChangePassword: Boolean
  ExpirePasswords: Boolean
  MaxPasswordAge: Int
  PasswordReusePrevention: Int
  HardExpiry: Boolean
}

type AwsIAMGetAccountSummaryOutput {
  SummaryMap: JSON
}

input AwsIAMGetContextKeysForCustomPolicyInput {
  PolicyInputList: [String]!
}

input AwsIAMGetContextKeysForPrincipalPolicyInput {
  PolicySourceArn: String!
  PolicyInputList: [String]
}

type AwsIAMGetCredentialReportOutput {
  Content: JSON
  ReportFormat: String
  GeneratedTime: Date
}

type AwsIAMGetGroupOutput {
  Group: AwsIAMSs!
  Users: [AwsIAMS2d]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMGetGroupInput {
  GroupName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMGetGroupPolicyOutput {
  GroupName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMGetGroupPolicyInput {
  GroupName: String!
  PolicyName: String!
}

type AwsIAMGetInstanceProfileOutput {
  InstanceProfile: AwsIAMS10!
}

input AwsIAMGetInstanceProfileInput {
  InstanceProfileName: String!
}

type AwsIAMGetLoginProfileOutput {
  LoginProfile: AwsIAMS1d!
}

input AwsIAMGetLoginProfileInput {
  UserName: String!
}

type AwsIAMGetOpenIDConnectProviderOutput {
  Url: String
  ClientIDList: [String]
  ThumbprintList: [String]
  CreateDate: Date
  Tags: [AwsIAMSv]
}

input AwsIAMGetOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
}

type AwsIAMGetOrganizationsAccessReportOutput {
  JobStatus: String!
  JobCreationDate: Date!
  JobCompletionDate: Date
  NumberOfServicesAccessible: Int
  NumberOfServicesNotAccessed: Int
  AccessDetails: [AwsIAMGetOrganizationsAccessReportOutputAccessDetails]
  IsTruncated: Boolean
  Marker: String
  ErrorDetails: AwsIAMS5k
}

type AwsIAMGetOrganizationsAccessReportOutputAccessDetails {
  ServiceName: String!
  ServiceNamespace: String!
  Region: String
  EntityPath: String
  LastAuthenticatedTime: Date
  TotalAuthenticatedEntities: Int
}

type AwsIAMS5k {
  Message: String!
  Code: String!
}

input AwsIAMGetOrganizationsAccessReportInput {
  JobId: String!
  MaxItems: Int
  Marker: String
  SortKey: String
}

type AwsIAMGetPolicyOutput {
  Policy: AwsIAMS1p
}

input AwsIAMGetPolicyInput {
  PolicyArn: String!
}

type AwsIAMGetPolicyVersionOutput {
  PolicyVersion: AwsIAMS1u
}

input AwsIAMGetPolicyVersionInput {
  PolicyArn: String!
  VersionId: String!
}

type AwsIAMGetRoleOutput {
  Role: AwsIAMS12!
}

input AwsIAMGetRoleInput {
  RoleName: String!
}

type AwsIAMGetRolePolicyOutput {
  RoleName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMGetRolePolicyInput {
  RoleName: String!
  PolicyName: String!
}

type AwsIAMGetSAMLProviderOutput {
  SAMLMetadataDocument: String
  CreateDate: Date
  ValidUntil: Date
  Tags: [AwsIAMSv]
}

input AwsIAMGetSAMLProviderInput {
  SAMLProviderArn: String!
}

type AwsIAMGetSSHPublicKeyOutput {
  SSHPublicKey: AwsIAMS5y
}

type AwsIAMS5y {
  UserName: String!
  SSHPublicKeyId: String!
  Fingerprint: String!
  SSHPublicKeyBody: String!
  Status: String!
  UploadDate: Date
}

input AwsIAMGetSSHPublicKeyInput {
  UserName: String!
  SSHPublicKeyId: String!
  Encoding: String!
}

type AwsIAMGetServerCertificateOutput {
  ServerCertificate: AwsIAMGetServerCertificateOutputServerCertificate!
}

type AwsIAMGetServerCertificateOutputServerCertificate {
  ServerCertificateMetadata: AwsIAMS64!
  CertificateBody: String!
  CertificateChain: String
  Tags: [AwsIAMSv]
}

type AwsIAMS64 {
  Path: String!
  ServerCertificateName: String!
  ServerCertificateId: String!
  Arn: String!
  UploadDate: Date
  Expiration: Date
}

input AwsIAMGetServerCertificateInput {
  ServerCertificateName: String!
}

type AwsIAMGetServiceLastAccessedDetailsOutput {
  JobStatus: String!
  JobType: String
  JobCreationDate: Date!
  ServicesLastAccessed: [AwsIAMGetServiceLastAccessedDetailsOutputServicesLastAccessed]!
  JobCompletionDate: Date!
  IsTruncated: Boolean
  Marker: String
  Error: AwsIAMS5k
}

type AwsIAMGetServiceLastAccessedDetailsOutputServicesLastAccessed {
  ServiceName: String!
  LastAuthenticated: Date
  ServiceNamespace: String!
  LastAuthenticatedEntity: String
  LastAuthenticatedRegion: String
  TotalAuthenticatedEntities: Int
  TrackedActionsLastAccessed: [AwsIAMGetServiceLastAccessedDetailsOutputServicesLastAccessedTrackedActionsLastAccessed]
}

type AwsIAMGetServiceLastAccessedDetailsOutputServicesLastAccessedTrackedActionsLastAccessed {
  ActionName: String
  LastAccessedEntity: String
  LastAccessedTime: Date
  LastAccessedRegion: String
}

input AwsIAMGetServiceLastAccessedDetailsInput {
  JobId: String!
  MaxItems: Int
  Marker: String
}

type AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutput {
  JobStatus: String!
  JobCreationDate: Date!
  JobCompletionDate: Date!
  EntityDetailsList: [AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutputEntityDetailsList]!
  IsTruncated: Boolean
  Marker: String
  Error: AwsIAMS5k
}

type AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutputEntityDetailsList {
  EntityInfo: AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutputEntityDetailsListEntityInfo!
  LastAuthenticated: Date
}

type AwsIAMGetServiceLastAccessedDetailsWithEntitiesOutputEntityDetailsListEntityInfo {
  Arn: String!
  Name: String!
  Type: String!
  Id: String!
  Path: String
}

input AwsIAMGetServiceLastAccessedDetailsWithEntitiesInput {
  JobId: String!
  ServiceNamespace: String!
  MaxItems: Int
  Marker: String
}

type AwsIAMGetServiceLinkedRoleDeletionStatusOutput {
  Status: String!
  Reason: AwsIAMGetServiceLinkedRoleDeletionStatusOutputReason
}

type AwsIAMGetServiceLinkedRoleDeletionStatusOutputReason {
  Reason: String
  RoleUsageList: [AwsIAMGetServiceLinkedRoleDeletionStatusOutputReasonRoleUsageList]
}

type AwsIAMGetServiceLinkedRoleDeletionStatusOutputReasonRoleUsageList {
  Region: String
  Resources: [String]
}

input AwsIAMGetServiceLinkedRoleDeletionStatusInput {
  DeletionTaskId: String!
}

type AwsIAMGetUserOutput {
  User: AwsIAMS2d!
}

input AwsIAMGetUserInput {
  UserName: String
}

type AwsIAMGetUserPolicyOutput {
  UserName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMGetUserPolicyInput {
  UserName: String!
  PolicyName: String!
}

type AwsIAMListAccessKeysOutput {
  AccessKeyMetadata: [AwsIAMListAccessKeysOutputAccessKeyMetadata]!
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMListAccessKeysOutputAccessKeyMetadata {
  UserName: String
  AccessKeyId: String
  Status: String
  CreateDate: Date
}

input AwsIAMListAccessKeysInput {
  UserName: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListAccountAliasesOutput {
  AccountAliases: [String]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListAccountAliasesInput {
  Marker: String
  MaxItems: Int
}

type AwsIAMListAttachedGroupPoliciesOutput {
  AttachedPolicies: [AwsIAMS46]
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListAttachedGroupPoliciesInput {
  GroupName: String!
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListAttachedRolePoliciesOutput {
  AttachedPolicies: [AwsIAMS46]
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListAttachedRolePoliciesInput {
  RoleName: String!
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListAttachedUserPoliciesOutput {
  AttachedPolicies: [AwsIAMS46]
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListAttachedUserPoliciesInput {
  UserName: String!
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListEntitiesForPolicyOutput {
  PolicyGroups: [AwsIAMListEntitiesForPolicyOutputPolicyGroups]
  PolicyUsers: [AwsIAMListEntitiesForPolicyOutputPolicyUsers]
  PolicyRoles: [AwsIAMListEntitiesForPolicyOutputPolicyRoles]
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMListEntitiesForPolicyOutputPolicyGroups {
  GroupName: String
  GroupId: String
}

type AwsIAMListEntitiesForPolicyOutputPolicyUsers {
  UserName: String
  UserId: String
}

type AwsIAMListEntitiesForPolicyOutputPolicyRoles {
  RoleName: String
  RoleId: String
}

input AwsIAMListEntitiesForPolicyInput {
  PolicyArn: String!
  EntityFilter: String
  PathPrefix: String
  PolicyUsageFilter: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListGroupPoliciesOutput {
  PolicyNames: [String]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListGroupPoliciesInput {
  GroupName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListGroupsOutput {
  Groups: [AwsIAMSs]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListGroupsInput {
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListGroupsForUserOutput {
  Groups: [AwsIAMSs]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListGroupsForUserInput {
  UserName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListInstanceProfileTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListInstanceProfileTagsInput {
  InstanceProfileName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListInstanceProfilesOutput {
  InstanceProfiles: [AwsIAMS10]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListInstanceProfilesInput {
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListInstanceProfilesForRoleOutput {
  InstanceProfiles: [AwsIAMS10]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListInstanceProfilesForRoleInput {
  RoleName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListMFADeviceTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListMFADeviceTagsInput {
  SerialNumber: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListMFADevicesOutput {
  MFADevices: [AwsIAMListMFADevicesOutputMFADevices]!
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMListMFADevicesOutputMFADevices {
  UserName: String!
  SerialNumber: String!
  EnableDate: Date!
}

input AwsIAMListMFADevicesInput {
  UserName: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListOpenIDConnectProviderTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListOpenIDConnectProviderTagsInput {
  OpenIDConnectProviderArn: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListOpenIDConnectProvidersOutput {
  OpenIDConnectProviderList: [AwsIAMListOpenIDConnectProvidersOutputOpenIDConnectProviderList]
}

type AwsIAMListOpenIDConnectProvidersOutputOpenIDConnectProviderList {
  Arn: String
}

type AwsIAMListPoliciesOutput {
  Policies: [AwsIAMS1p]
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListPoliciesInput {
  Scope: String
  OnlyAttached: Boolean
  PathPrefix: String
  PolicyUsageFilter: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListPoliciesGrantingServiceAccessOutput {
  PoliciesGrantingServiceAccess: [AwsIAMListPoliciesGrantingServiceAccessOutputPoliciesGrantingServiceAccess]!
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMListPoliciesGrantingServiceAccessOutputPoliciesGrantingServiceAccess {
  ServiceNamespace: String
  Policies: [AwsIAMListPoliciesGrantingServiceAccessOutputPoliciesGrantingServiceAccessPolicies]
}

type AwsIAMListPoliciesGrantingServiceAccessOutputPoliciesGrantingServiceAccessPolicies {
  PolicyName: String!
  PolicyType: String!
  PolicyArn: String
  EntityType: String
  EntityName: String
}

input AwsIAMListPoliciesGrantingServiceAccessInput {
  Marker: String
  Arn: String!
  ServiceNamespaces: [String]!
}

type AwsIAMListPolicyTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListPolicyTagsInput {
  PolicyArn: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListPolicyVersionsOutput {
  Versions: [AwsIAMS1u]
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListPolicyVersionsInput {
  PolicyArn: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListRolePoliciesOutput {
  PolicyNames: [String]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListRolePoliciesInput {
  RoleName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListRoleTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListRoleTagsInput {
  RoleName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListRolesOutput {
  Roles: [AwsIAMS12]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListRolesInput {
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListSAMLProviderTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListSAMLProviderTagsInput {
  SAMLProviderArn: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListSAMLProvidersOutput {
  SAMLProviderList: [AwsIAMListSAMLProvidersOutputSAMLProviderList]
}

type AwsIAMListSAMLProvidersOutputSAMLProviderList {
  Arn: String
  ValidUntil: Date
  CreateDate: Date
}

type AwsIAMListSSHPublicKeysOutput {
  SSHPublicKeys: [AwsIAMListSSHPublicKeysOutputSSHPublicKeys]
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMListSSHPublicKeysOutputSSHPublicKeys {
  UserName: String!
  SSHPublicKeyId: String!
  Status: String!
  UploadDate: Date!
}

input AwsIAMListSSHPublicKeysInput {
  UserName: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListServerCertificateTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListServerCertificateTagsInput {
  ServerCertificateName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListServerCertificatesOutput {
  ServerCertificateMetadataList: [AwsIAMS64]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListServerCertificatesInput {
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListServiceSpecificCredentialsOutput {
  ServiceSpecificCredentials: [AwsIAMListServiceSpecificCredentialsOutputServiceSpecificCredentials]
}

type AwsIAMListServiceSpecificCredentialsOutputServiceSpecificCredentials {
  UserName: String!
  Status: String!
  ServiceUserName: String!
  CreateDate: Date!
  ServiceSpecificCredentialId: String!
  ServiceName: String!
}

input AwsIAMListServiceSpecificCredentialsInput {
  UserName: String
  ServiceName: String
}

type AwsIAMListSigningCertificatesOutput {
  Certificates: [AwsIAMS9i]!
  IsTruncated: Boolean
  Marker: String
}

type AwsIAMS9i {
  UserName: String!
  CertificateId: String!
  CertificateBody: String!
  Status: String!
  UploadDate: Date
}

input AwsIAMListSigningCertificatesInput {
  UserName: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListUserPoliciesOutput {
  PolicyNames: [String]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListUserPoliciesInput {
  UserName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListUserTagsOutput {
  Tags: [AwsIAMSv]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListUserTagsInput {
  UserName: String!
  Marker: String
  MaxItems: Int
}

type AwsIAMListUsersOutput {
  Users: [AwsIAMS2d]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListUsersInput {
  PathPrefix: String
  Marker: String
  MaxItems: Int
}

type AwsIAMListVirtualMFADevicesOutput {
  VirtualMFADevices: [AwsIAMS2h]!
  IsTruncated: Boolean
  Marker: String
}

input AwsIAMListVirtualMFADevicesInput {
  AssignmentStatus: String
  Marker: String
  MaxItems: Int
}

input AwsIAMPutGroupPolicyInput {
  GroupName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMPutRolePermissionsBoundaryInput {
  RoleName: String!
  PermissionsBoundary: String!
}

input AwsIAMPutRolePolicyInput {
  RoleName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMPutUserPermissionsBoundaryInput {
  UserName: String!
  PermissionsBoundary: String!
}

input AwsIAMPutUserPolicyInput {
  UserName: String!
  PolicyName: String!
  PolicyDocument: String!
}

input AwsIAMRemoveClientIDFromOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
  ClientID: String!
}

input AwsIAMRemoveRoleFromInstanceProfileInput {
  InstanceProfileName: String!
  RoleName: String!
}

input AwsIAMRemoveUserFromGroupInput {
  GroupName: String!
  UserName: String!
}

type AwsIAMResetServiceSpecificCredentialOutput {
  ServiceSpecificCredential: AwsIAMS27
}

input AwsIAMResetServiceSpecificCredentialInput {
  UserName: String
  ServiceSpecificCredentialId: String!
}

input AwsIAMResyncMFADeviceInput {
  UserName: String!
  SerialNumber: String!
  AuthenticationCode1: String!
  AuthenticationCode2: String!
}

input AwsIAMSetDefaultPolicyVersionInput {
  PolicyArn: String!
  VersionId: String!
}

input AwsIAMSetSecurityTokenServicePreferencesInput {
  GlobalEndpointTokenVersion: String!
}

input AwsIAMSimulateCustomPolicyInput {
  PolicyInputList: [String]!
  PermissionsBoundaryPolicyInputList: [String]
  ActionNames: [String]!
  ResourceArns: [String]
  ResourcePolicy: String
  ResourceOwner: String
  CallerArn: String
  ContextEntries: [AwsIAMSacInput]
  ResourceHandlingOption: String
  MaxItems: Int
  Marker: String
}

input AwsIAMSacInput {
  ContextKeyName: String
  ContextKeyValues: [String]
  ContextKeyType: String
}

input AwsIAMSimulatePrincipalPolicyInput {
  PolicySourceArn: String!
  PolicyInputList: [String]
  PermissionsBoundaryPolicyInputList: [String]
  ActionNames: [String]!
  ResourceArns: [String]
  ResourcePolicy: String
  ResourceOwner: String
  CallerArn: String
  ContextEntries: [AwsIAMSacInput]
  ResourceHandlingOption: String
  MaxItems: Int
  Marker: String
}

input AwsIAMTagInstanceProfileInput {
  InstanceProfileName: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagMFADeviceInput {
  SerialNumber: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagPolicyInput {
  PolicyArn: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagRoleInput {
  RoleName: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagSAMLProviderInput {
  SAMLProviderArn: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagServerCertificateInput {
  ServerCertificateName: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMTagUserInput {
  UserName: String!
  Tags: [AwsIAMSvInput]!
}

input AwsIAMUntagInstanceProfileInput {
  InstanceProfileName: String!
  TagKeys: [String]!
}

input AwsIAMUntagMFADeviceInput {
  SerialNumber: String!
  TagKeys: [String]!
}

input AwsIAMUntagOpenIDConnectProviderInput {
  OpenIDConnectProviderArn: String!
  TagKeys: [String]!
}

input AwsIAMUntagPolicyInput {
  PolicyArn: String!
  TagKeys: [String]!
}

input AwsIAMUntagRoleInput {
  RoleName: String!
  TagKeys: [String]!
}

input AwsIAMUntagSAMLProviderInput {
  SAMLProviderArn: String!
  TagKeys: [String]!
}

input AwsIAMUntagServerCertificateInput {
  ServerCertificateName: String!
  TagKeys: [String]!
}

input AwsIAMUntagUserInput {
  UserName: String!
  TagKeys: [String]!
}

input AwsIAMUpdateAccessKeyInput {
  UserName: String
  AccessKeyId: String!
  Status: String!
}

input AwsIAMUpdateAccountPasswordPolicyInput {
  MinimumPasswordLength: Int
  RequireSymbols: Boolean
  RequireNumbers: Boolean
  RequireUppercaseCharacters: Boolean
  RequireLowercaseCharacters: Boolean
  AllowUsersToChangePassword: Boolean
  MaxPasswordAge: Int
  PasswordReusePrevention: Int
  HardExpiry: Boolean
}

input AwsIAMUpdateAssumeRolePolicyInput {
  RoleName: String!
  PolicyDocument: String!
}

input AwsIAMUpdateGroupInput {
  GroupName: String!
  NewPath: String
  NewGroupName: String
}

input AwsIAMUpdateLoginProfileInput {
  UserName: String!
  Password: String
  PasswordResetRequired: Boolean
}

input AwsIAMUpdateOpenIDConnectProviderThumbprintInput {
  OpenIDConnectProviderArn: String!
  ThumbprintList: [String]!
}

input AwsIAMUpdateRoleInput {
  RoleName: String!
  Description: String
  MaxSessionDuration: Int
}

type AwsIAMUpdateRoleDescriptionOutput {
  Role: AwsIAMS12
}

input AwsIAMUpdateRoleDescriptionInput {
  RoleName: String!
  Description: String!
}

type AwsIAMUpdateSAMLProviderOutput {
  SAMLProviderArn: String
}

input AwsIAMUpdateSAMLProviderInput {
  SAMLMetadataDocument: String!
  SAMLProviderArn: String!
}

input AwsIAMUpdateSSHPublicKeyInput {
  UserName: String!
  SSHPublicKeyId: String!
  Status: String!
}

input AwsIAMUpdateServerCertificateInput {
  ServerCertificateName: String!
  NewPath: String
  NewServerCertificateName: String
}

input AwsIAMUpdateServiceSpecificCredentialInput {
  UserName: String
  ServiceSpecificCredentialId: String!
  Status: String!
}

input AwsIAMUpdateSigningCertificateInput {
  UserName: String
  CertificateId: String!
  Status: String!
}

input AwsIAMUpdateUserInput {
  UserName: String!
  NewPath: String
  NewUserName: String
}

type AwsIAMUploadSSHPublicKeyOutput {
  SSHPublicKey: AwsIAMS5y
}

input AwsIAMUploadSSHPublicKeyInput {
  UserName: String!
  SSHPublicKeyBody: String!
}

type AwsIAMUploadServerCertificateOutput {
  ServerCertificateMetadata: AwsIAMS64
  Tags: [AwsIAMSv]
}

input AwsIAMUploadServerCertificateInput {
  Path: String
  ServerCertificateName: String!
  CertificateBody: String!
  PrivateKey: String!
  CertificateChain: String
  Tags: [AwsIAMSvInput]
}

type AwsIAMUploadSigningCertificateOutput {
  Certificate: AwsIAMS9i!
}

input AwsIAMUploadSigningCertificateInput {
  UserName: String
  CertificateBody: String!
}

"""Amazon Interactive Video Service (2020-07-14)"""
type AwsIVS {
  batchGetChannel(input: AwsIVSBatchGetChannelInput!, config: AwsConfig): AwsIVSBatchGetChannelOutput
  batchGetStreamKey(input: AwsIVSBatchGetStreamKeyInput!, config: AwsConfig): AwsIVSBatchGetStreamKeyOutput
  createChannel(input: AwsIVSCreateChannelInput, config: AwsConfig): AwsIVSCreateChannelOutput
  createRecordingConfiguration(input: AwsIVSCreateRecordingConfigurationInput!, config: AwsConfig): AwsIVSCreateRecordingConfigurationOutput
  createStreamKey(input: AwsIVSCreateStreamKeyInput!, config: AwsConfig): AwsIVSCreateStreamKeyOutput
  deleteChannel(input: AwsIVSDeleteChannelInput!, config: AwsConfig): JSON
  deletePlaybackKeyPair(input: AwsIVSDeletePlaybackKeyPairInput!, config: AwsConfig): JSON
  deleteRecordingConfiguration(input: AwsIVSDeleteRecordingConfigurationInput!, config: AwsConfig): JSON
  deleteStreamKey(input: AwsIVSDeleteStreamKeyInput!, config: AwsConfig): JSON
  getChannel(input: AwsIVSGetChannelInput!, config: AwsConfig): AwsIVSGetChannelOutput
  getPlaybackKeyPair(input: AwsIVSGetPlaybackKeyPairInput!, config: AwsConfig): AwsIVSGetPlaybackKeyPairOutput
  getRecordingConfiguration(input: AwsIVSGetRecordingConfigurationInput!, config: AwsConfig): AwsIVSGetRecordingConfigurationOutput
  getStream(input: AwsIVSGetStreamInput!, config: AwsConfig): AwsIVSGetStreamOutput
  getStreamKey(input: AwsIVSGetStreamKeyInput!, config: AwsConfig): AwsIVSGetStreamKeyOutput
  importPlaybackKeyPair(input: AwsIVSImportPlaybackKeyPairInput!, config: AwsConfig): AwsIVSImportPlaybackKeyPairOutput
  listChannels(input: AwsIVSListChannelsInput, config: AwsConfig): AwsIVSListChannelsOutput
  listPlaybackKeyPairs(input: AwsIVSListPlaybackKeyPairsInput, config: AwsConfig): AwsIVSListPlaybackKeyPairsOutput
  listRecordingConfigurations(input: AwsIVSListRecordingConfigurationsInput, config: AwsConfig): AwsIVSListRecordingConfigurationsOutput
  listStreamKeys(input: AwsIVSListStreamKeysInput!, config: AwsConfig): AwsIVSListStreamKeysOutput
  listStreams(input: AwsIVSListStreamsInput, config: AwsConfig): AwsIVSListStreamsOutput
  listTagsForResource(input: AwsIVSListTagsForResourceInput!, config: AwsConfig): AwsIVSListTagsForResourceOutput
  putMetadata(input: AwsIVSPutMetadataInput!, config: AwsConfig): JSON
  stopStream(input: AwsIVSStopStreamInput!, config: AwsConfig): JSON
  tagResource(input: AwsIVSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIVSUntagResourceInput!, config: AwsConfig): JSON
  updateChannel(input: AwsIVSUpdateChannelInput!, config: AwsConfig): AwsIVSUpdateChannelOutput
}

type AwsIVSBatchGetChannelOutput {
  channels: [AwsIVSS6]
  errors: [AwsIVSSh]
}

type AwsIVSS6 {
  arn: String
  name: String
  latencyMode: String
  type: String
  recordingConfigurationArn: String
  ingestEndpoint: String
  playbackUrl: String
  authorized: Boolean
  tags: JSON
}

type AwsIVSSh {
  arn: String
  code: String
  message: String
}

input AwsIVSBatchGetChannelInput {
  arns: [String]!
}

type AwsIVSBatchGetStreamKeyOutput {
  streamKeys: [AwsIVSSr]
  errors: [AwsIVSSh]
}

type AwsIVSSr {
  arn: String
  value: String
  channelArn: String
  tags: JSON
}

input AwsIVSBatchGetStreamKeyInput {
  arns: [String]!
}

type AwsIVSCreateChannelOutput {
  channel: AwsIVSS6
  streamKey: AwsIVSSr
}

input AwsIVSCreateChannelInput {
  name: String
  latencyMode: String
  type: String
  authorized: Boolean
  recordingConfigurationArn: String
  tags: JSON
}

type AwsIVSCreateRecordingConfigurationOutput {
  recordingConfiguration: AwsIVSS12
}

type AwsIVSS12 {
  arn: String!
  name: String
  destinationConfiguration: AwsIVSSy!
  state: String!
  tags: JSON
}

type AwsIVSSy {
  s3: AwsIVSSyS3
}

type AwsIVSSyS3 {
  bucketName: String!
}

input AwsIVSCreateRecordingConfigurationInput {
  name: String
  destinationConfiguration: AwsIVSSyInput!
  tags: JSON
}

input AwsIVSSyInput {
  s3: AwsIVSSyS3Input
}

input AwsIVSSyS3Input {
  bucketName: String!
}

type AwsIVSCreateStreamKeyOutput {
  streamKey: AwsIVSSr
}

input AwsIVSCreateStreamKeyInput {
  channelArn: String!
  tags: JSON
}

input AwsIVSDeleteChannelInput {
  arn: String!
}

input AwsIVSDeletePlaybackKeyPairInput {
  arn: String!
}

input AwsIVSDeleteRecordingConfigurationInput {
  arn: String!
}

input AwsIVSDeleteStreamKeyInput {
  arn: String!
}

type AwsIVSGetChannelOutput {
  channel: AwsIVSS6
}

input AwsIVSGetChannelInput {
  arn: String!
}

type AwsIVSGetPlaybackKeyPairOutput {
  keyPair: AwsIVSS1h
}

type AwsIVSS1h {
  arn: String
  name: String
  fingerprint: String
  tags: JSON
}

input AwsIVSGetPlaybackKeyPairInput {
  arn: String!
}

type AwsIVSGetRecordingConfigurationOutput {
  recordingConfiguration: AwsIVSS12
}

input AwsIVSGetRecordingConfigurationInput {
  arn: String!
}

type AwsIVSGetStreamOutput {
  stream: AwsIVSGetStreamOutputStream
}

type AwsIVSGetStreamOutputStream {
  channelArn: String
  playbackUrl: String
  startTime: Date
  state: String
  health: String
  viewerCount: JSON
}

input AwsIVSGetStreamInput {
  channelArn: String!
}

type AwsIVSGetStreamKeyOutput {
  streamKey: AwsIVSSr
}

input AwsIVSGetStreamKeyInput {
  arn: String!
}

type AwsIVSImportPlaybackKeyPairOutput {
  keyPair: AwsIVSS1h
}

input AwsIVSImportPlaybackKeyPairInput {
  publicKeyMaterial: String!
  name: String
  tags: JSON
}

type AwsIVSListChannelsOutput {
  channels: [AwsIVSListChannelsOutputChannels]!
  nextToken: String
}

type AwsIVSListChannelsOutputChannels {
  arn: String
  name: String
  latencyMode: String
  authorized: Boolean
  recordingConfigurationArn: String
  tags: JSON
}

input AwsIVSListChannelsInput {
  filterByName: String
  filterByRecordingConfigurationArn: String
  nextToken: String
  maxResults: Int
}

type AwsIVSListPlaybackKeyPairsOutput {
  keyPairs: [AwsIVSListPlaybackKeyPairsOutputKeyPairs]!
  nextToken: String
}

type AwsIVSListPlaybackKeyPairsOutputKeyPairs {
  arn: String
  name: String
  tags: JSON
}

input AwsIVSListPlaybackKeyPairsInput {
  nextToken: String
  maxResults: Int
}

type AwsIVSListRecordingConfigurationsOutput {
  recordingConfigurations: [AwsIVSListRecordingConfigurationsOutputRecordingConfigurations]!
  nextToken: String
}

type AwsIVSListRecordingConfigurationsOutputRecordingConfigurations {
  arn: String!
  name: String
  destinationConfiguration: AwsIVSSy!
  state: String!
  tags: JSON
}

input AwsIVSListRecordingConfigurationsInput {
  nextToken: String
  maxResults: Int
}

type AwsIVSListStreamKeysOutput {
  streamKeys: [AwsIVSListStreamKeysOutputStreamKeys]!
  nextToken: String
}

type AwsIVSListStreamKeysOutputStreamKeys {
  arn: String
  channelArn: String
  tags: JSON
}

input AwsIVSListStreamKeysInput {
  channelArn: String!
  nextToken: String
  maxResults: Int
}

type AwsIVSListStreamsOutput {
  streams: [AwsIVSListStreamsOutputStreams]!
  nextToken: String
}

type AwsIVSListStreamsOutputStreams {
  channelArn: String
  state: String
  health: String
  viewerCount: JSON
  startTime: Date
}

input AwsIVSListStreamsInput {
  nextToken: String
  maxResults: Int
}

type AwsIVSListTagsForResourceOutput {
  tags: JSON!
  nextToken: String
}

input AwsIVSListTagsForResourceInput {
  resourceArn: String!
  nextToken: String
  maxResults: Int
}

input AwsIVSPutMetadataInput {
  channelArn: String!
  metadata: String!
}

input AwsIVSStopStreamInput {
  channelArn: String!
}

input AwsIVSTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsIVSUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsIVSUpdateChannelOutput {
  channel: AwsIVSS6
}

input AwsIVSUpdateChannelInput {
  arn: String!
  name: String
  latencyMode: String
  type: String
  authorized: Boolean
  recordingConfigurationArn: String
}

"""AWS SSO Identity Store (2020-06-15)"""
type AwsIdentityStore {
  describeGroup(input: AwsIdentityStoreDescribeGroupInput!, config: AwsConfig): AwsIdentityStoreDescribeGroupOutput
  describeUser(input: AwsIdentityStoreDescribeUserInput!, config: AwsConfig): AwsIdentityStoreDescribeUserOutput
  listGroups(input: AwsIdentityStoreListGroupsInput!, config: AwsConfig): AwsIdentityStoreListGroupsOutput
  listUsers(input: AwsIdentityStoreListUsersInput!, config: AwsConfig): AwsIdentityStoreListUsersOutput
}

type AwsIdentityStoreDescribeGroupOutput {
  GroupId: String!
  DisplayName: String!
}

input AwsIdentityStoreDescribeGroupInput {
  IdentityStoreId: String!
  GroupId: String!
}

type AwsIdentityStoreDescribeUserOutput {
  UserName: String!
  UserId: String!
}

input AwsIdentityStoreDescribeUserInput {
  IdentityStoreId: String!
  UserId: String!
}

type AwsIdentityStoreListGroupsOutput {
  Groups: [AwsIdentityStoreListGroupsOutputGroups]!
  NextToken: String
}

type AwsIdentityStoreListGroupsOutputGroups {
  GroupId: String!
  DisplayName: String!
}

input AwsIdentityStoreListGroupsInput {
  IdentityStoreId: String!
  MaxResults: Int
  NextToken: String
  Filters: [AwsIdentityStoreScInput]
}

input AwsIdentityStoreScInput {
  AttributePath: String!
  AttributeValue: String!
}

type AwsIdentityStoreListUsersOutput {
  Users: [AwsIdentityStoreListUsersOutputUsers]!
  NextToken: String
}

type AwsIdentityStoreListUsersOutputUsers {
  UserName: String!
  UserId: String!
}

input AwsIdentityStoreListUsersInput {
  IdentityStoreId: String!
  MaxResults: Int
  NextToken: String
  Filters: [AwsIdentityStoreScInput]
}

"""EC2 Image Builder (2019-12-02)"""
type AwsImagebuilder {
  cancelImageCreation(input: AwsImagebuilderCancelImageCreationInput!, config: AwsConfig): AwsImagebuilderCancelImageCreationOutput
  createComponent(input: AwsImagebuilderCreateComponentInput!, config: AwsConfig): AwsImagebuilderCreateComponentOutput
  createContainerRecipe(input: AwsImagebuilderCreateContainerRecipeInput!, config: AwsConfig): AwsImagebuilderCreateContainerRecipeOutput
  createDistributionConfiguration(input: AwsImagebuilderCreateDistributionConfigurationInput!, config: AwsConfig): AwsImagebuilderCreateDistributionConfigurationOutput
  createImage(input: AwsImagebuilderCreateImageInput!, config: AwsConfig): AwsImagebuilderCreateImageOutput
  createImagePipeline(input: AwsImagebuilderCreateImagePipelineInput!, config: AwsConfig): AwsImagebuilderCreateImagePipelineOutput
  createImageRecipe(input: AwsImagebuilderCreateImageRecipeInput!, config: AwsConfig): AwsImagebuilderCreateImageRecipeOutput
  createInfrastructureConfiguration(input: AwsImagebuilderCreateInfrastructureConfigurationInput!, config: AwsConfig): AwsImagebuilderCreateInfrastructureConfigurationOutput
  deleteComponent(input: AwsImagebuilderDeleteComponentInput!, config: AwsConfig): AwsImagebuilderDeleteComponentOutput
  deleteContainerRecipe(input: AwsImagebuilderDeleteContainerRecipeInput!, config: AwsConfig): AwsImagebuilderDeleteContainerRecipeOutput
  deleteDistributionConfiguration(input: AwsImagebuilderDeleteDistributionConfigurationInput!, config: AwsConfig): AwsImagebuilderDeleteDistributionConfigurationOutput
  deleteImage(input: AwsImagebuilderDeleteImageInput!, config: AwsConfig): AwsImagebuilderDeleteImageOutput
  deleteImagePipeline(input: AwsImagebuilderDeleteImagePipelineInput!, config: AwsConfig): AwsImagebuilderDeleteImagePipelineOutput
  deleteImageRecipe(input: AwsImagebuilderDeleteImageRecipeInput!, config: AwsConfig): AwsImagebuilderDeleteImageRecipeOutput
  deleteInfrastructureConfiguration(input: AwsImagebuilderDeleteInfrastructureConfigurationInput!, config: AwsConfig): AwsImagebuilderDeleteInfrastructureConfigurationOutput
  getComponent(input: AwsImagebuilderGetComponentInput!, config: AwsConfig): AwsImagebuilderGetComponentOutput
  getComponentPolicy(input: AwsImagebuilderGetComponentPolicyInput!, config: AwsConfig): AwsImagebuilderGetComponentPolicyOutput
  getContainerRecipe(input: AwsImagebuilderGetContainerRecipeInput!, config: AwsConfig): AwsImagebuilderGetContainerRecipeOutput
  getContainerRecipePolicy(input: AwsImagebuilderGetContainerRecipePolicyInput!, config: AwsConfig): AwsImagebuilderGetContainerRecipePolicyOutput
  getDistributionConfiguration(input: AwsImagebuilderGetDistributionConfigurationInput!, config: AwsConfig): AwsImagebuilderGetDistributionConfigurationOutput
  getImage(input: AwsImagebuilderGetImageInput!, config: AwsConfig): AwsImagebuilderGetImageOutput
  getImagePipeline(input: AwsImagebuilderGetImagePipelineInput!, config: AwsConfig): AwsImagebuilderGetImagePipelineOutput
  getImagePolicy(input: AwsImagebuilderGetImagePolicyInput!, config: AwsConfig): AwsImagebuilderGetImagePolicyOutput
  getImageRecipe(input: AwsImagebuilderGetImageRecipeInput!, config: AwsConfig): AwsImagebuilderGetImageRecipeOutput
  getImageRecipePolicy(input: AwsImagebuilderGetImageRecipePolicyInput!, config: AwsConfig): AwsImagebuilderGetImageRecipePolicyOutput
  getInfrastructureConfiguration(input: AwsImagebuilderGetInfrastructureConfigurationInput!, config: AwsConfig): AwsImagebuilderGetInfrastructureConfigurationOutput
  importComponent(input: AwsImagebuilderImportComponentInput!, config: AwsConfig): AwsImagebuilderImportComponentOutput
  listComponentBuildVersions(input: AwsImagebuilderListComponentBuildVersionsInput!, config: AwsConfig): AwsImagebuilderListComponentBuildVersionsOutput
  listComponents(input: AwsImagebuilderListComponentsInput, config: AwsConfig): AwsImagebuilderListComponentsOutput
  listContainerRecipes(input: AwsImagebuilderListContainerRecipesInput, config: AwsConfig): AwsImagebuilderListContainerRecipesOutput
  listDistributionConfigurations(input: AwsImagebuilderListDistributionConfigurationsInput, config: AwsConfig): AwsImagebuilderListDistributionConfigurationsOutput
  listImageBuildVersions(input: AwsImagebuilderListImageBuildVersionsInput!, config: AwsConfig): AwsImagebuilderListImageBuildVersionsOutput
  listImagePackages(input: AwsImagebuilderListImagePackagesInput!, config: AwsConfig): AwsImagebuilderListImagePackagesOutput
  listImagePipelineImages(input: AwsImagebuilderListImagePipelineImagesInput!, config: AwsConfig): AwsImagebuilderListImagePipelineImagesOutput
  listImagePipelines(input: AwsImagebuilderListImagePipelinesInput, config: AwsConfig): AwsImagebuilderListImagePipelinesOutput
  listImageRecipes(input: AwsImagebuilderListImageRecipesInput, config: AwsConfig): AwsImagebuilderListImageRecipesOutput
  listImages(input: AwsImagebuilderListImagesInput, config: AwsConfig): AwsImagebuilderListImagesOutput
  listInfrastructureConfigurations(input: AwsImagebuilderListInfrastructureConfigurationsInput, config: AwsConfig): AwsImagebuilderListInfrastructureConfigurationsOutput
  listTagsForResource(input: AwsImagebuilderListTagsForResourceInput!, config: AwsConfig): AwsImagebuilderListTagsForResourceOutput
  putComponentPolicy(input: AwsImagebuilderPutComponentPolicyInput!, config: AwsConfig): AwsImagebuilderPutComponentPolicyOutput
  putContainerRecipePolicy(input: AwsImagebuilderPutContainerRecipePolicyInput!, config: AwsConfig): AwsImagebuilderPutContainerRecipePolicyOutput
  putImagePolicy(input: AwsImagebuilderPutImagePolicyInput!, config: AwsConfig): AwsImagebuilderPutImagePolicyOutput
  putImageRecipePolicy(input: AwsImagebuilderPutImageRecipePolicyInput!, config: AwsConfig): AwsImagebuilderPutImageRecipePolicyOutput
  startImagePipelineExecution(input: AwsImagebuilderStartImagePipelineExecutionInput!, config: AwsConfig): AwsImagebuilderStartImagePipelineExecutionOutput
  tagResource(input: AwsImagebuilderTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsImagebuilderUntagResourceInput!, config: AwsConfig): JSON
  updateDistributionConfiguration(input: AwsImagebuilderUpdateDistributionConfigurationInput!, config: AwsConfig): AwsImagebuilderUpdateDistributionConfigurationOutput
  updateImagePipeline(input: AwsImagebuilderUpdateImagePipelineInput!, config: AwsConfig): AwsImagebuilderUpdateImagePipelineOutput
  updateInfrastructureConfiguration(input: AwsImagebuilderUpdateInfrastructureConfigurationInput!, config: AwsConfig): AwsImagebuilderUpdateInfrastructureConfigurationOutput
}

type AwsImagebuilderCancelImageCreationOutput {
  requestId: String
  clientToken: String
  imageBuildVersionArn: String
}

input AwsImagebuilderCancelImageCreationInput {
  imageBuildVersionArn: String!
  clientToken: String!
}

type AwsImagebuilderCreateComponentOutput {
  requestId: String
  clientToken: String
  componentBuildVersionArn: String
}

input AwsImagebuilderCreateComponentInput {
  name: String!
  semanticVersion: String!
  description: String
  changeDescription: String
  platform: String!
  supportedOsVersions: [String]
  data: String
  uri: String
  kmsKeyId: String
  tags: JSON
  clientToken: String!
}

type AwsImagebuilderCreateContainerRecipeOutput {
  requestId: String
  clientToken: String
  containerRecipeArn: String
}

input AwsImagebuilderCreateContainerRecipeInput {
  containerType: String!
  name: String!
  description: String
  semanticVersion: String!
  components: [AwsImagebuilderSlInput]!
  instanceConfiguration: AwsImagebuilderSoInput
  dockerfileTemplateData: String
  dockerfileTemplateUri: String
  platformOverride: String
  imageOsVersionOverride: String
  parentImage: String!
  tags: JSON
  workingDirectory: String
  targetRepository: AwsImagebuilderSyInput!
  kmsKeyId: String
  clientToken: String!
}

input AwsImagebuilderSlInput {
  componentArn: String!
}

input AwsImagebuilderSoInput {
  image: String
  blockDeviceMappings: [AwsImagebuilderSpInput]
}

input AwsImagebuilderSpInput {
  deviceName: String
  ebs: AwsImagebuilderSpEbsInput
  virtualName: String
  noDevice: String
}

input AwsImagebuilderSpEbsInput {
  encrypted: Boolean
  deleteOnTermination: Boolean
  iops: Int
  kmsKeyId: String
  snapshotId: String
  volumeSize: Int
  volumeType: String
}

input AwsImagebuilderSyInput {
  service: String!
  repositoryName: String!
}

type AwsImagebuilderCreateDistributionConfigurationOutput {
  requestId: String
  clientToken: String
  distributionConfigurationArn: String
}

input AwsImagebuilderCreateDistributionConfigurationInput {
  name: String!
  description: String
  distributions: [AwsImagebuilderS13Input]!
  tags: JSON
  clientToken: String!
}

input AwsImagebuilderS13Input {
  region: String!
  amiDistributionConfiguration: AwsImagebuilderS13AmiDistributionConfigurationInput
  containerDistributionConfiguration: AwsImagebuilderS13ContainerDistributionConfigurationInput
  licenseConfigurationArns: [String]
  launchTemplateConfigurations: [AwsImagebuilderS13LaunchTemplateConfigurationsInput]
}

input AwsImagebuilderS13AmiDistributionConfigurationInput {
  name: String
  description: String
  targetAccountIds: [String]
  amiTags: JSON
  kmsKeyId: String
  launchPermission: AwsImagebuilderS13AmiDistributionConfigurationLaunchPermissionInput
}

input AwsImagebuilderS13AmiDistributionConfigurationLaunchPermissionInput {
  userIds: [String]
  userGroups: [String]
}

input AwsImagebuilderS13ContainerDistributionConfigurationInput {
  description: String
  containerTags: [String]
  targetRepository: AwsImagebuilderSyInput!
}

input AwsImagebuilderS13LaunchTemplateConfigurationsInput {
  launchTemplateId: String!
  accountId: String
  setDefaultVersion: Boolean
}

type AwsImagebuilderCreateImageOutput {
  requestId: String
  clientToken: String
  imageBuildVersionArn: String
}

input AwsImagebuilderCreateImageInput {
  imageRecipeArn: String
  containerRecipeArn: String
  distributionConfigurationArn: String
  infrastructureConfigurationArn: String!
  imageTestsConfiguration: AwsImagebuilderS1nInput
  enhancedImageMetadataEnabled: Boolean
  tags: JSON
  clientToken: String!
}

input AwsImagebuilderS1nInput {
  imageTestsEnabled: Boolean
  timeoutMinutes: Int
}

type AwsImagebuilderCreateImagePipelineOutput {
  requestId: String
  clientToken: String
  imagePipelineArn: String
}

input AwsImagebuilderCreateImagePipelineInput {
  name: String!
  description: String
  imageRecipeArn: String
  containerRecipeArn: String
  infrastructureConfigurationArn: String!
  distributionConfigurationArn: String
  imageTestsConfiguration: AwsImagebuilderS1nInput
  enhancedImageMetadataEnabled: Boolean
  schedule: AwsImagebuilderS1rInput
  status: String
  tags: JSON
  clientToken: String!
}

input AwsImagebuilderS1rInput {
  scheduleExpression: String
  timezone: String
  pipelineExecutionStartCondition: String
}

type AwsImagebuilderCreateImageRecipeOutput {
  requestId: String
  clientToken: String
  imageRecipeArn: String
}

input AwsImagebuilderCreateImageRecipeInput {
  name: String!
  description: String
  semanticVersion: String!
  components: [AwsImagebuilderSlInput]!
  parentImage: String!
  blockDeviceMappings: [AwsImagebuilderSpInput]
  tags: JSON
  workingDirectory: String
  clientToken: String!
}

type AwsImagebuilderCreateInfrastructureConfigurationOutput {
  requestId: String
  clientToken: String
  infrastructureConfigurationArn: String
}

input AwsImagebuilderCreateInfrastructureConfigurationInput {
  name: String!
  description: String
  instanceTypes: [String]
  instanceProfileName: String!
  securityGroupIds: [String]
  subnetId: String
  logging: AwsImagebuilderS24Input
  keyPair: String
  terminateInstanceOnFailure: Boolean
  snsTopicArn: String
  resourceTags: JSON
  tags: JSON
  clientToken: String!
}

input AwsImagebuilderS24Input {
  s3Logs: AwsImagebuilderS24S3LogsInput
}

input AwsImagebuilderS24S3LogsInput {
  s3BucketName: String
  s3KeyPrefix: String
}

type AwsImagebuilderDeleteComponentOutput {
  requestId: String
  componentBuildVersionArn: String
}

input AwsImagebuilderDeleteComponentInput {
  componentBuildVersionArn: String!
}

type AwsImagebuilderDeleteContainerRecipeOutput {
  requestId: String
  containerRecipeArn: String
}

input AwsImagebuilderDeleteContainerRecipeInput {
  containerRecipeArn: String!
}

type AwsImagebuilderDeleteDistributionConfigurationOutput {
  requestId: String
  distributionConfigurationArn: String
}

input AwsImagebuilderDeleteDistributionConfigurationInput {
  distributionConfigurationArn: String!
}

type AwsImagebuilderDeleteImageOutput {
  requestId: String
  imageBuildVersionArn: String
}

input AwsImagebuilderDeleteImageInput {
  imageBuildVersionArn: String!
}

type AwsImagebuilderDeleteImagePipelineOutput {
  requestId: String
  imagePipelineArn: String
}

input AwsImagebuilderDeleteImagePipelineInput {
  imagePipelineArn: String!
}

type AwsImagebuilderDeleteImageRecipeOutput {
  requestId: String
  imageRecipeArn: String
}

input AwsImagebuilderDeleteImageRecipeInput {
  imageRecipeArn: String!
}

type AwsImagebuilderDeleteInfrastructureConfigurationOutput {
  requestId: String
  infrastructureConfigurationArn: String
}

input AwsImagebuilderDeleteInfrastructureConfigurationInput {
  infrastructureConfigurationArn: String!
}

type AwsImagebuilderGetComponentOutput {
  requestId: String
  component: AwsImagebuilderGetComponentOutputComponent
}

type AwsImagebuilderGetComponentOutputComponent {
  arn: String
  name: String
  version: String
  description: String
  changeDescription: String
  type: String
  platform: String
  supportedOsVersions: [String]
  owner: String
  data: String
  kmsKeyId: String
  encrypted: Boolean
  dateCreated: String
  tags: JSON
}

input AwsImagebuilderGetComponentInput {
  componentBuildVersionArn: String!
}

type AwsImagebuilderGetComponentPolicyOutput {
  requestId: String
  policy: String
}

input AwsImagebuilderGetComponentPolicyInput {
  componentArn: String!
}

type AwsImagebuilderGetContainerRecipeOutput {
  requestId: String
  containerRecipe: AwsImagebuilderS2z
}

type AwsImagebuilderS2z {
  arn: String
  containerType: String
  name: String
  description: String
  platform: String
  owner: String
  version: String
  components: [AwsImagebuilderSl]
  instanceConfiguration: AwsImagebuilderSo
  dockerfileTemplateData: String
  kmsKeyId: String
  encrypted: Boolean
  parentImage: String
  dateCreated: String
  tags: JSON
  workingDirectory: String
  targetRepository: AwsImagebuilderSy
}

type AwsImagebuilderSl {
  componentArn: String!
}

type AwsImagebuilderSo {
  image: String
  blockDeviceMappings: [AwsImagebuilderSp]
}

type AwsImagebuilderSp {
  deviceName: String
  ebs: AwsImagebuilderSpEbs
  virtualName: String
  noDevice: String
}

type AwsImagebuilderSpEbs {
  encrypted: Boolean
  deleteOnTermination: Boolean
  iops: Int
  kmsKeyId: String
  snapshotId: String
  volumeSize: Int
  volumeType: String
}

type AwsImagebuilderSy {
  service: String!
  repositoryName: String!
}

input AwsImagebuilderGetContainerRecipeInput {
  containerRecipeArn: String!
}

type AwsImagebuilderGetContainerRecipePolicyOutput {
  requestId: String
  policy: String
}

input AwsImagebuilderGetContainerRecipePolicyInput {
  containerRecipeArn: String!
}

type AwsImagebuilderGetDistributionConfigurationOutput {
  requestId: String
  distributionConfiguration: AwsImagebuilderS35
}

type AwsImagebuilderS35 {
  arn: String
  name: String
  description: String
  distributions: [AwsImagebuilderS13]
  timeoutMinutes: Int!
  dateCreated: String
  dateUpdated: String
  tags: JSON
}

type AwsImagebuilderS13 {
  region: String!
  amiDistributionConfiguration: AwsImagebuilderS13AmiDistributionConfiguration
  containerDistributionConfiguration: AwsImagebuilderS13ContainerDistributionConfiguration
  licenseConfigurationArns: [String]
  launchTemplateConfigurations: [AwsImagebuilderS13LaunchTemplateConfigurations]
}

type AwsImagebuilderS13AmiDistributionConfiguration {
  name: String
  description: String
  targetAccountIds: [String]
  amiTags: JSON
  kmsKeyId: String
  launchPermission: AwsImagebuilderS13AmiDistributionConfigurationLaunchPermission
}

type AwsImagebuilderS13AmiDistributionConfigurationLaunchPermission {
  userIds: [String]
  userGroups: [String]
}

type AwsImagebuilderS13ContainerDistributionConfiguration {
  description: String
  containerTags: [String]
  targetRepository: AwsImagebuilderSy!
}

type AwsImagebuilderS13LaunchTemplateConfigurations {
  launchTemplateId: String!
  accountId: String
  setDefaultVersion: Boolean
}

input AwsImagebuilderGetDistributionConfigurationInput {
  distributionConfigurationArn: String!
}

type AwsImagebuilderGetImageOutput {
  requestId: String
  image: AwsImagebuilderGetImageOutputImage
}

type AwsImagebuilderGetImageOutputImage {
  arn: String
  type: String
  name: String
  version: String
  platform: String
  enhancedImageMetadataEnabled: Boolean
  osVersion: String
  state: AwsImagebuilderS3c
  imageRecipe: AwsImagebuilderS3e
  containerRecipe: AwsImagebuilderS2z
  sourcePipelineName: String
  sourcePipelineArn: String
  infrastructureConfiguration: AwsImagebuilderS3g
  distributionConfiguration: AwsImagebuilderS35
  imageTestsConfiguration: AwsImagebuilderS1n
  dateCreated: String
  outputResources: AwsImagebuilderS3h
  tags: JSON
}

type AwsImagebuilderS3c {
  status: String
  reason: String
}

type AwsImagebuilderS3e {
  arn: String
  type: String
  name: String
  description: String
  platform: String
  owner: String
  version: String
  components: [AwsImagebuilderSl]
  parentImage: String
  blockDeviceMappings: [AwsImagebuilderSp]
  dateCreated: String
  tags: JSON
  workingDirectory: String
}

type AwsImagebuilderS3g {
  arn: String
  name: String
  description: String
  instanceTypes: [String]
  instanceProfileName: String
  securityGroupIds: [String]
  subnetId: String
  logging: AwsImagebuilderS24
  keyPair: String
  terminateInstanceOnFailure: Boolean
  snsTopicArn: String
  dateCreated: String
  dateUpdated: String
  resourceTags: JSON
  tags: JSON
}

type AwsImagebuilderS24 {
  s3Logs: AwsImagebuilderS24S3Logs
}

type AwsImagebuilderS24S3Logs {
  s3BucketName: String
  s3KeyPrefix: String
}

type AwsImagebuilderS1n {
  imageTestsEnabled: Boolean
  timeoutMinutes: Int
}

type AwsImagebuilderS3h {
  amis: [AwsImagebuilderS3hAmis]
  containers: [AwsImagebuilderS3hContainers]
}

type AwsImagebuilderS3hAmis {
  region: String
  image: String
  name: String
  description: String
  state: AwsImagebuilderS3c
  accountId: String
}

type AwsImagebuilderS3hContainers {
  region: String
  imageUris: [String]
}

input AwsImagebuilderGetImageInput {
  imageBuildVersionArn: String!
}

type AwsImagebuilderGetImagePipelineOutput {
  requestId: String
  imagePipeline: AwsImagebuilderS3o
}

type AwsImagebuilderS3o {
  arn: String
  name: String
  description: String
  platform: String
  enhancedImageMetadataEnabled: Boolean
  imageRecipeArn: String
  containerRecipeArn: String
  infrastructureConfigurationArn: String
  distributionConfigurationArn: String
  imageTestsConfiguration: AwsImagebuilderS1n
  schedule: AwsImagebuilderS1r
  status: String
  dateCreated: String
  dateUpdated: String
  dateLastRun: String
  dateNextRun: String
  tags: JSON
}

type AwsImagebuilderS1r {
  scheduleExpression: String
  timezone: String
  pipelineExecutionStartCondition: String
}

input AwsImagebuilderGetImagePipelineInput {
  imagePipelineArn: String!
}

type AwsImagebuilderGetImagePolicyOutput {
  requestId: String
  policy: String
}

input AwsImagebuilderGetImagePolicyInput {
  imageArn: String!
}

type AwsImagebuilderGetImageRecipeOutput {
  requestId: String
  imageRecipe: AwsImagebuilderS3e
}

input AwsImagebuilderGetImageRecipeInput {
  imageRecipeArn: String!
}

type AwsImagebuilderGetImageRecipePolicyOutput {
  requestId: String
  policy: String
}

input AwsImagebuilderGetImageRecipePolicyInput {
  imageRecipeArn: String!
}

type AwsImagebuilderGetInfrastructureConfigurationOutput {
  requestId: String
  infrastructureConfiguration: AwsImagebuilderS3g
}

input AwsImagebuilderGetInfrastructureConfigurationInput {
  infrastructureConfigurationArn: String!
}

type AwsImagebuilderImportComponentOutput {
  requestId: String
  clientToken: String
  componentBuildVersionArn: String
}

input AwsImagebuilderImportComponentInput {
  name: String!
  semanticVersion: String!
  description: String
  changeDescription: String
  type: String!
  format: String!
  platform: String!
  data: String
  uri: String
  kmsKeyId: String
  tags: JSON
  clientToken: String!
}

type AwsImagebuilderListComponentBuildVersionsOutput {
  requestId: String
  componentSummaryList: [AwsImagebuilderListComponentBuildVersionsOutputComponentSummaryList]
  nextToken: String
}

type AwsImagebuilderListComponentBuildVersionsOutputComponentSummaryList {
  arn: String
  name: String
  version: String
  platform: String
  supportedOsVersions: [String]
  type: String
  owner: String
  description: String
  changeDescription: String
  dateCreated: String
  tags: JSON
}

input AwsImagebuilderListComponentBuildVersionsInput {
  componentVersionArn: String!
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListComponentsOutput {
  requestId: String
  componentVersionList: [AwsImagebuilderListComponentsOutputComponentVersionList]
  nextToken: String
}

type AwsImagebuilderListComponentsOutputComponentVersionList {
  arn: String
  name: String
  version: String
  description: String
  platform: String
  supportedOsVersions: [String]
  type: String
  owner: String
  dateCreated: String
}

input AwsImagebuilderListComponentsInput {
  owner: String
  filters: [AwsImagebuilderS49Input]
  byName: Boolean
  maxResults: Int
  nextToken: String
}

input AwsImagebuilderS49Input {
  name: String
  values: [String]
}

type AwsImagebuilderListContainerRecipesOutput {
  requestId: String
  containerRecipeSummaryList: [AwsImagebuilderListContainerRecipesOutputContainerRecipeSummaryList]
  nextToken: String
}

type AwsImagebuilderListContainerRecipesOutputContainerRecipeSummaryList {
  arn: String
  containerType: String
  name: String
  platform: String
  owner: String
  parentImage: String
  dateCreated: String
  tags: JSON
}

input AwsImagebuilderListContainerRecipesInput {
  owner: String
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListDistributionConfigurationsOutput {
  requestId: String
  distributionConfigurationSummaryList: [AwsImagebuilderListDistributionConfigurationsOutputDistributionConfigurationSummaryList]
  nextToken: String
}

type AwsImagebuilderListDistributionConfigurationsOutputDistributionConfigurationSummaryList {
  arn: String
  name: String
  description: String
  dateCreated: String
  dateUpdated: String
  tags: JSON
  regions: [String]
}

input AwsImagebuilderListDistributionConfigurationsInput {
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImageBuildVersionsOutput {
  requestId: String
  imageSummaryList: [AwsImagebuilderS4t]
  nextToken: String
}

type AwsImagebuilderS4t {
  arn: String
  name: String
  type: String
  version: String
  platform: String
  osVersion: String
  state: AwsImagebuilderS3c
  owner: String
  dateCreated: String
  outputResources: AwsImagebuilderS3h
  tags: JSON
}

input AwsImagebuilderListImageBuildVersionsInput {
  imageVersionArn: String!
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImagePackagesOutput {
  requestId: String
  imagePackageList: [AwsImagebuilderListImagePackagesOutputImagePackageList]
  nextToken: String
}

type AwsImagebuilderListImagePackagesOutputImagePackageList {
  packageName: String
  packageVersion: String
}

input AwsImagebuilderListImagePackagesInput {
  imageBuildVersionArn: String!
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImagePipelineImagesOutput {
  requestId: String
  imageSummaryList: [AwsImagebuilderS4t]
  nextToken: String
}

input AwsImagebuilderListImagePipelineImagesInput {
  imagePipelineArn: String!
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImagePipelinesOutput {
  requestId: String
  imagePipelineList: [AwsImagebuilderS3o]
  nextToken: String
}

input AwsImagebuilderListImagePipelinesInput {
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImageRecipesOutput {
  requestId: String
  imageRecipeSummaryList: [AwsImagebuilderListImageRecipesOutputImageRecipeSummaryList]
  nextToken: String
}

type AwsImagebuilderListImageRecipesOutputImageRecipeSummaryList {
  arn: String
  name: String
  platform: String
  owner: String
  parentImage: String
  dateCreated: String
  tags: JSON
}

input AwsImagebuilderListImageRecipesInput {
  owner: String
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListImagesOutput {
  requestId: String
  imageVersionList: [AwsImagebuilderListImagesOutputImageVersionList]
  nextToken: String
}

type AwsImagebuilderListImagesOutputImageVersionList {
  arn: String
  name: String
  type: String
  version: String
  platform: String
  osVersion: String
  owner: String
  dateCreated: String
}

input AwsImagebuilderListImagesInput {
  owner: String
  filters: [AwsImagebuilderS49Input]
  byName: Boolean
  maxResults: Int
  nextToken: String
  includeDeprecated: Boolean
}

type AwsImagebuilderListInfrastructureConfigurationsOutput {
  requestId: String
  infrastructureConfigurationSummaryList: [AwsImagebuilderListInfrastructureConfigurationsOutputInfrastructureConfigurationSummaryList]
  nextToken: String
}

type AwsImagebuilderListInfrastructureConfigurationsOutputInfrastructureConfigurationSummaryList {
  arn: String
  name: String
  description: String
  dateCreated: String
  dateUpdated: String
  resourceTags: JSON
  tags: JSON
  instanceTypes: [String]
  instanceProfileName: String
}

input AwsImagebuilderListInfrastructureConfigurationsInput {
  filters: [AwsImagebuilderS49Input]
  maxResults: Int
  nextToken: String
}

type AwsImagebuilderListTagsForResourceOutput {
  tags: JSON
}

input AwsImagebuilderListTagsForResourceInput {
  resourceArn: String!
}

type AwsImagebuilderPutComponentPolicyOutput {
  requestId: String
  componentArn: String
}

input AwsImagebuilderPutComponentPolicyInput {
  componentArn: String!
  policy: String!
}

type AwsImagebuilderPutContainerRecipePolicyOutput {
  requestId: String
  containerRecipeArn: String
}

input AwsImagebuilderPutContainerRecipePolicyInput {
  containerRecipeArn: String!
  policy: String!
}

type AwsImagebuilderPutImagePolicyOutput {
  requestId: String
  imageArn: String
}

input AwsImagebuilderPutImagePolicyInput {
  imageArn: String!
  policy: String!
}

type AwsImagebuilderPutImageRecipePolicyOutput {
  requestId: String
  imageRecipeArn: String
}

input AwsImagebuilderPutImageRecipePolicyInput {
  imageRecipeArn: String!
  policy: String!
}

type AwsImagebuilderStartImagePipelineExecutionOutput {
  requestId: String
  clientToken: String
  imageBuildVersionArn: String
}

input AwsImagebuilderStartImagePipelineExecutionInput {
  imagePipelineArn: String!
  clientToken: String!
}

input AwsImagebuilderTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsImagebuilderUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsImagebuilderUpdateDistributionConfigurationOutput {
  requestId: String
  clientToken: String
  distributionConfigurationArn: String
}

input AwsImagebuilderUpdateDistributionConfigurationInput {
  distributionConfigurationArn: String!
  description: String
  distributions: [AwsImagebuilderS13Input]!
  clientToken: String!
}

type AwsImagebuilderUpdateImagePipelineOutput {
  requestId: String
  clientToken: String
  imagePipelineArn: String
}

input AwsImagebuilderUpdateImagePipelineInput {
  imagePipelineArn: String!
  description: String
  imageRecipeArn: String
  containerRecipeArn: String
  infrastructureConfigurationArn: String!
  distributionConfigurationArn: String
  imageTestsConfiguration: AwsImagebuilderS1nInput
  enhancedImageMetadataEnabled: Boolean
  schedule: AwsImagebuilderS1rInput
  status: String
  clientToken: String!
}

type AwsImagebuilderUpdateInfrastructureConfigurationOutput {
  requestId: String
  clientToken: String
  infrastructureConfigurationArn: String
}

input AwsImagebuilderUpdateInfrastructureConfigurationInput {
  infrastructureConfigurationArn: String!
  description: String
  instanceTypes: [String]
  instanceProfileName: String!
  securityGroupIds: [String]
  subnetId: String
  logging: AwsImagebuilderS24Input
  keyPair: String
  terminateInstanceOnFailure: Boolean
  snsTopicArn: String
  clientToken: String!
  resourceTags: JSON
}

"""AWS Import/Export (2010-06-01)"""
type AwsImportExport {
  cancelJob(input: AwsImportExportCancelJobInput!, config: AwsConfig): AwsImportExportCancelJobOutput
  createJob(input: AwsImportExportCreateJobInput!, config: AwsConfig): AwsImportExportCreateJobOutput
  getShippingLabel(input: AwsImportExportGetShippingLabelInput!, config: AwsConfig): AwsImportExportGetShippingLabelOutput
  getStatus(input: AwsImportExportGetStatusInput!, config: AwsConfig): AwsImportExportGetStatusOutput
  listJobs(input: AwsImportExportListJobsInput, config: AwsConfig): AwsImportExportListJobsOutput
  updateJob(input: AwsImportExportUpdateJobInput!, config: AwsConfig): AwsImportExportUpdateJobOutput
}

type AwsImportExportCancelJobOutput {
  Success: Boolean
}

input AwsImportExportCancelJobInput {
  JobId: String!
  APIVersion: String
}

type AwsImportExportCreateJobOutput {
  JobId: String
  JobType: String
  Signature: String
  SignatureFileContents: String
  WarningMessage: String
  ArtifactList: [AwsImportExportSf]
}

type AwsImportExportSf {
  Description: String
  URL: String
}

input AwsImportExportCreateJobInput {
  JobType: String!
  Manifest: String!
  ManifestAddendum: String
  ValidateOnly: Boolean!
  APIVersion: String
}

type AwsImportExportGetShippingLabelOutput {
  ShippingLabelURL: String
  Warning: String
}

input AwsImportExportGetShippingLabelInput {
  jobIds: [String]!
  name: String
  company: String
  phoneNumber: String
  country: String
  stateOrProvince: String
  city: String
  postalCode: String
  street1: String
  street2: String
  street3: String
  APIVersion: String
}

type AwsImportExportGetStatusOutput {
  JobId: String
  JobType: String
  LocationCode: String
  LocationMessage: String
  ProgressCode: String
  ProgressMessage: String
  Carrier: String
  TrackingNumber: String
  LogBucket: String
  LogKey: String
  ErrorCount: Int
  Signature: String
  SignatureFileContents: String
  CurrentManifest: String
  CreationDate: Date
  ArtifactList: [AwsImportExportSf]
}

input AwsImportExportGetStatusInput {
  JobId: String!
  APIVersion: String
}

type AwsImportExportListJobsOutput {
  Jobs: [AwsImportExportListJobsOutputJobs]
  IsTruncated: Boolean
}

type AwsImportExportListJobsOutputJobs {
  JobId: String
  CreationDate: Date
  IsCanceled: Boolean
  JobType: String
}

input AwsImportExportListJobsInput {
  MaxJobs: Int
  Marker: String
  APIVersion: String
}

type AwsImportExportUpdateJobOutput {
  Success: Boolean
  WarningMessage: String
  ArtifactList: [AwsImportExportSf]
}

input AwsImportExportUpdateJobInput {
  JobId: String!
  Manifest: String!
  JobType: String!
  ValidateOnly: Boolean!
  APIVersion: String
}

"""Amazon Inspector (2016-02-16)"""
type AwsInspector {
  addAttributesToFindings(input: AwsInspectorAddAttributesToFindingsInput!, config: AwsConfig): AwsInspectorAddAttributesToFindingsOutput
  createAssessmentTarget(input: AwsInspectorCreateAssessmentTargetInput!, config: AwsConfig): AwsInspectorCreateAssessmentTargetOutput
  createAssessmentTemplate(input: AwsInspectorCreateAssessmentTemplateInput!, config: AwsConfig): AwsInspectorCreateAssessmentTemplateOutput
  createExclusionsPreview(input: AwsInspectorCreateExclusionsPreviewInput!, config: AwsConfig): AwsInspectorCreateExclusionsPreviewOutput
  createResourceGroup(input: AwsInspectorCreateResourceGroupInput!, config: AwsConfig): AwsInspectorCreateResourceGroupOutput
  deleteAssessmentRun(input: AwsInspectorDeleteAssessmentRunInput!, config: AwsConfig): JSON
  deleteAssessmentTarget(input: AwsInspectorDeleteAssessmentTargetInput!, config: AwsConfig): JSON
  deleteAssessmentTemplate(input: AwsInspectorDeleteAssessmentTemplateInput!, config: AwsConfig): JSON
  describeAssessmentRuns(input: AwsInspectorDescribeAssessmentRunsInput!, config: AwsConfig): AwsInspectorDescribeAssessmentRunsOutput
  describeAssessmentTargets(input: AwsInspectorDescribeAssessmentTargetsInput!, config: AwsConfig): AwsInspectorDescribeAssessmentTargetsOutput
  describeAssessmentTemplates(input: AwsInspectorDescribeAssessmentTemplatesInput!, config: AwsConfig): AwsInspectorDescribeAssessmentTemplatesOutput
  describeCrossAccountAccessRole(config: AwsConfig): AwsInspectorDescribeCrossAccountAccessRoleOutput
  describeExclusions(input: AwsInspectorDescribeExclusionsInput!, config: AwsConfig): AwsInspectorDescribeExclusionsOutput
  describeFindings(input: AwsInspectorDescribeFindingsInput!, config: AwsConfig): AwsInspectorDescribeFindingsOutput
  describeResourceGroups(input: AwsInspectorDescribeResourceGroupsInput!, config: AwsConfig): AwsInspectorDescribeResourceGroupsOutput
  describeRulesPackages(input: AwsInspectorDescribeRulesPackagesInput!, config: AwsConfig): AwsInspectorDescribeRulesPackagesOutput
  getAssessmentReport(input: AwsInspectorGetAssessmentReportInput!, config: AwsConfig): AwsInspectorGetAssessmentReportOutput
  getExclusionsPreview(input: AwsInspectorGetExclusionsPreviewInput!, config: AwsConfig): AwsInspectorGetExclusionsPreviewOutput
  getTelemetryMetadata(input: AwsInspectorGetTelemetryMetadataInput!, config: AwsConfig): AwsInspectorGetTelemetryMetadataOutput
  listAssessmentRunAgents(input: AwsInspectorListAssessmentRunAgentsInput!, config: AwsConfig): AwsInspectorListAssessmentRunAgentsOutput
  listAssessmentRuns(input: AwsInspectorListAssessmentRunsInput, config: AwsConfig): AwsInspectorListAssessmentRunsOutput
  listAssessmentTargets(input: AwsInspectorListAssessmentTargetsInput, config: AwsConfig): AwsInspectorListAssessmentTargetsOutput
  listAssessmentTemplates(input: AwsInspectorListAssessmentTemplatesInput, config: AwsConfig): AwsInspectorListAssessmentTemplatesOutput
  listEventSubscriptions(input: AwsInspectorListEventSubscriptionsInput, config: AwsConfig): AwsInspectorListEventSubscriptionsOutput
  listExclusions(input: AwsInspectorListExclusionsInput!, config: AwsConfig): AwsInspectorListExclusionsOutput
  listFindings(input: AwsInspectorListFindingsInput, config: AwsConfig): AwsInspectorListFindingsOutput
  listRulesPackages(input: AwsInspectorListRulesPackagesInput, config: AwsConfig): AwsInspectorListRulesPackagesOutput
  listTagsForResource(input: AwsInspectorListTagsForResourceInput!, config: AwsConfig): AwsInspectorListTagsForResourceOutput
  previewAgents(input: AwsInspectorPreviewAgentsInput!, config: AwsConfig): AwsInspectorPreviewAgentsOutput
  registerCrossAccountAccessRole(input: AwsInspectorRegisterCrossAccountAccessRoleInput!, config: AwsConfig): JSON
  removeAttributesFromFindings(input: AwsInspectorRemoveAttributesFromFindingsInput!, config: AwsConfig): AwsInspectorRemoveAttributesFromFindingsOutput
  setTagsForResource(input: AwsInspectorSetTagsForResourceInput!, config: AwsConfig): JSON
  startAssessmentRun(input: AwsInspectorStartAssessmentRunInput!, config: AwsConfig): AwsInspectorStartAssessmentRunOutput
  stopAssessmentRun(input: AwsInspectorStopAssessmentRunInput!, config: AwsConfig): JSON
  subscribeToEvent(input: AwsInspectorSubscribeToEventInput!, config: AwsConfig): JSON
  unsubscribeFromEvent(input: AwsInspectorUnsubscribeFromEventInput!, config: AwsConfig): JSON
  updateAssessmentTarget(input: AwsInspectorUpdateAssessmentTargetInput!, config: AwsConfig): JSON
}

type AwsInspectorAddAttributesToFindingsOutput {
  failedItems: JSON!
}

input AwsInspectorAddAttributesToFindingsInput {
  findingArns: [String]!
  attributes: [AwsInspectorS5Input]!
}

input AwsInspectorS5Input {
  key: String!
  value: String
}

type AwsInspectorCreateAssessmentTargetOutput {
  assessmentTargetArn: String!
}

input AwsInspectorCreateAssessmentTargetInput {
  assessmentTargetName: String!
  resourceGroupArn: String
}

type AwsInspectorCreateAssessmentTemplateOutput {
  assessmentTemplateArn: String!
}

input AwsInspectorCreateAssessmentTemplateInput {
  assessmentTargetArn: String!
  assessmentTemplateName: String!
  durationInSeconds: Int!
  rulesPackageArns: [String]!
  userAttributesForFindings: [AwsInspectorS5Input]
}

type AwsInspectorCreateExclusionsPreviewOutput {
  previewToken: String!
}

input AwsInspectorCreateExclusionsPreviewInput {
  assessmentTemplateArn: String!
}

type AwsInspectorCreateResourceGroupOutput {
  resourceGroupArn: String!
}

input AwsInspectorCreateResourceGroupInput {
  resourceGroupTags: [AwsInspectorSpInput]!
}

input AwsInspectorSpInput {
  key: String!
  value: String
}

input AwsInspectorDeleteAssessmentRunInput {
  assessmentRunArn: String!
}

input AwsInspectorDeleteAssessmentTargetInput {
  assessmentTargetArn: String!
}

input AwsInspectorDeleteAssessmentTemplateInput {
  assessmentTemplateArn: String!
}

type AwsInspectorDescribeAssessmentRunsOutput {
  assessmentRuns: [AwsInspectorDescribeAssessmentRunsOutputAssessmentRuns]!
  failedItems: JSON!
}

type AwsInspectorDescribeAssessmentRunsOutputAssessmentRuns {
  arn: String!
  name: String!
  assessmentTemplateArn: String!
  state: String!
  durationInSeconds: Int!
  rulesPackageArns: [String]!
  userAttributesForFindings: [AwsInspectorS5]!
  createdAt: Date!
  startedAt: Date
  completedAt: Date
  stateChangedAt: Date!
  dataCollected: Boolean!
  stateChanges: [AwsInspectorDescribeAssessmentRunsOutputAssessmentRunsStateChanges]!
  notifications: [AwsInspectorDescribeAssessmentRunsOutputAssessmentRunsNotifications]!
  findingCounts: JSON!
}

type AwsInspectorS5 {
  key: String!
  value: String
}

type AwsInspectorDescribeAssessmentRunsOutputAssessmentRunsStateChanges {
  stateChangedAt: Date!
  state: String!
}

type AwsInspectorDescribeAssessmentRunsOutputAssessmentRunsNotifications {
  date: Date!
  event: String!
  message: String
  error: Boolean!
  snsTopicArn: String
  snsPublishStatusCode: String
}

input AwsInspectorDescribeAssessmentRunsInput {
  assessmentRunArns: [String]!
}

type AwsInspectorDescribeAssessmentTargetsOutput {
  assessmentTargets: [AwsInspectorDescribeAssessmentTargetsOutputAssessmentTargets]!
  failedItems: JSON!
}

type AwsInspectorDescribeAssessmentTargetsOutputAssessmentTargets {
  arn: String!
  name: String!
  resourceGroupArn: String
  createdAt: Date!
  updatedAt: Date!
}

input AwsInspectorDescribeAssessmentTargetsInput {
  assessmentTargetArns: [String]!
}

type AwsInspectorDescribeAssessmentTemplatesOutput {
  assessmentTemplates: [AwsInspectorDescribeAssessmentTemplatesOutputAssessmentTemplates]!
  failedItems: JSON!
}

type AwsInspectorDescribeAssessmentTemplatesOutputAssessmentTemplates {
  arn: String!
  name: String!
  assessmentTargetArn: String!
  durationInSeconds: Int!
  rulesPackageArns: [String]!
  userAttributesForFindings: [AwsInspectorS5]!
  lastAssessmentRunArn: String
  assessmentRunCount: Int!
  createdAt: Date!
}

input AwsInspectorDescribeAssessmentTemplatesInput {
  assessmentTemplateArns: [String]!
}

type AwsInspectorDescribeCrossAccountAccessRoleOutput {
  roleArn: String!
  valid: Boolean!
  registeredAt: Date!
}

type AwsInspectorDescribeExclusionsOutput {
  exclusions: JSON!
  failedItems: JSON!
}

input AwsInspectorDescribeExclusionsInput {
  exclusionArns: [String]!
  locale: String
}

type AwsInspectorDescribeFindingsOutput {
  findings: [AwsInspectorDescribeFindingsOutputFindings]!
  failedItems: JSON!
}

type AwsInspectorDescribeFindingsOutputFindings {
  arn: String!
  schemaVersion: Int
  service: String
  serviceAttributes: AwsInspectorDescribeFindingsOutputFindingsServiceAttributes
  assetType: String
  assetAttributes: AwsInspectorDescribeFindingsOutputFindingsAssetAttributes
  id: String
  title: String
  description: String
  recommendation: String
  severity: String
  numericSeverity: JSON
  confidence: Int
  indicatorOfCompromise: Boolean
  attributes: [AwsInspectorS5]!
  userAttributes: [AwsInspectorS5]!
  createdAt: Date!
  updatedAt: Date!
}

type AwsInspectorDescribeFindingsOutputFindingsServiceAttributes {
  schemaVersion: Int!
  assessmentRunArn: String
  rulesPackageArn: String
}

type AwsInspectorDescribeFindingsOutputFindingsAssetAttributes {
  schemaVersion: Int!
  agentId: String
  autoScalingGroup: String
  amiId: String
  hostname: String
  ipv4Addresses: [String]
  tags: [AwsInspectorS2i]
  networkInterfaces: [AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfaces]
}

type AwsInspectorS2i {
  key: String!
  value: String
}

type AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfaces {
  networkInterfaceId: String
  subnetId: String
  vpcId: String
  privateDnsName: String
  privateIpAddress: String
  privateIpAddresses: [AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfacesPrivateIpAddresses]
  publicDnsName: String
  publicIp: String
  ipv6Addresses: [String]
  securityGroups: [AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfacesSecurityGroups]
}

type AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfacesPrivateIpAddresses {
  privateDnsName: String
  privateIpAddress: String
}

type AwsInspectorDescribeFindingsOutputFindingsAssetAttributesNetworkInterfacesSecurityGroups {
  groupName: String
  groupId: String
}

input AwsInspectorDescribeFindingsInput {
  findingArns: [String]!
  locale: String
}

type AwsInspectorDescribeResourceGroupsOutput {
  resourceGroups: [AwsInspectorDescribeResourceGroupsOutputResourceGroups]!
  failedItems: JSON!
}

type AwsInspectorDescribeResourceGroupsOutputResourceGroups {
  arn: String!
  tags: [AwsInspectorSp]!
  createdAt: Date!
}

type AwsInspectorSp {
  key: String!
  value: String
}

input AwsInspectorDescribeResourceGroupsInput {
  resourceGroupArns: [String]!
}

type AwsInspectorDescribeRulesPackagesOutput {
  rulesPackages: [AwsInspectorDescribeRulesPackagesOutputRulesPackages]!
  failedItems: JSON!
}

type AwsInspectorDescribeRulesPackagesOutputRulesPackages {
  arn: String!
  name: String!
  version: String!
  provider: String!
  description: String
}

input AwsInspectorDescribeRulesPackagesInput {
  rulesPackageArns: [String]!
  locale: String
}

type AwsInspectorGetAssessmentReportOutput {
  status: String!
  url: String
}

input AwsInspectorGetAssessmentReportInput {
  assessmentRunArn: String!
  reportFileFormat: String!
  reportType: String!
}

type AwsInspectorGetExclusionsPreviewOutput {
  previewStatus: String!
  exclusionPreviews: [AwsInspectorGetExclusionsPreviewOutputExclusionPreviews]
  nextToken: String
}

type AwsInspectorGetExclusionsPreviewOutputExclusionPreviews {
  title: String!
  description: String!
  recommendation: String!
  scopes: [AwsInspectorS1x]!
  attributes: [AwsInspectorS5]
}

type AwsInspectorS1x {
  key: String
  value: String
}

input AwsInspectorGetExclusionsPreviewInput {
  assessmentTemplateArn: String!
  previewToken: String!
  nextToken: String
  maxResults: Int
  locale: String
}

type AwsInspectorGetTelemetryMetadataOutput {
  telemetryMetadata: [AwsInspectorS3j]!
}

type AwsInspectorS3j {
  messageType: String!
  count: JSON!
  dataSize: JSON
}

input AwsInspectorGetTelemetryMetadataInput {
  assessmentRunArn: String!
}

type AwsInspectorListAssessmentRunAgentsOutput {
  assessmentRunAgents: [AwsInspectorListAssessmentRunAgentsOutputAssessmentRunAgents]!
  nextToken: String
}

type AwsInspectorListAssessmentRunAgentsOutputAssessmentRunAgents {
  agentId: String!
  assessmentRunArn: String!
  agentHealth: String!
  agentHealthCode: String!
  agentHealthDetails: String
  autoScalingGroup: String
  telemetryMetadata: [AwsInspectorS3j]!
}

input AwsInspectorListAssessmentRunAgentsInput {
  assessmentRunArn: String!
  filter: AwsInspectorListAssessmentRunAgentsFilterInput
  nextToken: String
  maxResults: Int
}

input AwsInspectorListAssessmentRunAgentsFilterInput {
  agentHealths: [String]!
  agentHealthCodes: [String]!
}

type AwsInspectorListAssessmentRunsOutput {
  assessmentRunArns: [String]!
  nextToken: String
}

input AwsInspectorListAssessmentRunsInput {
  assessmentTemplateArns: [String]
  filter: AwsInspectorListAssessmentRunsFilterInput
  nextToken: String
  maxResults: Int
}

input AwsInspectorListAssessmentRunsFilterInput {
  namePattern: String
  states: [String]
  durationRange: AwsInspectorS41Input
  rulesPackageArns: [String]
  startTimeRange: AwsInspectorS43Input
  completionTimeRange: AwsInspectorS43Input
  stateChangeTimeRange: AwsInspectorS43Input
}

input AwsInspectorS41Input {
  minSeconds: Int
  maxSeconds: Int
}

input AwsInspectorS43Input {
  beginDate: Date
  endDate: Date
}

type AwsInspectorListAssessmentTargetsOutput {
  assessmentTargetArns: [String]!
  nextToken: String
}

input AwsInspectorListAssessmentTargetsInput {
  filter: AwsInspectorListAssessmentTargetsFilterInput
  nextToken: String
  maxResults: Int
}

input AwsInspectorListAssessmentTargetsFilterInput {
  assessmentTargetNamePattern: String
}

type AwsInspectorListAssessmentTemplatesOutput {
  assessmentTemplateArns: [String]!
  nextToken: String
}

input AwsInspectorListAssessmentTemplatesInput {
  assessmentTargetArns: [String]
  filter: AwsInspectorListAssessmentTemplatesFilterInput
  nextToken: String
  maxResults: Int
}

input AwsInspectorListAssessmentTemplatesFilterInput {
  namePattern: String
  durationRange: AwsInspectorS41Input
  rulesPackageArns: [String]
}

type AwsInspectorListEventSubscriptionsOutput {
  subscriptions: [AwsInspectorListEventSubscriptionsOutputSubscriptions]!
  nextToken: String
}

type AwsInspectorListEventSubscriptionsOutputSubscriptions {
  resourceArn: String!
  topicArn: String!
  eventSubscriptions: [AwsInspectorListEventSubscriptionsOutputSubscriptionsEventSubscriptions]!
}

type AwsInspectorListEventSubscriptionsOutputSubscriptionsEventSubscriptions {
  event: String!
  subscribedAt: Date!
}

input AwsInspectorListEventSubscriptionsInput {
  resourceArn: String
  nextToken: String
  maxResults: Int
}

type AwsInspectorListExclusionsOutput {
  exclusionArns: [String]!
  nextToken: String
}

input AwsInspectorListExclusionsInput {
  assessmentRunArn: String!
  nextToken: String
  maxResults: Int
}

type AwsInspectorListFindingsOutput {
  findingArns: [String]!
  nextToken: String
}

input AwsInspectorListFindingsInput {
  assessmentRunArns: [String]
  filter: AwsInspectorListFindingsFilterInput
  nextToken: String
  maxResults: Int
}

input AwsInspectorListFindingsFilterInput {
  agentIds: [String]
  autoScalingGroups: [String]
  ruleNames: [String]
  severities: [String]
  rulesPackageArns: [String]
  attributes: [AwsInspectorS5Input]
  userAttributes: [AwsInspectorS5Input]
  creationTimeRange: AwsInspectorS43Input
}

type AwsInspectorListRulesPackagesOutput {
  rulesPackageArns: [String]!
  nextToken: String
}

input AwsInspectorListRulesPackagesInput {
  nextToken: String
  maxResults: Int
}

type AwsInspectorListTagsForResourceOutput {
  tags: [AwsInspectorS2i]!
}

input AwsInspectorListTagsForResourceInput {
  resourceArn: String!
}

type AwsInspectorPreviewAgentsOutput {
  agentPreviews: [AwsInspectorPreviewAgentsOutputAgentPreviews]!
  nextToken: String
}

type AwsInspectorPreviewAgentsOutputAgentPreviews {
  hostname: String
  agentId: String!
  autoScalingGroup: String
  agentHealth: String
  agentVersion: String
  operatingSystem: String
  kernelVersion: String
  ipv4Address: String
}

input AwsInspectorPreviewAgentsInput {
  previewAgentsArn: String!
  nextToken: String
  maxResults: Int
}

input AwsInspectorRegisterCrossAccountAccessRoleInput {
  roleArn: String!
}

type AwsInspectorRemoveAttributesFromFindingsOutput {
  failedItems: JSON!
}

input AwsInspectorRemoveAttributesFromFindingsInput {
  findingArns: [String]!
  attributeKeys: [String]!
}

input AwsInspectorSetTagsForResourceInput {
  resourceArn: String!
  tags: [AwsInspectorS2iInput]
}

input AwsInspectorS2iInput {
  key: String!
  value: String
}

type AwsInspectorStartAssessmentRunOutput {
  assessmentRunArn: String!
}

input AwsInspectorStartAssessmentRunInput {
  assessmentTemplateArn: String!
  assessmentRunName: String
}

input AwsInspectorStopAssessmentRunInput {
  assessmentRunArn: String!
  stopAction: String
}

input AwsInspectorSubscribeToEventInput {
  resourceArn: String!
  event: String!
  topicArn: String!
}

input AwsInspectorUnsubscribeFromEventInput {
  resourceArn: String!
  event: String!
  topicArn: String!
}

input AwsInspectorUpdateAssessmentTargetInput {
  assessmentTargetArn: String!
  assessmentTargetName: String!
  resourceGroupArn: String
}

"""AWS IoT 1-Click Devices Service (2018-05-14)"""
type AwsIoT1ClickDevicesService {
  claimDevicesByClaimCode(input: AwsIoT1ClickDevicesServiceClaimDevicesByClaimCodeInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceClaimDevicesByClaimCodeOutput
  describeDevice(input: AwsIoT1ClickDevicesServiceDescribeDeviceInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceDescribeDeviceOutput
  finalizeDeviceClaim(input: AwsIoT1ClickDevicesServiceFinalizeDeviceClaimInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceFinalizeDeviceClaimOutput
  getDeviceMethods(input: AwsIoT1ClickDevicesServiceGetDeviceMethodsInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceGetDeviceMethodsOutput
  initiateDeviceClaim(input: AwsIoT1ClickDevicesServiceInitiateDeviceClaimInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceInitiateDeviceClaimOutput
  invokeDeviceMethod(input: AwsIoT1ClickDevicesServiceInvokeDeviceMethodInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceInvokeDeviceMethodOutput
  listDeviceEvents(input: AwsIoT1ClickDevicesServiceListDeviceEventsInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceListDeviceEventsOutput
  listDevices(input: AwsIoT1ClickDevicesServiceListDevicesInput, config: AwsConfig): AwsIoT1ClickDevicesServiceListDevicesOutput
  listTagsForResource(input: AwsIoT1ClickDevicesServiceListTagsForResourceInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceListTagsForResourceOutput
  tagResource(input: AwsIoT1ClickDevicesServiceTagResourceInput!, config: AwsConfig): JSON
  unclaimDevice(input: AwsIoT1ClickDevicesServiceUnclaimDeviceInput!, config: AwsConfig): AwsIoT1ClickDevicesServiceUnclaimDeviceOutput
  untagResource(input: AwsIoT1ClickDevicesServiceUntagResourceInput!, config: AwsConfig): JSON
  updateDeviceState(input: AwsIoT1ClickDevicesServiceUpdateDeviceStateInput!, config: AwsConfig): JSON
}

type AwsIoT1ClickDevicesServiceClaimDevicesByClaimCodeOutput {
  ClaimCode: String
  Total: Int
}

input AwsIoT1ClickDevicesServiceClaimDevicesByClaimCodeInput {
  ClaimCode: String!
}

type AwsIoT1ClickDevicesServiceDescribeDeviceOutput {
  DeviceDescription: AwsIoT1ClickDevicesServiceS8
}

type AwsIoT1ClickDevicesServiceS8 {
  Arn: String
  Attributes: JSON
  DeviceId: String
  Enabled: Boolean
  RemainingLife: JSON
  Type: String
  Tags: JSON
}

input AwsIoT1ClickDevicesServiceDescribeDeviceInput {
  DeviceId: String!
}

type AwsIoT1ClickDevicesServiceFinalizeDeviceClaimOutput {
  State: String
}

input AwsIoT1ClickDevicesServiceFinalizeDeviceClaimInput {
  DeviceId: String!
  Tags: JSON
}

type AwsIoT1ClickDevicesServiceGetDeviceMethodsOutput {
  DeviceMethods: [AwsIoT1ClickDevicesServiceSi]
}

type AwsIoT1ClickDevicesServiceSi {
  DeviceType: String
  MethodName: String
}

input AwsIoT1ClickDevicesServiceGetDeviceMethodsInput {
  DeviceId: String!
}

type AwsIoT1ClickDevicesServiceInitiateDeviceClaimOutput {
  State: String
}

input AwsIoT1ClickDevicesServiceInitiateDeviceClaimInput {
  DeviceId: String!
}

type AwsIoT1ClickDevicesServiceInvokeDeviceMethodOutput {
  DeviceMethodResponse: String
}

input AwsIoT1ClickDevicesServiceInvokeDeviceMethodInput {
  DeviceId: String!
  DeviceMethod: AwsIoT1ClickDevicesServiceSiInput
  DeviceMethodParameters: String
}

input AwsIoT1ClickDevicesServiceSiInput {
  DeviceType: String
  MethodName: String
}

type AwsIoT1ClickDevicesServiceListDeviceEventsOutput {
  Events: [AwsIoT1ClickDevicesServiceListDeviceEventsOutputEvents]
  NextToken: String
}

type AwsIoT1ClickDevicesServiceListDeviceEventsOutputEvents {
  Device: AwsIoT1ClickDevicesServiceListDeviceEventsOutputEventsDevice
  StdEvent: String
}

type AwsIoT1ClickDevicesServiceListDeviceEventsOutputEventsDevice {
  Attributes: JSON
  DeviceId: String
  Type: String
}

input AwsIoT1ClickDevicesServiceListDeviceEventsInput {
  DeviceId: String!
  FromTimeStamp: Date!
  MaxResults: Int
  NextToken: String
  ToTimeStamp: Date!
}

type AwsIoT1ClickDevicesServiceListDevicesOutput {
  Devices: [AwsIoT1ClickDevicesServiceS8]
  NextToken: String
}

input AwsIoT1ClickDevicesServiceListDevicesInput {
  DeviceType: String
  MaxResults: Int
  NextToken: String
}

type AwsIoT1ClickDevicesServiceListTagsForResourceOutput {
  Tags: JSON
}

input AwsIoT1ClickDevicesServiceListTagsForResourceInput {
  ResourceArn: String!
}

input AwsIoT1ClickDevicesServiceTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

type AwsIoT1ClickDevicesServiceUnclaimDeviceOutput {
  State: String
}

input AwsIoT1ClickDevicesServiceUnclaimDeviceInput {
  DeviceId: String!
}

input AwsIoT1ClickDevicesServiceUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsIoT1ClickDevicesServiceUpdateDeviceStateInput {
  DeviceId: String!
  Enabled: Boolean
}

"""AWS IoT 1-Click Projects Service (2018-05-14)"""
type AwsIoT1ClickProjects {
  associateDeviceWithPlacement(input: AwsIoT1ClickProjectsAssociateDeviceWithPlacementInput!, config: AwsConfig): JSON
  createPlacement(input: AwsIoT1ClickProjectsCreatePlacementInput!, config: AwsConfig): JSON
  createProject(input: AwsIoT1ClickProjectsCreateProjectInput!, config: AwsConfig): JSON
  deletePlacement(input: AwsIoT1ClickProjectsDeletePlacementInput!, config: AwsConfig): JSON
  deleteProject(input: AwsIoT1ClickProjectsDeleteProjectInput!, config: AwsConfig): JSON
  describePlacement(input: AwsIoT1ClickProjectsDescribePlacementInput!, config: AwsConfig): AwsIoT1ClickProjectsDescribePlacementOutput
  describeProject(input: AwsIoT1ClickProjectsDescribeProjectInput!, config: AwsConfig): AwsIoT1ClickProjectsDescribeProjectOutput
  disassociateDeviceFromPlacement(input: AwsIoT1ClickProjectsDisassociateDeviceFromPlacementInput!, config: AwsConfig): JSON
  getDevicesInPlacement(input: AwsIoT1ClickProjectsGetDevicesInPlacementInput!, config: AwsConfig): AwsIoT1ClickProjectsGetDevicesInPlacementOutput
  listPlacements(input: AwsIoT1ClickProjectsListPlacementsInput!, config: AwsConfig): AwsIoT1ClickProjectsListPlacementsOutput
  listProjects(input: AwsIoT1ClickProjectsListProjectsInput, config: AwsConfig): AwsIoT1ClickProjectsListProjectsOutput
  listTagsForResource(input: AwsIoT1ClickProjectsListTagsForResourceInput!, config: AwsConfig): AwsIoT1ClickProjectsListTagsForResourceOutput
  tagResource(input: AwsIoT1ClickProjectsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoT1ClickProjectsUntagResourceInput!, config: AwsConfig): JSON
  updatePlacement(input: AwsIoT1ClickProjectsUpdatePlacementInput!, config: AwsConfig): JSON
  updateProject(input: AwsIoT1ClickProjectsUpdateProjectInput!, config: AwsConfig): JSON
}

input AwsIoT1ClickProjectsAssociateDeviceWithPlacementInput {
  projectName: String!
  placementName: String!
  deviceId: String!
  deviceTemplateName: String!
}

input AwsIoT1ClickProjectsCreatePlacementInput {
  placementName: String!
  projectName: String!
  attributes: JSON
}

input AwsIoT1ClickProjectsCreateProjectInput {
  projectName: String!
  description: String
  placementTemplate: AwsIoT1ClickProjectsSeInput
  tags: JSON
}

input AwsIoT1ClickProjectsSeInput {
  defaultAttributes: JSON
  deviceTemplates: JSON
}

input AwsIoT1ClickProjectsDeletePlacementInput {
  placementName: String!
  projectName: String!
}

input AwsIoT1ClickProjectsDeleteProjectInput {
  projectName: String!
}

type AwsIoT1ClickProjectsDescribePlacementOutput {
  placement: AwsIoT1ClickProjectsDescribePlacementOutputPlacement!
}

type AwsIoT1ClickProjectsDescribePlacementOutputPlacement {
  projectName: String!
  placementName: String!
  attributes: JSON!
  createdDate: Date!
  updatedDate: Date!
}

input AwsIoT1ClickProjectsDescribePlacementInput {
  placementName: String!
  projectName: String!
}

type AwsIoT1ClickProjectsDescribeProjectOutput {
  project: AwsIoT1ClickProjectsDescribeProjectOutputProject!
}

type AwsIoT1ClickProjectsDescribeProjectOutputProject {
  arn: String
  projectName: String!
  description: String
  createdDate: Date!
  updatedDate: Date!
  placementTemplate: AwsIoT1ClickProjectsSe
  tags: JSON
}

type AwsIoT1ClickProjectsSe {
  defaultAttributes: JSON
  deviceTemplates: JSON
}

input AwsIoT1ClickProjectsDescribeProjectInput {
  projectName: String!
}

input AwsIoT1ClickProjectsDisassociateDeviceFromPlacementInput {
  projectName: String!
  placementName: String!
  deviceTemplateName: String!
}

type AwsIoT1ClickProjectsGetDevicesInPlacementOutput {
  devices: JSON!
}

input AwsIoT1ClickProjectsGetDevicesInPlacementInput {
  projectName: String!
  placementName: String!
}

type AwsIoT1ClickProjectsListPlacementsOutput {
  placements: [AwsIoT1ClickProjectsListPlacementsOutputPlacements]!
  nextToken: String
}

type AwsIoT1ClickProjectsListPlacementsOutputPlacements {
  projectName: String!
  placementName: String!
  createdDate: Date!
  updatedDate: Date!
}

input AwsIoT1ClickProjectsListPlacementsInput {
  projectName: String!
  nextToken: String
  maxResults: Int
}

type AwsIoT1ClickProjectsListProjectsOutput {
  projects: [AwsIoT1ClickProjectsListProjectsOutputProjects]!
  nextToken: String
}

type AwsIoT1ClickProjectsListProjectsOutputProjects {
  arn: String
  projectName: String!
  createdDate: Date!
  updatedDate: Date!
  tags: JSON
}

input AwsIoT1ClickProjectsListProjectsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoT1ClickProjectsListTagsForResourceOutput {
  tags: JSON
}

input AwsIoT1ClickProjectsListTagsForResourceInput {
  resourceArn: String!
}

input AwsIoT1ClickProjectsTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsIoT1ClickProjectsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsIoT1ClickProjectsUpdatePlacementInput {
  placementName: String!
  projectName: String!
  attributes: JSON
}

input AwsIoT1ClickProjectsUpdateProjectInput {
  projectName: String!
  description: String
  placementTemplate: AwsIoT1ClickProjectsSeInput
}

"""AWS IoT Analytics (2017-11-27)"""
type AwsIoTAnalytics {
  batchPutMessage(input: AwsIoTAnalyticsBatchPutMessageInput!, config: AwsConfig): AwsIoTAnalyticsBatchPutMessageOutput
  cancelPipelineReprocessing(input: AwsIoTAnalyticsCancelPipelineReprocessingInput!, config: AwsConfig): JSON
  createChannel(input: AwsIoTAnalyticsCreateChannelInput!, config: AwsConfig): AwsIoTAnalyticsCreateChannelOutput
  createDataset(input: AwsIoTAnalyticsCreateDatasetInput!, config: AwsConfig): AwsIoTAnalyticsCreateDatasetOutput
  createDatasetContent(input: AwsIoTAnalyticsCreateDatasetContentInput!, config: AwsConfig): AwsIoTAnalyticsCreateDatasetContentOutput
  createDatastore(input: AwsIoTAnalyticsCreateDatastoreInput!, config: AwsConfig): AwsIoTAnalyticsCreateDatastoreOutput
  createPipeline(input: AwsIoTAnalyticsCreatePipelineInput!, config: AwsConfig): AwsIoTAnalyticsCreatePipelineOutput
  deleteChannel(input: AwsIoTAnalyticsDeleteChannelInput!, config: AwsConfig): JSON
  deleteDataset(input: AwsIoTAnalyticsDeleteDatasetInput!, config: AwsConfig): JSON
  deleteDatasetContent(input: AwsIoTAnalyticsDeleteDatasetContentInput!, config: AwsConfig): JSON
  deleteDatastore(input: AwsIoTAnalyticsDeleteDatastoreInput!, config: AwsConfig): JSON
  deletePipeline(input: AwsIoTAnalyticsDeletePipelineInput!, config: AwsConfig): JSON
  describeChannel(input: AwsIoTAnalyticsDescribeChannelInput!, config: AwsConfig): AwsIoTAnalyticsDescribeChannelOutput
  describeDataset(input: AwsIoTAnalyticsDescribeDatasetInput!, config: AwsConfig): AwsIoTAnalyticsDescribeDatasetOutput
  describeDatastore(input: AwsIoTAnalyticsDescribeDatastoreInput!, config: AwsConfig): AwsIoTAnalyticsDescribeDatastoreOutput
  describeLoggingOptions(input: JSON, config: AwsConfig): AwsIoTAnalyticsDescribeLoggingOptionsOutput
  describePipeline(input: AwsIoTAnalyticsDescribePipelineInput!, config: AwsConfig): AwsIoTAnalyticsDescribePipelineOutput
  getDatasetContent(input: AwsIoTAnalyticsGetDatasetContentInput!, config: AwsConfig): AwsIoTAnalyticsGetDatasetContentOutput
  listChannels(input: AwsIoTAnalyticsListChannelsInput, config: AwsConfig): AwsIoTAnalyticsListChannelsOutput
  listDatasetContents(input: AwsIoTAnalyticsListDatasetContentsInput!, config: AwsConfig): AwsIoTAnalyticsListDatasetContentsOutput
  listDatasets(input: AwsIoTAnalyticsListDatasetsInput, config: AwsConfig): AwsIoTAnalyticsListDatasetsOutput
  listDatastores(input: AwsIoTAnalyticsListDatastoresInput, config: AwsConfig): AwsIoTAnalyticsListDatastoresOutput
  listPipelines(input: AwsIoTAnalyticsListPipelinesInput, config: AwsConfig): AwsIoTAnalyticsListPipelinesOutput
  listTagsForResource(input: AwsIoTAnalyticsListTagsForResourceInput!, config: AwsConfig): AwsIoTAnalyticsListTagsForResourceOutput
  putLoggingOptions(input: AwsIoTAnalyticsPutLoggingOptionsInput!, config: AwsConfig): JSON
  runPipelineActivity(input: AwsIoTAnalyticsRunPipelineActivityInput!, config: AwsConfig): AwsIoTAnalyticsRunPipelineActivityOutput
  sampleChannelData(input: AwsIoTAnalyticsSampleChannelDataInput!, config: AwsConfig): AwsIoTAnalyticsSampleChannelDataOutput
  startPipelineReprocessing(input: AwsIoTAnalyticsStartPipelineReprocessingInput!, config: AwsConfig): AwsIoTAnalyticsStartPipelineReprocessingOutput
  tagResource(input: AwsIoTAnalyticsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoTAnalyticsUntagResourceInput!, config: AwsConfig): JSON
  updateChannel(input: AwsIoTAnalyticsUpdateChannelInput!, config: AwsConfig): JSON
  updateDataset(input: AwsIoTAnalyticsUpdateDatasetInput!, config: AwsConfig): JSON
  updateDatastore(input: AwsIoTAnalyticsUpdateDatastoreInput!, config: AwsConfig): JSON
  updatePipeline(input: AwsIoTAnalyticsUpdatePipelineInput!, config: AwsConfig): JSON
}

type AwsIoTAnalyticsBatchPutMessageOutput {
  batchPutMessageErrorEntries: [AwsIoTAnalyticsBatchPutMessageOutputBatchPutMessageErrorEntries]
}

type AwsIoTAnalyticsBatchPutMessageOutputBatchPutMessageErrorEntries {
  messageId: String
  errorCode: String
  errorMessage: String
}

input AwsIoTAnalyticsBatchPutMessageInput {
  channelName: String!
  messages: [AwsIoTAnalyticsBatchPutMessageMessagesInput]!
}

input AwsIoTAnalyticsBatchPutMessageMessagesInput {
  messageId: String!
  payload: JSON!
}

input AwsIoTAnalyticsCancelPipelineReprocessingInput {
  pipelineName: String!
  reprocessingId: String!
}

type AwsIoTAnalyticsCreateChannelOutput {
  channelName: String
  channelArn: String
  retentionPeriod: AwsIoTAnalyticsSn
}

type AwsIoTAnalyticsSn {
  unlimited: Boolean
  numberOfDays: Int
}

input AwsIoTAnalyticsCreateChannelInput {
  channelName: String!
  channelStorage: AwsIoTAnalyticsShInput
  retentionPeriod: AwsIoTAnalyticsSnInput
  tags: [AwsIoTAnalyticsSqInput]
}

input AwsIoTAnalyticsShInput {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsShCustomerManagedS3Input
}

input AwsIoTAnalyticsShCustomerManagedS3Input {
  bucket: String!
  keyPrefix: String
  roleArn: String!
}

input AwsIoTAnalyticsSnInput {
  unlimited: Boolean
  numberOfDays: Int
}

input AwsIoTAnalyticsSqInput {
  key: String!
  value: String!
}

type AwsIoTAnalyticsCreateDatasetOutput {
  datasetName: String
  datasetArn: String
  retentionPeriod: AwsIoTAnalyticsSn
}

input AwsIoTAnalyticsCreateDatasetInput {
  datasetName: String!
  actions: [AwsIoTAnalyticsSyInput]!
  triggers: [AwsIoTAnalyticsS1lInput]
  contentDeliveryRules: [AwsIoTAnalyticsS1qInput]
  retentionPeriod: AwsIoTAnalyticsSnInput
  versioningConfiguration: AwsIoTAnalyticsS21Input
  tags: [AwsIoTAnalyticsSqInput]
  lateDataRules: [AwsIoTAnalyticsS24Input]
}

input AwsIoTAnalyticsSyInput {
  actionName: String
  queryAction: AwsIoTAnalyticsSyQueryActionInput
  containerAction: AwsIoTAnalyticsSyContainerActionInput
}

input AwsIoTAnalyticsSyQueryActionInput {
  sqlQuery: String!
  filters: [AwsIoTAnalyticsSyQueryActionFiltersInput]
}

input AwsIoTAnalyticsSyQueryActionFiltersInput {
  deltaTime: AwsIoTAnalyticsSyQueryActionFiltersDeltaTimeInput
}

input AwsIoTAnalyticsSyQueryActionFiltersDeltaTimeInput {
  offsetSeconds: Int!
  timeExpression: String!
}

input AwsIoTAnalyticsSyContainerActionInput {
  image: String!
  executionRoleArn: String!
  resourceConfiguration: AwsIoTAnalyticsSyContainerActionResourceConfigurationInput!
  variables: [AwsIoTAnalyticsSyContainerActionVariablesInput]
}

input AwsIoTAnalyticsSyContainerActionResourceConfigurationInput {
  computeType: String!
  volumeSizeInGB: Int!
}

input AwsIoTAnalyticsSyContainerActionVariablesInput {
  name: String!
  stringValue: String
  doubleValue: JSON
  datasetContentVersionValue: AwsIoTAnalyticsSyContainerActionVariablesDatasetContentVersionValueInput
  outputFileUriValue: AwsIoTAnalyticsSyContainerActionVariablesOutputFileUriValueInput
}

input AwsIoTAnalyticsSyContainerActionVariablesDatasetContentVersionValueInput {
  datasetName: String!
}

input AwsIoTAnalyticsSyContainerActionVariablesOutputFileUriValueInput {
  fileName: String!
}

input AwsIoTAnalyticsS1lInput {
  schedule: AwsIoTAnalyticsS1lScheduleInput
  dataset: AwsIoTAnalyticsS1lDatasetInput
}

input AwsIoTAnalyticsS1lScheduleInput {
  expression: String
}

input AwsIoTAnalyticsS1lDatasetInput {
  name: String!
}

input AwsIoTAnalyticsS1qInput {
  entryName: String
  destination: AwsIoTAnalyticsS1qDestinationInput!
}

input AwsIoTAnalyticsS1qDestinationInput {
  iotEventsDestinationConfiguration: AwsIoTAnalyticsS1qDestinationIotEventsDestinationConfigurationInput
  s3DestinationConfiguration: AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationInput
}

input AwsIoTAnalyticsS1qDestinationIotEventsDestinationConfigurationInput {
  inputName: String!
  roleArn: String!
}

input AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationInput {
  bucket: String!
  key: String!
  glueConfiguration: AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationGlueConfigurationInput
  roleArn: String!
}

input AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationGlueConfigurationInput {
  tableName: String!
  databaseName: String!
}

input AwsIoTAnalyticsS21Input {
  unlimited: Boolean
  maxVersions: Int
}

input AwsIoTAnalyticsS24Input {
  ruleName: String
  ruleConfiguration: AwsIoTAnalyticsS24RuleConfigurationInput!
}

input AwsIoTAnalyticsS24RuleConfigurationInput {
  deltaTimeSessionWindowConfiguration: AwsIoTAnalyticsS24RuleConfigurationDeltaTimeSessionWindowConfigurationInput
}

input AwsIoTAnalyticsS24RuleConfigurationDeltaTimeSessionWindowConfigurationInput {
  timeoutInMinutes: Int!
}

type AwsIoTAnalyticsCreateDatasetContentOutput {
  versionId: String
}

input AwsIoTAnalyticsCreateDatasetContentInput {
  datasetName: String!
  versionId: String
}

type AwsIoTAnalyticsCreateDatastoreOutput {
  datastoreName: String
  datastoreArn: String
  retentionPeriod: AwsIoTAnalyticsSn
}

input AwsIoTAnalyticsCreateDatastoreInput {
  datastoreName: String!
  datastoreStorage: AwsIoTAnalyticsS2hInput
  retentionPeriod: AwsIoTAnalyticsSnInput
  tags: [AwsIoTAnalyticsSqInput]
  fileFormatConfiguration: AwsIoTAnalyticsS2kInput
  datastorePartitions: AwsIoTAnalyticsS2sInput
}

input AwsIoTAnalyticsS2hInput {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsS2hCustomerManagedS3Input
}

input AwsIoTAnalyticsS2hCustomerManagedS3Input {
  bucket: String!
  keyPrefix: String
  roleArn: String!
}

input AwsIoTAnalyticsS2kInput {
  jsonConfiguration: JSON
  parquetConfiguration: AwsIoTAnalyticsS2kParquetConfigurationInput
}

input AwsIoTAnalyticsS2kParquetConfigurationInput {
  schemaDefinition: AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionInput
}

input AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionInput {
  columns: [AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionColumnsInput]
}

input AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionColumnsInput {
  name: String!
  type: String!
}

input AwsIoTAnalyticsS2sInput {
  partitions: [AwsIoTAnalyticsS2sPartitionsInput]
}

input AwsIoTAnalyticsS2sPartitionsInput {
  attributePartition: AwsIoTAnalyticsS2sPartitionsAttributePartitionInput
  timestampPartition: AwsIoTAnalyticsS2sPartitionsTimestampPartitionInput
}

input AwsIoTAnalyticsS2sPartitionsAttributePartitionInput {
  attributeName: String!
}

input AwsIoTAnalyticsS2sPartitionsTimestampPartitionInput {
  attributeName: String!
  timestampFormat: String
}

type AwsIoTAnalyticsCreatePipelineOutput {
  pipelineName: String
  pipelineArn: String
}

input AwsIoTAnalyticsCreatePipelineInput {
  pipelineName: String!
  pipelineActivities: [AwsIoTAnalyticsS33Input]!
  tags: [AwsIoTAnalyticsSqInput]
}

input AwsIoTAnalyticsS33Input {
  channel: AwsIoTAnalyticsS33ChannelInput
  lambda: AwsIoTAnalyticsS33LambdaInput
  datastore: AwsIoTAnalyticsS33DatastoreInput
  addAttributes: AwsIoTAnalyticsS33AddAttributesInput
  removeAttributes: AwsIoTAnalyticsS33RemoveAttributesInput
  selectAttributes: AwsIoTAnalyticsS33SelectAttributesInput
  filter: AwsIoTAnalyticsS33FilterInput
  math: AwsIoTAnalyticsS33MathInput
  deviceRegistryEnrich: AwsIoTAnalyticsS33DeviceRegistryEnrichInput
  deviceShadowEnrich: AwsIoTAnalyticsS33DeviceShadowEnrichInput
}

input AwsIoTAnalyticsS33ChannelInput {
  name: String!
  channelName: String!
  next: String
}

input AwsIoTAnalyticsS33LambdaInput {
  name: String!
  lambdaName: String!
  batchSize: Int!
  next: String
}

input AwsIoTAnalyticsS33DatastoreInput {
  name: String!
  datastoreName: String!
}

input AwsIoTAnalyticsS33AddAttributesInput {
  name: String!
  attributes: JSON!
  next: String
}

input AwsIoTAnalyticsS33RemoveAttributesInput {
  name: String!
  attributes: [String]!
  next: String
}

input AwsIoTAnalyticsS33SelectAttributesInput {
  name: String!
  attributes: [String]!
  next: String
}

input AwsIoTAnalyticsS33FilterInput {
  name: String!
  filter: String!
  next: String
}

input AwsIoTAnalyticsS33MathInput {
  name: String!
  attribute: String!
  math: String!
  next: String
}

input AwsIoTAnalyticsS33DeviceRegistryEnrichInput {
  name: String!
  attribute: String!
  thingName: String!
  roleArn: String!
  next: String
}

input AwsIoTAnalyticsS33DeviceShadowEnrichInput {
  name: String!
  attribute: String!
  thingName: String!
  roleArn: String!
  next: String
}

input AwsIoTAnalyticsDeleteChannelInput {
  channelName: String!
}

input AwsIoTAnalyticsDeleteDatasetInput {
  datasetName: String!
}

input AwsIoTAnalyticsDeleteDatasetContentInput {
  datasetName: String!
  versionId: String
}

input AwsIoTAnalyticsDeleteDatastoreInput {
  datastoreName: String!
}

input AwsIoTAnalyticsDeletePipelineInput {
  pipelineName: String!
}

type AwsIoTAnalyticsDescribeChannelOutput {
  channel: AwsIoTAnalyticsDescribeChannelOutputChannel
  statistics: AwsIoTAnalyticsDescribeChannelOutputStatistics
}

type AwsIoTAnalyticsDescribeChannelOutputChannel {
  name: String
  storage: AwsIoTAnalyticsSh
  arn: String
  status: String
  retentionPeriod: AwsIoTAnalyticsSn
  creationTime: Date
  lastUpdateTime: Date
  lastMessageArrivalTime: Date
}

type AwsIoTAnalyticsSh {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsShCustomerManagedS3
}

type AwsIoTAnalyticsShCustomerManagedS3 {
  bucket: String!
  keyPrefix: String
  roleArn: String!
}

type AwsIoTAnalyticsDescribeChannelOutputStatistics {
  size: AwsIoTAnalyticsS40
}

type AwsIoTAnalyticsS40 {
  estimatedSizeInBytes: JSON
  estimatedOn: Date
}

input AwsIoTAnalyticsDescribeChannelInput {
  channelName: String!
  includeStatistics: Boolean
}

type AwsIoTAnalyticsDescribeDatasetOutput {
  dataset: AwsIoTAnalyticsDescribeDatasetOutputDataset
}

type AwsIoTAnalyticsDescribeDatasetOutputDataset {
  name: String
  arn: String
  actions: [AwsIoTAnalyticsSy]
  triggers: [AwsIoTAnalyticsS1l]
  contentDeliveryRules: [AwsIoTAnalyticsS1q]
  status: String
  creationTime: Date
  lastUpdateTime: Date
  retentionPeriod: AwsIoTAnalyticsSn
  versioningConfiguration: AwsIoTAnalyticsS21
  lateDataRules: [AwsIoTAnalyticsS24]
}

type AwsIoTAnalyticsSy {
  actionName: String
  queryAction: AwsIoTAnalyticsSyQueryAction
  containerAction: AwsIoTAnalyticsSyContainerAction
}

type AwsIoTAnalyticsSyQueryAction {
  sqlQuery: String!
  filters: [AwsIoTAnalyticsSyQueryActionFilters]
}

type AwsIoTAnalyticsSyQueryActionFilters {
  deltaTime: AwsIoTAnalyticsSyQueryActionFiltersDeltaTime
}

type AwsIoTAnalyticsSyQueryActionFiltersDeltaTime {
  offsetSeconds: Int!
  timeExpression: String!
}

type AwsIoTAnalyticsSyContainerAction {
  image: String!
  executionRoleArn: String!
  resourceConfiguration: AwsIoTAnalyticsSyContainerActionResourceConfiguration!
  variables: [AwsIoTAnalyticsSyContainerActionVariables]
}

type AwsIoTAnalyticsSyContainerActionResourceConfiguration {
  computeType: String!
  volumeSizeInGB: Int!
}

type AwsIoTAnalyticsSyContainerActionVariables {
  name: String!
  stringValue: String
  doubleValue: JSON
  datasetContentVersionValue: AwsIoTAnalyticsSyContainerActionVariablesDatasetContentVersionValue
  outputFileUriValue: AwsIoTAnalyticsSyContainerActionVariablesOutputFileUriValue
}

type AwsIoTAnalyticsSyContainerActionVariablesDatasetContentVersionValue {
  datasetName: String!
}

type AwsIoTAnalyticsSyContainerActionVariablesOutputFileUriValue {
  fileName: String!
}

type AwsIoTAnalyticsS1l {
  schedule: AwsIoTAnalyticsS1lSchedule
  dataset: AwsIoTAnalyticsS1lDataset
}

type AwsIoTAnalyticsS1lSchedule {
  expression: String
}

type AwsIoTAnalyticsS1lDataset {
  name: String!
}

type AwsIoTAnalyticsS1q {
  entryName: String
  destination: AwsIoTAnalyticsS1qDestination!
}

type AwsIoTAnalyticsS1qDestination {
  iotEventsDestinationConfiguration: AwsIoTAnalyticsS1qDestinationIotEventsDestinationConfiguration
  s3DestinationConfiguration: AwsIoTAnalyticsS1qDestinationS3DestinationConfiguration
}

type AwsIoTAnalyticsS1qDestinationIotEventsDestinationConfiguration {
  inputName: String!
  roleArn: String!
}

type AwsIoTAnalyticsS1qDestinationS3DestinationConfiguration {
  bucket: String!
  key: String!
  glueConfiguration: AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationGlueConfiguration
  roleArn: String!
}

type AwsIoTAnalyticsS1qDestinationS3DestinationConfigurationGlueConfiguration {
  tableName: String!
  databaseName: String!
}

type AwsIoTAnalyticsS21 {
  unlimited: Boolean
  maxVersions: Int
}

type AwsIoTAnalyticsS24 {
  ruleName: String
  ruleConfiguration: AwsIoTAnalyticsS24RuleConfiguration!
}

type AwsIoTAnalyticsS24RuleConfiguration {
  deltaTimeSessionWindowConfiguration: AwsIoTAnalyticsS24RuleConfigurationDeltaTimeSessionWindowConfiguration
}

type AwsIoTAnalyticsS24RuleConfigurationDeltaTimeSessionWindowConfiguration {
  timeoutInMinutes: Int!
}

input AwsIoTAnalyticsDescribeDatasetInput {
  datasetName: String!
}

type AwsIoTAnalyticsDescribeDatastoreOutput {
  datastore: AwsIoTAnalyticsDescribeDatastoreOutputDatastore
  statistics: AwsIoTAnalyticsDescribeDatastoreOutputStatistics
}

type AwsIoTAnalyticsDescribeDatastoreOutputDatastore {
  name: String
  storage: AwsIoTAnalyticsS2h
  arn: String
  status: String
  retentionPeriod: AwsIoTAnalyticsSn
  creationTime: Date
  lastUpdateTime: Date
  lastMessageArrivalTime: Date
  fileFormatConfiguration: AwsIoTAnalyticsS2k
  datastorePartitions: AwsIoTAnalyticsS2s
}

type AwsIoTAnalyticsS2h {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsS2hCustomerManagedS3
}

type AwsIoTAnalyticsS2hCustomerManagedS3 {
  bucket: String!
  keyPrefix: String
  roleArn: String!
}

type AwsIoTAnalyticsS2k {
  jsonConfiguration: JSON
  parquetConfiguration: AwsIoTAnalyticsS2kParquetConfiguration
}

type AwsIoTAnalyticsS2kParquetConfiguration {
  schemaDefinition: AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinition
}

type AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinition {
  columns: [AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionColumns]
}

type AwsIoTAnalyticsS2kParquetConfigurationSchemaDefinitionColumns {
  name: String!
  type: String!
}

type AwsIoTAnalyticsS2s {
  partitions: [AwsIoTAnalyticsS2sPartitions]
}

type AwsIoTAnalyticsS2sPartitions {
  attributePartition: AwsIoTAnalyticsS2sPartitionsAttributePartition
  timestampPartition: AwsIoTAnalyticsS2sPartitionsTimestampPartition
}

type AwsIoTAnalyticsS2sPartitionsAttributePartition {
  attributeName: String!
}

type AwsIoTAnalyticsS2sPartitionsTimestampPartition {
  attributeName: String!
  timestampFormat: String
}

type AwsIoTAnalyticsDescribeDatastoreOutputStatistics {
  size: AwsIoTAnalyticsS40
}

input AwsIoTAnalyticsDescribeDatastoreInput {
  datastoreName: String!
  includeStatistics: Boolean
}

type AwsIoTAnalyticsDescribeLoggingOptionsOutput {
  loggingOptions: AwsIoTAnalyticsS4d
}

type AwsIoTAnalyticsS4d {
  roleArn: String!
  level: String!
  enabled: Boolean!
}

type AwsIoTAnalyticsDescribePipelineOutput {
  pipeline: AwsIoTAnalyticsDescribePipelineOutputPipeline
}

type AwsIoTAnalyticsDescribePipelineOutputPipeline {
  name: String
  arn: String
  activities: [AwsIoTAnalyticsS33]
  reprocessingSummaries: [AwsIoTAnalyticsS4j]
  creationTime: Date
  lastUpdateTime: Date
}

type AwsIoTAnalyticsS33 {
  channel: AwsIoTAnalyticsS33Channel
  lambda: AwsIoTAnalyticsS33Lambda
  datastore: AwsIoTAnalyticsS33Datastore
  addAttributes: AwsIoTAnalyticsS33AddAttributes
  removeAttributes: AwsIoTAnalyticsS33RemoveAttributes
  selectAttributes: AwsIoTAnalyticsS33SelectAttributes
  filter: AwsIoTAnalyticsS33Filter
  math: AwsIoTAnalyticsS33Math
  deviceRegistryEnrich: AwsIoTAnalyticsS33DeviceRegistryEnrich
  deviceShadowEnrich: AwsIoTAnalyticsS33DeviceShadowEnrich
}

type AwsIoTAnalyticsS33Channel {
  name: String!
  channelName: String!
  next: String
}

type AwsIoTAnalyticsS33Lambda {
  name: String!
  lambdaName: String!
  batchSize: Int!
  next: String
}

type AwsIoTAnalyticsS33Datastore {
  name: String!
  datastoreName: String!
}

type AwsIoTAnalyticsS33AddAttributes {
  name: String!
  attributes: JSON!
  next: String
}

type AwsIoTAnalyticsS33RemoveAttributes {
  name: String!
  attributes: [String]!
  next: String
}

type AwsIoTAnalyticsS33SelectAttributes {
  name: String!
  attributes: [String]!
  next: String
}

type AwsIoTAnalyticsS33Filter {
  name: String!
  filter: String!
  next: String
}

type AwsIoTAnalyticsS33Math {
  name: String!
  attribute: String!
  math: String!
  next: String
}

type AwsIoTAnalyticsS33DeviceRegistryEnrich {
  name: String!
  attribute: String!
  thingName: String!
  roleArn: String!
  next: String
}

type AwsIoTAnalyticsS33DeviceShadowEnrich {
  name: String!
  attribute: String!
  thingName: String!
  roleArn: String!
  next: String
}

type AwsIoTAnalyticsS4j {
  id: String
  status: String
  creationTime: Date
}

input AwsIoTAnalyticsDescribePipelineInput {
  pipelineName: String!
}

type AwsIoTAnalyticsGetDatasetContentOutput {
  entries: [AwsIoTAnalyticsGetDatasetContentOutputEntries]
  timestamp: Date
  status: AwsIoTAnalyticsS4r
}

type AwsIoTAnalyticsGetDatasetContentOutputEntries {
  entryName: String
  dataURI: String
}

type AwsIoTAnalyticsS4r {
  state: String
  reason: String
}

input AwsIoTAnalyticsGetDatasetContentInput {
  datasetName: String!
  versionId: String
}

type AwsIoTAnalyticsListChannelsOutput {
  channelSummaries: [AwsIoTAnalyticsListChannelsOutputChannelSummaries]
  nextToken: String
}

type AwsIoTAnalyticsListChannelsOutputChannelSummaries {
  channelName: String
  channelStorage: AwsIoTAnalyticsListChannelsOutputChannelSummariesChannelStorage
  status: String
  creationTime: Date
  lastUpdateTime: Date
  lastMessageArrivalTime: Date
}

type AwsIoTAnalyticsListChannelsOutputChannelSummariesChannelStorage {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsListChannelsOutputChannelSummariesChannelStorageCustomerManagedS3
}

type AwsIoTAnalyticsListChannelsOutputChannelSummariesChannelStorageCustomerManagedS3 {
  bucket: String
  keyPrefix: String
  roleArn: String
}

input AwsIoTAnalyticsListChannelsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTAnalyticsListDatasetContentsOutput {
  datasetContentSummaries: [AwsIoTAnalyticsListDatasetContentsOutputDatasetContentSummaries]
  nextToken: String
}

type AwsIoTAnalyticsListDatasetContentsOutputDatasetContentSummaries {
  version: String
  status: AwsIoTAnalyticsS4r
  creationTime: Date
  scheduleTime: Date
  completionTime: Date
}

input AwsIoTAnalyticsListDatasetContentsInput {
  datasetName: String!
  nextToken: String
  maxResults: Int
  scheduledOnOrAfter: Date
  scheduledBefore: Date
}

type AwsIoTAnalyticsListDatasetsOutput {
  datasetSummaries: [AwsIoTAnalyticsListDatasetsOutputDatasetSummaries]
  nextToken: String
}

type AwsIoTAnalyticsListDatasetsOutputDatasetSummaries {
  datasetName: String
  status: String
  creationTime: Date
  lastUpdateTime: Date
  triggers: [AwsIoTAnalyticsS1l]
  actions: [AwsIoTAnalyticsListDatasetsOutputDatasetSummariesActions]
}

type AwsIoTAnalyticsListDatasetsOutputDatasetSummariesActions {
  actionName: String
  actionType: String
}

input AwsIoTAnalyticsListDatasetsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTAnalyticsListDatastoresOutput {
  datastoreSummaries: [AwsIoTAnalyticsListDatastoresOutputDatastoreSummaries]
  nextToken: String
}

type AwsIoTAnalyticsListDatastoresOutputDatastoreSummaries {
  datastoreName: String
  datastoreStorage: AwsIoTAnalyticsListDatastoresOutputDatastoreSummariesDatastoreStorage
  status: String
  creationTime: Date
  lastUpdateTime: Date
  lastMessageArrivalTime: Date
  fileFormatType: String
  datastorePartitions: AwsIoTAnalyticsS2s
}

type AwsIoTAnalyticsListDatastoresOutputDatastoreSummariesDatastoreStorage {
  serviceManagedS3: JSON
  customerManagedS3: AwsIoTAnalyticsListDatastoresOutputDatastoreSummariesDatastoreStorageCustomerManagedS3
}

type AwsIoTAnalyticsListDatastoresOutputDatastoreSummariesDatastoreStorageCustomerManagedS3 {
  bucket: String
  keyPrefix: String
  roleArn: String
}

input AwsIoTAnalyticsListDatastoresInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTAnalyticsListPipelinesOutput {
  pipelineSummaries: [AwsIoTAnalyticsListPipelinesOutputPipelineSummaries]
  nextToken: String
}

type AwsIoTAnalyticsListPipelinesOutputPipelineSummaries {
  pipelineName: String
  reprocessingSummaries: [AwsIoTAnalyticsS4j]
  creationTime: Date
  lastUpdateTime: Date
}

input AwsIoTAnalyticsListPipelinesInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTAnalyticsListTagsForResourceOutput {
  tags: [AwsIoTAnalyticsSq]
}

type AwsIoTAnalyticsSq {
  key: String!
  value: String!
}

input AwsIoTAnalyticsListTagsForResourceInput {
  resourceArn: String!
}

input AwsIoTAnalyticsPutLoggingOptionsInput {
  loggingOptions: AwsIoTAnalyticsS4dInput!
}

input AwsIoTAnalyticsS4dInput {
  roleArn: String!
  level: String!
  enabled: Boolean!
}

type AwsIoTAnalyticsRunPipelineActivityOutput {
  payloads: [JSON]
  logResult: String
}

input AwsIoTAnalyticsRunPipelineActivityInput {
  pipelineActivity: AwsIoTAnalyticsS33Input!
  payloads: [JSON]!
}

type AwsIoTAnalyticsSampleChannelDataOutput {
  payloads: [JSON]
}

input AwsIoTAnalyticsSampleChannelDataInput {
  channelName: String!
  maxMessages: Int
  startTime: Date
  endTime: Date
}

type AwsIoTAnalyticsStartPipelineReprocessingOutput {
  reprocessingId: String
}

input AwsIoTAnalyticsStartPipelineReprocessingInput {
  pipelineName: String!
  startTime: Date
  endTime: Date
  channelMessages: AwsIoTAnalyticsStartPipelineReprocessingChannelMessagesInput
}

input AwsIoTAnalyticsStartPipelineReprocessingChannelMessagesInput {
  s3Paths: [String]
}

input AwsIoTAnalyticsTagResourceInput {
  resourceArn: String!
  tags: [AwsIoTAnalyticsSqInput]!
}

input AwsIoTAnalyticsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsIoTAnalyticsUpdateChannelInput {
  channelName: String!
  channelStorage: AwsIoTAnalyticsShInput
  retentionPeriod: AwsIoTAnalyticsSnInput
}

input AwsIoTAnalyticsUpdateDatasetInput {
  datasetName: String!
  actions: [AwsIoTAnalyticsSyInput]!
  triggers: [AwsIoTAnalyticsS1lInput]
  contentDeliveryRules: [AwsIoTAnalyticsS1qInput]
  retentionPeriod: AwsIoTAnalyticsSnInput
  versioningConfiguration: AwsIoTAnalyticsS21Input
  lateDataRules: [AwsIoTAnalyticsS24Input]
}

input AwsIoTAnalyticsUpdateDatastoreInput {
  datastoreName: String!
  retentionPeriod: AwsIoTAnalyticsSnInput
  datastoreStorage: AwsIoTAnalyticsS2hInput
  fileFormatConfiguration: AwsIoTAnalyticsS2kInput
}

input AwsIoTAnalyticsUpdatePipelineInput {
  pipelineName: String!
  pipelineActivities: [AwsIoTAnalyticsS33Input]!
}

"""AWS IoT Events (2018-07-27)"""
type AwsIoTEvents {
  createAlarmModel(input: AwsIoTEventsCreateAlarmModelInput!, config: AwsConfig): AwsIoTEventsCreateAlarmModelOutput
  createDetectorModel(input: AwsIoTEventsCreateDetectorModelInput!, config: AwsConfig): AwsIoTEventsCreateDetectorModelOutput
  createInput(input: AwsIoTEventsCreateInputInput!, config: AwsConfig): AwsIoTEventsCreateInputOutput
  deleteAlarmModel(input: AwsIoTEventsDeleteAlarmModelInput!, config: AwsConfig): JSON
  deleteDetectorModel(input: AwsIoTEventsDeleteDetectorModelInput!, config: AwsConfig): JSON
  deleteInput(input: AwsIoTEventsDeleteInputInput!, config: AwsConfig): JSON
  describeAlarmModel(input: AwsIoTEventsDescribeAlarmModelInput!, config: AwsConfig): AwsIoTEventsDescribeAlarmModelOutput
  describeDetectorModel(input: AwsIoTEventsDescribeDetectorModelInput!, config: AwsConfig): AwsIoTEventsDescribeDetectorModelOutput
  describeDetectorModelAnalysis(input: AwsIoTEventsDescribeDetectorModelAnalysisInput!, config: AwsConfig): AwsIoTEventsDescribeDetectorModelAnalysisOutput
  describeInput(input: AwsIoTEventsDescribeInputInput!, config: AwsConfig): AwsIoTEventsDescribeInputOutput
  describeLoggingOptions(input: JSON, config: AwsConfig): AwsIoTEventsDescribeLoggingOptionsOutput
  getDetectorModelAnalysisResults(input: AwsIoTEventsGetDetectorModelAnalysisResultsInput!, config: AwsConfig): AwsIoTEventsGetDetectorModelAnalysisResultsOutput
  listAlarmModelVersions(input: AwsIoTEventsListAlarmModelVersionsInput!, config: AwsConfig): AwsIoTEventsListAlarmModelVersionsOutput
  listAlarmModels(input: AwsIoTEventsListAlarmModelsInput, config: AwsConfig): AwsIoTEventsListAlarmModelsOutput
  listDetectorModelVersions(input: AwsIoTEventsListDetectorModelVersionsInput!, config: AwsConfig): AwsIoTEventsListDetectorModelVersionsOutput
  listDetectorModels(input: AwsIoTEventsListDetectorModelsInput, config: AwsConfig): AwsIoTEventsListDetectorModelsOutput
  listInputRoutings(input: AwsIoTEventsListInputRoutingsInput!, config: AwsConfig): AwsIoTEventsListInputRoutingsOutput
  listInputs(input: AwsIoTEventsListInputsInput, config: AwsConfig): AwsIoTEventsListInputsOutput
  listTagsForResource(input: AwsIoTEventsListTagsForResourceInput!, config: AwsConfig): AwsIoTEventsListTagsForResourceOutput
  putLoggingOptions(input: AwsIoTEventsPutLoggingOptionsInput!, config: AwsConfig): JSON
  startDetectorModelAnalysis(input: AwsIoTEventsStartDetectorModelAnalysisInput!, config: AwsConfig): AwsIoTEventsStartDetectorModelAnalysisOutput
  tagResource(input: AwsIoTEventsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoTEventsUntagResourceInput!, config: AwsConfig): JSON
  updateAlarmModel(input: AwsIoTEventsUpdateAlarmModelInput!, config: AwsConfig): AwsIoTEventsUpdateAlarmModelOutput
  updateDetectorModel(input: AwsIoTEventsUpdateDetectorModelInput!, config: AwsConfig): AwsIoTEventsUpdateDetectorModelOutput
  updateInput(input: AwsIoTEventsUpdateInputInput!, config: AwsConfig): AwsIoTEventsUpdateInputOutput
}

type AwsIoTEventsCreateAlarmModelOutput {
  creationTime: Date
  alarmModelArn: String
  alarmModelVersion: String
  lastUpdateTime: Date
  status: String
}

input AwsIoTEventsCreateAlarmModelInput {
  alarmModelName: String!
  alarmModelDescription: String
  roleArn: String!
  tags: [AwsIoTEventsS5Input]
  key: String
  severity: Int
  alarmRule: AwsIoTEventsSbInput!
  alarmNotification: AwsIoTEventsSgInput
  alarmEventActions: AwsIoTEventsS13Input
  alarmCapabilities: AwsIoTEventsS23Input
}

input AwsIoTEventsS5Input {
  key: String!
  value: String!
}

input AwsIoTEventsSbInput {
  simpleRule: AwsIoTEventsSbSimpleRuleInput
}

input AwsIoTEventsSbSimpleRuleInput {
  inputProperty: String!
  comparisonOperator: String!
  threshold: String!
}

input AwsIoTEventsSgInput {
  notificationActions: [AwsIoTEventsSgNotificationActionsInput]
}

input AwsIoTEventsSgNotificationActionsInput {
  action: AwsIoTEventsSgNotificationActionsActionInput!
  smsConfigurations: [AwsIoTEventsSgNotificationActionsSmsConfigurationsInput]
  emailConfigurations: [AwsIoTEventsSgNotificationActionsEmailConfigurationsInput]
}

input AwsIoTEventsSgNotificationActionsActionInput {
  lambdaAction: AwsIoTEventsSkInput
}

input AwsIoTEventsSkInput {
  functionArn: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsSlInput {
  contentExpression: String!
  type: String!
}

input AwsIoTEventsSgNotificationActionsSmsConfigurationsInput {
  senderId: String
  additionalMessage: String
  recipients: [AwsIoTEventsSsInput]!
}

input AwsIoTEventsSsInput {
  ssoIdentity: AwsIoTEventsSsSsoIdentityInput
}

input AwsIoTEventsSsSsoIdentityInput {
  identityStoreId: String!
  userId: String
}

input AwsIoTEventsSgNotificationActionsEmailConfigurationsInput {
  from: String!
  content: AwsIoTEventsSgNotificationActionsEmailConfigurationsContentInput
  recipients: AwsIoTEventsSgNotificationActionsEmailConfigurationsRecipientsInput!
}

input AwsIoTEventsSgNotificationActionsEmailConfigurationsContentInput {
  subject: String
  additionalMessage: String
}

input AwsIoTEventsSgNotificationActionsEmailConfigurationsRecipientsInput {
  to: [AwsIoTEventsSsInput]
}

input AwsIoTEventsS13Input {
  alarmActions: [AwsIoTEventsS13AlarmActionsInput]
}

input AwsIoTEventsS13AlarmActionsInput {
  sns: AwsIoTEventsS16Input
  iotTopicPublish: AwsIoTEventsS17Input
  lambda: AwsIoTEventsSkInput
  iotEvents: AwsIoTEventsS19Input
  sqs: AwsIoTEventsS1bInput
  firehose: AwsIoTEventsS1eInput
  dynamoDB: AwsIoTEventsS1hInput
  dynamoDBv2: AwsIoTEventsS1nInput
  iotSiteWise: AwsIoTEventsS1oInput
}

input AwsIoTEventsS16Input {
  targetArn: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS17Input {
  mqttTopic: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS19Input {
  inputName: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS1bInput {
  queueUrl: String!
  useBase64: Boolean
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS1eInput {
  deliveryStreamName: String!
  separator: String
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS1hInput {
  hashKeyType: String
  hashKeyField: String!
  hashKeyValue: String!
  rangeKeyType: String
  rangeKeyField: String
  rangeKeyValue: String
  operation: String
  payloadField: String
  tableName: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS1nInput {
  tableName: String!
  payload: AwsIoTEventsSlInput
}

input AwsIoTEventsS1oInput {
  entryId: String
  assetId: String
  propertyId: String
  propertyAlias: String
  propertyValue: AwsIoTEventsS1oPropertyValueInput
}

input AwsIoTEventsS1oPropertyValueInput {
  value: AwsIoTEventsS1oPropertyValueValueInput
  timestamp: AwsIoTEventsS1oPropertyValueTimestampInput
  quality: String
}

input AwsIoTEventsS1oPropertyValueValueInput {
  stringValue: String
  integerValue: String
  doubleValue: String
  booleanValue: String
}

input AwsIoTEventsS1oPropertyValueTimestampInput {
  timeInSeconds: String!
  offsetInNanos: String
}

input AwsIoTEventsS23Input {
  initializationConfiguration: AwsIoTEventsS23InitializationConfigurationInput
  acknowledgeFlow: AwsIoTEventsS23AcknowledgeFlowInput
}

input AwsIoTEventsS23InitializationConfigurationInput {
  disabledOnInitialization: Boolean!
}

input AwsIoTEventsS23AcknowledgeFlowInput {
  enabled: Boolean!
}

type AwsIoTEventsCreateDetectorModelOutput {
  detectorModelConfiguration: AwsIoTEventsS35
}

type AwsIoTEventsS35 {
  detectorModelName: String
  detectorModelVersion: String
  detectorModelDescription: String
  detectorModelArn: String
  roleArn: String
  creationTime: Date
  lastUpdateTime: Date
  status: String
  key: String
  evaluationMethod: String
}

input AwsIoTEventsCreateDetectorModelInput {
  detectorModelName: String!
  detectorModelDefinition: AwsIoTEventsS2fInput!
  detectorModelDescription: String
  key: String
  roleArn: String!
  tags: [AwsIoTEventsS5Input]
  evaluationMethod: String
}

input AwsIoTEventsS2fInput {
  states: [AwsIoTEventsS2fStatesInput]!
  initialStateName: String!
}

input AwsIoTEventsS2fStatesInput {
  stateName: String!
  onInput: AwsIoTEventsS2fStatesOnInputInput
  onEnter: AwsIoTEventsS2fStatesOnEnterInput
  onExit: AwsIoTEventsS2fStatesOnExitInput
}

input AwsIoTEventsS2fStatesOnInputInput {
  events: [AwsIoTEventsS2kInput]
  transitionEvents: [AwsIoTEventsS2fStatesOnInputTransitionEventsInput]
}

input AwsIoTEventsS2kInput {
  eventName: String!
  condition: String
  actions: [AwsIoTEventsS2oInput]
}

input AwsIoTEventsS2oInput {
  setVariable: AwsIoTEventsS2oSetVariableInput
  sns: AwsIoTEventsS16Input
  iotTopicPublish: AwsIoTEventsS17Input
  setTimer: AwsIoTEventsS2oSetTimerInput
  clearTimer: AwsIoTEventsS2oClearTimerInput
  resetTimer: AwsIoTEventsS2oResetTimerInput
  lambda: AwsIoTEventsSkInput
  iotEvents: AwsIoTEventsS19Input
  sqs: AwsIoTEventsS1bInput
  firehose: AwsIoTEventsS1eInput
  dynamoDB: AwsIoTEventsS1hInput
  dynamoDBv2: AwsIoTEventsS1nInput
  iotSiteWise: AwsIoTEventsS1oInput
}

input AwsIoTEventsS2oSetVariableInput {
  variableName: String!
  value: String!
}

input AwsIoTEventsS2oSetTimerInput {
  timerName: String!
  seconds: Int
  durationExpression: String
}

input AwsIoTEventsS2oClearTimerInput {
  timerName: String!
}

input AwsIoTEventsS2oResetTimerInput {
  timerName: String!
}

input AwsIoTEventsS2fStatesOnInputTransitionEventsInput {
  eventName: String!
  condition: String!
  actions: [AwsIoTEventsS2oInput]
  nextState: String!
}

input AwsIoTEventsS2fStatesOnEnterInput {
  events: [AwsIoTEventsS2kInput]
}

input AwsIoTEventsS2fStatesOnExitInput {
  events: [AwsIoTEventsS2kInput]
}

type AwsIoTEventsCreateInputOutput {
  inputConfiguration: AwsIoTEventsS3f
}

type AwsIoTEventsS3f {
  inputName: String!
  inputDescription: String
  inputArn: String!
  creationTime: Date!
  lastUpdateTime: Date!
  status: String!
}

input AwsIoTEventsCreateInputInput {
  inputName: String!
  inputDescription: String
  inputDefinition: AwsIoTEventsS3bInput!
  tags: [AwsIoTEventsS5Input]
}

input AwsIoTEventsS3bInput {
  attributes: [AwsIoTEventsS3bAttributesInput]!
}

input AwsIoTEventsS3bAttributesInput {
  jsonPath: String!
}

input AwsIoTEventsDeleteAlarmModelInput {
  alarmModelName: String!
}

input AwsIoTEventsDeleteDetectorModelInput {
  detectorModelName: String!
}

input AwsIoTEventsDeleteInputInput {
  inputName: String!
}

type AwsIoTEventsDescribeAlarmModelOutput {
  creationTime: Date
  alarmModelArn: String
  alarmModelVersion: String
  lastUpdateTime: Date
  status: String
  statusMessage: String
  alarmModelName: String
  alarmModelDescription: String
  roleArn: String
  key: String
  severity: Int
  alarmRule: AwsIoTEventsSb
  alarmNotification: AwsIoTEventsSg
  alarmEventActions: AwsIoTEventsS13
  alarmCapabilities: AwsIoTEventsS23
}

type AwsIoTEventsSb {
  simpleRule: AwsIoTEventsSbSimpleRule
}

type AwsIoTEventsSbSimpleRule {
  inputProperty: String!
  comparisonOperator: String!
  threshold: String!
}

type AwsIoTEventsSg {
  notificationActions: [AwsIoTEventsSgNotificationActions]
}

type AwsIoTEventsSgNotificationActions {
  action: AwsIoTEventsSgNotificationActionsAction!
  smsConfigurations: [AwsIoTEventsSgNotificationActionsSmsConfigurations]
  emailConfigurations: [AwsIoTEventsSgNotificationActionsEmailConfigurations]
}

type AwsIoTEventsSgNotificationActionsAction {
  lambdaAction: AwsIoTEventsSk
}

type AwsIoTEventsSk {
  functionArn: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsSl {
  contentExpression: String!
  type: String!
}

type AwsIoTEventsSgNotificationActionsSmsConfigurations {
  senderId: String
  additionalMessage: String
  recipients: [AwsIoTEventsSs]!
}

type AwsIoTEventsSs {
  ssoIdentity: AwsIoTEventsSsSsoIdentity
}

type AwsIoTEventsSsSsoIdentity {
  identityStoreId: String!
  userId: String
}

type AwsIoTEventsSgNotificationActionsEmailConfigurations {
  from: String!
  content: AwsIoTEventsSgNotificationActionsEmailConfigurationsContent
  recipients: AwsIoTEventsSgNotificationActionsEmailConfigurationsRecipients!
}

type AwsIoTEventsSgNotificationActionsEmailConfigurationsContent {
  subject: String
  additionalMessage: String
}

type AwsIoTEventsSgNotificationActionsEmailConfigurationsRecipients {
  to: [AwsIoTEventsSs]
}

type AwsIoTEventsS13 {
  alarmActions: [AwsIoTEventsS13AlarmActions]
}

type AwsIoTEventsS13AlarmActions {
  sns: AwsIoTEventsS16
  iotTopicPublish: AwsIoTEventsS17
  lambda: AwsIoTEventsSk
  iotEvents: AwsIoTEventsS19
  sqs: AwsIoTEventsS1b
  firehose: AwsIoTEventsS1e
  dynamoDB: AwsIoTEventsS1h
  dynamoDBv2: AwsIoTEventsS1n
  iotSiteWise: AwsIoTEventsS1o
}

type AwsIoTEventsS16 {
  targetArn: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS17 {
  mqttTopic: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS19 {
  inputName: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS1b {
  queueUrl: String!
  useBase64: Boolean
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS1e {
  deliveryStreamName: String!
  separator: String
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS1h {
  hashKeyType: String
  hashKeyField: String!
  hashKeyValue: String!
  rangeKeyType: String
  rangeKeyField: String
  rangeKeyValue: String
  operation: String
  payloadField: String
  tableName: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS1n {
  tableName: String!
  payload: AwsIoTEventsSl
}

type AwsIoTEventsS1o {
  entryId: String
  assetId: String
  propertyId: String
  propertyAlias: String
  propertyValue: AwsIoTEventsS1oPropertyValue
}

type AwsIoTEventsS1oPropertyValue {
  value: AwsIoTEventsS1oPropertyValueValue
  timestamp: AwsIoTEventsS1oPropertyValueTimestamp
  quality: String
}

type AwsIoTEventsS1oPropertyValueValue {
  stringValue: String
  integerValue: String
  doubleValue: String
  booleanValue: String
}

type AwsIoTEventsS1oPropertyValueTimestamp {
  timeInSeconds: String!
  offsetInNanos: String
}

type AwsIoTEventsS23 {
  initializationConfiguration: AwsIoTEventsS23InitializationConfiguration
  acknowledgeFlow: AwsIoTEventsS23AcknowledgeFlow
}

type AwsIoTEventsS23InitializationConfiguration {
  disabledOnInitialization: Boolean!
}

type AwsIoTEventsS23AcknowledgeFlow {
  enabled: Boolean!
}

input AwsIoTEventsDescribeAlarmModelInput {
  alarmModelName: String!
  alarmModelVersion: String
}

type AwsIoTEventsDescribeDetectorModelOutput {
  detectorModel: AwsIoTEventsDescribeDetectorModelOutputDetectorModel
}

type AwsIoTEventsDescribeDetectorModelOutputDetectorModel {
  detectorModelDefinition: AwsIoTEventsS2f
  detectorModelConfiguration: AwsIoTEventsS35
}

type AwsIoTEventsS2f {
  states: [AwsIoTEventsS2fStates]!
  initialStateName: String!
}

type AwsIoTEventsS2fStates {
  stateName: String!
  onInput: AwsIoTEventsS2fStatesOnInput
  onEnter: AwsIoTEventsS2fStatesOnEnter
  onExit: AwsIoTEventsS2fStatesOnExit
}

type AwsIoTEventsS2fStatesOnInput {
  events: [AwsIoTEventsS2k]
  transitionEvents: [AwsIoTEventsS2fStatesOnInputTransitionEvents]
}

type AwsIoTEventsS2k {
  eventName: String!
  condition: String
  actions: [AwsIoTEventsS2o]
}

type AwsIoTEventsS2o {
  setVariable: AwsIoTEventsS2oSetVariable
  sns: AwsIoTEventsS16
  iotTopicPublish: AwsIoTEventsS17
  setTimer: AwsIoTEventsS2oSetTimer
  clearTimer: AwsIoTEventsS2oClearTimer
  resetTimer: AwsIoTEventsS2oResetTimer
  lambda: AwsIoTEventsSk
  iotEvents: AwsIoTEventsS19
  sqs: AwsIoTEventsS1b
  firehose: AwsIoTEventsS1e
  dynamoDB: AwsIoTEventsS1h
  dynamoDBv2: AwsIoTEventsS1n
  iotSiteWise: AwsIoTEventsS1o
}

type AwsIoTEventsS2oSetVariable {
  variableName: String!
  value: String!
}

type AwsIoTEventsS2oSetTimer {
  timerName: String!
  seconds: Int
  durationExpression: String
}

type AwsIoTEventsS2oClearTimer {
  timerName: String!
}

type AwsIoTEventsS2oResetTimer {
  timerName: String!
}

type AwsIoTEventsS2fStatesOnInputTransitionEvents {
  eventName: String!
  condition: String!
  actions: [AwsIoTEventsS2o]
  nextState: String!
}

type AwsIoTEventsS2fStatesOnEnter {
  events: [AwsIoTEventsS2k]
}

type AwsIoTEventsS2fStatesOnExit {
  events: [AwsIoTEventsS2k]
}

input AwsIoTEventsDescribeDetectorModelInput {
  detectorModelName: String!
  detectorModelVersion: String
}

type AwsIoTEventsDescribeDetectorModelAnalysisOutput {
  status: String
}

input AwsIoTEventsDescribeDetectorModelAnalysisInput {
  analysisId: String!
}

type AwsIoTEventsDescribeInputOutput {
  input: AwsIoTEventsDescribeInputOutputInput
}

type AwsIoTEventsDescribeInputOutputInput {
  inputConfiguration: AwsIoTEventsS3f
  inputDefinition: AwsIoTEventsS3b
}

type AwsIoTEventsS3b {
  attributes: [AwsIoTEventsS3bAttributes]!
}

type AwsIoTEventsS3bAttributes {
  jsonPath: String!
}

input AwsIoTEventsDescribeInputInput {
  inputName: String!
}

type AwsIoTEventsDescribeLoggingOptionsOutput {
  loggingOptions: AwsIoTEventsS43
}

type AwsIoTEventsS43 {
  roleArn: String!
  level: String!
  enabled: Boolean!
  detectorDebugOptions: [AwsIoTEventsS43DetectorDebugOptions]
}

type AwsIoTEventsS43DetectorDebugOptions {
  detectorModelName: String!
  keyValue: String
}

type AwsIoTEventsGetDetectorModelAnalysisResultsOutput {
  analysisResults: [AwsIoTEventsGetDetectorModelAnalysisResultsOutputAnalysisResults]
  nextToken: String
}

type AwsIoTEventsGetDetectorModelAnalysisResultsOutputAnalysisResults {
  type: String
  level: String
  message: String
  locations: [AwsIoTEventsGetDetectorModelAnalysisResultsOutputAnalysisResultsLocations]
}

type AwsIoTEventsGetDetectorModelAnalysisResultsOutputAnalysisResultsLocations {
  path: String
}

input AwsIoTEventsGetDetectorModelAnalysisResultsInput {
  analysisId: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListAlarmModelVersionsOutput {
  alarmModelVersionSummaries: [AwsIoTEventsListAlarmModelVersionsOutputAlarmModelVersionSummaries]
  nextToken: String
}

type AwsIoTEventsListAlarmModelVersionsOutputAlarmModelVersionSummaries {
  alarmModelName: String
  alarmModelArn: String
  alarmModelVersion: String
  roleArn: String
  creationTime: Date
  lastUpdateTime: Date
  status: String
  statusMessage: String
}

input AwsIoTEventsListAlarmModelVersionsInput {
  alarmModelName: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListAlarmModelsOutput {
  alarmModelSummaries: [AwsIoTEventsListAlarmModelsOutputAlarmModelSummaries]
  nextToken: String
}

type AwsIoTEventsListAlarmModelsOutputAlarmModelSummaries {
  creationTime: Date
  alarmModelDescription: String
  alarmModelName: String
}

input AwsIoTEventsListAlarmModelsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListDetectorModelVersionsOutput {
  detectorModelVersionSummaries: [AwsIoTEventsListDetectorModelVersionsOutputDetectorModelVersionSummaries]
  nextToken: String
}

type AwsIoTEventsListDetectorModelVersionsOutputDetectorModelVersionSummaries {
  detectorModelName: String
  detectorModelVersion: String
  detectorModelArn: String
  roleArn: String
  creationTime: Date
  lastUpdateTime: Date
  status: String
  evaluationMethod: String
}

input AwsIoTEventsListDetectorModelVersionsInput {
  detectorModelName: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListDetectorModelsOutput {
  detectorModelSummaries: [AwsIoTEventsListDetectorModelsOutputDetectorModelSummaries]
  nextToken: String
}

type AwsIoTEventsListDetectorModelsOutputDetectorModelSummaries {
  detectorModelName: String
  detectorModelDescription: String
  creationTime: Date
}

input AwsIoTEventsListDetectorModelsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListInputRoutingsOutput {
  routedResources: [AwsIoTEventsListInputRoutingsOutputRoutedResources]
  nextToken: String
}

type AwsIoTEventsListInputRoutingsOutputRoutedResources {
  name: String
  arn: String
}

input AwsIoTEventsListInputRoutingsInput {
  inputIdentifier: AwsIoTEventsListInputRoutingsInputIdentifierInput!
  maxResults: Int
  nextToken: String
}

input AwsIoTEventsListInputRoutingsInputIdentifierInput {
  iotEventsInputIdentifier: AwsIoTEventsListInputRoutingsInputIdentifierIotEventsInputIdentifierInput
  iotSiteWiseInputIdentifier: AwsIoTEventsListInputRoutingsInputIdentifierIotSiteWiseInputIdentifierInput
}

input AwsIoTEventsListInputRoutingsInputIdentifierIotEventsInputIdentifierInput {
  inputName: String!
}

input AwsIoTEventsListInputRoutingsInputIdentifierIotSiteWiseInputIdentifierInput {
  iotSiteWiseAssetModelPropertyIdentifier: AwsIoTEventsListInputRoutingsInputIdentifierIotSiteWiseInputIdentifierIotSiteWiseAssetModelPropertyIdentifierInput
}

input AwsIoTEventsListInputRoutingsInputIdentifierIotSiteWiseInputIdentifierIotSiteWiseAssetModelPropertyIdentifierInput {
  assetModelId: String!
  propertyId: String!
}

type AwsIoTEventsListInputsOutput {
  inputSummaries: [AwsIoTEventsListInputsOutputInputSummaries]
  nextToken: String
}

type AwsIoTEventsListInputsOutputInputSummaries {
  inputName: String
  inputDescription: String
  inputArn: String
  creationTime: Date
  lastUpdateTime: Date
  status: String
}

input AwsIoTEventsListInputsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsListTagsForResourceOutput {
  tags: [AwsIoTEventsS5]
}

type AwsIoTEventsS5 {
  key: String!
  value: String!
}

input AwsIoTEventsListTagsForResourceInput {
  resourceArn: String!
}

input AwsIoTEventsPutLoggingOptionsInput {
  loggingOptions: AwsIoTEventsS43Input!
}

input AwsIoTEventsS43Input {
  roleArn: String!
  level: String!
  enabled: Boolean!
  detectorDebugOptions: [AwsIoTEventsS43DetectorDebugOptionsInput]
}

input AwsIoTEventsS43DetectorDebugOptionsInput {
  detectorModelName: String!
  keyValue: String
}

type AwsIoTEventsStartDetectorModelAnalysisOutput {
  analysisId: String
}

input AwsIoTEventsStartDetectorModelAnalysisInput {
  detectorModelDefinition: AwsIoTEventsS2fInput!
}

input AwsIoTEventsTagResourceInput {
  resourceArn: String!
  tags: [AwsIoTEventsS5Input]!
}

input AwsIoTEventsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsIoTEventsUpdateAlarmModelOutput {
  creationTime: Date
  alarmModelArn: String
  alarmModelVersion: String
  lastUpdateTime: Date
  status: String
}

input AwsIoTEventsUpdateAlarmModelInput {
  alarmModelName: String!
  alarmModelDescription: String
  roleArn: String!
  severity: Int
  alarmRule: AwsIoTEventsSbInput!
  alarmNotification: AwsIoTEventsSgInput
  alarmEventActions: AwsIoTEventsS13Input
  alarmCapabilities: AwsIoTEventsS23Input
}

type AwsIoTEventsUpdateDetectorModelOutput {
  detectorModelConfiguration: AwsIoTEventsS35
}

input AwsIoTEventsUpdateDetectorModelInput {
  detectorModelName: String!
  detectorModelDefinition: AwsIoTEventsS2fInput!
  detectorModelDescription: String
  roleArn: String!
  evaluationMethod: String
}

type AwsIoTEventsUpdateInputOutput {
  inputConfiguration: AwsIoTEventsS3f
}

input AwsIoTEventsUpdateInputInput {
  inputName: String!
  inputDescription: String
  inputDefinition: AwsIoTEventsS3bInput!
}

"""AWS IoT Events Data (2018-10-23)"""
type AwsIoTEventsData {
  batchAcknowledgeAlarm(input: AwsIoTEventsDataBatchAcknowledgeAlarmInput!, config: AwsConfig): AwsIoTEventsDataBatchAcknowledgeAlarmOutput
  batchDisableAlarm(input: AwsIoTEventsDataBatchDisableAlarmInput!, config: AwsConfig): AwsIoTEventsDataBatchDisableAlarmOutput
  batchEnableAlarm(input: AwsIoTEventsDataBatchEnableAlarmInput!, config: AwsConfig): AwsIoTEventsDataBatchEnableAlarmOutput
  batchPutMessage(input: AwsIoTEventsDataBatchPutMessageInput!, config: AwsConfig): AwsIoTEventsDataBatchPutMessageOutput
  batchResetAlarm(input: AwsIoTEventsDataBatchResetAlarmInput!, config: AwsConfig): AwsIoTEventsDataBatchResetAlarmOutput
  batchSnoozeAlarm(input: AwsIoTEventsDataBatchSnoozeAlarmInput!, config: AwsConfig): AwsIoTEventsDataBatchSnoozeAlarmOutput
  batchUpdateDetector(input: AwsIoTEventsDataBatchUpdateDetectorInput!, config: AwsConfig): AwsIoTEventsDataBatchUpdateDetectorOutput
  describeAlarm(input: AwsIoTEventsDataDescribeAlarmInput!, config: AwsConfig): AwsIoTEventsDataDescribeAlarmOutput
  describeDetector(input: AwsIoTEventsDataDescribeDetectorInput!, config: AwsConfig): AwsIoTEventsDataDescribeDetectorOutput
  listAlarms(input: AwsIoTEventsDataListAlarmsInput!, config: AwsConfig): AwsIoTEventsDataListAlarmsOutput
  listDetectors(input: AwsIoTEventsDataListDetectorsInput!, config: AwsConfig): AwsIoTEventsDataListDetectorsOutput
}

type AwsIoTEventsDataBatchAcknowledgeAlarmOutput {
  errorEntries: [AwsIoTEventsDataS9]
}

type AwsIoTEventsDataS9 {
  requestId: String
  errorCode: String
  errorMessage: String
}

input AwsIoTEventsDataBatchAcknowledgeAlarmInput {
  acknowledgeActionRequests: [AwsIoTEventsDataBatchAcknowledgeAlarmAcknowledgeActionRequestsInput]!
}

input AwsIoTEventsDataBatchAcknowledgeAlarmAcknowledgeActionRequestsInput {
  requestId: String!
  alarmModelName: String!
  keyValue: String
  note: String
}

type AwsIoTEventsDataBatchDisableAlarmOutput {
  errorEntries: [AwsIoTEventsDataS9]
}

input AwsIoTEventsDataBatchDisableAlarmInput {
  disableActionRequests: [AwsIoTEventsDataBatchDisableAlarmDisableActionRequestsInput]!
}

input AwsIoTEventsDataBatchDisableAlarmDisableActionRequestsInput {
  requestId: String!
  alarmModelName: String!
  keyValue: String
  note: String
}

type AwsIoTEventsDataBatchEnableAlarmOutput {
  errorEntries: [AwsIoTEventsDataS9]
}

input AwsIoTEventsDataBatchEnableAlarmInput {
  enableActionRequests: [AwsIoTEventsDataBatchEnableAlarmEnableActionRequestsInput]!
}

input AwsIoTEventsDataBatchEnableAlarmEnableActionRequestsInput {
  requestId: String!
  alarmModelName: String!
  keyValue: String
  note: String
}

type AwsIoTEventsDataBatchPutMessageOutput {
  BatchPutMessageErrorEntries: [AwsIoTEventsDataBatchPutMessageOutputBatchPutMessageErrorEntries]
}

type AwsIoTEventsDataBatchPutMessageOutputBatchPutMessageErrorEntries {
  messageId: String
  errorCode: String
  errorMessage: String
}

input AwsIoTEventsDataBatchPutMessageInput {
  messages: [AwsIoTEventsDataBatchPutMessageMessagesInput]!
}

input AwsIoTEventsDataBatchPutMessageMessagesInput {
  messageId: String!
  inputName: String!
  payload: JSON!
  timestamp: AwsIoTEventsDataBatchPutMessageMessagesTimestampInput
}

input AwsIoTEventsDataBatchPutMessageMessagesTimestampInput {
  timeInMillis: JSON
}

type AwsIoTEventsDataBatchResetAlarmOutput {
  errorEntries: [AwsIoTEventsDataS9]
}

input AwsIoTEventsDataBatchResetAlarmInput {
  resetActionRequests: [AwsIoTEventsDataBatchResetAlarmResetActionRequestsInput]!
}

input AwsIoTEventsDataBatchResetAlarmResetActionRequestsInput {
  requestId: String!
  alarmModelName: String!
  keyValue: String
  note: String
}

type AwsIoTEventsDataBatchSnoozeAlarmOutput {
  errorEntries: [AwsIoTEventsDataS9]
}

input AwsIoTEventsDataBatchSnoozeAlarmInput {
  snoozeActionRequests: [AwsIoTEventsDataBatchSnoozeAlarmSnoozeActionRequestsInput]!
}

input AwsIoTEventsDataBatchSnoozeAlarmSnoozeActionRequestsInput {
  requestId: String!
  alarmModelName: String!
  keyValue: String
  note: String
  snoozeDuration: Int!
}

type AwsIoTEventsDataBatchUpdateDetectorOutput {
  batchUpdateDetectorErrorEntries: [AwsIoTEventsDataBatchUpdateDetectorOutputBatchUpdateDetectorErrorEntries]
}

type AwsIoTEventsDataBatchUpdateDetectorOutputBatchUpdateDetectorErrorEntries {
  messageId: String
  errorCode: String
  errorMessage: String
}

input AwsIoTEventsDataBatchUpdateDetectorInput {
  detectors: [AwsIoTEventsDataBatchUpdateDetectorDetectorsInput]!
}

input AwsIoTEventsDataBatchUpdateDetectorDetectorsInput {
  messageId: String!
  detectorModelName: String!
  keyValue: String
  state: AwsIoTEventsDataBatchUpdateDetectorDetectorsStateInput!
}

input AwsIoTEventsDataBatchUpdateDetectorDetectorsStateInput {
  stateName: String!
  variables: [AwsIoTEventsDataBatchUpdateDetectorDetectorsStateVariablesInput]!
  timers: [AwsIoTEventsDataBatchUpdateDetectorDetectorsStateTimersInput]!
}

input AwsIoTEventsDataBatchUpdateDetectorDetectorsStateVariablesInput {
  name: String!
  value: String!
}

input AwsIoTEventsDataBatchUpdateDetectorDetectorsStateTimersInput {
  name: String!
  seconds: Int!
}

type AwsIoTEventsDataDescribeAlarmOutput {
  alarm: AwsIoTEventsDataDescribeAlarmOutputAlarm
}

type AwsIoTEventsDataDescribeAlarmOutputAlarm {
  alarmModelName: String
  alarmModelVersion: String
  keyValue: String
  alarmState: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmState
  severity: Int
  creationTime: Date
  lastUpdateTime: Date
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmState {
  stateName: String
  ruleEvaluation: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateRuleEvaluation
  customerAction: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerAction
  systemEvent: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateSystemEvent
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateRuleEvaluation {
  simpleRuleEvaluation: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateRuleEvaluationSimpleRuleEvaluation
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateRuleEvaluationSimpleRuleEvaluation {
  inputPropertyValue: String
  operator: String
  thresholdValue: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerAction {
  actionName: String
  snoozeActionConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionSnoozeActionConfiguration
  enableActionConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionEnableActionConfiguration
  disableActionConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionDisableActionConfiguration
  acknowledgeActionConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionAcknowledgeActionConfiguration
  resetActionConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionResetActionConfiguration
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionSnoozeActionConfiguration {
  snoozeDuration: Int
  note: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionEnableActionConfiguration {
  note: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionDisableActionConfiguration {
  note: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionAcknowledgeActionConfiguration {
  note: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateCustomerActionResetActionConfiguration {
  note: String
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateSystemEvent {
  eventType: String
  stateChangeConfiguration: AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateSystemEventStateChangeConfiguration
}

type AwsIoTEventsDataDescribeAlarmOutputAlarmAlarmStateSystemEventStateChangeConfiguration {
  triggerType: String
}

input AwsIoTEventsDataDescribeAlarmInput {
  alarmModelName: String!
  keyValue: String
}

type AwsIoTEventsDataDescribeDetectorOutput {
  detector: AwsIoTEventsDataDescribeDetectorOutputDetector
}

type AwsIoTEventsDataDescribeDetectorOutputDetector {
  detectorModelName: String
  keyValue: String
  detectorModelVersion: String
  state: AwsIoTEventsDataDescribeDetectorOutputDetectorState
  creationTime: Date
  lastUpdateTime: Date
}

type AwsIoTEventsDataDescribeDetectorOutputDetectorState {
  stateName: String!
  variables: [AwsIoTEventsDataDescribeDetectorOutputDetectorStateVariables]!
  timers: [AwsIoTEventsDataDescribeDetectorOutputDetectorStateTimers]!
}

type AwsIoTEventsDataDescribeDetectorOutputDetectorStateVariables {
  name: String!
  value: String!
}

type AwsIoTEventsDataDescribeDetectorOutputDetectorStateTimers {
  name: String!
  timestamp: Date!
}

input AwsIoTEventsDataDescribeDetectorInput {
  detectorModelName: String!
  keyValue: String
}

type AwsIoTEventsDataListAlarmsOutput {
  alarmSummaries: [AwsIoTEventsDataListAlarmsOutputAlarmSummaries]
  nextToken: String
}

type AwsIoTEventsDataListAlarmsOutputAlarmSummaries {
  alarmModelName: String
  alarmModelVersion: String
  keyValue: String
  stateName: String
  creationTime: Date
  lastUpdateTime: Date
}

input AwsIoTEventsDataListAlarmsInput {
  alarmModelName: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTEventsDataListDetectorsOutput {
  detectorSummaries: [AwsIoTEventsDataListDetectorsOutputDetectorSummaries]
  nextToken: String
}

type AwsIoTEventsDataListDetectorsOutputDetectorSummaries {
  detectorModelName: String
  keyValue: String
  detectorModelVersion: String
  state: AwsIoTEventsDataListDetectorsOutputDetectorSummariesState
  creationTime: Date
  lastUpdateTime: Date
}

type AwsIoTEventsDataListDetectorsOutputDetectorSummariesState {
  stateName: String
}

input AwsIoTEventsDataListDetectorsInput {
  detectorModelName: String!
  stateName: String
  nextToken: String
  maxResults: Int
}

"""AWS IoT Fleet Hub (2020-11-03)"""
type AwsIoTFleetHub {
  createApplication(input: AwsIoTFleetHubCreateApplicationInput!, config: AwsConfig): AwsIoTFleetHubCreateApplicationOutput
  deleteApplication(input: AwsIoTFleetHubDeleteApplicationInput!, config: AwsConfig): JSON
  describeApplication(input: AwsIoTFleetHubDescribeApplicationInput!, config: AwsConfig): AwsIoTFleetHubDescribeApplicationOutput
  listApplications(input: AwsIoTFleetHubListApplicationsInput, config: AwsConfig): AwsIoTFleetHubListApplicationsOutput
  listTagsForResource(input: AwsIoTFleetHubListTagsForResourceInput!, config: AwsConfig): AwsIoTFleetHubListTagsForResourceOutput
  tagResource(input: AwsIoTFleetHubTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoTFleetHubUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsIoTFleetHubUpdateApplicationInput!, config: AwsConfig): JSON
}

type AwsIoTFleetHubCreateApplicationOutput {
  applicationId: String!
  applicationArn: String!
}

input AwsIoTFleetHubCreateApplicationInput {
  applicationName: String!
  applicationDescription: String
  clientToken: String
  roleArn: String!
  tags: JSON
}

input AwsIoTFleetHubDeleteApplicationInput {
  applicationId: String!
  clientToken: String
}

type AwsIoTFleetHubDescribeApplicationOutput {
  applicationId: String!
  applicationArn: String!
  applicationName: String!
  applicationDescription: String
  applicationUrl: String!
  applicationState: String!
  applicationCreationDate: JSON!
  applicationLastUpdateDate: JSON!
  roleArn: String!
  ssoClientId: String
  errorMessage: String
  tags: JSON
}

input AwsIoTFleetHubDescribeApplicationInput {
  applicationId: String!
}

type AwsIoTFleetHubListApplicationsOutput {
  applicationSummaries: [AwsIoTFleetHubListApplicationsOutputApplicationSummaries]
  nextToken: String
}

type AwsIoTFleetHubListApplicationsOutputApplicationSummaries {
  applicationId: String!
  applicationName: String!
  applicationDescription: String
  applicationUrl: String!
  applicationCreationDate: JSON
  applicationLastUpdateDate: JSON
  applicationState: String
}

input AwsIoTFleetHubListApplicationsInput {
  nextToken: String
}

type AwsIoTFleetHubListTagsForResourceOutput {
  tags: JSON
}

input AwsIoTFleetHubListTagsForResourceInput {
  resourceArn: String!
}

input AwsIoTFleetHubTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsIoTFleetHubUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsIoTFleetHubUpdateApplicationInput {
  applicationId: String!
  applicationName: String
  applicationDescription: String
  clientToken: String
}

"""AWS IoT Jobs Data Plane (2017-09-29)"""
type AwsIoTJobsDataPlane {
  describeJobExecution(input: AwsIoTJobsDataPlaneDescribeJobExecutionInput!, config: AwsConfig): AwsIoTJobsDataPlaneDescribeJobExecutionOutput
  getPendingJobExecutions(input: AwsIoTJobsDataPlaneGetPendingJobExecutionsInput!, config: AwsConfig): AwsIoTJobsDataPlaneGetPendingJobExecutionsOutput
  startNextPendingJobExecution(input: AwsIoTJobsDataPlaneStartNextPendingJobExecutionInput!, config: AwsConfig): AwsIoTJobsDataPlaneStartNextPendingJobExecutionOutput
  updateJobExecution(input: AwsIoTJobsDataPlaneUpdateJobExecutionInput!, config: AwsConfig): AwsIoTJobsDataPlaneUpdateJobExecutionOutput
}

type AwsIoTJobsDataPlaneDescribeJobExecutionOutput {
  execution: AwsIoTJobsDataPlaneS7
}

type AwsIoTJobsDataPlaneS7 {
  jobId: String
  thingName: String
  status: String
  statusDetails: JSON
  queuedAt: JSON
  startedAt: JSON
  lastUpdatedAt: JSON
  approximateSecondsBeforeTimedOut: JSON
  versionNumber: JSON
  executionNumber: JSON
  jobDocument: String
}

input AwsIoTJobsDataPlaneDescribeJobExecutionInput {
  jobId: String!
  thingName: String!
  includeJobDocument: Boolean
  executionNumber: JSON
}

type AwsIoTJobsDataPlaneGetPendingJobExecutionsOutput {
  inProgressJobs: [AwsIoTJobsDataPlaneSl]
  queuedJobs: [AwsIoTJobsDataPlaneSl]
}

type AwsIoTJobsDataPlaneSl {
  jobId: String
  queuedAt: JSON
  startedAt: JSON
  lastUpdatedAt: JSON
  versionNumber: JSON
  executionNumber: JSON
}

input AwsIoTJobsDataPlaneGetPendingJobExecutionsInput {
  thingName: String!
}

type AwsIoTJobsDataPlaneStartNextPendingJobExecutionOutput {
  execution: AwsIoTJobsDataPlaneS7
}

input AwsIoTJobsDataPlaneStartNextPendingJobExecutionInput {
  thingName: String!
  statusDetails: JSON
  stepTimeoutInMinutes: JSON
}

type AwsIoTJobsDataPlaneUpdateJobExecutionOutput {
  executionState: AwsIoTJobsDataPlaneUpdateJobExecutionOutputExecutionState
  jobDocument: String
}

type AwsIoTJobsDataPlaneUpdateJobExecutionOutputExecutionState {
  status: String
  statusDetails: JSON
  versionNumber: JSON
}

input AwsIoTJobsDataPlaneUpdateJobExecutionInput {
  jobId: String!
  thingName: String!
  status: String!
  statusDetails: JSON
  stepTimeoutInMinutes: JSON
  expectedVersion: JSON
  includeJobExecutionState: Boolean
  includeJobDocument: Boolean
  executionNumber: JSON
}

"""AWS IoT Secure Tunneling (2018-10-05)"""
type AwsIoTSecureTunneling {
  closeTunnel(input: AwsIoTSecureTunnelingCloseTunnelInput!, config: AwsConfig): JSON
  describeTunnel(input: AwsIoTSecureTunnelingDescribeTunnelInput!, config: AwsConfig): AwsIoTSecureTunnelingDescribeTunnelOutput
  listTagsForResource(input: AwsIoTSecureTunnelingListTagsForResourceInput!, config: AwsConfig): AwsIoTSecureTunnelingListTagsForResourceOutput
  listTunnels(input: AwsIoTSecureTunnelingListTunnelsInput, config: AwsConfig): AwsIoTSecureTunnelingListTunnelsOutput
  openTunnel(input: AwsIoTSecureTunnelingOpenTunnelInput, config: AwsConfig): AwsIoTSecureTunnelingOpenTunnelOutput
  tagResource(input: AwsIoTSecureTunnelingTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoTSecureTunnelingUntagResourceInput!, config: AwsConfig): JSON
}

input AwsIoTSecureTunnelingCloseTunnelInput {
  tunnelId: String!
  delete: Boolean
}

type AwsIoTSecureTunnelingDescribeTunnelOutput {
  tunnel: AwsIoTSecureTunnelingDescribeTunnelOutputTunnel
}

type AwsIoTSecureTunnelingDescribeTunnelOutputTunnel {
  tunnelId: String
  tunnelArn: String
  status: String
  sourceConnectionState: AwsIoTSecureTunnelingSa
  destinationConnectionState: AwsIoTSecureTunnelingSa
  description: String
  destinationConfig: AwsIoTSecureTunnelingSe
  timeoutConfig: AwsIoTSecureTunnelingSi
  tags: [AwsIoTSecureTunnelingSk]
  createdAt: Date
  lastUpdatedAt: Date
}

type AwsIoTSecureTunnelingSa {
  status: String
  lastUpdatedAt: Date
}

type AwsIoTSecureTunnelingSe {
  thingName: String
  services: [String]!
}

type AwsIoTSecureTunnelingSi {
  maxLifetimeTimeoutMinutes: Int
}

type AwsIoTSecureTunnelingSk {
  key: String!
  value: String!
}

input AwsIoTSecureTunnelingDescribeTunnelInput {
  tunnelId: String!
}

type AwsIoTSecureTunnelingListTagsForResourceOutput {
  tags: [AwsIoTSecureTunnelingSk]
}

input AwsIoTSecureTunnelingListTagsForResourceInput {
  resourceArn: String!
}

type AwsIoTSecureTunnelingListTunnelsOutput {
  tunnelSummaries: [AwsIoTSecureTunnelingListTunnelsOutputTunnelSummaries]
  nextToken: String
}

type AwsIoTSecureTunnelingListTunnelsOutputTunnelSummaries {
  tunnelId: String
  tunnelArn: String
  status: String
  description: String
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsIoTSecureTunnelingListTunnelsInput {
  thingName: String
  maxResults: Int
  nextToken: String
}

type AwsIoTSecureTunnelingOpenTunnelOutput {
  tunnelId: String
  tunnelArn: String
  sourceAccessToken: String
  destinationAccessToken: String
}

input AwsIoTSecureTunnelingOpenTunnelInput {
  description: String
  tags: [AwsIoTSecureTunnelingSkInput]
  destinationConfig: AwsIoTSecureTunnelingSeInput
  timeoutConfig: AwsIoTSecureTunnelingSiInput
}

input AwsIoTSecureTunnelingSkInput {
  key: String!
  value: String!
}

input AwsIoTSecureTunnelingSeInput {
  thingName: String
  services: [String]!
}

input AwsIoTSecureTunnelingSiInput {
  maxLifetimeTimeoutMinutes: Int
}

input AwsIoTSecureTunnelingTagResourceInput {
  resourceArn: String!
  tags: [AwsIoTSecureTunnelingSkInput]!
}

input AwsIoTSecureTunnelingUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""AWS IoT SiteWise (2019-12-02)"""
type AwsIoTSiteWise {
  associateAssets(input: AwsIoTSiteWiseAssociateAssetsInput!, config: AwsConfig): JSON
  batchAssociateProjectAssets(input: AwsIoTSiteWiseBatchAssociateProjectAssetsInput!, config: AwsConfig): AwsIoTSiteWiseBatchAssociateProjectAssetsOutput
  batchDisassociateProjectAssets(input: AwsIoTSiteWiseBatchDisassociateProjectAssetsInput!, config: AwsConfig): AwsIoTSiteWiseBatchDisassociateProjectAssetsOutput
  batchPutAssetPropertyValue(input: AwsIoTSiteWiseBatchPutAssetPropertyValueInput!, config: AwsConfig): AwsIoTSiteWiseBatchPutAssetPropertyValueOutput
  createAccessPolicy(input: AwsIoTSiteWiseCreateAccessPolicyInput!, config: AwsConfig): AwsIoTSiteWiseCreateAccessPolicyOutput
  createAsset(input: AwsIoTSiteWiseCreateAssetInput!, config: AwsConfig): AwsIoTSiteWiseCreateAssetOutput
  createAssetModel(input: AwsIoTSiteWiseCreateAssetModelInput!, config: AwsConfig): AwsIoTSiteWiseCreateAssetModelOutput
  createDashboard(input: AwsIoTSiteWiseCreateDashboardInput!, config: AwsConfig): AwsIoTSiteWiseCreateDashboardOutput
  createGateway(input: AwsIoTSiteWiseCreateGatewayInput!, config: AwsConfig): AwsIoTSiteWiseCreateGatewayOutput
  createPortal(input: AwsIoTSiteWiseCreatePortalInput!, config: AwsConfig): AwsIoTSiteWiseCreatePortalOutput
  createProject(input: AwsIoTSiteWiseCreateProjectInput!, config: AwsConfig): AwsIoTSiteWiseCreateProjectOutput
  deleteAccessPolicy(input: AwsIoTSiteWiseDeleteAccessPolicyInput!, config: AwsConfig): JSON
  deleteAsset(input: AwsIoTSiteWiseDeleteAssetInput!, config: AwsConfig): AwsIoTSiteWiseDeleteAssetOutput
  deleteAssetModel(input: AwsIoTSiteWiseDeleteAssetModelInput!, config: AwsConfig): AwsIoTSiteWiseDeleteAssetModelOutput
  deleteDashboard(input: AwsIoTSiteWiseDeleteDashboardInput!, config: AwsConfig): JSON
  deleteGateway(input: AwsIoTSiteWiseDeleteGatewayInput!, config: AwsConfig): JSON
  deletePortal(input: AwsIoTSiteWiseDeletePortalInput!, config: AwsConfig): AwsIoTSiteWiseDeletePortalOutput
  deleteProject(input: AwsIoTSiteWiseDeleteProjectInput!, config: AwsConfig): JSON
  describeAccessPolicy(input: AwsIoTSiteWiseDescribeAccessPolicyInput!, config: AwsConfig): AwsIoTSiteWiseDescribeAccessPolicyOutput
  describeAsset(input: AwsIoTSiteWiseDescribeAssetInput!, config: AwsConfig): AwsIoTSiteWiseDescribeAssetOutput
  describeAssetModel(input: AwsIoTSiteWiseDescribeAssetModelInput!, config: AwsConfig): AwsIoTSiteWiseDescribeAssetModelOutput
  describeAssetProperty(input: AwsIoTSiteWiseDescribeAssetPropertyInput!, config: AwsConfig): AwsIoTSiteWiseDescribeAssetPropertyOutput
  describeDashboard(input: AwsIoTSiteWiseDescribeDashboardInput!, config: AwsConfig): AwsIoTSiteWiseDescribeDashboardOutput
  describeDefaultEncryptionConfiguration(input: JSON, config: AwsConfig): AwsIoTSiteWiseDescribeDefaultEncryptionConfigurationOutput
  describeGateway(input: AwsIoTSiteWiseDescribeGatewayInput!, config: AwsConfig): AwsIoTSiteWiseDescribeGatewayOutput
  describeGatewayCapabilityConfiguration(input: AwsIoTSiteWiseDescribeGatewayCapabilityConfigurationInput!, config: AwsConfig): AwsIoTSiteWiseDescribeGatewayCapabilityConfigurationOutput
  describeLoggingOptions(input: JSON, config: AwsConfig): AwsIoTSiteWiseDescribeLoggingOptionsOutput
  describePortal(input: AwsIoTSiteWiseDescribePortalInput!, config: AwsConfig): AwsIoTSiteWiseDescribePortalOutput
  describeProject(input: AwsIoTSiteWiseDescribeProjectInput!, config: AwsConfig): AwsIoTSiteWiseDescribeProjectOutput
  disassociateAssets(input: AwsIoTSiteWiseDisassociateAssetsInput!, config: AwsConfig): JSON
  getAssetPropertyAggregates(input: AwsIoTSiteWiseGetAssetPropertyAggregatesInput!, config: AwsConfig): AwsIoTSiteWiseGetAssetPropertyAggregatesOutput
  getAssetPropertyValue(input: AwsIoTSiteWiseGetAssetPropertyValueInput, config: AwsConfig): AwsIoTSiteWiseGetAssetPropertyValueOutput
  getAssetPropertyValueHistory(input: AwsIoTSiteWiseGetAssetPropertyValueHistoryInput, config: AwsConfig): AwsIoTSiteWiseGetAssetPropertyValueHistoryOutput
  getInterpolatedAssetPropertyValues(input: AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesInput!, config: AwsConfig): AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesOutput
  listAccessPolicies(input: AwsIoTSiteWiseListAccessPoliciesInput, config: AwsConfig): AwsIoTSiteWiseListAccessPoliciesOutput
  listAssetModels(input: AwsIoTSiteWiseListAssetModelsInput, config: AwsConfig): AwsIoTSiteWiseListAssetModelsOutput
  listAssetRelationships(input: AwsIoTSiteWiseListAssetRelationshipsInput!, config: AwsConfig): AwsIoTSiteWiseListAssetRelationshipsOutput
  listAssets(input: AwsIoTSiteWiseListAssetsInput, config: AwsConfig): AwsIoTSiteWiseListAssetsOutput
  listAssociatedAssets(input: AwsIoTSiteWiseListAssociatedAssetsInput!, config: AwsConfig): AwsIoTSiteWiseListAssociatedAssetsOutput
  listDashboards(input: AwsIoTSiteWiseListDashboardsInput!, config: AwsConfig): AwsIoTSiteWiseListDashboardsOutput
  listGateways(input: AwsIoTSiteWiseListGatewaysInput, config: AwsConfig): AwsIoTSiteWiseListGatewaysOutput
  listPortals(input: AwsIoTSiteWiseListPortalsInput, config: AwsConfig): AwsIoTSiteWiseListPortalsOutput
  listProjectAssets(input: AwsIoTSiteWiseListProjectAssetsInput!, config: AwsConfig): AwsIoTSiteWiseListProjectAssetsOutput
  listProjects(input: AwsIoTSiteWiseListProjectsInput!, config: AwsConfig): AwsIoTSiteWiseListProjectsOutput
  listTagsForResource(input: AwsIoTSiteWiseListTagsForResourceInput!, config: AwsConfig): AwsIoTSiteWiseListTagsForResourceOutput
  putDefaultEncryptionConfiguration(input: AwsIoTSiteWisePutDefaultEncryptionConfigurationInput!, config: AwsConfig): AwsIoTSiteWisePutDefaultEncryptionConfigurationOutput
  putLoggingOptions(input: AwsIoTSiteWisePutLoggingOptionsInput!, config: AwsConfig): JSON
  tagResource(input: AwsIoTSiteWiseTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIoTSiteWiseUntagResourceInput!, config: AwsConfig): JSON
  updateAccessPolicy(input: AwsIoTSiteWiseUpdateAccessPolicyInput!, config: AwsConfig): JSON
  updateAsset(input: AwsIoTSiteWiseUpdateAssetInput!, config: AwsConfig): AwsIoTSiteWiseUpdateAssetOutput
  updateAssetModel(input: AwsIoTSiteWiseUpdateAssetModelInput!, config: AwsConfig): AwsIoTSiteWiseUpdateAssetModelOutput
  updateAssetProperty(input: AwsIoTSiteWiseUpdateAssetPropertyInput!, config: AwsConfig): JSON
  updateDashboard(input: AwsIoTSiteWiseUpdateDashboardInput!, config: AwsConfig): JSON
  updateGateway(input: AwsIoTSiteWiseUpdateGatewayInput!, config: AwsConfig): JSON
  updateGatewayCapabilityConfiguration(input: AwsIoTSiteWiseUpdateGatewayCapabilityConfigurationInput!, config: AwsConfig): AwsIoTSiteWiseUpdateGatewayCapabilityConfigurationOutput
  updatePortal(input: AwsIoTSiteWiseUpdatePortalInput!, config: AwsConfig): AwsIoTSiteWiseUpdatePortalOutput
  updateProject(input: AwsIoTSiteWiseUpdateProjectInput!, config: AwsConfig): JSON
}

input AwsIoTSiteWiseAssociateAssetsInput {
  assetId: String!
  hierarchyId: String!
  childAssetId: String!
  clientToken: String
}

type AwsIoTSiteWiseBatchAssociateProjectAssetsOutput {
  errors: [AwsIoTSiteWiseS8]
}

type AwsIoTSiteWiseS8 {
  assetId: String!
  code: String!
  message: String!
}

input AwsIoTSiteWiseBatchAssociateProjectAssetsInput {
  projectId: String!
  assetIds: [String]!
  clientToken: String
}

type AwsIoTSiteWiseBatchDisassociateProjectAssetsOutput {
  errors: [AwsIoTSiteWiseS8]
}

input AwsIoTSiteWiseBatchDisassociateProjectAssetsInput {
  projectId: String!
  assetIds: [String]!
  clientToken: String
}

type AwsIoTSiteWiseBatchPutAssetPropertyValueOutput {
  errorEntries: [AwsIoTSiteWiseBatchPutAssetPropertyValueOutputErrorEntries]!
}

type AwsIoTSiteWiseBatchPutAssetPropertyValueOutputErrorEntries {
  entryId: String!
  errors: [AwsIoTSiteWiseBatchPutAssetPropertyValueOutputErrorEntriesErrors]!
}

type AwsIoTSiteWiseBatchPutAssetPropertyValueOutputErrorEntriesErrors {
  errorCode: String!
  errorMessage: String!
  timestamps: [AwsIoTSiteWiseSq]!
}

type AwsIoTSiteWiseSq {
  timeInSeconds: JSON!
  offsetInNanos: Int
}

input AwsIoTSiteWiseBatchPutAssetPropertyValueInput {
  entries: [AwsIoTSiteWiseBatchPutAssetPropertyValueEntriesInput]!
}

input AwsIoTSiteWiseBatchPutAssetPropertyValueEntriesInput {
  entryId: String!
  assetId: String
  propertyId: String
  propertyAlias: String
  propertyValues: [AwsIoTSiteWiseSkInput]!
}

input AwsIoTSiteWiseSkInput {
  value: AwsIoTSiteWiseSlInput!
  timestamp: AwsIoTSiteWiseSqInput!
  quality: String
}

input AwsIoTSiteWiseSlInput {
  stringValue: String
  integerValue: Int
  doubleValue: JSON
  booleanValue: Boolean
}

input AwsIoTSiteWiseSqInput {
  timeInSeconds: JSON!
  offsetInNanos: Int
}

type AwsIoTSiteWiseCreateAccessPolicyOutput {
  accessPolicyId: String!
  accessPolicyArn: String!
}

input AwsIoTSiteWiseCreateAccessPolicyInput {
  accessPolicyIdentity: AwsIoTSiteWiseS13Input!
  accessPolicyResource: AwsIoTSiteWiseS1aInput!
  accessPolicyPermission: String!
  clientToken: String
  tags: JSON
}

input AwsIoTSiteWiseS13Input {
  user: AwsIoTSiteWiseS13UserInput
  group: AwsIoTSiteWiseS13GroupInput
  iamUser: AwsIoTSiteWiseS13IamUserInput
  iamRole: AwsIoTSiteWiseS13IamRoleInput
}

input AwsIoTSiteWiseS13UserInput {
  id: String!
}

input AwsIoTSiteWiseS13GroupInput {
  id: String!
}

input AwsIoTSiteWiseS13IamUserInput {
  arn: String!
}

input AwsIoTSiteWiseS13IamRoleInput {
  arn: String!
}

input AwsIoTSiteWiseS1aInput {
  portal: AwsIoTSiteWiseS1aPortalInput
  project: AwsIoTSiteWiseS1aProjectInput
}

input AwsIoTSiteWiseS1aPortalInput {
  id: String!
}

input AwsIoTSiteWiseS1aProjectInput {
  id: String!
}

type AwsIoTSiteWiseCreateAssetOutput {
  assetId: String!
  assetArn: String!
  assetStatus: AwsIoTSiteWiseS1l!
}

type AwsIoTSiteWiseS1l {
  state: String!
  error: AwsIoTSiteWiseS1n
}

type AwsIoTSiteWiseS1n {
  code: String!
  message: String!
}

input AwsIoTSiteWiseCreateAssetInput {
  assetName: String!
  assetModelId: String!
  clientToken: String
  tags: JSON
}

type AwsIoTSiteWiseCreateAssetModelOutput {
  assetModelId: String!
  assetModelArn: String!
  assetModelStatus: AwsIoTSiteWiseS2f!
}

type AwsIoTSiteWiseS2f {
  state: String!
  error: AwsIoTSiteWiseS1n
}

input AwsIoTSiteWiseCreateAssetModelInput {
  assetModelName: String!
  assetModelDescription: String
  assetModelProperties: [AwsIoTSiteWiseS1rInput]
  assetModelHierarchies: [AwsIoTSiteWiseCreateAssetModelAssetModelHierarchiesInput]
  assetModelCompositeModels: [AwsIoTSiteWiseCreateAssetModelAssetModelCompositeModelsInput]
  clientToken: String
  tags: JSON
}

input AwsIoTSiteWiseS1rInput {
  name: String!
  dataType: String!
  dataTypeSpec: String
  unit: String
  type: AwsIoTSiteWiseS1vInput!
}

input AwsIoTSiteWiseS1vInput {
  attribute: AwsIoTSiteWiseS1vAttributeInput
  measurement: JSON
  transform: AwsIoTSiteWiseS1vTransformInput
  metric: AwsIoTSiteWiseS1vMetricInput
}

input AwsIoTSiteWiseS1vAttributeInput {
  defaultValue: String
}

input AwsIoTSiteWiseS1vTransformInput {
  expression: String!
  variables: [AwsIoTSiteWiseS21Input]!
}

input AwsIoTSiteWiseS21Input {
  name: String!
  value: AwsIoTSiteWiseS21ValueInput!
}

input AwsIoTSiteWiseS21ValueInput {
  propertyId: String!
  hierarchyId: String
}

input AwsIoTSiteWiseS1vMetricInput {
  expression: String!
  variables: [AwsIoTSiteWiseS21Input]!
  window: AwsIoTSiteWiseS1vMetricWindowInput!
}

input AwsIoTSiteWiseS1vMetricWindowInput {
  tumbling: AwsIoTSiteWiseS1vMetricWindowTumblingInput
}

input AwsIoTSiteWiseS1vMetricWindowTumblingInput {
  interval: String!
}

input AwsIoTSiteWiseCreateAssetModelAssetModelHierarchiesInput {
  name: String!
  childAssetModelId: String!
}

input AwsIoTSiteWiseCreateAssetModelAssetModelCompositeModelsInput {
  name: String!
  description: String
  type: String!
  properties: [AwsIoTSiteWiseS1rInput]
}

type AwsIoTSiteWiseCreateDashboardOutput {
  dashboardId: String!
  dashboardArn: String!
}

input AwsIoTSiteWiseCreateDashboardInput {
  projectId: String!
  dashboardName: String!
  dashboardDescription: String
  dashboardDefinition: String!
  clientToken: String
  tags: JSON
}

type AwsIoTSiteWiseCreateGatewayOutput {
  gatewayId: String!
  gatewayArn: String!
}

input AwsIoTSiteWiseCreateGatewayInput {
  gatewayName: String!
  gatewayPlatform: AwsIoTSiteWiseS2lInput!
  tags: JSON
}

input AwsIoTSiteWiseS2lInput {
  greengrass: AwsIoTSiteWiseS2lGreengrassInput!
}

input AwsIoTSiteWiseS2lGreengrassInput {
  groupArn: String!
}

type AwsIoTSiteWiseCreatePortalOutput {
  portalId: String!
  portalArn: String!
  portalStartUrl: String!
  portalStatus: AwsIoTSiteWiseS2x!
  ssoApplicationId: String!
}

type AwsIoTSiteWiseS2x {
  state: String!
  error: AwsIoTSiteWiseS2xError
}

type AwsIoTSiteWiseS2xError {
  code: String
  message: String
}

input AwsIoTSiteWiseCreatePortalInput {
  portalName: String!
  portalDescription: String
  portalContactEmail: String!
  clientToken: String
  portalLogoImageFile: AwsIoTSiteWiseS2qInput
  roleArn: String!
  tags: JSON
  portalAuthMode: String
  notificationSenderEmail: String
  alarms: AwsIoTSiteWiseS2uInput
}

input AwsIoTSiteWiseS2qInput {
  data: JSON!
  type: String!
}

input AwsIoTSiteWiseS2uInput {
  alarmRoleArn: String!
  notificationLambdaArn: String
}

type AwsIoTSiteWiseCreateProjectOutput {
  projectId: String!
  projectArn: String!
}

input AwsIoTSiteWiseCreateProjectInput {
  portalId: String!
  projectName: String!
  projectDescription: String
  clientToken: String
  tags: JSON
}

input AwsIoTSiteWiseDeleteAccessPolicyInput {
  accessPolicyId: String!
  clientToken: String
}

type AwsIoTSiteWiseDeleteAssetOutput {
  assetStatus: AwsIoTSiteWiseS1l!
}

input AwsIoTSiteWiseDeleteAssetInput {
  assetId: String!
  clientToken: String
}

type AwsIoTSiteWiseDeleteAssetModelOutput {
  assetModelStatus: AwsIoTSiteWiseS2f!
}

input AwsIoTSiteWiseDeleteAssetModelInput {
  assetModelId: String!
  clientToken: String
}

input AwsIoTSiteWiseDeleteDashboardInput {
  dashboardId: String!
  clientToken: String
}

input AwsIoTSiteWiseDeleteGatewayInput {
  gatewayId: String!
}

type AwsIoTSiteWiseDeletePortalOutput {
  portalStatus: AwsIoTSiteWiseS2x!
}

input AwsIoTSiteWiseDeletePortalInput {
  portalId: String!
  clientToken: String
}

input AwsIoTSiteWiseDeleteProjectInput {
  projectId: String!
  clientToken: String
}

type AwsIoTSiteWiseDescribeAccessPolicyOutput {
  accessPolicyId: String!
  accessPolicyArn: String!
  accessPolicyIdentity: AwsIoTSiteWiseS13!
  accessPolicyResource: AwsIoTSiteWiseS1a!
  accessPolicyPermission: String!
  accessPolicyCreationDate: Date!
  accessPolicyLastUpdateDate: Date!
}

type AwsIoTSiteWiseS13 {
  user: AwsIoTSiteWiseS13User
  group: AwsIoTSiteWiseS13Group
  iamUser: AwsIoTSiteWiseS13IamUser
  iamRole: AwsIoTSiteWiseS13IamRole
}

type AwsIoTSiteWiseS13User {
  id: String!
}

type AwsIoTSiteWiseS13Group {
  id: String!
}

type AwsIoTSiteWiseS13IamUser {
  arn: String!
}

type AwsIoTSiteWiseS13IamRole {
  arn: String!
}

type AwsIoTSiteWiseS1a {
  portal: AwsIoTSiteWiseS1aPortal
  project: AwsIoTSiteWiseS1aProject
}

type AwsIoTSiteWiseS1aPortal {
  id: String!
}

type AwsIoTSiteWiseS1aProject {
  id: String!
}

input AwsIoTSiteWiseDescribeAccessPolicyInput {
  accessPolicyId: String!
}

type AwsIoTSiteWiseDescribeAssetOutput {
  assetId: String!
  assetArn: String!
  assetName: String!
  assetModelId: String!
  assetProperties: [AwsIoTSiteWiseS3n]!
  assetHierarchies: [AwsIoTSiteWiseS3t]!
  assetCompositeModels: [AwsIoTSiteWiseDescribeAssetOutputAssetCompositeModels]
  assetCreationDate: Date!
  assetLastUpdateDate: Date!
  assetStatus: AwsIoTSiteWiseS1l!
}

type AwsIoTSiteWiseS3n {
  id: String!
  name: String!
  alias: String
  notification: AwsIoTSiteWiseS3q
  dataType: String!
  dataTypeSpec: String
  unit: String
}

type AwsIoTSiteWiseS3q {
  topic: String!
  state: String!
}

type AwsIoTSiteWiseS3t {
  id: String
  name: String!
}

type AwsIoTSiteWiseDescribeAssetOutputAssetCompositeModels {
  name: String!
  description: String
  type: String!
  properties: [AwsIoTSiteWiseS3n]!
}

input AwsIoTSiteWiseDescribeAssetInput {
  assetId: String!
}

type AwsIoTSiteWiseDescribeAssetModelOutput {
  assetModelId: String!
  assetModelArn: String!
  assetModelName: String!
  assetModelDescription: String!
  assetModelProperties: [AwsIoTSiteWiseS3z]!
  assetModelHierarchies: [AwsIoTSiteWiseS41]!
  assetModelCompositeModels: [AwsIoTSiteWiseS43]
  assetModelCreationDate: Date!
  assetModelLastUpdateDate: Date!
  assetModelStatus: AwsIoTSiteWiseS2f!
}

type AwsIoTSiteWiseS3z {
  id: String
  name: String!
  dataType: String!
  dataTypeSpec: String
  unit: String
  type: AwsIoTSiteWiseS1v!
}

type AwsIoTSiteWiseS1v {
  attribute: AwsIoTSiteWiseS1vAttribute
  measurement: JSON
  transform: AwsIoTSiteWiseS1vTransform
  metric: AwsIoTSiteWiseS1vMetric
}

type AwsIoTSiteWiseS1vAttribute {
  defaultValue: String
}

type AwsIoTSiteWiseS1vTransform {
  expression: String!
  variables: [AwsIoTSiteWiseS21]!
}

type AwsIoTSiteWiseS21 {
  name: String!
  value: AwsIoTSiteWiseS21Value!
}

type AwsIoTSiteWiseS21Value {
  propertyId: String!
  hierarchyId: String
}

type AwsIoTSiteWiseS1vMetric {
  expression: String!
  variables: [AwsIoTSiteWiseS21]!
  window: AwsIoTSiteWiseS1vMetricWindow!
}

type AwsIoTSiteWiseS1vMetricWindow {
  tumbling: AwsIoTSiteWiseS1vMetricWindowTumbling
}

type AwsIoTSiteWiseS1vMetricWindowTumbling {
  interval: String!
}

type AwsIoTSiteWiseS41 {
  id: String
  name: String!
  childAssetModelId: String!
}

type AwsIoTSiteWiseS43 {
  name: String!
  description: String
  type: String!
  properties: [AwsIoTSiteWiseS3z]
}

input AwsIoTSiteWiseDescribeAssetModelInput {
  assetModelId: String!
}

type AwsIoTSiteWiseDescribeAssetPropertyOutput {
  assetId: String!
  assetName: String!
  assetModelId: String!
  assetProperty: AwsIoTSiteWiseS47
  compositeModel: AwsIoTSiteWiseDescribeAssetPropertyOutputCompositeModel
}

type AwsIoTSiteWiseS47 {
  id: String!
  name: String!
  alias: String
  notification: AwsIoTSiteWiseS3q
  dataType: String!
  unit: String
  type: AwsIoTSiteWiseS1v
}

type AwsIoTSiteWiseDescribeAssetPropertyOutputCompositeModel {
  name: String!
  type: String!
  assetProperty: AwsIoTSiteWiseS47!
}

input AwsIoTSiteWiseDescribeAssetPropertyInput {
  assetId: String!
  propertyId: String!
}

type AwsIoTSiteWiseDescribeDashboardOutput {
  dashboardId: String!
  dashboardArn: String!
  dashboardName: String!
  projectId: String!
  dashboardDescription: String
  dashboardDefinition: String!
  dashboardCreationDate: Date!
  dashboardLastUpdateDate: Date!
}

input AwsIoTSiteWiseDescribeDashboardInput {
  dashboardId: String!
}

type AwsIoTSiteWiseDescribeDefaultEncryptionConfigurationOutput {
  encryptionType: String!
  kmsKeyArn: String
  configurationStatus: AwsIoTSiteWiseS4e!
}

type AwsIoTSiteWiseS4e {
  state: String!
  error: AwsIoTSiteWiseS4eError
}

type AwsIoTSiteWiseS4eError {
  code: String!
  message: String!
}

type AwsIoTSiteWiseDescribeGatewayOutput {
  gatewayId: String!
  gatewayName: String!
  gatewayArn: String!
  gatewayPlatform: AwsIoTSiteWiseS2l
  gatewayCapabilitySummaries: [AwsIoTSiteWiseS4j]!
  creationDate: Date!
  lastUpdateDate: Date!
}

type AwsIoTSiteWiseS2l {
  greengrass: AwsIoTSiteWiseS2lGreengrass!
}

type AwsIoTSiteWiseS2lGreengrass {
  groupArn: String!
}

type AwsIoTSiteWiseS4j {
  capabilityNamespace: String!
  capabilitySyncStatus: String!
}

input AwsIoTSiteWiseDescribeGatewayInput {
  gatewayId: String!
}

type AwsIoTSiteWiseDescribeGatewayCapabilityConfigurationOutput {
  gatewayId: String!
  capabilityNamespace: String!
  capabilityConfiguration: String!
  capabilitySyncStatus: String!
}

input AwsIoTSiteWiseDescribeGatewayCapabilityConfigurationInput {
  gatewayId: String!
  capabilityNamespace: String!
}

type AwsIoTSiteWiseDescribeLoggingOptionsOutput {
  loggingOptions: AwsIoTSiteWiseS4s!
}

type AwsIoTSiteWiseS4s {
  level: String!
}

type AwsIoTSiteWiseDescribePortalOutput {
  portalId: String!
  portalArn: String!
  portalName: String!
  portalDescription: String
  portalClientId: String!
  portalStartUrl: String!
  portalContactEmail: String!
  portalStatus: AwsIoTSiteWiseS2x!
  portalCreationDate: Date!
  portalLastUpdateDate: Date!
  portalLogoImageLocation: AwsIoTSiteWiseDescribePortalOutputPortalLogoImageLocation
  roleArn: String
  portalAuthMode: String
  notificationSenderEmail: String
  alarms: AwsIoTSiteWiseS2u
}

type AwsIoTSiteWiseDescribePortalOutputPortalLogoImageLocation {
  id: String!
  url: String!
}

type AwsIoTSiteWiseS2u {
  alarmRoleArn: String!
  notificationLambdaArn: String
}

input AwsIoTSiteWiseDescribePortalInput {
  portalId: String!
}

type AwsIoTSiteWiseDescribeProjectOutput {
  projectId: String!
  projectArn: String!
  projectName: String!
  portalId: String!
  projectDescription: String
  projectCreationDate: Date!
  projectLastUpdateDate: Date!
}

input AwsIoTSiteWiseDescribeProjectInput {
  projectId: String!
}

input AwsIoTSiteWiseDisassociateAssetsInput {
  assetId: String!
  hierarchyId: String!
  childAssetId: String!
  clientToken: String
}

type AwsIoTSiteWiseGetAssetPropertyAggregatesOutput {
  aggregatedValues: [AwsIoTSiteWiseGetAssetPropertyAggregatesOutputAggregatedValues]!
  nextToken: String
}

type AwsIoTSiteWiseGetAssetPropertyAggregatesOutputAggregatedValues {
  timestamp: Date!
  quality: String
  value: AwsIoTSiteWiseGetAssetPropertyAggregatesOutputAggregatedValuesValue!
}

type AwsIoTSiteWiseGetAssetPropertyAggregatesOutputAggregatedValuesValue {
  average: JSON
  count: JSON
  maximum: JSON
  minimum: JSON
  sum: JSON
  standardDeviation: JSON
}

input AwsIoTSiteWiseGetAssetPropertyAggregatesInput {
  assetId: String
  propertyId: String
  propertyAlias: String
  aggregateTypes: [String]!
  resolution: String!
  qualities: [String]
  startDate: Date!
  endDate: Date!
  timeOrdering: String
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseGetAssetPropertyValueOutput {
  propertyValue: AwsIoTSiteWiseSk
}

type AwsIoTSiteWiseSk {
  value: AwsIoTSiteWiseSl!
  timestamp: AwsIoTSiteWiseSq!
  quality: String
}

type AwsIoTSiteWiseSl {
  stringValue: String
  integerValue: Int
  doubleValue: JSON
  booleanValue: Boolean
}

input AwsIoTSiteWiseGetAssetPropertyValueInput {
  assetId: String
  propertyId: String
  propertyAlias: String
}

type AwsIoTSiteWiseGetAssetPropertyValueHistoryOutput {
  assetPropertyValueHistory: [AwsIoTSiteWiseSk]!
  nextToken: String
}

input AwsIoTSiteWiseGetAssetPropertyValueHistoryInput {
  assetId: String
  propertyId: String
  propertyAlias: String
  startDate: Date
  endDate: Date
  qualities: [String]
  timeOrdering: String
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesOutput {
  interpolatedAssetPropertyValues: [AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesOutputInterpolatedAssetPropertyValues]!
  nextToken: String
}

type AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesOutputInterpolatedAssetPropertyValues {
  timestamp: AwsIoTSiteWiseSq!
  value: AwsIoTSiteWiseSl!
}

input AwsIoTSiteWiseGetInterpolatedAssetPropertyValuesInput {
  assetId: String
  propertyId: String
  propertyAlias: String
  startTimeInSeconds: JSON!
  startTimeOffsetInNanos: Int
  endTimeInSeconds: JSON!
  endTimeOffsetInNanos: Int
  quality: String!
  intervalInSeconds: JSON!
  nextToken: String
  maxResults: Int
  type: String!
}

type AwsIoTSiteWiseListAccessPoliciesOutput {
  accessPolicySummaries: [AwsIoTSiteWiseListAccessPoliciesOutputAccessPolicySummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListAccessPoliciesOutputAccessPolicySummaries {
  id: String!
  identity: AwsIoTSiteWiseS13!
  resource: AwsIoTSiteWiseS1a!
  permission: String!
  creationDate: Date
  lastUpdateDate: Date
}

input AwsIoTSiteWiseListAccessPoliciesInput {
  identityType: String
  identityId: String
  resourceType: String
  resourceId: String
  iamArn: String
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListAssetModelsOutput {
  assetModelSummaries: [AwsIoTSiteWiseListAssetModelsOutputAssetModelSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListAssetModelsOutputAssetModelSummaries {
  id: String!
  arn: String!
  name: String!
  description: String!
  creationDate: Date!
  lastUpdateDate: Date!
  status: AwsIoTSiteWiseS2f!
}

input AwsIoTSiteWiseListAssetModelsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListAssetRelationshipsOutput {
  assetRelationshipSummaries: [AwsIoTSiteWiseListAssetRelationshipsOutputAssetRelationshipSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListAssetRelationshipsOutputAssetRelationshipSummaries {
  hierarchyInfo: AwsIoTSiteWiseListAssetRelationshipsOutputAssetRelationshipSummariesHierarchyInfo
  relationshipType: String!
}

type AwsIoTSiteWiseListAssetRelationshipsOutputAssetRelationshipSummariesHierarchyInfo {
  parentAssetId: String
  childAssetId: String
}

input AwsIoTSiteWiseListAssetRelationshipsInput {
  assetId: String!
  traversalType: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListAssetsOutput {
  assetSummaries: [AwsIoTSiteWiseListAssetsOutputAssetSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListAssetsOutputAssetSummaries {
  id: String!
  arn: String!
  name: String!
  assetModelId: String!
  creationDate: Date!
  lastUpdateDate: Date!
  status: AwsIoTSiteWiseS1l!
  hierarchies: [AwsIoTSiteWiseS3t]!
}

input AwsIoTSiteWiseListAssetsInput {
  nextToken: String
  maxResults: Int
  assetModelId: String
  filter: String
}

type AwsIoTSiteWiseListAssociatedAssetsOutput {
  assetSummaries: [AwsIoTSiteWiseListAssociatedAssetsOutputAssetSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListAssociatedAssetsOutputAssetSummaries {
  id: String!
  arn: String!
  name: String!
  assetModelId: String!
  creationDate: Date!
  lastUpdateDate: Date!
  status: AwsIoTSiteWiseS1l!
  hierarchies: [AwsIoTSiteWiseS3t]!
}

input AwsIoTSiteWiseListAssociatedAssetsInput {
  assetId: String!
  hierarchyId: String
  traversalDirection: String
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListDashboardsOutput {
  dashboardSummaries: [AwsIoTSiteWiseListDashboardsOutputDashboardSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListDashboardsOutputDashboardSummaries {
  id: String!
  name: String!
  description: String
  creationDate: Date
  lastUpdateDate: Date
}

input AwsIoTSiteWiseListDashboardsInput {
  projectId: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListGatewaysOutput {
  gatewaySummaries: [AwsIoTSiteWiseListGatewaysOutputGatewaySummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListGatewaysOutputGatewaySummaries {
  gatewayId: String!
  gatewayName: String!
  gatewayCapabilitySummaries: [AwsIoTSiteWiseS4j]
  creationDate: Date!
  lastUpdateDate: Date!
}

input AwsIoTSiteWiseListGatewaysInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListPortalsOutput {
  portalSummaries: [AwsIoTSiteWiseListPortalsOutputPortalSummaries]
  nextToken: String
}

type AwsIoTSiteWiseListPortalsOutputPortalSummaries {
  id: String!
  name: String!
  description: String
  startUrl: String!
  creationDate: Date
  lastUpdateDate: Date
  roleArn: String
  status: AwsIoTSiteWiseS2x!
}

input AwsIoTSiteWiseListPortalsInput {
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListProjectAssetsOutput {
  assetIds: [String]!
  nextToken: String
}

input AwsIoTSiteWiseListProjectAssetsInput {
  projectId: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListProjectsOutput {
  projectSummaries: [AwsIoTSiteWiseListProjectsOutputProjectSummaries]!
  nextToken: String
}

type AwsIoTSiteWiseListProjectsOutputProjectSummaries {
  id: String!
  name: String!
  description: String
  creationDate: Date
  lastUpdateDate: Date
}

input AwsIoTSiteWiseListProjectsInput {
  portalId: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTSiteWiseListTagsForResourceOutput {
  tags: JSON
}

input AwsIoTSiteWiseListTagsForResourceInput {
  resourceArn: String!
}

type AwsIoTSiteWisePutDefaultEncryptionConfigurationOutput {
  encryptionType: String!
  kmsKeyArn: String
  configurationStatus: AwsIoTSiteWiseS4e!
}

input AwsIoTSiteWisePutDefaultEncryptionConfigurationInput {
  encryptionType: String!
  kmsKeyId: String
}

input AwsIoTSiteWisePutLoggingOptionsInput {
  loggingOptions: AwsIoTSiteWiseS4sInput!
}

input AwsIoTSiteWiseS4sInput {
  level: String!
}

input AwsIoTSiteWiseTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsIoTSiteWiseUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsIoTSiteWiseUpdateAccessPolicyInput {
  accessPolicyId: String!
  accessPolicyIdentity: AwsIoTSiteWiseS13Input!
  accessPolicyResource: AwsIoTSiteWiseS1aInput!
  accessPolicyPermission: String!
  clientToken: String
}

type AwsIoTSiteWiseUpdateAssetOutput {
  assetStatus: AwsIoTSiteWiseS1l!
}

input AwsIoTSiteWiseUpdateAssetInput {
  assetId: String!
  assetName: String!
  clientToken: String
}

type AwsIoTSiteWiseUpdateAssetModelOutput {
  assetModelStatus: AwsIoTSiteWiseS2f!
}

input AwsIoTSiteWiseUpdateAssetModelInput {
  assetModelId: String!
  assetModelName: String!
  assetModelDescription: String
  assetModelProperties: [AwsIoTSiteWiseS3zInput]
  assetModelHierarchies: [AwsIoTSiteWiseS41Input]
  assetModelCompositeModels: [AwsIoTSiteWiseS43Input]
  clientToken: String
}

input AwsIoTSiteWiseS3zInput {
  id: String
  name: String!
  dataType: String!
  dataTypeSpec: String
  unit: String
  type: AwsIoTSiteWiseS1vInput!
}

input AwsIoTSiteWiseS41Input {
  id: String
  name: String!
  childAssetModelId: String!
}

input AwsIoTSiteWiseS43Input {
  name: String!
  description: String
  type: String!
  properties: [AwsIoTSiteWiseS3zInput]
}

input AwsIoTSiteWiseUpdateAssetPropertyInput {
  assetId: String!
  propertyId: String!
  propertyAlias: String
  propertyNotificationState: String
  clientToken: String
}

input AwsIoTSiteWiseUpdateDashboardInput {
  dashboardId: String!
  dashboardName: String!
  dashboardDescription: String
  dashboardDefinition: String!
  clientToken: String
}

input AwsIoTSiteWiseUpdateGatewayInput {
  gatewayId: String!
  gatewayName: String!
}

type AwsIoTSiteWiseUpdateGatewayCapabilityConfigurationOutput {
  capabilityNamespace: String!
  capabilitySyncStatus: String!
}

input AwsIoTSiteWiseUpdateGatewayCapabilityConfigurationInput {
  gatewayId: String!
  capabilityNamespace: String!
  capabilityConfiguration: String!
}

type AwsIoTSiteWiseUpdatePortalOutput {
  portalStatus: AwsIoTSiteWiseS2x!
}

input AwsIoTSiteWiseUpdatePortalInput {
  portalId: String!
  portalName: String!
  portalDescription: String
  portalContactEmail: String!
  portalLogoImage: AwsIoTSiteWiseUpdatePortalPortalLogoImageInput
  roleArn: String!
  clientToken: String
  notificationSenderEmail: String
  alarms: AwsIoTSiteWiseS2uInput
}

input AwsIoTSiteWiseUpdatePortalPortalLogoImageInput {
  id: String
  file: AwsIoTSiteWiseS2qInput
}

input AwsIoTSiteWiseUpdateProjectInput {
  projectId: String!
  projectName: String!
  projectDescription: String
  clientToken: String
}

"""AWS IoT Things Graph (2018-09-06)"""
type AwsIoTThingsGraph {
  associateEntityToThing(input: AwsIoTThingsGraphAssociateEntityToThingInput!, config: AwsConfig): JSON
  createFlowTemplate(input: AwsIoTThingsGraphCreateFlowTemplateInput!, config: AwsConfig): AwsIoTThingsGraphCreateFlowTemplateOutput
  createSystemInstance(input: AwsIoTThingsGraphCreateSystemInstanceInput!, config: AwsConfig): AwsIoTThingsGraphCreateSystemInstanceOutput
  createSystemTemplate(input: AwsIoTThingsGraphCreateSystemTemplateInput!, config: AwsConfig): AwsIoTThingsGraphCreateSystemTemplateOutput
  deleteFlowTemplate(input: AwsIoTThingsGraphDeleteFlowTemplateInput!, config: AwsConfig): JSON
  deleteNamespace(input: JSON, config: AwsConfig): AwsIoTThingsGraphDeleteNamespaceOutput
  deleteSystemInstance(input: AwsIoTThingsGraphDeleteSystemInstanceInput, config: AwsConfig): JSON
  deleteSystemTemplate(input: AwsIoTThingsGraphDeleteSystemTemplateInput!, config: AwsConfig): JSON
  deploySystemInstance(input: AwsIoTThingsGraphDeploySystemInstanceInput, config: AwsConfig): AwsIoTThingsGraphDeploySystemInstanceOutput
  deprecateFlowTemplate(input: AwsIoTThingsGraphDeprecateFlowTemplateInput!, config: AwsConfig): JSON
  deprecateSystemTemplate(input: AwsIoTThingsGraphDeprecateSystemTemplateInput!, config: AwsConfig): JSON
  describeNamespace(input: AwsIoTThingsGraphDescribeNamespaceInput, config: AwsConfig): AwsIoTThingsGraphDescribeNamespaceOutput
  dissociateEntityFromThing(input: AwsIoTThingsGraphDissociateEntityFromThingInput!, config: AwsConfig): JSON
  getEntities(input: AwsIoTThingsGraphGetEntitiesInput!, config: AwsConfig): AwsIoTThingsGraphGetEntitiesOutput
  getFlowTemplate(input: AwsIoTThingsGraphGetFlowTemplateInput!, config: AwsConfig): AwsIoTThingsGraphGetFlowTemplateOutput
  getFlowTemplateRevisions(input: AwsIoTThingsGraphGetFlowTemplateRevisionsInput!, config: AwsConfig): AwsIoTThingsGraphGetFlowTemplateRevisionsOutput
  getNamespaceDeletionStatus(input: JSON, config: AwsConfig): AwsIoTThingsGraphGetNamespaceDeletionStatusOutput
  getSystemInstance(input: AwsIoTThingsGraphGetSystemInstanceInput!, config: AwsConfig): AwsIoTThingsGraphGetSystemInstanceOutput
  getSystemTemplate(input: AwsIoTThingsGraphGetSystemTemplateInput!, config: AwsConfig): AwsIoTThingsGraphGetSystemTemplateOutput
  getSystemTemplateRevisions(input: AwsIoTThingsGraphGetSystemTemplateRevisionsInput!, config: AwsConfig): AwsIoTThingsGraphGetSystemTemplateRevisionsOutput
  getUploadStatus(input: AwsIoTThingsGraphGetUploadStatusInput!, config: AwsConfig): AwsIoTThingsGraphGetUploadStatusOutput
  listFlowExecutionMessages(input: AwsIoTThingsGraphListFlowExecutionMessagesInput!, config: AwsConfig): AwsIoTThingsGraphListFlowExecutionMessagesOutput
  listTagsForResource(input: AwsIoTThingsGraphListTagsForResourceInput!, config: AwsConfig): AwsIoTThingsGraphListTagsForResourceOutput
  searchEntities(input: AwsIoTThingsGraphSearchEntitiesInput!, config: AwsConfig): AwsIoTThingsGraphSearchEntitiesOutput
  searchFlowExecutions(input: AwsIoTThingsGraphSearchFlowExecutionsInput!, config: AwsConfig): AwsIoTThingsGraphSearchFlowExecutionsOutput
  searchFlowTemplates(input: AwsIoTThingsGraphSearchFlowTemplatesInput, config: AwsConfig): AwsIoTThingsGraphSearchFlowTemplatesOutput
  searchSystemInstances(input: AwsIoTThingsGraphSearchSystemInstancesInput, config: AwsConfig): AwsIoTThingsGraphSearchSystemInstancesOutput
  searchSystemTemplates(input: AwsIoTThingsGraphSearchSystemTemplatesInput, config: AwsConfig): AwsIoTThingsGraphSearchSystemTemplatesOutput
  searchThings(input: AwsIoTThingsGraphSearchThingsInput!, config: AwsConfig): AwsIoTThingsGraphSearchThingsOutput
  tagResource(input: AwsIoTThingsGraphTagResourceInput!, config: AwsConfig): JSON
  undeploySystemInstance(input: AwsIoTThingsGraphUndeploySystemInstanceInput, config: AwsConfig): AwsIoTThingsGraphUndeploySystemInstanceOutput
  untagResource(input: AwsIoTThingsGraphUntagResourceInput!, config: AwsConfig): JSON
  updateFlowTemplate(input: AwsIoTThingsGraphUpdateFlowTemplateInput!, config: AwsConfig): AwsIoTThingsGraphUpdateFlowTemplateOutput
  updateSystemTemplate(input: AwsIoTThingsGraphUpdateSystemTemplateInput!, config: AwsConfig): AwsIoTThingsGraphUpdateSystemTemplateOutput
  uploadEntityDefinitions(input: AwsIoTThingsGraphUploadEntityDefinitionsInput, config: AwsConfig): AwsIoTThingsGraphUploadEntityDefinitionsOutput
}

input AwsIoTThingsGraphAssociateEntityToThingInput {
  thingName: String!
  entityId: String!
  namespaceVersion: JSON
}

type AwsIoTThingsGraphCreateFlowTemplateOutput {
  summary: AwsIoTThingsGraphSb
}

type AwsIoTThingsGraphSb {
  id: String
  arn: String
  revisionNumber: JSON
  createdAt: Date
}

input AwsIoTThingsGraphCreateFlowTemplateInput {
  definition: AwsIoTThingsGraphS7Input!
  compatibleNamespaceVersion: JSON
}

input AwsIoTThingsGraphS7Input {
  language: String!
  text: String!
}

type AwsIoTThingsGraphCreateSystemInstanceOutput {
  summary: AwsIoTThingsGraphSq
}

type AwsIoTThingsGraphSq {
  id: String
  arn: String
  status: String
  target: String
  greengrassGroupName: String
  createdAt: Date
  updatedAt: Date
  greengrassGroupId: String
  greengrassGroupVersionId: String
}

input AwsIoTThingsGraphCreateSystemInstanceInput {
  tags: [AwsIoTThingsGraphSfInput]
  definition: AwsIoTThingsGraphS7Input!
  target: String!
  greengrassGroupName: String
  s3BucketName: String
  metricsConfiguration: AwsIoTThingsGraphSmInput
  flowActionsRoleArn: String
}

input AwsIoTThingsGraphSfInput {
  key: String!
  value: String!
}

input AwsIoTThingsGraphSmInput {
  cloudMetricEnabled: Boolean
  metricRuleRoleArn: String
}

type AwsIoTThingsGraphCreateSystemTemplateOutput {
  summary: AwsIoTThingsGraphSw
}

type AwsIoTThingsGraphSw {
  id: String
  arn: String
  revisionNumber: JSON
  createdAt: Date
}

input AwsIoTThingsGraphCreateSystemTemplateInput {
  definition: AwsIoTThingsGraphS7Input!
  compatibleNamespaceVersion: JSON
}

input AwsIoTThingsGraphDeleteFlowTemplateInput {
  id: String!
}

type AwsIoTThingsGraphDeleteNamespaceOutput {
  namespaceArn: String
  namespaceName: String
}

input AwsIoTThingsGraphDeleteSystemInstanceInput {
  id: String
}

input AwsIoTThingsGraphDeleteSystemTemplateInput {
  id: String!
}

type AwsIoTThingsGraphDeploySystemInstanceOutput {
  summary: AwsIoTThingsGraphSq!
  greengrassDeploymentId: String
}

input AwsIoTThingsGraphDeploySystemInstanceInput {
  id: String
}

input AwsIoTThingsGraphDeprecateFlowTemplateInput {
  id: String!
}

input AwsIoTThingsGraphDeprecateSystemTemplateInput {
  id: String!
}

type AwsIoTThingsGraphDescribeNamespaceOutput {
  namespaceArn: String
  namespaceName: String
  trackingNamespaceName: String
  trackingNamespaceVersion: JSON
  namespaceVersion: JSON
}

input AwsIoTThingsGraphDescribeNamespaceInput {
  namespaceName: String
}

input AwsIoTThingsGraphDissociateEntityFromThingInput {
  thingName: String!
  entityType: String!
}

type AwsIoTThingsGraphGetEntitiesOutput {
  descriptions: [AwsIoTThingsGraphS1l]
}

type AwsIoTThingsGraphS1l {
  id: String
  arn: String
  type: String
  createdAt: Date
  definition: AwsIoTThingsGraphS7
}

type AwsIoTThingsGraphS7 {
  language: String!
  text: String!
}

input AwsIoTThingsGraphGetEntitiesInput {
  ids: [String]!
  namespaceVersion: JSON
}

type AwsIoTThingsGraphGetFlowTemplateOutput {
  description: AwsIoTThingsGraphGetFlowTemplateOutputDescription
}

type AwsIoTThingsGraphGetFlowTemplateOutputDescription {
  summary: AwsIoTThingsGraphSb
  definition: AwsIoTThingsGraphS7
  validatedNamespaceVersion: JSON
}

input AwsIoTThingsGraphGetFlowTemplateInput {
  id: String!
  revisionNumber: JSON
}

type AwsIoTThingsGraphGetFlowTemplateRevisionsOutput {
  summaries: [AwsIoTThingsGraphSb]
  nextToken: String
}

input AwsIoTThingsGraphGetFlowTemplateRevisionsInput {
  id: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTThingsGraphGetNamespaceDeletionStatusOutput {
  namespaceArn: String
  namespaceName: String
  status: String
  errorCode: String
  errorMessage: String
}

type AwsIoTThingsGraphGetSystemInstanceOutput {
  description: AwsIoTThingsGraphGetSystemInstanceOutputDescription
}

type AwsIoTThingsGraphGetSystemInstanceOutputDescription {
  summary: AwsIoTThingsGraphSq
  definition: AwsIoTThingsGraphS7
  s3BucketName: String
  metricsConfiguration: AwsIoTThingsGraphSm
  validatedNamespaceVersion: JSON
  validatedDependencyRevisions: [AwsIoTThingsGraphGetSystemInstanceOutputDescriptionValidatedDependencyRevisions]
  flowActionsRoleArn: String
}

type AwsIoTThingsGraphSm {
  cloudMetricEnabled: Boolean
  metricRuleRoleArn: String
}

type AwsIoTThingsGraphGetSystemInstanceOutputDescriptionValidatedDependencyRevisions {
  id: String
  revisionNumber: JSON
}

input AwsIoTThingsGraphGetSystemInstanceInput {
  id: String!
}

type AwsIoTThingsGraphGetSystemTemplateOutput {
  description: AwsIoTThingsGraphGetSystemTemplateOutputDescription
}

type AwsIoTThingsGraphGetSystemTemplateOutputDescription {
  summary: AwsIoTThingsGraphSw
  definition: AwsIoTThingsGraphS7
  validatedNamespaceVersion: JSON
}

input AwsIoTThingsGraphGetSystemTemplateInput {
  id: String!
  revisionNumber: JSON
}

type AwsIoTThingsGraphGetSystemTemplateRevisionsOutput {
  summaries: [AwsIoTThingsGraphSw]
  nextToken: String
}

input AwsIoTThingsGraphGetSystemTemplateRevisionsInput {
  id: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTThingsGraphGetUploadStatusOutput {
  uploadId: String!
  uploadStatus: String!
  namespaceArn: String
  namespaceName: String
  namespaceVersion: JSON
  failureReason: [String]
  createdDate: Date!
}

input AwsIoTThingsGraphGetUploadStatusInput {
  uploadId: String!
}

type AwsIoTThingsGraphListFlowExecutionMessagesOutput {
  messages: [AwsIoTThingsGraphListFlowExecutionMessagesOutputMessages]
  nextToken: String
}

type AwsIoTThingsGraphListFlowExecutionMessagesOutputMessages {
  messageId: String
  eventType: String
  timestamp: Date
  payload: String
}

input AwsIoTThingsGraphListFlowExecutionMessagesInput {
  flowExecutionId: String!
  nextToken: String
  maxResults: Int
}

type AwsIoTThingsGraphListTagsForResourceOutput {
  tags: [AwsIoTThingsGraphSf]
  nextToken: String
}

type AwsIoTThingsGraphSf {
  key: String!
  value: String!
}

input AwsIoTThingsGraphListTagsForResourceInput {
  maxResults: Int
  resourceArn: String!
  nextToken: String
}

type AwsIoTThingsGraphSearchEntitiesOutput {
  descriptions: [AwsIoTThingsGraphS1l]
  nextToken: String
}

input AwsIoTThingsGraphSearchEntitiesInput {
  entityTypes: [String]!
  filters: [AwsIoTThingsGraphSearchEntitiesFiltersInput]
  nextToken: String
  maxResults: Int
  namespaceVersion: JSON
}

input AwsIoTThingsGraphSearchEntitiesFiltersInput {
  name: String
  value: [String]
}

type AwsIoTThingsGraphSearchFlowExecutionsOutput {
  summaries: [AwsIoTThingsGraphSearchFlowExecutionsOutputSummaries]
  nextToken: String
}

type AwsIoTThingsGraphSearchFlowExecutionsOutputSummaries {
  flowExecutionId: String
  status: String
  systemInstanceId: String
  flowTemplateId: String
  createdAt: Date
  updatedAt: Date
}

input AwsIoTThingsGraphSearchFlowExecutionsInput {
  systemInstanceId: String!
  flowExecutionId: String
  startTime: Date
  endTime: Date
  nextToken: String
  maxResults: Int
}

type AwsIoTThingsGraphSearchFlowTemplatesOutput {
  summaries: [AwsIoTThingsGraphSb]
  nextToken: String
}

input AwsIoTThingsGraphSearchFlowTemplatesInput {
  filters: [AwsIoTThingsGraphSearchFlowTemplatesFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsIoTThingsGraphSearchFlowTemplatesFiltersInput {
  name: String!
  value: [String]!
}

type AwsIoTThingsGraphSearchSystemInstancesOutput {
  summaries: [AwsIoTThingsGraphSq]
  nextToken: String
}

input AwsIoTThingsGraphSearchSystemInstancesInput {
  filters: [AwsIoTThingsGraphSearchSystemInstancesFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsIoTThingsGraphSearchSystemInstancesFiltersInput {
  name: String
  value: [String]
}

type AwsIoTThingsGraphSearchSystemTemplatesOutput {
  summaries: [AwsIoTThingsGraphSw]
  nextToken: String
}

input AwsIoTThingsGraphSearchSystemTemplatesInput {
  filters: [AwsIoTThingsGraphSearchSystemTemplatesFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsIoTThingsGraphSearchSystemTemplatesFiltersInput {
  name: String!
  value: [String]!
}

type AwsIoTThingsGraphSearchThingsOutput {
  things: [AwsIoTThingsGraphSearchThingsOutputThings]
  nextToken: String
}

type AwsIoTThingsGraphSearchThingsOutputThings {
  thingArn: String
  thingName: String
}

input AwsIoTThingsGraphSearchThingsInput {
  entityId: String!
  nextToken: String
  maxResults: Int
  namespaceVersion: JSON
}

input AwsIoTThingsGraphTagResourceInput {
  resourceArn: String!
  tags: [AwsIoTThingsGraphSfInput]!
}

type AwsIoTThingsGraphUndeploySystemInstanceOutput {
  summary: AwsIoTThingsGraphSq
}

input AwsIoTThingsGraphUndeploySystemInstanceInput {
  id: String
}

input AwsIoTThingsGraphUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsIoTThingsGraphUpdateFlowTemplateOutput {
  summary: AwsIoTThingsGraphSb
}

input AwsIoTThingsGraphUpdateFlowTemplateInput {
  id: String!
  definition: AwsIoTThingsGraphS7Input!
  compatibleNamespaceVersion: JSON
}

type AwsIoTThingsGraphUpdateSystemTemplateOutput {
  summary: AwsIoTThingsGraphSw
}

input AwsIoTThingsGraphUpdateSystemTemplateInput {
  id: String!
  definition: AwsIoTThingsGraphS7Input!
  compatibleNamespaceVersion: JSON
}

type AwsIoTThingsGraphUploadEntityDefinitionsOutput {
  uploadId: String!
}

input AwsIoTThingsGraphUploadEntityDefinitionsInput {
  document: AwsIoTThingsGraphS7Input
  syncWithPublicNamespace: Boolean
  deprecateExistingEntities: Boolean
}

"""AWS IoT Wireless (2020-11-22)"""
type AwsIoTWireless {
  associateAwsAccountWithPartnerAccount(input: AwsIoTWirelessAssociateAwsAccountWithPartnerAccountInput!, config: AwsConfig): AwsIoTWirelessAssociateAwsAccountWithPartnerAccountOutput
  associateWirelessDeviceWithThing(input: AwsIoTWirelessAssociateWirelessDeviceWithThingInput!, config: AwsConfig): JSON
  associateWirelessGatewayWithCertificate(input: AwsIoTWirelessAssociateWirelessGatewayWithCertificateInput!, config: AwsConfig): AwsIoTWirelessAssociateWirelessGatewayWithCertificateOutput
  associateWirelessGatewayWithThing(input: AwsIoTWirelessAssociateWirelessGatewayWithThingInput!, config: AwsConfig): JSON
  createDestination(input: AwsIoTWirelessCreateDestinationInput!, config: AwsConfig): AwsIoTWirelessCreateDestinationOutput
  createDeviceProfile(input: AwsIoTWirelessCreateDeviceProfileInput, config: AwsConfig): AwsIoTWirelessCreateDeviceProfileOutput
  createServiceProfile(input: AwsIoTWirelessCreateServiceProfileInput, config: AwsConfig): AwsIoTWirelessCreateServiceProfileOutput
  createWirelessDevice(input: AwsIoTWirelessCreateWirelessDeviceInput!, config: AwsConfig): AwsIoTWirelessCreateWirelessDeviceOutput
  createWirelessGateway(input: AwsIoTWirelessCreateWirelessGatewayInput!, config: AwsConfig): AwsIoTWirelessCreateWirelessGatewayOutput
  createWirelessGatewayTask(input: AwsIoTWirelessCreateWirelessGatewayTaskInput!, config: AwsConfig): AwsIoTWirelessCreateWirelessGatewayTaskOutput
  createWirelessGatewayTaskDefinition(input: AwsIoTWirelessCreateWirelessGatewayTaskDefinitionInput!, config: AwsConfig): AwsIoTWirelessCreateWirelessGatewayTaskDefinitionOutput
  deleteDestination(input: AwsIoTWirelessDeleteDestinationInput!, config: AwsConfig): JSON
  deleteDeviceProfile(input: AwsIoTWirelessDeleteDeviceProfileInput!, config: AwsConfig): JSON
  deleteServiceProfile(input: AwsIoTWirelessDeleteServiceProfileInput!, config: AwsConfig): JSON
  deleteWirelessDevice(input: AwsIoTWirelessDeleteWirelessDeviceInput!, config: AwsConfig): JSON
  deleteWirelessGateway(input: AwsIoTWirelessDeleteWirelessGatewayInput!, config: AwsConfig): JSON
  deleteWirelessGatewayTask(input: AwsIoTWirelessDeleteWirelessGatewayTaskInput!, config: AwsConfig): JSON
  deleteWirelessGatewayTaskDefinition(input: AwsIoTWirelessDeleteWirelessGatewayTaskDefinitionInput!, config: AwsConfig): JSON
  disassociateAwsAccountFromPartnerAccount(input: AwsIoTWirelessDisassociateAwsAccountFromPartnerAccountInput!, config: AwsConfig): JSON
  disassociateWirelessDeviceFromThing(input: AwsIoTWirelessDisassociateWirelessDeviceFromThingInput!, config: AwsConfig): JSON
  disassociateWirelessGatewayFromCertificate(input: AwsIoTWirelessDisassociateWirelessGatewayFromCertificateInput!, config: AwsConfig): JSON
  disassociateWirelessGatewayFromThing(input: AwsIoTWirelessDisassociateWirelessGatewayFromThingInput!, config: AwsConfig): JSON
  getDestination(input: AwsIoTWirelessGetDestinationInput!, config: AwsConfig): AwsIoTWirelessGetDestinationOutput
  getDeviceProfile(input: AwsIoTWirelessGetDeviceProfileInput!, config: AwsConfig): AwsIoTWirelessGetDeviceProfileOutput
  getLogLevelsByResourceTypes(input: JSON, config: AwsConfig): AwsIoTWirelessGetLogLevelsByResourceTypesOutput
  getPartnerAccount(input: AwsIoTWirelessGetPartnerAccountInput!, config: AwsConfig): AwsIoTWirelessGetPartnerAccountOutput
  getResourceLogLevel(input: AwsIoTWirelessGetResourceLogLevelInput!, config: AwsConfig): AwsIoTWirelessGetResourceLogLevelOutput
  getServiceEndpoint(input: AwsIoTWirelessGetServiceEndpointInput, config: AwsConfig): AwsIoTWirelessGetServiceEndpointOutput
  getServiceProfile(input: AwsIoTWirelessGetServiceProfileInput!, config: AwsConfig): AwsIoTWirelessGetServiceProfileOutput
  getWirelessDevice(input: AwsIoTWirelessGetWirelessDeviceInput!, config: AwsConfig): AwsIoTWirelessGetWirelessDeviceOutput
  getWirelessDeviceStatistics(input: AwsIoTWirelessGetWirelessDeviceStatisticsInput!, config: AwsConfig): AwsIoTWirelessGetWirelessDeviceStatisticsOutput
  getWirelessGateway(input: AwsIoTWirelessGetWirelessGatewayInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayOutput
  getWirelessGatewayCertificate(input: AwsIoTWirelessGetWirelessGatewayCertificateInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayCertificateOutput
  getWirelessGatewayFirmwareInformation(input: AwsIoTWirelessGetWirelessGatewayFirmwareInformationInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayFirmwareInformationOutput
  getWirelessGatewayStatistics(input: AwsIoTWirelessGetWirelessGatewayStatisticsInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayStatisticsOutput
  getWirelessGatewayTask(input: AwsIoTWirelessGetWirelessGatewayTaskInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayTaskOutput
  getWirelessGatewayTaskDefinition(input: AwsIoTWirelessGetWirelessGatewayTaskDefinitionInput!, config: AwsConfig): AwsIoTWirelessGetWirelessGatewayTaskDefinitionOutput
  listDestinations(input: AwsIoTWirelessListDestinationsInput, config: AwsConfig): AwsIoTWirelessListDestinationsOutput
  listDeviceProfiles(input: AwsIoTWirelessListDeviceProfilesInput, config: AwsConfig): AwsIoTWirelessListDeviceProfilesOutput
  listPartnerAccounts(input: AwsIoTWirelessListPartnerAccountsInput, config: AwsConfig): AwsIoTWirelessListPartnerAccountsOutput
  listServiceProfiles(input: AwsIoTWirelessListServiceProfilesInput, config: AwsConfig): AwsIoTWirelessListServiceProfilesOutput
  listTagsForResource(input: AwsIoTWirelessListTagsForResourceInput!, config: AwsConfig): AwsIoTWirelessListTagsForResourceOutput
  listWirelessDevices(input: AwsIoTWirelessListWirelessDevicesInput, config: AwsConfig): AwsIoTWirelessListWirelessDevicesOutput
  listWirelessGatewayTaskDefinitions(input: AwsIoTWirelessListWirelessGatewayTaskDefinitionsInput, config: AwsConfig): AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutput
  listWirelessGateways(input: AwsIoTWirelessListWirelessGatewaysInput, config: AwsConfig): AwsIoTWirelessListWirelessGatewaysOutput
  putResourceLogLevel(input: AwsIoTWirelessPutResourceLogLevelInput!, config: AwsConfig): JSON
  resetAllResourceLogLevels(input: JSON, config: AwsConfig): JSON
  resetResourceLogLevel(input: AwsIoTWirelessResetResourceLogLevelInput!, config: AwsConfig): JSON
  sendDataToWirelessDevice(input: AwsIoTWirelessSendDataToWirelessDeviceInput!, config: AwsConfig): AwsIoTWirelessSendDataToWirelessDeviceOutput
  tagResource(input: AwsIoTWirelessTagResourceInput!, config: AwsConfig): JSON
  testWirelessDevice(input: AwsIoTWirelessTestWirelessDeviceInput!, config: AwsConfig): AwsIoTWirelessTestWirelessDeviceOutput
  untagResource(input: AwsIoTWirelessUntagResourceInput!, config: AwsConfig): JSON
  updateDestination(input: AwsIoTWirelessUpdateDestinationInput!, config: AwsConfig): JSON
  updateLogLevelsByResourceTypes(input: AwsIoTWirelessUpdateLogLevelsByResourceTypesInput, config: AwsConfig): JSON
  updatePartnerAccount(input: AwsIoTWirelessUpdatePartnerAccountInput!, config: AwsConfig): JSON
  updateWirelessDevice(input: AwsIoTWirelessUpdateWirelessDeviceInput!, config: AwsConfig): JSON
  updateWirelessGateway(input: AwsIoTWirelessUpdateWirelessGatewayInput!, config: AwsConfig): JSON
}

type AwsIoTWirelessAssociateAwsAccountWithPartnerAccountOutput {
  Sidewalk: AwsIoTWirelessS2
  Arn: String
}

type AwsIoTWirelessS2 {
  AmazonId: String
  AppServerPrivateKey: String
}

input AwsIoTWirelessAssociateAwsAccountWithPartnerAccountInput {
  Sidewalk: AwsIoTWirelessS2Input!
  ClientRequestToken: String
  Tags: [AwsIoTWirelessS6Input]
}

input AwsIoTWirelessS2Input {
  AmazonId: String
  AppServerPrivateKey: String
}

input AwsIoTWirelessS6Input {
  Key: String!
  Value: String!
}

input AwsIoTWirelessAssociateWirelessDeviceWithThingInput {
  Id: String!
  ThingArn: String!
}

type AwsIoTWirelessAssociateWirelessGatewayWithCertificateOutput {
  IotCertificateId: String
}

input AwsIoTWirelessAssociateWirelessGatewayWithCertificateInput {
  Id: String!
  IotCertificateId: String!
}

input AwsIoTWirelessAssociateWirelessGatewayWithThingInput {
  Id: String!
  ThingArn: String!
}

type AwsIoTWirelessCreateDestinationOutput {
  Arn: String
  Name: String
}

input AwsIoTWirelessCreateDestinationInput {
  Name: String!
  ExpressionType: String!
  Expression: String!
  Description: String
  RoleArn: String!
  Tags: [AwsIoTWirelessS6Input]
  ClientRequestToken: String
}

type AwsIoTWirelessCreateDeviceProfileOutput {
  Arn: String
  Id: String
}

input AwsIoTWirelessCreateDeviceProfileInput {
  Name: String
  LoRaWAN: AwsIoTWirelessSwInput
  Tags: [AwsIoTWirelessS6Input]
  ClientRequestToken: String
}

input AwsIoTWirelessSwInput {
  SupportsClassB: Boolean
  ClassBTimeout: Int
  PingSlotPeriod: Int
  PingSlotDr: Int
  PingSlotFreq: Int
  SupportsClassC: Boolean
  ClassCTimeout: Int
  MacVersion: String
  RegParamsRevision: String
  RxDelay1: Int
  RxDrOffset1: Int
  RxDataRate2: Int
  RxFreq2: Int
  FactoryPresetFreqsList: [Int]
  MaxEirp: Int
  MaxDutyCycle: Int
  RfRegion: String
  SupportsJoin: Boolean
  Supports32BitFCnt: Boolean
}

type AwsIoTWirelessCreateServiceProfileOutput {
  Arn: String
  Id: String
}

input AwsIoTWirelessCreateServiceProfileInput {
  Name: String
  LoRaWAN: AwsIoTWirelessCreateServiceProfileLoRaWANInput
  Tags: [AwsIoTWirelessS6Input]
  ClientRequestToken: String
}

input AwsIoTWirelessCreateServiceProfileLoRaWANInput {
  AddGwMetadata: Boolean
}

type AwsIoTWirelessCreateWirelessDeviceOutput {
  Arn: String
  Id: String
}

input AwsIoTWirelessCreateWirelessDeviceInput {
  Type: String!
  Name: String
  Description: String
  DestinationName: String!
  ClientRequestToken: String
  LoRaWAN: AwsIoTWirelessS1uInput
  Tags: [AwsIoTWirelessS6Input]
}

input AwsIoTWirelessS1uInput {
  DevEui: String
  DeviceProfileId: String
  ServiceProfileId: String
  OtaaV1_1: AwsIoTWirelessS1uOtaaV1_1Input
  OtaaV1_0_x: AwsIoTWirelessS1uOtaaV1_0_xInput
  AbpV1_1: AwsIoTWirelessS1uAbpV1_1Input
  AbpV1_0_x: AwsIoTWirelessS1uAbpV1_0_xInput
}

input AwsIoTWirelessS1uOtaaV1_1Input {
  AppKey: String
  NwkKey: String
  JoinEui: String
}

input AwsIoTWirelessS1uOtaaV1_0_xInput {
  AppKey: String
  AppEui: String
}

input AwsIoTWirelessS1uAbpV1_1Input {
  DevAddr: String
  SessionKeys: AwsIoTWirelessS1uAbpV1_1SessionKeysInput
}

input AwsIoTWirelessS1uAbpV1_1SessionKeysInput {
  FNwkSIntKey: String
  SNwkSIntKey: String
  NwkSEncKey: String
  AppSKey: String
}

input AwsIoTWirelessS1uAbpV1_0_xInput {
  DevAddr: String
  SessionKeys: AwsIoTWirelessS1uAbpV1_0_xSessionKeysInput
}

input AwsIoTWirelessS1uAbpV1_0_xSessionKeysInput {
  NwkSKey: String
  AppSKey: String
}

type AwsIoTWirelessCreateWirelessGatewayOutput {
  Arn: String
  Id: String
}

input AwsIoTWirelessCreateWirelessGatewayInput {
  Name: String
  Description: String
  LoRaWAN: AwsIoTWirelessS2gInput!
  Tags: [AwsIoTWirelessS6Input]
  ClientRequestToken: String
}

input AwsIoTWirelessS2gInput {
  GatewayEui: String
  RfRegion: String
  JoinEuiFilters: [[String]]
  NetIdFilters: [String]
  SubBands: [Int]
}

type AwsIoTWirelessCreateWirelessGatewayTaskOutput {
  WirelessGatewayTaskDefinitionId: String
  Status: String
}

input AwsIoTWirelessCreateWirelessGatewayTaskInput {
  Id: String!
  WirelessGatewayTaskDefinitionId: String!
}

type AwsIoTWirelessCreateWirelessGatewayTaskDefinitionOutput {
  Id: String
  Arn: String
}

input AwsIoTWirelessCreateWirelessGatewayTaskDefinitionInput {
  AutoCreateTasks: Boolean!
  Name: String
  Update: AwsIoTWirelessS2xInput
  ClientRequestToken: String
  Tags: [AwsIoTWirelessS6Input]
}

input AwsIoTWirelessS2xInput {
  UpdateDataSource: String
  UpdateDataRole: String
  LoRaWAN: AwsIoTWirelessS2xLoRaWANInput
}

input AwsIoTWirelessS2xLoRaWANInput {
  UpdateSignature: String
  SigKeyCrc: JSON
  CurrentVersion: AwsIoTWirelessS32Input
  UpdateVersion: AwsIoTWirelessS32Input
}

input AwsIoTWirelessS32Input {
  PackageVersion: String
  Model: String
  Station: String
}

input AwsIoTWirelessDeleteDestinationInput {
  Name: String!
}

input AwsIoTWirelessDeleteDeviceProfileInput {
  Id: String!
}

input AwsIoTWirelessDeleteServiceProfileInput {
  Id: String!
}

input AwsIoTWirelessDeleteWirelessDeviceInput {
  Id: String!
}

input AwsIoTWirelessDeleteWirelessGatewayInput {
  Id: String!
}

input AwsIoTWirelessDeleteWirelessGatewayTaskInput {
  Id: String!
}

input AwsIoTWirelessDeleteWirelessGatewayTaskDefinitionInput {
  Id: String!
}

input AwsIoTWirelessDisassociateAwsAccountFromPartnerAccountInput {
  PartnerAccountId: String!
  PartnerType: String!
}

input AwsIoTWirelessDisassociateWirelessDeviceFromThingInput {
  Id: String!
}

input AwsIoTWirelessDisassociateWirelessGatewayFromCertificateInput {
  Id: String!
}

input AwsIoTWirelessDisassociateWirelessGatewayFromThingInput {
  Id: String!
}

type AwsIoTWirelessGetDestinationOutput {
  Arn: String
  Name: String
  Expression: String
  ExpressionType: String
  Description: String
  RoleArn: String
}

input AwsIoTWirelessGetDestinationInput {
  Name: String!
}

type AwsIoTWirelessGetDeviceProfileOutput {
  Arn: String
  Name: String
  Id: String
  LoRaWAN: AwsIoTWirelessSw
}

type AwsIoTWirelessSw {
  SupportsClassB: Boolean
  ClassBTimeout: Int
  PingSlotPeriod: Int
  PingSlotDr: Int
  PingSlotFreq: Int
  SupportsClassC: Boolean
  ClassCTimeout: Int
  MacVersion: String
  RegParamsRevision: String
  RxDelay1: Int
  RxDrOffset1: Int
  RxDataRate2: Int
  RxFreq2: Int
  FactoryPresetFreqsList: [Int]
  MaxEirp: Int
  MaxDutyCycle: Int
  RfRegion: String
  SupportsJoin: Boolean
  Supports32BitFCnt: Boolean
}

input AwsIoTWirelessGetDeviceProfileInput {
  Id: String!
}

type AwsIoTWirelessGetLogLevelsByResourceTypesOutput {
  DefaultLogLevel: String
  WirelessGatewayLogOptions: [AwsIoTWirelessS43]
  WirelessDeviceLogOptions: [AwsIoTWirelessS49]
}

type AwsIoTWirelessS43 {
  Type: String!
  LogLevel: String!
  Events: [AwsIoTWirelessS43Events]
}

type AwsIoTWirelessS43Events {
  Event: String!
  LogLevel: String!
}

type AwsIoTWirelessS49 {
  Type: String!
  LogLevel: String!
  Events: [AwsIoTWirelessS49Events]
}

type AwsIoTWirelessS49Events {
  Event: String!
  LogLevel: String!
}

type AwsIoTWirelessGetPartnerAccountOutput {
  Sidewalk: AwsIoTWirelessS4g
  AccountLinked: Boolean
}

type AwsIoTWirelessS4g {
  AmazonId: String
  Fingerprint: String
  Arn: String
}

input AwsIoTWirelessGetPartnerAccountInput {
  PartnerAccountId: String!
  PartnerType: String!
}

type AwsIoTWirelessGetResourceLogLevelOutput {
  LogLevel: String
}

input AwsIoTWirelessGetResourceLogLevelInput {
  ResourceIdentifier: String!
  ResourceType: String!
}

type AwsIoTWirelessGetServiceEndpointOutput {
  ServiceType: String
  ServiceEndpoint: String
  ServerTrust: String
}

input AwsIoTWirelessGetServiceEndpointInput {
  ServiceType: String
}

type AwsIoTWirelessGetServiceProfileOutput {
  Arn: String
  Name: String
  Id: String
  LoRaWAN: AwsIoTWirelessGetServiceProfileOutputLoRaWAN
}

type AwsIoTWirelessGetServiceProfileOutputLoRaWAN {
  UlRate: Int
  UlBucketSize: Int
  UlRatePolicy: String
  DlRate: Int
  DlBucketSize: Int
  DlRatePolicy: String
  AddGwMetadata: Boolean
  DevStatusReqFreq: Int
  ReportDevStatusBattery: Boolean
  ReportDevStatusMargin: Boolean
  DrMin: Int
  DrMax: Int
  ChannelMask: String
  PrAllowed: Boolean
  HrAllowed: Boolean
  RaAllowed: Boolean
  NwkGeoLoc: Boolean
  TargetPer: Int
  MinGwDiversity: Int
}

input AwsIoTWirelessGetServiceProfileInput {
  Id: String!
}

type AwsIoTWirelessGetWirelessDeviceOutput {
  Type: String
  Name: String
  Description: String
  DestinationName: String
  Id: String
  Arn: String
  ThingName: String
  ThingArn: String
  LoRaWAN: AwsIoTWirelessS1u
  Sidewalk: AwsIoTWirelessGetWirelessDeviceOutputSidewalk
}

type AwsIoTWirelessS1u {
  DevEui: String
  DeviceProfileId: String
  ServiceProfileId: String
  OtaaV1_1: AwsIoTWirelessS1uOtaaV1_1
  OtaaV1_0_x: AwsIoTWirelessS1uOtaaV1_0_x
  AbpV1_1: AwsIoTWirelessS1uAbpV1_1
  AbpV1_0_x: AwsIoTWirelessS1uAbpV1_0_x
}

type AwsIoTWirelessS1uOtaaV1_1 {
  AppKey: String
  NwkKey: String
  JoinEui: String
}

type AwsIoTWirelessS1uOtaaV1_0_x {
  AppKey: String
  AppEui: String
}

type AwsIoTWirelessS1uAbpV1_1 {
  DevAddr: String
  SessionKeys: AwsIoTWirelessS1uAbpV1_1SessionKeys
}

type AwsIoTWirelessS1uAbpV1_1SessionKeys {
  FNwkSIntKey: String
  SNwkSIntKey: String
  NwkSEncKey: String
  AppSKey: String
}

type AwsIoTWirelessS1uAbpV1_0_x {
  DevAddr: String
  SessionKeys: AwsIoTWirelessS1uAbpV1_0_xSessionKeys
}

type AwsIoTWirelessS1uAbpV1_0_xSessionKeys {
  NwkSKey: String
  AppSKey: String
}

type AwsIoTWirelessGetWirelessDeviceOutputSidewalk {
  SidewalkId: String
  SidewalkManufacturingSn: String
  DeviceCertificates: [AwsIoTWirelessS5l]
}

type AwsIoTWirelessS5l {
  SigningAlg: String!
  Value: String!
}

input AwsIoTWirelessGetWirelessDeviceInput {
  Identifier: String!
  IdentifierType: String!
}

type AwsIoTWirelessGetWirelessDeviceStatisticsOutput {
  WirelessDeviceId: String
  LastUplinkReceivedAt: String
  LoRaWAN: AwsIoTWirelessGetWirelessDeviceStatisticsOutputLoRaWAN
  Sidewalk: AwsIoTWirelessGetWirelessDeviceStatisticsOutputSidewalk
}

type AwsIoTWirelessGetWirelessDeviceStatisticsOutputLoRaWAN {
  DevEui: String
  FPort: Int
  DataRate: Int
  Frequency: Int
  Timestamp: String
  Gateways: [AwsIoTWirelessGetWirelessDeviceStatisticsOutputLoRaWANGateways]
}

type AwsIoTWirelessGetWirelessDeviceStatisticsOutputLoRaWANGateways {
  GatewayEui: String
  Snr: JSON
  Rssi: JSON
}

type AwsIoTWirelessGetWirelessDeviceStatisticsOutputSidewalk {
  Rssi: Int
  BatteryLevel: String
  Event: String
  DeviceState: String
}

input AwsIoTWirelessGetWirelessDeviceStatisticsInput {
  WirelessDeviceId: String!
}

type AwsIoTWirelessGetWirelessGatewayOutput {
  Name: String
  Id: String
  Description: String
  LoRaWAN: AwsIoTWirelessS2g
  Arn: String
  ThingName: String
  ThingArn: String
}

type AwsIoTWirelessS2g {
  GatewayEui: String
  RfRegion: String
  JoinEuiFilters: [[String]]
  NetIdFilters: [String]
  SubBands: [Int]
}

input AwsIoTWirelessGetWirelessGatewayInput {
  Identifier: String!
  IdentifierType: String!
}

type AwsIoTWirelessGetWirelessGatewayCertificateOutput {
  IotCertificateId: String
  LoRaWANNetworkServerCertificateId: String
}

input AwsIoTWirelessGetWirelessGatewayCertificateInput {
  Id: String!
}

type AwsIoTWirelessGetWirelessGatewayFirmwareInformationOutput {
  LoRaWAN: AwsIoTWirelessGetWirelessGatewayFirmwareInformationOutputLoRaWAN
}

type AwsIoTWirelessGetWirelessGatewayFirmwareInformationOutputLoRaWAN {
  CurrentVersion: AwsIoTWirelessS32
}

type AwsIoTWirelessS32 {
  PackageVersion: String
  Model: String
  Station: String
}

input AwsIoTWirelessGetWirelessGatewayFirmwareInformationInput {
  Id: String!
}

type AwsIoTWirelessGetWirelessGatewayStatisticsOutput {
  WirelessGatewayId: String
  LastUplinkReceivedAt: String
  ConnectionStatus: String
}

input AwsIoTWirelessGetWirelessGatewayStatisticsInput {
  WirelessGatewayId: String!
}

type AwsIoTWirelessGetWirelessGatewayTaskOutput {
  WirelessGatewayId: String
  WirelessGatewayTaskDefinitionId: String
  LastUplinkReceivedAt: String
  TaskCreatedAt: String
  Status: String
}

input AwsIoTWirelessGetWirelessGatewayTaskInput {
  Id: String!
}

type AwsIoTWirelessGetWirelessGatewayTaskDefinitionOutput {
  AutoCreateTasks: Boolean
  Name: String
  Update: AwsIoTWirelessS2x
  Arn: String
}

type AwsIoTWirelessS2x {
  UpdateDataSource: String
  UpdateDataRole: String
  LoRaWAN: AwsIoTWirelessS2xLoRaWAN
}

type AwsIoTWirelessS2xLoRaWAN {
  UpdateSignature: String
  SigKeyCrc: JSON
  CurrentVersion: AwsIoTWirelessS32
  UpdateVersion: AwsIoTWirelessS32
}

input AwsIoTWirelessGetWirelessGatewayTaskDefinitionInput {
  Id: String!
}

type AwsIoTWirelessListDestinationsOutput {
  NextToken: String
  DestinationList: [AwsIoTWirelessListDestinationsOutputDestinationList]
}

type AwsIoTWirelessListDestinationsOutputDestinationList {
  Arn: String
  Name: String
  ExpressionType: String
  Expression: String
  Description: String
  RoleArn: String
}

input AwsIoTWirelessListDestinationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsIoTWirelessListDeviceProfilesOutput {
  NextToken: String
  DeviceProfileList: [AwsIoTWirelessListDeviceProfilesOutputDeviceProfileList]
}

type AwsIoTWirelessListDeviceProfilesOutputDeviceProfileList {
  Arn: String
  Name: String
  Id: String
}

input AwsIoTWirelessListDeviceProfilesInput {
  NextToken: String
  MaxResults: Int
}

type AwsIoTWirelessListPartnerAccountsOutput {
  NextToken: String
  Sidewalk: [AwsIoTWirelessS4g]
}

input AwsIoTWirelessListPartnerAccountsInput {
  NextToken: String
  MaxResults: Int
}

type AwsIoTWirelessListServiceProfilesOutput {
  NextToken: String
  ServiceProfileList: [AwsIoTWirelessListServiceProfilesOutputServiceProfileList]
}

type AwsIoTWirelessListServiceProfilesOutputServiceProfileList {
  Arn: String
  Name: String
  Id: String
}

input AwsIoTWirelessListServiceProfilesInput {
  NextToken: String
  MaxResults: Int
}

type AwsIoTWirelessListTagsForResourceOutput {
  Tags: [AwsIoTWirelessS6]
}

type AwsIoTWirelessS6 {
  Key: String!
  Value: String!
}

input AwsIoTWirelessListTagsForResourceInput {
  ResourceArn: String!
}

type AwsIoTWirelessListWirelessDevicesOutput {
  NextToken: String
  WirelessDeviceList: [AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceList]
}

type AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceList {
  Arn: String
  Id: String
  Type: String
  Name: String
  DestinationName: String
  LastUplinkReceivedAt: String
  LoRaWAN: AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceListLoRaWAN
  Sidewalk: AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceListSidewalk
}

type AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceListLoRaWAN {
  DevEui: String
}

type AwsIoTWirelessListWirelessDevicesOutputWirelessDeviceListSidewalk {
  AmazonId: String
  SidewalkId: String
  SidewalkManufacturingSn: String
  DeviceCertificates: [AwsIoTWirelessS5l]
}

input AwsIoTWirelessListWirelessDevicesInput {
  MaxResults: Int
  NextToken: String
  DestinationName: String
  DeviceProfileId: String
  ServiceProfileId: String
  WirelessDeviceType: String
}

type AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutput {
  NextToken: String
  TaskDefinitions: [AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutputTaskDefinitions]
}

type AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutputTaskDefinitions {
  Id: String
  LoRaWAN: AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutputTaskDefinitionsLoRaWAN
  Arn: String
}

type AwsIoTWirelessListWirelessGatewayTaskDefinitionsOutputTaskDefinitionsLoRaWAN {
  CurrentVersion: AwsIoTWirelessS32
  UpdateVersion: AwsIoTWirelessS32
}

input AwsIoTWirelessListWirelessGatewayTaskDefinitionsInput {
  MaxResults: Int
  NextToken: String
  TaskDefinitionType: String
}

type AwsIoTWirelessListWirelessGatewaysOutput {
  NextToken: String
  WirelessGatewayList: [AwsIoTWirelessListWirelessGatewaysOutputWirelessGatewayList]
}

type AwsIoTWirelessListWirelessGatewaysOutputWirelessGatewayList {
  Arn: String
  Id: String
  Name: String
  Description: String
  LoRaWAN: AwsIoTWirelessS2g
  LastUplinkReceivedAt: String
}

input AwsIoTWirelessListWirelessGatewaysInput {
  NextToken: String
  MaxResults: Int
}

input AwsIoTWirelessPutResourceLogLevelInput {
  ResourceIdentifier: String!
  ResourceType: String!
  LogLevel: String!
}

input AwsIoTWirelessResetResourceLogLevelInput {
  ResourceIdentifier: String!
  ResourceType: String!
}

type AwsIoTWirelessSendDataToWirelessDeviceOutput {
  MessageId: String
}

input AwsIoTWirelessSendDataToWirelessDeviceInput {
  Id: String!
  TransmitMode: Int!
  PayloadData: String!
  WirelessMetadata: AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataInput
}

input AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataInput {
  LoRaWAN: AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataLoRaWANInput
  Sidewalk: AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataSidewalkInput
}

input AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataLoRaWANInput {
  FPort: Int
}

input AwsIoTWirelessSendDataToWirelessDeviceWirelessMetadataSidewalkInput {
  Seq: Int
  MessageType: String
}

input AwsIoTWirelessTagResourceInput {
  ResourceArn: String!
  Tags: [AwsIoTWirelessS6Input]!
}

type AwsIoTWirelessTestWirelessDeviceOutput {
  Result: String
}

input AwsIoTWirelessTestWirelessDeviceInput {
  Id: String!
}

input AwsIoTWirelessUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsIoTWirelessUpdateDestinationInput {
  Name: String!
  ExpressionType: String
  Expression: String
  Description: String
  RoleArn: String
}

input AwsIoTWirelessUpdateLogLevelsByResourceTypesInput {
  DefaultLogLevel: String
  WirelessDeviceLogOptions: [AwsIoTWirelessS49Input]
  WirelessGatewayLogOptions: [AwsIoTWirelessS43Input]
}

input AwsIoTWirelessS49Input {
  Type: String!
  LogLevel: String!
  Events: [AwsIoTWirelessS49EventsInput]
}

input AwsIoTWirelessS49EventsInput {
  Event: String!
  LogLevel: String!
}

input AwsIoTWirelessS43Input {
  Type: String!
  LogLevel: String!
  Events: [AwsIoTWirelessS43EventsInput]
}

input AwsIoTWirelessS43EventsInput {
  Event: String!
  LogLevel: String!
}

input AwsIoTWirelessUpdatePartnerAccountInput {
  Sidewalk: AwsIoTWirelessUpdatePartnerAccountSidewalkInput!
  PartnerAccountId: String!
  PartnerType: String!
}

input AwsIoTWirelessUpdatePartnerAccountSidewalkInput {
  AppServerPrivateKey: String
}

input AwsIoTWirelessUpdateWirelessDeviceInput {
  Id: String!
  DestinationName: String
  Name: String
  Description: String
  LoRaWAN: AwsIoTWirelessUpdateWirelessDeviceLoRaWANInput
}

input AwsIoTWirelessUpdateWirelessDeviceLoRaWANInput {
  DeviceProfileId: String
  ServiceProfileId: String
}

input AwsIoTWirelessUpdateWirelessGatewayInput {
  Id: String!
  Name: String
  Description: String
  JoinEuiFilters: [[String]]
  NetIdFilters: [String]
}

"""AWS IoT (2015-05-28)"""
type AwsIot {
  acceptCertificateTransfer(input: AwsIotAcceptCertificateTransferInput!, config: AwsConfig): JSON
  addThingToBillingGroup(input: AwsIotAddThingToBillingGroupInput, config: AwsConfig): JSON
  addThingToThingGroup(input: AwsIotAddThingToThingGroupInput, config: AwsConfig): JSON
  associateTargetsWithJob(input: AwsIotAssociateTargetsWithJobInput!, config: AwsConfig): AwsIotAssociateTargetsWithJobOutput
  attachPolicy(input: AwsIotAttachPolicyInput!, config: AwsConfig): JSON
  attachPrincipalPolicy(input: AwsIotAttachPrincipalPolicyInput!, config: AwsConfig): JSON
  attachSecurityProfile(input: AwsIotAttachSecurityProfileInput!, config: AwsConfig): JSON
  attachThingPrincipal(input: AwsIotAttachThingPrincipalInput!, config: AwsConfig): JSON
  cancelAuditMitigationActionsTask(input: AwsIotCancelAuditMitigationActionsTaskInput!, config: AwsConfig): JSON
  cancelAuditTask(input: AwsIotCancelAuditTaskInput!, config: AwsConfig): JSON
  cancelCertificateTransfer(input: AwsIotCancelCertificateTransferInput!, config: AwsConfig): JSON
  cancelDetectMitigationActionsTask(input: AwsIotCancelDetectMitigationActionsTaskInput!, config: AwsConfig): JSON
  cancelJob(input: AwsIotCancelJobInput!, config: AwsConfig): AwsIotCancelJobOutput
  cancelJobExecution(input: AwsIotCancelJobExecutionInput!, config: AwsConfig): JSON
  clearDefaultAuthorizer(input: JSON, config: AwsConfig): JSON
  confirmTopicRuleDestination(input: AwsIotConfirmTopicRuleDestinationInput!, config: AwsConfig): JSON
  createAuditSuppression(input: AwsIotCreateAuditSuppressionInput!, config: AwsConfig): JSON
  createAuthorizer(input: AwsIotCreateAuthorizerInput!, config: AwsConfig): AwsIotCreateAuthorizerOutput
  createBillingGroup(input: AwsIotCreateBillingGroupInput!, config: AwsConfig): AwsIotCreateBillingGroupOutput
  createCertificateFromCsr(input: AwsIotCreateCertificateFromCsrInput!, config: AwsConfig): AwsIotCreateCertificateFromCsrOutput
  createCustomMetric(input: AwsIotCreateCustomMetricInput!, config: AwsConfig): AwsIotCreateCustomMetricOutput
  createDimension(input: AwsIotCreateDimensionInput!, config: AwsConfig): AwsIotCreateDimensionOutput
  createDomainConfiguration(input: AwsIotCreateDomainConfigurationInput!, config: AwsConfig): AwsIotCreateDomainConfigurationOutput
  createDynamicThingGroup(input: AwsIotCreateDynamicThingGroupInput!, config: AwsConfig): AwsIotCreateDynamicThingGroupOutput
  createJob(input: AwsIotCreateJobInput!, config: AwsConfig): AwsIotCreateJobOutput
  createJobTemplate(input: AwsIotCreateJobTemplateInput!, config: AwsConfig): AwsIotCreateJobTemplateOutput
  createKeysAndCertificate(input: AwsIotCreateKeysAndCertificateInput, config: AwsConfig): AwsIotCreateKeysAndCertificateOutput
  createMitigationAction(input: AwsIotCreateMitigationActionInput!, config: AwsConfig): AwsIotCreateMitigationActionOutput
  createOTAUpdate(input: AwsIotCreateOTAUpdateInput!, config: AwsConfig): AwsIotCreateOTAUpdateOutput
  createPolicy(input: AwsIotCreatePolicyInput!, config: AwsConfig): AwsIotCreatePolicyOutput
  createPolicyVersion(input: AwsIotCreatePolicyVersionInput!, config: AwsConfig): AwsIotCreatePolicyVersionOutput
  createProvisioningClaim(input: AwsIotCreateProvisioningClaimInput!, config: AwsConfig): AwsIotCreateProvisioningClaimOutput
  createProvisioningTemplate(input: AwsIotCreateProvisioningTemplateInput!, config: AwsConfig): AwsIotCreateProvisioningTemplateOutput
  createProvisioningTemplateVersion(input: AwsIotCreateProvisioningTemplateVersionInput!, config: AwsConfig): AwsIotCreateProvisioningTemplateVersionOutput
  createRoleAlias(input: AwsIotCreateRoleAliasInput!, config: AwsConfig): AwsIotCreateRoleAliasOutput
  createScheduledAudit(input: AwsIotCreateScheduledAuditInput!, config: AwsConfig): AwsIotCreateScheduledAuditOutput
  createSecurityProfile(input: AwsIotCreateSecurityProfileInput!, config: AwsConfig): AwsIotCreateSecurityProfileOutput
  createStream(input: AwsIotCreateStreamInput!, config: AwsConfig): AwsIotCreateStreamOutput
  createThing(input: AwsIotCreateThingInput!, config: AwsConfig): AwsIotCreateThingOutput
  createThingGroup(input: AwsIotCreateThingGroupInput!, config: AwsConfig): AwsIotCreateThingGroupOutput
  createThingType(input: AwsIotCreateThingTypeInput!, config: AwsConfig): AwsIotCreateThingTypeOutput
  createTopicRule(input: AwsIotCreateTopicRuleInput!, config: AwsConfig): JSON
  createTopicRuleDestination(input: AwsIotCreateTopicRuleDestinationInput!, config: AwsConfig): AwsIotCreateTopicRuleDestinationOutput
  deleteAccountAuditConfiguration(input: AwsIotDeleteAccountAuditConfigurationInput, config: AwsConfig): JSON
  deleteAuditSuppression(input: AwsIotDeleteAuditSuppressionInput!, config: AwsConfig): JSON
  deleteAuthorizer(input: AwsIotDeleteAuthorizerInput!, config: AwsConfig): JSON
  deleteBillingGroup(input: AwsIotDeleteBillingGroupInput!, config: AwsConfig): JSON
  deleteCACertificate(input: AwsIotDeleteCACertificateInput!, config: AwsConfig): JSON
  deleteCertificate(input: AwsIotDeleteCertificateInput!, config: AwsConfig): JSON
  deleteCustomMetric(input: AwsIotDeleteCustomMetricInput!, config: AwsConfig): JSON
  deleteDimension(input: AwsIotDeleteDimensionInput!, config: AwsConfig): JSON
  deleteDomainConfiguration(input: AwsIotDeleteDomainConfigurationInput!, config: AwsConfig): JSON
  deleteDynamicThingGroup(input: AwsIotDeleteDynamicThingGroupInput!, config: AwsConfig): JSON
  deleteJob(input: AwsIotDeleteJobInput!, config: AwsConfig): JSON
  deleteJobExecution(input: AwsIotDeleteJobExecutionInput!, config: AwsConfig): JSON
  deleteJobTemplate(input: AwsIotDeleteJobTemplateInput!, config: AwsConfig): JSON
  deleteMitigationAction(input: AwsIotDeleteMitigationActionInput!, config: AwsConfig): JSON
  deleteOTAUpdate(input: AwsIotDeleteOTAUpdateInput!, config: AwsConfig): JSON
  deletePolicy(input: AwsIotDeletePolicyInput!, config: AwsConfig): JSON
  deletePolicyVersion(input: AwsIotDeletePolicyVersionInput!, config: AwsConfig): JSON
  deleteProvisioningTemplate(input: AwsIotDeleteProvisioningTemplateInput!, config: AwsConfig): JSON
  deleteProvisioningTemplateVersion(input: AwsIotDeleteProvisioningTemplateVersionInput!, config: AwsConfig): JSON
  deleteRegistrationCode(input: JSON, config: AwsConfig): JSON
  deleteRoleAlias(input: AwsIotDeleteRoleAliasInput!, config: AwsConfig): JSON
  deleteScheduledAudit(input: AwsIotDeleteScheduledAuditInput!, config: AwsConfig): JSON
  deleteSecurityProfile(input: AwsIotDeleteSecurityProfileInput!, config: AwsConfig): JSON
  deleteStream(input: AwsIotDeleteStreamInput!, config: AwsConfig): JSON
  deleteThing(input: AwsIotDeleteThingInput!, config: AwsConfig): JSON
  deleteThingGroup(input: AwsIotDeleteThingGroupInput!, config: AwsConfig): JSON
  deleteThingType(input: AwsIotDeleteThingTypeInput!, config: AwsConfig): JSON
  deleteTopicRule(input: AwsIotDeleteTopicRuleInput!, config: AwsConfig): JSON
  deleteTopicRuleDestination(input: AwsIotDeleteTopicRuleDestinationInput!, config: AwsConfig): JSON
  deleteV2LoggingLevel(input: AwsIotDeleteV2LoggingLevelInput!, config: AwsConfig): JSON
  deprecateThingType(input: AwsIotDeprecateThingTypeInput!, config: AwsConfig): JSON
  describeAccountAuditConfiguration(input: JSON, config: AwsConfig): AwsIotDescribeAccountAuditConfigurationOutput
  describeAuditFinding(input: AwsIotDescribeAuditFindingInput!, config: AwsConfig): AwsIotDescribeAuditFindingOutput
  describeAuditMitigationActionsTask(input: AwsIotDescribeAuditMitigationActionsTaskInput!, config: AwsConfig): AwsIotDescribeAuditMitigationActionsTaskOutput
  describeAuditSuppression(input: AwsIotDescribeAuditSuppressionInput!, config: AwsConfig): AwsIotDescribeAuditSuppressionOutput
  describeAuditTask(input: AwsIotDescribeAuditTaskInput!, config: AwsConfig): AwsIotDescribeAuditTaskOutput
  describeAuthorizer(input: AwsIotDescribeAuthorizerInput!, config: AwsConfig): AwsIotDescribeAuthorizerOutput
  describeBillingGroup(input: AwsIotDescribeBillingGroupInput!, config: AwsConfig): AwsIotDescribeBillingGroupOutput
  describeCACertificate(input: AwsIotDescribeCACertificateInput!, config: AwsConfig): AwsIotDescribeCACertificateOutput
  describeCertificate(input: AwsIotDescribeCertificateInput!, config: AwsConfig): AwsIotDescribeCertificateOutput
  describeCustomMetric(input: AwsIotDescribeCustomMetricInput!, config: AwsConfig): AwsIotDescribeCustomMetricOutput
  describeDefaultAuthorizer(input: JSON, config: AwsConfig): AwsIotDescribeDefaultAuthorizerOutput
  describeDetectMitigationActionsTask(input: AwsIotDescribeDetectMitigationActionsTaskInput!, config: AwsConfig): AwsIotDescribeDetectMitigationActionsTaskOutput
  describeDimension(input: AwsIotDescribeDimensionInput!, config: AwsConfig): AwsIotDescribeDimensionOutput
  describeDomainConfiguration(input: AwsIotDescribeDomainConfigurationInput!, config: AwsConfig): AwsIotDescribeDomainConfigurationOutput
  describeEndpoint(input: AwsIotDescribeEndpointInput, config: AwsConfig): AwsIotDescribeEndpointOutput
  describeEventConfigurations(input: JSON, config: AwsConfig): AwsIotDescribeEventConfigurationsOutput
  describeIndex(input: AwsIotDescribeIndexInput!, config: AwsConfig): AwsIotDescribeIndexOutput
  describeJob(input: AwsIotDescribeJobInput!, config: AwsConfig): AwsIotDescribeJobOutput
  describeJobExecution(input: AwsIotDescribeJobExecutionInput!, config: AwsConfig): AwsIotDescribeJobExecutionOutput
  describeJobTemplate(input: AwsIotDescribeJobTemplateInput!, config: AwsConfig): AwsIotDescribeJobTemplateOutput
  describeMitigationAction(input: AwsIotDescribeMitigationActionInput!, config: AwsConfig): AwsIotDescribeMitigationActionOutput
  describeProvisioningTemplate(input: AwsIotDescribeProvisioningTemplateInput!, config: AwsConfig): AwsIotDescribeProvisioningTemplateOutput
  describeProvisioningTemplateVersion(input: AwsIotDescribeProvisioningTemplateVersionInput!, config: AwsConfig): AwsIotDescribeProvisioningTemplateVersionOutput
  describeRoleAlias(input: AwsIotDescribeRoleAliasInput!, config: AwsConfig): AwsIotDescribeRoleAliasOutput
  describeScheduledAudit(input: AwsIotDescribeScheduledAuditInput!, config: AwsConfig): AwsIotDescribeScheduledAuditOutput
  describeSecurityProfile(input: AwsIotDescribeSecurityProfileInput!, config: AwsConfig): AwsIotDescribeSecurityProfileOutput
  describeStream(input: AwsIotDescribeStreamInput!, config: AwsConfig): AwsIotDescribeStreamOutput
  describeThing(input: AwsIotDescribeThingInput!, config: AwsConfig): AwsIotDescribeThingOutput
  describeThingGroup(input: AwsIotDescribeThingGroupInput!, config: AwsConfig): AwsIotDescribeThingGroupOutput
  describeThingRegistrationTask(input: AwsIotDescribeThingRegistrationTaskInput!, config: AwsConfig): AwsIotDescribeThingRegistrationTaskOutput
  describeThingType(input: AwsIotDescribeThingTypeInput!, config: AwsConfig): AwsIotDescribeThingTypeOutput
  detachPolicy(input: AwsIotDetachPolicyInput!, config: AwsConfig): JSON
  detachPrincipalPolicy(input: AwsIotDetachPrincipalPolicyInput!, config: AwsConfig): JSON
  detachSecurityProfile(input: AwsIotDetachSecurityProfileInput!, config: AwsConfig): JSON
  detachThingPrincipal(input: AwsIotDetachThingPrincipalInput!, config: AwsConfig): JSON
  disableTopicRule(input: AwsIotDisableTopicRuleInput!, config: AwsConfig): JSON
  enableTopicRule(input: AwsIotEnableTopicRuleInput!, config: AwsConfig): JSON
  getBehaviorModelTrainingSummaries(input: AwsIotGetBehaviorModelTrainingSummariesInput, config: AwsConfig): AwsIotGetBehaviorModelTrainingSummariesOutput
  getCardinality(input: AwsIotGetCardinalityInput!, config: AwsConfig): AwsIotGetCardinalityOutput
  getEffectivePolicies(input: AwsIotGetEffectivePoliciesInput, config: AwsConfig): AwsIotGetEffectivePoliciesOutput
  getIndexingConfiguration(input: JSON, config: AwsConfig): AwsIotGetIndexingConfigurationOutput
  getJobDocument(input: AwsIotGetJobDocumentInput!, config: AwsConfig): AwsIotGetJobDocumentOutput
  getLoggingOptions(input: JSON, config: AwsConfig): AwsIotGetLoggingOptionsOutput
  getOTAUpdate(input: AwsIotGetOTAUpdateInput!, config: AwsConfig): AwsIotGetOTAUpdateOutput
  getPercentiles(input: AwsIotGetPercentilesInput!, config: AwsConfig): AwsIotGetPercentilesOutput
  getPolicy(input: AwsIotGetPolicyInput!, config: AwsConfig): AwsIotGetPolicyOutput
  getPolicyVersion(input: AwsIotGetPolicyVersionInput!, config: AwsConfig): AwsIotGetPolicyVersionOutput
  getRegistrationCode(input: JSON, config: AwsConfig): AwsIotGetRegistrationCodeOutput
  getStatistics(input: AwsIotGetStatisticsInput!, config: AwsConfig): AwsIotGetStatisticsOutput
  getTopicRule(input: AwsIotGetTopicRuleInput!, config: AwsConfig): AwsIotGetTopicRuleOutput
  getTopicRuleDestination(input: AwsIotGetTopicRuleDestinationInput!, config: AwsConfig): AwsIotGetTopicRuleDestinationOutput
  getV2LoggingOptions(input: JSON, config: AwsConfig): AwsIotGetV2LoggingOptionsOutput
  listActiveViolations(input: AwsIotListActiveViolationsInput, config: AwsConfig): AwsIotListActiveViolationsOutput
  listAttachedPolicies(input: AwsIotListAttachedPoliciesInput!, config: AwsConfig): AwsIotListAttachedPoliciesOutput
  listAuditFindings(input: AwsIotListAuditFindingsInput, config: AwsConfig): AwsIotListAuditFindingsOutput
  listAuditMitigationActionsExecutions(input: AwsIotListAuditMitigationActionsExecutionsInput!, config: AwsConfig): AwsIotListAuditMitigationActionsExecutionsOutput
  listAuditMitigationActionsTasks(input: AwsIotListAuditMitigationActionsTasksInput!, config: AwsConfig): AwsIotListAuditMitigationActionsTasksOutput
  listAuditSuppressions(input: AwsIotListAuditSuppressionsInput, config: AwsConfig): AwsIotListAuditSuppressionsOutput
  listAuditTasks(input: AwsIotListAuditTasksInput!, config: AwsConfig): AwsIotListAuditTasksOutput
  listAuthorizers(input: AwsIotListAuthorizersInput, config: AwsConfig): AwsIotListAuthorizersOutput
  listBillingGroups(input: AwsIotListBillingGroupsInput, config: AwsConfig): AwsIotListBillingGroupsOutput
  listCACertificates(input: AwsIotListCACertificatesInput, config: AwsConfig): AwsIotListCACertificatesOutput
  listCertificates(input: AwsIotListCertificatesInput, config: AwsConfig): AwsIotListCertificatesOutput
  listCertificatesByCA(input: AwsIotListCertificatesByCAInput!, config: AwsConfig): AwsIotListCertificatesByCAOutput
  listCustomMetrics(input: AwsIotListCustomMetricsInput, config: AwsConfig): AwsIotListCustomMetricsOutput
  listDetectMitigationActionsExecutions(input: AwsIotListDetectMitigationActionsExecutionsInput, config: AwsConfig): AwsIotListDetectMitigationActionsExecutionsOutput
  listDetectMitigationActionsTasks(input: AwsIotListDetectMitigationActionsTasksInput!, config: AwsConfig): AwsIotListDetectMitigationActionsTasksOutput
  listDimensions(input: AwsIotListDimensionsInput, config: AwsConfig): AwsIotListDimensionsOutput
  listDomainConfigurations(input: AwsIotListDomainConfigurationsInput, config: AwsConfig): AwsIotListDomainConfigurationsOutput
  listIndices(input: AwsIotListIndicesInput, config: AwsConfig): AwsIotListIndicesOutput
  listJobExecutionsForJob(input: AwsIotListJobExecutionsForJobInput!, config: AwsConfig): AwsIotListJobExecutionsForJobOutput
  listJobExecutionsForThing(input: AwsIotListJobExecutionsForThingInput!, config: AwsConfig): AwsIotListJobExecutionsForThingOutput
  listJobTemplates(input: AwsIotListJobTemplatesInput, config: AwsConfig): AwsIotListJobTemplatesOutput
  listJobs(input: AwsIotListJobsInput, config: AwsConfig): AwsIotListJobsOutput
  listMitigationActions(input: AwsIotListMitigationActionsInput, config: AwsConfig): AwsIotListMitigationActionsOutput
  listOTAUpdates(input: AwsIotListOTAUpdatesInput, config: AwsConfig): AwsIotListOTAUpdatesOutput
  listOutgoingCertificates(input: AwsIotListOutgoingCertificatesInput, config: AwsConfig): AwsIotListOutgoingCertificatesOutput
  listPolicies(input: AwsIotListPoliciesInput, config: AwsConfig): AwsIotListPoliciesOutput
  listPolicyPrincipals(input: AwsIotListPolicyPrincipalsInput!, config: AwsConfig): AwsIotListPolicyPrincipalsOutput
  listPolicyVersions(input: AwsIotListPolicyVersionsInput!, config: AwsConfig): AwsIotListPolicyVersionsOutput
  listPrincipalPolicies(input: AwsIotListPrincipalPoliciesInput!, config: AwsConfig): AwsIotListPrincipalPoliciesOutput
  listPrincipalThings(input: AwsIotListPrincipalThingsInput!, config: AwsConfig): AwsIotListPrincipalThingsOutput
  listProvisioningTemplateVersions(input: AwsIotListProvisioningTemplateVersionsInput!, config: AwsConfig): AwsIotListProvisioningTemplateVersionsOutput
  listProvisioningTemplates(input: AwsIotListProvisioningTemplatesInput, config: AwsConfig): AwsIotListProvisioningTemplatesOutput
  listRoleAliases(input: AwsIotListRoleAliasesInput, config: AwsConfig): AwsIotListRoleAliasesOutput
  listScheduledAudits(input: AwsIotListScheduledAuditsInput, config: AwsConfig): AwsIotListScheduledAuditsOutput
  listSecurityProfiles(input: AwsIotListSecurityProfilesInput, config: AwsConfig): AwsIotListSecurityProfilesOutput
  listSecurityProfilesForTarget(input: AwsIotListSecurityProfilesForTargetInput!, config: AwsConfig): AwsIotListSecurityProfilesForTargetOutput
  listStreams(input: AwsIotListStreamsInput, config: AwsConfig): AwsIotListStreamsOutput
  listTagsForResource(input: AwsIotListTagsForResourceInput!, config: AwsConfig): AwsIotListTagsForResourceOutput
  listTargetsForPolicy(input: AwsIotListTargetsForPolicyInput!, config: AwsConfig): AwsIotListTargetsForPolicyOutput
  listTargetsForSecurityProfile(input: AwsIotListTargetsForSecurityProfileInput!, config: AwsConfig): AwsIotListTargetsForSecurityProfileOutput
  listThingGroups(input: AwsIotListThingGroupsInput, config: AwsConfig): AwsIotListThingGroupsOutput
  listThingGroupsForThing(input: AwsIotListThingGroupsForThingInput!, config: AwsConfig): AwsIotListThingGroupsForThingOutput
  listThingPrincipals(input: AwsIotListThingPrincipalsInput!, config: AwsConfig): AwsIotListThingPrincipalsOutput
  listThingRegistrationTaskReports(input: AwsIotListThingRegistrationTaskReportsInput!, config: AwsConfig): AwsIotListThingRegistrationTaskReportsOutput
  listThingRegistrationTasks(input: AwsIotListThingRegistrationTasksInput, config: AwsConfig): AwsIotListThingRegistrationTasksOutput
  listThingTypes(input: AwsIotListThingTypesInput, config: AwsConfig): AwsIotListThingTypesOutput
  listThings(input: AwsIotListThingsInput, config: AwsConfig): AwsIotListThingsOutput
  listThingsInBillingGroup(input: AwsIotListThingsInBillingGroupInput!, config: AwsConfig): AwsIotListThingsInBillingGroupOutput
  listThingsInThingGroup(input: AwsIotListThingsInThingGroupInput!, config: AwsConfig): AwsIotListThingsInThingGroupOutput
  listTopicRuleDestinations(input: AwsIotListTopicRuleDestinationsInput, config: AwsConfig): AwsIotListTopicRuleDestinationsOutput
  listTopicRules(input: AwsIotListTopicRulesInput, config: AwsConfig): AwsIotListTopicRulesOutput
  listV2LoggingLevels(input: AwsIotListV2LoggingLevelsInput, config: AwsConfig): AwsIotListV2LoggingLevelsOutput
  listViolationEvents(input: AwsIotListViolationEventsInput!, config: AwsConfig): AwsIotListViolationEventsOutput
  registerCACertificate(input: AwsIotRegisterCACertificateInput!, config: AwsConfig): AwsIotRegisterCACertificateOutput
  registerCertificate(input: AwsIotRegisterCertificateInput!, config: AwsConfig): AwsIotRegisterCertificateOutput
  registerCertificateWithoutCA(input: AwsIotRegisterCertificateWithoutCAInput!, config: AwsConfig): AwsIotRegisterCertificateWithoutCAOutput
  registerThing(input: AwsIotRegisterThingInput!, config: AwsConfig): AwsIotRegisterThingOutput
  rejectCertificateTransfer(input: AwsIotRejectCertificateTransferInput!, config: AwsConfig): JSON
  removeThingFromBillingGroup(input: AwsIotRemoveThingFromBillingGroupInput, config: AwsConfig): JSON
  removeThingFromThingGroup(input: AwsIotRemoveThingFromThingGroupInput, config: AwsConfig): JSON
  replaceTopicRule(input: AwsIotReplaceTopicRuleInput!, config: AwsConfig): JSON
  searchIndex(input: AwsIotSearchIndexInput!, config: AwsConfig): AwsIotSearchIndexOutput
  setDefaultAuthorizer(input: AwsIotSetDefaultAuthorizerInput!, config: AwsConfig): AwsIotSetDefaultAuthorizerOutput
  setDefaultPolicyVersion(input: AwsIotSetDefaultPolicyVersionInput!, config: AwsConfig): JSON
  setLoggingOptions(input: AwsIotSetLoggingOptionsInput!, config: AwsConfig): JSON
  setV2LoggingLevel(input: AwsIotSetV2LoggingLevelInput!, config: AwsConfig): JSON
  setV2LoggingOptions(input: AwsIotSetV2LoggingOptionsInput, config: AwsConfig): JSON
  startAuditMitigationActionsTask(input: AwsIotStartAuditMitigationActionsTaskInput!, config: AwsConfig): AwsIotStartAuditMitigationActionsTaskOutput
  startDetectMitigationActionsTask(input: AwsIotStartDetectMitigationActionsTaskInput!, config: AwsConfig): AwsIotStartDetectMitigationActionsTaskOutput
  startOnDemandAuditTask(input: AwsIotStartOnDemandAuditTaskInput!, config: AwsConfig): AwsIotStartOnDemandAuditTaskOutput
  startThingRegistrationTask(input: AwsIotStartThingRegistrationTaskInput!, config: AwsConfig): AwsIotStartThingRegistrationTaskOutput
  stopThingRegistrationTask(input: AwsIotStopThingRegistrationTaskInput!, config: AwsConfig): JSON
  tagResource(input: AwsIotTagResourceInput!, config: AwsConfig): JSON
  testAuthorization(input: AwsIotTestAuthorizationInput!, config: AwsConfig): AwsIotTestAuthorizationOutput
  testInvokeAuthorizer(input: AwsIotTestInvokeAuthorizerInput!, config: AwsConfig): AwsIotTestInvokeAuthorizerOutput
  transferCertificate(input: AwsIotTransferCertificateInput!, config: AwsConfig): AwsIotTransferCertificateOutput
  untagResource(input: AwsIotUntagResourceInput!, config: AwsConfig): JSON
  updateAccountAuditConfiguration(input: AwsIotUpdateAccountAuditConfigurationInput, config: AwsConfig): JSON
  updateAuditSuppression(input: AwsIotUpdateAuditSuppressionInput!, config: AwsConfig): JSON
  updateAuthorizer(input: AwsIotUpdateAuthorizerInput!, config: AwsConfig): AwsIotUpdateAuthorizerOutput
  updateBillingGroup(input: AwsIotUpdateBillingGroupInput!, config: AwsConfig): AwsIotUpdateBillingGroupOutput
  updateCACertificate(input: AwsIotUpdateCACertificateInput!, config: AwsConfig): JSON
  updateCertificate(input: AwsIotUpdateCertificateInput!, config: AwsConfig): JSON
  updateCustomMetric(input: AwsIotUpdateCustomMetricInput!, config: AwsConfig): AwsIotUpdateCustomMetricOutput
  updateDimension(input: AwsIotUpdateDimensionInput!, config: AwsConfig): AwsIotUpdateDimensionOutput
  updateDomainConfiguration(input: AwsIotUpdateDomainConfigurationInput!, config: AwsConfig): AwsIotUpdateDomainConfigurationOutput
  updateDynamicThingGroup(input: AwsIotUpdateDynamicThingGroupInput!, config: AwsConfig): AwsIotUpdateDynamicThingGroupOutput
  updateEventConfigurations(input: AwsIotUpdateEventConfigurationsInput, config: AwsConfig): JSON
  updateIndexingConfiguration(input: AwsIotUpdateIndexingConfigurationInput, config: AwsConfig): JSON
  updateJob(input: AwsIotUpdateJobInput!, config: AwsConfig): JSON
  updateMitigationAction(input: AwsIotUpdateMitigationActionInput!, config: AwsConfig): AwsIotUpdateMitigationActionOutput
  updateProvisioningTemplate(input: AwsIotUpdateProvisioningTemplateInput!, config: AwsConfig): JSON
  updateRoleAlias(input: AwsIotUpdateRoleAliasInput!, config: AwsConfig): AwsIotUpdateRoleAliasOutput
  updateScheduledAudit(input: AwsIotUpdateScheduledAuditInput!, config: AwsConfig): AwsIotUpdateScheduledAuditOutput
  updateSecurityProfile(input: AwsIotUpdateSecurityProfileInput!, config: AwsConfig): AwsIotUpdateSecurityProfileOutput
  updateStream(input: AwsIotUpdateStreamInput!, config: AwsConfig): AwsIotUpdateStreamOutput
  updateThing(input: AwsIotUpdateThingInput!, config: AwsConfig): JSON
  updateThingGroup(input: AwsIotUpdateThingGroupInput!, config: AwsConfig): AwsIotUpdateThingGroupOutput
  updateThingGroupsForThing(input: AwsIotUpdateThingGroupsForThingInput, config: AwsConfig): JSON
  updateTopicRuleDestination(input: AwsIotUpdateTopicRuleDestinationInput!, config: AwsConfig): JSON
  validateSecurityProfileBehaviors(input: AwsIotValidateSecurityProfileBehaviorsInput!, config: AwsConfig): AwsIotValidateSecurityProfileBehaviorsOutput
}

input AwsIotAcceptCertificateTransferInput {
  certificateId: String!
  setAsActive: Boolean
}

input AwsIotAddThingToBillingGroupInput {
  billingGroupName: String
  billingGroupArn: String
  thingName: String
  thingArn: String
}

input AwsIotAddThingToThingGroupInput {
  thingGroupName: String
  thingGroupArn: String
  thingName: String
  thingArn: String
  overrideDynamicGroups: Boolean
}

type AwsIotAssociateTargetsWithJobOutput {
  jobArn: String
  jobId: String
  description: String
}

input AwsIotAssociateTargetsWithJobInput {
  targets: [String]!
  jobId: String!
  comment: String
  namespaceId: String
}

input AwsIotAttachPolicyInput {
  policyName: String!
  target: String!
}

input AwsIotAttachPrincipalPolicyInput {
  policyName: String!
  principal: String!
}

input AwsIotAttachSecurityProfileInput {
  securityProfileName: String!
  securityProfileTargetArn: String!
}

input AwsIotAttachThingPrincipalInput {
  thingName: String!
  principal: String!
}

input AwsIotCancelAuditMitigationActionsTaskInput {
  taskId: String!
}

input AwsIotCancelAuditTaskInput {
  taskId: String!
}

input AwsIotCancelCertificateTransferInput {
  certificateId: String!
}

input AwsIotCancelDetectMitigationActionsTaskInput {
  taskId: String!
}

type AwsIotCancelJobOutput {
  jobArn: String
  jobId: String
  description: String
}

input AwsIotCancelJobInput {
  jobId: String!
  reasonCode: String
  comment: String
  force: Boolean
}

input AwsIotCancelJobExecutionInput {
  jobId: String!
  thingName: String!
  force: Boolean
  expectedVersion: JSON
  statusDetails: JSON
}

input AwsIotConfirmTopicRuleDestinationInput {
  confirmationToken: String!
}

input AwsIotCreateAuditSuppressionInput {
  checkName: String!
  resourceIdentifier: AwsIotS1oInput!
  expirationDate: Date
  suppressIndefinitely: Boolean
  description: String
  clientRequestToken: String!
}

input AwsIotS1oInput {
  deviceCertificateId: String
  caCertificateId: String
  cognitoIdentityPoolId: String
  clientId: String
  policyVersionIdentifier: AwsIotS1oPolicyVersionIdentifierInput
  account: String
  iamRoleArn: String
  roleAliasArn: String
}

input AwsIotS1oPolicyVersionIdentifierInput {
  policyName: String
  policyVersionId: String
}

type AwsIotCreateAuthorizerOutput {
  authorizerName: String
  authorizerArn: String
}

input AwsIotCreateAuthorizerInput {
  authorizerName: String!
  authorizerFunctionArn: String!
  tokenKeyName: String
  tokenSigningPublicKeys: JSON
  status: String
  tags: [AwsIotS29Input]
  signingDisabled: Boolean
}

input AwsIotS29Input {
  Key: String!
  Value: String
}

type AwsIotCreateBillingGroupOutput {
  billingGroupName: String
  billingGroupArn: String
  billingGroupId: String
}

input AwsIotCreateBillingGroupInput {
  billingGroupName: String!
  billingGroupProperties: AwsIotS2hInput
  tags: [AwsIotS29Input]
}

input AwsIotS2hInput {
  billingGroupDescription: String
}

type AwsIotCreateCertificateFromCsrOutput {
  certificateArn: String
  certificateId: String
  certificatePem: String
}

input AwsIotCreateCertificateFromCsrInput {
  certificateSigningRequest: String!
  setAsActive: Boolean
}

type AwsIotCreateCustomMetricOutput {
  metricName: String
  metricArn: String
}

input AwsIotCreateCustomMetricInput {
  metricName: String!
  displayName: String
  metricType: String!
  tags: [AwsIotS29Input]
  clientRequestToken: String!
}

type AwsIotCreateDimensionOutput {
  name: String
  arn: String
}

input AwsIotCreateDimensionInput {
  name: String!
  type: String!
  stringValues: [String]!
  tags: [AwsIotS29Input]
  clientRequestToken: String!
}

type AwsIotCreateDomainConfigurationOutput {
  domainConfigurationName: String
  domainConfigurationArn: String
}

input AwsIotCreateDomainConfigurationInput {
  domainConfigurationName: String!
  domainName: String
  serverCertificateArns: [String]
  validationCertificateArn: String
  authorizerConfig: AwsIotS38Input
  serviceType: String
  tags: [AwsIotS29Input]
}

input AwsIotS38Input {
  defaultAuthorizerName: String
  allowAuthorizerOverride: Boolean
}

type AwsIotCreateDynamicThingGroupOutput {
  thingGroupName: String
  thingGroupArn: String
  thingGroupId: String
  indexName: String
  queryString: String
  queryVersion: String
}

input AwsIotCreateDynamicThingGroupInput {
  thingGroupName: String!
  thingGroupProperties: AwsIotS3eInput
  indexName: String
  queryString: String!
  queryVersion: String
  tags: [AwsIotS29Input]
}

input AwsIotS3eInput {
  thingGroupDescription: String
  attributePayload: AwsIotS3gInput
}

input AwsIotS3gInput {
  attributes: JSON
  merge: Boolean
}

type AwsIotCreateJobOutput {
  jobArn: String
  jobId: String
  description: String
}

input AwsIotCreateJobInput {
  jobId: String!
  targets: [String]!
  documentSource: String
  document: String
  description: String
  presignedUrlConfig: AwsIotS3tInput
  targetSelection: String
  jobExecutionsRolloutConfig: AwsIotS3wInput
  abortConfig: AwsIotS43Input
  timeoutConfig: AwsIotS4aInput
  tags: [AwsIotS29Input]
  namespaceId: String
  jobTemplateArn: String
}

input AwsIotS3tInput {
  roleArn: String
  expiresInSec: JSON
}

input AwsIotS3wInput {
  maximumPerMinute: Int
  exponentialRate: AwsIotS3wExponentialRateInput
}

input AwsIotS3wExponentialRateInput {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsIotS3wExponentialRateRateIncreaseCriteriaInput!
}

input AwsIotS3wExponentialRateRateIncreaseCriteriaInput {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

input AwsIotS43Input {
  criteriaList: [AwsIotS43CriteriaListInput]!
}

input AwsIotS43CriteriaListInput {
  failureType: String!
  action: String!
  thresholdPercentage: JSON!
  minNumberOfExecutedThings: Int!
}

input AwsIotS4aInput {
  inProgressTimeoutInMinutes: JSON
}

type AwsIotCreateJobTemplateOutput {
  jobTemplateArn: String
  jobTemplateId: String
}

input AwsIotCreateJobTemplateInput {
  jobTemplateId: String!
  jobArn: String
  documentSource: String
  document: String
  description: String!
  presignedUrlConfig: AwsIotS3tInput
  jobExecutionsRolloutConfig: AwsIotS3wInput
  abortConfig: AwsIotS43Input
  timeoutConfig: AwsIotS4aInput
  tags: [AwsIotS29Input]
}

type AwsIotCreateKeysAndCertificateOutput {
  certificateArn: String
  certificateId: String
  certificatePem: String
  keyPair: AwsIotS4j
}

type AwsIotS4j {
  PublicKey: String
  PrivateKey: String
}

input AwsIotCreateKeysAndCertificateInput {
  setAsActive: Boolean
}

type AwsIotCreateMitigationActionOutput {
  actionArn: String
  actionId: String
}

input AwsIotCreateMitigationActionInput {
  actionName: String!
  roleArn: String!
  actionParams: AwsIotS4oInput!
  tags: [AwsIotS29Input]
}

input AwsIotS4oInput {
  updateDeviceCertificateParams: AwsIotS4oUpdateDeviceCertificateParamsInput
  updateCACertificateParams: AwsIotS4oUpdateCACertificateParamsInput
  addThingsToThingGroupParams: AwsIotS4oAddThingsToThingGroupParamsInput
  replaceDefaultPolicyVersionParams: AwsIotS4oReplaceDefaultPolicyVersionParamsInput
  enableIoTLoggingParams: AwsIotS4oEnableIoTLoggingParamsInput
  publishFindingToSnsParams: AwsIotS4oPublishFindingToSnsParamsInput
}

input AwsIotS4oUpdateDeviceCertificateParamsInput {
  action: String!
}

input AwsIotS4oUpdateCACertificateParamsInput {
  action: String!
}

input AwsIotS4oAddThingsToThingGroupParamsInput {
  thingGroupNames: [String]!
  overrideDynamicGroups: Boolean
}

input AwsIotS4oReplaceDefaultPolicyVersionParamsInput {
  templateName: String!
}

input AwsIotS4oEnableIoTLoggingParamsInput {
  roleArnForLogging: String!
  logLevel: String!
}

input AwsIotS4oPublishFindingToSnsParamsInput {
  topicArn: String!
}

type AwsIotCreateOTAUpdateOutput {
  otaUpdateId: String
  awsIotJobId: String
  otaUpdateArn: String
  awsIotJobArn: String
  otaUpdateStatus: String
}

input AwsIotCreateOTAUpdateInput {
  otaUpdateId: String!
  description: String
  targets: [String]!
  protocols: [String]
  targetSelection: String
  awsJobExecutionsRolloutConfig: AwsIotS5bInput
  awsJobPresignedUrlConfig: AwsIotS5iInput
  awsJobAbortConfig: AwsIotCreateOTAUpdateAwsJobAbortConfigInput
  awsJobTimeoutConfig: AwsIotCreateOTAUpdateAwsJobTimeoutConfigInput
  files: [AwsIotS5tInput]!
  roleArn: String!
  additionalParameters: JSON
  tags: [AwsIotS29Input]
}

input AwsIotS5bInput {
  maximumPerMinute: Int
  exponentialRate: AwsIotS5bExponentialRateInput
}

input AwsIotS5bExponentialRateInput {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsIotS5bExponentialRateRateIncreaseCriteriaInput!
}

input AwsIotS5bExponentialRateRateIncreaseCriteriaInput {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

input AwsIotS5iInput {
  expiresInSec: JSON
}

input AwsIotCreateOTAUpdateAwsJobAbortConfigInput {
  abortCriteriaList: [AwsIotCreateOTAUpdateAwsJobAbortConfigAbortCriteriaListInput]!
}

input AwsIotCreateOTAUpdateAwsJobAbortConfigAbortCriteriaListInput {
  failureType: String!
  action: String!
  thresholdPercentage: JSON!
  minNumberOfExecutedThings: Int!
}

input AwsIotCreateOTAUpdateAwsJobTimeoutConfigInput {
  inProgressTimeoutInMinutes: JSON
}

input AwsIotS5tInput {
  fileName: String
  fileType: Int
  fileVersion: String
  fileLocation: AwsIotS5tFileLocationInput
  codeSigning: AwsIotS5tCodeSigningInput
  attributes: JSON
}

input AwsIotS5tFileLocationInput {
  stream: AwsIotS5tFileLocationStreamInput
  s3Location: AwsIotS62Input
}

input AwsIotS5tFileLocationStreamInput {
  streamId: String
  fileId: Int
}

input AwsIotS62Input {
  bucket: String
  key: String
  version: String
}

input AwsIotS5tCodeSigningInput {
  awsSignerJobId: String
  startSigningJobParameter: AwsIotS5tCodeSigningStartSigningJobParameterInput
  customCodeSigning: AwsIotS5tCodeSigningCustomCodeSigningInput
}

input AwsIotS5tCodeSigningStartSigningJobParameterInput {
  signingProfileParameter: AwsIotS5tCodeSigningStartSigningJobParameterSigningProfileParameterInput
  signingProfileName: String
  destination: AwsIotS5tCodeSigningStartSigningJobParameterDestinationInput
}

input AwsIotS5tCodeSigningStartSigningJobParameterSigningProfileParameterInput {
  certificateArn: String
  platform: String
  certificatePathOnDevice: String
}

input AwsIotS5tCodeSigningStartSigningJobParameterDestinationInput {
  s3Destination: AwsIotS5tCodeSigningStartSigningJobParameterDestinationS3DestinationInput
}

input AwsIotS5tCodeSigningStartSigningJobParameterDestinationS3DestinationInput {
  bucket: String
  prefix: String
}

input AwsIotS5tCodeSigningCustomCodeSigningInput {
  signature: AwsIotS5tCodeSigningCustomCodeSigningSignatureInput
  certificateChain: AwsIotS5tCodeSigningCustomCodeSigningCertificateChainInput
  hashAlgorithm: String
  signatureAlgorithm: String
}

input AwsIotS5tCodeSigningCustomCodeSigningSignatureInput {
  inlineDocument: JSON
}

input AwsIotS5tCodeSigningCustomCodeSigningCertificateChainInput {
  certificateName: String
  inlineDocument: String
}

type AwsIotCreatePolicyOutput {
  policyName: String
  policyArn: String
  policyDocument: String
  policyVersionId: String
}

input AwsIotCreatePolicyInput {
  policyName: String!
  policyDocument: String!
  tags: [AwsIotS29Input]
}

type AwsIotCreatePolicyVersionOutput {
  policyArn: String
  policyDocument: String
  policyVersionId: String
  isDefaultVersion: Boolean
}

input AwsIotCreatePolicyVersionInput {
  policyName: String!
  policyDocument: String!
  setAsDefault: Boolean
}

type AwsIotCreateProvisioningClaimOutput {
  certificateId: String
  certificatePem: String
  keyPair: AwsIotS4j
  expiration: Date
}

input AwsIotCreateProvisioningClaimInput {
  templateName: String!
}

type AwsIotCreateProvisioningTemplateOutput {
  templateArn: String
  templateName: String
  defaultVersionId: Int
}

input AwsIotCreateProvisioningTemplateInput {
  templateName: String!
  description: String
  templateBody: String!
  enabled: Boolean
  provisioningRoleArn: String!
  preProvisioningHook: AwsIotS7dInput
  tags: [AwsIotS29Input]
}

input AwsIotS7dInput {
  payloadVersion: String
  targetArn: String!
}

type AwsIotCreateProvisioningTemplateVersionOutput {
  templateArn: String
  templateName: String
  versionId: Int
  isDefaultVersion: Boolean
}

input AwsIotCreateProvisioningTemplateVersionInput {
  templateName: String!
  templateBody: String!
  setAsDefault: Boolean
}

type AwsIotCreateRoleAliasOutput {
  roleAlias: String
  roleAliasArn: String
}

input AwsIotCreateRoleAliasInput {
  roleAlias: String!
  roleArn: String!
  credentialDurationSeconds: Int
  tags: [AwsIotS29Input]
}

type AwsIotCreateScheduledAuditOutput {
  scheduledAuditArn: String
}

input AwsIotCreateScheduledAuditInput {
  frequency: String!
  dayOfMonth: String
  dayOfWeek: String
  targetCheckNames: [String]!
  scheduledAuditName: String!
  tags: [AwsIotS29Input]
}

type AwsIotCreateSecurityProfileOutput {
  securityProfileName: String
  securityProfileArn: String
}

input AwsIotCreateSecurityProfileInput {
  securityProfileName: String!
  securityProfileDescription: String
  behaviors: [AwsIotS7zInput]
  alertTargets: JSON
  additionalMetricsToRetain: [String]
  additionalMetricsToRetainV2: [AwsIotS8tInput]
  tags: [AwsIotS29Input]
}

input AwsIotS7zInput {
  name: String!
  metric: String
  metricDimension: AwsIotS82Input
  criteria: AwsIotS7zCriteriaInput
  suppressAlerts: Boolean
}

input AwsIotS82Input {
  dimensionName: String!
  operator: String
}

input AwsIotS7zCriteriaInput {
  comparisonOperator: String
  value: AwsIotS86Input
  durationSeconds: Int
  consecutiveDatapointsToAlarm: Int
  consecutiveDatapointsToClear: Int
  statisticalThreshold: AwsIotS7zCriteriaStatisticalThresholdInput
  mlDetectionConfig: AwsIotS7zCriteriaMlDetectionConfigInput
}

input AwsIotS86Input {
  count: JSON
  cidrs: [String]
  ports: [Int]
  number: JSON
  numbers: [JSON]
  strings: [String]
}

input AwsIotS7zCriteriaStatisticalThresholdInput {
  statistic: String
}

input AwsIotS7zCriteriaMlDetectionConfigInput {
  confidenceLevel: String!
}

input AwsIotS8tInput {
  metric: String!
  metricDimension: AwsIotS82Input
}

type AwsIotCreateStreamOutput {
  streamId: String
  streamArn: String
  description: String
  streamVersion: Int
}

input AwsIotCreateStreamInput {
  streamId: String!
  description: String
  files: [AwsIotS8zInput]!
  roleArn: String!
  tags: [AwsIotS29Input]
}

input AwsIotS8zInput {
  fileId: Int
  s3Location: AwsIotS62Input
}

type AwsIotCreateThingOutput {
  thingName: String
  thingArn: String
  thingId: String
}

input AwsIotCreateThingInput {
  thingName: String!
  thingTypeName: String
  attributePayload: AwsIotS3gInput
  billingGroupName: String
}

type AwsIotCreateThingGroupOutput {
  thingGroupName: String
  thingGroupArn: String
  thingGroupId: String
}

input AwsIotCreateThingGroupInput {
  thingGroupName: String!
  parentGroupName: String
  thingGroupProperties: AwsIotS3eInput
  tags: [AwsIotS29Input]
}

type AwsIotCreateThingTypeOutput {
  thingTypeName: String
  thingTypeArn: String
  thingTypeId: String
}

input AwsIotCreateThingTypeInput {
  thingTypeName: String!
  thingTypeProperties: AwsIotS9bInput
  tags: [AwsIotS29Input]
}

input AwsIotS9bInput {
  thingTypeDescription: String
  searchableAttributes: [String]
}

input AwsIotCreateTopicRuleInput {
  ruleName: String!
  topicRulePayload: AwsIotS9jInput!
  tags: String
}

input AwsIotS9jInput {
  sql: String!
  description: String
  actions: [AwsIotS9nInput]!
  ruleDisabled: Boolean
  awsIotSqlVersion: String
  errorAction: AwsIotS9nInput
}

input AwsIotS9nInput {
  dynamoDB: AwsIotS9nDynamoDBInput
  dynamoDBv2: AwsIotS9nDynamoDBv2Input
  lambda: AwsIotS9nLambdaInput
  sns: AwsIotS9nSnsInput
  sqs: AwsIotS9nSqsInput
  kinesis: AwsIotS9nKinesisInput
  republish: AwsIotS9nRepublishInput
  s3: AwsIotS9nS3Input
  firehose: AwsIotS9nFirehoseInput
  cloudwatchMetric: AwsIotS9nCloudwatchMetricInput
  cloudwatchAlarm: AwsIotS9nCloudwatchAlarmInput
  cloudwatchLogs: AwsIotS9nCloudwatchLogsInput
  elasticsearch: AwsIotS9nElasticsearchInput
  salesforce: AwsIotS9nSalesforceInput
  iotAnalytics: AwsIotS9nIotAnalyticsInput
  iotEvents: AwsIotS9nIotEventsInput
  iotSiteWise: AwsIotS9nIotSiteWiseInput
  stepFunctions: AwsIotS9nStepFunctionsInput
  timestream: AwsIotS9nTimestreamInput
  http: AwsIotS9nHttpInput
  kafka: AwsIotS9nKafkaInput
}

input AwsIotS9nDynamoDBInput {
  tableName: String!
  roleArn: String!
  operation: String
  hashKeyField: String!
  hashKeyValue: String!
  hashKeyType: String
  rangeKeyField: String
  rangeKeyValue: String
  rangeKeyType: String
  payloadField: String
}

input AwsIotS9nDynamoDBv2Input {
  roleArn: String!
  putItem: AwsIotS9nDynamoDBv2PutItemInput!
}

input AwsIotS9nDynamoDBv2PutItemInput {
  tableName: String!
}

input AwsIotS9nLambdaInput {
  functionArn: String!
}

input AwsIotS9nSnsInput {
  targetArn: String!
  roleArn: String!
  messageFormat: String
}

input AwsIotS9nSqsInput {
  roleArn: String!
  queueUrl: String!
  useBase64: Boolean
}

input AwsIotS9nKinesisInput {
  roleArn: String!
  streamName: String!
  partitionKey: String
}

input AwsIotS9nRepublishInput {
  roleArn: String!
  topic: String!
  qos: Int
}

input AwsIotS9nS3Input {
  roleArn: String!
  bucketName: String!
  key: String!
  cannedAcl: String
}

input AwsIotS9nFirehoseInput {
  roleArn: String!
  deliveryStreamName: String!
  separator: String
  batchMode: Boolean
}

input AwsIotS9nCloudwatchMetricInput {
  roleArn: String!
  metricNamespace: String!
  metricName: String!
  metricValue: String!
  metricUnit: String!
  metricTimestamp: String
}

input AwsIotS9nCloudwatchAlarmInput {
  roleArn: String!
  alarmName: String!
  stateReason: String!
  stateValue: String!
}

input AwsIotS9nCloudwatchLogsInput {
  roleArn: String!
  logGroupName: String!
}

input AwsIotS9nElasticsearchInput {
  roleArn: String!
  endpoint: String!
  index: String!
  type: String!
  id: String!
}

input AwsIotS9nSalesforceInput {
  token: String!
  url: String!
}

input AwsIotS9nIotAnalyticsInput {
  channelArn: String
  channelName: String
  batchMode: Boolean
  roleArn: String
}

input AwsIotS9nIotEventsInput {
  inputName: String!
  messageId: String
  batchMode: Boolean
  roleArn: String!
}

input AwsIotS9nIotSiteWiseInput {
  putAssetPropertyValueEntries: [AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesInput]!
  roleArn: String!
}

input AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesInput {
  entryId: String
  assetId: String
  propertyId: String
  propertyAlias: String
  propertyValues: [AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesInput]!
}

input AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesInput {
  value: AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesValueInput!
  timestamp: AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesTimestampInput!
  quality: String
}

input AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesValueInput {
  stringValue: String
  integerValue: String
  doubleValue: String
  booleanValue: String
}

input AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesTimestampInput {
  timeInSeconds: String!
  offsetInNanos: String
}

input AwsIotS9nStepFunctionsInput {
  executionNamePrefix: String
  stateMachineName: String!
  roleArn: String!
}

input AwsIotS9nTimestreamInput {
  roleArn: String!
  databaseName: String!
  tableName: String!
  dimensions: [AwsIotS9nTimestreamDimensionsInput]!
  timestamp: AwsIotS9nTimestreamTimestampInput
}

input AwsIotS9nTimestreamDimensionsInput {
  name: String!
  value: String!
}

input AwsIotS9nTimestreamTimestampInput {
  value: String!
  unit: String!
}

input AwsIotS9nHttpInput {
  url: String!
  confirmationUrl: String
  headers: [AwsIotS9nHttpHeadersInput]
  auth: AwsIotS9nHttpAuthInput
}

input AwsIotS9nHttpHeadersInput {
  key: String!
  value: String!
}

input AwsIotS9nHttpAuthInput {
  sigv4: AwsIotS9nHttpAuthSigv4Input
}

input AwsIotS9nHttpAuthSigv4Input {
  signingRegion: String!
  serviceName: String!
  roleArn: String!
}

input AwsIotS9nKafkaInput {
  destinationArn: String!
  topic: String!
  key: String
  partition: String
  clientProperties: JSON!
}

type AwsIotCreateTopicRuleDestinationOutput {
  topicRuleDestination: AwsIotScp
}

type AwsIotScp {
  arn: String
  status: String
  createdAt: Date
  lastUpdatedAt: Date
  statusReason: String
  httpUrlProperties: AwsIotScpHttpUrlProperties
  vpcProperties: AwsIotScpVpcProperties
}

type AwsIotScpHttpUrlProperties {
  confirmationUrl: String
}

type AwsIotScpVpcProperties {
  subnetIds: [String]
  securityGroups: [String]
  vpcId: String
  roleArn: String
}

input AwsIotCreateTopicRuleDestinationInput {
  destinationConfiguration: AwsIotCreateTopicRuleDestinationDestinationConfigurationInput!
}

input AwsIotCreateTopicRuleDestinationDestinationConfigurationInput {
  httpUrlConfiguration: AwsIotCreateTopicRuleDestinationDestinationConfigurationHttpUrlConfigurationInput
  vpcConfiguration: AwsIotCreateTopicRuleDestinationDestinationConfigurationVpcConfigurationInput
}

input AwsIotCreateTopicRuleDestinationDestinationConfigurationHttpUrlConfigurationInput {
  confirmationUrl: String!
}

input AwsIotCreateTopicRuleDestinationDestinationConfigurationVpcConfigurationInput {
  subnetIds: [String]!
  securityGroups: [String]
  vpcId: String!
  roleArn: String!
}

input AwsIotDeleteAccountAuditConfigurationInput {
  deleteScheduledAudits: Boolean
}

input AwsIotDeleteAuditSuppressionInput {
  checkName: String!
  resourceIdentifier: AwsIotS1oInput!
}

input AwsIotDeleteAuthorizerInput {
  authorizerName: String!
}

input AwsIotDeleteBillingGroupInput {
  billingGroupName: String!
  expectedVersion: JSON
}

input AwsIotDeleteCACertificateInput {
  certificateId: String!
}

input AwsIotDeleteCertificateInput {
  certificateId: String!
  forceDelete: Boolean
}

input AwsIotDeleteCustomMetricInput {
  metricName: String!
}

input AwsIotDeleteDimensionInput {
  name: String!
}

input AwsIotDeleteDomainConfigurationInput {
  domainConfigurationName: String!
}

input AwsIotDeleteDynamicThingGroupInput {
  thingGroupName: String!
  expectedVersion: JSON
}

input AwsIotDeleteJobInput {
  jobId: String!
  force: Boolean
  namespaceId: String
}

input AwsIotDeleteJobExecutionInput {
  jobId: String!
  thingName: String!
  executionNumber: JSON!
  force: Boolean
  namespaceId: String
}

input AwsIotDeleteJobTemplateInput {
  jobTemplateId: String!
}

input AwsIotDeleteMitigationActionInput {
  actionName: String!
}

input AwsIotDeleteOTAUpdateInput {
  otaUpdateId: String!
  deleteStream: Boolean
  forceDeleteAWSJob: Boolean
}

input AwsIotDeletePolicyInput {
  policyName: String!
}

input AwsIotDeletePolicyVersionInput {
  policyName: String!
  policyVersionId: String!
}

input AwsIotDeleteProvisioningTemplateInput {
  templateName: String!
}

input AwsIotDeleteProvisioningTemplateVersionInput {
  templateName: String!
  versionId: Int!
}

input AwsIotDeleteRoleAliasInput {
  roleAlias: String!
}

input AwsIotDeleteScheduledAuditInput {
  scheduledAuditName: String!
}

input AwsIotDeleteSecurityProfileInput {
  securityProfileName: String!
  expectedVersion: JSON
}

input AwsIotDeleteStreamInput {
  streamId: String!
}

input AwsIotDeleteThingInput {
  thingName: String!
  expectedVersion: JSON
}

input AwsIotDeleteThingGroupInput {
  thingGroupName: String!
  expectedVersion: JSON
}

input AwsIotDeleteThingTypeInput {
  thingTypeName: String!
}

input AwsIotDeleteTopicRuleInput {
  ruleName: String!
}

input AwsIotDeleteTopicRuleDestinationInput {
  arn: String!
}

input AwsIotDeleteV2LoggingLevelInput {
  targetType: String!
  targetName: String!
}

input AwsIotDeprecateThingTypeInput {
  thingTypeName: String!
  undoDeprecate: Boolean
}

type AwsIotDescribeAccountAuditConfigurationOutput {
  roleArn: String
  auditNotificationTargetConfigurations: JSON
  auditCheckConfigurations: JSON
}

type AwsIotDescribeAuditFindingOutput {
  finding: AwsIotSew
}

type AwsIotSew {
  findingId: String
  taskId: String
  checkName: String
  taskStartTime: Date
  findingTime: Date
  severity: String
  nonCompliantResource: AwsIotSewNonCompliantResource
  relatedResources: [AwsIotSewRelatedResources]
  reasonForNonCompliance: String
  reasonForNonComplianceCode: String
  isSuppressed: Boolean
}

type AwsIotSewNonCompliantResource {
  resourceType: String
  resourceIdentifier: AwsIotS1o
  additionalInfo: JSON
}

type AwsIotS1o {
  deviceCertificateId: String
  caCertificateId: String
  cognitoIdentityPoolId: String
  clientId: String
  policyVersionIdentifier: AwsIotS1oPolicyVersionIdentifier
  account: String
  iamRoleArn: String
  roleAliasArn: String
}

type AwsIotS1oPolicyVersionIdentifier {
  policyName: String
  policyVersionId: String
}

type AwsIotSewRelatedResources {
  resourceType: String
  resourceIdentifier: AwsIotS1o
  additionalInfo: JSON
}

input AwsIotDescribeAuditFindingInput {
  findingId: String!
}

type AwsIotDescribeAuditMitigationActionsTaskOutput {
  taskStatus: String
  startTime: Date
  endTime: Date
  taskStatistics: JSON
  target: AwsIotSfg
  auditCheckToActionsMapping: JSON
  actionsDefinition: [AwsIotSfm]
}

type AwsIotSfg {
  auditTaskId: String
  findingIds: [String]
  auditCheckToReasonCodeFilter: JSON
}

type AwsIotSfm {
  name: String
  id: String
  roleArn: String
  actionParams: AwsIotS4o
}

type AwsIotS4o {
  updateDeviceCertificateParams: AwsIotS4oUpdateDeviceCertificateParams
  updateCACertificateParams: AwsIotS4oUpdateCACertificateParams
  addThingsToThingGroupParams: AwsIotS4oAddThingsToThingGroupParams
  replaceDefaultPolicyVersionParams: AwsIotS4oReplaceDefaultPolicyVersionParams
  enableIoTLoggingParams: AwsIotS4oEnableIoTLoggingParams
  publishFindingToSnsParams: AwsIotS4oPublishFindingToSnsParams
}

type AwsIotS4oUpdateDeviceCertificateParams {
  action: String!
}

type AwsIotS4oUpdateCACertificateParams {
  action: String!
}

type AwsIotS4oAddThingsToThingGroupParams {
  thingGroupNames: [String]!
  overrideDynamicGroups: Boolean
}

type AwsIotS4oReplaceDefaultPolicyVersionParams {
  templateName: String!
}

type AwsIotS4oEnableIoTLoggingParams {
  roleArnForLogging: String!
  logLevel: String!
}

type AwsIotS4oPublishFindingToSnsParams {
  topicArn: String!
}

input AwsIotDescribeAuditMitigationActionsTaskInput {
  taskId: String!
}

type AwsIotDescribeAuditSuppressionOutput {
  checkName: String
  resourceIdentifier: AwsIotS1o
  expirationDate: Date
  suppressIndefinitely: Boolean
  description: String
}

input AwsIotDescribeAuditSuppressionInput {
  checkName: String!
  resourceIdentifier: AwsIotS1oInput!
}

type AwsIotDescribeAuditTaskOutput {
  taskStatus: String
  taskType: String
  taskStartTime: Date
  taskStatistics: AwsIotDescribeAuditTaskOutputTaskStatistics
  scheduledAuditName: String
  auditDetails: JSON
}

type AwsIotDescribeAuditTaskOutputTaskStatistics {
  totalChecks: Int
  inProgressChecks: Int
  waitingForDataCollectionChecks: Int
  compliantChecks: Int
  nonCompliantChecks: Int
  failedChecks: Int
  canceledChecks: Int
}

input AwsIotDescribeAuditTaskInput {
  taskId: String!
}

type AwsIotDescribeAuthorizerOutput {
  authorizerDescription: AwsIotSgd
}

type AwsIotSgd {
  authorizerName: String
  authorizerArn: String
  authorizerFunctionArn: String
  tokenKeyName: String
  tokenSigningPublicKeys: JSON
  status: String
  creationDate: Date
  lastModifiedDate: Date
  signingDisabled: Boolean
}

input AwsIotDescribeAuthorizerInput {
  authorizerName: String!
}

type AwsIotDescribeBillingGroupOutput {
  billingGroupName: String
  billingGroupId: String
  billingGroupArn: String
  version: JSON
  billingGroupProperties: AwsIotS2h
  billingGroupMetadata: AwsIotDescribeBillingGroupOutputBillingGroupMetadata
}

type AwsIotS2h {
  billingGroupDescription: String
}

type AwsIotDescribeBillingGroupOutputBillingGroupMetadata {
  creationDate: Date
}

input AwsIotDescribeBillingGroupInput {
  billingGroupName: String!
}

type AwsIotDescribeCACertificateOutput {
  certificateDescription: AwsIotDescribeCACertificateOutputCertificateDescription
  registrationConfig: AwsIotSgr
}

type AwsIotDescribeCACertificateOutputCertificateDescription {
  certificateArn: String
  certificateId: String
  status: String
  certificatePem: String
  ownedBy: String
  creationDate: Date
  autoRegistrationStatus: String
  lastModifiedDate: Date
  customerVersion: Int
  generationId: String
  validity: AwsIotSgq
}

type AwsIotSgq {
  notBefore: Date
  notAfter: Date
}

type AwsIotSgr {
  templateBody: String
  roleArn: String
}

input AwsIotDescribeCACertificateInput {
  certificateId: String!
}

type AwsIotDescribeCertificateOutput {
  certificateDescription: AwsIotDescribeCertificateOutputCertificateDescription
}

type AwsIotDescribeCertificateOutputCertificateDescription {
  certificateArn: String
  certificateId: String
  caCertificateId: String
  status: String
  certificatePem: String
  ownedBy: String
  previousOwnedBy: String
  creationDate: Date
  lastModifiedDate: Date
  customerVersion: Int
  transferData: AwsIotDescribeCertificateOutputCertificateDescriptionTransferData
  generationId: String
  validity: AwsIotSgq
  certificateMode: String
}

type AwsIotDescribeCertificateOutputCertificateDescriptionTransferData {
  transferMessage: String
  rejectReason: String
  transferDate: Date
  acceptDate: Date
  rejectDate: Date
}

input AwsIotDescribeCertificateInput {
  certificateId: String!
}

type AwsIotDescribeCustomMetricOutput {
  metricName: String
  metricArn: String
  metricType: String
  displayName: String
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotDescribeCustomMetricInput {
  metricName: String!
}

type AwsIotDescribeDefaultAuthorizerOutput {
  authorizerDescription: AwsIotSgd
}

type AwsIotDescribeDetectMitigationActionsTaskOutput {
  taskSummary: AwsIotSh5
}

type AwsIotSh5 {
  taskId: String
  taskStatus: String
  taskStartTime: Date
  taskEndTime: Date
  target: AwsIotSh7
  violationEventOccurrenceRange: AwsIotSha
  onlyActiveViolationsIncluded: Boolean
  suppressedAlertsIncluded: Boolean
  actionsDefinition: [AwsIotSfm]
  taskStatistics: AwsIotSh5TaskStatistics
}

type AwsIotSh7 {
  violationIds: [String]
  securityProfileName: String
  behaviorName: String
}

type AwsIotSha {
  startTime: Date!
  endTime: Date!
}

type AwsIotSh5TaskStatistics {
  actionsExecuted: JSON
  actionsSkipped: JSON
  actionsFailed: JSON
}

input AwsIotDescribeDetectMitigationActionsTaskInput {
  taskId: String!
}

type AwsIotDescribeDimensionOutput {
  name: String
  arn: String
  type: String
  stringValues: [String]
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotDescribeDimensionInput {
  name: String!
}

type AwsIotDescribeDomainConfigurationOutput {
  domainConfigurationName: String
  domainConfigurationArn: String
  domainName: String
  serverCertificates: [AwsIotDescribeDomainConfigurationOutputServerCertificates]
  authorizerConfig: AwsIotS38
  domainConfigurationStatus: String
  serviceType: String
  domainType: String
  lastStatusChangeDate: Date
}

type AwsIotDescribeDomainConfigurationOutputServerCertificates {
  serverCertificateArn: String
  serverCertificateStatus: String
  serverCertificateStatusDetail: String
}

type AwsIotS38 {
  defaultAuthorizerName: String
  allowAuthorizerOverride: Boolean
}

input AwsIotDescribeDomainConfigurationInput {
  domainConfigurationName: String!
}

type AwsIotDescribeEndpointOutput {
  endpointAddress: String
}

input AwsIotDescribeEndpointInput {
  endpointType: String
}

type AwsIotDescribeEventConfigurationsOutput {
  eventConfigurations: JSON
  creationDate: Date
  lastModifiedDate: Date
}

type AwsIotDescribeIndexOutput {
  indexName: String
  indexStatus: String
  schema: String
}

input AwsIotDescribeIndexInput {
  indexName: String!
}

type AwsIotDescribeJobOutput {
  documentSource: String
  job: AwsIotDescribeJobOutputJob
}

type AwsIotDescribeJobOutputJob {
  jobArn: String
  jobId: String
  targetSelection: String
  status: String
  forceCanceled: Boolean
  reasonCode: String
  comment: String
  targets: [String]
  description: String
  presignedUrlConfig: AwsIotS3t
  jobExecutionsRolloutConfig: AwsIotS3w
  abortConfig: AwsIotS43
  createdAt: Date
  lastUpdatedAt: Date
  completedAt: Date
  jobProcessDetails: AwsIotDescribeJobOutputJobJobProcessDetails
  timeoutConfig: AwsIotS4a
  namespaceId: String
  jobTemplateArn: String
}

type AwsIotS3t {
  roleArn: String
  expiresInSec: JSON
}

type AwsIotS3w {
  maximumPerMinute: Int
  exponentialRate: AwsIotS3wExponentialRate
}

type AwsIotS3wExponentialRate {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsIotS3wExponentialRateRateIncreaseCriteria!
}

type AwsIotS3wExponentialRateRateIncreaseCriteria {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

type AwsIotS43 {
  criteriaList: [AwsIotS43CriteriaList]!
}

type AwsIotS43CriteriaList {
  failureType: String!
  action: String!
  thresholdPercentage: JSON!
  minNumberOfExecutedThings: Int!
}

type AwsIotDescribeJobOutputJobJobProcessDetails {
  processingTargets: [String]
  numberOfCanceledThings: Int
  numberOfSucceededThings: Int
  numberOfFailedThings: Int
  numberOfRejectedThings: Int
  numberOfQueuedThings: Int
  numberOfInProgressThings: Int
  numberOfRemovedThings: Int
  numberOfTimedOutThings: Int
}

type AwsIotS4a {
  inProgressTimeoutInMinutes: JSON
}

input AwsIotDescribeJobInput {
  jobId: String!
}

type AwsIotDescribeJobExecutionOutput {
  execution: AwsIotDescribeJobExecutionOutputExecution
}

type AwsIotDescribeJobExecutionOutputExecution {
  jobId: String
  status: String
  forceCanceled: Boolean
  statusDetails: AwsIotDescribeJobExecutionOutputExecutionStatusDetails
  thingArn: String
  queuedAt: Date
  startedAt: Date
  lastUpdatedAt: Date
  executionNumber: JSON
  versionNumber: JSON
  approximateSecondsBeforeTimedOut: JSON
}

type AwsIotDescribeJobExecutionOutputExecutionStatusDetails {
  detailsMap: JSON
}

input AwsIotDescribeJobExecutionInput {
  jobId: String!
  thingName: String!
  executionNumber: JSON
}

type AwsIotDescribeJobTemplateOutput {
  jobTemplateArn: String
  jobTemplateId: String
  description: String
  documentSource: String
  document: String
  createdAt: Date
  presignedUrlConfig: AwsIotS3t
  jobExecutionsRolloutConfig: AwsIotS3w
  abortConfig: AwsIotS43
  timeoutConfig: AwsIotS4a
}

input AwsIotDescribeJobTemplateInput {
  jobTemplateId: String!
}

type AwsIotDescribeMitigationActionOutput {
  actionName: String
  actionType: String
  actionArn: String
  actionId: String
  roleArn: String
  actionParams: AwsIotS4o
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotDescribeMitigationActionInput {
  actionName: String!
}

type AwsIotDescribeProvisioningTemplateOutput {
  templateArn: String
  templateName: String
  description: String
  creationDate: Date
  lastModifiedDate: Date
  defaultVersionId: Int
  templateBody: String
  enabled: Boolean
  provisioningRoleArn: String
  preProvisioningHook: AwsIotS7d
}

type AwsIotS7d {
  payloadVersion: String
  targetArn: String!
}

input AwsIotDescribeProvisioningTemplateInput {
  templateName: String!
}

type AwsIotDescribeProvisioningTemplateVersionOutput {
  versionId: Int
  creationDate: Date
  templateBody: String
  isDefaultVersion: Boolean
}

input AwsIotDescribeProvisioningTemplateVersionInput {
  templateName: String!
  versionId: Int!
}

type AwsIotDescribeRoleAliasOutput {
  roleAliasDescription: AwsIotDescribeRoleAliasOutputRoleAliasDescription
}

type AwsIotDescribeRoleAliasOutputRoleAliasDescription {
  roleAlias: String
  roleAliasArn: String
  roleArn: String
  owner: String
  credentialDurationSeconds: Int
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotDescribeRoleAliasInput {
  roleAlias: String!
}

type AwsIotDescribeScheduledAuditOutput {
  frequency: String
  dayOfMonth: String
  dayOfWeek: String
  targetCheckNames: [String]
  scheduledAuditName: String
  scheduledAuditArn: String
}

input AwsIotDescribeScheduledAuditInput {
  scheduledAuditName: String!
}

type AwsIotDescribeSecurityProfileOutput {
  securityProfileName: String
  securityProfileArn: String
  securityProfileDescription: String
  behaviors: [AwsIotS7z]
  alertTargets: JSON
  additionalMetricsToRetain: [String]
  additionalMetricsToRetainV2: [AwsIotS8t]
  version: JSON
  creationDate: Date
  lastModifiedDate: Date
}

type AwsIotS7z {
  name: String!
  metric: String
  metricDimension: AwsIotS82
  criteria: AwsIotS7zCriteria
  suppressAlerts: Boolean
}

type AwsIotS82 {
  dimensionName: String!
  operator: String
}

type AwsIotS7zCriteria {
  comparisonOperator: String
  value: AwsIotS86
  durationSeconds: Int
  consecutiveDatapointsToAlarm: Int
  consecutiveDatapointsToClear: Int
  statisticalThreshold: AwsIotS7zCriteriaStatisticalThreshold
  mlDetectionConfig: AwsIotS7zCriteriaMlDetectionConfig
}

type AwsIotS86 {
  count: JSON
  cidrs: [String]
  ports: [Int]
  number: JSON
  numbers: [JSON]
  strings: [String]
}

type AwsIotS7zCriteriaStatisticalThreshold {
  statistic: String
}

type AwsIotS7zCriteriaMlDetectionConfig {
  confidenceLevel: String!
}

type AwsIotS8t {
  metric: String!
  metricDimension: AwsIotS82
}

input AwsIotDescribeSecurityProfileInput {
  securityProfileName: String!
}

type AwsIotDescribeStreamOutput {
  streamInfo: AwsIotDescribeStreamOutputStreamInfo
}

type AwsIotDescribeStreamOutputStreamInfo {
  streamId: String
  streamArn: String
  streamVersion: Int
  description: String
  files: [AwsIotS8z]
  createdAt: Date
  lastUpdatedAt: Date
  roleArn: String
}

type AwsIotS8z {
  fileId: Int
  s3Location: AwsIotS62
}

type AwsIotS62 {
  bucket: String
  key: String
  version: String
}

input AwsIotDescribeStreamInput {
  streamId: String!
}

type AwsIotDescribeThingOutput {
  defaultClientId: String
  thingName: String
  thingId: String
  thingArn: String
  thingTypeName: String
  attributes: JSON
  version: JSON
  billingGroupName: String
}

input AwsIotDescribeThingInput {
  thingName: String!
}

type AwsIotDescribeThingGroupOutput {
  thingGroupName: String
  thingGroupId: String
  thingGroupArn: String
  version: JSON
  thingGroupProperties: AwsIotS3e
  thingGroupMetadata: AwsIotDescribeThingGroupOutputThingGroupMetadata
  indexName: String
  queryString: String
  queryVersion: String
  status: String
}

type AwsIotS3e {
  thingGroupDescription: String
  attributePayload: AwsIotS3g
}

type AwsIotS3g {
  attributes: JSON
  merge: Boolean
}

type AwsIotDescribeThingGroupOutputThingGroupMetadata {
  parentGroupName: String
  rootToParentThingGroups: [AwsIotSjf]
  creationDate: Date
}

type AwsIotSjf {
  groupName: String
  groupArn: String
}

input AwsIotDescribeThingGroupInput {
  thingGroupName: String!
}

type AwsIotDescribeThingRegistrationTaskOutput {
  taskId: String
  creationDate: Date
  lastModifiedDate: Date
  templateBody: String
  inputFileBucket: String
  inputFileKey: String
  roleArn: String
  status: String
  message: String
  successCount: Int
  failureCount: Int
  percentageProgress: Int
}

input AwsIotDescribeThingRegistrationTaskInput {
  taskId: String!
}

type AwsIotDescribeThingTypeOutput {
  thingTypeName: String
  thingTypeId: String
  thingTypeArn: String
  thingTypeProperties: AwsIotS9b
  thingTypeMetadata: AwsIotSjr
}

type AwsIotS9b {
  thingTypeDescription: String
  searchableAttributes: [String]
}

type AwsIotSjr {
  deprecated: Boolean
  deprecationDate: Date
  creationDate: Date
}

input AwsIotDescribeThingTypeInput {
  thingTypeName: String!
}

input AwsIotDetachPolicyInput {
  policyName: String!
  target: String!
}

input AwsIotDetachPrincipalPolicyInput {
  policyName: String!
  principal: String!
}

input AwsIotDetachSecurityProfileInput {
  securityProfileName: String!
  securityProfileTargetArn: String!
}

input AwsIotDetachThingPrincipalInput {
  thingName: String!
  principal: String!
}

input AwsIotDisableTopicRuleInput {
  ruleName: String!
}

input AwsIotEnableTopicRuleInput {
  ruleName: String!
}

type AwsIotGetBehaviorModelTrainingSummariesOutput {
  summaries: [AwsIotGetBehaviorModelTrainingSummariesOutputSummaries]
  nextToken: String
}

type AwsIotGetBehaviorModelTrainingSummariesOutputSummaries {
  securityProfileName: String
  behaviorName: String
  trainingDataCollectionStartDate: Date
  modelStatus: String
  datapointsCollectionPercentage: JSON
  lastModelRefreshDate: Date
}

input AwsIotGetBehaviorModelTrainingSummariesInput {
  securityProfileName: String
  maxResults: Int
  nextToken: String
}

type AwsIotGetCardinalityOutput {
  cardinality: Int
}

input AwsIotGetCardinalityInput {
  indexName: String
  queryString: String!
  aggregationField: String
  queryVersion: String
}

type AwsIotGetEffectivePoliciesOutput {
  effectivePolicies: [AwsIotGetEffectivePoliciesOutputEffectivePolicies]
}

type AwsIotGetEffectivePoliciesOutputEffectivePolicies {
  policyName: String
  policyArn: String
  policyDocument: String
}

input AwsIotGetEffectivePoliciesInput {
  principal: String
  cognitoIdentityPoolId: String
  thingName: String
}

type AwsIotGetIndexingConfigurationOutput {
  thingIndexingConfiguration: AwsIotSkj
  thingGroupIndexingConfiguration: AwsIotSkq
}

type AwsIotSkj {
  thingIndexingMode: String!
  thingConnectivityIndexingMode: String
  managedFields: [AwsIotSkm]
  customFields: [AwsIotSkm]
}

type AwsIotSkm {
  name: String
  type: String
}

type AwsIotSkq {
  thingGroupIndexingMode: String!
  managedFields: [AwsIotSkm]
  customFields: [AwsIotSkm]
}

type AwsIotGetJobDocumentOutput {
  document: String
}

input AwsIotGetJobDocumentInput {
  jobId: String!
}

type AwsIotGetLoggingOptionsOutput {
  roleArn: String
  logLevel: String
}

type AwsIotGetOTAUpdateOutput {
  otaUpdateInfo: AwsIotGetOTAUpdateOutputOtaUpdateInfo
}

type AwsIotGetOTAUpdateOutputOtaUpdateInfo {
  otaUpdateId: String
  otaUpdateArn: String
  creationDate: Date
  lastModifiedDate: Date
  description: String
  targets: [String]
  protocols: [String]
  awsJobExecutionsRolloutConfig: AwsIotS5b
  awsJobPresignedUrlConfig: AwsIotS5i
  targetSelection: String
  otaUpdateFiles: [AwsIotS5t]
  otaUpdateStatus: String
  awsIotJobId: String
  awsIotJobArn: String
  errorInfo: AwsIotGetOTAUpdateOutputOtaUpdateInfoErrorInfo
  additionalParameters: JSON
}

type AwsIotS5b {
  maximumPerMinute: Int
  exponentialRate: AwsIotS5bExponentialRate
}

type AwsIotS5bExponentialRate {
  baseRatePerMinute: Int!
  incrementFactor: JSON!
  rateIncreaseCriteria: AwsIotS5bExponentialRateRateIncreaseCriteria!
}

type AwsIotS5bExponentialRateRateIncreaseCriteria {
  numberOfNotifiedThings: Int
  numberOfSucceededThings: Int
}

type AwsIotS5i {
  expiresInSec: JSON
}

type AwsIotS5t {
  fileName: String
  fileType: Int
  fileVersion: String
  fileLocation: AwsIotS5tFileLocation
  codeSigning: AwsIotS5tCodeSigning
  attributes: JSON
}

type AwsIotS5tFileLocation {
  stream: AwsIotS5tFileLocationStream
  s3Location: AwsIotS62
}

type AwsIotS5tFileLocationStream {
  streamId: String
  fileId: Int
}

type AwsIotS5tCodeSigning {
  awsSignerJobId: String
  startSigningJobParameter: AwsIotS5tCodeSigningStartSigningJobParameter
  customCodeSigning: AwsIotS5tCodeSigningCustomCodeSigning
}

type AwsIotS5tCodeSigningStartSigningJobParameter {
  signingProfileParameter: AwsIotS5tCodeSigningStartSigningJobParameterSigningProfileParameter
  signingProfileName: String
  destination: AwsIotS5tCodeSigningStartSigningJobParameterDestination
}

type AwsIotS5tCodeSigningStartSigningJobParameterSigningProfileParameter {
  certificateArn: String
  platform: String
  certificatePathOnDevice: String
}

type AwsIotS5tCodeSigningStartSigningJobParameterDestination {
  s3Destination: AwsIotS5tCodeSigningStartSigningJobParameterDestinationS3Destination
}

type AwsIotS5tCodeSigningStartSigningJobParameterDestinationS3Destination {
  bucket: String
  prefix: String
}

type AwsIotS5tCodeSigningCustomCodeSigning {
  signature: AwsIotS5tCodeSigningCustomCodeSigningSignature
  certificateChain: AwsIotS5tCodeSigningCustomCodeSigningCertificateChain
  hashAlgorithm: String
  signatureAlgorithm: String
}

type AwsIotS5tCodeSigningCustomCodeSigningSignature {
  inlineDocument: JSON
}

type AwsIotS5tCodeSigningCustomCodeSigningCertificateChain {
  certificateName: String
  inlineDocument: String
}

type AwsIotGetOTAUpdateOutputOtaUpdateInfoErrorInfo {
  code: String
  message: String
}

input AwsIotGetOTAUpdateInput {
  otaUpdateId: String!
}

type AwsIotGetPercentilesOutput {
  percentiles: [AwsIotGetPercentilesOutputPercentiles]
}

type AwsIotGetPercentilesOutputPercentiles {
  percent: JSON
  value: JSON
}

input AwsIotGetPercentilesInput {
  indexName: String
  queryString: String!
  aggregationField: String
  queryVersion: String
  percents: [JSON]
}

type AwsIotGetPolicyOutput {
  policyName: String
  policyArn: String
  policyDocument: String
  defaultVersionId: String
  creationDate: Date
  lastModifiedDate: Date
  generationId: String
}

input AwsIotGetPolicyInput {
  policyName: String!
}

type AwsIotGetPolicyVersionOutput {
  policyArn: String
  policyName: String
  policyDocument: String
  policyVersionId: String
  isDefaultVersion: Boolean
  creationDate: Date
  lastModifiedDate: Date
  generationId: String
}

input AwsIotGetPolicyVersionInput {
  policyName: String!
  policyVersionId: String!
}

type AwsIotGetRegistrationCodeOutput {
  registrationCode: String
}

type AwsIotGetStatisticsOutput {
  statistics: AwsIotGetStatisticsOutputStatistics
}

type AwsIotGetStatisticsOutputStatistics {
  count: Int
  average: JSON
  sum: JSON
  minimum: JSON
  maximum: JSON
  sumOfSquares: JSON
  variance: JSON
  stdDeviation: JSON
}

input AwsIotGetStatisticsInput {
  indexName: String
  queryString: String!
  aggregationField: String
  queryVersion: String
}

type AwsIotGetTopicRuleOutput {
  ruleArn: String
  rule: AwsIotGetTopicRuleOutputRule
}

type AwsIotGetTopicRuleOutputRule {
  ruleName: String
  sql: String
  description: String
  createdAt: Date
  actions: [AwsIotS9n]
  ruleDisabled: Boolean
  awsIotSqlVersion: String
  errorAction: AwsIotS9n
}

type AwsIotS9n {
  dynamoDB: AwsIotS9nDynamoDB
  dynamoDBv2: AwsIotS9nDynamoDBv2
  lambda: AwsIotS9nLambda
  sns: AwsIotS9nSns
  sqs: AwsIotS9nSqs
  kinesis: AwsIotS9nKinesis
  republish: AwsIotS9nRepublish
  s3: AwsIotS9nS3
  firehose: AwsIotS9nFirehose
  cloudwatchMetric: AwsIotS9nCloudwatchMetric
  cloudwatchAlarm: AwsIotS9nCloudwatchAlarm
  cloudwatchLogs: AwsIotS9nCloudwatchLogs
  elasticsearch: AwsIotS9nElasticsearch
  salesforce: AwsIotS9nSalesforce
  iotAnalytics: AwsIotS9nIotAnalytics
  iotEvents: AwsIotS9nIotEvents
  iotSiteWise: AwsIotS9nIotSiteWise
  stepFunctions: AwsIotS9nStepFunctions
  timestream: AwsIotS9nTimestream
  http: AwsIotS9nHttp
  kafka: AwsIotS9nKafka
}

type AwsIotS9nDynamoDB {
  tableName: String!
  roleArn: String!
  operation: String
  hashKeyField: String!
  hashKeyValue: String!
  hashKeyType: String
  rangeKeyField: String
  rangeKeyValue: String
  rangeKeyType: String
  payloadField: String
}

type AwsIotS9nDynamoDBv2 {
  roleArn: String!
  putItem: AwsIotS9nDynamoDBv2PutItem!
}

type AwsIotS9nDynamoDBv2PutItem {
  tableName: String!
}

type AwsIotS9nLambda {
  functionArn: String!
}

type AwsIotS9nSns {
  targetArn: String!
  roleArn: String!
  messageFormat: String
}

type AwsIotS9nSqs {
  roleArn: String!
  queueUrl: String!
  useBase64: Boolean
}

type AwsIotS9nKinesis {
  roleArn: String!
  streamName: String!
  partitionKey: String
}

type AwsIotS9nRepublish {
  roleArn: String!
  topic: String!
  qos: Int
}

type AwsIotS9nS3 {
  roleArn: String!
  bucketName: String!
  key: String!
  cannedAcl: String
}

type AwsIotS9nFirehose {
  roleArn: String!
  deliveryStreamName: String!
  separator: String
  batchMode: Boolean
}

type AwsIotS9nCloudwatchMetric {
  roleArn: String!
  metricNamespace: String!
  metricName: String!
  metricValue: String!
  metricUnit: String!
  metricTimestamp: String
}

type AwsIotS9nCloudwatchAlarm {
  roleArn: String!
  alarmName: String!
  stateReason: String!
  stateValue: String!
}

type AwsIotS9nCloudwatchLogs {
  roleArn: String!
  logGroupName: String!
}

type AwsIotS9nElasticsearch {
  roleArn: String!
  endpoint: String!
  index: String!
  type: String!
  id: String!
}

type AwsIotS9nSalesforce {
  token: String!
  url: String!
}

type AwsIotS9nIotAnalytics {
  channelArn: String
  channelName: String
  batchMode: Boolean
  roleArn: String
}

type AwsIotS9nIotEvents {
  inputName: String!
  messageId: String
  batchMode: Boolean
  roleArn: String!
}

type AwsIotS9nIotSiteWise {
  putAssetPropertyValueEntries: [AwsIotS9nIotSiteWisePutAssetPropertyValueEntries]!
  roleArn: String!
}

type AwsIotS9nIotSiteWisePutAssetPropertyValueEntries {
  entryId: String
  assetId: String
  propertyId: String
  propertyAlias: String
  propertyValues: [AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValues]!
}

type AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValues {
  value: AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesValue!
  timestamp: AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesTimestamp!
  quality: String
}

type AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesValue {
  stringValue: String
  integerValue: String
  doubleValue: String
  booleanValue: String
}

type AwsIotS9nIotSiteWisePutAssetPropertyValueEntriesPropertyValuesTimestamp {
  timeInSeconds: String!
  offsetInNanos: String
}

type AwsIotS9nStepFunctions {
  executionNamePrefix: String
  stateMachineName: String!
  roleArn: String!
}

type AwsIotS9nTimestream {
  roleArn: String!
  databaseName: String!
  tableName: String!
  dimensions: [AwsIotS9nTimestreamDimensions]!
  timestamp: AwsIotS9nTimestreamTimestamp
}

type AwsIotS9nTimestreamDimensions {
  name: String!
  value: String!
}

type AwsIotS9nTimestreamTimestamp {
  value: String!
  unit: String!
}

type AwsIotS9nHttp {
  url: String!
  confirmationUrl: String
  headers: [AwsIotS9nHttpHeaders]
  auth: AwsIotS9nHttpAuth
}

type AwsIotS9nHttpHeaders {
  key: String!
  value: String!
}

type AwsIotS9nHttpAuth {
  sigv4: AwsIotS9nHttpAuthSigv4
}

type AwsIotS9nHttpAuthSigv4 {
  signingRegion: String!
  serviceName: String!
  roleArn: String!
}

type AwsIotS9nKafka {
  destinationArn: String!
  topic: String!
  key: String
  partition: String
  clientProperties: JSON!
}

input AwsIotGetTopicRuleInput {
  ruleName: String!
}

type AwsIotGetTopicRuleDestinationOutput {
  topicRuleDestination: AwsIotScp
}

input AwsIotGetTopicRuleDestinationInput {
  arn: String!
}

type AwsIotGetV2LoggingOptionsOutput {
  roleArn: String
  defaultLogLevel: String
  disableAllLogs: Boolean
}

type AwsIotListActiveViolationsOutput {
  activeViolations: [AwsIotListActiveViolationsOutputActiveViolations]
  nextToken: String
}

type AwsIotListActiveViolationsOutputActiveViolations {
  violationId: String
  thingName: String
  securityProfileName: String
  behavior: AwsIotS7z
  lastViolationValue: AwsIotS86
  violationEventAdditionalInfo: AwsIotSm7
  lastViolationTime: Date
  violationStartTime: Date
}

type AwsIotSm7 {
  confidenceLevel: String
}

input AwsIotListActiveViolationsInput {
  thingName: String
  securityProfileName: String
  behaviorCriteriaType: String
  listSuppressedAlerts: Boolean
  nextToken: String
  maxResults: Int
}

type AwsIotListAttachedPoliciesOutput {
  policies: [AwsIotSmd]
  nextMarker: String
}

type AwsIotSmd {
  policyName: String
  policyArn: String
}

input AwsIotListAttachedPoliciesInput {
  target: String!
  recursive: Boolean
  marker: String
  pageSize: Int
}

type AwsIotListAuditFindingsOutput {
  findings: [AwsIotSew]
  nextToken: String
}

input AwsIotListAuditFindingsInput {
  taskId: String
  checkName: String
  resourceIdentifier: AwsIotS1oInput
  maxResults: Int
  nextToken: String
  startTime: Date
  endTime: Date
  listSuppressedFindings: Boolean
}

type AwsIotListAuditMitigationActionsExecutionsOutput {
  actionsExecutions: [AwsIotListAuditMitigationActionsExecutionsOutputActionsExecutions]
  nextToken: String
}

type AwsIotListAuditMitigationActionsExecutionsOutputActionsExecutions {
  taskId: String
  findingId: String
  actionName: String
  actionId: String
  status: String
  startTime: Date
  endTime: Date
  errorCode: String
  message: String
}

input AwsIotListAuditMitigationActionsExecutionsInput {
  taskId: String!
  actionStatus: String
  findingId: String!
  maxResults: Int
  nextToken: String
}

type AwsIotListAuditMitigationActionsTasksOutput {
  tasks: [AwsIotListAuditMitigationActionsTasksOutputTasks]
  nextToken: String
}

type AwsIotListAuditMitigationActionsTasksOutputTasks {
  taskId: String
  startTime: Date
  taskStatus: String
}

input AwsIotListAuditMitigationActionsTasksInput {
  auditTaskId: String
  findingId: String
  taskStatus: String
  maxResults: Int
  nextToken: String
  startTime: Date!
  endTime: Date!
}

type AwsIotListAuditSuppressionsOutput {
  suppressions: [AwsIotListAuditSuppressionsOutputSuppressions]
  nextToken: String
}

type AwsIotListAuditSuppressionsOutputSuppressions {
  checkName: String!
  resourceIdentifier: AwsIotS1o!
  expirationDate: Date
  suppressIndefinitely: Boolean
  description: String
}

input AwsIotListAuditSuppressionsInput {
  checkName: String
  resourceIdentifier: AwsIotS1oInput
  ascendingOrder: Boolean
  nextToken: String
  maxResults: Int
}

type AwsIotListAuditTasksOutput {
  tasks: [AwsIotListAuditTasksOutputTasks]
  nextToken: String
}

type AwsIotListAuditTasksOutputTasks {
  taskId: String
  taskStatus: String
  taskType: String
}

input AwsIotListAuditTasksInput {
  startTime: Date!
  endTime: Date!
  taskType: String
  taskStatus: String
  nextToken: String
  maxResults: Int
}

type AwsIotListAuthorizersOutput {
  authorizers: [AwsIotListAuthorizersOutputAuthorizers]
  nextMarker: String
}

type AwsIotListAuthorizersOutputAuthorizers {
  authorizerName: String
  authorizerArn: String
}

input AwsIotListAuthorizersInput {
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
  status: String
}

type AwsIotListBillingGroupsOutput {
  billingGroups: [AwsIotSjf]
  nextToken: String
}

input AwsIotListBillingGroupsInput {
  nextToken: String
  maxResults: Int
  namePrefixFilter: String
}

type AwsIotListCACertificatesOutput {
  certificates: [AwsIotListCACertificatesOutputCertificates]
  nextMarker: String
}

type AwsIotListCACertificatesOutputCertificates {
  certificateArn: String
  certificateId: String
  status: String
  creationDate: Date
}

input AwsIotListCACertificatesInput {
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
}

type AwsIotListCertificatesOutput {
  certificates: [AwsIotSnf]
  nextMarker: String
}

type AwsIotSnf {
  certificateArn: String
  certificateId: String
  status: String
  certificateMode: String
  creationDate: Date
}

input AwsIotListCertificatesInput {
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
}

type AwsIotListCertificatesByCAOutput {
  certificates: [AwsIotSnf]
  nextMarker: String
}

input AwsIotListCertificatesByCAInput {
  caCertificateId: String!
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
}

type AwsIotListCustomMetricsOutput {
  metricNames: [String]
  nextToken: String
}

input AwsIotListCustomMetricsInput {
  nextToken: String
  maxResults: Int
}

type AwsIotListDetectMitigationActionsExecutionsOutput {
  actionsExecutions: [AwsIotListDetectMitigationActionsExecutionsOutputActionsExecutions]
  nextToken: String
}

type AwsIotListDetectMitigationActionsExecutionsOutputActionsExecutions {
  taskId: String
  violationId: String
  actionName: String
  thingName: String
  executionStartDate: Date
  executionEndDate: Date
  status: String
  errorCode: String
  message: String
}

input AwsIotListDetectMitigationActionsExecutionsInput {
  taskId: String
  violationId: String
  thingName: String
  startTime: Date
  endTime: Date
  maxResults: Int
  nextToken: String
}

type AwsIotListDetectMitigationActionsTasksOutput {
  tasks: [AwsIotSh5]
  nextToken: String
}

input AwsIotListDetectMitigationActionsTasksInput {
  maxResults: Int
  nextToken: String
  startTime: Date!
  endTime: Date!
}

type AwsIotListDimensionsOutput {
  dimensionNames: [String]
  nextToken: String
}

input AwsIotListDimensionsInput {
  nextToken: String
  maxResults: Int
}

type AwsIotListDomainConfigurationsOutput {
  domainConfigurations: [AwsIotListDomainConfigurationsOutputDomainConfigurations]
  nextMarker: String
}

type AwsIotListDomainConfigurationsOutputDomainConfigurations {
  domainConfigurationName: String
  domainConfigurationArn: String
  serviceType: String
}

input AwsIotListDomainConfigurationsInput {
  marker: String
  pageSize: Int
  serviceType: String
}

type AwsIotListIndicesOutput {
  indexNames: [String]
  nextToken: String
}

input AwsIotListIndicesInput {
  nextToken: String
  maxResults: Int
}

type AwsIotListJobExecutionsForJobOutput {
  executionSummaries: [AwsIotListJobExecutionsForJobOutputExecutionSummaries]
  nextToken: String
}

type AwsIotListJobExecutionsForJobOutputExecutionSummaries {
  thingArn: String
  jobExecutionSummary: AwsIotSob
}

type AwsIotSob {
  status: String
  queuedAt: Date
  startedAt: Date
  lastUpdatedAt: Date
  executionNumber: JSON
}

input AwsIotListJobExecutionsForJobInput {
  jobId: String!
  status: String
  maxResults: Int
  nextToken: String
}

type AwsIotListJobExecutionsForThingOutput {
  executionSummaries: [AwsIotListJobExecutionsForThingOutputExecutionSummaries]
  nextToken: String
}

type AwsIotListJobExecutionsForThingOutputExecutionSummaries {
  jobId: String
  jobExecutionSummary: AwsIotSob
}

input AwsIotListJobExecutionsForThingInput {
  thingName: String!
  status: String
  namespaceId: String
  maxResults: Int
  nextToken: String
}

type AwsIotListJobTemplatesOutput {
  jobTemplates: [AwsIotListJobTemplatesOutputJobTemplates]
  nextToken: String
}

type AwsIotListJobTemplatesOutputJobTemplates {
  jobTemplateArn: String
  jobTemplateId: String
  description: String
  createdAt: Date
}

input AwsIotListJobTemplatesInput {
  maxResults: Int
  nextToken: String
}

type AwsIotListJobsOutput {
  jobs: [AwsIotListJobsOutputJobs]
  nextToken: String
}

type AwsIotListJobsOutputJobs {
  jobArn: String
  jobId: String
  thingGroupId: String
  targetSelection: String
  status: String
  createdAt: Date
  lastUpdatedAt: Date
  completedAt: Date
}

input AwsIotListJobsInput {
  status: String
  targetSelection: String
  maxResults: Int
  nextToken: String
  thingGroupName: String
  thingGroupId: String
  namespaceId: String
}

type AwsIotListMitigationActionsOutput {
  actionIdentifiers: [AwsIotListMitigationActionsOutputActionIdentifiers]
  nextToken: String
}

type AwsIotListMitigationActionsOutputActionIdentifiers {
  actionName: String
  actionArn: String
  creationDate: Date
}

input AwsIotListMitigationActionsInput {
  actionType: String
  maxResults: Int
  nextToken: String
}

type AwsIotListOTAUpdatesOutput {
  otaUpdates: [AwsIotListOTAUpdatesOutputOtaUpdates]
  nextToken: String
}

type AwsIotListOTAUpdatesOutputOtaUpdates {
  otaUpdateId: String
  otaUpdateArn: String
  creationDate: Date
}

input AwsIotListOTAUpdatesInput {
  maxResults: Int
  nextToken: String
  otaUpdateStatus: String
}

type AwsIotListOutgoingCertificatesOutput {
  outgoingCertificates: [AwsIotListOutgoingCertificatesOutputOutgoingCertificates]
  nextMarker: String
}

type AwsIotListOutgoingCertificatesOutputOutgoingCertificates {
  certificateArn: String
  certificateId: String
  transferredTo: String
  transferDate: Date
  transferMessage: String
  creationDate: Date
}

input AwsIotListOutgoingCertificatesInput {
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
}

type AwsIotListPoliciesOutput {
  policies: [AwsIotSmd]
  nextMarker: String
}

input AwsIotListPoliciesInput {
  marker: String
  pageSize: Int
  ascendingOrder: Boolean
}

type AwsIotListPolicyPrincipalsOutput {
  principals: [String]
  nextMarker: String
}

input AwsIotListPolicyPrincipalsInput {
  policyName: String!
  marker: String
  pageSize: Int
  ascendingOrder: Boolean
}

type AwsIotListPolicyVersionsOutput {
  policyVersions: [AwsIotListPolicyVersionsOutputPolicyVersions]
}

type AwsIotListPolicyVersionsOutputPolicyVersions {
  versionId: String
  isDefaultVersion: Boolean
  createDate: Date
}

input AwsIotListPolicyVersionsInput {
  policyName: String!
}

type AwsIotListPrincipalPoliciesOutput {
  policies: [AwsIotSmd]
  nextMarker: String
}

input AwsIotListPrincipalPoliciesInput {
  principal: String!
  marker: String
  pageSize: Int
  ascendingOrder: Boolean
}

type AwsIotListPrincipalThingsOutput {
  things: [String]
  nextToken: String
}

input AwsIotListPrincipalThingsInput {
  nextToken: String
  maxResults: Int
  principal: String!
}

type AwsIotListProvisioningTemplateVersionsOutput {
  versions: [AwsIotListProvisioningTemplateVersionsOutputVersions]
  nextToken: String
}

type AwsIotListProvisioningTemplateVersionsOutputVersions {
  versionId: Int
  creationDate: Date
  isDefaultVersion: Boolean
}

input AwsIotListProvisioningTemplateVersionsInput {
  templateName: String!
  maxResults: Int
  nextToken: String
}

type AwsIotListProvisioningTemplatesOutput {
  templates: [AwsIotListProvisioningTemplatesOutputTemplates]
  nextToken: String
}

type AwsIotListProvisioningTemplatesOutputTemplates {
  templateArn: String
  templateName: String
  description: String
  creationDate: Date
  lastModifiedDate: Date
  enabled: Boolean
}

input AwsIotListProvisioningTemplatesInput {
  maxResults: Int
  nextToken: String
}

type AwsIotListRoleAliasesOutput {
  roleAliases: [String]
  nextMarker: String
}

input AwsIotListRoleAliasesInput {
  pageSize: Int
  marker: String
  ascendingOrder: Boolean
}

type AwsIotListScheduledAuditsOutput {
  scheduledAudits: [AwsIotListScheduledAuditsOutputScheduledAudits]
  nextToken: String
}

type AwsIotListScheduledAuditsOutputScheduledAudits {
  scheduledAuditName: String
  scheduledAuditArn: String
  frequency: String
  dayOfMonth: String
  dayOfWeek: String
}

input AwsIotListScheduledAuditsInput {
  nextToken: String
  maxResults: Int
}

type AwsIotListSecurityProfilesOutput {
  securityProfileIdentifiers: [AwsIotSpx]
  nextToken: String
}

type AwsIotSpx {
  name: String!
  arn: String!
}

input AwsIotListSecurityProfilesInput {
  nextToken: String
  maxResults: Int
  dimensionName: String
  metricName: String
}

type AwsIotListSecurityProfilesForTargetOutput {
  securityProfileTargetMappings: [AwsIotListSecurityProfilesForTargetOutputSecurityProfileTargetMappings]
  nextToken: String
}

type AwsIotListSecurityProfilesForTargetOutputSecurityProfileTargetMappings {
  securityProfileIdentifier: AwsIotSpx
  target: AwsIotSq2
}

type AwsIotSq2 {
  arn: String!
}

input AwsIotListSecurityProfilesForTargetInput {
  nextToken: String
  maxResults: Int
  recursive: Boolean
  securityProfileTargetArn: String!
}

type AwsIotListStreamsOutput {
  streams: [AwsIotListStreamsOutputStreams]
  nextToken: String
}

type AwsIotListStreamsOutputStreams {
  streamId: String
  streamArn: String
  streamVersion: Int
  description: String
}

input AwsIotListStreamsInput {
  maxResults: Int
  nextToken: String
  ascendingOrder: Boolean
}

type AwsIotListTagsForResourceOutput {
  tags: [AwsIotS29]
  nextToken: String
}

type AwsIotS29 {
  Key: String!
  Value: String
}

input AwsIotListTagsForResourceInput {
  resourceArn: String!
  nextToken: String
}

type AwsIotListTargetsForPolicyOutput {
  targets: [String]
  nextMarker: String
}

input AwsIotListTargetsForPolicyInput {
  policyName: String!
  marker: String
  pageSize: Int
}

type AwsIotListTargetsForSecurityProfileOutput {
  securityProfileTargets: [AwsIotSq2]
  nextToken: String
}

input AwsIotListTargetsForSecurityProfileInput {
  securityProfileName: String!
  nextToken: String
  maxResults: Int
}

type AwsIotListThingGroupsOutput {
  thingGroups: [AwsIotSjf]
  nextToken: String
}

input AwsIotListThingGroupsInput {
  nextToken: String
  maxResults: Int
  parentGroup: String
  namePrefixFilter: String
  recursive: Boolean
}

type AwsIotListThingGroupsForThingOutput {
  thingGroups: [AwsIotSjf]
  nextToken: String
}

input AwsIotListThingGroupsForThingInput {
  thingName: String!
  nextToken: String
  maxResults: Int
}

type AwsIotListThingPrincipalsOutput {
  principals: [String]
  nextToken: String
}

input AwsIotListThingPrincipalsInput {
  nextToken: String
  maxResults: Int
  thingName: String!
}

type AwsIotListThingRegistrationTaskReportsOutput {
  resourceLinks: [String]
  reportType: String
  nextToken: String
}

input AwsIotListThingRegistrationTaskReportsInput {
  taskId: String!
  reportType: String!
  nextToken: String
  maxResults: Int
}

type AwsIotListThingRegistrationTasksOutput {
  taskIds: [String]
  nextToken: String
}

input AwsIotListThingRegistrationTasksInput {
  nextToken: String
  maxResults: Int
  status: String
}

type AwsIotListThingTypesOutput {
  thingTypes: [AwsIotListThingTypesOutputThingTypes]
  nextToken: String
}

type AwsIotListThingTypesOutputThingTypes {
  thingTypeName: String
  thingTypeArn: String
  thingTypeProperties: AwsIotS9b
  thingTypeMetadata: AwsIotSjr
}

input AwsIotListThingTypesInput {
  nextToken: String
  maxResults: Int
  thingTypeName: String
}

type AwsIotListThingsOutput {
  things: [AwsIotListThingsOutputThings]
  nextToken: String
}

type AwsIotListThingsOutputThings {
  thingName: String
  thingTypeName: String
  thingArn: String
  attributes: JSON
  version: JSON
}

input AwsIotListThingsInput {
  nextToken: String
  maxResults: Int
  attributeName: String
  attributeValue: String
  thingTypeName: String
  usePrefixAttributeValue: Boolean
}

type AwsIotListThingsInBillingGroupOutput {
  things: [String]
  nextToken: String
}

input AwsIotListThingsInBillingGroupInput {
  billingGroupName: String!
  nextToken: String
  maxResults: Int
}

type AwsIotListThingsInThingGroupOutput {
  things: [String]
  nextToken: String
}

input AwsIotListThingsInThingGroupInput {
  thingGroupName: String!
  recursive: Boolean
  nextToken: String
  maxResults: Int
}

type AwsIotListTopicRuleDestinationsOutput {
  destinationSummaries: [AwsIotListTopicRuleDestinationsOutputDestinationSummaries]
  nextToken: String
}

type AwsIotListTopicRuleDestinationsOutputDestinationSummaries {
  arn: String
  status: String
  createdAt: Date
  lastUpdatedAt: Date
  statusReason: String
  httpUrlSummary: AwsIotListTopicRuleDestinationsOutputDestinationSummariesHttpUrlSummary
  vpcDestinationSummary: AwsIotListTopicRuleDestinationsOutputDestinationSummariesVpcDestinationSummary
}

type AwsIotListTopicRuleDestinationsOutputDestinationSummariesHttpUrlSummary {
  confirmationUrl: String
}

type AwsIotListTopicRuleDestinationsOutputDestinationSummariesVpcDestinationSummary {
  subnetIds: [String]
  securityGroups: [String]
  vpcId: String
  roleArn: String
}

input AwsIotListTopicRuleDestinationsInput {
  maxResults: Int
  nextToken: String
}

type AwsIotListTopicRulesOutput {
  rules: [AwsIotListTopicRulesOutputRules]
  nextToken: String
}

type AwsIotListTopicRulesOutputRules {
  ruleArn: String
  ruleName: String
  topicPattern: String
  createdAt: Date
  ruleDisabled: Boolean
}

input AwsIotListTopicRulesInput {
  topic: String
  maxResults: Int
  nextToken: String
  ruleDisabled: Boolean
}

type AwsIotListV2LoggingLevelsOutput {
  logTargetConfigurations: [AwsIotListV2LoggingLevelsOutputLogTargetConfigurations]
  nextToken: String
}

type AwsIotListV2LoggingLevelsOutputLogTargetConfigurations {
  logTarget: AwsIotSrq
  logLevel: String
}

type AwsIotSrq {
  targetType: String!
  targetName: String
}

input AwsIotListV2LoggingLevelsInput {
  targetType: String
  nextToken: String
  maxResults: Int
}

type AwsIotListViolationEventsOutput {
  violationEvents: [AwsIotListViolationEventsOutputViolationEvents]
  nextToken: String
}

type AwsIotListViolationEventsOutputViolationEvents {
  violationId: String
  thingName: String
  securityProfileName: String
  behavior: AwsIotS7z
  metricValue: AwsIotS86
  violationEventAdditionalInfo: AwsIotSm7
  violationEventType: String
  violationEventTime: Date
}

input AwsIotListViolationEventsInput {
  startTime: Date!
  endTime: Date!
  thingName: String
  securityProfileName: String
  behaviorCriteriaType: String
  listSuppressedAlerts: Boolean
  nextToken: String
  maxResults: Int
}

type AwsIotRegisterCACertificateOutput {
  certificateArn: String
  certificateId: String
}

input AwsIotRegisterCACertificateInput {
  caCertificate: String!
  verificationCertificate: String!
  setAsActive: Boolean
  allowAutoRegistration: Boolean
  registrationConfig: AwsIotSgrInput
  tags: [AwsIotS29Input]
}

input AwsIotSgrInput {
  templateBody: String
  roleArn: String
}

type AwsIotRegisterCertificateOutput {
  certificateArn: String
  certificateId: String
}

input AwsIotRegisterCertificateInput {
  certificatePem: String!
  caCertificatePem: String
  setAsActive: Boolean
  status: String
}

type AwsIotRegisterCertificateWithoutCAOutput {
  certificateArn: String
  certificateId: String
}

input AwsIotRegisterCertificateWithoutCAInput {
  certificatePem: String!
  status: String
}

type AwsIotRegisterThingOutput {
  certificatePem: String
  resourceArns: JSON
}

input AwsIotRegisterThingInput {
  templateBody: String!
  parameters: JSON
}

input AwsIotRejectCertificateTransferInput {
  certificateId: String!
  rejectReason: String
}

input AwsIotRemoveThingFromBillingGroupInput {
  billingGroupName: String
  billingGroupArn: String
  thingName: String
  thingArn: String
}

input AwsIotRemoveThingFromThingGroupInput {
  thingGroupName: String
  thingGroupArn: String
  thingName: String
  thingArn: String
}

input AwsIotReplaceTopicRuleInput {
  ruleName: String!
  topicRulePayload: AwsIotS9jInput!
}

type AwsIotSearchIndexOutput {
  nextToken: String
  things: [AwsIotSearchIndexOutputThings]
  thingGroups: [AwsIotSearchIndexOutputThingGroups]
}

type AwsIotSearchIndexOutputThings {
  thingName: String
  thingId: String
  thingTypeName: String
  thingGroupNames: [String]
  attributes: JSON
  shadow: String
  connectivity: AwsIotSearchIndexOutputThingsConnectivity
}

type AwsIotSearchIndexOutputThingsConnectivity {
  connected: Boolean
  timestamp: JSON
}

type AwsIotSearchIndexOutputThingGroups {
  thingGroupName: String
  thingGroupId: String
  thingGroupDescription: String
  attributes: JSON
  parentGroupNames: [String]
}

input AwsIotSearchIndexInput {
  indexName: String
  queryString: String!
  nextToken: String
  maxResults: Int
  queryVersion: String
}

type AwsIotSetDefaultAuthorizerOutput {
  authorizerName: String
  authorizerArn: String
}

input AwsIotSetDefaultAuthorizerInput {
  authorizerName: String!
}

input AwsIotSetDefaultPolicyVersionInput {
  policyName: String!
  policyVersionId: String!
}

input AwsIotSetLoggingOptionsInput {
  loggingOptionsPayload: AwsIotSetLoggingOptionsLoggingOptionsPayloadInput!
}

input AwsIotSetLoggingOptionsLoggingOptionsPayloadInput {
  roleArn: String!
  logLevel: String
}

input AwsIotSetV2LoggingLevelInput {
  logTarget: AwsIotSrqInput!
  logLevel: String!
}

input AwsIotSrqInput {
  targetType: String!
  targetName: String
}

input AwsIotSetV2LoggingOptionsInput {
  roleArn: String
  defaultLogLevel: String
  disableAllLogs: Boolean
}

type AwsIotStartAuditMitigationActionsTaskOutput {
  taskId: String
}

input AwsIotStartAuditMitigationActionsTaskInput {
  taskId: String!
  target: AwsIotSfgInput!
  auditCheckToActionsMapping: JSON!
  clientRequestToken: String!
}

input AwsIotSfgInput {
  auditTaskId: String
  findingIds: [String]
  auditCheckToReasonCodeFilter: JSON
}

type AwsIotStartDetectMitigationActionsTaskOutput {
  taskId: String
}

input AwsIotStartDetectMitigationActionsTaskInput {
  taskId: String!
  target: AwsIotSh7Input!
  actions: [String]!
  violationEventOccurrenceRange: AwsIotShaInput
  includeOnlyActiveViolations: Boolean
  includeSuppressedAlerts: Boolean
  clientRequestToken: String!
}

input AwsIotSh7Input {
  violationIds: [String]
  securityProfileName: String
  behaviorName: String
}

input AwsIotShaInput {
  startTime: Date!
  endTime: Date!
}

type AwsIotStartOnDemandAuditTaskOutput {
  taskId: String
}

input AwsIotStartOnDemandAuditTaskInput {
  targetCheckNames: [String]!
}

type AwsIotStartThingRegistrationTaskOutput {
  taskId: String
}

input AwsIotStartThingRegistrationTaskInput {
  templateBody: String!
  inputFileBucket: String!
  inputFileKey: String!
  roleArn: String!
}

input AwsIotStopThingRegistrationTaskInput {
  taskId: String!
}

input AwsIotTagResourceInput {
  resourceArn: String!
  tags: [AwsIotS29Input]!
}

type AwsIotTestAuthorizationOutput {
  authResults: [AwsIotTestAuthorizationOutputAuthResults]
}

type AwsIotTestAuthorizationOutputAuthResults {
  authInfo: AwsIotStd
  allowed: AwsIotTestAuthorizationOutputAuthResultsAllowed
  denied: AwsIotTestAuthorizationOutputAuthResultsDenied
  authDecision: String
  missingContextValues: [String]
}

type AwsIotStd {
  actionType: String
  resources: [String]!
}

type AwsIotTestAuthorizationOutputAuthResultsAllowed {
  policies: [AwsIotSmd]
}

type AwsIotTestAuthorizationOutputAuthResultsDenied {
  implicitDeny: AwsIotTestAuthorizationOutputAuthResultsDeniedImplicitDeny
  explicitDeny: AwsIotTestAuthorizationOutputAuthResultsDeniedExplicitDeny
}

type AwsIotTestAuthorizationOutputAuthResultsDeniedImplicitDeny {
  policies: [AwsIotSmd]
}

type AwsIotTestAuthorizationOutputAuthResultsDeniedExplicitDeny {
  policies: [AwsIotSmd]
}

input AwsIotTestAuthorizationInput {
  principal: String
  cognitoIdentityPoolId: String
  authInfos: [AwsIotStdInput]!
  clientId: String
  policyNamesToAdd: [String]
  policyNamesToSkip: [String]
}

input AwsIotStdInput {
  actionType: String
  resources: [String]!
}

type AwsIotTestInvokeAuthorizerOutput {
  isAuthenticated: Boolean
  principalId: String
  policyDocuments: [String]
  refreshAfterInSeconds: Int
  disconnectAfterInSeconds: Int
}

input AwsIotTestInvokeAuthorizerInput {
  authorizerName: String!
  token: String
  tokenSignature: String
  httpContext: AwsIotTestInvokeAuthorizerHttpContextInput
  mqttContext: AwsIotTestInvokeAuthorizerMqttContextInput
  tlsContext: AwsIotTestInvokeAuthorizerTlsContextInput
}

input AwsIotTestInvokeAuthorizerHttpContextInput {
  headers: JSON
  queryString: String
}

input AwsIotTestInvokeAuthorizerMqttContextInput {
  username: String
  password: JSON
  clientId: String
}

input AwsIotTestInvokeAuthorizerTlsContextInput {
  serverName: String
}

type AwsIotTransferCertificateOutput {
  transferredCertificateArn: String
}

input AwsIotTransferCertificateInput {
  certificateId: String!
  targetAwsAccount: String!
  transferMessage: String
}

input AwsIotUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsIotUpdateAccountAuditConfigurationInput {
  roleArn: String
  auditNotificationTargetConfigurations: JSON
  auditCheckConfigurations: JSON
}

input AwsIotUpdateAuditSuppressionInput {
  checkName: String!
  resourceIdentifier: AwsIotS1oInput!
  expirationDate: Date
  suppressIndefinitely: Boolean
  description: String
}

type AwsIotUpdateAuthorizerOutput {
  authorizerName: String
  authorizerArn: String
}

input AwsIotUpdateAuthorizerInput {
  authorizerName: String!
  authorizerFunctionArn: String
  tokenKeyName: String
  tokenSigningPublicKeys: JSON
  status: String
}

type AwsIotUpdateBillingGroupOutput {
  version: JSON
}

input AwsIotUpdateBillingGroupInput {
  billingGroupName: String!
  billingGroupProperties: AwsIotS2hInput!
  expectedVersion: JSON
}

input AwsIotUpdateCACertificateInput {
  certificateId: String!
  newStatus: String
  newAutoRegistrationStatus: String
  registrationConfig: AwsIotSgrInput
  removeAutoRegistration: Boolean
}

input AwsIotUpdateCertificateInput {
  certificateId: String!
  newStatus: String!
}

type AwsIotUpdateCustomMetricOutput {
  metricName: String
  metricArn: String
  metricType: String
  displayName: String
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotUpdateCustomMetricInput {
  metricName: String!
  displayName: String!
}

type AwsIotUpdateDimensionOutput {
  name: String
  arn: String
  type: String
  stringValues: [String]
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotUpdateDimensionInput {
  name: String!
  stringValues: [String]!
}

type AwsIotUpdateDomainConfigurationOutput {
  domainConfigurationName: String
  domainConfigurationArn: String
}

input AwsIotUpdateDomainConfigurationInput {
  domainConfigurationName: String!
  authorizerConfig: AwsIotS38Input
  domainConfigurationStatus: String
  removeAuthorizerConfig: Boolean
}

type AwsIotUpdateDynamicThingGroupOutput {
  version: JSON
}

input AwsIotUpdateDynamicThingGroupInput {
  thingGroupName: String!
  thingGroupProperties: AwsIotS3eInput!
  expectedVersion: JSON
  indexName: String
  queryString: String
  queryVersion: String
}

input AwsIotUpdateEventConfigurationsInput {
  eventConfigurations: JSON
}

input AwsIotUpdateIndexingConfigurationInput {
  thingIndexingConfiguration: AwsIotSkjInput
  thingGroupIndexingConfiguration: AwsIotSkqInput
}

input AwsIotSkjInput {
  thingIndexingMode: String!
  thingConnectivityIndexingMode: String
  managedFields: [AwsIotSkmInput]
  customFields: [AwsIotSkmInput]
}

input AwsIotSkmInput {
  name: String
  type: String
}

input AwsIotSkqInput {
  thingGroupIndexingMode: String!
  managedFields: [AwsIotSkmInput]
  customFields: [AwsIotSkmInput]
}

input AwsIotUpdateJobInput {
  jobId: String!
  description: String
  presignedUrlConfig: AwsIotS3tInput
  jobExecutionsRolloutConfig: AwsIotS3wInput
  abortConfig: AwsIotS43Input
  timeoutConfig: AwsIotS4aInput
  namespaceId: String
}

type AwsIotUpdateMitigationActionOutput {
  actionArn: String
  actionId: String
}

input AwsIotUpdateMitigationActionInput {
  actionName: String!
  roleArn: String
  actionParams: AwsIotS4oInput
}

input AwsIotUpdateProvisioningTemplateInput {
  templateName: String!
  description: String
  enabled: Boolean
  defaultVersionId: Int
  provisioningRoleArn: String
  preProvisioningHook: AwsIotS7dInput
  removePreProvisioningHook: Boolean
}

type AwsIotUpdateRoleAliasOutput {
  roleAlias: String
  roleAliasArn: String
}

input AwsIotUpdateRoleAliasInput {
  roleAlias: String!
  roleArn: String
  credentialDurationSeconds: Int
}

type AwsIotUpdateScheduledAuditOutput {
  scheduledAuditArn: String
}

input AwsIotUpdateScheduledAuditInput {
  frequency: String
  dayOfMonth: String
  dayOfWeek: String
  targetCheckNames: [String]
  scheduledAuditName: String!
}

type AwsIotUpdateSecurityProfileOutput {
  securityProfileName: String
  securityProfileArn: String
  securityProfileDescription: String
  behaviors: [AwsIotS7z]
  alertTargets: JSON
  additionalMetricsToRetain: [String]
  additionalMetricsToRetainV2: [AwsIotS8t]
  version: JSON
  creationDate: Date
  lastModifiedDate: Date
}

input AwsIotUpdateSecurityProfileInput {
  securityProfileName: String!
  securityProfileDescription: String
  behaviors: [AwsIotS7zInput]
  alertTargets: JSON
  additionalMetricsToRetain: [String]
  additionalMetricsToRetainV2: [AwsIotS8tInput]
  deleteBehaviors: Boolean
  deleteAlertTargets: Boolean
  deleteAdditionalMetricsToRetain: Boolean
  expectedVersion: JSON
}

type AwsIotUpdateStreamOutput {
  streamId: String
  streamArn: String
  description: String
  streamVersion: Int
}

input AwsIotUpdateStreamInput {
  streamId: String!
  description: String
  files: [AwsIotS8zInput]
  roleArn: String
}

input AwsIotUpdateThingInput {
  thingName: String!
  thingTypeName: String
  attributePayload: AwsIotS3gInput
  expectedVersion: JSON
  removeThingType: Boolean
}

type AwsIotUpdateThingGroupOutput {
  version: JSON
}

input AwsIotUpdateThingGroupInput {
  thingGroupName: String!
  thingGroupProperties: AwsIotS3eInput!
  expectedVersion: JSON
}

input AwsIotUpdateThingGroupsForThingInput {
  thingName: String
  thingGroupsToAdd: [String]
  thingGroupsToRemove: [String]
  overrideDynamicGroups: Boolean
}

input AwsIotUpdateTopicRuleDestinationInput {
  arn: String!
  status: String!
}

type AwsIotValidateSecurityProfileBehaviorsOutput {
  valid: Boolean
  validationErrors: [AwsIotValidateSecurityProfileBehaviorsOutputValidationErrors]
}

type AwsIotValidateSecurityProfileBehaviorsOutputValidationErrors {
  errorMessage: String
}

input AwsIotValidateSecurityProfileBehaviorsInput {
  behaviors: [AwsIotS7zInput]!
}

"""AWS IoT Data Plane (2015-05-28)"""
type AwsIotData {
  deleteThingShadow(input: AwsIotDataDeleteThingShadowInput!, config: AwsConfig): AwsIotDataDeleteThingShadowOutput
  getThingShadow(input: AwsIotDataGetThingShadowInput!, config: AwsConfig): AwsIotDataGetThingShadowOutput
  listNamedShadowsForThing(input: AwsIotDataListNamedShadowsForThingInput!, config: AwsConfig): AwsIotDataListNamedShadowsForThingOutput
  publish(input: AwsIotDataPublishInput!, config: AwsConfig): JSON
  updateThingShadow(input: AwsIotDataUpdateThingShadowInput!, config: AwsConfig): AwsIotDataUpdateThingShadowOutput
}

type AwsIotDataDeleteThingShadowOutput {
  payload: JSON!
}

input AwsIotDataDeleteThingShadowInput {
  thingName: String!
  shadowName: String
}

type AwsIotDataGetThingShadowOutput {
  payload: JSON
}

input AwsIotDataGetThingShadowInput {
  thingName: String!
  shadowName: String
}

type AwsIotDataListNamedShadowsForThingOutput {
  results: [String]
  nextToken: String
  timestamp: JSON
}

input AwsIotDataListNamedShadowsForThingInput {
  thingName: String!
  nextToken: String
  pageSize: Int
}

input AwsIotDataPublishInput {
  topic: String!
  qos: Int
  payload: JSON
}

type AwsIotDataUpdateThingShadowOutput {
  payload: JSON
}

input AwsIotDataUpdateThingShadowInput {
  thingName: String!
  shadowName: String
  payload: JSON!
}

"""AWS IoT Core Device Advisor (2020-09-18)"""
type AwsIotDeviceAdvisor {
  createSuiteDefinition(input: AwsIotDeviceAdvisorCreateSuiteDefinitionInput, config: AwsConfig): AwsIotDeviceAdvisorCreateSuiteDefinitionOutput
  deleteSuiteDefinition(input: AwsIotDeviceAdvisorDeleteSuiteDefinitionInput!, config: AwsConfig): JSON
  getSuiteDefinition(input: AwsIotDeviceAdvisorGetSuiteDefinitionInput!, config: AwsConfig): AwsIotDeviceAdvisorGetSuiteDefinitionOutput
  getSuiteRun(input: AwsIotDeviceAdvisorGetSuiteRunInput!, config: AwsConfig): AwsIotDeviceAdvisorGetSuiteRunOutput
  getSuiteRunReport(input: AwsIotDeviceAdvisorGetSuiteRunReportInput!, config: AwsConfig): AwsIotDeviceAdvisorGetSuiteRunReportOutput
  listSuiteDefinitions(input: AwsIotDeviceAdvisorListSuiteDefinitionsInput, config: AwsConfig): AwsIotDeviceAdvisorListSuiteDefinitionsOutput
  listSuiteRuns(input: AwsIotDeviceAdvisorListSuiteRunsInput, config: AwsConfig): AwsIotDeviceAdvisorListSuiteRunsOutput
  listTagsForResource(input: AwsIotDeviceAdvisorListTagsForResourceInput!, config: AwsConfig): AwsIotDeviceAdvisorListTagsForResourceOutput
  startSuiteRun(input: AwsIotDeviceAdvisorStartSuiteRunInput!, config: AwsConfig): AwsIotDeviceAdvisorStartSuiteRunOutput
  stopSuiteRun(input: AwsIotDeviceAdvisorStopSuiteRunInput!, config: AwsConfig): JSON
  tagResource(input: AwsIotDeviceAdvisorTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsIotDeviceAdvisorUntagResourceInput!, config: AwsConfig): JSON
  updateSuiteDefinition(input: AwsIotDeviceAdvisorUpdateSuiteDefinitionInput!, config: AwsConfig): AwsIotDeviceAdvisorUpdateSuiteDefinitionOutput
}

type AwsIotDeviceAdvisorCreateSuiteDefinitionOutput {
  suiteDefinitionId: String
  suiteDefinitionArn: String
  suiteDefinitionName: String
  createdAt: Date
}

input AwsIotDeviceAdvisorCreateSuiteDefinitionInput {
  suiteDefinitionConfiguration: AwsIotDeviceAdvisorS2Input
  tags: JSON
}

input AwsIotDeviceAdvisorS2Input {
  suiteDefinitionName: String
  devices: [AwsIotDeviceAdvisorS5Input]
  intendedForQualification: Boolean
  rootGroup: String
  devicePermissionRoleArn: String
}

input AwsIotDeviceAdvisorS5Input {
  thingArn: String
  certificateArn: String
}

input AwsIotDeviceAdvisorDeleteSuiteDefinitionInput {
  suiteDefinitionId: String!
}

type AwsIotDeviceAdvisorGetSuiteDefinitionOutput {
  suiteDefinitionId: String
  suiteDefinitionArn: String
  suiteDefinitionVersion: String
  latestVersion: String
  suiteDefinitionConfiguration: AwsIotDeviceAdvisorS2
  createdAt: Date
  lastModifiedAt: Date
  tags: JSON
}

type AwsIotDeviceAdvisorS2 {
  suiteDefinitionName: String
  devices: [AwsIotDeviceAdvisorS5]
  intendedForQualification: Boolean
  rootGroup: String
  devicePermissionRoleArn: String
}

type AwsIotDeviceAdvisorS5 {
  thingArn: String
  certificateArn: String
}

input AwsIotDeviceAdvisorGetSuiteDefinitionInput {
  suiteDefinitionId: String!
  suiteDefinitionVersion: String
}

type AwsIotDeviceAdvisorGetSuiteRunOutput {
  suiteDefinitionId: String
  suiteDefinitionVersion: String
  suiteRunId: String
  suiteRunArn: String
  suiteRunConfiguration: AwsIotDeviceAdvisorSm
  testResult: AwsIotDeviceAdvisorGetSuiteRunOutputTestResult
  startTime: Date
  endTime: Date
  status: String
  errorReason: String
  tags: JSON
}

type AwsIotDeviceAdvisorSm {
  primaryDevice: AwsIotDeviceAdvisorS5
  selectedTestList: [String]
}

type AwsIotDeviceAdvisorGetSuiteRunOutputTestResult {
  groups: [AwsIotDeviceAdvisorGetSuiteRunOutputTestResultGroups]
}

type AwsIotDeviceAdvisorGetSuiteRunOutputTestResultGroups {
  groupId: String
  groupName: String
  tests: [AwsIotDeviceAdvisorGetSuiteRunOutputTestResultGroupsTests]
}

type AwsIotDeviceAdvisorGetSuiteRunOutputTestResultGroupsTests {
  testCaseRunId: String
  testCaseDefinitionId: String
  testCaseDefinitionName: String
  status: String
  startTime: Date
  endTime: Date
  logUrl: String
  warnings: String
  failure: String
}

input AwsIotDeviceAdvisorGetSuiteRunInput {
  suiteDefinitionId: String!
  suiteRunId: String!
}

type AwsIotDeviceAdvisorGetSuiteRunReportOutput {
  qualificationReportDownloadUrl: String
}

input AwsIotDeviceAdvisorGetSuiteRunReportInput {
  suiteDefinitionId: String!
  suiteRunId: String!
}

type AwsIotDeviceAdvisorListSuiteDefinitionsOutput {
  suiteDefinitionInformationList: [AwsIotDeviceAdvisorListSuiteDefinitionsOutputSuiteDefinitionInformationList]
  nextToken: String
}

type AwsIotDeviceAdvisorListSuiteDefinitionsOutputSuiteDefinitionInformationList {
  suiteDefinitionId: String
  suiteDefinitionName: String
  defaultDevices: [AwsIotDeviceAdvisorS5]
  intendedForQualification: Boolean
  createdAt: Date
}

input AwsIotDeviceAdvisorListSuiteDefinitionsInput {
  maxResults: Int
  nextToken: String
}

type AwsIotDeviceAdvisorListSuiteRunsOutput {
  suiteRunsList: [AwsIotDeviceAdvisorListSuiteRunsOutputSuiteRunsList]
  nextToken: String
}

type AwsIotDeviceAdvisorListSuiteRunsOutputSuiteRunsList {
  suiteDefinitionId: String
  suiteDefinitionVersion: String
  suiteDefinitionName: String
  suiteRunId: String
  createdAt: Date
  startedAt: Date
  endAt: Date
  status: String
  passed: Int
  failed: Int
}

input AwsIotDeviceAdvisorListSuiteRunsInput {
  suiteDefinitionId: String
  suiteDefinitionVersion: String
  maxResults: Int
  nextToken: String
}

type AwsIotDeviceAdvisorListTagsForResourceOutput {
  tags: JSON
}

input AwsIotDeviceAdvisorListTagsForResourceInput {
  resourceArn: String!
}

type AwsIotDeviceAdvisorStartSuiteRunOutput {
  suiteRunId: String
  suiteRunArn: String
  createdAt: Date
}

input AwsIotDeviceAdvisorStartSuiteRunInput {
  suiteDefinitionId: String!
  suiteDefinitionVersion: String
  suiteRunConfiguration: AwsIotDeviceAdvisorSmInput
  tags: JSON
}

input AwsIotDeviceAdvisorSmInput {
  primaryDevice: AwsIotDeviceAdvisorS5Input
  selectedTestList: [String]
}

input AwsIotDeviceAdvisorStopSuiteRunInput {
  suiteDefinitionId: String!
  suiteRunId: String!
}

input AwsIotDeviceAdvisorTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsIotDeviceAdvisorUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsIotDeviceAdvisorUpdateSuiteDefinitionOutput {
  suiteDefinitionId: String
  suiteDefinitionArn: String
  suiteDefinitionName: String
  suiteDefinitionVersion: String
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsIotDeviceAdvisorUpdateSuiteDefinitionInput {
  suiteDefinitionId: String!
  suiteDefinitionConfiguration: AwsIotDeviceAdvisorS2Input
}

"""AWS Key Management Service (2014-11-01)"""
type AwsKMS {
  cancelKeyDeletion(input: AwsKMSCancelKeyDeletionInput!, config: AwsConfig): AwsKMSCancelKeyDeletionOutput
  connectCustomKeyStore(input: AwsKMSConnectCustomKeyStoreInput!, config: AwsConfig): JSON
  createAlias(input: AwsKMSCreateAliasInput!, config: AwsConfig): JSON
  createCustomKeyStore(input: AwsKMSCreateCustomKeyStoreInput!, config: AwsConfig): AwsKMSCreateCustomKeyStoreOutput
  createGrant(input: AwsKMSCreateGrantInput!, config: AwsConfig): AwsKMSCreateGrantOutput
  createKey(input: AwsKMSCreateKeyInput, config: AwsConfig): AwsKMSCreateKeyOutput
  decrypt(input: AwsKMSDecryptInput!, config: AwsConfig): AwsKMSDecryptOutput
  deleteAlias(input: AwsKMSDeleteAliasInput!, config: AwsConfig): JSON
  deleteCustomKeyStore(input: AwsKMSDeleteCustomKeyStoreInput!, config: AwsConfig): JSON
  deleteImportedKeyMaterial(input: AwsKMSDeleteImportedKeyMaterialInput!, config: AwsConfig): JSON
  describeCustomKeyStores(input: AwsKMSDescribeCustomKeyStoresInput, config: AwsConfig): AwsKMSDescribeCustomKeyStoresOutput
  describeKey(input: AwsKMSDescribeKeyInput!, config: AwsConfig): AwsKMSDescribeKeyOutput
  disableKey(input: AwsKMSDisableKeyInput!, config: AwsConfig): JSON
  disableKeyRotation(input: AwsKMSDisableKeyRotationInput!, config: AwsConfig): JSON
  disconnectCustomKeyStore(input: AwsKMSDisconnectCustomKeyStoreInput!, config: AwsConfig): JSON
  enableKey(input: AwsKMSEnableKeyInput!, config: AwsConfig): JSON
  enableKeyRotation(input: AwsKMSEnableKeyRotationInput!, config: AwsConfig): JSON
  encrypt(input: AwsKMSEncryptInput!, config: AwsConfig): AwsKMSEncryptOutput
  generateDataKey(input: AwsKMSGenerateDataKeyInput!, config: AwsConfig): AwsKMSGenerateDataKeyOutput
  generateDataKeyPair(input: AwsKMSGenerateDataKeyPairInput!, config: AwsConfig): AwsKMSGenerateDataKeyPairOutput
  generateDataKeyPairWithoutPlaintext(input: AwsKMSGenerateDataKeyPairWithoutPlaintextInput!, config: AwsConfig): AwsKMSGenerateDataKeyPairWithoutPlaintextOutput
  generateDataKeyWithoutPlaintext(input: AwsKMSGenerateDataKeyWithoutPlaintextInput!, config: AwsConfig): AwsKMSGenerateDataKeyWithoutPlaintextOutput
  generateRandom(input: AwsKMSGenerateRandomInput, config: AwsConfig): AwsKMSGenerateRandomOutput
  getKeyPolicy(input: AwsKMSGetKeyPolicyInput!, config: AwsConfig): AwsKMSGetKeyPolicyOutput
  getKeyRotationStatus(input: AwsKMSGetKeyRotationStatusInput!, config: AwsConfig): AwsKMSGetKeyRotationStatusOutput
  getParametersForImport(input: AwsKMSGetParametersForImportInput!, config: AwsConfig): AwsKMSGetParametersForImportOutput
  getPublicKey(input: AwsKMSGetPublicKeyInput!, config: AwsConfig): AwsKMSGetPublicKeyOutput
  importKeyMaterial(input: AwsKMSImportKeyMaterialInput!, config: AwsConfig): JSON
  listAliases(input: AwsKMSListAliasesInput, config: AwsConfig): AwsKMSListAliasesOutput
  listGrants(input: AwsKMSListGrantsInput!, config: AwsConfig): JSON
  listKeyPolicies(input: AwsKMSListKeyPoliciesInput!, config: AwsConfig): AwsKMSListKeyPoliciesOutput
  listKeys(input: AwsKMSListKeysInput, config: AwsConfig): AwsKMSListKeysOutput
  listResourceTags(input: AwsKMSListResourceTagsInput!, config: AwsConfig): AwsKMSListResourceTagsOutput
  listRetirableGrants(input: AwsKMSListRetirableGrantsInput!, config: AwsConfig): JSON
  putKeyPolicy(input: AwsKMSPutKeyPolicyInput!, config: AwsConfig): JSON
  reEncrypt(input: AwsKMSReEncryptInput!, config: AwsConfig): AwsKMSReEncryptOutput
  replicateKey(input: AwsKMSReplicateKeyInput!, config: AwsConfig): AwsKMSReplicateKeyOutput
  retireGrant(input: AwsKMSRetireGrantInput, config: AwsConfig): JSON
  revokeGrant(input: AwsKMSRevokeGrantInput!, config: AwsConfig): JSON
  scheduleKeyDeletion(input: AwsKMSScheduleKeyDeletionInput!, config: AwsConfig): AwsKMSScheduleKeyDeletionOutput
  sign(input: AwsKMSSignInput!, config: AwsConfig): AwsKMSSignOutput
  tagResource(input: AwsKMSTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsKMSUntagResourceInput!, config: AwsConfig): JSON
  updateAlias(input: AwsKMSUpdateAliasInput!, config: AwsConfig): JSON
  updateCustomKeyStore(input: AwsKMSUpdateCustomKeyStoreInput!, config: AwsConfig): JSON
  updateKeyDescription(input: AwsKMSUpdateKeyDescriptionInput!, config: AwsConfig): JSON
  updatePrimaryRegion(input: AwsKMSUpdatePrimaryRegionInput!, config: AwsConfig): JSON
  verify(input: AwsKMSVerifyInput!, config: AwsConfig): AwsKMSVerifyOutput
}

type AwsKMSCancelKeyDeletionOutput {
  KeyId: String
}

input AwsKMSCancelKeyDeletionInput {
  KeyId: String!
}

input AwsKMSConnectCustomKeyStoreInput {
  CustomKeyStoreId: String!
}

input AwsKMSCreateAliasInput {
  AliasName: String!
  TargetKeyId: String!
}

type AwsKMSCreateCustomKeyStoreOutput {
  CustomKeyStoreId: String
}

input AwsKMSCreateCustomKeyStoreInput {
  CustomKeyStoreName: String!
  CloudHsmClusterId: String!
  TrustAnchorCertificate: String!
  KeyStorePassword: String!
}

type AwsKMSCreateGrantOutput {
  GrantToken: String
  GrantId: String
}

input AwsKMSCreateGrantInput {
  KeyId: String!
  GranteePrincipal: String!
  RetiringPrincipal: String
  Operations: [String]!
  Constraints: AwsKMSSjInput
  GrantTokens: [String]
  Name: String
}

input AwsKMSSjInput {
  EncryptionContextSubset: JSON
  EncryptionContextEquals: JSON
}

type AwsKMSCreateKeyOutput {
  KeyMetadata: AwsKMSS15
}

type AwsKMSS15 {
  AWSAccountId: String
  KeyId: String!
  Arn: String
  CreationDate: Date
  Enabled: Boolean
  Description: String
  KeyUsage: String
  KeyState: String
  DeletionDate: Date
  ValidTo: Date
  Origin: String
  CustomKeyStoreId: String
  CloudHsmClusterId: String
  ExpirationModel: String
  KeyManager: String
  CustomerMasterKeySpec: String
  EncryptionAlgorithms: [String]
  SigningAlgorithms: [String]
  MultiRegion: Boolean
  MultiRegionConfiguration: AwsKMSS15MultiRegionConfiguration
  PendingDeletionWindowInDays: Int
}

type AwsKMSS15MultiRegionConfiguration {
  MultiRegionKeyType: String
  PrimaryKey: AwsKMSS1i
  ReplicaKeys: [AwsKMSS1i]
}

type AwsKMSS1i {
  Arn: String
  Region: String
}

input AwsKMSCreateKeyInput {
  Policy: String
  Description: String
  KeyUsage: String
  CustomerMasterKeySpec: String
  Origin: String
  CustomKeyStoreId: String
  BypassPolicyLockoutSafetyCheck: Boolean
  Tags: [AwsKMSSzInput]
  MultiRegion: Boolean
}

input AwsKMSSzInput {
  TagKey: String!
  TagValue: String!
}

type AwsKMSDecryptOutput {
  KeyId: String
  Plaintext: JSON
  EncryptionAlgorithm: String
}

input AwsKMSDecryptInput {
  CiphertextBlob: JSON!
  EncryptionContext: JSON
  GrantTokens: [String]
  KeyId: String
  EncryptionAlgorithm: String
}

input AwsKMSDeleteAliasInput {
  AliasName: String!
}

input AwsKMSDeleteCustomKeyStoreInput {
  CustomKeyStoreId: String!
}

input AwsKMSDeleteImportedKeyMaterialInput {
  KeyId: String!
}

type AwsKMSDescribeCustomKeyStoresOutput {
  CustomKeyStores: [AwsKMSDescribeCustomKeyStoresOutputCustomKeyStores]
  NextMarker: String
  Truncated: Boolean
}

type AwsKMSDescribeCustomKeyStoresOutputCustomKeyStores {
  CustomKeyStoreId: String
  CustomKeyStoreName: String
  CloudHsmClusterId: String
  TrustAnchorCertificate: String
  ConnectionState: String
  ConnectionErrorCode: String
  CreationDate: Date
}

input AwsKMSDescribeCustomKeyStoresInput {
  CustomKeyStoreId: String
  CustomKeyStoreName: String
  Limit: Int
  Marker: String
}

type AwsKMSDescribeKeyOutput {
  KeyMetadata: AwsKMSS15
}

input AwsKMSDescribeKeyInput {
  KeyId: String!
  GrantTokens: [String]
}

input AwsKMSDisableKeyInput {
  KeyId: String!
}

input AwsKMSDisableKeyRotationInput {
  KeyId: String!
}

input AwsKMSDisconnectCustomKeyStoreInput {
  CustomKeyStoreId: String!
}

input AwsKMSEnableKeyInput {
  KeyId: String!
}

input AwsKMSEnableKeyRotationInput {
  KeyId: String!
}

type AwsKMSEncryptOutput {
  CiphertextBlob: JSON
  KeyId: String
  EncryptionAlgorithm: String
}

input AwsKMSEncryptInput {
  KeyId: String!
  Plaintext: JSON!
  EncryptionContext: JSON
  GrantTokens: [String]
  EncryptionAlgorithm: String
}

type AwsKMSGenerateDataKeyOutput {
  CiphertextBlob: JSON
  Plaintext: JSON
  KeyId: String
}

input AwsKMSGenerateDataKeyInput {
  KeyId: String!
  EncryptionContext: JSON
  NumberOfBytes: Int
  KeySpec: String
  GrantTokens: [String]
}

type AwsKMSGenerateDataKeyPairOutput {
  PrivateKeyCiphertextBlob: JSON
  PrivateKeyPlaintext: JSON
  PublicKey: JSON
  KeyId: String
  KeyPairSpec: String
}

input AwsKMSGenerateDataKeyPairInput {
  EncryptionContext: JSON
  KeyId: String!
  KeyPairSpec: String!
  GrantTokens: [String]
}

type AwsKMSGenerateDataKeyPairWithoutPlaintextOutput {
  PrivateKeyCiphertextBlob: JSON
  PublicKey: JSON
  KeyId: String
  KeyPairSpec: String
}

input AwsKMSGenerateDataKeyPairWithoutPlaintextInput {
  EncryptionContext: JSON
  KeyId: String!
  KeyPairSpec: String!
  GrantTokens: [String]
}

type AwsKMSGenerateDataKeyWithoutPlaintextOutput {
  CiphertextBlob: JSON
  KeyId: String
}

input AwsKMSGenerateDataKeyWithoutPlaintextInput {
  KeyId: String!
  EncryptionContext: JSON
  KeySpec: String
  NumberOfBytes: Int
  GrantTokens: [String]
}

type AwsKMSGenerateRandomOutput {
  Plaintext: JSON
}

input AwsKMSGenerateRandomInput {
  NumberOfBytes: Int
  CustomKeyStoreId: String
}

type AwsKMSGetKeyPolicyOutput {
  Policy: String
}

input AwsKMSGetKeyPolicyInput {
  KeyId: String!
  PolicyName: String!
}

type AwsKMSGetKeyRotationStatusOutput {
  KeyRotationEnabled: Boolean
}

input AwsKMSGetKeyRotationStatusInput {
  KeyId: String!
}

type AwsKMSGetParametersForImportOutput {
  KeyId: String
  ImportToken: JSON
  PublicKey: JSON
  ParametersValidTo: Date
}

input AwsKMSGetParametersForImportInput {
  KeyId: String!
  WrappingAlgorithm: String!
  WrappingKeySpec: String!
}

type AwsKMSGetPublicKeyOutput {
  KeyId: String
  PublicKey: JSON
  CustomerMasterKeySpec: String
  KeyUsage: String
  EncryptionAlgorithms: [String]
  SigningAlgorithms: [String]
}

input AwsKMSGetPublicKeyInput {
  KeyId: String!
  GrantTokens: [String]
}

input AwsKMSImportKeyMaterialInput {
  KeyId: String!
  ImportToken: JSON!
  EncryptedKeyMaterial: JSON!
  ValidTo: Date
  ExpirationModel: String
}

type AwsKMSListAliasesOutput {
  Aliases: [AwsKMSListAliasesOutputAliases]
  NextMarker: String
  Truncated: Boolean
}

type AwsKMSListAliasesOutputAliases {
  AliasName: String
  AliasArn: String
  TargetKeyId: String
  CreationDate: Date
  LastUpdatedDate: Date
}

input AwsKMSListAliasesInput {
  KeyId: String
  Limit: Int
  Marker: String
}

input AwsKMSListGrantsInput {
  Limit: Int
  Marker: String
  KeyId: String!
  GrantId: String
  GranteePrincipal: String
}

type AwsKMSListKeyPoliciesOutput {
  PolicyNames: [String]
  NextMarker: String
  Truncated: Boolean
}

input AwsKMSListKeyPoliciesInput {
  KeyId: String!
  Limit: Int
  Marker: String
}

type AwsKMSListKeysOutput {
  Keys: [AwsKMSListKeysOutputKeys]
  NextMarker: String
  Truncated: Boolean
}

type AwsKMSListKeysOutputKeys {
  KeyId: String
  KeyArn: String
}

input AwsKMSListKeysInput {
  Limit: Int
  Marker: String
}

type AwsKMSListResourceTagsOutput {
  Tags: [AwsKMSSz]
  NextMarker: String
  Truncated: Boolean
}

type AwsKMSSz {
  TagKey: String!
  TagValue: String!
}

input AwsKMSListResourceTagsInput {
  KeyId: String!
  Limit: Int
  Marker: String
}

input AwsKMSListRetirableGrantsInput {
  Limit: Int
  Marker: String
  RetiringPrincipal: String!
}

input AwsKMSPutKeyPolicyInput {
  KeyId: String!
  PolicyName: String!
  Policy: String!
  BypassPolicyLockoutSafetyCheck: Boolean
}

type AwsKMSReEncryptOutput {
  CiphertextBlob: JSON
  SourceKeyId: String
  KeyId: String
  SourceEncryptionAlgorithm: String
  DestinationEncryptionAlgorithm: String
}

input AwsKMSReEncryptInput {
  CiphertextBlob: JSON!
  SourceEncryptionContext: JSON
  SourceKeyId: String
  DestinationKeyId: String!
  DestinationEncryptionContext: JSON
  SourceEncryptionAlgorithm: String
  DestinationEncryptionAlgorithm: String
  GrantTokens: [String]
}

type AwsKMSReplicateKeyOutput {
  ReplicaKeyMetadata: AwsKMSS15
  ReplicaPolicy: String
  ReplicaTags: [AwsKMSSz]
}

input AwsKMSReplicateKeyInput {
  KeyId: String!
  ReplicaRegion: String!
  Policy: String
  BypassPolicyLockoutSafetyCheck: Boolean
  Description: String
  Tags: [AwsKMSSzInput]
}

input AwsKMSRetireGrantInput {
  GrantToken: String
  KeyId: String
  GrantId: String
}

input AwsKMSRevokeGrantInput {
  KeyId: String!
  GrantId: String!
}

type AwsKMSScheduleKeyDeletionOutput {
  KeyId: String
  DeletionDate: Date
  KeyState: String
  PendingWindowInDays: Int
}

input AwsKMSScheduleKeyDeletionInput {
  KeyId: String!
  PendingWindowInDays: Int
}

type AwsKMSSignOutput {
  KeyId: String
  Signature: JSON
  SigningAlgorithm: String
}

input AwsKMSSignInput {
  KeyId: String!
  Message: JSON!
  MessageType: String
  GrantTokens: [String]
  SigningAlgorithm: String!
}

input AwsKMSTagResourceInput {
  KeyId: String!
  Tags: [AwsKMSSzInput]!
}

input AwsKMSUntagResourceInput {
  KeyId: String!
  TagKeys: [String]!
}

input AwsKMSUpdateAliasInput {
  AliasName: String!
  TargetKeyId: String!
}

input AwsKMSUpdateCustomKeyStoreInput {
  CustomKeyStoreId: String!
  NewCustomKeyStoreName: String
  KeyStorePassword: String
  CloudHsmClusterId: String
}

input AwsKMSUpdateKeyDescriptionInput {
  KeyId: String!
  Description: String!
}

input AwsKMSUpdatePrimaryRegionInput {
  KeyId: String!
  PrimaryRegion: String!
}

type AwsKMSVerifyOutput {
  KeyId: String
  SignatureValid: Boolean
  SigningAlgorithm: String
}

input AwsKMSVerifyInput {
  KeyId: String!
  Message: JSON!
  MessageType: String
  Signature: JSON!
  SigningAlgorithm: String!
  GrantTokens: [String]
}

"""Managed Streaming for Kafka (2018-11-14)"""
type AwsKafka {
  batchAssociateScramSecret(input: AwsKafkaBatchAssociateScramSecretInput!, config: AwsConfig): AwsKafkaBatchAssociateScramSecretOutput
  createCluster(input: AwsKafkaCreateClusterInput!, config: AwsConfig): AwsKafkaCreateClusterOutput
  createConfiguration(input: AwsKafkaCreateConfigurationInput!, config: AwsConfig): AwsKafkaCreateConfigurationOutput
  deleteCluster(input: AwsKafkaDeleteClusterInput!, config: AwsConfig): AwsKafkaDeleteClusterOutput
  deleteConfiguration(input: AwsKafkaDeleteConfigurationInput!, config: AwsConfig): AwsKafkaDeleteConfigurationOutput
  describeCluster(input: AwsKafkaDescribeClusterInput!, config: AwsConfig): AwsKafkaDescribeClusterOutput
  describeClusterOperation(input: AwsKafkaDescribeClusterOperationInput!, config: AwsConfig): AwsKafkaDescribeClusterOperationOutput
  describeConfiguration(input: AwsKafkaDescribeConfigurationInput!, config: AwsConfig): AwsKafkaDescribeConfigurationOutput
  describeConfigurationRevision(input: AwsKafkaDescribeConfigurationRevisionInput!, config: AwsConfig): AwsKafkaDescribeConfigurationRevisionOutput
  batchDisassociateScramSecret(input: AwsKafkaBatchDisassociateScramSecretInput!, config: AwsConfig): AwsKafkaBatchDisassociateScramSecretOutput
  getBootstrapBrokers(input: AwsKafkaGetBootstrapBrokersInput!, config: AwsConfig): AwsKafkaGetBootstrapBrokersOutput
  getCompatibleKafkaVersions(input: AwsKafkaGetCompatibleKafkaVersionsInput, config: AwsConfig): AwsKafkaGetCompatibleKafkaVersionsOutput
  listClusterOperations(input: AwsKafkaListClusterOperationsInput!, config: AwsConfig): AwsKafkaListClusterOperationsOutput
  listClusters(input: AwsKafkaListClustersInput, config: AwsConfig): AwsKafkaListClustersOutput
  listConfigurationRevisions(input: AwsKafkaListConfigurationRevisionsInput!, config: AwsConfig): AwsKafkaListConfigurationRevisionsOutput
  listConfigurations(input: AwsKafkaListConfigurationsInput, config: AwsConfig): AwsKafkaListConfigurationsOutput
  listKafkaVersions(input: AwsKafkaListKafkaVersionsInput, config: AwsConfig): AwsKafkaListKafkaVersionsOutput
  listNodes(input: AwsKafkaListNodesInput!, config: AwsConfig): AwsKafkaListNodesOutput
  listScramSecrets(input: AwsKafkaListScramSecretsInput!, config: AwsConfig): AwsKafkaListScramSecretsOutput
  listTagsForResource(input: AwsKafkaListTagsForResourceInput!, config: AwsConfig): AwsKafkaListTagsForResourceOutput
  rebootBroker(input: AwsKafkaRebootBrokerInput!, config: AwsConfig): AwsKafkaRebootBrokerOutput
  tagResource(input: AwsKafkaTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsKafkaUntagResourceInput!, config: AwsConfig): JSON
  updateBrokerCount(input: AwsKafkaUpdateBrokerCountInput!, config: AwsConfig): AwsKafkaUpdateBrokerCountOutput
  updateBrokerType(input: AwsKafkaUpdateBrokerTypeInput!, config: AwsConfig): AwsKafkaUpdateBrokerTypeOutput
  updateBrokerStorage(input: AwsKafkaUpdateBrokerStorageInput!, config: AwsConfig): AwsKafkaUpdateBrokerStorageOutput
  updateConfiguration(input: AwsKafkaUpdateConfigurationInput!, config: AwsConfig): AwsKafkaUpdateConfigurationOutput
  updateClusterConfiguration(input: AwsKafkaUpdateClusterConfigurationInput!, config: AwsConfig): AwsKafkaUpdateClusterConfigurationOutput
  updateClusterKafkaVersion(input: AwsKafkaUpdateClusterKafkaVersionInput!, config: AwsConfig): AwsKafkaUpdateClusterKafkaVersionOutput
  updateMonitoring(input: AwsKafkaUpdateMonitoringInput!, config: AwsConfig): AwsKafkaUpdateMonitoringOutput
}

type AwsKafkaBatchAssociateScramSecretOutput {
  ClusterArn: String
  UnprocessedScramSecrets: [AwsKafkaS5]
}

type AwsKafkaS5 {
  ErrorCode: String
  ErrorMessage: String
  SecretArn: String
}

input AwsKafkaBatchAssociateScramSecretInput {
  ClusterArn: String!
  SecretArnList: [String]!
}

type AwsKafkaCreateClusterOutput {
  ClusterArn: String
  ClusterName: String
  State: String
}

input AwsKafkaCreateClusterInput {
  BrokerNodeGroupInfo: AwsKafkaS8Input!
  ClientAuthentication: AwsKafkaSeInput
  ClusterName: String!
  ConfigurationInfo: AwsKafkaSlInput
  EncryptionInfo: AwsKafkaSnInput
  EnhancedMonitoring: String
  OpenMonitoring: AwsKafkaSsInput
  KafkaVersion: String!
  LoggingInfo: AwsKafkaSxInput
  NumberOfBrokerNodes: Int!
  Tags: JSON
}

input AwsKafkaS8Input {
  BrokerAZDistribution: String
  ClientSubnets: [String]!
  InstanceType: String!
  SecurityGroups: [String]
  StorageInfo: AwsKafkaS8StorageInfoInput
}

input AwsKafkaS8StorageInfoInput {
  EbsStorageInfo: AwsKafkaS8StorageInfoEbsStorageInfoInput
}

input AwsKafkaS8StorageInfoEbsStorageInfoInput {
  VolumeSize: Int
}

input AwsKafkaSeInput {
  Sasl: AwsKafkaSeSaslInput
  Tls: AwsKafkaSeTlsInput
}

input AwsKafkaSeSaslInput {
  Scram: AwsKafkaSeSaslScramInput
  Iam: AwsKafkaSeSaslIamInput
}

input AwsKafkaSeSaslScramInput {
  Enabled: Boolean
}

input AwsKafkaSeSaslIamInput {
  Enabled: Boolean
}

input AwsKafkaSeTlsInput {
  CertificateAuthorityArnList: [String]
}

input AwsKafkaSlInput {
  Arn: String!
  Revision: JSON!
}

input AwsKafkaSnInput {
  EncryptionAtRest: AwsKafkaSnEncryptionAtRestInput
  EncryptionInTransit: AwsKafkaSnEncryptionInTransitInput
}

input AwsKafkaSnEncryptionAtRestInput {
  DataVolumeKMSKeyId: String!
}

input AwsKafkaSnEncryptionInTransitInput {
  ClientBroker: String
  InCluster: Boolean
}

input AwsKafkaSsInput {
  Prometheus: AwsKafkaSsPrometheusInput!
}

input AwsKafkaSsPrometheusInput {
  JmxExporter: AwsKafkaSsPrometheusJmxExporterInput
  NodeExporter: AwsKafkaSsPrometheusNodeExporterInput
}

input AwsKafkaSsPrometheusJmxExporterInput {
  EnabledInBroker: Boolean!
}

input AwsKafkaSsPrometheusNodeExporterInput {
  EnabledInBroker: Boolean!
}

input AwsKafkaSxInput {
  BrokerLogs: AwsKafkaSxBrokerLogsInput!
}

input AwsKafkaSxBrokerLogsInput {
  CloudWatchLogs: AwsKafkaSxBrokerLogsCloudWatchLogsInput
  Firehose: AwsKafkaSxBrokerLogsFirehoseInput
  S3: AwsKafkaSxBrokerLogsS3Input
}

input AwsKafkaSxBrokerLogsCloudWatchLogsInput {
  Enabled: Boolean!
  LogGroup: String
}

input AwsKafkaSxBrokerLogsFirehoseInput {
  DeliveryStream: String
  Enabled: Boolean!
}

input AwsKafkaSxBrokerLogsS3Input {
  Bucket: String
  Enabled: Boolean!
  Prefix: String
}

type AwsKafkaCreateConfigurationOutput {
  Arn: String
  CreationTime: Date
  LatestRevision: AwsKafkaS1a
  Name: String
  State: String
}

type AwsKafkaS1a {
  CreationTime: Date!
  Description: String
  Revision: JSON!
}

input AwsKafkaCreateConfigurationInput {
  Description: String
  KafkaVersions: [String]
  Name: String!
  ServerProperties: JSON!
}

type AwsKafkaDeleteClusterOutput {
  ClusterArn: String
  State: String
}

input AwsKafkaDeleteClusterInput {
  ClusterArn: String!
  CurrentVersion: String
}

type AwsKafkaDeleteConfigurationOutput {
  Arn: String
  State: String
}

input AwsKafkaDeleteConfigurationInput {
  Arn: String!
}

type AwsKafkaDescribeClusterOutput {
  ClusterInfo: AwsKafkaS1i
}

type AwsKafkaS1i {
  ActiveOperationArn: String
  BrokerNodeGroupInfo: AwsKafkaS8
  ClientAuthentication: AwsKafkaSe
  ClusterArn: String
  ClusterName: String
  CreationTime: Date
  CurrentBrokerSoftwareInfo: AwsKafkaS1j
  CurrentVersion: String
  EncryptionInfo: AwsKafkaSn
  EnhancedMonitoring: String
  OpenMonitoring: AwsKafkaS1k
  LoggingInfo: AwsKafkaSx
  NumberOfBrokerNodes: Int
  State: String
  StateInfo: AwsKafkaS1iStateInfo
  Tags: JSON
  ZookeeperConnectString: String
  ZookeeperConnectStringTls: String
}

type AwsKafkaS8 {
  BrokerAZDistribution: String
  ClientSubnets: [String]!
  InstanceType: String!
  SecurityGroups: [String]
  StorageInfo: AwsKafkaS8StorageInfo
}

type AwsKafkaS8StorageInfo {
  EbsStorageInfo: AwsKafkaS8StorageInfoEbsStorageInfo
}

type AwsKafkaS8StorageInfoEbsStorageInfo {
  VolumeSize: Int
}

type AwsKafkaSe {
  Sasl: AwsKafkaSeSasl
  Tls: AwsKafkaSeTls
}

type AwsKafkaSeSasl {
  Scram: AwsKafkaSeSaslScram
  Iam: AwsKafkaSeSaslIam
}

type AwsKafkaSeSaslScram {
  Enabled: Boolean
}

type AwsKafkaSeSaslIam {
  Enabled: Boolean
}

type AwsKafkaSeTls {
  CertificateAuthorityArnList: [String]
}

type AwsKafkaS1j {
  ConfigurationArn: String
  ConfigurationRevision: JSON
  KafkaVersion: String
}

type AwsKafkaSn {
  EncryptionAtRest: AwsKafkaSnEncryptionAtRest
  EncryptionInTransit: AwsKafkaSnEncryptionInTransit
}

type AwsKafkaSnEncryptionAtRest {
  DataVolumeKMSKeyId: String!
}

type AwsKafkaSnEncryptionInTransit {
  ClientBroker: String
  InCluster: Boolean
}

type AwsKafkaS1k {
  Prometheus: AwsKafkaS1kPrometheus!
}

type AwsKafkaS1kPrometheus {
  JmxExporter: AwsKafkaS1kPrometheusJmxExporter
  NodeExporter: AwsKafkaS1kPrometheusNodeExporter
}

type AwsKafkaS1kPrometheusJmxExporter {
  EnabledInBroker: Boolean!
}

type AwsKafkaS1kPrometheusNodeExporter {
  EnabledInBroker: Boolean!
}

type AwsKafkaSx {
  BrokerLogs: AwsKafkaSxBrokerLogs!
}

type AwsKafkaSxBrokerLogs {
  CloudWatchLogs: AwsKafkaSxBrokerLogsCloudWatchLogs
  Firehose: AwsKafkaSxBrokerLogsFirehose
  S3: AwsKafkaSxBrokerLogsS3
}

type AwsKafkaSxBrokerLogsCloudWatchLogs {
  Enabled: Boolean!
  LogGroup: String
}

type AwsKafkaSxBrokerLogsFirehose {
  DeliveryStream: String
  Enabled: Boolean!
}

type AwsKafkaSxBrokerLogsS3 {
  Bucket: String
  Enabled: Boolean!
  Prefix: String
}

type AwsKafkaS1iStateInfo {
  Code: String
  Message: String
}

input AwsKafkaDescribeClusterInput {
  ClusterArn: String!
}

type AwsKafkaDescribeClusterOperationOutput {
  ClusterOperationInfo: AwsKafkaS1s
}

type AwsKafkaS1s {
  ClientRequestId: String
  ClusterArn: String
  CreationTime: Date
  EndTime: Date
  ErrorInfo: AwsKafkaS1sErrorInfo
  OperationArn: String
  OperationState: String
  OperationSteps: [AwsKafkaS1sOperationSteps]
  OperationType: String
  SourceClusterInfo: AwsKafkaS1x
  TargetClusterInfo: AwsKafkaS1x
}

type AwsKafkaS1sErrorInfo {
  ErrorCode: String
  ErrorString: String
}

type AwsKafkaS1sOperationSteps {
  StepInfo: AwsKafkaS1sOperationStepsStepInfo
  StepName: String
}

type AwsKafkaS1sOperationStepsStepInfo {
  StepStatus: String
}

type AwsKafkaS1x {
  BrokerEBSVolumeInfo: [AwsKafkaS1y]
  ConfigurationInfo: AwsKafkaSl
  NumberOfBrokerNodes: Int
  EnhancedMonitoring: String
  OpenMonitoring: AwsKafkaS1k
  KafkaVersion: String
  LoggingInfo: AwsKafkaSx
  InstanceType: String
}

type AwsKafkaS1y {
  KafkaBrokerNodeId: String!
  VolumeSizeGB: Int!
}

type AwsKafkaSl {
  Arn: String!
  Revision: JSON!
}

input AwsKafkaDescribeClusterOperationInput {
  ClusterOperationArn: String!
}

type AwsKafkaDescribeConfigurationOutput {
  Arn: String
  CreationTime: Date
  Description: String
  KafkaVersions: [String]
  LatestRevision: AwsKafkaS1a
  Name: String
  State: String
}

input AwsKafkaDescribeConfigurationInput {
  Arn: String!
}

type AwsKafkaDescribeConfigurationRevisionOutput {
  Arn: String
  CreationTime: Date
  Description: String
  Revision: JSON
  ServerProperties: JSON
}

input AwsKafkaDescribeConfigurationRevisionInput {
  Arn: String!
  Revision: JSON!
}

type AwsKafkaBatchDisassociateScramSecretOutput {
  ClusterArn: String
  UnprocessedScramSecrets: [AwsKafkaS5]
}

input AwsKafkaBatchDisassociateScramSecretInput {
  ClusterArn: String!
  SecretArnList: [String]!
}

type AwsKafkaGetBootstrapBrokersOutput {
  BootstrapBrokerString: String
  BootstrapBrokerStringTls: String
  BootstrapBrokerStringSaslScram: String
  BootstrapBrokerStringSaslIam: String
}

input AwsKafkaGetBootstrapBrokersInput {
  ClusterArn: String!
}

type AwsKafkaGetCompatibleKafkaVersionsOutput {
  CompatibleKafkaVersions: [AwsKafkaGetCompatibleKafkaVersionsOutputCompatibleKafkaVersions]
}

type AwsKafkaGetCompatibleKafkaVersionsOutputCompatibleKafkaVersions {
  SourceVersion: String
  TargetVersions: [String]
}

input AwsKafkaGetCompatibleKafkaVersionsInput {
  ClusterArn: String
}

type AwsKafkaListClusterOperationsOutput {
  ClusterOperationInfoList: [AwsKafkaS1s]
  NextToken: String
}

input AwsKafkaListClusterOperationsInput {
  ClusterArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListClustersOutput {
  ClusterInfoList: [AwsKafkaS1i]
  NextToken: String
}

input AwsKafkaListClustersInput {
  ClusterNameFilter: String
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListConfigurationRevisionsOutput {
  NextToken: String
  Revisions: [AwsKafkaS1a]
}

input AwsKafkaListConfigurationRevisionsInput {
  Arn: String!
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListConfigurationsOutput {
  Configurations: [AwsKafkaListConfigurationsOutputConfigurations]
  NextToken: String
}

type AwsKafkaListConfigurationsOutputConfigurations {
  Arn: String!
  CreationTime: Date!
  Description: String!
  KafkaVersions: [String]!
  LatestRevision: AwsKafkaS1a!
  Name: String!
  State: String!
}

input AwsKafkaListConfigurationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListKafkaVersionsOutput {
  KafkaVersions: [AwsKafkaListKafkaVersionsOutputKafkaVersions]
  NextToken: String
}

type AwsKafkaListKafkaVersionsOutputKafkaVersions {
  Version: String
  Status: String
}

input AwsKafkaListKafkaVersionsInput {
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListNodesOutput {
  NextToken: String
  NodeInfoList: [AwsKafkaListNodesOutputNodeInfoList]
}

type AwsKafkaListNodesOutputNodeInfoList {
  AddedToClusterTime: String
  BrokerNodeInfo: AwsKafkaListNodesOutputNodeInfoListBrokerNodeInfo
  InstanceType: String
  NodeARN: String
  NodeType: String
  ZookeeperNodeInfo: AwsKafkaListNodesOutputNodeInfoListZookeeperNodeInfo
}

type AwsKafkaListNodesOutputNodeInfoListBrokerNodeInfo {
  AttachedENIId: String
  BrokerId: JSON
  ClientSubnet: String
  ClientVpcIpAddress: String
  CurrentBrokerSoftwareInfo: AwsKafkaS1j
  Endpoints: [String]
}

type AwsKafkaListNodesOutputNodeInfoListZookeeperNodeInfo {
  AttachedENIId: String
  ClientVpcIpAddress: String
  Endpoints: [String]
  ZookeeperId: JSON
  ZookeeperVersion: String
}

input AwsKafkaListNodesInput {
  ClusterArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListScramSecretsOutput {
  NextToken: String
  SecretArnList: [String]
}

input AwsKafkaListScramSecretsInput {
  ClusterArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsKafkaListTagsForResourceOutput {
  Tags: JSON
}

input AwsKafkaListTagsForResourceInput {
  ResourceArn: String!
}

type AwsKafkaRebootBrokerOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaRebootBrokerInput {
  BrokerIds: [String]!
  ClusterArn: String!
}

input AwsKafkaTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsKafkaUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsKafkaUpdateBrokerCountOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateBrokerCountInput {
  ClusterArn: String!
  CurrentVersion: String!
  TargetNumberOfBrokerNodes: Int!
}

type AwsKafkaUpdateBrokerTypeOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateBrokerTypeInput {
  ClusterArn: String!
  CurrentVersion: String!
  TargetInstanceType: String!
}

type AwsKafkaUpdateBrokerStorageOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateBrokerStorageInput {
  ClusterArn: String!
  CurrentVersion: String!
  TargetBrokerEBSVolumeInfo: [AwsKafkaS1yInput]!
}

input AwsKafkaS1yInput {
  KafkaBrokerNodeId: String!
  VolumeSizeGB: Int!
}

type AwsKafkaUpdateConfigurationOutput {
  Arn: String
  LatestRevision: AwsKafkaS1a
}

input AwsKafkaUpdateConfigurationInput {
  Arn: String!
  Description: String
  ServerProperties: JSON!
}

type AwsKafkaUpdateClusterConfigurationOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateClusterConfigurationInput {
  ClusterArn: String!
  ConfigurationInfo: AwsKafkaSlInput!
  CurrentVersion: String!
}

type AwsKafkaUpdateClusterKafkaVersionOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateClusterKafkaVersionInput {
  ClusterArn: String!
  ConfigurationInfo: AwsKafkaSlInput
  CurrentVersion: String!
  TargetKafkaVersion: String!
}

type AwsKafkaUpdateMonitoringOutput {
  ClusterArn: String
  ClusterOperationArn: String
}

input AwsKafkaUpdateMonitoringInput {
  ClusterArn: String!
  CurrentVersion: String!
  EnhancedMonitoring: String
  OpenMonitoring: AwsKafkaSsInput
  LoggingInfo: AwsKafkaSxInput
}

"""AWSKendraFrontendService (2019-02-03)"""
type AwsKendra {
  batchDeleteDocument(input: AwsKendraBatchDeleteDocumentInput!, config: AwsConfig): AwsKendraBatchDeleteDocumentOutput
  batchGetDocumentStatus(input: AwsKendraBatchGetDocumentStatusInput!, config: AwsConfig): AwsKendraBatchGetDocumentStatusOutput
  batchPutDocument(input: AwsKendraBatchPutDocumentInput!, config: AwsConfig): AwsKendraBatchPutDocumentOutput
  clearQuerySuggestions(input: AwsKendraClearQuerySuggestionsInput!, config: AwsConfig): JSON
  createDataSource(input: AwsKendraCreateDataSourceInput!, config: AwsConfig): AwsKendraCreateDataSourceOutput
  createFaq(input: AwsKendraCreateFaqInput!, config: AwsConfig): AwsKendraCreateFaqOutput
  createIndex(input: AwsKendraCreateIndexInput!, config: AwsConfig): AwsKendraCreateIndexOutput
  createQuerySuggestionsBlockList(input: AwsKendraCreateQuerySuggestionsBlockListInput!, config: AwsConfig): AwsKendraCreateQuerySuggestionsBlockListOutput
  createThesaurus(input: AwsKendraCreateThesaurusInput!, config: AwsConfig): AwsKendraCreateThesaurusOutput
  deleteDataSource(input: AwsKendraDeleteDataSourceInput!, config: AwsConfig): JSON
  deleteFaq(input: AwsKendraDeleteFaqInput!, config: AwsConfig): JSON
  deleteIndex(input: AwsKendraDeleteIndexInput!, config: AwsConfig): JSON
  deleteQuerySuggestionsBlockList(input: AwsKendraDeleteQuerySuggestionsBlockListInput!, config: AwsConfig): JSON
  deleteThesaurus(input: AwsKendraDeleteThesaurusInput!, config: AwsConfig): JSON
  describeDataSource(input: AwsKendraDescribeDataSourceInput!, config: AwsConfig): AwsKendraDescribeDataSourceOutput
  describeFaq(input: AwsKendraDescribeFaqInput!, config: AwsConfig): AwsKendraDescribeFaqOutput
  describeIndex(input: AwsKendraDescribeIndexInput!, config: AwsConfig): AwsKendraDescribeIndexOutput
  describeQuerySuggestionsBlockList(input: AwsKendraDescribeQuerySuggestionsBlockListInput!, config: AwsConfig): AwsKendraDescribeQuerySuggestionsBlockListOutput
  describeQuerySuggestionsConfig(input: AwsKendraDescribeQuerySuggestionsConfigInput!, config: AwsConfig): AwsKendraDescribeQuerySuggestionsConfigOutput
  describeThesaurus(input: AwsKendraDescribeThesaurusInput!, config: AwsConfig): AwsKendraDescribeThesaurusOutput
  getQuerySuggestions(input: AwsKendraGetQuerySuggestionsInput!, config: AwsConfig): AwsKendraGetQuerySuggestionsOutput
  listDataSourceSyncJobs(input: AwsKendraListDataSourceSyncJobsInput!, config: AwsConfig): AwsKendraListDataSourceSyncJobsOutput
  listDataSources(input: AwsKendraListDataSourcesInput!, config: AwsConfig): AwsKendraListDataSourcesOutput
  listFaqs(input: AwsKendraListFaqsInput!, config: AwsConfig): AwsKendraListFaqsOutput
  listIndices(input: AwsKendraListIndicesInput, config: AwsConfig): AwsKendraListIndicesOutput
  listQuerySuggestionsBlockLists(input: AwsKendraListQuerySuggestionsBlockListsInput!, config: AwsConfig): AwsKendraListQuerySuggestionsBlockListsOutput
  listTagsForResource(input: AwsKendraListTagsForResourceInput!, config: AwsConfig): AwsKendraListTagsForResourceOutput
  listThesauri(input: AwsKendraListThesauriInput!, config: AwsConfig): AwsKendraListThesauriOutput
  query(input: AwsKendraQueryInput!, config: AwsConfig): AwsKendraQueryOutput
  startDataSourceSyncJob(input: AwsKendraStartDataSourceSyncJobInput!, config: AwsConfig): AwsKendraStartDataSourceSyncJobOutput
  stopDataSourceSyncJob(input: AwsKendraStopDataSourceSyncJobInput!, config: AwsConfig): JSON
  submitFeedback(input: AwsKendraSubmitFeedbackInput!, config: AwsConfig): JSON
  tagResource(input: AwsKendraTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsKendraUntagResourceInput!, config: AwsConfig): JSON
  updateDataSource(input: AwsKendraUpdateDataSourceInput!, config: AwsConfig): JSON
  updateIndex(input: AwsKendraUpdateIndexInput!, config: AwsConfig): JSON
  updateQuerySuggestionsBlockList(input: AwsKendraUpdateQuerySuggestionsBlockListInput!, config: AwsConfig): JSON
  updateQuerySuggestionsConfig(input: AwsKendraUpdateQuerySuggestionsConfigInput!, config: AwsConfig): JSON
  updateThesaurus(input: AwsKendraUpdateThesaurusInput!, config: AwsConfig): JSON
}

type AwsKendraBatchDeleteDocumentOutput {
  FailedDocuments: [AwsKendraBatchDeleteDocumentOutputFailedDocuments]
}

type AwsKendraBatchDeleteDocumentOutputFailedDocuments {
  Id: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsKendraBatchDeleteDocumentInput {
  IndexId: String!
  DocumentIdList: [String]!
  DataSourceSyncJobMetricTarget: AwsKendraBatchDeleteDocumentDataSourceSyncJobMetricTargetInput
}

input AwsKendraBatchDeleteDocumentDataSourceSyncJobMetricTargetInput {
  DataSourceId: String!
  DataSourceSyncJobId: String
}

type AwsKendraBatchGetDocumentStatusOutput {
  Errors: [AwsKendraBatchGetDocumentStatusOutputErrors]
  DocumentStatusList: [AwsKendraBatchGetDocumentStatusOutputDocumentStatusList]
}

type AwsKendraBatchGetDocumentStatusOutputErrors {
  DocumentId: String
  ErrorCode: String
  ErrorMessage: String
}

type AwsKendraBatchGetDocumentStatusOutputDocumentStatusList {
  DocumentId: String
  DocumentStatus: String
  FailureCode: String
  FailureReason: String
}

input AwsKendraBatchGetDocumentStatusInput {
  IndexId: String!
  DocumentInfoList: [AwsKendraBatchGetDocumentStatusDocumentInfoListInput]!
}

input AwsKendraBatchGetDocumentStatusDocumentInfoListInput {
  DocumentId: String!
  Attributes: [AwsKendraShInput]
}

input AwsKendraShInput {
  Key: String!
  Value: AwsKendraSjInput!
}

input AwsKendraSjInput {
  StringValue: String
  StringListValue: [String]
  LongValue: JSON
  DateValue: Date
}

type AwsKendraBatchPutDocumentOutput {
  FailedDocuments: [AwsKendraBatchPutDocumentOutputFailedDocuments]
}

type AwsKendraBatchPutDocumentOutputFailedDocuments {
  Id: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsKendraBatchPutDocumentInput {
  IndexId: String!
  RoleArn: String
  Documents: [AwsKendraBatchPutDocumentDocumentsInput]!
}

input AwsKendraBatchPutDocumentDocumentsInput {
  Id: String!
  Title: String
  Blob: JSON
  S3Path: AwsKendraS11Input
  Attributes: [AwsKendraShInput]
  AccessControlList: [AwsKendraBatchPutDocumentDocumentsAccessControlListInput]
  ContentType: String
}

input AwsKendraS11Input {
  Bucket: String!
  Key: String!
}

input AwsKendraBatchPutDocumentDocumentsAccessControlListInput {
  Name: String!
  Type: String!
  Access: String!
}

input AwsKendraClearQuerySuggestionsInput {
  IndexId: String!
}

type AwsKendraCreateDataSourceOutput {
  Id: String!
}

input AwsKendraCreateDataSourceInput {
  Name: String!
  IndexId: String!
  Type: String!
  Configuration: AwsKendraS1hInput
  Description: String
  Schedule: String
  RoleArn: String
  Tags: [AwsKendraS4jInput]
  ClientToken: String
}

input AwsKendraS1hInput {
  S3Configuration: AwsKendraS1hS3ConfigurationInput
  SharePointConfiguration: AwsKendraS1hSharePointConfigurationInput
  DatabaseConfiguration: AwsKendraS1hDatabaseConfigurationInput
  SalesforceConfiguration: AwsKendraS1hSalesforceConfigurationInput
  OneDriveConfiguration: AwsKendraS1hOneDriveConfigurationInput
  ServiceNowConfiguration: AwsKendraS1hServiceNowConfigurationInput
  ConfluenceConfiguration: AwsKendraS1hConfluenceConfigurationInput
  GoogleDriveConfiguration: AwsKendraS1hGoogleDriveConfigurationInput
  WebCrawlerConfiguration: AwsKendraS1hWebCrawlerConfigurationInput
}

input AwsKendraS1hS3ConfigurationInput {
  BucketName: String!
  InclusionPrefixes: [String]
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  DocumentsMetadataConfiguration: AwsKendraS1hS3ConfigurationDocumentsMetadataConfigurationInput
  AccessControlListConfiguration: AwsKendraS1hS3ConfigurationAccessControlListConfigurationInput
}

input AwsKendraS1hS3ConfigurationDocumentsMetadataConfigurationInput {
  S3Prefix: String
}

input AwsKendraS1hS3ConfigurationAccessControlListConfigurationInput {
  KeyPath: String
}

input AwsKendraS1hSharePointConfigurationInput {
  SharePointVersion: String!
  Urls: [String]!
  SecretArn: String!
  CrawlAttachments: Boolean
  UseChangeLog: Boolean
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  VpcConfiguration: AwsKendraS1tInput
  FieldMappings: [AwsKendraS1yInput]
  DocumentTitleFieldName: String
  DisableLocalGroups: Boolean
  SslCertificateS3Path: AwsKendraS11Input
}

input AwsKendraS1tInput {
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
}

input AwsKendraS1yInput {
  DataSourceFieldName: String!
  DateFieldFormat: String
  IndexFieldName: String!
}

input AwsKendraS1hDatabaseConfigurationInput {
  DatabaseEngineType: String!
  ConnectionConfiguration: AwsKendraS1hDatabaseConfigurationConnectionConfigurationInput!
  VpcConfiguration: AwsKendraS1tInput
  ColumnConfiguration: AwsKendraS1hDatabaseConfigurationColumnConfigurationInput!
  AclConfiguration: AwsKendraS1hDatabaseConfigurationAclConfigurationInput
  SqlConfiguration: AwsKendraS1hDatabaseConfigurationSqlConfigurationInput
}

input AwsKendraS1hDatabaseConfigurationConnectionConfigurationInput {
  DatabaseHost: String!
  DatabasePort: Int!
  DatabaseName: String!
  TableName: String!
  SecretArn: String!
}

input AwsKendraS1hDatabaseConfigurationColumnConfigurationInput {
  DocumentIdColumnName: String!
  DocumentDataColumnName: String!
  DocumentTitleColumnName: String
  FieldMappings: [AwsKendraS1yInput]
  ChangeDetectingColumns: [String]!
}

input AwsKendraS1hDatabaseConfigurationAclConfigurationInput {
  AllowedGroupsColumnName: String!
}

input AwsKendraS1hDatabaseConfigurationSqlConfigurationInput {
  QueryIdentifiersEnclosingOption: String
}

input AwsKendraS1hSalesforceConfigurationInput {
  ServerUrl: String!
  SecretArn: String!
  StandardObjectConfigurations: [AwsKendraS1hSalesforceConfigurationStandardObjectConfigurationsInput]
  KnowledgeArticleConfiguration: AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationInput
  ChatterFeedConfiguration: AwsKendraS1hSalesforceConfigurationChatterFeedConfigurationInput
  CrawlAttachments: Boolean
  StandardObjectAttachmentConfiguration: AwsKendraS1hSalesforceConfigurationStandardObjectAttachmentConfigurationInput
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
}

input AwsKendraS1hSalesforceConfigurationStandardObjectConfigurationsInput {
  Name: String!
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
}

input AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationInput {
  IncludedStates: [String]!
  StandardKnowledgeArticleTypeConfiguration: AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationStandardKnowledgeArticleTypeConfigurationInput
  CustomKnowledgeArticleTypeConfigurations: [AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationCustomKnowledgeArticleTypeConfigurationsInput]
}

input AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationStandardKnowledgeArticleTypeConfigurationInput {
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
}

input AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationCustomKnowledgeArticleTypeConfigurationsInput {
  Name: String!
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
}

input AwsKendraS1hSalesforceConfigurationChatterFeedConfigurationInput {
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
  IncludeFilterTypes: [String]
}

input AwsKendraS1hSalesforceConfigurationStandardObjectAttachmentConfigurationInput {
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
}

input AwsKendraS1hOneDriveConfigurationInput {
  TenantDomain: String!
  SecretArn: String!
  OneDriveUsers: AwsKendraS1hOneDriveConfigurationOneDriveUsersInput!
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  FieldMappings: [AwsKendraS1yInput]
  DisableLocalGroups: Boolean
}

input AwsKendraS1hOneDriveConfigurationOneDriveUsersInput {
  OneDriveUserList: [String]
  OneDriveUserS3Path: AwsKendraS11Input
}

input AwsKendraS1hServiceNowConfigurationInput {
  HostUrl: String!
  SecretArn: String!
  ServiceNowBuildVersion: String!
  KnowledgeArticleConfiguration: AwsKendraS1hServiceNowConfigurationKnowledgeArticleConfigurationInput
  ServiceCatalogConfiguration: AwsKendraS1hServiceNowConfigurationServiceCatalogConfigurationInput
  AuthenticationType: String
}

input AwsKendraS1hServiceNowConfigurationKnowledgeArticleConfigurationInput {
  CrawlAttachments: Boolean
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
  FilterQuery: String
}

input AwsKendraS1hServiceNowConfigurationServiceCatalogConfigurationInput {
  CrawlAttachments: Boolean
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1yInput]
}

input AwsKendraS1hConfluenceConfigurationInput {
  ServerUrl: String!
  SecretArn: String!
  Version: String!
  SpaceConfiguration: AwsKendraS1hConfluenceConfigurationSpaceConfigurationInput
  PageConfiguration: AwsKendraS1hConfluenceConfigurationPageConfigurationInput
  BlogConfiguration: AwsKendraS1hConfluenceConfigurationBlogConfigurationInput
  AttachmentConfiguration: AwsKendraS1hConfluenceConfigurationAttachmentConfigurationInput
  VpcConfiguration: AwsKendraS1tInput
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
}

input AwsKendraS1hConfluenceConfigurationSpaceConfigurationInput {
  CrawlPersonalSpaces: Boolean
  CrawlArchivedSpaces: Boolean
  IncludeSpaces: [String]
  ExcludeSpaces: [String]
  SpaceFieldMappings: [AwsKendraS1hConfluenceConfigurationSpaceConfigurationSpaceFieldMappingsInput]
}

input AwsKendraS1hConfluenceConfigurationSpaceConfigurationSpaceFieldMappingsInput {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

input AwsKendraS1hConfluenceConfigurationPageConfigurationInput {
  PageFieldMappings: [AwsKendraS1hConfluenceConfigurationPageConfigurationPageFieldMappingsInput]
}

input AwsKendraS1hConfluenceConfigurationPageConfigurationPageFieldMappingsInput {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

input AwsKendraS1hConfluenceConfigurationBlogConfigurationInput {
  BlogFieldMappings: [AwsKendraS1hConfluenceConfigurationBlogConfigurationBlogFieldMappingsInput]
}

input AwsKendraS1hConfluenceConfigurationBlogConfigurationBlogFieldMappingsInput {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

input AwsKendraS1hConfluenceConfigurationAttachmentConfigurationInput {
  CrawlAttachments: Boolean
  AttachmentFieldMappings: [AwsKendraS1hConfluenceConfigurationAttachmentConfigurationAttachmentFieldMappingsInput]
}

input AwsKendraS1hConfluenceConfigurationAttachmentConfigurationAttachmentFieldMappingsInput {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

input AwsKendraS1hGoogleDriveConfigurationInput {
  SecretArn: String!
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  FieldMappings: [AwsKendraS1yInput]
  ExcludeMimeTypes: [String]
  ExcludeUserAccounts: [String]
  ExcludeSharedDrives: [String]
}

input AwsKendraS1hWebCrawlerConfigurationInput {
  Urls: AwsKendraS1hWebCrawlerConfigurationUrlsInput!
  CrawlDepth: Int
  MaxLinksPerPage: Int
  MaxContentSizePerPageInMegaBytes: Float
  MaxUrlsPerMinuteCrawlRate: Int
  UrlInclusionPatterns: [String]
  UrlExclusionPatterns: [String]
  ProxyConfiguration: AwsKendraS1hWebCrawlerConfigurationProxyConfigurationInput
  AuthenticationConfiguration: AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationInput
}

input AwsKendraS1hWebCrawlerConfigurationUrlsInput {
  SeedUrlConfiguration: AwsKendraS1hWebCrawlerConfigurationUrlsSeedUrlConfigurationInput
  SiteMapsConfiguration: AwsKendraS1hWebCrawlerConfigurationUrlsSiteMapsConfigurationInput
}

input AwsKendraS1hWebCrawlerConfigurationUrlsSeedUrlConfigurationInput {
  SeedUrls: [String]!
  WebCrawlerMode: String
}

input AwsKendraS1hWebCrawlerConfigurationUrlsSiteMapsConfigurationInput {
  SiteMaps: [String]!
}

input AwsKendraS1hWebCrawlerConfigurationProxyConfigurationInput {
  Host: String!
  Port: Int!
  Credentials: String
}

input AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationInput {
  BasicAuthentication: [AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationInput]
}

input AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationInput {
  Host: String!
  Port: Int!
  Credentials: String!
}

input AwsKendraS4jInput {
  Key: String!
  Value: String!
}

type AwsKendraCreateFaqOutput {
  Id: String
}

input AwsKendraCreateFaqInput {
  IndexId: String!
  Name: String!
  Description: String
  S3Path: AwsKendraS11Input!
  RoleArn: String!
  Tags: [AwsKendraS4jInput]
  FileFormat: String
  ClientToken: String
}

type AwsKendraCreateIndexOutput {
  Id: String
}

input AwsKendraCreateIndexInput {
  Name: String!
  Edition: String
  RoleArn: String!
  ServerSideEncryptionConfiguration: AwsKendraS4xInput
  Description: String
  ClientToken: String
  Tags: [AwsKendraS4jInput]
  UserTokenConfigurations: [AwsKendraS4zInput]
  UserContextPolicy: String
}

input AwsKendraS4xInput {
  KmsKeyId: String
}

input AwsKendraS4zInput {
  JwtTokenTypeConfiguration: AwsKendraS4zJwtTokenTypeConfigurationInput
  JsonTokenTypeConfiguration: AwsKendraS4zJsonTokenTypeConfigurationInput
}

input AwsKendraS4zJwtTokenTypeConfigurationInput {
  KeyLocation: String!
  URL: String
  SecretManagerArn: String
  UserNameAttributeField: String
  GroupAttributeField: String
  Issuer: String
  ClaimRegex: String
}

input AwsKendraS4zJsonTokenTypeConfigurationInput {
  UserNameAttributeField: String!
  GroupAttributeField: String!
}

type AwsKendraCreateQuerySuggestionsBlockListOutput {
  Id: String
}

input AwsKendraCreateQuerySuggestionsBlockListInput {
  IndexId: String!
  Name: String!
  Description: String
  SourceS3Path: AwsKendraS11Input!
  ClientToken: String
  RoleArn: String!
  Tags: [AwsKendraS4jInput]
}

type AwsKendraCreateThesaurusOutput {
  Id: String
}

input AwsKendraCreateThesaurusInput {
  IndexId: String!
  Name: String!
  Description: String
  RoleArn: String!
  Tags: [AwsKendraS4jInput]
  SourceS3Path: AwsKendraS11Input!
  ClientToken: String
}

input AwsKendraDeleteDataSourceInput {
  Id: String!
  IndexId: String!
}

input AwsKendraDeleteFaqInput {
  Id: String!
  IndexId: String!
}

input AwsKendraDeleteIndexInput {
  Id: String!
}

input AwsKendraDeleteQuerySuggestionsBlockListInput {
  IndexId: String!
  Id: String!
}

input AwsKendraDeleteThesaurusInput {
  Id: String!
  IndexId: String!
}

type AwsKendraDescribeDataSourceOutput {
  Id: String
  IndexId: String
  Name: String
  Type: String
  Configuration: AwsKendraS1h
  CreatedAt: Date
  UpdatedAt: Date
  Description: String
  Status: String
  Schedule: String
  RoleArn: String
  ErrorMessage: String
}

type AwsKendraS1h {
  S3Configuration: AwsKendraS1hS3Configuration
  SharePointConfiguration: AwsKendraS1hSharePointConfiguration
  DatabaseConfiguration: AwsKendraS1hDatabaseConfiguration
  SalesforceConfiguration: AwsKendraS1hSalesforceConfiguration
  OneDriveConfiguration: AwsKendraS1hOneDriveConfiguration
  ServiceNowConfiguration: AwsKendraS1hServiceNowConfiguration
  ConfluenceConfiguration: AwsKendraS1hConfluenceConfiguration
  GoogleDriveConfiguration: AwsKendraS1hGoogleDriveConfiguration
  WebCrawlerConfiguration: AwsKendraS1hWebCrawlerConfiguration
}

type AwsKendraS1hS3Configuration {
  BucketName: String!
  InclusionPrefixes: [String]
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  DocumentsMetadataConfiguration: AwsKendraS1hS3ConfigurationDocumentsMetadataConfiguration
  AccessControlListConfiguration: AwsKendraS1hS3ConfigurationAccessControlListConfiguration
}

type AwsKendraS1hS3ConfigurationDocumentsMetadataConfiguration {
  S3Prefix: String
}

type AwsKendraS1hS3ConfigurationAccessControlListConfiguration {
  KeyPath: String
}

type AwsKendraS1hSharePointConfiguration {
  SharePointVersion: String!
  Urls: [String]!
  SecretArn: String!
  CrawlAttachments: Boolean
  UseChangeLog: Boolean
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  VpcConfiguration: AwsKendraS1t
  FieldMappings: [AwsKendraS1y]
  DocumentTitleFieldName: String
  DisableLocalGroups: Boolean
  SslCertificateS3Path: AwsKendraS11
}

type AwsKendraS1t {
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
}

type AwsKendraS1y {
  DataSourceFieldName: String!
  DateFieldFormat: String
  IndexFieldName: String!
}

type AwsKendraS11 {
  Bucket: String!
  Key: String!
}

type AwsKendraS1hDatabaseConfiguration {
  DatabaseEngineType: String!
  ConnectionConfiguration: AwsKendraS1hDatabaseConfigurationConnectionConfiguration!
  VpcConfiguration: AwsKendraS1t
  ColumnConfiguration: AwsKendraS1hDatabaseConfigurationColumnConfiguration!
  AclConfiguration: AwsKendraS1hDatabaseConfigurationAclConfiguration
  SqlConfiguration: AwsKendraS1hDatabaseConfigurationSqlConfiguration
}

type AwsKendraS1hDatabaseConfigurationConnectionConfiguration {
  DatabaseHost: String!
  DatabasePort: Int!
  DatabaseName: String!
  TableName: String!
  SecretArn: String!
}

type AwsKendraS1hDatabaseConfigurationColumnConfiguration {
  DocumentIdColumnName: String!
  DocumentDataColumnName: String!
  DocumentTitleColumnName: String
  FieldMappings: [AwsKendraS1y]
  ChangeDetectingColumns: [String]!
}

type AwsKendraS1hDatabaseConfigurationAclConfiguration {
  AllowedGroupsColumnName: String!
}

type AwsKendraS1hDatabaseConfigurationSqlConfiguration {
  QueryIdentifiersEnclosingOption: String
}

type AwsKendraS1hSalesforceConfiguration {
  ServerUrl: String!
  SecretArn: String!
  StandardObjectConfigurations: [AwsKendraS1hSalesforceConfigurationStandardObjectConfigurations]
  KnowledgeArticleConfiguration: AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfiguration
  ChatterFeedConfiguration: AwsKendraS1hSalesforceConfigurationChatterFeedConfiguration
  CrawlAttachments: Boolean
  StandardObjectAttachmentConfiguration: AwsKendraS1hSalesforceConfigurationStandardObjectAttachmentConfiguration
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
}

type AwsKendraS1hSalesforceConfigurationStandardObjectConfigurations {
  Name: String!
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
}

type AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfiguration {
  IncludedStates: [String]!
  StandardKnowledgeArticleTypeConfiguration: AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationStandardKnowledgeArticleTypeConfiguration
  CustomKnowledgeArticleTypeConfigurations: [AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationCustomKnowledgeArticleTypeConfigurations]
}

type AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationStandardKnowledgeArticleTypeConfiguration {
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
}

type AwsKendraS1hSalesforceConfigurationKnowledgeArticleConfigurationCustomKnowledgeArticleTypeConfigurations {
  Name: String!
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
}

type AwsKendraS1hSalesforceConfigurationChatterFeedConfiguration {
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
  IncludeFilterTypes: [String]
}

type AwsKendraS1hSalesforceConfigurationStandardObjectAttachmentConfiguration {
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
}

type AwsKendraS1hOneDriveConfiguration {
  TenantDomain: String!
  SecretArn: String!
  OneDriveUsers: AwsKendraS1hOneDriveConfigurationOneDriveUsers!
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  FieldMappings: [AwsKendraS1y]
  DisableLocalGroups: Boolean
}

type AwsKendraS1hOneDriveConfigurationOneDriveUsers {
  OneDriveUserList: [String]
  OneDriveUserS3Path: AwsKendraS11
}

type AwsKendraS1hServiceNowConfiguration {
  HostUrl: String!
  SecretArn: String!
  ServiceNowBuildVersion: String!
  KnowledgeArticleConfiguration: AwsKendraS1hServiceNowConfigurationKnowledgeArticleConfiguration
  ServiceCatalogConfiguration: AwsKendraS1hServiceNowConfigurationServiceCatalogConfiguration
  AuthenticationType: String
}

type AwsKendraS1hServiceNowConfigurationKnowledgeArticleConfiguration {
  CrawlAttachments: Boolean
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
  FilterQuery: String
}

type AwsKendraS1hServiceNowConfigurationServiceCatalogConfiguration {
  CrawlAttachments: Boolean
  IncludeAttachmentFilePatterns: [String]
  ExcludeAttachmentFilePatterns: [String]
  DocumentDataFieldName: String!
  DocumentTitleFieldName: String
  FieldMappings: [AwsKendraS1y]
}

type AwsKendraS1hConfluenceConfiguration {
  ServerUrl: String!
  SecretArn: String!
  Version: String!
  SpaceConfiguration: AwsKendraS1hConfluenceConfigurationSpaceConfiguration
  PageConfiguration: AwsKendraS1hConfluenceConfigurationPageConfiguration
  BlogConfiguration: AwsKendraS1hConfluenceConfigurationBlogConfiguration
  AttachmentConfiguration: AwsKendraS1hConfluenceConfigurationAttachmentConfiguration
  VpcConfiguration: AwsKendraS1t
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
}

type AwsKendraS1hConfluenceConfigurationSpaceConfiguration {
  CrawlPersonalSpaces: Boolean
  CrawlArchivedSpaces: Boolean
  IncludeSpaces: [String]
  ExcludeSpaces: [String]
  SpaceFieldMappings: [AwsKendraS1hConfluenceConfigurationSpaceConfigurationSpaceFieldMappings]
}

type AwsKendraS1hConfluenceConfigurationSpaceConfigurationSpaceFieldMappings {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

type AwsKendraS1hConfluenceConfigurationPageConfiguration {
  PageFieldMappings: [AwsKendraS1hConfluenceConfigurationPageConfigurationPageFieldMappings]
}

type AwsKendraS1hConfluenceConfigurationPageConfigurationPageFieldMappings {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

type AwsKendraS1hConfluenceConfigurationBlogConfiguration {
  BlogFieldMappings: [AwsKendraS1hConfluenceConfigurationBlogConfigurationBlogFieldMappings]
}

type AwsKendraS1hConfluenceConfigurationBlogConfigurationBlogFieldMappings {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

type AwsKendraS1hConfluenceConfigurationAttachmentConfiguration {
  CrawlAttachments: Boolean
  AttachmentFieldMappings: [AwsKendraS1hConfluenceConfigurationAttachmentConfigurationAttachmentFieldMappings]
}

type AwsKendraS1hConfluenceConfigurationAttachmentConfigurationAttachmentFieldMappings {
  DataSourceFieldName: String
  DateFieldFormat: String
  IndexFieldName: String
}

type AwsKendraS1hGoogleDriveConfiguration {
  SecretArn: String!
  InclusionPatterns: [String]
  ExclusionPatterns: [String]
  FieldMappings: [AwsKendraS1y]
  ExcludeMimeTypes: [String]
  ExcludeUserAccounts: [String]
  ExcludeSharedDrives: [String]
}

type AwsKendraS1hWebCrawlerConfiguration {
  Urls: AwsKendraS1hWebCrawlerConfigurationUrls!
  CrawlDepth: Int
  MaxLinksPerPage: Int
  MaxContentSizePerPageInMegaBytes: Float
  MaxUrlsPerMinuteCrawlRate: Int
  UrlInclusionPatterns: [String]
  UrlExclusionPatterns: [String]
  ProxyConfiguration: AwsKendraS1hWebCrawlerConfigurationProxyConfiguration
  AuthenticationConfiguration: AwsKendraS1hWebCrawlerConfigurationAuthenticationConfiguration
}

type AwsKendraS1hWebCrawlerConfigurationUrls {
  SeedUrlConfiguration: AwsKendraS1hWebCrawlerConfigurationUrlsSeedUrlConfiguration
  SiteMapsConfiguration: AwsKendraS1hWebCrawlerConfigurationUrlsSiteMapsConfiguration
}

type AwsKendraS1hWebCrawlerConfigurationUrlsSeedUrlConfiguration {
  SeedUrls: [String]!
  WebCrawlerMode: String
}

type AwsKendraS1hWebCrawlerConfigurationUrlsSiteMapsConfiguration {
  SiteMaps: [String]!
}

type AwsKendraS1hWebCrawlerConfigurationProxyConfiguration {
  Host: String!
  Port: Int!
  Credentials: String
}

type AwsKendraS1hWebCrawlerConfigurationAuthenticationConfiguration {
  BasicAuthentication: [AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationBasicAuthentication]
}

type AwsKendraS1hWebCrawlerConfigurationAuthenticationConfigurationBasicAuthentication {
  Host: String!
  Port: Int!
  Credentials: String!
}

input AwsKendraDescribeDataSourceInput {
  Id: String!
  IndexId: String!
}

type AwsKendraDescribeFaqOutput {
  Id: String
  IndexId: String
  Name: String
  Description: String
  CreatedAt: Date
  UpdatedAt: Date
  S3Path: AwsKendraS11
  Status: String
  RoleArn: String
  ErrorMessage: String
  FileFormat: String
}

input AwsKendraDescribeFaqInput {
  Id: String!
  IndexId: String!
}

type AwsKendraDescribeIndexOutput {
  Name: String
  Id: String
  Edition: String
  RoleArn: String
  ServerSideEncryptionConfiguration: AwsKendraS4x
  Status: String
  Description: String
  CreatedAt: Date
  UpdatedAt: Date
  DocumentMetadataConfigurations: [AwsKendraS5w]
  IndexStatistics: AwsKendraDescribeIndexOutputIndexStatistics
  ErrorMessage: String
  CapacityUnits: AwsKendraS6e
  UserTokenConfigurations: [AwsKendraS4z]
  UserContextPolicy: String
}

type AwsKendraS4x {
  KmsKeyId: String
}

type AwsKendraS5w {
  Name: String!
  Type: String!
  Relevance: AwsKendraS60
  Search: AwsKendraS5wSearch
}

type AwsKendraS60 {
  Freshness: Boolean
  Importance: Int
  Duration: String
  RankOrder: String
  ValueImportanceMap: JSON
}

type AwsKendraS5wSearch {
  Facetable: Boolean
  Searchable: Boolean
  Displayable: Boolean
  Sortable: Boolean
}

type AwsKendraDescribeIndexOutputIndexStatistics {
  FaqStatistics: AwsKendraDescribeIndexOutputIndexStatisticsFaqStatistics!
  TextDocumentStatistics: AwsKendraDescribeIndexOutputIndexStatisticsTextDocumentStatistics!
}

type AwsKendraDescribeIndexOutputIndexStatisticsFaqStatistics {
  IndexedQuestionAnswersCount: Int!
}

type AwsKendraDescribeIndexOutputIndexStatisticsTextDocumentStatistics {
  IndexedTextDocumentsCount: Int!
  IndexedTextBytes: JSON!
}

type AwsKendraS6e {
  StorageCapacityUnits: Int!
  QueryCapacityUnits: Int!
}

type AwsKendraS4z {
  JwtTokenTypeConfiguration: AwsKendraS4zJwtTokenTypeConfiguration
  JsonTokenTypeConfiguration: AwsKendraS4zJsonTokenTypeConfiguration
}

type AwsKendraS4zJwtTokenTypeConfiguration {
  KeyLocation: String!
  URL: String
  SecretManagerArn: String
  UserNameAttributeField: String
  GroupAttributeField: String
  Issuer: String
  ClaimRegex: String
}

type AwsKendraS4zJsonTokenTypeConfiguration {
  UserNameAttributeField: String!
  GroupAttributeField: String!
}

input AwsKendraDescribeIndexInput {
  Id: String!
}

type AwsKendraDescribeQuerySuggestionsBlockListOutput {
  IndexId: String
  Id: String
  Name: String
  Description: String
  Status: String
  ErrorMessage: String
  CreatedAt: Date
  UpdatedAt: Date
  SourceS3Path: AwsKendraS11
  ItemCount: Int
  FileSizeBytes: JSON
  RoleArn: String
}

input AwsKendraDescribeQuerySuggestionsBlockListInput {
  IndexId: String!
  Id: String!
}

type AwsKendraDescribeQuerySuggestionsConfigOutput {
  Mode: String
  Status: String
  QueryLogLookBackWindowInDays: Int
  IncludeQueriesWithoutUserInformation: Boolean
  MinimumNumberOfQueryingUsers: Int
  MinimumQueryCount: Int
  LastSuggestionsBuildTime: Date
  LastClearTime: Date
  TotalSuggestionsCount: Int
}

input AwsKendraDescribeQuerySuggestionsConfigInput {
  IndexId: String!
}

type AwsKendraDescribeThesaurusOutput {
  Id: String
  IndexId: String
  Name: String
  Description: String
  Status: String
  ErrorMessage: String
  CreatedAt: Date
  UpdatedAt: Date
  RoleArn: String
  SourceS3Path: AwsKendraS11
  FileSizeBytes: JSON
  TermCount: JSON
  SynonymRuleCount: JSON
}

input AwsKendraDescribeThesaurusInput {
  Id: String!
  IndexId: String!
}

type AwsKendraGetQuerySuggestionsOutput {
  QuerySuggestionsId: String
  Suggestions: [AwsKendraGetQuerySuggestionsOutputSuggestions]
}

type AwsKendraGetQuerySuggestionsOutputSuggestions {
  Id: String
  Value: AwsKendraGetQuerySuggestionsOutputSuggestionsValue
}

type AwsKendraGetQuerySuggestionsOutputSuggestionsValue {
  Text: AwsKendraGetQuerySuggestionsOutputSuggestionsValueText
}

type AwsKendraGetQuerySuggestionsOutputSuggestionsValueText {
  Text: String
  Highlights: [AwsKendraGetQuerySuggestionsOutputSuggestionsValueTextHighlights]
}

type AwsKendraGetQuerySuggestionsOutputSuggestionsValueTextHighlights {
  BeginOffset: Int
  EndOffset: Int
}

input AwsKendraGetQuerySuggestionsInput {
  IndexId: String!
  QueryText: String!
  MaxSuggestionsCount: Int
}

type AwsKendraListDataSourceSyncJobsOutput {
  History: [AwsKendraListDataSourceSyncJobsOutputHistory]
  NextToken: String
}

type AwsKendraListDataSourceSyncJobsOutputHistory {
  ExecutionId: String
  StartTime: Date
  EndTime: Date
  Status: String
  ErrorMessage: String
  ErrorCode: String
  DataSourceErrorCode: String
  Metrics: AwsKendraListDataSourceSyncJobsOutputHistoryMetrics
}

type AwsKendraListDataSourceSyncJobsOutputHistoryMetrics {
  DocumentsAdded: String
  DocumentsModified: String
  DocumentsDeleted: String
  DocumentsFailed: String
  DocumentsScanned: String
}

input AwsKendraListDataSourceSyncJobsInput {
  Id: String!
  IndexId: String!
  NextToken: String
  MaxResults: Int
  StartTimeFilter: AwsKendraListDataSourceSyncJobsStartTimeFilterInput
  StatusFilter: String
}

input AwsKendraListDataSourceSyncJobsStartTimeFilterInput {
  StartTime: Date
  EndTime: Date
}

type AwsKendraListDataSourcesOutput {
  SummaryItems: [AwsKendraListDataSourcesOutputSummaryItems]
  NextToken: String
}

type AwsKendraListDataSourcesOutputSummaryItems {
  Name: String
  Id: String
  Type: String
  CreatedAt: Date
  UpdatedAt: Date
  Status: String
}

input AwsKendraListDataSourcesInput {
  IndexId: String!
  NextToken: String
  MaxResults: Int
}

type AwsKendraListFaqsOutput {
  NextToken: String
  FaqSummaryItems: [AwsKendraListFaqsOutputFaqSummaryItems]
}

type AwsKendraListFaqsOutputFaqSummaryItems {
  Id: String
  Name: String
  Status: String
  CreatedAt: Date
  UpdatedAt: Date
  FileFormat: String
}

input AwsKendraListFaqsInput {
  IndexId: String!
  NextToken: String
  MaxResults: Int
}

type AwsKendraListIndicesOutput {
  IndexConfigurationSummaryItems: [AwsKendraListIndicesOutputIndexConfigurationSummaryItems]
  NextToken: String
}

type AwsKendraListIndicesOutputIndexConfigurationSummaryItems {
  Name: String
  Id: String
  Edition: String
  CreatedAt: Date!
  UpdatedAt: Date!
  Status: String!
}

input AwsKendraListIndicesInput {
  NextToken: String
  MaxResults: Int
}

type AwsKendraListQuerySuggestionsBlockListsOutput {
  BlockListSummaryItems: [AwsKendraListQuerySuggestionsBlockListsOutputBlockListSummaryItems]
  NextToken: String
}

type AwsKendraListQuerySuggestionsBlockListsOutputBlockListSummaryItems {
  Id: String
  Name: String
  Status: String
  CreatedAt: Date
  UpdatedAt: Date
  ItemCount: Int
}

input AwsKendraListQuerySuggestionsBlockListsInput {
  IndexId: String!
  NextToken: String
  MaxResults: Int
}

type AwsKendraListTagsForResourceOutput {
  Tags: [AwsKendraS4j]
}

type AwsKendraS4j {
  Key: String!
  Value: String!
}

input AwsKendraListTagsForResourceInput {
  ResourceARN: String!
}

type AwsKendraListThesauriOutput {
  NextToken: String
  ThesaurusSummaryItems: [AwsKendraListThesauriOutputThesaurusSummaryItems]
}

type AwsKendraListThesauriOutputThesaurusSummaryItems {
  Id: String
  Name: String
  Status: String
  CreatedAt: Date
  UpdatedAt: Date
}

input AwsKendraListThesauriInput {
  IndexId: String!
  NextToken: String
  MaxResults: Int
}

type AwsKendraQueryOutput {
  QueryId: String
  ResultItems: [AwsKendraQueryOutputResultItems]
  FacetResults: [AwsKendraQueryOutputFacetResults]
  TotalNumberOfResults: Int
}

type AwsKendraQueryOutputResultItems {
  Id: String
  Type: String
  AdditionalAttributes: [AwsKendraQueryOutputResultItemsAdditionalAttributes]
  DocumentId: String
  DocumentTitle: AwsKendraS8v
  DocumentExcerpt: AwsKendraS8v
  DocumentURI: String
  DocumentAttributes: [AwsKendraSh]
  ScoreAttributes: AwsKendraQueryOutputResultItemsScoreAttributes
  FeedbackToken: String
}

type AwsKendraQueryOutputResultItemsAdditionalAttributes {
  Key: String!
  ValueType: String!
  Value: AwsKendraQueryOutputResultItemsAdditionalAttributesValue!
}

type AwsKendraQueryOutputResultItemsAdditionalAttributesValue {
  TextWithHighlightsValue: AwsKendraS8v
}

type AwsKendraS8v {
  Text: String
  Highlights: [AwsKendraS8vHighlights]
}

type AwsKendraS8vHighlights {
  BeginOffset: Int!
  EndOffset: Int!
  TopAnswer: Boolean
  Type: String
}

type AwsKendraSh {
  Key: String!
  Value: AwsKendraSj!
}

type AwsKendraSj {
  StringValue: String
  StringListValue: [String]
  LongValue: JSON
  DateValue: Date
}

type AwsKendraQueryOutputResultItemsScoreAttributes {
  ScoreConfidence: String
}

type AwsKendraQueryOutputFacetResults {
  DocumentAttributeKey: String
  DocumentAttributeValueType: String
  DocumentAttributeValueCountPairs: [AwsKendraQueryOutputFacetResultsDocumentAttributeValueCountPairs]
}

type AwsKendraQueryOutputFacetResultsDocumentAttributeValueCountPairs {
  DocumentAttributeValue: AwsKendraSj
  Count: Int
}

input AwsKendraQueryInput {
  IndexId: String!
  QueryText: String!
  AttributeFilter: AwsKendraS8aInput
  Facets: [AwsKendraQueryFacetsInput]
  RequestedDocumentAttributes: [String]
  QueryResultTypeFilter: String
  DocumentRelevanceOverrideConfigurations: [AwsKendraQueryDocumentRelevanceOverrideConfigurationsInput]
  PageNumber: Int
  PageSize: Int
  SortingConfiguration: AwsKendraQuerySortingConfigurationInput
  UserContext: AwsKendraQueryUserContextInput
  VisitorId: String
}

input AwsKendraS8aInput {
  AndAllFilters: [JSON]
  OrAllFilters: [JSON]
  NotFilter: JSON
  EqualsTo: AwsKendraShInput
  ContainsAll: AwsKendraShInput
  ContainsAny: AwsKendraShInput
  GreaterThan: AwsKendraShInput
  GreaterThanOrEquals: AwsKendraShInput
  LessThan: AwsKendraShInput
  LessThanOrEquals: AwsKendraShInput
}

input AwsKendraQueryFacetsInput {
  DocumentAttributeKey: String
}

input AwsKendraQueryDocumentRelevanceOverrideConfigurationsInput {
  Name: String!
  Relevance: AwsKendraS60Input!
}

input AwsKendraS60Input {
  Freshness: Boolean
  Importance: Int
  Duration: String
  RankOrder: String
  ValueImportanceMap: JSON
}

input AwsKendraQuerySortingConfigurationInput {
  DocumentAttributeKey: String!
  SortOrder: String!
}

input AwsKendraQueryUserContextInput {
  Token: String
}

type AwsKendraStartDataSourceSyncJobOutput {
  ExecutionId: String
}

input AwsKendraStartDataSourceSyncJobInput {
  Id: String!
  IndexId: String!
}

input AwsKendraStopDataSourceSyncJobInput {
  Id: String!
  IndexId: String!
}

input AwsKendraSubmitFeedbackInput {
  IndexId: String!
  QueryId: String!
  ClickFeedbackItems: [AwsKendraSubmitFeedbackClickFeedbackItemsInput]
  RelevanceFeedbackItems: [AwsKendraSubmitFeedbackRelevanceFeedbackItemsInput]
}

input AwsKendraSubmitFeedbackClickFeedbackItemsInput {
  ResultId: String!
  ClickTime: Date!
}

input AwsKendraSubmitFeedbackRelevanceFeedbackItemsInput {
  ResultId: String!
  RelevanceValue: String!
}

input AwsKendraTagResourceInput {
  ResourceARN: String!
  Tags: [AwsKendraS4jInput]!
}

input AwsKendraUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsKendraUpdateDataSourceInput {
  Id: String!
  Name: String
  IndexId: String!
  Configuration: AwsKendraS1hInput
  Description: String
  Schedule: String
  RoleArn: String
}

input AwsKendraUpdateIndexInput {
  Id: String!
  Name: String
  RoleArn: String
  Description: String
  DocumentMetadataConfigurationUpdates: [AwsKendraS5wInput]
  CapacityUnits: AwsKendraS6eInput
  UserTokenConfigurations: [AwsKendraS4zInput]
  UserContextPolicy: String
}

input AwsKendraS5wInput {
  Name: String!
  Type: String!
  Relevance: AwsKendraS60Input
  Search: AwsKendraS5wSearchInput
}

input AwsKendraS5wSearchInput {
  Facetable: Boolean
  Searchable: Boolean
  Displayable: Boolean
  Sortable: Boolean
}

input AwsKendraS6eInput {
  StorageCapacityUnits: Int!
  QueryCapacityUnits: Int!
}

input AwsKendraUpdateQuerySuggestionsBlockListInput {
  IndexId: String!
  Id: String!
  Name: String
  Description: String
  SourceS3Path: AwsKendraS11Input
  RoleArn: String
}

input AwsKendraUpdateQuerySuggestionsConfigInput {
  IndexId: String!
  Mode: String
  QueryLogLookBackWindowInDays: Int
  IncludeQueriesWithoutUserInformation: Boolean
  MinimumNumberOfQueryingUsers: Int
  MinimumQueryCount: Int
}

input AwsKendraUpdateThesaurusInput {
  Id: String!
  Name: String
  IndexId: String!
  Description: String
  RoleArn: String
  SourceS3Path: AwsKendraS11Input
}

"""Amazon Kinesis (2013-12-02)"""
type AwsKinesis {
  addTagsToStream(input: AwsKinesisAddTagsToStreamInput!, config: AwsConfig): JSON
  createStream(input: AwsKinesisCreateStreamInput!, config: AwsConfig): JSON
  decreaseStreamRetentionPeriod(input: AwsKinesisDecreaseStreamRetentionPeriodInput!, config: AwsConfig): JSON
  deleteStream(input: AwsKinesisDeleteStreamInput!, config: AwsConfig): JSON
  deregisterStreamConsumer(input: AwsKinesisDeregisterStreamConsumerInput, config: AwsConfig): JSON
  describeLimits(input: JSON, config: AwsConfig): AwsKinesisDescribeLimitsOutput
  describeStream(input: AwsKinesisDescribeStreamInput!, config: AwsConfig): AwsKinesisDescribeStreamOutput
  describeStreamConsumer(input: AwsKinesisDescribeStreamConsumerInput, config: AwsConfig): AwsKinesisDescribeStreamConsumerOutput
  describeStreamSummary(input: AwsKinesisDescribeStreamSummaryInput!, config: AwsConfig): AwsKinesisDescribeStreamSummaryOutput
  disableEnhancedMonitoring(input: AwsKinesisDisableEnhancedMonitoringInput!, config: AwsConfig): JSON
  enableEnhancedMonitoring(input: AwsKinesisEnableEnhancedMonitoringInput!, config: AwsConfig): JSON
  getRecords(input: AwsKinesisGetRecordsInput!, config: AwsConfig): AwsKinesisGetRecordsOutput
  getShardIterator(input: AwsKinesisGetShardIteratorInput!, config: AwsConfig): AwsKinesisGetShardIteratorOutput
  increaseStreamRetentionPeriod(input: AwsKinesisIncreaseStreamRetentionPeriodInput!, config: AwsConfig): JSON
  listShards(input: AwsKinesisListShardsInput, config: AwsConfig): AwsKinesisListShardsOutput
  listStreamConsumers(input: AwsKinesisListStreamConsumersInput!, config: AwsConfig): AwsKinesisListStreamConsumersOutput
  listStreams(input: AwsKinesisListStreamsInput, config: AwsConfig): AwsKinesisListStreamsOutput
  listTagsForStream(input: AwsKinesisListTagsForStreamInput!, config: AwsConfig): AwsKinesisListTagsForStreamOutput
  mergeShards(input: AwsKinesisMergeShardsInput!, config: AwsConfig): JSON
  putRecord(input: AwsKinesisPutRecordInput!, config: AwsConfig): AwsKinesisPutRecordOutput
  putRecords(input: AwsKinesisPutRecordsInput!, config: AwsConfig): AwsKinesisPutRecordsOutput
  registerStreamConsumer(input: AwsKinesisRegisterStreamConsumerInput!, config: AwsConfig): AwsKinesisRegisterStreamConsumerOutput
  removeTagsFromStream(input: AwsKinesisRemoveTagsFromStreamInput!, config: AwsConfig): JSON
  splitShard(input: AwsKinesisSplitShardInput!, config: AwsConfig): JSON
  startStreamEncryption(input: AwsKinesisStartStreamEncryptionInput!, config: AwsConfig): JSON
  stopStreamEncryption(input: AwsKinesisStopStreamEncryptionInput!, config: AwsConfig): JSON
  updateShardCount(input: AwsKinesisUpdateShardCountInput!, config: AwsConfig): AwsKinesisUpdateShardCountOutput
}

input AwsKinesisAddTagsToStreamInput {
  StreamName: String!
  Tags: JSON!
}

input AwsKinesisCreateStreamInput {
  StreamName: String!
  ShardCount: Int!
}

input AwsKinesisDecreaseStreamRetentionPeriodInput {
  StreamName: String!
  RetentionPeriodHours: Int!
}

input AwsKinesisDeleteStreamInput {
  StreamName: String!
  EnforceConsumerDeletion: Boolean
}

input AwsKinesisDeregisterStreamConsumerInput {
  StreamARN: String
  ConsumerName: String
  ConsumerARN: String
}

type AwsKinesisDescribeLimitsOutput {
  ShardLimit: Int!
  OpenShardCount: Int!
}

type AwsKinesisDescribeStreamOutput {
  StreamDescription: AwsKinesisDescribeStreamOutputStreamDescription!
}

type AwsKinesisDescribeStreamOutputStreamDescription {
  StreamName: String!
  StreamARN: String!
  StreamStatus: String!
  Shards: [AwsKinesisSp]!
  HasMoreShards: Boolean!
  RetentionPeriodHours: Int!
  StreamCreationTimestamp: Date!
  EnhancedMonitoring: [AwsKinesisSw]!
  EncryptionType: String
  KeyId: String
}

type AwsKinesisSp {
  ShardId: String!
  ParentShardId: String
  AdjacentParentShardId: String
  HashKeyRange: AwsKinesisSr!
  SequenceNumberRange: AwsKinesisSpSequenceNumberRange!
}

type AwsKinesisSr {
  StartingHashKey: String!
  EndingHashKey: String!
}

type AwsKinesisSpSequenceNumberRange {
  StartingSequenceNumber: String!
  EndingSequenceNumber: String
}

type AwsKinesisSw {
  ShardLevelMetrics: [String]
}

input AwsKinesisDescribeStreamInput {
  StreamName: String!
  Limit: Int
  ExclusiveStartShardId: String
}

type AwsKinesisDescribeStreamConsumerOutput {
  ConsumerDescription: AwsKinesisDescribeStreamConsumerOutputConsumerDescription!
}

type AwsKinesisDescribeStreamConsumerOutputConsumerDescription {
  ConsumerName: String!
  ConsumerARN: String!
  ConsumerStatus: String!
  ConsumerCreationTimestamp: Date!
  StreamARN: String!
}

input AwsKinesisDescribeStreamConsumerInput {
  StreamARN: String
  ConsumerName: String
  ConsumerARN: String
}

type AwsKinesisDescribeStreamSummaryOutput {
  StreamDescriptionSummary: AwsKinesisDescribeStreamSummaryOutputStreamDescriptionSummary!
}

type AwsKinesisDescribeStreamSummaryOutputStreamDescriptionSummary {
  StreamName: String!
  StreamARN: String!
  StreamStatus: String!
  RetentionPeriodHours: Int!
  StreamCreationTimestamp: Date!
  EnhancedMonitoring: [AwsKinesisSw]!
  EncryptionType: String
  KeyId: String
  OpenShardCount: Int!
  ConsumerCount: Int
}

input AwsKinesisDescribeStreamSummaryInput {
  StreamName: String!
}

input AwsKinesisDisableEnhancedMonitoringInput {
  StreamName: String!
  ShardLevelMetrics: [String]!
}

input AwsKinesisEnableEnhancedMonitoringInput {
  StreamName: String!
  ShardLevelMetrics: [String]!
}

type AwsKinesisGetRecordsOutput {
  Records: [AwsKinesisGetRecordsOutputRecords]!
  NextShardIterator: String
  MillisBehindLatest: JSON
  ChildShards: [AwsKinesisGetRecordsOutputChildShards]
}

type AwsKinesisGetRecordsOutputRecords {
  SequenceNumber: String!
  ApproximateArrivalTimestamp: Date
  Data: JSON!
  PartitionKey: String!
  EncryptionType: String
}

type AwsKinesisGetRecordsOutputChildShards {
  ShardId: String!
  ParentShards: [String]!
  HashKeyRange: AwsKinesisSr!
}

input AwsKinesisGetRecordsInput {
  ShardIterator: String!
  Limit: Int
}

type AwsKinesisGetShardIteratorOutput {
  ShardIterator: String
}

input AwsKinesisGetShardIteratorInput {
  StreamName: String!
  ShardId: String!
  ShardIteratorType: String!
  StartingSequenceNumber: String
  Timestamp: Date
}

input AwsKinesisIncreaseStreamRetentionPeriodInput {
  StreamName: String!
  RetentionPeriodHours: Int!
}

type AwsKinesisListShardsOutput {
  Shards: [AwsKinesisSp]
  NextToken: String
}

input AwsKinesisListShardsInput {
  StreamName: String
  NextToken: String
  ExclusiveStartShardId: String
  MaxResults: Int
  StreamCreationTimestamp: Date
  ShardFilter: AwsKinesisListShardsShardFilterInput
}

input AwsKinesisListShardsShardFilterInput {
  Type: String!
  ShardId: String
  Timestamp: Date
}

type AwsKinesisListStreamConsumersOutput {
  Consumers: [AwsKinesisS23]
  NextToken: String
}

type AwsKinesisS23 {
  ConsumerName: String!
  ConsumerARN: String!
  ConsumerStatus: String!
  ConsumerCreationTimestamp: Date!
}

input AwsKinesisListStreamConsumersInput {
  StreamARN: String!
  NextToken: String
  MaxResults: Int
  StreamCreationTimestamp: Date
}

type AwsKinesisListStreamsOutput {
  StreamNames: [String]!
  HasMoreStreams: Boolean!
}

input AwsKinesisListStreamsInput {
  Limit: Int
  ExclusiveStartStreamName: String
}

type AwsKinesisListTagsForStreamOutput {
  Tags: [AwsKinesisListTagsForStreamOutputTags]!
  HasMoreTags: Boolean!
}

type AwsKinesisListTagsForStreamOutputTags {
  Key: String!
  Value: String
}

input AwsKinesisListTagsForStreamInput {
  StreamName: String!
  ExclusiveStartTagKey: String
  Limit: Int
}

input AwsKinesisMergeShardsInput {
  StreamName: String!
  ShardToMerge: String!
  AdjacentShardToMerge: String!
}

type AwsKinesisPutRecordOutput {
  ShardId: String!
  SequenceNumber: String!
  EncryptionType: String
}

input AwsKinesisPutRecordInput {
  StreamName: String!
  Data: JSON!
  PartitionKey: String!
  ExplicitHashKey: String
  SequenceNumberForOrdering: String
}

type AwsKinesisPutRecordsOutput {
  FailedRecordCount: Int
  Records: [AwsKinesisPutRecordsOutputRecords]!
  EncryptionType: String
}

type AwsKinesisPutRecordsOutputRecords {
  SequenceNumber: String
  ShardId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsKinesisPutRecordsInput {
  Records: [AwsKinesisPutRecordsRecordsInput]!
  StreamName: String!
}

input AwsKinesisPutRecordsRecordsInput {
  Data: JSON!
  ExplicitHashKey: String
  PartitionKey: String!
}

type AwsKinesisRegisterStreamConsumerOutput {
  Consumer: AwsKinesisS23!
}

input AwsKinesisRegisterStreamConsumerInput {
  StreamARN: String!
  ConsumerName: String!
}

input AwsKinesisRemoveTagsFromStreamInput {
  StreamName: String!
  TagKeys: [String]!
}

input AwsKinesisSplitShardInput {
  StreamName: String!
  ShardToSplit: String!
  NewStartingHashKey: String!
}

input AwsKinesisStartStreamEncryptionInput {
  StreamName: String!
  EncryptionType: String!
  KeyId: String!
}

input AwsKinesisStopStreamEncryptionInput {
  StreamName: String!
  EncryptionType: String!
  KeyId: String!
}

type AwsKinesisUpdateShardCountOutput {
  StreamName: String
  CurrentShardCount: Int
  TargetShardCount: Int
}

input AwsKinesisUpdateShardCountInput {
  StreamName: String!
  TargetShardCount: Int!
  ScalingType: String!
}

"""Amazon Kinesis Analytics (2015-08-14)"""
type AwsKinesisAnalytics {
  addApplicationCloudWatchLoggingOption(input: AwsKinesisAnalyticsAddApplicationCloudWatchLoggingOptionInput!, config: AwsConfig): JSON
  addApplicationInput(input: AwsKinesisAnalyticsAddApplicationInputInput!, config: AwsConfig): JSON
  addApplicationInputProcessingConfiguration(input: AwsKinesisAnalyticsAddApplicationInputProcessingConfigurationInput!, config: AwsConfig): JSON
  addApplicationOutput(input: AwsKinesisAnalyticsAddApplicationOutputInput!, config: AwsConfig): JSON
  addApplicationReferenceDataSource(input: AwsKinesisAnalyticsAddApplicationReferenceDataSourceInput!, config: AwsConfig): JSON
  createApplication(input: AwsKinesisAnalyticsCreateApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsCreateApplicationOutput
  deleteApplication(input: AwsKinesisAnalyticsDeleteApplicationInput!, config: AwsConfig): JSON
  deleteApplicationCloudWatchLoggingOption(input: AwsKinesisAnalyticsDeleteApplicationCloudWatchLoggingOptionInput!, config: AwsConfig): JSON
  deleteApplicationInputProcessingConfiguration(input: AwsKinesisAnalyticsDeleteApplicationInputProcessingConfigurationInput!, config: AwsConfig): JSON
  deleteApplicationOutput(input: AwsKinesisAnalyticsDeleteApplicationOutputInput!, config: AwsConfig): JSON
  deleteApplicationReferenceDataSource(input: AwsKinesisAnalyticsDeleteApplicationReferenceDataSourceInput!, config: AwsConfig): JSON
  describeApplication(input: AwsKinesisAnalyticsDescribeApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsDescribeApplicationOutput
  discoverInputSchema(input: AwsKinesisAnalyticsDiscoverInputSchemaInput, config: AwsConfig): AwsKinesisAnalyticsDiscoverInputSchemaOutput
  listApplications(input: AwsKinesisAnalyticsListApplicationsInput, config: AwsConfig): AwsKinesisAnalyticsListApplicationsOutput
  listTagsForResource(input: AwsKinesisAnalyticsListTagsForResourceInput!, config: AwsConfig): AwsKinesisAnalyticsListTagsForResourceOutput
  startApplication(input: AwsKinesisAnalyticsStartApplicationInput!, config: AwsConfig): JSON
  stopApplication(input: AwsKinesisAnalyticsStopApplicationInput!, config: AwsConfig): JSON
  tagResource(input: AwsKinesisAnalyticsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsKinesisAnalyticsUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsKinesisAnalyticsUpdateApplicationInput!, config: AwsConfig): JSON
}

input AwsKinesisAnalyticsAddApplicationCloudWatchLoggingOptionInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  CloudWatchLoggingOption: AwsKinesisAnalyticsS4Input!
}

input AwsKinesisAnalyticsS4Input {
  LogStreamARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsAddApplicationInputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  Input: AwsKinesisAnalyticsS9Input!
}

input AwsKinesisAnalyticsS9Input {
  NamePrefix: String!
  InputProcessingConfiguration: AwsKinesisAnalyticsSbInput
  KinesisStreamsInput: AwsKinesisAnalyticsS9KinesisStreamsInputInput
  KinesisFirehoseInput: AwsKinesisAnalyticsS9KinesisFirehoseInputInput
  InputParallelism: AwsKinesisAnalyticsSgInput
  InputSchema: AwsKinesisAnalyticsSiInput!
}

input AwsKinesisAnalyticsSbInput {
  InputLambdaProcessor: AwsKinesisAnalyticsSbInputLambdaProcessorInput!
}

input AwsKinesisAnalyticsSbInputLambdaProcessorInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsS9KinesisStreamsInputInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsS9KinesisFirehoseInputInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsSgInput {
  Count: Int
}

input AwsKinesisAnalyticsSiInput {
  RecordFormat: AwsKinesisAnalyticsSjInput!
  RecordEncoding: String
  RecordColumns: [AwsKinesisAnalyticsSsInput]!
}

input AwsKinesisAnalyticsSjInput {
  RecordFormatType: String!
  MappingParameters: AwsKinesisAnalyticsSjMappingParametersInput
}

input AwsKinesisAnalyticsSjMappingParametersInput {
  JSONMappingParameters: AwsKinesisAnalyticsSjMappingParametersJSONMappingParametersInput
  CSVMappingParameters: AwsKinesisAnalyticsSjMappingParametersCSVMappingParametersInput
}

input AwsKinesisAnalyticsSjMappingParametersJSONMappingParametersInput {
  RecordRowPath: String!
}

input AwsKinesisAnalyticsSjMappingParametersCSVMappingParametersInput {
  RecordRowDelimiter: String!
  RecordColumnDelimiter: String!
}

input AwsKinesisAnalyticsSsInput {
  Name: String!
  Mapping: String
  SqlType: String!
}

input AwsKinesisAnalyticsAddApplicationInputProcessingConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  InputId: String!
  InputProcessingConfiguration: AwsKinesisAnalyticsSbInput!
}

input AwsKinesisAnalyticsAddApplicationOutputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  Output: AwsKinesisAnalyticsS12Input!
}

input AwsKinesisAnalyticsS12Input {
  Name: String!
  KinesisStreamsOutput: AwsKinesisAnalyticsS12KinesisStreamsOutputInput
  KinesisFirehoseOutput: AwsKinesisAnalyticsS12KinesisFirehoseOutputInput
  LambdaOutput: AwsKinesisAnalyticsS12LambdaOutputInput
  DestinationSchema: AwsKinesisAnalyticsS16Input!
}

input AwsKinesisAnalyticsS12KinesisStreamsOutputInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsS12KinesisFirehoseOutputInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsS12LambdaOutputInput {
  ResourceARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsS16Input {
  RecordFormatType: String!
}

input AwsKinesisAnalyticsAddApplicationReferenceDataSourceInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  ReferenceDataSource: AwsKinesisAnalyticsAddApplicationReferenceDataSourceReferenceDataSourceInput!
}

input AwsKinesisAnalyticsAddApplicationReferenceDataSourceReferenceDataSourceInput {
  TableName: String!
  S3ReferenceDataSource: AwsKinesisAnalyticsAddApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSourceInput
  ReferenceSchema: AwsKinesisAnalyticsSiInput!
}

input AwsKinesisAnalyticsAddApplicationReferenceDataSourceReferenceDataSourceS3ReferenceDataSourceInput {
  BucketARN: String!
  FileKey: String!
  ReferenceRoleARN: String!
}

type AwsKinesisAnalyticsCreateApplicationOutput {
  ApplicationSummary: AwsKinesisAnalyticsS1q!
}

type AwsKinesisAnalyticsS1q {
  ApplicationName: String!
  ApplicationARN: String!
  ApplicationStatus: String!
}

input AwsKinesisAnalyticsCreateApplicationInput {
  ApplicationName: String!
  ApplicationDescription: String
  Inputs: [AwsKinesisAnalyticsS9Input]
  Outputs: [AwsKinesisAnalyticsS12Input]
  CloudWatchLoggingOptions: [AwsKinesisAnalyticsS4Input]
  ApplicationCode: String
  Tags: [AwsKinesisAnalyticsS1lInput]
}

input AwsKinesisAnalyticsS1lInput {
  Key: String!
  Value: String
}

input AwsKinesisAnalyticsDeleteApplicationInput {
  ApplicationName: String!
  CreateTimestamp: Date!
}

input AwsKinesisAnalyticsDeleteApplicationCloudWatchLoggingOptionInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  CloudWatchLoggingOptionId: String!
}

input AwsKinesisAnalyticsDeleteApplicationInputProcessingConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  InputId: String!
}

input AwsKinesisAnalyticsDeleteApplicationOutputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  OutputId: String!
}

input AwsKinesisAnalyticsDeleteApplicationReferenceDataSourceInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  ReferenceId: String!
}

type AwsKinesisAnalyticsDescribeApplicationOutput {
  ApplicationDetail: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetail!
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetail {
  ApplicationName: String!
  ApplicationDescription: String
  ApplicationARN: String!
  ApplicationStatus: String!
  CreateTimestamp: Date
  LastUpdateTimestamp: Date
  InputDescriptions: [AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptions]
  OutputDescriptions: [AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptions]
  ReferenceDataSourceDescriptions: [AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailReferenceDataSourceDescriptions]
  CloudWatchLoggingOptionDescriptions: [AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailCloudWatchLoggingOptionDescriptions]
  ApplicationCode: String
  ApplicationVersionId: JSON!
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptions {
  InputId: String
  NamePrefix: String
  InAppStreamNames: [String]
  InputProcessingConfigurationDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsInputProcessingConfigurationDescription
  KinesisStreamsInputDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsKinesisStreamsInputDescription
  KinesisFirehoseInputDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsKinesisFirehoseInputDescription
  InputSchema: AwsKinesisAnalyticsSi
  InputParallelism: AwsKinesisAnalyticsSg
  InputStartingPositionConfiguration: AwsKinesisAnalyticsS2d
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsInputProcessingConfigurationDescription {
  InputLambdaProcessorDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsInputProcessingConfigurationDescriptionInputLambdaProcessorDescription
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsInputProcessingConfigurationDescriptionInputLambdaProcessorDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsKinesisStreamsInputDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailInputDescriptionsKinesisFirehoseInputDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsSi {
  RecordFormat: AwsKinesisAnalyticsSj!
  RecordEncoding: String
  RecordColumns: [AwsKinesisAnalyticsSs]!
}

type AwsKinesisAnalyticsSj {
  RecordFormatType: String!
  MappingParameters: AwsKinesisAnalyticsSjMappingParameters
}

type AwsKinesisAnalyticsSjMappingParameters {
  JSONMappingParameters: AwsKinesisAnalyticsSjMappingParametersJSONMappingParameters
  CSVMappingParameters: AwsKinesisAnalyticsSjMappingParametersCSVMappingParameters
}

type AwsKinesisAnalyticsSjMappingParametersJSONMappingParameters {
  RecordRowPath: String!
}

type AwsKinesisAnalyticsSjMappingParametersCSVMappingParameters {
  RecordRowDelimiter: String!
  RecordColumnDelimiter: String!
}

type AwsKinesisAnalyticsSs {
  Name: String!
  Mapping: String
  SqlType: String!
}

type AwsKinesisAnalyticsSg {
  Count: Int
}

type AwsKinesisAnalyticsS2d {
  InputStartingPosition: String
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptions {
  OutputId: String
  Name: String
  KinesisStreamsOutputDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsKinesisStreamsOutputDescription
  KinesisFirehoseOutputDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsKinesisFirehoseOutputDescription
  LambdaOutputDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsLambdaOutputDescription
  DestinationSchema: AwsKinesisAnalyticsS16
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsKinesisStreamsOutputDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsKinesisFirehoseOutputDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailOutputDescriptionsLambdaOutputDescription {
  ResourceARN: String
  RoleARN: String
}

type AwsKinesisAnalyticsS16 {
  RecordFormatType: String!
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailReferenceDataSourceDescriptions {
  ReferenceId: String!
  TableName: String!
  S3ReferenceDataSourceDescription: AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailReferenceDataSourceDescriptionsS3ReferenceDataSourceDescription!
  ReferenceSchema: AwsKinesisAnalyticsSi
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailReferenceDataSourceDescriptionsS3ReferenceDataSourceDescription {
  BucketARN: String!
  FileKey: String!
  ReferenceRoleARN: String!
}

type AwsKinesisAnalyticsDescribeApplicationOutputApplicationDetailCloudWatchLoggingOptionDescriptions {
  CloudWatchLoggingOptionId: String
  LogStreamARN: String!
  RoleARN: String!
}

input AwsKinesisAnalyticsDescribeApplicationInput {
  ApplicationName: String!
}

type AwsKinesisAnalyticsDiscoverInputSchemaOutput {
  InputSchema: AwsKinesisAnalyticsSi
  ParsedInputRecords: [[String]]
  ProcessedInputRecords: [String]
  RawInputRecords: [String]
}

input AwsKinesisAnalyticsDiscoverInputSchemaInput {
  ResourceARN: String
  RoleARN: String
  InputStartingPositionConfiguration: AwsKinesisAnalyticsS2dInput
  S3Configuration: AwsKinesisAnalyticsDiscoverInputSchemaS3ConfigurationInput
  InputProcessingConfiguration: AwsKinesisAnalyticsSbInput
}

input AwsKinesisAnalyticsS2dInput {
  InputStartingPosition: String
}

input AwsKinesisAnalyticsDiscoverInputSchemaS3ConfigurationInput {
  RoleARN: String!
  BucketARN: String!
  FileKey: String!
}

type AwsKinesisAnalyticsListApplicationsOutput {
  ApplicationSummaries: [AwsKinesisAnalyticsS1q]!
  HasMoreApplications: Boolean!
}

input AwsKinesisAnalyticsListApplicationsInput {
  Limit: Int
  ExclusiveStartApplicationName: String
}

type AwsKinesisAnalyticsListTagsForResourceOutput {
  Tags: [AwsKinesisAnalyticsS1l]
}

type AwsKinesisAnalyticsS1l {
  Key: String!
  Value: String
}

input AwsKinesisAnalyticsListTagsForResourceInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsStartApplicationInput {
  ApplicationName: String!
  InputConfigurations: [AwsKinesisAnalyticsStartApplicationInputConfigurationsInput]!
}

input AwsKinesisAnalyticsStartApplicationInputConfigurationsInput {
  Id: String!
  InputStartingPositionConfiguration: AwsKinesisAnalyticsS2dInput!
}

input AwsKinesisAnalyticsStopApplicationInput {
  ApplicationName: String!
}

input AwsKinesisAnalyticsTagResourceInput {
  ResourceARN: String!
  Tags: [AwsKinesisAnalyticsS1lInput]!
}

input AwsKinesisAnalyticsUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsKinesisAnalyticsUpdateApplicationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  ApplicationUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInput!
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInput {
  InputUpdates: [AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInput]
  ApplicationCodeUpdate: String
  OutputUpdates: [AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesInput]
  ReferenceDataSourceUpdates: [AwsKinesisAnalyticsUpdateApplicationApplicationUpdateReferenceDataSourceUpdatesInput]
  CloudWatchLoggingOptionUpdates: [AwsKinesisAnalyticsUpdateApplicationApplicationUpdateCloudWatchLoggingOptionUpdatesInput]
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInput {
  InputId: String!
  NamePrefixUpdate: String
  InputProcessingConfigurationUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputProcessingConfigurationUpdateInput
  KinesisStreamsInputUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesKinesisStreamsInputUpdateInput
  KinesisFirehoseInputUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesKinesisFirehoseInputUpdateInput
  InputSchemaUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputSchemaUpdateInput
  InputParallelismUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputParallelismUpdateInput
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputProcessingConfigurationUpdateInput {
  InputLambdaProcessorUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputProcessingConfigurationUpdateInputLambdaProcessorUpdateInput!
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputProcessingConfigurationUpdateInputLambdaProcessorUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesKinesisStreamsInputUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesKinesisFirehoseInputUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputSchemaUpdateInput {
  RecordFormatUpdate: AwsKinesisAnalyticsSjInput
  RecordEncodingUpdate: String
  RecordColumnUpdates: [AwsKinesisAnalyticsSsInput]
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateInputUpdatesInputParallelismUpdateInput {
  CountUpdate: Int
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesInput {
  OutputId: String!
  NameUpdate: String
  KinesisStreamsOutputUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesKinesisStreamsOutputUpdateInput
  KinesisFirehoseOutputUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesKinesisFirehoseOutputUpdateInput
  LambdaOutputUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesLambdaOutputUpdateInput
  DestinationSchemaUpdate: AwsKinesisAnalyticsS16Input
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesKinesisStreamsOutputUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesKinesisFirehoseOutputUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateOutputUpdatesLambdaOutputUpdateInput {
  ResourceARNUpdate: String
  RoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateReferenceDataSourceUpdatesInput {
  ReferenceId: String!
  TableNameUpdate: String
  S3ReferenceDataSourceUpdate: AwsKinesisAnalyticsUpdateApplicationApplicationUpdateReferenceDataSourceUpdatesS3ReferenceDataSourceUpdateInput
  ReferenceSchemaUpdate: AwsKinesisAnalyticsSiInput
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateReferenceDataSourceUpdatesS3ReferenceDataSourceUpdateInput {
  BucketARNUpdate: String
  FileKeyUpdate: String
  ReferenceRoleARNUpdate: String
}

input AwsKinesisAnalyticsUpdateApplicationApplicationUpdateCloudWatchLoggingOptionUpdatesInput {
  CloudWatchLoggingOptionId: String!
  LogStreamARNUpdate: String
  RoleARNUpdate: String
}

"""Amazon Kinesis Analytics (2018-05-23)"""
type AwsKinesisAnalyticsV2 {
  addApplicationCloudWatchLoggingOption(input: AwsKinesisAnalyticsV2AddApplicationCloudWatchLoggingOptionInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationCloudWatchLoggingOptionOutput
  addApplicationInput(input: AwsKinesisAnalyticsV2AddApplicationInputInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationInputOutput
  addApplicationInputProcessingConfiguration(input: AwsKinesisAnalyticsV2AddApplicationInputProcessingConfigurationInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationInputProcessingConfigurationOutput
  addApplicationOutput(input: AwsKinesisAnalyticsV2AddApplicationOutputInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationOutputOutput
  addApplicationReferenceDataSource(input: AwsKinesisAnalyticsV2AddApplicationReferenceDataSourceInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationReferenceDataSourceOutput
  addApplicationVpcConfiguration(input: AwsKinesisAnalyticsV2AddApplicationVpcConfigurationInput!, config: AwsConfig): AwsKinesisAnalyticsV2AddApplicationVpcConfigurationOutput
  createApplication(input: AwsKinesisAnalyticsV2CreateApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsV2CreateApplicationOutput
  createApplicationPresignedUrl(input: AwsKinesisAnalyticsV2CreateApplicationPresignedUrlInput!, config: AwsConfig): AwsKinesisAnalyticsV2CreateApplicationPresignedUrlOutput
  createApplicationSnapshot(input: AwsKinesisAnalyticsV2CreateApplicationSnapshotInput!, config: AwsConfig): JSON
  deleteApplication(input: AwsKinesisAnalyticsV2DeleteApplicationInput!, config: AwsConfig): JSON
  deleteApplicationCloudWatchLoggingOption(input: AwsKinesisAnalyticsV2DeleteApplicationCloudWatchLoggingOptionInput!, config: AwsConfig): AwsKinesisAnalyticsV2DeleteApplicationCloudWatchLoggingOptionOutput
  deleteApplicationInputProcessingConfiguration(input: AwsKinesisAnalyticsV2DeleteApplicationInputProcessingConfigurationInput!, config: AwsConfig): AwsKinesisAnalyticsV2DeleteApplicationInputProcessingConfigurationOutput
  deleteApplicationOutput(input: AwsKinesisAnalyticsV2DeleteApplicationOutputInput!, config: AwsConfig): AwsKinesisAnalyticsV2DeleteApplicationOutputOutput
  deleteApplicationReferenceDataSource(input: AwsKinesisAnalyticsV2DeleteApplicationReferenceDataSourceInput!, config: AwsConfig): AwsKinesisAnalyticsV2DeleteApplicationReferenceDataSourceOutput
  deleteApplicationSnapshot(input: AwsKinesisAnalyticsV2DeleteApplicationSnapshotInput!, config: AwsConfig): JSON
  deleteApplicationVpcConfiguration(input: AwsKinesisAnalyticsV2DeleteApplicationVpcConfigurationInput!, config: AwsConfig): AwsKinesisAnalyticsV2DeleteApplicationVpcConfigurationOutput
  describeApplication(input: AwsKinesisAnalyticsV2DescribeApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsV2DescribeApplicationOutput
  describeApplicationSnapshot(input: AwsKinesisAnalyticsV2DescribeApplicationSnapshotInput!, config: AwsConfig): AwsKinesisAnalyticsV2DescribeApplicationSnapshotOutput
  describeApplicationVersion(input: AwsKinesisAnalyticsV2DescribeApplicationVersionInput!, config: AwsConfig): AwsKinesisAnalyticsV2DescribeApplicationVersionOutput
  discoverInputSchema(input: AwsKinesisAnalyticsV2DiscoverInputSchemaInput!, config: AwsConfig): AwsKinesisAnalyticsV2DiscoverInputSchemaOutput
  listApplicationSnapshots(input: AwsKinesisAnalyticsV2ListApplicationSnapshotsInput!, config: AwsConfig): AwsKinesisAnalyticsV2ListApplicationSnapshotsOutput
  listApplicationVersions(input: AwsKinesisAnalyticsV2ListApplicationVersionsInput!, config: AwsConfig): AwsKinesisAnalyticsV2ListApplicationVersionsOutput
  listApplications(input: AwsKinesisAnalyticsV2ListApplicationsInput, config: AwsConfig): AwsKinesisAnalyticsV2ListApplicationsOutput
  listTagsForResource(input: AwsKinesisAnalyticsV2ListTagsForResourceInput!, config: AwsConfig): AwsKinesisAnalyticsV2ListTagsForResourceOutput
  rollbackApplication(input: AwsKinesisAnalyticsV2RollbackApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsV2RollbackApplicationOutput
  startApplication(input: AwsKinesisAnalyticsV2StartApplicationInput!, config: AwsConfig): JSON
  stopApplication(input: AwsKinesisAnalyticsV2StopApplicationInput!, config: AwsConfig): JSON
  tagResource(input: AwsKinesisAnalyticsV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsKinesisAnalyticsV2UntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsKinesisAnalyticsV2UpdateApplicationInput!, config: AwsConfig): AwsKinesisAnalyticsV2UpdateApplicationOutput
  updateApplicationMaintenanceConfiguration(input: AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationInput!, config: AwsConfig): AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationOutput
}

type AwsKinesisAnalyticsV2AddApplicationCloudWatchLoggingOptionOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  CloudWatchLoggingOptionDescriptions: [AwsKinesisAnalyticsV2S9]
}

type AwsKinesisAnalyticsV2S9 {
  CloudWatchLoggingOptionId: String
  LogStreamARN: String!
  RoleARN: String
}

input AwsKinesisAnalyticsV2AddApplicationCloudWatchLoggingOptionInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON
  CloudWatchLoggingOption: AwsKinesisAnalyticsV2S4Input!
  ConditionalToken: String
}

input AwsKinesisAnalyticsV2S4Input {
  LogStreamARN: String!
}

type AwsKinesisAnalyticsV2AddApplicationInputOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  InputDescriptions: [AwsKinesisAnalyticsV2S12]
}

type AwsKinesisAnalyticsV2S12 {
  InputId: String
  NamePrefix: String
  InAppStreamNames: [String]
  InputProcessingConfigurationDescription: AwsKinesisAnalyticsV2S15
  KinesisStreamsInputDescription: AwsKinesisAnalyticsV2S12KinesisStreamsInputDescription
  KinesisFirehoseInputDescription: AwsKinesisAnalyticsV2S12KinesisFirehoseInputDescription
  InputSchema: AwsKinesisAnalyticsV2Sm
  InputParallelism: AwsKinesisAnalyticsV2Sk
  InputStartingPositionConfiguration: AwsKinesisAnalyticsV2S19
}

type AwsKinesisAnalyticsV2S15 {
  InputLambdaProcessorDescription: AwsKinesisAnalyticsV2S15InputLambdaProcessorDescription
}

type AwsKinesisAnalyticsV2S15InputLambdaProcessorDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2S12KinesisStreamsInputDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2S12KinesisFirehoseInputDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2Sm {
  RecordFormat: AwsKinesisAnalyticsV2Sn!
  RecordEncoding: String
  RecordColumns: [AwsKinesisAnalyticsV2Sw]!
}

type AwsKinesisAnalyticsV2Sn {
  RecordFormatType: String!
  MappingParameters: AwsKinesisAnalyticsV2SnMappingParameters
}

type AwsKinesisAnalyticsV2SnMappingParameters {
  JSONMappingParameters: AwsKinesisAnalyticsV2SnMappingParametersJSONMappingParameters
  CSVMappingParameters: AwsKinesisAnalyticsV2SnMappingParametersCSVMappingParameters
}

type AwsKinesisAnalyticsV2SnMappingParametersJSONMappingParameters {
  RecordRowPath: String!
}

type AwsKinesisAnalyticsV2SnMappingParametersCSVMappingParameters {
  RecordRowDelimiter: String!
  RecordColumnDelimiter: String!
}

type AwsKinesisAnalyticsV2Sw {
  Name: String!
  Mapping: String
  SqlType: String!
}

type AwsKinesisAnalyticsV2Sk {
  Count: Int
}

type AwsKinesisAnalyticsV2S19 {
  InputStartingPosition: String
}

input AwsKinesisAnalyticsV2AddApplicationInputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  Input: AwsKinesisAnalyticsV2SeInput!
}

input AwsKinesisAnalyticsV2SeInput {
  NamePrefix: String!
  InputProcessingConfiguration: AwsKinesisAnalyticsV2SgInput
  KinesisStreamsInput: AwsKinesisAnalyticsV2SeKinesisStreamsInputInput
  KinesisFirehoseInput: AwsKinesisAnalyticsV2SeKinesisFirehoseInputInput
  InputParallelism: AwsKinesisAnalyticsV2SkInput
  InputSchema: AwsKinesisAnalyticsV2SmInput!
}

input AwsKinesisAnalyticsV2SgInput {
  InputLambdaProcessor: AwsKinesisAnalyticsV2SgInputLambdaProcessorInput!
}

input AwsKinesisAnalyticsV2SgInputLambdaProcessorInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2SeKinesisStreamsInputInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2SeKinesisFirehoseInputInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2SkInput {
  Count: Int
}

input AwsKinesisAnalyticsV2SmInput {
  RecordFormat: AwsKinesisAnalyticsV2SnInput!
  RecordEncoding: String
  RecordColumns: [AwsKinesisAnalyticsV2SwInput]!
}

input AwsKinesisAnalyticsV2SnInput {
  RecordFormatType: String!
  MappingParameters: AwsKinesisAnalyticsV2SnMappingParametersInput
}

input AwsKinesisAnalyticsV2SnMappingParametersInput {
  JSONMappingParameters: AwsKinesisAnalyticsV2SnMappingParametersJSONMappingParametersInput
  CSVMappingParameters: AwsKinesisAnalyticsV2SnMappingParametersCSVMappingParametersInput
}

input AwsKinesisAnalyticsV2SnMappingParametersJSONMappingParametersInput {
  RecordRowPath: String!
}

input AwsKinesisAnalyticsV2SnMappingParametersCSVMappingParametersInput {
  RecordRowDelimiter: String!
  RecordColumnDelimiter: String!
}

input AwsKinesisAnalyticsV2SwInput {
  Name: String!
  Mapping: String
  SqlType: String!
}

type AwsKinesisAnalyticsV2AddApplicationInputProcessingConfigurationOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  InputId: String
  InputProcessingConfigurationDescription: AwsKinesisAnalyticsV2S15
}

input AwsKinesisAnalyticsV2AddApplicationInputProcessingConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  InputId: String!
  InputProcessingConfiguration: AwsKinesisAnalyticsV2SgInput!
}

type AwsKinesisAnalyticsV2AddApplicationOutputOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  OutputDescriptions: [AwsKinesisAnalyticsV2S1k]
}

type AwsKinesisAnalyticsV2S1k {
  OutputId: String
  Name: String
  KinesisStreamsOutputDescription: AwsKinesisAnalyticsV2S1kKinesisStreamsOutputDescription
  KinesisFirehoseOutputDescription: AwsKinesisAnalyticsV2S1kKinesisFirehoseOutputDescription
  LambdaOutputDescription: AwsKinesisAnalyticsV2S1kLambdaOutputDescription
  DestinationSchema: AwsKinesisAnalyticsV2S1i
}

type AwsKinesisAnalyticsV2S1kKinesisStreamsOutputDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2S1kKinesisFirehoseOutputDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2S1kLambdaOutputDescription {
  ResourceARN: String!
  RoleARN: String
}

type AwsKinesisAnalyticsV2S1i {
  RecordFormatType: String!
}

input AwsKinesisAnalyticsV2AddApplicationOutputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  Output: AwsKinesisAnalyticsV2S1eInput!
}

input AwsKinesisAnalyticsV2S1eInput {
  Name: String!
  KinesisStreamsOutput: AwsKinesisAnalyticsV2S1eKinesisStreamsOutputInput
  KinesisFirehoseOutput: AwsKinesisAnalyticsV2S1eKinesisFirehoseOutputInput
  LambdaOutput: AwsKinesisAnalyticsV2S1eLambdaOutputInput
  DestinationSchema: AwsKinesisAnalyticsV2S1iInput!
}

input AwsKinesisAnalyticsV2S1eKinesisStreamsOutputInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2S1eKinesisFirehoseOutputInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2S1eLambdaOutputInput {
  ResourceARN: String!
}

input AwsKinesisAnalyticsV2S1iInput {
  RecordFormatType: String!
}

type AwsKinesisAnalyticsV2AddApplicationReferenceDataSourceOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  ReferenceDataSourceDescriptions: [AwsKinesisAnalyticsV2S1w]
}

type AwsKinesisAnalyticsV2S1w {
  ReferenceId: String!
  TableName: String!
  S3ReferenceDataSourceDescription: AwsKinesisAnalyticsV2S1wS3ReferenceDataSourceDescription!
  ReferenceSchema: AwsKinesisAnalyticsV2Sm
}

type AwsKinesisAnalyticsV2S1wS3ReferenceDataSourceDescription {
  BucketARN: String!
  FileKey: String!
  ReferenceRoleARN: String
}

input AwsKinesisAnalyticsV2AddApplicationReferenceDataSourceInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  ReferenceDataSource: AwsKinesisAnalyticsV2S1qInput!
}

input AwsKinesisAnalyticsV2S1qInput {
  TableName: String!
  S3ReferenceDataSource: AwsKinesisAnalyticsV2S1qS3ReferenceDataSourceInput
  ReferenceSchema: AwsKinesisAnalyticsV2SmInput!
}

input AwsKinesisAnalyticsV2S1qS3ReferenceDataSourceInput {
  BucketARN: String
  FileKey: String
}

type AwsKinesisAnalyticsV2AddApplicationVpcConfigurationOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  VpcConfigurationDescription: AwsKinesisAnalyticsV2S26
}

type AwsKinesisAnalyticsV2S26 {
  VpcConfigurationId: String!
  VpcId: String!
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
}

input AwsKinesisAnalyticsV2AddApplicationVpcConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON
  VpcConfiguration: AwsKinesisAnalyticsV2S20Input!
  ConditionalToken: String
}

input AwsKinesisAnalyticsV2S20Input {
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
}

type AwsKinesisAnalyticsV2CreateApplicationOutput {
  ApplicationDetail: AwsKinesisAnalyticsV2S3t!
}

type AwsKinesisAnalyticsV2S3t {
  ApplicationARN: String!
  ApplicationDescription: String
  ApplicationName: String!
  RuntimeEnvironment: String!
  ServiceExecutionRole: String
  ApplicationStatus: String!
  ApplicationVersionId: JSON!
  CreateTimestamp: Date
  LastUpdateTimestamp: Date
  ApplicationConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescription
  CloudWatchLoggingOptionDescriptions: [AwsKinesisAnalyticsV2S9]
  ApplicationMaintenanceConfigurationDescription: AwsKinesisAnalyticsV2S4o
  ApplicationVersionUpdatedFrom: JSON
  ApplicationVersionRolledBackFrom: JSON
  ConditionalToken: String
  ApplicationVersionRolledBackTo: JSON
  ApplicationMode: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescription {
  SqlApplicationConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionSqlApplicationConfigurationDescription
  ApplicationCodeConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescription
  RunConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionRunConfigurationDescription
  FlinkApplicationConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescription
  EnvironmentPropertyDescriptions: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionEnvironmentPropertyDescriptions
  ApplicationSnapshotConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationSnapshotConfigurationDescription
  VpcConfigurationDescriptions: [AwsKinesisAnalyticsV2S26]
  ZeppelinApplicationConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescription
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionSqlApplicationConfigurationDescription {
  InputDescriptions: [AwsKinesisAnalyticsV2S12]
  OutputDescriptions: [AwsKinesisAnalyticsV2S1k]
  ReferenceDataSourceDescriptions: [AwsKinesisAnalyticsV2S1w]
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescription {
  CodeContentType: String!
  CodeContentDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescriptionCodeContentDescription
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescriptionCodeContentDescription {
  TextContent: String
  CodeMD5: String
  CodeSize: JSON
  S3ApplicationCodeLocationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescriptionCodeContentDescriptionS3ApplicationCodeLocationDescription
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationCodeConfigurationDescriptionCodeContentDescriptionS3ApplicationCodeLocationDescription {
  BucketARN: String!
  FileKey: String!
  ObjectVersion: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionRunConfigurationDescription {
  ApplicationRestoreConfigurationDescription: AwsKinesisAnalyticsV2S44
  FlinkRunConfigurationDescription: AwsKinesisAnalyticsV2S47
}

type AwsKinesisAnalyticsV2S44 {
  ApplicationRestoreType: String!
  SnapshotName: String
}

type AwsKinesisAnalyticsV2S47 {
  AllowNonRestoredState: Boolean
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescription {
  CheckpointConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionCheckpointConfigurationDescription
  MonitoringConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionMonitoringConfigurationDescription
  ParallelismConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionParallelismConfigurationDescription
  JobPlanDescription: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionCheckpointConfigurationDescription {
  ConfigurationType: String
  CheckpointingEnabled: Boolean
  CheckpointInterval: JSON
  MinPauseBetweenCheckpoints: JSON
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionMonitoringConfigurationDescription {
  ConfigurationType: String
  MetricsLevel: String
  LogLevel: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionFlinkApplicationConfigurationDescriptionParallelismConfigurationDescription {
  ConfigurationType: String
  Parallelism: Int
  ParallelismPerKPU: Int
  CurrentParallelism: Int
  AutoScalingEnabled: Boolean
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionEnvironmentPropertyDescriptions {
  PropertyGroupDescriptions: [AwsKinesisAnalyticsV2S2t]
}

type AwsKinesisAnalyticsV2S2t {
  PropertyGroupId: String!
  PropertyMap: JSON!
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionApplicationSnapshotConfigurationDescription {
  SnapshotsEnabled: Boolean!
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescription {
  MonitoringConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionMonitoringConfigurationDescription!
  CatalogConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCatalogConfigurationDescription
  DeployAsApplicationConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionDeployAsApplicationConfigurationDescription
  CustomArtifactsConfigurationDescription: [AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCustomArtifactsConfigurationDescription]
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionMonitoringConfigurationDescription {
  LogLevel: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCatalogConfigurationDescription {
  GlueDataCatalogConfigurationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCatalogConfigurationDescriptionGlueDataCatalogConfigurationDescription!
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCatalogConfigurationDescriptionGlueDataCatalogConfigurationDescription {
  DatabaseARN: String!
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionDeployAsApplicationConfigurationDescription {
  S3ContentLocationDescription: AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionDeployAsApplicationConfigurationDescriptionS3ContentLocationDescription!
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionDeployAsApplicationConfigurationDescriptionS3ContentLocationDescription {
  BucketARN: String!
  BasePath: String
}

type AwsKinesisAnalyticsV2S3tApplicationConfigurationDescriptionZeppelinApplicationConfigurationDescriptionCustomArtifactsConfigurationDescription {
  ArtifactType: String
  S3ContentLocationDescription: AwsKinesisAnalyticsV2S32
  MavenReferenceDescription: AwsKinesisAnalyticsV2S3i
}

type AwsKinesisAnalyticsV2S32 {
  BucketARN: String!
  FileKey: String!
  ObjectVersion: String
}

type AwsKinesisAnalyticsV2S3i {
  GroupId: String!
  ArtifactId: String!
  Version: String!
}

type AwsKinesisAnalyticsV2S4o {
  ApplicationMaintenanceWindowStartTime: String!
  ApplicationMaintenanceWindowEndTime: String!
}

input AwsKinesisAnalyticsV2CreateApplicationInput {
  ApplicationName: String!
  ApplicationDescription: String
  RuntimeEnvironment: String!
  ServiceExecutionRole: String!
  ApplicationConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationInput
  CloudWatchLoggingOptions: [AwsKinesisAnalyticsV2S4Input]
  Tags: [AwsKinesisAnalyticsV2S3nInput]
  ApplicationMode: String
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationInput {
  SqlApplicationConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationSqlApplicationConfigurationInput
  FlinkApplicationConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationInput
  EnvironmentProperties: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationEnvironmentPropertiesInput
  ApplicationCodeConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationCodeConfigurationInput
  ApplicationSnapshotConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationSnapshotConfigurationInput
  VpcConfigurations: [AwsKinesisAnalyticsV2S20Input]
  ZeppelinApplicationConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationInput
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationSqlApplicationConfigurationInput {
  Inputs: [AwsKinesisAnalyticsV2SeInput]
  Outputs: [AwsKinesisAnalyticsV2S1eInput]
  ReferenceDataSources: [AwsKinesisAnalyticsV2S1qInput]
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationInput {
  CheckpointConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationInput
  MonitoringConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationInput
  ParallelismConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationInput
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationInput {
  ConfigurationType: String!
  CheckpointingEnabled: Boolean
  CheckpointInterval: JSON
  MinPauseBetweenCheckpoints: JSON
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationInput {
  ConfigurationType: String!
  MetricsLevel: String
  LogLevel: String
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationInput {
  ConfigurationType: String!
  Parallelism: Int
  ParallelismPerKPU: Int
  AutoScalingEnabled: Boolean
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationEnvironmentPropertiesInput {
  PropertyGroups: [AwsKinesisAnalyticsV2S2tInput]!
}

input AwsKinesisAnalyticsV2S2tInput {
  PropertyGroupId: String!
  PropertyMap: JSON!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationCodeConfigurationInput {
  CodeContent: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentInput
  CodeContentType: String!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentInput {
  TextContent: String
  ZipFileContent: JSON
  S3ContentLocation: AwsKinesisAnalyticsV2S32Input
}

input AwsKinesisAnalyticsV2S32Input {
  BucketARN: String!
  FileKey: String!
  ObjectVersion: String
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationApplicationSnapshotConfigurationInput {
  SnapshotsEnabled: Boolean!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationInput {
  MonitoringConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationMonitoringConfigurationInput
  CatalogConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationCatalogConfigurationInput
  DeployAsApplicationConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationDeployAsApplicationConfigurationInput
  CustomArtifactsConfiguration: [AwsKinesisAnalyticsV2S3fInput]
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationMonitoringConfigurationInput {
  LogLevel: String!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationCatalogConfigurationInput {
  GlueDataCatalogConfiguration: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationCatalogConfigurationGlueDataCatalogConfigurationInput!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationCatalogConfigurationGlueDataCatalogConfigurationInput {
  DatabaseARN: String!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationDeployAsApplicationConfigurationInput {
  S3ContentLocation: AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationDeployAsApplicationConfigurationS3ContentLocationInput!
}

input AwsKinesisAnalyticsV2CreateApplicationApplicationConfigurationZeppelinApplicationConfigurationDeployAsApplicationConfigurationS3ContentLocationInput {
  BucketARN: String!
  BasePath: String
}

input AwsKinesisAnalyticsV2S3fInput {
  ArtifactType: String!
  S3ContentLocation: AwsKinesisAnalyticsV2S32Input
  MavenReference: AwsKinesisAnalyticsV2S3iInput
}

input AwsKinesisAnalyticsV2S3iInput {
  GroupId: String!
  ArtifactId: String!
  Version: String!
}

input AwsKinesisAnalyticsV2S3nInput {
  Key: String!
  Value: String
}

type AwsKinesisAnalyticsV2CreateApplicationPresignedUrlOutput {
  AuthorizedUrl: String
}

input AwsKinesisAnalyticsV2CreateApplicationPresignedUrlInput {
  ApplicationName: String!
  UrlType: String!
  SessionExpirationDurationInSeconds: JSON
}

input AwsKinesisAnalyticsV2CreateApplicationSnapshotInput {
  ApplicationName: String!
  SnapshotName: String!
}

input AwsKinesisAnalyticsV2DeleteApplicationInput {
  ApplicationName: String!
  CreateTimestamp: Date!
}

type AwsKinesisAnalyticsV2DeleteApplicationCloudWatchLoggingOptionOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
  CloudWatchLoggingOptionDescriptions: [AwsKinesisAnalyticsV2S9]
}

input AwsKinesisAnalyticsV2DeleteApplicationCloudWatchLoggingOptionInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON
  CloudWatchLoggingOptionId: String!
  ConditionalToken: String
}

type AwsKinesisAnalyticsV2DeleteApplicationInputProcessingConfigurationOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
}

input AwsKinesisAnalyticsV2DeleteApplicationInputProcessingConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  InputId: String!
}

type AwsKinesisAnalyticsV2DeleteApplicationOutputOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
}

input AwsKinesisAnalyticsV2DeleteApplicationOutputInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  OutputId: String!
}

type AwsKinesisAnalyticsV2DeleteApplicationReferenceDataSourceOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
}

input AwsKinesisAnalyticsV2DeleteApplicationReferenceDataSourceInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
  ReferenceId: String!
}

input AwsKinesisAnalyticsV2DeleteApplicationSnapshotInput {
  ApplicationName: String!
  SnapshotName: String!
  SnapshotCreationTimestamp: Date!
}

type AwsKinesisAnalyticsV2DeleteApplicationVpcConfigurationOutput {
  ApplicationARN: String
  ApplicationVersionId: JSON
}

input AwsKinesisAnalyticsV2DeleteApplicationVpcConfigurationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON
  VpcConfigurationId: String!
  ConditionalToken: String
}

type AwsKinesisAnalyticsV2DescribeApplicationOutput {
  ApplicationDetail: AwsKinesisAnalyticsV2S3t!
}

input AwsKinesisAnalyticsV2DescribeApplicationInput {
  ApplicationName: String!
  IncludeAdditionalDetails: Boolean
}

type AwsKinesisAnalyticsV2DescribeApplicationSnapshotOutput {
  SnapshotDetails: AwsKinesisAnalyticsV2S5g!
}

type AwsKinesisAnalyticsV2S5g {
  SnapshotName: String!
  SnapshotStatus: String!
  ApplicationVersionId: JSON!
  SnapshotCreationTimestamp: Date
}

input AwsKinesisAnalyticsV2DescribeApplicationSnapshotInput {
  ApplicationName: String!
  SnapshotName: String!
}

type AwsKinesisAnalyticsV2DescribeApplicationVersionOutput {
  ApplicationVersionDetail: AwsKinesisAnalyticsV2S3t
}

input AwsKinesisAnalyticsV2DescribeApplicationVersionInput {
  ApplicationName: String!
  ApplicationVersionId: JSON!
}

type AwsKinesisAnalyticsV2DiscoverInputSchemaOutput {
  InputSchema: AwsKinesisAnalyticsV2Sm
  ParsedInputRecords: [[String]]
  ProcessedInputRecords: [String]
  RawInputRecords: [String]
}

input AwsKinesisAnalyticsV2DiscoverInputSchemaInput {
  ResourceARN: String
  ServiceExecutionRole: String!
  InputStartingPositionConfiguration: AwsKinesisAnalyticsV2S19Input
  S3Configuration: AwsKinesisAnalyticsV2DiscoverInputSchemaS3ConfigurationInput
  InputProcessingConfiguration: AwsKinesisAnalyticsV2SgInput
}

input AwsKinesisAnalyticsV2S19Input {
  InputStartingPosition: String
}

input AwsKinesisAnalyticsV2DiscoverInputSchemaS3ConfigurationInput {
  BucketARN: String!
  FileKey: String!
}

type AwsKinesisAnalyticsV2ListApplicationSnapshotsOutput {
  SnapshotSummaries: [AwsKinesisAnalyticsV2S5g]
  NextToken: String
}

input AwsKinesisAnalyticsV2ListApplicationSnapshotsInput {
  ApplicationName: String!
  Limit: Int
  NextToken: String
}

type AwsKinesisAnalyticsV2ListApplicationVersionsOutput {
  ApplicationVersionSummaries: [AwsKinesisAnalyticsV2ListApplicationVersionsOutputApplicationVersionSummaries]
  NextToken: String
}

type AwsKinesisAnalyticsV2ListApplicationVersionsOutputApplicationVersionSummaries {
  ApplicationVersionId: JSON!
  ApplicationStatus: String!
}

input AwsKinesisAnalyticsV2ListApplicationVersionsInput {
  ApplicationName: String!
  Limit: Int
  NextToken: String
}

type AwsKinesisAnalyticsV2ListApplicationsOutput {
  ApplicationSummaries: [AwsKinesisAnalyticsV2ListApplicationsOutputApplicationSummaries]!
  NextToken: String
}

type AwsKinesisAnalyticsV2ListApplicationsOutputApplicationSummaries {
  ApplicationName: String!
  ApplicationARN: String!
  ApplicationStatus: String!
  ApplicationVersionId: JSON!
  RuntimeEnvironment: String!
  ApplicationMode: String
}

input AwsKinesisAnalyticsV2ListApplicationsInput {
  Limit: Int
  NextToken: String
}

type AwsKinesisAnalyticsV2ListTagsForResourceOutput {
  Tags: [AwsKinesisAnalyticsV2S3n]
}

type AwsKinesisAnalyticsV2S3n {
  Key: String!
  Value: String
}

input AwsKinesisAnalyticsV2ListTagsForResourceInput {
  ResourceARN: String!
}

type AwsKinesisAnalyticsV2RollbackApplicationOutput {
  ApplicationDetail: AwsKinesisAnalyticsV2S3t!
}

input AwsKinesisAnalyticsV2RollbackApplicationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON!
}

input AwsKinesisAnalyticsV2StartApplicationInput {
  ApplicationName: String!
  RunConfiguration: AwsKinesisAnalyticsV2StartApplicationRunConfigurationInput
}

input AwsKinesisAnalyticsV2StartApplicationRunConfigurationInput {
  FlinkRunConfiguration: AwsKinesisAnalyticsV2S47Input
  SqlRunConfigurations: [AwsKinesisAnalyticsV2StartApplicationRunConfigurationSqlRunConfigurationsInput]
  ApplicationRestoreConfiguration: AwsKinesisAnalyticsV2S44Input
}

input AwsKinesisAnalyticsV2S47Input {
  AllowNonRestoredState: Boolean
}

input AwsKinesisAnalyticsV2StartApplicationRunConfigurationSqlRunConfigurationsInput {
  InputId: String!
  InputStartingPositionConfiguration: AwsKinesisAnalyticsV2S19Input!
}

input AwsKinesisAnalyticsV2S44Input {
  ApplicationRestoreType: String!
  SnapshotName: String
}

input AwsKinesisAnalyticsV2StopApplicationInput {
  ApplicationName: String!
  Force: Boolean
}

input AwsKinesisAnalyticsV2TagResourceInput {
  ResourceARN: String!
  Tags: [AwsKinesisAnalyticsV2S3nInput]!
}

input AwsKinesisAnalyticsV2UntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsKinesisAnalyticsV2UpdateApplicationOutput {
  ApplicationDetail: AwsKinesisAnalyticsV2S3t!
}

input AwsKinesisAnalyticsV2UpdateApplicationInput {
  ApplicationName: String!
  CurrentApplicationVersionId: JSON
  ApplicationConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateInput
  ServiceExecutionRoleUpdate: String
  RunConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationRunConfigurationUpdateInput
  CloudWatchLoggingOptionUpdates: [AwsKinesisAnalyticsV2UpdateApplicationCloudWatchLoggingOptionUpdatesInput]
  ConditionalToken: String
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateInput {
  SqlApplicationConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInput
  ApplicationCodeConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateInput
  FlinkApplicationConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateInput
  EnvironmentPropertyUpdates: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateEnvironmentPropertyUpdatesInput
  ApplicationSnapshotConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationSnapshotConfigurationUpdateInput
  VpcConfigurationUpdates: [AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateVpcConfigurationUpdatesInput]
  ZeppelinApplicationConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInput {
  InputUpdates: [AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInput]
  OutputUpdates: [AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesInput]
  ReferenceDataSourceUpdates: [AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateReferenceDataSourceUpdatesInput]
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInput {
  InputId: String!
  NamePrefixUpdate: String
  InputProcessingConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputProcessingConfigurationUpdateInput
  KinesisStreamsInputUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesKinesisStreamsInputUpdateInput
  KinesisFirehoseInputUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesKinesisFirehoseInputUpdateInput
  InputSchemaUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputSchemaUpdateInput
  InputParallelismUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputParallelismUpdateInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputProcessingConfigurationUpdateInput {
  InputLambdaProcessorUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputProcessingConfigurationUpdateInputLambdaProcessorUpdateInput!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputProcessingConfigurationUpdateInputLambdaProcessorUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesKinesisStreamsInputUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesKinesisFirehoseInputUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputSchemaUpdateInput {
  RecordFormatUpdate: AwsKinesisAnalyticsV2SnInput
  RecordEncodingUpdate: String
  RecordColumnUpdates: [AwsKinesisAnalyticsV2SwInput]
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateInputUpdatesInputParallelismUpdateInput {
  CountUpdate: Int!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesInput {
  OutputId: String!
  NameUpdate: String
  KinesisStreamsOutputUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesKinesisStreamsOutputUpdateInput
  KinesisFirehoseOutputUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesKinesisFirehoseOutputUpdateInput
  LambdaOutputUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesLambdaOutputUpdateInput
  DestinationSchemaUpdate: AwsKinesisAnalyticsV2S1iInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesKinesisStreamsOutputUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesKinesisFirehoseOutputUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateOutputUpdatesLambdaOutputUpdateInput {
  ResourceARNUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateReferenceDataSourceUpdatesInput {
  ReferenceId: String!
  TableNameUpdate: String
  S3ReferenceDataSourceUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateReferenceDataSourceUpdatesS3ReferenceDataSourceUpdateInput
  ReferenceSchemaUpdate: AwsKinesisAnalyticsV2SmInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateSqlApplicationConfigurationUpdateReferenceDataSourceUpdatesS3ReferenceDataSourceUpdateInput {
  BucketARNUpdate: String
  FileKeyUpdate: String
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateInput {
  CodeContentTypeUpdate: String
  CodeContentUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateCodeContentUpdateInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateCodeContentUpdateInput {
  TextContentUpdate: String
  ZipFileContentUpdate: JSON
  S3ContentLocationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateCodeContentUpdateS3ContentLocationUpdateInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationCodeConfigurationUpdateCodeContentUpdateS3ContentLocationUpdateInput {
  BucketARNUpdate: String
  FileKeyUpdate: String
  ObjectVersionUpdate: String
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateInput {
  CheckpointConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateCheckpointConfigurationUpdateInput
  MonitoringConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateMonitoringConfigurationUpdateInput
  ParallelismConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateParallelismConfigurationUpdateInput
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateCheckpointConfigurationUpdateInput {
  ConfigurationTypeUpdate: String
  CheckpointingEnabledUpdate: Boolean
  CheckpointIntervalUpdate: JSON
  MinPauseBetweenCheckpointsUpdate: JSON
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateMonitoringConfigurationUpdateInput {
  ConfigurationTypeUpdate: String
  MetricsLevelUpdate: String
  LogLevelUpdate: String
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateFlinkApplicationConfigurationUpdateParallelismConfigurationUpdateInput {
  ConfigurationTypeUpdate: String
  ParallelismUpdate: Int
  ParallelismPerKPUUpdate: Int
  AutoScalingEnabledUpdate: Boolean
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateEnvironmentPropertyUpdatesInput {
  PropertyGroups: [AwsKinesisAnalyticsV2S2tInput]!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateApplicationSnapshotConfigurationUpdateInput {
  SnapshotsEnabledUpdate: Boolean!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateVpcConfigurationUpdatesInput {
  VpcConfigurationId: String!
  SubnetIdUpdates: [String]
  SecurityGroupIdUpdates: [String]
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateInput {
  MonitoringConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateMonitoringConfigurationUpdateInput
  CatalogConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateCatalogConfigurationUpdateInput
  DeployAsApplicationConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateDeployAsApplicationConfigurationUpdateInput
  CustomArtifactsConfigurationUpdate: [AwsKinesisAnalyticsV2S3fInput]
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateMonitoringConfigurationUpdateInput {
  LogLevelUpdate: String!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateCatalogConfigurationUpdateInput {
  GlueDataCatalogConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateCatalogConfigurationUpdateGlueDataCatalogConfigurationUpdateInput!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateCatalogConfigurationUpdateGlueDataCatalogConfigurationUpdateInput {
  DatabaseARNUpdate: String
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateDeployAsApplicationConfigurationUpdateInput {
  S3ContentLocationUpdate: AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateDeployAsApplicationConfigurationUpdateS3ContentLocationUpdateInput!
}

input AwsKinesisAnalyticsV2UpdateApplicationApplicationConfigurationUpdateZeppelinApplicationConfigurationUpdateDeployAsApplicationConfigurationUpdateS3ContentLocationUpdateInput {
  BucketARNUpdate: String!
  BasePathUpdate: String
}

input AwsKinesisAnalyticsV2UpdateApplicationRunConfigurationUpdateInput {
  FlinkRunConfiguration: AwsKinesisAnalyticsV2S47Input
  ApplicationRestoreConfiguration: AwsKinesisAnalyticsV2S44Input
}

input AwsKinesisAnalyticsV2UpdateApplicationCloudWatchLoggingOptionUpdatesInput {
  CloudWatchLoggingOptionId: String!
  LogStreamARNUpdate: String
}

type AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationOutput {
  ApplicationARN: String
  ApplicationMaintenanceConfigurationDescription: AwsKinesisAnalyticsV2S4o
}

input AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationInput {
  ApplicationName: String!
  ApplicationMaintenanceConfigurationUpdate: AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationApplicationMaintenanceConfigurationUpdateInput!
}

input AwsKinesisAnalyticsV2UpdateApplicationMaintenanceConfigurationApplicationMaintenanceConfigurationUpdateInput {
  ApplicationMaintenanceWindowStartTimeUpdate: String!
}

"""Amazon Kinesis Video Streams (2017-09-30)"""
type AwsKinesisVideo {
  createSignalingChannel(input: AwsKinesisVideoCreateSignalingChannelInput!, config: AwsConfig): AwsKinesisVideoCreateSignalingChannelOutput
  createStream(input: AwsKinesisVideoCreateStreamInput!, config: AwsConfig): AwsKinesisVideoCreateStreamOutput
  deleteSignalingChannel(input: AwsKinesisVideoDeleteSignalingChannelInput!, config: AwsConfig): JSON
  deleteStream(input: AwsKinesisVideoDeleteStreamInput!, config: AwsConfig): JSON
  describeSignalingChannel(input: AwsKinesisVideoDescribeSignalingChannelInput, config: AwsConfig): AwsKinesisVideoDescribeSignalingChannelOutput
  describeStream(input: AwsKinesisVideoDescribeStreamInput, config: AwsConfig): AwsKinesisVideoDescribeStreamOutput
  getDataEndpoint(input: AwsKinesisVideoGetDataEndpointInput!, config: AwsConfig): AwsKinesisVideoGetDataEndpointOutput
  getSignalingChannelEndpoint(input: AwsKinesisVideoGetSignalingChannelEndpointInput!, config: AwsConfig): AwsKinesisVideoGetSignalingChannelEndpointOutput
  listSignalingChannels(input: AwsKinesisVideoListSignalingChannelsInput, config: AwsConfig): AwsKinesisVideoListSignalingChannelsOutput
  listStreams(input: AwsKinesisVideoListStreamsInput, config: AwsConfig): AwsKinesisVideoListStreamsOutput
  listTagsForResource(input: AwsKinesisVideoListTagsForResourceInput!, config: AwsConfig): AwsKinesisVideoListTagsForResourceOutput
  listTagsForStream(input: AwsKinesisVideoListTagsForStreamInput, config: AwsConfig): AwsKinesisVideoListTagsForStreamOutput
  tagResource(input: AwsKinesisVideoTagResourceInput!, config: AwsConfig): JSON
  tagStream(input: AwsKinesisVideoTagStreamInput!, config: AwsConfig): JSON
  untagResource(input: AwsKinesisVideoUntagResourceInput!, config: AwsConfig): JSON
  untagStream(input: AwsKinesisVideoUntagStreamInput!, config: AwsConfig): JSON
  updateDataRetention(input: AwsKinesisVideoUpdateDataRetentionInput!, config: AwsConfig): JSON
  updateSignalingChannel(input: AwsKinesisVideoUpdateSignalingChannelInput!, config: AwsConfig): JSON
  updateStream(input: AwsKinesisVideoUpdateStreamInput!, config: AwsConfig): JSON
}

type AwsKinesisVideoCreateSignalingChannelOutput {
  ChannelARN: String
}

input AwsKinesisVideoCreateSignalingChannelInput {
  ChannelName: String!
  ChannelType: String
  SingleMasterConfiguration: AwsKinesisVideoS4Input
  Tags: [AwsKinesisVideoS7Input]
}

input AwsKinesisVideoS4Input {
  MessageTtlSeconds: Int
}

input AwsKinesisVideoS7Input {
  Key: String!
  Value: String!
}

type AwsKinesisVideoCreateStreamOutput {
  StreamARN: String
}

input AwsKinesisVideoCreateStreamInput {
  DeviceName: String
  StreamName: String!
  MediaType: String
  KmsKeyId: String
  DataRetentionInHours: Int
  Tags: JSON
}

input AwsKinesisVideoDeleteSignalingChannelInput {
  ChannelARN: String!
  CurrentVersion: String
}

input AwsKinesisVideoDeleteStreamInput {
  StreamARN: String!
  CurrentVersion: String
}

type AwsKinesisVideoDescribeSignalingChannelOutput {
  ChannelInfo: AwsKinesisVideoSr
}

type AwsKinesisVideoSr {
  ChannelName: String
  ChannelARN: String
  ChannelType: String
  ChannelStatus: String
  CreationTime: Date
  SingleMasterConfiguration: AwsKinesisVideoS4
  Version: String
}

type AwsKinesisVideoS4 {
  MessageTtlSeconds: Int
}

input AwsKinesisVideoDescribeSignalingChannelInput {
  ChannelName: String
  ChannelARN: String
}

type AwsKinesisVideoDescribeStreamOutput {
  StreamInfo: AwsKinesisVideoSw
}

type AwsKinesisVideoSw {
  DeviceName: String
  StreamName: String
  StreamARN: String
  MediaType: String
  KmsKeyId: String
  Version: String
  Status: String
  CreationTime: Date
  DataRetentionInHours: Int
}

input AwsKinesisVideoDescribeStreamInput {
  StreamName: String
  StreamARN: String
}

type AwsKinesisVideoGetDataEndpointOutput {
  DataEndpoint: String
}

input AwsKinesisVideoGetDataEndpointInput {
  StreamName: String
  StreamARN: String
  APIName: String!
}

type AwsKinesisVideoGetSignalingChannelEndpointOutput {
  ResourceEndpointList: [AwsKinesisVideoGetSignalingChannelEndpointOutputResourceEndpointList]
}

type AwsKinesisVideoGetSignalingChannelEndpointOutputResourceEndpointList {
  Protocol: String
  ResourceEndpoint: String
}

input AwsKinesisVideoGetSignalingChannelEndpointInput {
  ChannelARN: String!
  SingleMasterChannelEndpointConfiguration: AwsKinesisVideoGetSignalingChannelEndpointSingleMasterChannelEndpointConfigurationInput
}

input AwsKinesisVideoGetSignalingChannelEndpointSingleMasterChannelEndpointConfigurationInput {
  Protocols: [String]
  Role: String
}

type AwsKinesisVideoListSignalingChannelsOutput {
  ChannelInfoList: [AwsKinesisVideoSr]
  NextToken: String
}

input AwsKinesisVideoListSignalingChannelsInput {
  MaxResults: Int
  NextToken: String
  ChannelNameCondition: AwsKinesisVideoListSignalingChannelsChannelNameConditionInput
}

input AwsKinesisVideoListSignalingChannelsChannelNameConditionInput {
  ComparisonOperator: String
  ComparisonValue: String
}

type AwsKinesisVideoListStreamsOutput {
  StreamInfoList: [AwsKinesisVideoSw]
  NextToken: String
}

input AwsKinesisVideoListStreamsInput {
  MaxResults: Int
  NextToken: String
  StreamNameCondition: AwsKinesisVideoListStreamsStreamNameConditionInput
}

input AwsKinesisVideoListStreamsStreamNameConditionInput {
  ComparisonOperator: String
  ComparisonValue: String
}

type AwsKinesisVideoListTagsForResourceOutput {
  NextToken: String
  Tags: JSON
}

input AwsKinesisVideoListTagsForResourceInput {
  NextToken: String
  ResourceARN: String!
}

type AwsKinesisVideoListTagsForStreamOutput {
  NextToken: String
  Tags: JSON
}

input AwsKinesisVideoListTagsForStreamInput {
  NextToken: String
  StreamARN: String
  StreamName: String
}

input AwsKinesisVideoTagResourceInput {
  ResourceARN: String!
  Tags: [AwsKinesisVideoS7Input]!
}

input AwsKinesisVideoTagStreamInput {
  StreamARN: String
  StreamName: String
  Tags: JSON!
}

input AwsKinesisVideoUntagResourceInput {
  ResourceARN: String!
  TagKeyList: [String]!
}

input AwsKinesisVideoUntagStreamInput {
  StreamARN: String
  StreamName: String
  TagKeyList: [String]!
}

input AwsKinesisVideoUpdateDataRetentionInput {
  StreamName: String
  StreamARN: String
  CurrentVersion: String!
  Operation: String!
  DataRetentionChangeInHours: Int!
}

input AwsKinesisVideoUpdateSignalingChannelInput {
  ChannelARN: String!
  CurrentVersion: String!
  SingleMasterConfiguration: AwsKinesisVideoS4Input
}

input AwsKinesisVideoUpdateStreamInput {
  StreamName: String
  StreamARN: String
  CurrentVersion: String!
  DeviceName: String
  MediaType: String
}

"""Amazon Kinesis Video Streams Archived Media (2017-09-30)"""
type AwsKinesisVideoArchivedMedia {
  getClip(input: AwsKinesisVideoArchivedMediaGetClipInput!, config: AwsConfig): AwsKinesisVideoArchivedMediaGetClipOutput
  getDASHStreamingSessionURL(input: AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLInput, config: AwsConfig): AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLOutput
  getHLSStreamingSessionURL(input: AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLInput, config: AwsConfig): AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLOutput
  getMediaForFragmentList(input: AwsKinesisVideoArchivedMediaGetMediaForFragmentListInput!, config: AwsConfig): AwsKinesisVideoArchivedMediaGetMediaForFragmentListOutput
  listFragments(input: AwsKinesisVideoArchivedMediaListFragmentsInput, config: AwsConfig): AwsKinesisVideoArchivedMediaListFragmentsOutput
}

type AwsKinesisVideoArchivedMediaGetClipOutput {
  ContentType: String
  Payload: JSON
}

input AwsKinesisVideoArchivedMediaGetClipInput {
  StreamName: String
  StreamARN: String
  ClipFragmentSelector: AwsKinesisVideoArchivedMediaGetClipClipFragmentSelectorInput!
}

input AwsKinesisVideoArchivedMediaGetClipClipFragmentSelectorInput {
  FragmentSelectorType: String!
  TimestampRange: AwsKinesisVideoArchivedMediaGetClipClipFragmentSelectorTimestampRangeInput!
}

input AwsKinesisVideoArchivedMediaGetClipClipFragmentSelectorTimestampRangeInput {
  StartTimestamp: Date!
  EndTimestamp: Date!
}

type AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLOutput {
  DASHStreamingSessionURL: String
}

input AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLInput {
  StreamName: String
  StreamARN: String
  PlaybackMode: String
  DisplayFragmentTimestamp: String
  DisplayFragmentNumber: String
  DASHFragmentSelector: AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLDASHFragmentSelectorInput
  Expires: Int
  MaxManifestFragmentResults: JSON
}

input AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLDASHFragmentSelectorInput {
  FragmentSelectorType: String
  TimestampRange: AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLDASHFragmentSelectorTimestampRangeInput
}

input AwsKinesisVideoArchivedMediaGetDASHStreamingSessionURLDASHFragmentSelectorTimestampRangeInput {
  StartTimestamp: Date
  EndTimestamp: Date
}

type AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLOutput {
  HLSStreamingSessionURL: String
}

input AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLInput {
  StreamName: String
  StreamARN: String
  PlaybackMode: String
  HLSFragmentSelector: AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLHLSFragmentSelectorInput
  ContainerFormat: String
  DiscontinuityMode: String
  DisplayFragmentTimestamp: String
  Expires: Int
  MaxMediaPlaylistFragmentResults: JSON
}

input AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLHLSFragmentSelectorInput {
  FragmentSelectorType: String
  TimestampRange: AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLHLSFragmentSelectorTimestampRangeInput
}

input AwsKinesisVideoArchivedMediaGetHLSStreamingSessionURLHLSFragmentSelectorTimestampRangeInput {
  StartTimestamp: Date
  EndTimestamp: Date
}

type AwsKinesisVideoArchivedMediaGetMediaForFragmentListOutput {
  ContentType: String
  Payload: JSON
}

input AwsKinesisVideoArchivedMediaGetMediaForFragmentListInput {
  StreamName: String
  StreamARN: String
  Fragments: [String]!
}

type AwsKinesisVideoArchivedMediaListFragmentsOutput {
  Fragments: [AwsKinesisVideoArchivedMediaListFragmentsOutputFragments]
  NextToken: String
}

type AwsKinesisVideoArchivedMediaListFragmentsOutputFragments {
  FragmentNumber: String
  FragmentSizeInBytes: JSON
  ProducerTimestamp: Date
  ServerTimestamp: Date
  FragmentLengthInMilliseconds: JSON
}

input AwsKinesisVideoArchivedMediaListFragmentsInput {
  StreamName: String
  StreamARN: String
  MaxResults: JSON
  NextToken: String
  FragmentSelector: AwsKinesisVideoArchivedMediaListFragmentsFragmentSelectorInput
}

input AwsKinesisVideoArchivedMediaListFragmentsFragmentSelectorInput {
  FragmentSelectorType: String!
  TimestampRange: AwsKinesisVideoArchivedMediaListFragmentsFragmentSelectorTimestampRangeInput!
}

input AwsKinesisVideoArchivedMediaListFragmentsFragmentSelectorTimestampRangeInput {
  StartTimestamp: Date!
  EndTimestamp: Date!
}

"""Amazon Kinesis Video Streams Media (2017-09-30)"""
type AwsKinesisVideoMedia {
  getMedia(input: AwsKinesisVideoMediaGetMediaInput!, config: AwsConfig): AwsKinesisVideoMediaGetMediaOutput
}

type AwsKinesisVideoMediaGetMediaOutput {
  ContentType: String
  Payload: JSON
}

input AwsKinesisVideoMediaGetMediaInput {
  StreamName: String
  StreamARN: String
  StartSelector: AwsKinesisVideoMediaGetMediaStartSelectorInput!
}

input AwsKinesisVideoMediaGetMediaStartSelectorInput {
  StartSelectorType: String!
  AfterFragmentNumber: String
  StartTimestamp: Date
  ContinuationToken: String
}

"""Amazon Kinesis Video Signaling Channels (2019-12-04)"""
type AwsKinesisVideoSignalingChannels {
  getIceServerConfig(input: AwsKinesisVideoSignalingChannelsGetIceServerConfigInput!, config: AwsConfig): AwsKinesisVideoSignalingChannelsGetIceServerConfigOutput
  sendAlexaOfferToMaster(input: AwsKinesisVideoSignalingChannelsSendAlexaOfferToMasterInput!, config: AwsConfig): AwsKinesisVideoSignalingChannelsSendAlexaOfferToMasterOutput
}

type AwsKinesisVideoSignalingChannelsGetIceServerConfigOutput {
  IceServerList: [AwsKinesisVideoSignalingChannelsGetIceServerConfigOutputIceServerList]
}

type AwsKinesisVideoSignalingChannelsGetIceServerConfigOutputIceServerList {
  Uris: [String]
  Username: String
  Password: String
  Ttl: Int
}

input AwsKinesisVideoSignalingChannelsGetIceServerConfigInput {
  ChannelARN: String!
  ClientId: String
  Service: String
  Username: String
}

type AwsKinesisVideoSignalingChannelsSendAlexaOfferToMasterOutput {
  Answer: String
}

input AwsKinesisVideoSignalingChannelsSendAlexaOfferToMasterInput {
  ChannelARN: String!
  SenderClientId: String!
  MessagePayload: String!
}

"""AWS Lake Formation (2017-03-31)"""
type AwsLakeFormation {
  addLFTagsToResource(input: AwsLakeFormationAddLFTagsToResourceInput!, config: AwsConfig): AwsLakeFormationAddLFTagsToResourceOutput
  batchGrantPermissions(input: AwsLakeFormationBatchGrantPermissionsInput!, config: AwsConfig): AwsLakeFormationBatchGrantPermissionsOutput
  batchRevokePermissions(input: AwsLakeFormationBatchRevokePermissionsInput!, config: AwsConfig): AwsLakeFormationBatchRevokePermissionsOutput
  createLFTag(input: AwsLakeFormationCreateLFTagInput!, config: AwsConfig): JSON
  deleteLFTag(input: AwsLakeFormationDeleteLFTagInput!, config: AwsConfig): JSON
  deregisterResource(input: AwsLakeFormationDeregisterResourceInput!, config: AwsConfig): JSON
  describeResource(input: AwsLakeFormationDescribeResourceInput!, config: AwsConfig): AwsLakeFormationDescribeResourceOutput
  getDataLakeSettings(input: AwsLakeFormationGetDataLakeSettingsInput, config: AwsConfig): AwsLakeFormationGetDataLakeSettingsOutput
  getEffectivePermissionsForPath(input: AwsLakeFormationGetEffectivePermissionsForPathInput!, config: AwsConfig): AwsLakeFormationGetEffectivePermissionsForPathOutput
  getLFTag(input: AwsLakeFormationGetLFTagInput!, config: AwsConfig): AwsLakeFormationGetLFTagOutput
  getResourceLFTags(input: AwsLakeFormationGetResourceLFTagsInput!, config: AwsConfig): AwsLakeFormationGetResourceLFTagsOutput
  grantPermissions(input: AwsLakeFormationGrantPermissionsInput!, config: AwsConfig): JSON
  listLFTags(input: AwsLakeFormationListLFTagsInput, config: AwsConfig): AwsLakeFormationListLFTagsOutput
  listPermissions(input: AwsLakeFormationListPermissionsInput, config: AwsConfig): AwsLakeFormationListPermissionsOutput
  listResources(input: AwsLakeFormationListResourcesInput, config: AwsConfig): AwsLakeFormationListResourcesOutput
  putDataLakeSettings(input: AwsLakeFormationPutDataLakeSettingsInput!, config: AwsConfig): JSON
  registerResource(input: AwsLakeFormationRegisterResourceInput!, config: AwsConfig): JSON
  removeLFTagsFromResource(input: AwsLakeFormationRemoveLFTagsFromResourceInput!, config: AwsConfig): AwsLakeFormationRemoveLFTagsFromResourceOutput
  revokePermissions(input: AwsLakeFormationRevokePermissionsInput!, config: AwsConfig): JSON
  searchDatabasesByLFTags(input: AwsLakeFormationSearchDatabasesByLFTagsInput!, config: AwsConfig): AwsLakeFormationSearchDatabasesByLFTagsOutput
  searchTablesByLFTags(input: AwsLakeFormationSearchTablesByLFTagsInput!, config: AwsConfig): AwsLakeFormationSearchTablesByLFTagsOutput
  updateLFTag(input: AwsLakeFormationUpdateLFTagInput!, config: AwsConfig): JSON
  updateResource(input: AwsLakeFormationUpdateResourceInput!, config: AwsConfig): JSON
}

type AwsLakeFormationAddLFTagsToResourceOutput {
  Failures: [AwsLakeFormationSp]
}

type AwsLakeFormationSp {
  LFTag: AwsLakeFormationSn
  Error: AwsLakeFormationSr
}

type AwsLakeFormationSn {
  CatalogId: String
  TagKey: String!
  TagValues: [String]!
}

type AwsLakeFormationSr {
  ErrorCode: String
  ErrorMessage: String
}

input AwsLakeFormationAddLFTagsToResourceInput {
  CatalogId: String
  Resource: AwsLakeFormationS3Input!
  LFTags: [AwsLakeFormationSnInput]!
}

input AwsLakeFormationS3Input {
  Catalog: JSON
  Database: AwsLakeFormationS5Input
  Table: AwsLakeFormationS7Input
  TableWithColumns: AwsLakeFormationS3TableWithColumnsInput
  DataLocation: AwsLakeFormationS3DataLocationInput
  LFTag: AwsLakeFormationS3LFTagInput
  LFTagPolicy: AwsLakeFormationS3LFTagPolicyInput
}

input AwsLakeFormationS5Input {
  CatalogId: String
  Name: String!
}

input AwsLakeFormationS7Input {
  CatalogId: String
  DatabaseName: String!
  Name: String
  TableWildcard: JSON
}

input AwsLakeFormationS3TableWithColumnsInput {
  CatalogId: String
  DatabaseName: String!
  Name: String!
  ColumnNames: [String]
  ColumnWildcard: AwsLakeFormationS3TableWithColumnsColumnWildcardInput
}

input AwsLakeFormationS3TableWithColumnsColumnWildcardInput {
  ExcludedColumnNames: [String]
}

input AwsLakeFormationS3DataLocationInput {
  CatalogId: String
  ResourceArn: String!
}

input AwsLakeFormationS3LFTagInput {
  CatalogId: String
  TagKey: String!
  TagValues: [String]!
}

input AwsLakeFormationS3LFTagPolicyInput {
  CatalogId: String
  ResourceType: String!
  Expression: [AwsLakeFormationSjInput]!
}

input AwsLakeFormationSjInput {
  TagKey: String!
  TagValues: [String]!
}

input AwsLakeFormationSnInput {
  CatalogId: String
  TagKey: String!
  TagValues: [String]!
}

type AwsLakeFormationBatchGrantPermissionsOutput {
  Failures: [AwsLakeFormationS12]
}

type AwsLakeFormationS12 {
  RequestEntry: AwsLakeFormationSv
  Error: AwsLakeFormationSr
}

type AwsLakeFormationSv {
  Id: String!
  Principal: AwsLakeFormationSx
  Resource: AwsLakeFormationS3
  Permissions: [String]
  PermissionsWithGrantOption: [String]
}

type AwsLakeFormationSx {
  DataLakePrincipalIdentifier: String
}

type AwsLakeFormationS3 {
  Catalog: JSON
  Database: AwsLakeFormationS5
  Table: AwsLakeFormationS7
  TableWithColumns: AwsLakeFormationS3TableWithColumns
  DataLocation: AwsLakeFormationS3DataLocation
  LFTag: AwsLakeFormationS3LFTag
  LFTagPolicy: AwsLakeFormationS3LFTagPolicy
}

type AwsLakeFormationS5 {
  CatalogId: String
  Name: String!
}

type AwsLakeFormationS7 {
  CatalogId: String
  DatabaseName: String!
  Name: String
  TableWildcard: JSON
}

type AwsLakeFormationS3TableWithColumns {
  CatalogId: String
  DatabaseName: String!
  Name: String!
  ColumnNames: [String]
  ColumnWildcard: AwsLakeFormationS3TableWithColumnsColumnWildcard
}

type AwsLakeFormationS3TableWithColumnsColumnWildcard {
  ExcludedColumnNames: [String]
}

type AwsLakeFormationS3DataLocation {
  CatalogId: String
  ResourceArn: String!
}

type AwsLakeFormationS3LFTag {
  CatalogId: String
  TagKey: String!
  TagValues: [String]!
}

type AwsLakeFormationS3LFTagPolicy {
  CatalogId: String
  ResourceType: String!
  Expression: [AwsLakeFormationSj]!
}

type AwsLakeFormationSj {
  TagKey: String!
  TagValues: [String]!
}

input AwsLakeFormationBatchGrantPermissionsInput {
  CatalogId: String
  Entries: [AwsLakeFormationSvInput]!
}

input AwsLakeFormationSvInput {
  Id: String!
  Principal: AwsLakeFormationSxInput
  Resource: AwsLakeFormationS3Input
  Permissions: [String]
  PermissionsWithGrantOption: [String]
}

input AwsLakeFormationSxInput {
  DataLakePrincipalIdentifier: String
}

type AwsLakeFormationBatchRevokePermissionsOutput {
  Failures: [AwsLakeFormationS12]
}

input AwsLakeFormationBatchRevokePermissionsInput {
  CatalogId: String
  Entries: [AwsLakeFormationSvInput]!
}

input AwsLakeFormationCreateLFTagInput {
  CatalogId: String
  TagKey: String!
  TagValues: [String]!
}

input AwsLakeFormationDeleteLFTagInput {
  CatalogId: String
  TagKey: String!
}

input AwsLakeFormationDeregisterResourceInput {
  ResourceArn: String!
}

type AwsLakeFormationDescribeResourceOutput {
  ResourceInfo: AwsLakeFormationS1e
}

type AwsLakeFormationS1e {
  ResourceArn: String
  RoleArn: String
  LastModified: Date
}

input AwsLakeFormationDescribeResourceInput {
  ResourceArn: String!
}

type AwsLakeFormationGetDataLakeSettingsOutput {
  DataLakeSettings: AwsLakeFormationS1j
}

type AwsLakeFormationS1j {
  DataLakeAdmins: [AwsLakeFormationSx]
  CreateDatabaseDefaultPermissions: [AwsLakeFormationS1l]
  CreateTableDefaultPermissions: [AwsLakeFormationS1l]
  TrustedResourceOwners: [String]
}

type AwsLakeFormationS1l {
  Principal: AwsLakeFormationSx
  Permissions: [String]
}

input AwsLakeFormationGetDataLakeSettingsInput {
  CatalogId: String
}

type AwsLakeFormationGetEffectivePermissionsForPathOutput {
  Permissions: [AwsLakeFormationS1s]
  NextToken: String
}

type AwsLakeFormationS1s {
  Principal: AwsLakeFormationSx
  Resource: AwsLakeFormationS3
  Permissions: [String]
  PermissionsWithGrantOption: [String]
  AdditionalDetails: AwsLakeFormationS1sAdditionalDetails
}

type AwsLakeFormationS1sAdditionalDetails {
  ResourceShare: [String]
}

input AwsLakeFormationGetEffectivePermissionsForPathInput {
  CatalogId: String
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsLakeFormationGetLFTagOutput {
  CatalogId: String
  TagKey: String
  TagValues: [String]
}

input AwsLakeFormationGetLFTagInput {
  CatalogId: String
  TagKey: String!
}

type AwsLakeFormationGetResourceLFTagsOutput {
  LFTagOnDatabase: [AwsLakeFormationSn]
  LFTagsOnTable: [AwsLakeFormationSn]
  LFTagsOnColumns: [AwsLakeFormationS22]
}

type AwsLakeFormationS22 {
  Name: String
  LFTags: [AwsLakeFormationSn]
}

input AwsLakeFormationGetResourceLFTagsInput {
  CatalogId: String
  Resource: AwsLakeFormationS3Input!
  ShowAssignedLFTags: Boolean
}

input AwsLakeFormationGrantPermissionsInput {
  CatalogId: String
  Principal: AwsLakeFormationSxInput!
  Resource: AwsLakeFormationS3Input!
  Permissions: [String]!
  PermissionsWithGrantOption: [String]
}

type AwsLakeFormationListLFTagsOutput {
  LFTags: [AwsLakeFormationSn]
  NextToken: String
}

input AwsLakeFormationListLFTagsInput {
  CatalogId: String
  ResourceShareType: String
  MaxResults: Int
  NextToken: String
}

type AwsLakeFormationListPermissionsOutput {
  PrincipalResourcePermissions: [AwsLakeFormationS1s]
  NextToken: String
}

input AwsLakeFormationListPermissionsInput {
  CatalogId: String
  Principal: AwsLakeFormationSxInput
  ResourceType: String
  Resource: AwsLakeFormationS3Input
  NextToken: String
  MaxResults: Int
}

type AwsLakeFormationListResourcesOutput {
  ResourceInfoList: [AwsLakeFormationS1e]
  NextToken: String
}

input AwsLakeFormationListResourcesInput {
  FilterConditionList: [AwsLakeFormationListResourcesFilterConditionListInput]
  MaxResults: Int
  NextToken: String
}

input AwsLakeFormationListResourcesFilterConditionListInput {
  Field: String
  ComparisonOperator: String
  StringValueList: [String]
}

input AwsLakeFormationPutDataLakeSettingsInput {
  CatalogId: String
  DataLakeSettings: AwsLakeFormationS1jInput!
}

input AwsLakeFormationS1jInput {
  DataLakeAdmins: [AwsLakeFormationSxInput]
  CreateDatabaseDefaultPermissions: [AwsLakeFormationS1lInput]
  CreateTableDefaultPermissions: [AwsLakeFormationS1lInput]
  TrustedResourceOwners: [String]
}

input AwsLakeFormationS1lInput {
  Principal: AwsLakeFormationSxInput
  Permissions: [String]
}

input AwsLakeFormationRegisterResourceInput {
  ResourceArn: String!
  UseServiceLinkedRole: Boolean
  RoleArn: String
}

type AwsLakeFormationRemoveLFTagsFromResourceOutput {
  Failures: [AwsLakeFormationSp]
}

input AwsLakeFormationRemoveLFTagsFromResourceInput {
  CatalogId: String
  Resource: AwsLakeFormationS3Input!
  LFTags: [AwsLakeFormationSnInput]!
}

input AwsLakeFormationRevokePermissionsInput {
  CatalogId: String
  Principal: AwsLakeFormationSxInput!
  Resource: AwsLakeFormationS3Input!
  Permissions: [String]!
  PermissionsWithGrantOption: [String]
}

type AwsLakeFormationSearchDatabasesByLFTagsOutput {
  NextToken: String
  DatabaseList: [AwsLakeFormationSearchDatabasesByLFTagsOutputDatabaseList]
}

type AwsLakeFormationSearchDatabasesByLFTagsOutputDatabaseList {
  Database: AwsLakeFormationS5
  LFTags: [AwsLakeFormationSn]
}

input AwsLakeFormationSearchDatabasesByLFTagsInput {
  NextToken: String
  MaxResults: Int
  CatalogId: String
  Expression: [AwsLakeFormationSjInput]!
}

type AwsLakeFormationSearchTablesByLFTagsOutput {
  NextToken: String
  TableList: [AwsLakeFormationSearchTablesByLFTagsOutputTableList]
}

type AwsLakeFormationSearchTablesByLFTagsOutputTableList {
  Table: AwsLakeFormationS7
  LFTagOnDatabase: [AwsLakeFormationSn]
  LFTagsOnTable: [AwsLakeFormationSn]
  LFTagsOnColumns: [AwsLakeFormationS22]
}

input AwsLakeFormationSearchTablesByLFTagsInput {
  NextToken: String
  MaxResults: Int
  CatalogId: String
  Expression: [AwsLakeFormationSjInput]!
}

input AwsLakeFormationUpdateLFTagInput {
  CatalogId: String
  TagKey: String!
  TagValuesToDelete: [String]
  TagValuesToAdd: [String]
}

input AwsLakeFormationUpdateResourceInput {
  RoleArn: String!
  ResourceArn: String!
}

"""AWS Lambda (2015-03-31)"""
type AwsLambda {
  addLayerVersionPermission(input: AwsLambdaAddLayerVersionPermissionInput!, config: AwsConfig): AwsLambdaAddLayerVersionPermissionOutput
  addPermission(input: AwsLambdaAddPermissionInput!, config: AwsConfig): AwsLambdaAddPermissionOutput
  createAlias(input: AwsLambdaCreateAliasInput!, config: AwsConfig): JSON
  createCodeSigningConfig(input: AwsLambdaCreateCodeSigningConfigInput!, config: AwsConfig): AwsLambdaCreateCodeSigningConfigOutput
  createEventSourceMapping(input: AwsLambdaCreateEventSourceMappingInput!, config: AwsConfig): JSON
  createFunction(input: AwsLambdaCreateFunctionInput!, config: AwsConfig): JSON
  deleteAlias(input: AwsLambdaDeleteAliasInput!, config: AwsConfig): JSON
  deleteCodeSigningConfig(input: AwsLambdaDeleteCodeSigningConfigInput!, config: AwsConfig): JSON
  deleteEventSourceMapping(input: AwsLambdaDeleteEventSourceMappingInput!, config: AwsConfig): JSON
  deleteFunction(input: AwsLambdaDeleteFunctionInput!, config: AwsConfig): JSON
  deleteFunctionCodeSigningConfig(input: AwsLambdaDeleteFunctionCodeSigningConfigInput!, config: AwsConfig): JSON
  deleteFunctionConcurrency(input: AwsLambdaDeleteFunctionConcurrencyInput!, config: AwsConfig): JSON
  deleteFunctionEventInvokeConfig(input: AwsLambdaDeleteFunctionEventInvokeConfigInput!, config: AwsConfig): JSON
  deleteLayerVersion(input: AwsLambdaDeleteLayerVersionInput!, config: AwsConfig): JSON
  deleteProvisionedConcurrencyConfig(input: AwsLambdaDeleteProvisionedConcurrencyConfigInput!, config: AwsConfig): JSON
  getAccountSettings(input: JSON, config: AwsConfig): AwsLambdaGetAccountSettingsOutput
  getAlias(input: AwsLambdaGetAliasInput!, config: AwsConfig): JSON
  getCodeSigningConfig(input: AwsLambdaGetCodeSigningConfigInput!, config: AwsConfig): AwsLambdaGetCodeSigningConfigOutput
  getEventSourceMapping(input: AwsLambdaGetEventSourceMappingInput!, config: AwsConfig): JSON
  getFunction(input: AwsLambdaGetFunctionInput!, config: AwsConfig): AwsLambdaGetFunctionOutput
  getFunctionCodeSigningConfig(input: AwsLambdaGetFunctionCodeSigningConfigInput!, config: AwsConfig): AwsLambdaGetFunctionCodeSigningConfigOutput
  getFunctionConcurrency(input: AwsLambdaGetFunctionConcurrencyInput!, config: AwsConfig): AwsLambdaGetFunctionConcurrencyOutput
  getFunctionConfiguration(input: AwsLambdaGetFunctionConfigurationInput!, config: AwsConfig): JSON
  getFunctionEventInvokeConfig(input: AwsLambdaGetFunctionEventInvokeConfigInput!, config: AwsConfig): JSON
  getLayerVersion(input: AwsLambdaGetLayerVersionInput!, config: AwsConfig): JSON
  getLayerVersionByArn(input: AwsLambdaGetLayerVersionByArnInput!, config: AwsConfig): JSON
  getLayerVersionPolicy(input: AwsLambdaGetLayerVersionPolicyInput!, config: AwsConfig): AwsLambdaGetLayerVersionPolicyOutput
  getPolicy(input: AwsLambdaGetPolicyInput!, config: AwsConfig): AwsLambdaGetPolicyOutput
  getProvisionedConcurrencyConfig(input: AwsLambdaGetProvisionedConcurrencyConfigInput!, config: AwsConfig): AwsLambdaGetProvisionedConcurrencyConfigOutput
  invoke(input: AwsLambdaInvokeInput!, config: AwsConfig): AwsLambdaInvokeOutput
  invokeAsync(input: AwsLambdaInvokeAsyncInput!, config: AwsConfig): AwsLambdaInvokeAsyncOutput
  listAliases(input: AwsLambdaListAliasesInput!, config: AwsConfig): AwsLambdaListAliasesOutput
  listCodeSigningConfigs(input: AwsLambdaListCodeSigningConfigsInput, config: AwsConfig): AwsLambdaListCodeSigningConfigsOutput
  listEventSourceMappings(input: AwsLambdaListEventSourceMappingsInput, config: AwsConfig): AwsLambdaListEventSourceMappingsOutput
  listFunctionEventInvokeConfigs(input: AwsLambdaListFunctionEventInvokeConfigsInput!, config: AwsConfig): AwsLambdaListFunctionEventInvokeConfigsOutput
  listFunctions(input: AwsLambdaListFunctionsInput, config: AwsConfig): AwsLambdaListFunctionsOutput
  listFunctionsByCodeSigningConfig(input: AwsLambdaListFunctionsByCodeSigningConfigInput!, config: AwsConfig): AwsLambdaListFunctionsByCodeSigningConfigOutput
  listLayerVersions(input: AwsLambdaListLayerVersionsInput!, config: AwsConfig): AwsLambdaListLayerVersionsOutput
  listLayers(input: AwsLambdaListLayersInput, config: AwsConfig): AwsLambdaListLayersOutput
  listProvisionedConcurrencyConfigs(input: AwsLambdaListProvisionedConcurrencyConfigsInput!, config: AwsConfig): AwsLambdaListProvisionedConcurrencyConfigsOutput
  listTags(input: AwsLambdaListTagsInput!, config: AwsConfig): AwsLambdaListTagsOutput
  listVersionsByFunction(input: AwsLambdaListVersionsByFunctionInput!, config: AwsConfig): AwsLambdaListVersionsByFunctionOutput
  publishLayerVersion(input: AwsLambdaPublishLayerVersionInput!, config: AwsConfig): AwsLambdaPublishLayerVersionOutput
  publishVersion(input: AwsLambdaPublishVersionInput!, config: AwsConfig): JSON
  putFunctionCodeSigningConfig(input: AwsLambdaPutFunctionCodeSigningConfigInput!, config: AwsConfig): AwsLambdaPutFunctionCodeSigningConfigOutput
  putFunctionConcurrency(input: AwsLambdaPutFunctionConcurrencyInput!, config: AwsConfig): JSON
  putFunctionEventInvokeConfig(input: AwsLambdaPutFunctionEventInvokeConfigInput!, config: AwsConfig): JSON
  putProvisionedConcurrencyConfig(input: AwsLambdaPutProvisionedConcurrencyConfigInput!, config: AwsConfig): AwsLambdaPutProvisionedConcurrencyConfigOutput
  removeLayerVersionPermission(input: AwsLambdaRemoveLayerVersionPermissionInput!, config: AwsConfig): JSON
  removePermission(input: AwsLambdaRemovePermissionInput!, config: AwsConfig): JSON
  tagResource(input: AwsLambdaTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLambdaUntagResourceInput!, config: AwsConfig): JSON
  updateAlias(input: AwsLambdaUpdateAliasInput!, config: AwsConfig): JSON
  updateCodeSigningConfig(input: AwsLambdaUpdateCodeSigningConfigInput!, config: AwsConfig): AwsLambdaUpdateCodeSigningConfigOutput
  updateEventSourceMapping(input: AwsLambdaUpdateEventSourceMappingInput!, config: AwsConfig): JSON
  updateFunctionCode(input: AwsLambdaUpdateFunctionCodeInput!, config: AwsConfig): JSON
  updateFunctionConfiguration(input: AwsLambdaUpdateFunctionConfigurationInput!, config: AwsConfig): JSON
  updateFunctionEventInvokeConfig(input: AwsLambdaUpdateFunctionEventInvokeConfigInput!, config: AwsConfig): JSON
}

type AwsLambdaAddLayerVersionPermissionOutput {
  Statement: String
  RevisionId: String
}

input AwsLambdaAddLayerVersionPermissionInput {
  LayerName: String!
  VersionNumber: JSON!
  StatementId: String!
  Action: String!
  Principal: String!
  OrganizationId: String
  RevisionId: String
}

type AwsLambdaAddPermissionOutput {
  Statement: String
}

input AwsLambdaAddPermissionInput {
  FunctionName: String!
  StatementId: String!
  Action: String!
  Principal: String!
  SourceArn: String
  SourceAccount: String
  EventSourceToken: String
  Qualifier: String
  RevisionId: String
}

input AwsLambdaCreateAliasInput {
  FunctionName: String!
  Name: String!
  FunctionVersion: String!
  Description: String
  RoutingConfig: AwsLambdaSnInput
}

input AwsLambdaSnInput {
  AdditionalVersionWeights: JSON
}

type AwsLambdaCreateCodeSigningConfigOutput {
  CodeSigningConfig: AwsLambdaSz!
}

type AwsLambdaSz {
  CodeSigningConfigId: String!
  CodeSigningConfigArn: String!
  Description: String
  AllowedPublishers: AwsLambdaSu!
  CodeSigningPolicies: AwsLambdaSw!
  LastModified: String!
}

type AwsLambdaSu {
  SigningProfileVersionArns: [String]!
}

type AwsLambdaSw {
  UntrustedArtifactOnDeployment: String
}

input AwsLambdaCreateCodeSigningConfigInput {
  Description: String
  AllowedPublishers: AwsLambdaSuInput!
  CodeSigningPolicies: AwsLambdaSwInput
}

input AwsLambdaSuInput {
  SigningProfileVersionArns: [String]!
}

input AwsLambdaSwInput {
  UntrustedArtifactOnDeployment: String
}

input AwsLambdaCreateEventSourceMappingInput {
  EventSourceArn: String
  FunctionName: String!
  Enabled: Boolean
  BatchSize: Int
  MaximumBatchingWindowInSeconds: Int
  ParallelizationFactor: Int
  StartingPosition: String
  StartingPositionTimestamp: Date
  DestinationConfig: AwsLambdaS1aInput
  MaximumRecordAgeInSeconds: Int
  BisectBatchOnFunctionError: Boolean
  MaximumRetryAttempts: Int
  TumblingWindowInSeconds: Int
  Topics: [String]
  Queues: [String]
  SourceAccessConfigurations: [AwsLambdaS1mInput]
  SelfManagedEventSource: AwsLambdaS1qInput
  FunctionResponseTypes: [String]
}

input AwsLambdaS1aInput {
  OnSuccess: AwsLambdaS1aOnSuccessInput
  OnFailure: AwsLambdaS1aOnFailureInput
}

input AwsLambdaS1aOnSuccessInput {
  Destination: String
}

input AwsLambdaS1aOnFailureInput {
  Destination: String
}

input AwsLambdaS1mInput {
  Type: String
  URI: String
}

input AwsLambdaS1qInput {
  Endpoints: JSON
}

input AwsLambdaCreateFunctionInput {
  FunctionName: String!
  Runtime: String
  Role: String!
  Handler: String
  Code: AwsLambdaCreateFunctionCodeInput!
  Description: String
  Timeout: Int
  MemorySize: Int
  Publish: Boolean
  VpcConfig: AwsLambdaS2aInput
  PackageType: String
  DeadLetterConfig: AwsLambdaS2gInput
  Environment: AwsLambdaS2iInput
  KMSKeyArn: String
  TracingConfig: AwsLambdaS2nInput
  Tags: JSON
  Layers: [String]
  FileSystemConfigs: [AwsLambdaS2uInput]
  ImageConfig: AwsLambdaS2yInput
  CodeSigningConfigArn: String
}

input AwsLambdaCreateFunctionCodeInput {
  ZipFile: JSON
  S3Bucket: String
  S3Key: String
  S3ObjectVersion: String
  ImageUri: String
}

input AwsLambdaS2aInput {
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsLambdaS2gInput {
  TargetArn: String
}

input AwsLambdaS2iInput {
  Variables: JSON
}

input AwsLambdaS2nInput {
  Mode: String
}

input AwsLambdaS2uInput {
  Arn: String!
  LocalMountPath: String!
}

input AwsLambdaS2yInput {
  EntryPoint: [String]
  Command: [String]
  WorkingDirectory: String
}

input AwsLambdaDeleteAliasInput {
  FunctionName: String!
  Name: String!
}

input AwsLambdaDeleteCodeSigningConfigInput {
  CodeSigningConfigArn: String!
}

input AwsLambdaDeleteEventSourceMappingInput {
  UUID: String!
}

input AwsLambdaDeleteFunctionInput {
  FunctionName: String!
  Qualifier: String
}

input AwsLambdaDeleteFunctionCodeSigningConfigInput {
  FunctionName: String!
}

input AwsLambdaDeleteFunctionConcurrencyInput {
  FunctionName: String!
}

input AwsLambdaDeleteFunctionEventInvokeConfigInput {
  FunctionName: String!
  Qualifier: String
}

input AwsLambdaDeleteLayerVersionInput {
  LayerName: String!
  VersionNumber: JSON!
}

input AwsLambdaDeleteProvisionedConcurrencyConfigInput {
  FunctionName: String!
  Qualifier: String!
}

type AwsLambdaGetAccountSettingsOutput {
  AccountLimit: AwsLambdaGetAccountSettingsOutputAccountLimit
  AccountUsage: AwsLambdaGetAccountSettingsOutputAccountUsage
}

type AwsLambdaGetAccountSettingsOutputAccountLimit {
  TotalCodeSize: JSON
  CodeSizeUnzipped: JSON
  CodeSizeZipped: JSON
  ConcurrentExecutions: Int
  UnreservedConcurrentExecutions: Int
}

type AwsLambdaGetAccountSettingsOutputAccountUsage {
  TotalCodeSize: JSON
  FunctionCount: JSON
}

input AwsLambdaGetAliasInput {
  FunctionName: String!
  Name: String!
}

type AwsLambdaGetCodeSigningConfigOutput {
  CodeSigningConfig: AwsLambdaSz!
}

input AwsLambdaGetCodeSigningConfigInput {
  CodeSigningConfigArn: String!
}

input AwsLambdaGetEventSourceMappingInput {
  UUID: String!
}

type AwsLambdaGetFunctionOutput {
  Configuration: AwsLambdaS31
  Code: AwsLambdaGetFunctionOutputCode
  Tags: JSON
  Concurrency: AwsLambdaS48
}

type AwsLambdaS31 {
  FunctionName: String
  FunctionArn: String
  Runtime: String
  Role: String
  Handler: String
  CodeSize: JSON
  Description: String
  Timeout: Int
  MemorySize: Int
  LastModified: String
  CodeSha256: String
  Version: String
  VpcConfig: AwsLambdaS31VpcConfig
  DeadLetterConfig: AwsLambdaS2g
  Environment: AwsLambdaS31Environment
  KMSKeyArn: String
  TracingConfig: AwsLambdaS31TracingConfig
  MasterArn: String
  RevisionId: String
  Layers: [AwsLambdaS31Layers]
  State: String
  StateReason: String
  StateReasonCode: String
  LastUpdateStatus: String
  LastUpdateStatusReason: String
  LastUpdateStatusReasonCode: String
  FileSystemConfigs: [AwsLambdaS2u]
  PackageType: String
  ImageConfigResponse: AwsLambdaS31ImageConfigResponse
  SigningProfileVersionArn: String
  SigningJobArn: String
}

type AwsLambdaS31VpcConfig {
  SubnetIds: [String]
  SecurityGroupIds: [String]
  VpcId: String
}

type AwsLambdaS2g {
  TargetArn: String
}

type AwsLambdaS31Environment {
  Variables: JSON
  Error: AwsLambdaS31EnvironmentError
}

type AwsLambdaS31EnvironmentError {
  ErrorCode: String
  Message: String
}

type AwsLambdaS31TracingConfig {
  Mode: String
}

type AwsLambdaS31Layers {
  Arn: String
  CodeSize: JSON
  SigningProfileVersionArn: String
  SigningJobArn: String
}

type AwsLambdaS2u {
  Arn: String!
  LocalMountPath: String!
}

type AwsLambdaS31ImageConfigResponse {
  ImageConfig: AwsLambdaS2y
  Error: AwsLambdaS31ImageConfigResponseError
}

type AwsLambdaS2y {
  EntryPoint: [String]
  Command: [String]
  WorkingDirectory: String
}

type AwsLambdaS31ImageConfigResponseError {
  ErrorCode: String
  Message: String
}

type AwsLambdaGetFunctionOutputCode {
  RepositoryType: String
  Location: String
  ImageUri: String
  ResolvedImageUri: String
}

type AwsLambdaS48 {
  ReservedConcurrentExecutions: Int
}

input AwsLambdaGetFunctionInput {
  FunctionName: String!
  Qualifier: String
}

type AwsLambdaGetFunctionCodeSigningConfigOutput {
  CodeSigningConfigArn: String!
  FunctionName: String!
}

input AwsLambdaGetFunctionCodeSigningConfigInput {
  FunctionName: String!
}

type AwsLambdaGetFunctionConcurrencyOutput {
  ReservedConcurrentExecutions: Int
}

input AwsLambdaGetFunctionConcurrencyInput {
  FunctionName: String!
}

input AwsLambdaGetFunctionConfigurationInput {
  FunctionName: String!
  Qualifier: String
}

input AwsLambdaGetFunctionEventInvokeConfigInput {
  FunctionName: String!
  Qualifier: String
}

input AwsLambdaGetLayerVersionInput {
  LayerName: String!
  VersionNumber: JSON!
}

input AwsLambdaGetLayerVersionByArnInput {
  Arn: String!
}

type AwsLambdaGetLayerVersionPolicyOutput {
  Policy: String
  RevisionId: String
}

input AwsLambdaGetLayerVersionPolicyInput {
  LayerName: String!
  VersionNumber: JSON!
}

type AwsLambdaGetPolicyOutput {
  Policy: String
  RevisionId: String
}

input AwsLambdaGetPolicyInput {
  FunctionName: String!
  Qualifier: String
}

type AwsLambdaGetProvisionedConcurrencyConfigOutput {
  RequestedProvisionedConcurrentExecutions: Int
  AvailableProvisionedConcurrentExecutions: Int
  AllocatedProvisionedConcurrentExecutions: Int
  Status: String
  StatusReason: String
  LastModified: String
}

input AwsLambdaGetProvisionedConcurrencyConfigInput {
  FunctionName: String!
  Qualifier: String!
}

type AwsLambdaInvokeOutput {
  StatusCode: Int
  FunctionError: String
  LogResult: String
  Payload: JSON
  ExecutedVersion: String
}

input AwsLambdaInvokeInput {
  FunctionName: String!
  InvocationType: String
  LogType: String
  ClientContext: String
  Payload: JSON
  Qualifier: String
}

type AwsLambdaInvokeAsyncOutput {
  Status: Int
}

input AwsLambdaInvokeAsyncInput {
  FunctionName: String!
  InvokeArgs: JSON!
}

type AwsLambdaListAliasesOutput {
  NextMarker: String
  Aliases: [AwsLambdaSr]
}

type AwsLambdaSr {
  AliasArn: String
  Name: String
  FunctionVersion: String
  Description: String
  RoutingConfig: AwsLambdaSn
  RevisionId: String
}

type AwsLambdaSn {
  AdditionalVersionWeights: JSON
}

input AwsLambdaListAliasesInput {
  FunctionName: String!
  FunctionVersion: String
  Marker: String
  MaxItems: Int
}

type AwsLambdaListCodeSigningConfigsOutput {
  NextMarker: String
  CodeSigningConfigs: [AwsLambdaSz]
}

input AwsLambdaListCodeSigningConfigsInput {
  Marker: String
  MaxItems: Int
}

type AwsLambdaListEventSourceMappingsOutput {
  NextMarker: String
  EventSourceMappings: [AwsLambdaS1x]
}

type AwsLambdaS1x {
  UUID: String
  StartingPosition: String
  StartingPositionTimestamp: Date
  BatchSize: Int
  MaximumBatchingWindowInSeconds: Int
  ParallelizationFactor: Int
  EventSourceArn: String
  FunctionArn: String
  LastModified: Date
  LastProcessingResult: String
  State: String
  StateTransitionReason: String
  DestinationConfig: AwsLambdaS1a
  Topics: [String]
  Queues: [String]
  SourceAccessConfigurations: [AwsLambdaS1m]
  SelfManagedEventSource: AwsLambdaS1q
  MaximumRecordAgeInSeconds: Int
  BisectBatchOnFunctionError: Boolean
  MaximumRetryAttempts: Int
  TumblingWindowInSeconds: Int
  FunctionResponseTypes: [String]
}

type AwsLambdaS1a {
  OnSuccess: AwsLambdaS1aOnSuccess
  OnFailure: AwsLambdaS1aOnFailure
}

type AwsLambdaS1aOnSuccess {
  Destination: String
}

type AwsLambdaS1aOnFailure {
  Destination: String
}

type AwsLambdaS1m {
  Type: String
  URI: String
}

type AwsLambdaS1q {
  Endpoints: JSON
}

input AwsLambdaListEventSourceMappingsInput {
  EventSourceArn: String
  FunctionName: String
  Marker: String
  MaxItems: Int
}

type AwsLambdaListFunctionEventInvokeConfigsOutput {
  FunctionEventInvokeConfigs: [AwsLambdaS4g]
  NextMarker: String
}

type AwsLambdaS4g {
  LastModified: Date
  FunctionArn: String
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
  DestinationConfig: AwsLambdaS1a
}

input AwsLambdaListFunctionEventInvokeConfigsInput {
  FunctionName: String!
  Marker: String
  MaxItems: Int
}

type AwsLambdaListFunctionsOutput {
  NextMarker: String
  Functions: [AwsLambdaS31]
}

input AwsLambdaListFunctionsInput {
  MasterRegion: String
  FunctionVersion: String
  Marker: String
  MaxItems: Int
}

type AwsLambdaListFunctionsByCodeSigningConfigOutput {
  NextMarker: String
  FunctionArns: [String]
}

input AwsLambdaListFunctionsByCodeSigningConfigInput {
  CodeSigningConfigArn: String!
  Marker: String
  MaxItems: Int
}

type AwsLambdaListLayerVersionsOutput {
  NextMarker: String
  LayerVersions: [AwsLambdaS5x]
}

type AwsLambdaS5x {
  LayerVersionArn: String
  Version: JSON
  Description: String
  CreatedDate: String
  CompatibleRuntimes: [String]
  LicenseInfo: String
}

input AwsLambdaListLayerVersionsInput {
  CompatibleRuntime: String
  LayerName: String!
  Marker: String
  MaxItems: Int
}

type AwsLambdaListLayersOutput {
  NextMarker: String
  Layers: [AwsLambdaListLayersOutputLayers]
}

type AwsLambdaListLayersOutputLayers {
  LayerName: String
  LayerArn: String
  LatestMatchingVersion: AwsLambdaS5x
}

input AwsLambdaListLayersInput {
  CompatibleRuntime: String
  Marker: String
  MaxItems: Int
}

type AwsLambdaListProvisionedConcurrencyConfigsOutput {
  ProvisionedConcurrencyConfigs: [AwsLambdaListProvisionedConcurrencyConfigsOutputProvisionedConcurrencyConfigs]
  NextMarker: String
}

type AwsLambdaListProvisionedConcurrencyConfigsOutputProvisionedConcurrencyConfigs {
  FunctionArn: String
  RequestedProvisionedConcurrentExecutions: Int
  AvailableProvisionedConcurrentExecutions: Int
  AllocatedProvisionedConcurrentExecutions: Int
  Status: String
  StatusReason: String
  LastModified: String
}

input AwsLambdaListProvisionedConcurrencyConfigsInput {
  FunctionName: String!
  Marker: String
  MaxItems: Int
}

type AwsLambdaListTagsOutput {
  Tags: JSON
}

input AwsLambdaListTagsInput {
  Resource: String!
}

type AwsLambdaListVersionsByFunctionOutput {
  NextMarker: String
  Versions: [AwsLambdaS31]
}

input AwsLambdaListVersionsByFunctionInput {
  FunctionName: String!
  Marker: String
  MaxItems: Int
}

type AwsLambdaPublishLayerVersionOutput {
  Content: AwsLambdaS4l
  LayerArn: String
  LayerVersionArn: String
  Description: String
  CreatedDate: String
  Version: JSON
  CompatibleRuntimes: [String]
  LicenseInfo: String
}

type AwsLambdaS4l {
  Location: String
  CodeSha256: String
  CodeSize: JSON
  SigningProfileVersionArn: String
  SigningJobArn: String
}

input AwsLambdaPublishLayerVersionInput {
  LayerName: String!
  Description: String
  Content: AwsLambdaPublishLayerVersionContentInput!
  CompatibleRuntimes: [String]
  LicenseInfo: String
}

input AwsLambdaPublishLayerVersionContentInput {
  S3Bucket: String
  S3Key: String
  S3ObjectVersion: String
  ZipFile: JSON
}

input AwsLambdaPublishVersionInput {
  FunctionName: String!
  CodeSha256: String
  Description: String
  RevisionId: String
}

type AwsLambdaPutFunctionCodeSigningConfigOutput {
  CodeSigningConfigArn: String!
  FunctionName: String!
}

input AwsLambdaPutFunctionCodeSigningConfigInput {
  CodeSigningConfigArn: String!
  FunctionName: String!
}

input AwsLambdaPutFunctionConcurrencyInput {
  FunctionName: String!
  ReservedConcurrentExecutions: Int!
}

input AwsLambdaPutFunctionEventInvokeConfigInput {
  FunctionName: String!
  Qualifier: String
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
  DestinationConfig: AwsLambdaS1aInput
}

type AwsLambdaPutProvisionedConcurrencyConfigOutput {
  RequestedProvisionedConcurrentExecutions: Int
  AvailableProvisionedConcurrentExecutions: Int
  AllocatedProvisionedConcurrentExecutions: Int
  Status: String
  StatusReason: String
  LastModified: String
}

input AwsLambdaPutProvisionedConcurrencyConfigInput {
  FunctionName: String!
  Qualifier: String!
  ProvisionedConcurrentExecutions: Int!
}

input AwsLambdaRemoveLayerVersionPermissionInput {
  LayerName: String!
  VersionNumber: JSON!
  StatementId: String!
  RevisionId: String
}

input AwsLambdaRemovePermissionInput {
  FunctionName: String!
  StatementId: String!
  Qualifier: String
  RevisionId: String
}

input AwsLambdaTagResourceInput {
  Resource: String!
  Tags: JSON!
}

input AwsLambdaUntagResourceInput {
  Resource: String!
  TagKeys: [String]!
}

input AwsLambdaUpdateAliasInput {
  FunctionName: String!
  Name: String!
  FunctionVersion: String
  Description: String
  RoutingConfig: AwsLambdaSnInput
  RevisionId: String
}

type AwsLambdaUpdateCodeSigningConfigOutput {
  CodeSigningConfig: AwsLambdaSz!
}

input AwsLambdaUpdateCodeSigningConfigInput {
  CodeSigningConfigArn: String!
  Description: String
  AllowedPublishers: AwsLambdaSuInput
  CodeSigningPolicies: AwsLambdaSwInput
}

input AwsLambdaUpdateEventSourceMappingInput {
  UUID: String!
  FunctionName: String
  Enabled: Boolean
  BatchSize: Int
  MaximumBatchingWindowInSeconds: Int
  DestinationConfig: AwsLambdaS1aInput
  MaximumRecordAgeInSeconds: Int
  BisectBatchOnFunctionError: Boolean
  MaximumRetryAttempts: Int
  ParallelizationFactor: Int
  SourceAccessConfigurations: [AwsLambdaS1mInput]
  TumblingWindowInSeconds: Int
  FunctionResponseTypes: [String]
}

input AwsLambdaUpdateFunctionCodeInput {
  FunctionName: String!
  ZipFile: JSON
  S3Bucket: String
  S3Key: String
  S3ObjectVersion: String
  ImageUri: String
  Publish: Boolean
  DryRun: Boolean
  RevisionId: String
}

input AwsLambdaUpdateFunctionConfigurationInput {
  FunctionName: String!
  Role: String
  Handler: String
  Description: String
  Timeout: Int
  MemorySize: Int
  VpcConfig: AwsLambdaS2aInput
  Environment: AwsLambdaS2iInput
  Runtime: String
  DeadLetterConfig: AwsLambdaS2gInput
  KMSKeyArn: String
  TracingConfig: AwsLambdaS2nInput
  RevisionId: String
  Layers: [String]
  FileSystemConfigs: [AwsLambdaS2uInput]
  ImageConfig: AwsLambdaS2yInput
}

input AwsLambdaUpdateFunctionEventInvokeConfigInput {
  FunctionName: String!
  Qualifier: String
  MaximumRetryAttempts: Int
  MaximumEventAgeInSeconds: Int
  DestinationConfig: AwsLambdaS1aInput
}

"""Amazon Lex Model Building Service (2017-04-19)"""
type AwsLexModelBuildingService {
  createBotVersion(input: AwsLexModelBuildingServiceCreateBotVersionInput!, config: AwsConfig): AwsLexModelBuildingServiceCreateBotVersionOutput
  createIntentVersion(input: AwsLexModelBuildingServiceCreateIntentVersionInput!, config: AwsConfig): AwsLexModelBuildingServiceCreateIntentVersionOutput
  createSlotTypeVersion(input: AwsLexModelBuildingServiceCreateSlotTypeVersionInput!, config: AwsConfig): AwsLexModelBuildingServiceCreateSlotTypeVersionOutput
  deleteBot(input: AwsLexModelBuildingServiceDeleteBotInput!, config: AwsConfig): JSON
  deleteBotAlias(input: AwsLexModelBuildingServiceDeleteBotAliasInput!, config: AwsConfig): JSON
  deleteBotChannelAssociation(input: AwsLexModelBuildingServiceDeleteBotChannelAssociationInput!, config: AwsConfig): JSON
  deleteBotVersion(input: AwsLexModelBuildingServiceDeleteBotVersionInput!, config: AwsConfig): JSON
  deleteIntent(input: AwsLexModelBuildingServiceDeleteIntentInput!, config: AwsConfig): JSON
  deleteIntentVersion(input: AwsLexModelBuildingServiceDeleteIntentVersionInput!, config: AwsConfig): JSON
  deleteSlotType(input: AwsLexModelBuildingServiceDeleteSlotTypeInput!, config: AwsConfig): JSON
  deleteSlotTypeVersion(input: AwsLexModelBuildingServiceDeleteSlotTypeVersionInput!, config: AwsConfig): JSON
  deleteUtterances(input: AwsLexModelBuildingServiceDeleteUtterancesInput!, config: AwsConfig): JSON
  getBot(input: AwsLexModelBuildingServiceGetBotInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotOutput
  getBotAlias(input: AwsLexModelBuildingServiceGetBotAliasInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotAliasOutput
  getBotAliases(input: AwsLexModelBuildingServiceGetBotAliasesInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotAliasesOutput
  getBotChannelAssociation(input: AwsLexModelBuildingServiceGetBotChannelAssociationInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotChannelAssociationOutput
  getBotChannelAssociations(input: AwsLexModelBuildingServiceGetBotChannelAssociationsInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotChannelAssociationsOutput
  getBotVersions(input: AwsLexModelBuildingServiceGetBotVersionsInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBotVersionsOutput
  getBots(input: AwsLexModelBuildingServiceGetBotsInput, config: AwsConfig): AwsLexModelBuildingServiceGetBotsOutput
  getBuiltinIntent(input: AwsLexModelBuildingServiceGetBuiltinIntentInput!, config: AwsConfig): AwsLexModelBuildingServiceGetBuiltinIntentOutput
  getBuiltinIntents(input: AwsLexModelBuildingServiceGetBuiltinIntentsInput, config: AwsConfig): AwsLexModelBuildingServiceGetBuiltinIntentsOutput
  getBuiltinSlotTypes(input: AwsLexModelBuildingServiceGetBuiltinSlotTypesInput, config: AwsConfig): AwsLexModelBuildingServiceGetBuiltinSlotTypesOutput
  getExport(input: AwsLexModelBuildingServiceGetExportInput!, config: AwsConfig): AwsLexModelBuildingServiceGetExportOutput
  getImport(input: AwsLexModelBuildingServiceGetImportInput!, config: AwsConfig): AwsLexModelBuildingServiceGetImportOutput
  getIntent(input: AwsLexModelBuildingServiceGetIntentInput!, config: AwsConfig): AwsLexModelBuildingServiceGetIntentOutput
  getIntentVersions(input: AwsLexModelBuildingServiceGetIntentVersionsInput!, config: AwsConfig): AwsLexModelBuildingServiceGetIntentVersionsOutput
  getIntents(input: AwsLexModelBuildingServiceGetIntentsInput, config: AwsConfig): AwsLexModelBuildingServiceGetIntentsOutput
  getSlotType(input: AwsLexModelBuildingServiceGetSlotTypeInput!, config: AwsConfig): AwsLexModelBuildingServiceGetSlotTypeOutput
  getSlotTypeVersions(input: AwsLexModelBuildingServiceGetSlotTypeVersionsInput!, config: AwsConfig): AwsLexModelBuildingServiceGetSlotTypeVersionsOutput
  getSlotTypes(input: AwsLexModelBuildingServiceGetSlotTypesInput, config: AwsConfig): AwsLexModelBuildingServiceGetSlotTypesOutput
  getUtterancesView(input: AwsLexModelBuildingServiceGetUtterancesViewInput!, config: AwsConfig): AwsLexModelBuildingServiceGetUtterancesViewOutput
  listTagsForResource(input: AwsLexModelBuildingServiceListTagsForResourceInput!, config: AwsConfig): AwsLexModelBuildingServiceListTagsForResourceOutput
  putBot(input: AwsLexModelBuildingServicePutBotInput!, config: AwsConfig): AwsLexModelBuildingServicePutBotOutput
  putBotAlias(input: AwsLexModelBuildingServicePutBotAliasInput!, config: AwsConfig): AwsLexModelBuildingServicePutBotAliasOutput
  putIntent(input: AwsLexModelBuildingServicePutIntentInput!, config: AwsConfig): AwsLexModelBuildingServicePutIntentOutput
  putSlotType(input: AwsLexModelBuildingServicePutSlotTypeInput!, config: AwsConfig): AwsLexModelBuildingServicePutSlotTypeOutput
  startImport(input: AwsLexModelBuildingServiceStartImportInput!, config: AwsConfig): AwsLexModelBuildingServiceStartImportOutput
  tagResource(input: AwsLexModelBuildingServiceTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLexModelBuildingServiceUntagResourceInput!, config: AwsConfig): JSON
}

type AwsLexModelBuildingServiceCreateBotVersionOutput {
  name: String
  description: String
  intents: [AwsLexModelBuildingServiceS6]
  clarificationPrompt: AwsLexModelBuildingServiceSa
  abortStatement: AwsLexModelBuildingServiceSi
  status: String
  failureReason: String
  lastUpdatedDate: Date
  createdDate: Date
  idleSessionTTLInSeconds: Int
  voiceId: String
  checksum: String
  version: String
  locale: String
  childDirected: Boolean
  enableModelImprovements: Boolean
  detectSentiment: Boolean
}

type AwsLexModelBuildingServiceS6 {
  intentName: String!
  intentVersion: String!
}

type AwsLexModelBuildingServiceSa {
  messages: [AwsLexModelBuildingServiceSb]!
  maxAttempts: Int!
  responseCard: String
}

type AwsLexModelBuildingServiceSb {
  contentType: String!
  content: String!
  groupNumber: Int
}

type AwsLexModelBuildingServiceSi {
  messages: [AwsLexModelBuildingServiceSb]!
  responseCard: String
}

input AwsLexModelBuildingServiceCreateBotVersionInput {
  name: String!
  checksum: String
}

type AwsLexModelBuildingServiceCreateIntentVersionOutput {
  name: String
  description: String
  slots: [AwsLexModelBuildingServiceSq]
  sampleUtterances: [String]
  confirmationPrompt: AwsLexModelBuildingServiceSa
  rejectionStatement: AwsLexModelBuildingServiceSi
  followUpPrompt: AwsLexModelBuildingServiceS14
  conclusionStatement: AwsLexModelBuildingServiceSi
  dialogCodeHook: AwsLexModelBuildingServiceS15
  fulfillmentActivity: AwsLexModelBuildingServiceS18
  parentIntentSignature: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  kendraConfiguration: AwsLexModelBuildingServiceS1b
  inputContexts: [AwsLexModelBuildingServiceS1f]
  outputContexts: [AwsLexModelBuildingServiceS1i]
}

type AwsLexModelBuildingServiceSq {
  name: String!
  description: String
  slotConstraint: String!
  slotType: String
  slotTypeVersion: String
  valueElicitationPrompt: AwsLexModelBuildingServiceSa
  priority: Int
  sampleUtterances: [String]
  responseCard: String
  obfuscationSetting: String
  defaultValueSpec: AwsLexModelBuildingServiceSqDefaultValueSpec
}

type AwsLexModelBuildingServiceSqDefaultValueSpec {
  defaultValueList: [AwsLexModelBuildingServiceSqDefaultValueSpecDefaultValueList]!
}

type AwsLexModelBuildingServiceSqDefaultValueSpecDefaultValueList {
  defaultValue: String!
}

type AwsLexModelBuildingServiceS14 {
  prompt: AwsLexModelBuildingServiceSa!
  rejectionStatement: AwsLexModelBuildingServiceSi!
}

type AwsLexModelBuildingServiceS15 {
  uri: String!
  messageVersion: String!
}

type AwsLexModelBuildingServiceS18 {
  type: String!
  codeHook: AwsLexModelBuildingServiceS15
}

type AwsLexModelBuildingServiceS1b {
  kendraIndex: String!
  queryFilterString: String
  role: String!
}

type AwsLexModelBuildingServiceS1f {
  name: String!
}

type AwsLexModelBuildingServiceS1i {
  name: String!
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

input AwsLexModelBuildingServiceCreateIntentVersionInput {
  name: String!
  checksum: String
}

type AwsLexModelBuildingServiceCreateSlotTypeVersionOutput {
  name: String
  description: String
  enumerationValues: [AwsLexModelBuildingServiceS1q]
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  valueSelectionStrategy: String
  parentSlotTypeSignature: String
  slotTypeConfigurations: [AwsLexModelBuildingServiceS1v]
}

type AwsLexModelBuildingServiceS1q {
  value: String!
  synonyms: [String]
}

type AwsLexModelBuildingServiceS1v {
  regexConfiguration: AwsLexModelBuildingServiceS1vRegexConfiguration
}

type AwsLexModelBuildingServiceS1vRegexConfiguration {
  pattern: String!
}

input AwsLexModelBuildingServiceCreateSlotTypeVersionInput {
  name: String!
  checksum: String
}

input AwsLexModelBuildingServiceDeleteBotInput {
  name: String!
}

input AwsLexModelBuildingServiceDeleteBotAliasInput {
  name: String!
  botName: String!
}

input AwsLexModelBuildingServiceDeleteBotChannelAssociationInput {
  name: String!
  botName: String!
  botAlias: String!
}

input AwsLexModelBuildingServiceDeleteBotVersionInput {
  name: String!
  version: String!
}

input AwsLexModelBuildingServiceDeleteIntentInput {
  name: String!
}

input AwsLexModelBuildingServiceDeleteIntentVersionInput {
  name: String!
  version: String!
}

input AwsLexModelBuildingServiceDeleteSlotTypeInput {
  name: String!
}

input AwsLexModelBuildingServiceDeleteSlotTypeVersionInput {
  name: String!
  version: String!
}

input AwsLexModelBuildingServiceDeleteUtterancesInput {
  botName: String!
  userId: String!
}

type AwsLexModelBuildingServiceGetBotOutput {
  name: String
  description: String
  intents: [AwsLexModelBuildingServiceS6]
  enableModelImprovements: Boolean
  nluIntentConfidenceThreshold: JSON
  clarificationPrompt: AwsLexModelBuildingServiceSa
  abortStatement: AwsLexModelBuildingServiceSi
  status: String
  failureReason: String
  lastUpdatedDate: Date
  createdDate: Date
  idleSessionTTLInSeconds: Int
  voiceId: String
  checksum: String
  version: String
  locale: String
  childDirected: Boolean
  detectSentiment: Boolean
}

input AwsLexModelBuildingServiceGetBotInput {
  name: String!
  versionOrAlias: String!
}

type AwsLexModelBuildingServiceGetBotAliasOutput {
  name: String
  description: String
  botVersion: String
  botName: String
  lastUpdatedDate: Date
  createdDate: Date
  checksum: String
  conversationLogs: AwsLexModelBuildingServiceS2h
}

type AwsLexModelBuildingServiceS2h {
  logSettings: [AwsLexModelBuildingServiceS2hLogSettings]
  iamRoleArn: String
}

type AwsLexModelBuildingServiceS2hLogSettings {
  logType: String
  destination: String
  kmsKeyArn: String
  resourceArn: String
  resourcePrefix: String
}

input AwsLexModelBuildingServiceGetBotAliasInput {
  name: String!
  botName: String!
}

type AwsLexModelBuildingServiceGetBotAliasesOutput {
  BotAliases: [AwsLexModelBuildingServiceGetBotAliasesOutputBotAliases]
  nextToken: String
}

type AwsLexModelBuildingServiceGetBotAliasesOutputBotAliases {
  name: String
  description: String
  botVersion: String
  botName: String
  lastUpdatedDate: Date
  createdDate: Date
  checksum: String
  conversationLogs: AwsLexModelBuildingServiceS2h
}

input AwsLexModelBuildingServiceGetBotAliasesInput {
  botName: String!
  nextToken: String
  maxResults: Int
  nameContains: String
}

type AwsLexModelBuildingServiceGetBotChannelAssociationOutput {
  name: String
  description: String
  botAlias: String
  botName: String
  createdDate: Date
  type: String
  botConfiguration: JSON
  status: String
  failureReason: String
}

input AwsLexModelBuildingServiceGetBotChannelAssociationInput {
  name: String!
  botName: String!
  botAlias: String!
}

type AwsLexModelBuildingServiceGetBotChannelAssociationsOutput {
  botChannelAssociations: [AwsLexModelBuildingServiceGetBotChannelAssociationsOutputBotChannelAssociations]
  nextToken: String
}

type AwsLexModelBuildingServiceGetBotChannelAssociationsOutputBotChannelAssociations {
  name: String
  description: String
  botAlias: String
  botName: String
  createdDate: Date
  type: String
  botConfiguration: JSON
  status: String
  failureReason: String
}

input AwsLexModelBuildingServiceGetBotChannelAssociationsInput {
  botName: String!
  botAlias: String!
  nextToken: String
  maxResults: Int
  nameContains: String
}

type AwsLexModelBuildingServiceGetBotVersionsOutput {
  bots: [AwsLexModelBuildingServiceS38]
  nextToken: String
}

type AwsLexModelBuildingServiceS38 {
  name: String
  description: String
  status: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
}

input AwsLexModelBuildingServiceGetBotVersionsInput {
  name: String!
  nextToken: String
  maxResults: Int
}

type AwsLexModelBuildingServiceGetBotsOutput {
  bots: [AwsLexModelBuildingServiceS38]
  nextToken: String
}

input AwsLexModelBuildingServiceGetBotsInput {
  nextToken: String
  maxResults: Int
  nameContains: String
}

type AwsLexModelBuildingServiceGetBuiltinIntentOutput {
  signature: String
  supportedLocales: [String]
  slots: [AwsLexModelBuildingServiceGetBuiltinIntentOutputSlots]
}

type AwsLexModelBuildingServiceGetBuiltinIntentOutputSlots {
  name: String
}

input AwsLexModelBuildingServiceGetBuiltinIntentInput {
  signature: String!
}

type AwsLexModelBuildingServiceGetBuiltinIntentsOutput {
  intents: [AwsLexModelBuildingServiceGetBuiltinIntentsOutputIntents]
  nextToken: String
}

type AwsLexModelBuildingServiceGetBuiltinIntentsOutputIntents {
  signature: String
  supportedLocales: [String]
}

input AwsLexModelBuildingServiceGetBuiltinIntentsInput {
  locale: String
  signatureContains: String
  nextToken: String
  maxResults: Int
}

type AwsLexModelBuildingServiceGetBuiltinSlotTypesOutput {
  slotTypes: [AwsLexModelBuildingServiceGetBuiltinSlotTypesOutputSlotTypes]
  nextToken: String
}

type AwsLexModelBuildingServiceGetBuiltinSlotTypesOutputSlotTypes {
  signature: String
  supportedLocales: [String]
}

input AwsLexModelBuildingServiceGetBuiltinSlotTypesInput {
  locale: String
  signatureContains: String
  nextToken: String
  maxResults: Int
}

type AwsLexModelBuildingServiceGetExportOutput {
  name: String
  version: String
  resourceType: String
  exportType: String
  exportStatus: String
  failureReason: String
  url: String
}

input AwsLexModelBuildingServiceGetExportInput {
  name: String!
  version: String!
  resourceType: String!
  exportType: String!
}

type AwsLexModelBuildingServiceGetImportOutput {
  name: String
  resourceType: String
  mergeStrategy: String
  importId: String
  importStatus: String
  failureReason: [String]
  createdDate: Date
}

input AwsLexModelBuildingServiceGetImportInput {
  importId: String!
}

type AwsLexModelBuildingServiceGetIntentOutput {
  name: String
  description: String
  slots: [AwsLexModelBuildingServiceSq]
  sampleUtterances: [String]
  confirmationPrompt: AwsLexModelBuildingServiceSa
  rejectionStatement: AwsLexModelBuildingServiceSi
  followUpPrompt: AwsLexModelBuildingServiceS14
  conclusionStatement: AwsLexModelBuildingServiceSi
  dialogCodeHook: AwsLexModelBuildingServiceS15
  fulfillmentActivity: AwsLexModelBuildingServiceS18
  parentIntentSignature: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  kendraConfiguration: AwsLexModelBuildingServiceS1b
  inputContexts: [AwsLexModelBuildingServiceS1f]
  outputContexts: [AwsLexModelBuildingServiceS1i]
}

input AwsLexModelBuildingServiceGetIntentInput {
  name: String!
  version: String!
}

type AwsLexModelBuildingServiceGetIntentVersionsOutput {
  intents: [AwsLexModelBuildingServiceS45]
  nextToken: String
}

type AwsLexModelBuildingServiceS45 {
  name: String
  description: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
}

input AwsLexModelBuildingServiceGetIntentVersionsInput {
  name: String!
  nextToken: String
  maxResults: Int
}

type AwsLexModelBuildingServiceGetIntentsOutput {
  intents: [AwsLexModelBuildingServiceS45]
  nextToken: String
}

input AwsLexModelBuildingServiceGetIntentsInput {
  nextToken: String
  maxResults: Int
  nameContains: String
}

type AwsLexModelBuildingServiceGetSlotTypeOutput {
  name: String
  description: String
  enumerationValues: [AwsLexModelBuildingServiceS1q]
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  valueSelectionStrategy: String
  parentSlotTypeSignature: String
  slotTypeConfigurations: [AwsLexModelBuildingServiceS1v]
}

input AwsLexModelBuildingServiceGetSlotTypeInput {
  name: String!
  version: String!
}

type AwsLexModelBuildingServiceGetSlotTypeVersionsOutput {
  slotTypes: [AwsLexModelBuildingServiceS4d]
  nextToken: String
}

type AwsLexModelBuildingServiceS4d {
  name: String
  description: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
}

input AwsLexModelBuildingServiceGetSlotTypeVersionsInput {
  name: String!
  nextToken: String
  maxResults: Int
}

type AwsLexModelBuildingServiceGetSlotTypesOutput {
  slotTypes: [AwsLexModelBuildingServiceS4d]
  nextToken: String
}

input AwsLexModelBuildingServiceGetSlotTypesInput {
  nextToken: String
  maxResults: Int
  nameContains: String
}

type AwsLexModelBuildingServiceGetUtterancesViewOutput {
  botName: String
  utterances: [AwsLexModelBuildingServiceGetUtterancesViewOutputUtterances]
}

type AwsLexModelBuildingServiceGetUtterancesViewOutputUtterances {
  botVersion: String
  utterances: [AwsLexModelBuildingServiceGetUtterancesViewOutputUtterancesUtterances]
}

type AwsLexModelBuildingServiceGetUtterancesViewOutputUtterancesUtterances {
  utteranceString: String
  count: Int
  distinctUsers: Int
  firstUtteredDate: Date
  lastUtteredDate: Date
}

input AwsLexModelBuildingServiceGetUtterancesViewInput {
  botName: String!
  botVersions: [String]!
  statusType: String!
}

type AwsLexModelBuildingServiceListTagsForResourceOutput {
  tags: [AwsLexModelBuildingServiceS4u]
}

type AwsLexModelBuildingServiceS4u {
  key: String!
  value: String!
}

input AwsLexModelBuildingServiceListTagsForResourceInput {
  resourceArn: String!
}

type AwsLexModelBuildingServicePutBotOutput {
  name: String
  description: String
  intents: [AwsLexModelBuildingServiceS6]
  enableModelImprovements: Boolean
  nluIntentConfidenceThreshold: JSON
  clarificationPrompt: AwsLexModelBuildingServiceSa
  abortStatement: AwsLexModelBuildingServiceSi
  status: String
  failureReason: String
  lastUpdatedDate: Date
  createdDate: Date
  idleSessionTTLInSeconds: Int
  voiceId: String
  checksum: String
  version: String
  locale: String
  childDirected: Boolean
  createVersion: Boolean
  detectSentiment: Boolean
  tags: [AwsLexModelBuildingServiceS4u]
}

input AwsLexModelBuildingServicePutBotInput {
  name: String!
  description: String
  intents: [AwsLexModelBuildingServiceS6Input]
  enableModelImprovements: Boolean
  nluIntentConfidenceThreshold: JSON
  clarificationPrompt: AwsLexModelBuildingServiceSaInput
  abortStatement: AwsLexModelBuildingServiceSiInput
  idleSessionTTLInSeconds: Int
  voiceId: String
  checksum: String
  processBehavior: String
  locale: String!
  childDirected: Boolean!
  detectSentiment: Boolean
  createVersion: Boolean
  tags: [AwsLexModelBuildingServiceS4uInput]
}

input AwsLexModelBuildingServiceS6Input {
  intentName: String!
  intentVersion: String!
}

input AwsLexModelBuildingServiceSaInput {
  messages: [AwsLexModelBuildingServiceSbInput]!
  maxAttempts: Int!
  responseCard: String
}

input AwsLexModelBuildingServiceSbInput {
  contentType: String!
  content: String!
  groupNumber: Int
}

input AwsLexModelBuildingServiceSiInput {
  messages: [AwsLexModelBuildingServiceSbInput]!
  responseCard: String
}

input AwsLexModelBuildingServiceS4uInput {
  key: String!
  value: String!
}

type AwsLexModelBuildingServicePutBotAliasOutput {
  name: String
  description: String
  botVersion: String
  botName: String
  lastUpdatedDate: Date
  createdDate: Date
  checksum: String
  conversationLogs: AwsLexModelBuildingServiceS2h
  tags: [AwsLexModelBuildingServiceS4u]
}

input AwsLexModelBuildingServicePutBotAliasInput {
  name: String!
  description: String
  botVersion: String!
  botName: String!
  checksum: String
  conversationLogs: AwsLexModelBuildingServicePutBotAliasConversationLogsInput
  tags: [AwsLexModelBuildingServiceS4uInput]
}

input AwsLexModelBuildingServicePutBotAliasConversationLogsInput {
  logSettings: [AwsLexModelBuildingServicePutBotAliasConversationLogsLogSettingsInput]!
  iamRoleArn: String!
}

input AwsLexModelBuildingServicePutBotAliasConversationLogsLogSettingsInput {
  logType: String!
  destination: String!
  kmsKeyArn: String
  resourceArn: String!
}

type AwsLexModelBuildingServicePutIntentOutput {
  name: String
  description: String
  slots: [AwsLexModelBuildingServiceSq]
  sampleUtterances: [String]
  confirmationPrompt: AwsLexModelBuildingServiceSa
  rejectionStatement: AwsLexModelBuildingServiceSi
  followUpPrompt: AwsLexModelBuildingServiceS14
  conclusionStatement: AwsLexModelBuildingServiceSi
  dialogCodeHook: AwsLexModelBuildingServiceS15
  fulfillmentActivity: AwsLexModelBuildingServiceS18
  parentIntentSignature: String
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  createVersion: Boolean
  kendraConfiguration: AwsLexModelBuildingServiceS1b
  inputContexts: [AwsLexModelBuildingServiceS1f]
  outputContexts: [AwsLexModelBuildingServiceS1i]
}

input AwsLexModelBuildingServicePutIntentInput {
  name: String!
  description: String
  slots: [AwsLexModelBuildingServiceSqInput]
  sampleUtterances: [String]
  confirmationPrompt: AwsLexModelBuildingServiceSaInput
  rejectionStatement: AwsLexModelBuildingServiceSiInput
  followUpPrompt: AwsLexModelBuildingServiceS14Input
  conclusionStatement: AwsLexModelBuildingServiceSiInput
  dialogCodeHook: AwsLexModelBuildingServiceS15Input
  fulfillmentActivity: AwsLexModelBuildingServiceS18Input
  parentIntentSignature: String
  checksum: String
  createVersion: Boolean
  kendraConfiguration: AwsLexModelBuildingServiceS1bInput
  inputContexts: [AwsLexModelBuildingServiceS1fInput]
  outputContexts: [AwsLexModelBuildingServiceS1iInput]
}

input AwsLexModelBuildingServiceSqInput {
  name: String!
  description: String
  slotConstraint: String!
  slotType: String
  slotTypeVersion: String
  valueElicitationPrompt: AwsLexModelBuildingServiceSaInput
  priority: Int
  sampleUtterances: [String]
  responseCard: String
  obfuscationSetting: String
  defaultValueSpec: AwsLexModelBuildingServiceSqDefaultValueSpecInput
}

input AwsLexModelBuildingServiceSqDefaultValueSpecInput {
  defaultValueList: [AwsLexModelBuildingServiceSqDefaultValueSpecDefaultValueListInput]!
}

input AwsLexModelBuildingServiceSqDefaultValueSpecDefaultValueListInput {
  defaultValue: String!
}

input AwsLexModelBuildingServiceS14Input {
  prompt: AwsLexModelBuildingServiceSaInput!
  rejectionStatement: AwsLexModelBuildingServiceSiInput!
}

input AwsLexModelBuildingServiceS15Input {
  uri: String!
  messageVersion: String!
}

input AwsLexModelBuildingServiceS18Input {
  type: String!
  codeHook: AwsLexModelBuildingServiceS15Input
}

input AwsLexModelBuildingServiceS1bInput {
  kendraIndex: String!
  queryFilterString: String
  role: String!
}

input AwsLexModelBuildingServiceS1fInput {
  name: String!
}

input AwsLexModelBuildingServiceS1iInput {
  name: String!
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

type AwsLexModelBuildingServicePutSlotTypeOutput {
  name: String
  description: String
  enumerationValues: [AwsLexModelBuildingServiceS1q]
  lastUpdatedDate: Date
  createdDate: Date
  version: String
  checksum: String
  valueSelectionStrategy: String
  createVersion: Boolean
  parentSlotTypeSignature: String
  slotTypeConfigurations: [AwsLexModelBuildingServiceS1v]
}

input AwsLexModelBuildingServicePutSlotTypeInput {
  name: String!
  description: String
  enumerationValues: [AwsLexModelBuildingServiceS1qInput]
  checksum: String
  valueSelectionStrategy: String
  createVersion: Boolean
  parentSlotTypeSignature: String
  slotTypeConfigurations: [AwsLexModelBuildingServiceS1vInput]
}

input AwsLexModelBuildingServiceS1qInput {
  value: String!
  synonyms: [String]
}

input AwsLexModelBuildingServiceS1vInput {
  regexConfiguration: AwsLexModelBuildingServiceS1vRegexConfigurationInput
}

input AwsLexModelBuildingServiceS1vRegexConfigurationInput {
  pattern: String!
}

type AwsLexModelBuildingServiceStartImportOutput {
  name: String
  resourceType: String
  mergeStrategy: String
  importId: String
  importStatus: String
  tags: [AwsLexModelBuildingServiceS4u]
  createdDate: Date
}

input AwsLexModelBuildingServiceStartImportInput {
  payload: JSON!
  resourceType: String!
  mergeStrategy: String!
  tags: [AwsLexModelBuildingServiceS4uInput]
}

input AwsLexModelBuildingServiceTagResourceInput {
  resourceArn: String!
  tags: [AwsLexModelBuildingServiceS4uInput]!
}

input AwsLexModelBuildingServiceUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Amazon Lex Model Building V2 (2020-08-07)"""
type AwsLexModelsV2 {
  buildBotLocale(input: AwsLexModelsV2BuildBotLocaleInput!, config: AwsConfig): AwsLexModelsV2BuildBotLocaleOutput
  createBot(input: AwsLexModelsV2CreateBotInput!, config: AwsConfig): AwsLexModelsV2CreateBotOutput
  createBotAlias(input: AwsLexModelsV2CreateBotAliasInput!, config: AwsConfig): AwsLexModelsV2CreateBotAliasOutput
  createBotLocale(input: AwsLexModelsV2CreateBotLocaleInput!, config: AwsConfig): AwsLexModelsV2CreateBotLocaleOutput
  createBotVersion(input: AwsLexModelsV2CreateBotVersionInput!, config: AwsConfig): AwsLexModelsV2CreateBotVersionOutput
  createExport(input: AwsLexModelsV2CreateExportInput!, config: AwsConfig): AwsLexModelsV2CreateExportOutput
  createIntent(input: AwsLexModelsV2CreateIntentInput!, config: AwsConfig): AwsLexModelsV2CreateIntentOutput
  createResourcePolicy(input: AwsLexModelsV2CreateResourcePolicyInput!, config: AwsConfig): AwsLexModelsV2CreateResourcePolicyOutput
  createResourcePolicyStatement(input: AwsLexModelsV2CreateResourcePolicyStatementInput!, config: AwsConfig): AwsLexModelsV2CreateResourcePolicyStatementOutput
  createSlot(input: AwsLexModelsV2CreateSlotInput!, config: AwsConfig): AwsLexModelsV2CreateSlotOutput
  createSlotType(input: AwsLexModelsV2CreateSlotTypeInput!, config: AwsConfig): AwsLexModelsV2CreateSlotTypeOutput
  createUploadUrl(input: JSON, config: AwsConfig): AwsLexModelsV2CreateUploadUrlOutput
  deleteBot(input: AwsLexModelsV2DeleteBotInput!, config: AwsConfig): AwsLexModelsV2DeleteBotOutput
  deleteBotAlias(input: AwsLexModelsV2DeleteBotAliasInput!, config: AwsConfig): AwsLexModelsV2DeleteBotAliasOutput
  deleteBotLocale(input: AwsLexModelsV2DeleteBotLocaleInput!, config: AwsConfig): AwsLexModelsV2DeleteBotLocaleOutput
  deleteBotVersion(input: AwsLexModelsV2DeleteBotVersionInput!, config: AwsConfig): AwsLexModelsV2DeleteBotVersionOutput
  deleteExport(input: AwsLexModelsV2DeleteExportInput!, config: AwsConfig): AwsLexModelsV2DeleteExportOutput
  deleteImport(input: AwsLexModelsV2DeleteImportInput!, config: AwsConfig): AwsLexModelsV2DeleteImportOutput
  deleteIntent(input: AwsLexModelsV2DeleteIntentInput!, config: AwsConfig): JSON
  deleteResourcePolicy(input: AwsLexModelsV2DeleteResourcePolicyInput!, config: AwsConfig): AwsLexModelsV2DeleteResourcePolicyOutput
  deleteResourcePolicyStatement(input: AwsLexModelsV2DeleteResourcePolicyStatementInput!, config: AwsConfig): AwsLexModelsV2DeleteResourcePolicyStatementOutput
  deleteSlot(input: AwsLexModelsV2DeleteSlotInput!, config: AwsConfig): JSON
  deleteSlotType(input: AwsLexModelsV2DeleteSlotTypeInput!, config: AwsConfig): JSON
  describeBot(input: AwsLexModelsV2DescribeBotInput!, config: AwsConfig): AwsLexModelsV2DescribeBotOutput
  describeBotAlias(input: AwsLexModelsV2DescribeBotAliasInput!, config: AwsConfig): AwsLexModelsV2DescribeBotAliasOutput
  describeBotLocale(input: AwsLexModelsV2DescribeBotLocaleInput!, config: AwsConfig): AwsLexModelsV2DescribeBotLocaleOutput
  describeBotVersion(input: AwsLexModelsV2DescribeBotVersionInput!, config: AwsConfig): AwsLexModelsV2DescribeBotVersionOutput
  describeExport(input: AwsLexModelsV2DescribeExportInput!, config: AwsConfig): AwsLexModelsV2DescribeExportOutput
  describeImport(input: AwsLexModelsV2DescribeImportInput!, config: AwsConfig): AwsLexModelsV2DescribeImportOutput
  describeIntent(input: AwsLexModelsV2DescribeIntentInput!, config: AwsConfig): AwsLexModelsV2DescribeIntentOutput
  describeResourcePolicy(input: AwsLexModelsV2DescribeResourcePolicyInput!, config: AwsConfig): AwsLexModelsV2DescribeResourcePolicyOutput
  describeSlot(input: AwsLexModelsV2DescribeSlotInput!, config: AwsConfig): AwsLexModelsV2DescribeSlotOutput
  describeSlotType(input: AwsLexModelsV2DescribeSlotTypeInput!, config: AwsConfig): AwsLexModelsV2DescribeSlotTypeOutput
  listBotAliases(input: AwsLexModelsV2ListBotAliasesInput!, config: AwsConfig): AwsLexModelsV2ListBotAliasesOutput
  listBotLocales(input: AwsLexModelsV2ListBotLocalesInput!, config: AwsConfig): AwsLexModelsV2ListBotLocalesOutput
  listBotVersions(input: AwsLexModelsV2ListBotVersionsInput!, config: AwsConfig): AwsLexModelsV2ListBotVersionsOutput
  listBots(input: AwsLexModelsV2ListBotsInput, config: AwsConfig): AwsLexModelsV2ListBotsOutput
  listBuiltInIntents(input: AwsLexModelsV2ListBuiltInIntentsInput!, config: AwsConfig): AwsLexModelsV2ListBuiltInIntentsOutput
  listBuiltInSlotTypes(input: AwsLexModelsV2ListBuiltInSlotTypesInput!, config: AwsConfig): AwsLexModelsV2ListBuiltInSlotTypesOutput
  listExports(input: AwsLexModelsV2ListExportsInput, config: AwsConfig): AwsLexModelsV2ListExportsOutput
  listImports(input: AwsLexModelsV2ListImportsInput, config: AwsConfig): AwsLexModelsV2ListImportsOutput
  listIntents(input: AwsLexModelsV2ListIntentsInput!, config: AwsConfig): AwsLexModelsV2ListIntentsOutput
  listSlotTypes(input: AwsLexModelsV2ListSlotTypesInput!, config: AwsConfig): AwsLexModelsV2ListSlotTypesOutput
  listSlots(input: AwsLexModelsV2ListSlotsInput!, config: AwsConfig): AwsLexModelsV2ListSlotsOutput
  listTagsForResource(input: AwsLexModelsV2ListTagsForResourceInput!, config: AwsConfig): AwsLexModelsV2ListTagsForResourceOutput
  startImport(input: AwsLexModelsV2StartImportInput!, config: AwsConfig): AwsLexModelsV2StartImportOutput
  tagResource(input: AwsLexModelsV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLexModelsV2UntagResourceInput!, config: AwsConfig): JSON
  updateBot(input: AwsLexModelsV2UpdateBotInput!, config: AwsConfig): AwsLexModelsV2UpdateBotOutput
  updateBotAlias(input: AwsLexModelsV2UpdateBotAliasInput!, config: AwsConfig): AwsLexModelsV2UpdateBotAliasOutput
  updateBotLocale(input: AwsLexModelsV2UpdateBotLocaleInput!, config: AwsConfig): AwsLexModelsV2UpdateBotLocaleOutput
  updateExport(input: AwsLexModelsV2UpdateExportInput!, config: AwsConfig): AwsLexModelsV2UpdateExportOutput
  updateIntent(input: AwsLexModelsV2UpdateIntentInput!, config: AwsConfig): AwsLexModelsV2UpdateIntentOutput
  updateResourcePolicy(input: AwsLexModelsV2UpdateResourcePolicyInput!, config: AwsConfig): AwsLexModelsV2UpdateResourcePolicyOutput
  updateSlot(input: AwsLexModelsV2UpdateSlotInput!, config: AwsConfig): AwsLexModelsV2UpdateSlotOutput
  updateSlotType(input: AwsLexModelsV2UpdateSlotTypeInput!, config: AwsConfig): AwsLexModelsV2UpdateSlotTypeOutput
}

type AwsLexModelsV2BuildBotLocaleOutput {
  botId: String
  botVersion: String
  localeId: String
  botLocaleStatus: String
  lastBuildSubmittedDateTime: Date
}

input AwsLexModelsV2BuildBotLocaleInput {
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2CreateBotOutput {
  botId: String
  botName: String
  description: String
  roleArn: String
  dataPrivacy: AwsLexModelsV2Sc
  idleSessionTTLInSeconds: Int
  botStatus: String
  creationDateTime: Date
  botTags: JSON
  testBotAliasTags: JSON
}

type AwsLexModelsV2Sc {
  childDirected: Boolean!
}

input AwsLexModelsV2CreateBotInput {
  botName: String!
  description: String
  roleArn: String!
  dataPrivacy: AwsLexModelsV2ScInput!
  idleSessionTTLInSeconds: Int!
  botTags: JSON
  testBotAliasTags: JSON
}

input AwsLexModelsV2ScInput {
  childDirected: Boolean!
}

type AwsLexModelsV2CreateBotAliasOutput {
  botAliasId: String
  botAliasName: String
  description: String
  botVersion: String
  botAliasLocaleSettings: JSON
  conversationLogSettings: AwsLexModelsV2St
  sentimentAnalysisSettings: AwsLexModelsV2S16
  botAliasStatus: String
  botId: String
  creationDateTime: Date
  tags: JSON
}

type AwsLexModelsV2St {
  textLogSettings: [AwsLexModelsV2StTextLogSettings]
  audioLogSettings: [AwsLexModelsV2StAudioLogSettings]
}

type AwsLexModelsV2StTextLogSettings {
  enabled: Boolean!
  destination: AwsLexModelsV2StTextLogSettingsDestination!
}

type AwsLexModelsV2StTextLogSettingsDestination {
  cloudWatch: AwsLexModelsV2StTextLogSettingsDestinationCloudWatch!
}

type AwsLexModelsV2StTextLogSettingsDestinationCloudWatch {
  cloudWatchLogGroupArn: String!
  logPrefix: String!
}

type AwsLexModelsV2StAudioLogSettings {
  enabled: Boolean!
  destination: AwsLexModelsV2StAudioLogSettingsDestination!
}

type AwsLexModelsV2StAudioLogSettingsDestination {
  s3Bucket: AwsLexModelsV2StAudioLogSettingsDestinationS3Bucket!
}

type AwsLexModelsV2StAudioLogSettingsDestinationS3Bucket {
  kmsKeyArn: String
  s3BucketArn: String!
  logPrefix: String!
}

type AwsLexModelsV2S16 {
  detectSentiment: Boolean!
}

input AwsLexModelsV2CreateBotAliasInput {
  botAliasName: String!
  description: String
  botVersion: String
  botAliasLocaleSettings: JSON
  conversationLogSettings: AwsLexModelsV2StInput
  sentimentAnalysisSettings: AwsLexModelsV2S16Input
  botId: String!
  tags: JSON
}

input AwsLexModelsV2StInput {
  textLogSettings: [AwsLexModelsV2StTextLogSettingsInput]
  audioLogSettings: [AwsLexModelsV2StAudioLogSettingsInput]
}

input AwsLexModelsV2StTextLogSettingsInput {
  enabled: Boolean!
  destination: AwsLexModelsV2StTextLogSettingsDestinationInput!
}

input AwsLexModelsV2StTextLogSettingsDestinationInput {
  cloudWatch: AwsLexModelsV2StTextLogSettingsDestinationCloudWatchInput!
}

input AwsLexModelsV2StTextLogSettingsDestinationCloudWatchInput {
  cloudWatchLogGroupArn: String!
  logPrefix: String!
}

input AwsLexModelsV2StAudioLogSettingsInput {
  enabled: Boolean!
  destination: AwsLexModelsV2StAudioLogSettingsDestinationInput!
}

input AwsLexModelsV2StAudioLogSettingsDestinationInput {
  s3Bucket: AwsLexModelsV2StAudioLogSettingsDestinationS3BucketInput!
}

input AwsLexModelsV2StAudioLogSettingsDestinationS3BucketInput {
  kmsKeyArn: String
  s3BucketArn: String!
  logPrefix: String!
}

input AwsLexModelsV2S16Input {
  detectSentiment: Boolean!
}

type AwsLexModelsV2CreateBotLocaleOutput {
  botId: String
  botVersion: String
  localeName: String
  localeId: String
  description: String
  nluIntentConfidenceThreshold: JSON
  voiceSettings: AwsLexModelsV2S1c
  botLocaleStatus: String
  creationDateTime: Date
}

type AwsLexModelsV2S1c {
  voiceId: String!
}

input AwsLexModelsV2CreateBotLocaleInput {
  botId: String!
  botVersion: String!
  localeId: String!
  description: String
  nluIntentConfidenceThreshold: JSON!
  voiceSettings: AwsLexModelsV2S1cInput
}

input AwsLexModelsV2S1cInput {
  voiceId: String!
}

type AwsLexModelsV2CreateBotVersionOutput {
  botId: String
  description: String
  botVersion: String
  botVersionLocaleSpecification: JSON
  botStatus: String
  creationDateTime: Date
}

input AwsLexModelsV2CreateBotVersionInput {
  botId: String!
  description: String
  botVersionLocaleSpecification: JSON!
}

type AwsLexModelsV2CreateExportOutput {
  exportId: String
  resourceSpecification: AwsLexModelsV2S1m
  fileFormat: String
  exportStatus: String
  creationDateTime: Date
}

type AwsLexModelsV2S1m {
  botExportSpecification: AwsLexModelsV2S1mBotExportSpecification
  botLocaleExportSpecification: AwsLexModelsV2S1mBotLocaleExportSpecification
}

type AwsLexModelsV2S1mBotExportSpecification {
  botId: String!
  botVersion: String!
}

type AwsLexModelsV2S1mBotLocaleExportSpecification {
  botId: String!
  botVersion: String!
  localeId: String!
}

input AwsLexModelsV2CreateExportInput {
  resourceSpecification: AwsLexModelsV2S1mInput!
  fileFormat: String!
  filePassword: String
}

input AwsLexModelsV2S1mInput {
  botExportSpecification: AwsLexModelsV2S1mBotExportSpecificationInput
  botLocaleExportSpecification: AwsLexModelsV2S1mBotLocaleExportSpecificationInput
}

input AwsLexModelsV2S1mBotExportSpecificationInput {
  botId: String!
  botVersion: String!
}

input AwsLexModelsV2S1mBotLocaleExportSpecificationInput {
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2CreateIntentOutput {
  intentId: String
  intentName: String
  description: String
  parentIntentSignature: String
  sampleUtterances: [AwsLexModelsV2S1v]
  dialogCodeHook: AwsLexModelsV2S1y
  fulfillmentCodeHook: AwsLexModelsV2S1z
  intentConfirmationSetting: AwsLexModelsV2S20
  intentClosingSetting: AwsLexModelsV2S2m
  inputContexts: [AwsLexModelsV2S2n]
  outputContexts: [AwsLexModelsV2S2p]
  kendraConfiguration: AwsLexModelsV2S2t
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
}

type AwsLexModelsV2S1v {
  utterance: String!
}

type AwsLexModelsV2S1y {
  enabled: Boolean!
}

type AwsLexModelsV2S1z {
  enabled: Boolean!
}

type AwsLexModelsV2S20 {
  promptSpecification: AwsLexModelsV2S21!
  declinationResponse: AwsLexModelsV2S2l!
}

type AwsLexModelsV2S21 {
  messageGroups: [AwsLexModelsV2S22]!
  maxRetries: Int!
  allowInterrupt: Boolean
}

type AwsLexModelsV2S22 {
  message: AwsLexModelsV2S24!
  variations: [AwsLexModelsV2S24]
}

type AwsLexModelsV2S24 {
  plainTextMessage: AwsLexModelsV2S24PlainTextMessage
  customPayload: AwsLexModelsV2S24CustomPayload
  ssmlMessage: AwsLexModelsV2S24SsmlMessage
  imageResponseCard: AwsLexModelsV2S24ImageResponseCard
}

type AwsLexModelsV2S24PlainTextMessage {
  value: String!
}

type AwsLexModelsV2S24CustomPayload {
  value: String!
}

type AwsLexModelsV2S24SsmlMessage {
  value: String!
}

type AwsLexModelsV2S24ImageResponseCard {
  title: String!
  subtitle: String
  imageUrl: String
  buttons: [AwsLexModelsV2S24ImageResponseCardButtons]
}

type AwsLexModelsV2S24ImageResponseCardButtons {
  text: String!
  value: String!
}

type AwsLexModelsV2S2l {
  messageGroups: [AwsLexModelsV2S22]!
  allowInterrupt: Boolean
}

type AwsLexModelsV2S2m {
  closingResponse: AwsLexModelsV2S2l!
}

type AwsLexModelsV2S2n {
  name: String!
}

type AwsLexModelsV2S2p {
  name: String!
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

type AwsLexModelsV2S2t {
  kendraIndex: String!
  queryFilterStringEnabled: Boolean
  queryFilterString: String
}

input AwsLexModelsV2CreateIntentInput {
  intentName: String!
  description: String
  parentIntentSignature: String
  sampleUtterances: [AwsLexModelsV2S1vInput]
  dialogCodeHook: AwsLexModelsV2S1yInput
  fulfillmentCodeHook: AwsLexModelsV2S1zInput
  intentConfirmationSetting: AwsLexModelsV2S20Input
  intentClosingSetting: AwsLexModelsV2S2mInput
  inputContexts: [AwsLexModelsV2S2nInput]
  outputContexts: [AwsLexModelsV2S2pInput]
  kendraConfiguration: AwsLexModelsV2S2tInput
  botId: String!
  botVersion: String!
  localeId: String!
}

input AwsLexModelsV2S1vInput {
  utterance: String!
}

input AwsLexModelsV2S1yInput {
  enabled: Boolean!
}

input AwsLexModelsV2S1zInput {
  enabled: Boolean!
}

input AwsLexModelsV2S20Input {
  promptSpecification: AwsLexModelsV2S21Input!
  declinationResponse: AwsLexModelsV2S2lInput!
}

input AwsLexModelsV2S21Input {
  messageGroups: [AwsLexModelsV2S22Input]!
  maxRetries: Int!
  allowInterrupt: Boolean
}

input AwsLexModelsV2S22Input {
  message: AwsLexModelsV2S24Input!
  variations: [AwsLexModelsV2S24Input]
}

input AwsLexModelsV2S24Input {
  plainTextMessage: AwsLexModelsV2S24PlainTextMessageInput
  customPayload: AwsLexModelsV2S24CustomPayloadInput
  ssmlMessage: AwsLexModelsV2S24SsmlMessageInput
  imageResponseCard: AwsLexModelsV2S24ImageResponseCardInput
}

input AwsLexModelsV2S24PlainTextMessageInput {
  value: String!
}

input AwsLexModelsV2S24CustomPayloadInput {
  value: String!
}

input AwsLexModelsV2S24SsmlMessageInput {
  value: String!
}

input AwsLexModelsV2S24ImageResponseCardInput {
  title: String!
  subtitle: String
  imageUrl: String
  buttons: [AwsLexModelsV2S24ImageResponseCardButtonsInput]
}

input AwsLexModelsV2S24ImageResponseCardButtonsInput {
  text: String!
  value: String!
}

input AwsLexModelsV2S2lInput {
  messageGroups: [AwsLexModelsV2S22Input]!
  allowInterrupt: Boolean
}

input AwsLexModelsV2S2mInput {
  closingResponse: AwsLexModelsV2S2lInput!
}

input AwsLexModelsV2S2nInput {
  name: String!
}

input AwsLexModelsV2S2pInput {
  name: String!
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

input AwsLexModelsV2S2tInput {
  kendraIndex: String!
  queryFilterStringEnabled: Boolean
  queryFilterString: String
}

type AwsLexModelsV2CreateResourcePolicyOutput {
  resourceArn: String
  revisionId: String
}

input AwsLexModelsV2CreateResourcePolicyInput {
  resourceArn: String!
  policy: String!
}

type AwsLexModelsV2CreateResourcePolicyStatementOutput {
  resourceArn: String
  revisionId: String
}

input AwsLexModelsV2CreateResourcePolicyStatementInput {
  resourceArn: String!
  statementId: String!
  effect: String!
  principal: [AwsLexModelsV2CreateResourcePolicyStatementPrincipalInput]!
  action: [String]!
  condition: JSON
  expectedRevisionId: String
}

input AwsLexModelsV2CreateResourcePolicyStatementPrincipalInput {
  service: String
  arn: String
}

type AwsLexModelsV2CreateSlotOutput {
  slotId: String
  slotName: String
  description: String
  slotTypeId: String
  valueElicitationSetting: AwsLexModelsV2S3i
  obfuscationSetting: AwsLexModelsV2S3s
  botId: String
  botVersion: String
  localeId: String
  intentId: String
  creationDateTime: Date
  multipleValuesSetting: AwsLexModelsV2S3u
}

type AwsLexModelsV2S3i {
  defaultValueSpecification: AwsLexModelsV2S3iDefaultValueSpecification
  slotConstraint: String!
  promptSpecification: AwsLexModelsV2S21
  sampleUtterances: [AwsLexModelsV2S1v]
  waitAndContinueSpecification: AwsLexModelsV2S3iWaitAndContinueSpecification
}

type AwsLexModelsV2S3iDefaultValueSpecification {
  defaultValueList: [AwsLexModelsV2S3iDefaultValueSpecificationDefaultValueList]!
}

type AwsLexModelsV2S3iDefaultValueSpecificationDefaultValueList {
  defaultValue: String!
}

type AwsLexModelsV2S3iWaitAndContinueSpecification {
  waitingResponse: AwsLexModelsV2S2l!
  continueResponse: AwsLexModelsV2S2l!
  stillWaitingResponse: AwsLexModelsV2S3iWaitAndContinueSpecificationStillWaitingResponse
}

type AwsLexModelsV2S3iWaitAndContinueSpecificationStillWaitingResponse {
  messageGroups: [AwsLexModelsV2S22]!
  frequencyInSeconds: Int!
  timeoutInSeconds: Int!
  allowInterrupt: Boolean
}

type AwsLexModelsV2S3s {
  obfuscationSettingType: String!
}

type AwsLexModelsV2S3u {
  allowMultipleValues: Boolean
}

input AwsLexModelsV2CreateSlotInput {
  slotName: String!
  description: String
  slotTypeId: String!
  valueElicitationSetting: AwsLexModelsV2S3iInput!
  obfuscationSetting: AwsLexModelsV2S3sInput
  botId: String!
  botVersion: String!
  localeId: String!
  intentId: String!
  multipleValuesSetting: AwsLexModelsV2S3uInput
}

input AwsLexModelsV2S3iInput {
  defaultValueSpecification: AwsLexModelsV2S3iDefaultValueSpecificationInput
  slotConstraint: String!
  promptSpecification: AwsLexModelsV2S21Input
  sampleUtterances: [AwsLexModelsV2S1vInput]
  waitAndContinueSpecification: AwsLexModelsV2S3iWaitAndContinueSpecificationInput
}

input AwsLexModelsV2S3iDefaultValueSpecificationInput {
  defaultValueList: [AwsLexModelsV2S3iDefaultValueSpecificationDefaultValueListInput]!
}

input AwsLexModelsV2S3iDefaultValueSpecificationDefaultValueListInput {
  defaultValue: String!
}

input AwsLexModelsV2S3iWaitAndContinueSpecificationInput {
  waitingResponse: AwsLexModelsV2S2lInput!
  continueResponse: AwsLexModelsV2S2lInput!
  stillWaitingResponse: AwsLexModelsV2S3iWaitAndContinueSpecificationStillWaitingResponseInput
}

input AwsLexModelsV2S3iWaitAndContinueSpecificationStillWaitingResponseInput {
  messageGroups: [AwsLexModelsV2S22Input]!
  frequencyInSeconds: Int!
  timeoutInSeconds: Int!
  allowInterrupt: Boolean
}

input AwsLexModelsV2S3sInput {
  obfuscationSettingType: String!
}

input AwsLexModelsV2S3uInput {
  allowMultipleValues: Boolean
}

type AwsLexModelsV2CreateSlotTypeOutput {
  slotTypeId: String
  slotTypeName: String
  description: String
  slotTypeValues: [AwsLexModelsV2S3x]
  valueSelectionSetting: AwsLexModelsV2S42
  parentSlotTypeSignature: String
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
}

type AwsLexModelsV2S3x {
  sampleValue: AwsLexModelsV2S3z
  synonyms: [AwsLexModelsV2S3z]
}

type AwsLexModelsV2S3z {
  value: String!
}

type AwsLexModelsV2S42 {
  resolutionStrategy: String!
  regexFilter: AwsLexModelsV2S42RegexFilter
}

type AwsLexModelsV2S42RegexFilter {
  pattern: String!
}

input AwsLexModelsV2CreateSlotTypeInput {
  slotTypeName: String!
  description: String
  slotTypeValues: [AwsLexModelsV2S3xInput]
  valueSelectionSetting: AwsLexModelsV2S42Input!
  parentSlotTypeSignature: String
  botId: String!
  botVersion: String!
  localeId: String!
}

input AwsLexModelsV2S3xInput {
  sampleValue: AwsLexModelsV2S3zInput
  synonyms: [AwsLexModelsV2S3zInput]
}

input AwsLexModelsV2S3zInput {
  value: String!
}

input AwsLexModelsV2S42Input {
  resolutionStrategy: String!
  regexFilter: AwsLexModelsV2S42RegexFilterInput
}

input AwsLexModelsV2S42RegexFilterInput {
  pattern: String!
}

type AwsLexModelsV2CreateUploadUrlOutput {
  importId: String
  uploadUrl: String
}

type AwsLexModelsV2DeleteBotOutput {
  botId: String
  botStatus: String
}

input AwsLexModelsV2DeleteBotInput {
  botId: String!
  skipResourceInUseCheck: Boolean
}

type AwsLexModelsV2DeleteBotAliasOutput {
  botAliasId: String
  botId: String
  botAliasStatus: String
}

input AwsLexModelsV2DeleteBotAliasInput {
  botAliasId: String!
  botId: String!
  skipResourceInUseCheck: Boolean
}

type AwsLexModelsV2DeleteBotLocaleOutput {
  botId: String
  botVersion: String
  localeId: String
  botLocaleStatus: String
}

input AwsLexModelsV2DeleteBotLocaleInput {
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2DeleteBotVersionOutput {
  botId: String
  botVersion: String
  botStatus: String
}

input AwsLexModelsV2DeleteBotVersionInput {
  botId: String!
  botVersion: String!
  skipResourceInUseCheck: Boolean
}

type AwsLexModelsV2DeleteExportOutput {
  exportId: String
  exportStatus: String
}

input AwsLexModelsV2DeleteExportInput {
  exportId: String!
}

type AwsLexModelsV2DeleteImportOutput {
  importId: String
  importStatus: String
}

input AwsLexModelsV2DeleteImportInput {
  importId: String!
}

input AwsLexModelsV2DeleteIntentInput {
  intentId: String!
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2DeleteResourcePolicyOutput {
  resourceArn: String
  revisionId: String
}

input AwsLexModelsV2DeleteResourcePolicyInput {
  resourceArn: String!
  expectedRevisionId: String
}

type AwsLexModelsV2DeleteResourcePolicyStatementOutput {
  resourceArn: String
  revisionId: String
}

input AwsLexModelsV2DeleteResourcePolicyStatementInput {
  resourceArn: String!
  statementId: String!
  expectedRevisionId: String
}

input AwsLexModelsV2DeleteSlotInput {
  slotId: String!
  botId: String!
  botVersion: String!
  localeId: String!
  intentId: String!
}

input AwsLexModelsV2DeleteSlotTypeInput {
  slotTypeId: String!
  botId: String!
  botVersion: String!
  localeId: String!
  skipResourceInUseCheck: Boolean
}

type AwsLexModelsV2DescribeBotOutput {
  botId: String
  botName: String
  description: String
  roleArn: String
  dataPrivacy: AwsLexModelsV2Sc
  idleSessionTTLInSeconds: Int
  botStatus: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2DescribeBotInput {
  botId: String!
}

type AwsLexModelsV2DescribeBotAliasOutput {
  botAliasId: String
  botAliasName: String
  description: String
  botVersion: String
  botAliasLocaleSettings: JSON
  conversationLogSettings: AwsLexModelsV2St
  sentimentAnalysisSettings: AwsLexModelsV2S16
  botAliasHistoryEvents: [AwsLexModelsV2DescribeBotAliasOutputBotAliasHistoryEvents]
  botAliasStatus: String
  botId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsLexModelsV2DescribeBotAliasOutputBotAliasHistoryEvents {
  botVersion: String
  startDate: Date
  endDate: Date
}

input AwsLexModelsV2DescribeBotAliasInput {
  botAliasId: String!
  botId: String!
}

type AwsLexModelsV2DescribeBotLocaleOutput {
  botId: String
  botVersion: String
  localeId: String
  localeName: String
  description: String
  nluIntentConfidenceThreshold: JSON
  voiceSettings: AwsLexModelsV2S1c
  intentsCount: Int
  slotTypesCount: Int
  botLocaleStatus: String
  failureReasons: [String]
  creationDateTime: Date
  lastUpdatedDateTime: Date
  lastBuildSubmittedDateTime: Date
  botLocaleHistoryEvents: [AwsLexModelsV2DescribeBotLocaleOutputBotLocaleHistoryEvents]
}

type AwsLexModelsV2DescribeBotLocaleOutputBotLocaleHistoryEvents {
  event: String!
  eventDate: Date!
}

input AwsLexModelsV2DescribeBotLocaleInput {
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2DescribeBotVersionOutput {
  botId: String
  botName: String
  botVersion: String
  description: String
  roleArn: String
  dataPrivacy: AwsLexModelsV2Sc
  idleSessionTTLInSeconds: Int
  botStatus: String
  failureReasons: [String]
  creationDateTime: Date
}

input AwsLexModelsV2DescribeBotVersionInput {
  botId: String!
  botVersion: String!
}

type AwsLexModelsV2DescribeExportOutput {
  exportId: String
  resourceSpecification: AwsLexModelsV2S1m
  fileFormat: String
  exportStatus: String
  failureReasons: [String]
  downloadUrl: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2DescribeExportInput {
  exportId: String!
}

type AwsLexModelsV2DescribeImportOutput {
  importId: String
  resourceSpecification: AwsLexModelsV2S5g
  importedResourceId: String
  importedResourceName: String
  mergeStrategy: String
  importStatus: String
  failureReasons: [String]
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsLexModelsV2S5g {
  botImportSpecification: AwsLexModelsV2S5gBotImportSpecification
  botLocaleImportSpecification: AwsLexModelsV2S5gBotLocaleImportSpecification
}

type AwsLexModelsV2S5gBotImportSpecification {
  botName: String!
  roleArn: String!
  dataPrivacy: AwsLexModelsV2Sc!
  idleSessionTTLInSeconds: Int
  botTags: JSON
  testBotAliasTags: JSON
}

type AwsLexModelsV2S5gBotLocaleImportSpecification {
  botId: String!
  botVersion: String!
  localeId: String!
  nluIntentConfidenceThreshold: JSON
  voiceSettings: AwsLexModelsV2S1c
}

input AwsLexModelsV2DescribeImportInput {
  importId: String!
}

type AwsLexModelsV2DescribeIntentOutput {
  intentId: String
  intentName: String
  description: String
  parentIntentSignature: String
  sampleUtterances: [AwsLexModelsV2S1v]
  dialogCodeHook: AwsLexModelsV2S1y
  fulfillmentCodeHook: AwsLexModelsV2S1z
  slotPriorities: [AwsLexModelsV2S5n]
  intentConfirmationSetting: AwsLexModelsV2S20
  intentClosingSetting: AwsLexModelsV2S2m
  inputContexts: [AwsLexModelsV2S2n]
  outputContexts: [AwsLexModelsV2S2p]
  kendraConfiguration: AwsLexModelsV2S2t
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsLexModelsV2S5n {
  priority: Int!
  slotId: String!
}

input AwsLexModelsV2DescribeIntentInput {
  intentId: String!
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2DescribeResourcePolicyOutput {
  resourceArn: String
  policy: String
  revisionId: String
}

input AwsLexModelsV2DescribeResourcePolicyInput {
  resourceArn: String!
}

type AwsLexModelsV2DescribeSlotOutput {
  slotId: String
  slotName: String
  description: String
  slotTypeId: String
  valueElicitationSetting: AwsLexModelsV2S3i
  obfuscationSetting: AwsLexModelsV2S3s
  botId: String
  botVersion: String
  localeId: String
  intentId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  multipleValuesSetting: AwsLexModelsV2S3u
}

input AwsLexModelsV2DescribeSlotInput {
  slotId: String!
  botId: String!
  botVersion: String!
  localeId: String!
  intentId: String!
}

type AwsLexModelsV2DescribeSlotTypeOutput {
  slotTypeId: String
  slotTypeName: String
  description: String
  slotTypeValues: [AwsLexModelsV2S3x]
  valueSelectionSetting: AwsLexModelsV2S42
  parentSlotTypeSignature: String
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2DescribeSlotTypeInput {
  slotTypeId: String!
  botId: String!
  botVersion: String!
  localeId: String!
}

type AwsLexModelsV2ListBotAliasesOutput {
  botAliasSummaries: [AwsLexModelsV2ListBotAliasesOutputBotAliasSummaries]
  nextToken: String
  botId: String
}

type AwsLexModelsV2ListBotAliasesOutputBotAliasSummaries {
  botAliasId: String
  botAliasName: String
  description: String
  botVersion: String
  botAliasStatus: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListBotAliasesInput {
  botId: String!
  maxResults: Int
  nextToken: String
}

type AwsLexModelsV2ListBotLocalesOutput {
  botId: String
  botVersion: String
  nextToken: String
  botLocaleSummaries: [AwsLexModelsV2ListBotLocalesOutputBotLocaleSummaries]
}

type AwsLexModelsV2ListBotLocalesOutputBotLocaleSummaries {
  localeId: String
  localeName: String
  description: String
  botLocaleStatus: String
  lastUpdatedDateTime: Date
  lastBuildSubmittedDateTime: Date
}

input AwsLexModelsV2ListBotLocalesInput {
  botId: String!
  botVersion: String!
  sortBy: AwsLexModelsV2ListBotLocalesSortByInput
  filters: [AwsLexModelsV2ListBotLocalesFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListBotLocalesSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListBotLocalesFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListBotVersionsOutput {
  botId: String
  botVersionSummaries: [AwsLexModelsV2ListBotVersionsOutputBotVersionSummaries]
  nextToken: String
}

type AwsLexModelsV2ListBotVersionsOutputBotVersionSummaries {
  botName: String
  botVersion: String
  description: String
  botStatus: String
  creationDateTime: Date
}

input AwsLexModelsV2ListBotVersionsInput {
  botId: String!
  sortBy: AwsLexModelsV2ListBotVersionsSortByInput
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListBotVersionsSortByInput {
  attribute: String!
  order: String!
}

type AwsLexModelsV2ListBotsOutput {
  botSummaries: [AwsLexModelsV2ListBotsOutputBotSummaries]
  nextToken: String
}

type AwsLexModelsV2ListBotsOutputBotSummaries {
  botId: String
  botName: String
  description: String
  botStatus: String
  latestBotVersion: String
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListBotsInput {
  sortBy: AwsLexModelsV2ListBotsSortByInput
  filters: [AwsLexModelsV2ListBotsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListBotsSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListBotsFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListBuiltInIntentsOutput {
  builtInIntentSummaries: [AwsLexModelsV2ListBuiltInIntentsOutputBuiltInIntentSummaries]
  nextToken: String
  localeId: String
}

type AwsLexModelsV2ListBuiltInIntentsOutputBuiltInIntentSummaries {
  intentSignature: String
  description: String
}

input AwsLexModelsV2ListBuiltInIntentsInput {
  localeId: String!
  sortBy: AwsLexModelsV2ListBuiltInIntentsSortByInput
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListBuiltInIntentsSortByInput {
  attribute: String!
  order: String!
}

type AwsLexModelsV2ListBuiltInSlotTypesOutput {
  builtInSlotTypeSummaries: [AwsLexModelsV2ListBuiltInSlotTypesOutputBuiltInSlotTypeSummaries]
  nextToken: String
  localeId: String
}

type AwsLexModelsV2ListBuiltInSlotTypesOutputBuiltInSlotTypeSummaries {
  slotTypeSignature: String
  description: String
}

input AwsLexModelsV2ListBuiltInSlotTypesInput {
  localeId: String!
  sortBy: AwsLexModelsV2ListBuiltInSlotTypesSortByInput
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListBuiltInSlotTypesSortByInput {
  attribute: String!
  order: String!
}

type AwsLexModelsV2ListExportsOutput {
  botId: String
  botVersion: String
  exportSummaries: [AwsLexModelsV2ListExportsOutputExportSummaries]
  nextToken: String
}

type AwsLexModelsV2ListExportsOutputExportSummaries {
  exportId: String
  resourceSpecification: AwsLexModelsV2S1m
  fileFormat: String
  exportStatus: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListExportsInput {
  botId: String
  botVersion: String
  sortBy: AwsLexModelsV2ListExportsSortByInput
  filters: [AwsLexModelsV2ListExportsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListExportsSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListExportsFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListImportsOutput {
  botId: String
  botVersion: String
  importSummaries: [AwsLexModelsV2ListImportsOutputImportSummaries]
  nextToken: String
}

type AwsLexModelsV2ListImportsOutputImportSummaries {
  importId: String
  importedResourceId: String
  importedResourceName: String
  importStatus: String
  mergeStrategy: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListImportsInput {
  botId: String
  botVersion: String
  sortBy: AwsLexModelsV2ListImportsSortByInput
  filters: [AwsLexModelsV2ListImportsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListImportsSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListImportsFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListIntentsOutput {
  botId: String
  botVersion: String
  localeId: String
  intentSummaries: [AwsLexModelsV2ListIntentsOutputIntentSummaries]
  nextToken: String
}

type AwsLexModelsV2ListIntentsOutputIntentSummaries {
  intentId: String
  intentName: String
  description: String
  parentIntentSignature: String
  inputContexts: [AwsLexModelsV2S2n]
  outputContexts: [AwsLexModelsV2S2p]
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListIntentsInput {
  botId: String!
  botVersion: String!
  localeId: String!
  sortBy: AwsLexModelsV2ListIntentsSortByInput
  filters: [AwsLexModelsV2ListIntentsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListIntentsSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListIntentsFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListSlotTypesOutput {
  botId: String
  botVersion: String
  localeId: String
  slotTypeSummaries: [AwsLexModelsV2ListSlotTypesOutputSlotTypeSummaries]
  nextToken: String
}

type AwsLexModelsV2ListSlotTypesOutputSlotTypeSummaries {
  slotTypeId: String
  slotTypeName: String
  description: String
  parentSlotTypeSignature: String
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListSlotTypesInput {
  botId: String!
  botVersion: String!
  localeId: String!
  sortBy: AwsLexModelsV2ListSlotTypesSortByInput
  filters: [AwsLexModelsV2ListSlotTypesFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListSlotTypesSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListSlotTypesFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListSlotsOutput {
  botId: String
  botVersion: String
  localeId: String
  intentId: String
  slotSummaries: [AwsLexModelsV2ListSlotsOutputSlotSummaries]
  nextToken: String
}

type AwsLexModelsV2ListSlotsOutputSlotSummaries {
  slotId: String
  slotName: String
  description: String
  slotConstraint: String
  slotTypeId: String
  valueElicitationPromptSpecification: AwsLexModelsV2S21
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2ListSlotsInput {
  botId: String!
  botVersion: String!
  localeId: String!
  intentId: String!
  sortBy: AwsLexModelsV2ListSlotsSortByInput
  filters: [AwsLexModelsV2ListSlotsFiltersInput]
  maxResults: Int
  nextToken: String
}

input AwsLexModelsV2ListSlotsSortByInput {
  attribute: String!
  order: String!
}

input AwsLexModelsV2ListSlotsFiltersInput {
  name: String!
  values: [String]!
  operator: String!
}

type AwsLexModelsV2ListTagsForResourceOutput {
  tags: JSON
}

input AwsLexModelsV2ListTagsForResourceInput {
  resourceARN: String!
}

type AwsLexModelsV2StartImportOutput {
  importId: String
  resourceSpecification: AwsLexModelsV2S5g
  mergeStrategy: String
  importStatus: String
  creationDateTime: Date
}

input AwsLexModelsV2StartImportInput {
  importId: String!
  resourceSpecification: AwsLexModelsV2S5gInput!
  mergeStrategy: String!
  filePassword: String
}

input AwsLexModelsV2S5gInput {
  botImportSpecification: AwsLexModelsV2S5gBotImportSpecificationInput
  botLocaleImportSpecification: AwsLexModelsV2S5gBotLocaleImportSpecificationInput
}

input AwsLexModelsV2S5gBotImportSpecificationInput {
  botName: String!
  roleArn: String!
  dataPrivacy: AwsLexModelsV2ScInput!
  idleSessionTTLInSeconds: Int
  botTags: JSON
  testBotAliasTags: JSON
}

input AwsLexModelsV2S5gBotLocaleImportSpecificationInput {
  botId: String!
  botVersion: String!
  localeId: String!
  nluIntentConfidenceThreshold: JSON
  voiceSettings: AwsLexModelsV2S1cInput
}

input AwsLexModelsV2TagResourceInput {
  resourceARN: String!
  tags: JSON!
}

input AwsLexModelsV2UntagResourceInput {
  resourceARN: String!
  tagKeys: [String]!
}

type AwsLexModelsV2UpdateBotOutput {
  botId: String
  botName: String
  description: String
  roleArn: String
  dataPrivacy: AwsLexModelsV2Sc
  idleSessionTTLInSeconds: Int
  botStatus: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateBotInput {
  botId: String!
  botName: String!
  description: String
  roleArn: String!
  dataPrivacy: AwsLexModelsV2ScInput!
  idleSessionTTLInSeconds: Int!
}

type AwsLexModelsV2UpdateBotAliasOutput {
  botAliasId: String
  botAliasName: String
  description: String
  botVersion: String
  botAliasLocaleSettings: JSON
  conversationLogSettings: AwsLexModelsV2St
  sentimentAnalysisSettings: AwsLexModelsV2S16
  botAliasStatus: String
  botId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateBotAliasInput {
  botAliasId: String!
  botAliasName: String!
  description: String
  botVersion: String
  botAliasLocaleSettings: JSON
  conversationLogSettings: AwsLexModelsV2StInput
  sentimentAnalysisSettings: AwsLexModelsV2S16Input
  botId: String!
}

type AwsLexModelsV2UpdateBotLocaleOutput {
  botId: String
  botVersion: String
  localeId: String
  localeName: String
  description: String
  nluIntentConfidenceThreshold: JSON
  voiceSettings: AwsLexModelsV2S1c
  botLocaleStatus: String
  failureReasons: [String]
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateBotLocaleInput {
  botId: String!
  botVersion: String!
  localeId: String!
  description: String
  nluIntentConfidenceThreshold: JSON!
  voiceSettings: AwsLexModelsV2S1cInput
}

type AwsLexModelsV2UpdateExportOutput {
  exportId: String
  resourceSpecification: AwsLexModelsV2S1m
  fileFormat: String
  exportStatus: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateExportInput {
  exportId: String!
  filePassword: String
}

type AwsLexModelsV2UpdateIntentOutput {
  intentId: String
  intentName: String
  description: String
  parentIntentSignature: String
  sampleUtterances: [AwsLexModelsV2S1v]
  dialogCodeHook: AwsLexModelsV2S1y
  fulfillmentCodeHook: AwsLexModelsV2S1z
  slotPriorities: [AwsLexModelsV2S5n]
  intentConfirmationSetting: AwsLexModelsV2S20
  intentClosingSetting: AwsLexModelsV2S2m
  inputContexts: [AwsLexModelsV2S2n]
  outputContexts: [AwsLexModelsV2S2p]
  kendraConfiguration: AwsLexModelsV2S2t
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateIntentInput {
  intentId: String!
  intentName: String!
  description: String
  parentIntentSignature: String
  sampleUtterances: [AwsLexModelsV2S1vInput]
  dialogCodeHook: AwsLexModelsV2S1yInput
  fulfillmentCodeHook: AwsLexModelsV2S1zInput
  slotPriorities: [AwsLexModelsV2S5nInput]
  intentConfirmationSetting: AwsLexModelsV2S20Input
  intentClosingSetting: AwsLexModelsV2S2mInput
  inputContexts: [AwsLexModelsV2S2nInput]
  outputContexts: [AwsLexModelsV2S2pInput]
  kendraConfiguration: AwsLexModelsV2S2tInput
  botId: String!
  botVersion: String!
  localeId: String!
}

input AwsLexModelsV2S5nInput {
  priority: Int!
  slotId: String!
}

type AwsLexModelsV2UpdateResourcePolicyOutput {
  resourceArn: String
  revisionId: String
}

input AwsLexModelsV2UpdateResourcePolicyInput {
  resourceArn: String!
  policy: String!
  expectedRevisionId: String
}

type AwsLexModelsV2UpdateSlotOutput {
  slotId: String
  slotName: String
  description: String
  slotTypeId: String
  valueElicitationSetting: AwsLexModelsV2S3i
  obfuscationSetting: AwsLexModelsV2S3s
  botId: String
  botVersion: String
  localeId: String
  intentId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  multipleValuesSetting: AwsLexModelsV2S3u
}

input AwsLexModelsV2UpdateSlotInput {
  slotId: String!
  slotName: String!
  description: String
  slotTypeId: String!
  valueElicitationSetting: AwsLexModelsV2S3iInput!
  obfuscationSetting: AwsLexModelsV2S3sInput
  botId: String!
  botVersion: String!
  localeId: String!
  intentId: String!
  multipleValuesSetting: AwsLexModelsV2S3uInput
}

type AwsLexModelsV2UpdateSlotTypeOutput {
  slotTypeId: String
  slotTypeName: String
  description: String
  slotTypeValues: [AwsLexModelsV2S3x]
  valueSelectionSetting: AwsLexModelsV2S42
  parentSlotTypeSignature: String
  botId: String
  botVersion: String
  localeId: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsLexModelsV2UpdateSlotTypeInput {
  slotTypeId: String!
  slotTypeName: String!
  description: String
  slotTypeValues: [AwsLexModelsV2S3xInput]
  valueSelectionSetting: AwsLexModelsV2S42Input!
  parentSlotTypeSignature: String
  botId: String!
  botVersion: String!
  localeId: String!
}

"""Amazon Lex Runtime Service (2016-11-28)"""
type AwsLexRuntime {
  deleteSession(input: AwsLexRuntimeDeleteSessionInput!, config: AwsConfig): AwsLexRuntimeDeleteSessionOutput
  getSession(input: AwsLexRuntimeGetSessionInput!, config: AwsConfig): AwsLexRuntimeGetSessionOutput
  postContent(input: AwsLexRuntimePostContentInput!, config: AwsConfig): AwsLexRuntimePostContentOutput
  postText(input: AwsLexRuntimePostTextInput!, config: AwsConfig): AwsLexRuntimePostTextOutput
  putSession(input: AwsLexRuntimePutSessionInput!, config: AwsConfig): AwsLexRuntimePutSessionOutput
}

type AwsLexRuntimeDeleteSessionOutput {
  botName: String
  botAlias: String
  userId: String
  sessionId: String
}

input AwsLexRuntimeDeleteSessionInput {
  botName: String!
  botAlias: String!
  userId: String!
}

type AwsLexRuntimeGetSessionOutput {
  recentIntentSummaryView: [AwsLexRuntimeSa]
  sessionAttributes: JSON
  sessionId: String
  dialogAction: AwsLexRuntimeSh
  activeContexts: [AwsLexRuntimeSk]
}

type AwsLexRuntimeSa {
  intentName: String
  checkpointLabel: String
  slots: JSON
  confirmationStatus: String
  dialogActionType: String!
  fulfillmentState: String
  slotToElicit: String
}

type AwsLexRuntimeSh {
  type: String!
  intentName: String
  slots: JSON
  slotToElicit: String
  fulfillmentState: String
  message: String
  messageFormat: String
}

type AwsLexRuntimeSk {
  name: String!
  timeToLive: AwsLexRuntimeSkTimeToLive!
  parameters: JSON!
}

type AwsLexRuntimeSkTimeToLive {
  timeToLiveInSeconds: Int
  turnsToLive: Int
}

input AwsLexRuntimeGetSessionInput {
  botName: String!
  botAlias: String!
  userId: String!
  checkpointLabelFilter: String
}

type AwsLexRuntimePostContentOutput {
  contentType: String
  intentName: String
  nluIntentConfidence: String
  alternativeIntents: String
  slots: String
  sessionAttributes: String
  sentimentResponse: String
  message: String
  encodedMessage: String
  messageFormat: String
  dialogState: String
  slotToElicit: String
  inputTranscript: String
  encodedInputTranscript: String
  audioStream: JSON
  botVersion: String
  sessionId: String
  activeContexts: String
}

input AwsLexRuntimePostContentInput {
  botName: String!
  botAlias: String!
  userId: String!
  sessionAttributes: String
  requestAttributes: String
  contentType: String!
  accept: String
  inputStream: JSON!
  activeContexts: String
}

type AwsLexRuntimePostTextOutput {
  intentName: String
  nluIntentConfidence: AwsLexRuntimeS15
  alternativeIntents: [AwsLexRuntimePostTextOutputAlternativeIntents]
  slots: JSON
  sessionAttributes: JSON
  message: String
  sentimentResponse: AwsLexRuntimePostTextOutputSentimentResponse
  messageFormat: String
  dialogState: String
  slotToElicit: String
  responseCard: AwsLexRuntimePostTextOutputResponseCard
  sessionId: String
  botVersion: String
  activeContexts: [AwsLexRuntimeSk]
}

type AwsLexRuntimeS15 {
  score: JSON
}

type AwsLexRuntimePostTextOutputAlternativeIntents {
  intentName: String
  nluIntentConfidence: AwsLexRuntimeS15
  slots: JSON
}

type AwsLexRuntimePostTextOutputSentimentResponse {
  sentimentLabel: String
  sentimentScore: String
}

type AwsLexRuntimePostTextOutputResponseCard {
  version: String
  contentType: String
  genericAttachments: [AwsLexRuntimePostTextOutputResponseCardGenericAttachments]
}

type AwsLexRuntimePostTextOutputResponseCardGenericAttachments {
  title: String
  subTitle: String
  attachmentLinkUrl: String
  imageUrl: String
  buttons: [AwsLexRuntimePostTextOutputResponseCardGenericAttachmentsButtons]
}

type AwsLexRuntimePostTextOutputResponseCardGenericAttachmentsButtons {
  text: String!
  value: String!
}

input AwsLexRuntimePostTextInput {
  botName: String!
  botAlias: String!
  userId: String!
  sessionAttributes: JSON
  requestAttributes: JSON
  inputText: String!
  activeContexts: [AwsLexRuntimeSkInput]
}

input AwsLexRuntimeSkInput {
  name: String!
  timeToLive: AwsLexRuntimeSkTimeToLiveInput!
  parameters: JSON!
}

input AwsLexRuntimeSkTimeToLiveInput {
  timeToLiveInSeconds: Int
  turnsToLive: Int
}

type AwsLexRuntimePutSessionOutput {
  contentType: String
  intentName: String
  slots: String
  sessionAttributes: String
  message: String
  encodedMessage: String
  messageFormat: String
  dialogState: String
  slotToElicit: String
  audioStream: JSON
  sessionId: String
  activeContexts: String
}

input AwsLexRuntimePutSessionInput {
  botName: String!
  botAlias: String!
  userId: String!
  sessionAttributes: JSON
  dialogAction: AwsLexRuntimeShInput
  recentIntentSummaryView: [AwsLexRuntimeSaInput]
  accept: String
  activeContexts: [AwsLexRuntimeSkInput]
}

input AwsLexRuntimeShInput {
  type: String!
  intentName: String
  slots: JSON
  slotToElicit: String
  fulfillmentState: String
  message: String
  messageFormat: String
}

input AwsLexRuntimeSaInput {
  intentName: String
  checkpointLabel: String
  slots: JSON
  confirmationStatus: String
  dialogActionType: String!
  fulfillmentState: String
  slotToElicit: String
}

"""Amazon Lex Runtime V2 (2020-08-07)"""
type AwsLexRuntimeV2 {
  deleteSession(input: AwsLexRuntimeV2DeleteSessionInput!, config: AwsConfig): AwsLexRuntimeV2DeleteSessionOutput
  getSession(input: AwsLexRuntimeV2GetSessionInput!, config: AwsConfig): AwsLexRuntimeV2GetSessionOutput
  putSession(input: AwsLexRuntimeV2PutSessionInput!, config: AwsConfig): AwsLexRuntimeV2PutSessionOutput
  recognizeText(input: AwsLexRuntimeV2RecognizeTextInput!, config: AwsConfig): AwsLexRuntimeV2RecognizeTextOutput
  recognizeUtterance(input: AwsLexRuntimeV2RecognizeUtteranceInput!, config: AwsConfig): AwsLexRuntimeV2RecognizeUtteranceOutput
}

type AwsLexRuntimeV2DeleteSessionOutput {
  botId: String
  botAliasId: String
  localeId: String
  sessionId: String
}

input AwsLexRuntimeV2DeleteSessionInput {
  botId: String!
  botAliasId: String!
  localeId: String!
  sessionId: String!
}

type AwsLexRuntimeV2GetSessionOutput {
  sessionId: String
  messages: [AwsLexRuntimeV2Sa]
  interpretations: [AwsLexRuntimeV2Sl]
  sessionState: AwsLexRuntimeV2S11
}

type AwsLexRuntimeV2Sa {
  content: String
  contentType: String!
  imageResponseCard: AwsLexRuntimeV2SaImageResponseCard
}

type AwsLexRuntimeV2SaImageResponseCard {
  title: String!
  subtitle: String
  imageUrl: String
  buttons: [AwsLexRuntimeV2SaImageResponseCardButtons]
}

type AwsLexRuntimeV2SaImageResponseCardButtons {
  text: String!
  value: String!
}

type AwsLexRuntimeV2Sl {
  nluConfidence: AwsLexRuntimeV2SlNluConfidence
  sentimentResponse: AwsLexRuntimeV2SlSentimentResponse
  intent: AwsLexRuntimeV2Ss
}

type AwsLexRuntimeV2SlNluConfidence {
  score: JSON
}

type AwsLexRuntimeV2SlSentimentResponse {
  sentiment: String
  sentimentScore: AwsLexRuntimeV2SlSentimentResponseSentimentScore
}

type AwsLexRuntimeV2SlSentimentResponseSentimentScore {
  positive: JSON
  negative: JSON
  neutral: JSON
  mixed: JSON
}

type AwsLexRuntimeV2Ss {
  name: String!
  slots: JSON
  state: String
  confirmationState: String
}

type AwsLexRuntimeV2S11 {
  dialogAction: AwsLexRuntimeV2S11DialogAction
  intent: AwsLexRuntimeV2Ss
  activeContexts: [AwsLexRuntimeV2S11ActiveContexts]
  sessionAttributes: JSON
  originatingRequestId: String
}

type AwsLexRuntimeV2S11DialogAction {
  type: String!
  slotToElicit: String
}

type AwsLexRuntimeV2S11ActiveContexts {
  name: String!
  timeToLive: AwsLexRuntimeV2S11ActiveContextsTimeToLive!
  contextAttributes: JSON!
}

type AwsLexRuntimeV2S11ActiveContextsTimeToLive {
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

input AwsLexRuntimeV2GetSessionInput {
  botId: String!
  botAliasId: String!
  localeId: String!
  sessionId: String!
}

type AwsLexRuntimeV2PutSessionOutput {
  contentType: String
  messages: String
  sessionState: String
  requestAttributes: String
  sessionId: String
  audioStream: JSON
}

input AwsLexRuntimeV2PutSessionInput {
  botId: String!
  botAliasId: String!
  localeId: String!
  sessionId: String!
  messages: [AwsLexRuntimeV2SaInput]
  sessionState: AwsLexRuntimeV2S11Input!
  requestAttributes: JSON
  responseContentType: String
}

input AwsLexRuntimeV2SaInput {
  content: String
  contentType: String!
  imageResponseCard: AwsLexRuntimeV2SaImageResponseCardInput
}

input AwsLexRuntimeV2SaImageResponseCardInput {
  title: String!
  subtitle: String
  imageUrl: String
  buttons: [AwsLexRuntimeV2SaImageResponseCardButtonsInput]
}

input AwsLexRuntimeV2SaImageResponseCardButtonsInput {
  text: String!
  value: String!
}

input AwsLexRuntimeV2S11Input {
  dialogAction: AwsLexRuntimeV2S11DialogActionInput
  intent: AwsLexRuntimeV2SsInput
  activeContexts: [AwsLexRuntimeV2S11ActiveContextsInput]
  sessionAttributes: JSON
  originatingRequestId: String
}

input AwsLexRuntimeV2S11DialogActionInput {
  type: String!
  slotToElicit: String
}

input AwsLexRuntimeV2SsInput {
  name: String!
  slots: JSON
  state: String
  confirmationState: String
}

input AwsLexRuntimeV2S11ActiveContextsInput {
  name: String!
  timeToLive: AwsLexRuntimeV2S11ActiveContextsTimeToLiveInput!
  contextAttributes: JSON!
}

input AwsLexRuntimeV2S11ActiveContextsTimeToLiveInput {
  timeToLiveInSeconds: Int!
  turnsToLive: Int!
}

type AwsLexRuntimeV2RecognizeTextOutput {
  messages: [AwsLexRuntimeV2Sa]
  sessionState: AwsLexRuntimeV2S11
  interpretations: [AwsLexRuntimeV2Sl]
  requestAttributes: JSON
  sessionId: String
}

input AwsLexRuntimeV2RecognizeTextInput {
  botId: String!
  botAliasId: String!
  localeId: String!
  sessionId: String!
  text: String!
  sessionState: AwsLexRuntimeV2S11Input
  requestAttributes: JSON
}

type AwsLexRuntimeV2RecognizeUtteranceOutput {
  inputMode: String
  contentType: String
  messages: String
  interpretations: String
  sessionState: String
  requestAttributes: String
  sessionId: String
  inputTranscript: String
  audioStream: JSON
}

input AwsLexRuntimeV2RecognizeUtteranceInput {
  botId: String!
  botAliasId: String!
  localeId: String!
  sessionId: String!
  sessionState: String
  requestAttributes: String
  requestContentType: String!
  responseContentType: String
  inputStream: JSON
}

"""AWS License Manager (2018-08-01)"""
type AwsLicenseManager {
  acceptGrant(input: AwsLicenseManagerAcceptGrantInput!, config: AwsConfig): AwsLicenseManagerAcceptGrantOutput
  checkInLicense(input: AwsLicenseManagerCheckInLicenseInput!, config: AwsConfig): JSON
  checkoutBorrowLicense(input: AwsLicenseManagerCheckoutBorrowLicenseInput!, config: AwsConfig): AwsLicenseManagerCheckoutBorrowLicenseOutput
  checkoutLicense(input: AwsLicenseManagerCheckoutLicenseInput!, config: AwsConfig): AwsLicenseManagerCheckoutLicenseOutput
  createGrant(input: AwsLicenseManagerCreateGrantInput!, config: AwsConfig): AwsLicenseManagerCreateGrantOutput
  createGrantVersion(input: AwsLicenseManagerCreateGrantVersionInput!, config: AwsConfig): AwsLicenseManagerCreateGrantVersionOutput
  createLicense(input: AwsLicenseManagerCreateLicenseInput!, config: AwsConfig): AwsLicenseManagerCreateLicenseOutput
  createLicenseConfiguration(input: AwsLicenseManagerCreateLicenseConfigurationInput!, config: AwsConfig): AwsLicenseManagerCreateLicenseConfigurationOutput
  createLicenseManagerReportGenerator(input: AwsLicenseManagerCreateLicenseManagerReportGeneratorInput!, config: AwsConfig): AwsLicenseManagerCreateLicenseManagerReportGeneratorOutput
  createLicenseVersion(input: AwsLicenseManagerCreateLicenseVersionInput!, config: AwsConfig): AwsLicenseManagerCreateLicenseVersionOutput
  createToken(input: AwsLicenseManagerCreateTokenInput!, config: AwsConfig): AwsLicenseManagerCreateTokenOutput
  deleteGrant(input: AwsLicenseManagerDeleteGrantInput!, config: AwsConfig): AwsLicenseManagerDeleteGrantOutput
  deleteLicense(input: AwsLicenseManagerDeleteLicenseInput!, config: AwsConfig): AwsLicenseManagerDeleteLicenseOutput
  deleteLicenseConfiguration(input: AwsLicenseManagerDeleteLicenseConfigurationInput!, config: AwsConfig): JSON
  deleteLicenseManagerReportGenerator(input: AwsLicenseManagerDeleteLicenseManagerReportGeneratorInput!, config: AwsConfig): JSON
  deleteToken(input: AwsLicenseManagerDeleteTokenInput!, config: AwsConfig): JSON
  extendLicenseConsumption(input: AwsLicenseManagerExtendLicenseConsumptionInput!, config: AwsConfig): AwsLicenseManagerExtendLicenseConsumptionOutput
  getAccessToken(input: AwsLicenseManagerGetAccessTokenInput!, config: AwsConfig): AwsLicenseManagerGetAccessTokenOutput
  getGrant(input: AwsLicenseManagerGetGrantInput!, config: AwsConfig): AwsLicenseManagerGetGrantOutput
  getLicense(input: AwsLicenseManagerGetLicenseInput!, config: AwsConfig): AwsLicenseManagerGetLicenseOutput
  getLicenseConfiguration(input: AwsLicenseManagerGetLicenseConfigurationInput!, config: AwsConfig): AwsLicenseManagerGetLicenseConfigurationOutput
  getLicenseManagerReportGenerator(input: AwsLicenseManagerGetLicenseManagerReportGeneratorInput!, config: AwsConfig): AwsLicenseManagerGetLicenseManagerReportGeneratorOutput
  getLicenseUsage(input: AwsLicenseManagerGetLicenseUsageInput!, config: AwsConfig): AwsLicenseManagerGetLicenseUsageOutput
  getServiceSettings(input: JSON, config: AwsConfig): AwsLicenseManagerGetServiceSettingsOutput
  listAssociationsForLicenseConfiguration(input: AwsLicenseManagerListAssociationsForLicenseConfigurationInput!, config: AwsConfig): AwsLicenseManagerListAssociationsForLicenseConfigurationOutput
  listDistributedGrants(input: AwsLicenseManagerListDistributedGrantsInput, config: AwsConfig): AwsLicenseManagerListDistributedGrantsOutput
  listFailuresForLicenseConfigurationOperations(input: AwsLicenseManagerListFailuresForLicenseConfigurationOperationsInput!, config: AwsConfig): AwsLicenseManagerListFailuresForLicenseConfigurationOperationsOutput
  listLicenseConfigurations(input: AwsLicenseManagerListLicenseConfigurationsInput, config: AwsConfig): AwsLicenseManagerListLicenseConfigurationsOutput
  listLicenseManagerReportGenerators(input: AwsLicenseManagerListLicenseManagerReportGeneratorsInput, config: AwsConfig): AwsLicenseManagerListLicenseManagerReportGeneratorsOutput
  listLicenseSpecificationsForResource(input: AwsLicenseManagerListLicenseSpecificationsForResourceInput!, config: AwsConfig): AwsLicenseManagerListLicenseSpecificationsForResourceOutput
  listLicenseVersions(input: AwsLicenseManagerListLicenseVersionsInput!, config: AwsConfig): AwsLicenseManagerListLicenseVersionsOutput
  listLicenses(input: AwsLicenseManagerListLicensesInput, config: AwsConfig): AwsLicenseManagerListLicensesOutput
  listReceivedGrants(input: AwsLicenseManagerListReceivedGrantsInput, config: AwsConfig): AwsLicenseManagerListReceivedGrantsOutput
  listReceivedLicenses(input: AwsLicenseManagerListReceivedLicensesInput, config: AwsConfig): AwsLicenseManagerListReceivedLicensesOutput
  listResourceInventory(input: AwsLicenseManagerListResourceInventoryInput, config: AwsConfig): AwsLicenseManagerListResourceInventoryOutput
  listTagsForResource(input: AwsLicenseManagerListTagsForResourceInput!, config: AwsConfig): AwsLicenseManagerListTagsForResourceOutput
  listTokens(input: AwsLicenseManagerListTokensInput, config: AwsConfig): AwsLicenseManagerListTokensOutput
  listUsageForLicenseConfiguration(input: AwsLicenseManagerListUsageForLicenseConfigurationInput!, config: AwsConfig): AwsLicenseManagerListUsageForLicenseConfigurationOutput
  rejectGrant(input: AwsLicenseManagerRejectGrantInput!, config: AwsConfig): AwsLicenseManagerRejectGrantOutput
  tagResource(input: AwsLicenseManagerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLicenseManagerUntagResourceInput!, config: AwsConfig): JSON
  updateLicenseConfiguration(input: AwsLicenseManagerUpdateLicenseConfigurationInput!, config: AwsConfig): JSON
  updateLicenseManagerReportGenerator(input: AwsLicenseManagerUpdateLicenseManagerReportGeneratorInput!, config: AwsConfig): JSON
  updateLicenseSpecificationsForResource(input: AwsLicenseManagerUpdateLicenseSpecificationsForResourceInput!, config: AwsConfig): JSON
  updateServiceSettings(input: AwsLicenseManagerUpdateServiceSettingsInput, config: AwsConfig): JSON
}

type AwsLicenseManagerAcceptGrantOutput {
  GrantArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerAcceptGrantInput {
  GrantArn: String!
}

input AwsLicenseManagerCheckInLicenseInput {
  LicenseConsumptionToken: String!
  Beneficiary: String
}

type AwsLicenseManagerCheckoutBorrowLicenseOutput {
  LicenseArn: String
  LicenseConsumptionToken: String
  EntitlementsAllowed: [AwsLicenseManagerS9]
  NodeId: String
  SignedToken: String
  IssuedAt: String
  Expiration: String
  CheckoutMetadata: [AwsLicenseManagerSd]
}

type AwsLicenseManagerS9 {
  Name: String!
  Value: String
  Unit: String!
}

type AwsLicenseManagerSd {
  Name: String
  Value: String
}

input AwsLicenseManagerCheckoutBorrowLicenseInput {
  LicenseArn: String!
  Entitlements: [AwsLicenseManagerS9Input]!
  DigitalSignatureMethod: String!
  NodeId: String
  CheckoutMetadata: [AwsLicenseManagerSdInput]
  ClientToken: String!
}

input AwsLicenseManagerS9Input {
  Name: String!
  Value: String
  Unit: String!
}

input AwsLicenseManagerSdInput {
  Name: String
  Value: String
}

type AwsLicenseManagerCheckoutLicenseOutput {
  CheckoutType: String
  LicenseConsumptionToken: String
  EntitlementsAllowed: [AwsLicenseManagerS9]
  SignedToken: String
  NodeId: String
  IssuedAt: String
  Expiration: String
}

input AwsLicenseManagerCheckoutLicenseInput {
  ProductSKU: String!
  CheckoutType: String!
  KeyFingerprint: String!
  Entitlements: [AwsLicenseManagerS9Input]!
  ClientToken: String!
  Beneficiary: String
  NodeId: String
}

type AwsLicenseManagerCreateGrantOutput {
  GrantArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerCreateGrantInput {
  ClientToken: String!
  GrantName: String!
  LicenseArn: String!
  Principals: [String]!
  HomeRegion: String!
  AllowedOperations: [String]!
}

type AwsLicenseManagerCreateGrantVersionOutput {
  GrantArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerCreateGrantVersionInput {
  ClientToken: String!
  GrantArn: String!
  GrantName: String
  AllowedOperations: [String]
  Status: String
  StatusReason: String
  SourceVersion: String
}

type AwsLicenseManagerCreateLicenseOutput {
  LicenseArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerCreateLicenseInput {
  LicenseName: String!
  ProductName: String!
  ProductSKU: String!
  Issuer: AwsLicenseManagerSvInput!
  HomeRegion: String!
  Validity: AwsLicenseManagerSwInput!
  Entitlements: [AwsLicenseManagerSxInput]!
  Beneficiary: String!
  ConsumptionConfiguration: AwsLicenseManagerS12Input!
  LicenseMetadata: [AwsLicenseManagerSdInput]
  ClientToken: String!
}

input AwsLicenseManagerSvInput {
  Name: String!
  SignKey: String
}

input AwsLicenseManagerSwInput {
  Begin: String!
  End: String
}

input AwsLicenseManagerSxInput {
  Name: String!
  Value: String
  MaxCount: JSON
  Overage: Boolean
  Unit: String!
  AllowCheckIn: Boolean
}

input AwsLicenseManagerS12Input {
  RenewType: String
  ProvisionalConfiguration: AwsLicenseManagerS12ProvisionalConfigurationInput
  BorrowConfiguration: AwsLicenseManagerS12BorrowConfigurationInput
}

input AwsLicenseManagerS12ProvisionalConfigurationInput {
  MaxTimeToLiveInMinutes: Int!
}

input AwsLicenseManagerS12BorrowConfigurationInput {
  AllowEarlyCheckIn: Boolean!
  MaxTimeToLiveInMinutes: Int!
}

type AwsLicenseManagerCreateLicenseConfigurationOutput {
  LicenseConfigurationArn: String
}

input AwsLicenseManagerCreateLicenseConfigurationInput {
  Name: String!
  Description: String
  LicenseCountingType: String!
  LicenseCount: JSON
  LicenseCountHardLimit: Boolean
  LicenseRules: [String]
  Tags: [AwsLicenseManagerS1dInput]
  DisassociateWhenNotFound: Boolean
  ProductInformationList: [AwsLicenseManagerS1fInput]
}

input AwsLicenseManagerS1dInput {
  Key: String
  Value: String
}

input AwsLicenseManagerS1fInput {
  ResourceType: String!
  ProductInformationFilterList: [AwsLicenseManagerS1fProductInformationFilterListInput]!
}

input AwsLicenseManagerS1fProductInformationFilterListInput {
  ProductInformationFilterName: String!
  ProductInformationFilterValue: [String]
  ProductInformationFilterComparator: String!
}

type AwsLicenseManagerCreateLicenseManagerReportGeneratorOutput {
  LicenseManagerReportGeneratorArn: String
}

input AwsLicenseManagerCreateLicenseManagerReportGeneratorInput {
  ReportGeneratorName: String!
  Type: [String]!
  ReportContext: AwsLicenseManagerS1oInput!
  ReportFrequency: AwsLicenseManagerS1qInput!
  ClientToken: String!
  Description: String
  Tags: [AwsLicenseManagerS1dInput]
}

input AwsLicenseManagerS1oInput {
  licenseConfigurationArns: [String]!
}

input AwsLicenseManagerS1qInput {
  value: Int
  period: String
}

type AwsLicenseManagerCreateLicenseVersionOutput {
  LicenseArn: String
  Version: String
  Status: String
}

input AwsLicenseManagerCreateLicenseVersionInput {
  LicenseArn: String!
  LicenseName: String!
  ProductName: String!
  Issuer: AwsLicenseManagerSvInput!
  HomeRegion: String!
  Validity: AwsLicenseManagerSwInput!
  LicenseMetadata: [AwsLicenseManagerSdInput]
  Entitlements: [AwsLicenseManagerSxInput]!
  ConsumptionConfiguration: AwsLicenseManagerS12Input!
  Status: String!
  ClientToken: String!
  SourceVersion: String
}

type AwsLicenseManagerCreateTokenOutput {
  TokenId: String
  TokenType: String
  Token: String
}

input AwsLicenseManagerCreateTokenInput {
  LicenseArn: String!
  RoleArns: [String]
  ExpirationInDays: Int
  TokenProperties: [String]
  ClientToken: String!
}

type AwsLicenseManagerDeleteGrantOutput {
  GrantArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerDeleteGrantInput {
  GrantArn: String!
  StatusReason: String
  Version: String!
}

type AwsLicenseManagerDeleteLicenseOutput {
  Status: String
  DeletionDate: String
}

input AwsLicenseManagerDeleteLicenseInput {
  LicenseArn: String!
  SourceVersion: String!
}

input AwsLicenseManagerDeleteLicenseConfigurationInput {
  LicenseConfigurationArn: String!
}

input AwsLicenseManagerDeleteLicenseManagerReportGeneratorInput {
  LicenseManagerReportGeneratorArn: String!
}

input AwsLicenseManagerDeleteTokenInput {
  TokenId: String!
}

type AwsLicenseManagerExtendLicenseConsumptionOutput {
  LicenseConsumptionToken: String
  Expiration: String
}

input AwsLicenseManagerExtendLicenseConsumptionInput {
  LicenseConsumptionToken: String!
  DryRun: Boolean
}

type AwsLicenseManagerGetAccessTokenOutput {
  AccessToken: String
}

input AwsLicenseManagerGetAccessTokenInput {
  Token: String!
  TokenProperties: [String]
}

type AwsLicenseManagerGetGrantOutput {
  Grant: AwsLicenseManagerS2k
}

type AwsLicenseManagerS2k {
  GrantArn: String!
  GrantName: String!
  ParentArn: String!
  LicenseArn: String!
  GranteePrincipalArn: String!
  HomeRegion: String!
  GrantStatus: String!
  StatusReason: String
  Version: String!
  GrantedOperations: [String]!
}

input AwsLicenseManagerGetGrantInput {
  GrantArn: String!
  Version: String
}

type AwsLicenseManagerGetLicenseOutput {
  License: AwsLicenseManagerS2n
}

type AwsLicenseManagerS2n {
  LicenseArn: String
  LicenseName: String
  ProductName: String
  ProductSKU: String
  Issuer: AwsLicenseManagerS2o
  HomeRegion: String
  Status: String
  Validity: AwsLicenseManagerSw
  Beneficiary: String
  Entitlements: [AwsLicenseManagerSx]
  ConsumptionConfiguration: AwsLicenseManagerS12
  LicenseMetadata: [AwsLicenseManagerSd]
  CreateTime: String
  Version: String
}

type AwsLicenseManagerS2o {
  Name: String
  SignKey: String
  KeyFingerprint: String
}

type AwsLicenseManagerSw {
  Begin: String!
  End: String
}

type AwsLicenseManagerSx {
  Name: String!
  Value: String
  MaxCount: JSON
  Overage: Boolean
  Unit: String!
  AllowCheckIn: Boolean
}

type AwsLicenseManagerS12 {
  RenewType: String
  ProvisionalConfiguration: AwsLicenseManagerS12ProvisionalConfiguration
  BorrowConfiguration: AwsLicenseManagerS12BorrowConfiguration
}

type AwsLicenseManagerS12ProvisionalConfiguration {
  MaxTimeToLiveInMinutes: Int!
}

type AwsLicenseManagerS12BorrowConfiguration {
  AllowEarlyCheckIn: Boolean!
  MaxTimeToLiveInMinutes: Int!
}

input AwsLicenseManagerGetLicenseInput {
  LicenseArn: String!
  Version: String
}

type AwsLicenseManagerGetLicenseConfigurationOutput {
  LicenseConfigurationId: String
  LicenseConfigurationArn: String
  Name: String
  Description: String
  LicenseCountingType: String
  LicenseRules: [String]
  LicenseCount: JSON
  LicenseCountHardLimit: Boolean
  ConsumedLicenses: JSON
  Status: String
  OwnerAccountId: String
  ConsumedLicenseSummaryList: [AwsLicenseManagerS2r]
  ManagedResourceSummaryList: [AwsLicenseManagerS2u]
  Tags: [AwsLicenseManagerS1d]
  ProductInformationList: [AwsLicenseManagerS1f]
  AutomatedDiscoveryInformation: AwsLicenseManagerS2w
  DisassociateWhenNotFound: Boolean
}

type AwsLicenseManagerS2r {
  ResourceType: String
  ConsumedLicenses: JSON
}

type AwsLicenseManagerS2u {
  ResourceType: String
  AssociationCount: JSON
}

type AwsLicenseManagerS1d {
  Key: String
  Value: String
}

type AwsLicenseManagerS1f {
  ResourceType: String!
  ProductInformationFilterList: [AwsLicenseManagerS1fProductInformationFilterList]!
}

type AwsLicenseManagerS1fProductInformationFilterList {
  ProductInformationFilterName: String!
  ProductInformationFilterValue: [String]
  ProductInformationFilterComparator: String!
}

type AwsLicenseManagerS2w {
  LastRunTime: Date
}

input AwsLicenseManagerGetLicenseConfigurationInput {
  LicenseConfigurationArn: String!
}

type AwsLicenseManagerGetLicenseManagerReportGeneratorOutput {
  ReportGenerator: AwsLicenseManagerS30
}

type AwsLicenseManagerS30 {
  ReportGeneratorName: String
  ReportType: [String]
  ReportContext: AwsLicenseManagerS1o
  ReportFrequency: AwsLicenseManagerS1q
  LicenseManagerReportGeneratorArn: String
  LastRunStatus: String
  LastRunFailureReason: String
  LastReportGenerationTime: String
  ReportCreatorAccount: String
  Description: String
  S3Location: AwsLicenseManagerS30S3Location
  CreateTime: String
  Tags: [AwsLicenseManagerS1d]
}

type AwsLicenseManagerS1o {
  licenseConfigurationArns: [String]!
}

type AwsLicenseManagerS1q {
  value: Int
  period: String
}

type AwsLicenseManagerS30S3Location {
  bucket: String
  keyPrefix: String
}

input AwsLicenseManagerGetLicenseManagerReportGeneratorInput {
  LicenseManagerReportGeneratorArn: String!
}

type AwsLicenseManagerGetLicenseUsageOutput {
  LicenseUsage: AwsLicenseManagerGetLicenseUsageOutputLicenseUsage
}

type AwsLicenseManagerGetLicenseUsageOutputLicenseUsage {
  EntitlementUsages: [AwsLicenseManagerGetLicenseUsageOutputLicenseUsageEntitlementUsages]
}

type AwsLicenseManagerGetLicenseUsageOutputLicenseUsageEntitlementUsages {
  Name: String!
  ConsumedValue: String!
  MaxCount: String
  Unit: String!
}

input AwsLicenseManagerGetLicenseUsageInput {
  LicenseArn: String!
}

type AwsLicenseManagerGetServiceSettingsOutput {
  S3BucketArn: String
  SnsTopicArn: String
  OrganizationConfiguration: AwsLicenseManagerS39
  EnableCrossAccountsDiscovery: Boolean
  LicenseManagerResourceShareArn: String
}

type AwsLicenseManagerS39 {
  EnableIntegration: Boolean!
}

type AwsLicenseManagerListAssociationsForLicenseConfigurationOutput {
  LicenseConfigurationAssociations: [AwsLicenseManagerListAssociationsForLicenseConfigurationOutputLicenseConfigurationAssociations]
  NextToken: String
}

type AwsLicenseManagerListAssociationsForLicenseConfigurationOutputLicenseConfigurationAssociations {
  ResourceArn: String
  ResourceType: String
  ResourceOwnerId: String
  AssociationTime: Date
  AmiAssociationScope: String
}

input AwsLicenseManagerListAssociationsForLicenseConfigurationInput {
  LicenseConfigurationArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsLicenseManagerListDistributedGrantsOutput {
  Grants: [AwsLicenseManagerS2k]
  NextToken: String
}

input AwsLicenseManagerListDistributedGrantsInput {
  GrantArns: [String]
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

input AwsLicenseManagerS3gInput {
  Name: String
  Values: [String]
}

type AwsLicenseManagerListFailuresForLicenseConfigurationOperationsOutput {
  LicenseOperationFailureList: [AwsLicenseManagerListFailuresForLicenseConfigurationOperationsOutputLicenseOperationFailureList]
  NextToken: String
}

type AwsLicenseManagerListFailuresForLicenseConfigurationOperationsOutputLicenseOperationFailureList {
  ResourceArn: String
  ResourceType: String
  ErrorMessage: String
  FailureTime: Date
  OperationName: String
  ResourceOwnerId: String
  OperationRequestedBy: String
  MetadataList: [AwsLicenseManagerSd]
}

input AwsLicenseManagerListFailuresForLicenseConfigurationOperationsInput {
  LicenseConfigurationArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsLicenseManagerListLicenseConfigurationsOutput {
  LicenseConfigurations: [AwsLicenseManagerListLicenseConfigurationsOutputLicenseConfigurations]
  NextToken: String
}

type AwsLicenseManagerListLicenseConfigurationsOutputLicenseConfigurations {
  LicenseConfigurationId: String
  LicenseConfigurationArn: String
  Name: String
  Description: String
  LicenseCountingType: String
  LicenseRules: [String]
  LicenseCount: JSON
  LicenseCountHardLimit: Boolean
  DisassociateWhenNotFound: Boolean
  ConsumedLicenses: JSON
  Status: String
  OwnerAccountId: String
  ConsumedLicenseSummaryList: [AwsLicenseManagerS2r]
  ManagedResourceSummaryList: [AwsLicenseManagerS2u]
  ProductInformationList: [AwsLicenseManagerS1f]
  AutomatedDiscoveryInformation: AwsLicenseManagerS2w
}

input AwsLicenseManagerListLicenseConfigurationsInput {
  LicenseConfigurationArns: [String]
  MaxResults: Int
  NextToken: String
  Filters: [AwsLicenseManagerS3gInput]
}

type AwsLicenseManagerListLicenseManagerReportGeneratorsOutput {
  ReportGenerators: [AwsLicenseManagerS30]
  NextToken: String
}

input AwsLicenseManagerListLicenseManagerReportGeneratorsInput {
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListLicenseSpecificationsForResourceOutput {
  LicenseSpecifications: [AwsLicenseManagerS41]
  NextToken: String
}

type AwsLicenseManagerS41 {
  LicenseConfigurationArn: String!
  AmiAssociationScope: String
}

input AwsLicenseManagerListLicenseSpecificationsForResourceInput {
  ResourceArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsLicenseManagerListLicenseVersionsOutput {
  Licenses: [AwsLicenseManagerS2n]
  NextToken: String
}

input AwsLicenseManagerListLicenseVersionsInput {
  LicenseArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListLicensesOutput {
  Licenses: [AwsLicenseManagerS2n]
  NextToken: String
}

input AwsLicenseManagerListLicensesInput {
  LicenseArns: [String]
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListReceivedGrantsOutput {
  Grants: [AwsLicenseManagerS2k]
  NextToken: String
}

input AwsLicenseManagerListReceivedGrantsInput {
  GrantArns: [String]
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListReceivedLicensesOutput {
  Licenses: [AwsLicenseManagerListReceivedLicensesOutputLicenses]
  NextToken: String
}

type AwsLicenseManagerListReceivedLicensesOutputLicenses {
  LicenseArn: String
  LicenseName: String
  ProductName: String
  ProductSKU: String
  Issuer: AwsLicenseManagerS2o
  HomeRegion: String
  Status: String
  Validity: AwsLicenseManagerSw
  Beneficiary: String
  Entitlements: [AwsLicenseManagerSx]
  ConsumptionConfiguration: AwsLicenseManagerS12
  LicenseMetadata: [AwsLicenseManagerSd]
  CreateTime: String
  Version: String
  ReceivedMetadata: AwsLicenseManagerListReceivedLicensesOutputLicensesReceivedMetadata
}

type AwsLicenseManagerListReceivedLicensesOutputLicensesReceivedMetadata {
  ReceivedStatus: String
  ReceivedStatusReason: String
  AllowedOperations: [String]
}

input AwsLicenseManagerListReceivedLicensesInput {
  LicenseArns: [String]
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListResourceInventoryOutput {
  ResourceInventoryList: [AwsLicenseManagerListResourceInventoryOutputResourceInventoryList]
  NextToken: String
}

type AwsLicenseManagerListResourceInventoryOutputResourceInventoryList {
  ResourceId: String
  ResourceType: String
  ResourceArn: String
  Platform: String
  PlatformVersion: String
  ResourceOwningAccountId: String
}

input AwsLicenseManagerListResourceInventoryInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsLicenseManagerListResourceInventoryFiltersInput]
}

input AwsLicenseManagerListResourceInventoryFiltersInput {
  Name: String!
  Condition: String!
  Value: String
}

type AwsLicenseManagerListTagsForResourceOutput {
  Tags: [AwsLicenseManagerS1d]
}

input AwsLicenseManagerListTagsForResourceInput {
  ResourceArn: String!
}

type AwsLicenseManagerListTokensOutput {
  Tokens: [AwsLicenseManagerListTokensOutputTokens]
  NextToken: String
}

type AwsLicenseManagerListTokensOutputTokens {
  TokenId: String
  TokenType: String
  LicenseArn: String
  ExpirationTime: String
  TokenProperties: [String]
  RoleArns: [String]
  Status: String
}

input AwsLicenseManagerListTokensInput {
  TokenIds: [String]
  Filters: [AwsLicenseManagerS3gInput]
  NextToken: String
  MaxResults: Int
}

type AwsLicenseManagerListUsageForLicenseConfigurationOutput {
  LicenseConfigurationUsageList: [AwsLicenseManagerListUsageForLicenseConfigurationOutputLicenseConfigurationUsageList]
  NextToken: String
}

type AwsLicenseManagerListUsageForLicenseConfigurationOutputLicenseConfigurationUsageList {
  ResourceArn: String
  ResourceType: String
  ResourceStatus: String
  ResourceOwnerId: String
  AssociationTime: Date
  ConsumedLicenses: JSON
}

input AwsLicenseManagerListUsageForLicenseConfigurationInput {
  LicenseConfigurationArn: String!
  MaxResults: Int
  NextToken: String
  Filters: [AwsLicenseManagerS3gInput]
}

type AwsLicenseManagerRejectGrantOutput {
  GrantArn: String
  Status: String
  Version: String
}

input AwsLicenseManagerRejectGrantInput {
  GrantArn: String!
}

input AwsLicenseManagerTagResourceInput {
  ResourceArn: String!
  Tags: [AwsLicenseManagerS1dInput]!
}

input AwsLicenseManagerUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsLicenseManagerUpdateLicenseConfigurationInput {
  LicenseConfigurationArn: String!
  LicenseConfigurationStatus: String
  LicenseRules: [String]
  LicenseCount: JSON
  LicenseCountHardLimit: Boolean
  Name: String
  Description: String
  ProductInformationList: [AwsLicenseManagerS1fInput]
  DisassociateWhenNotFound: Boolean
}

input AwsLicenseManagerUpdateLicenseManagerReportGeneratorInput {
  LicenseManagerReportGeneratorArn: String!
  ReportGeneratorName: String!
  Type: [String]!
  ReportContext: AwsLicenseManagerS1oInput!
  ReportFrequency: AwsLicenseManagerS1qInput!
  ClientToken: String!
  Description: String
}

input AwsLicenseManagerUpdateLicenseSpecificationsForResourceInput {
  ResourceArn: String!
  AddLicenseSpecifications: [AwsLicenseManagerS41Input]
  RemoveLicenseSpecifications: [AwsLicenseManagerS41Input]
}

input AwsLicenseManagerS41Input {
  LicenseConfigurationArn: String!
  AmiAssociationScope: String
}

input AwsLicenseManagerUpdateServiceSettingsInput {
  S3BucketArn: String
  SnsTopicArn: String
  OrganizationConfiguration: AwsLicenseManagerS39Input
  EnableCrossAccountsDiscovery: Boolean
}

input AwsLicenseManagerS39Input {
  EnableIntegration: Boolean!
}

"""Amazon Lightsail (2016-11-28)"""
type AwsLightsail {
  allocateStaticIp(input: AwsLightsailAllocateStaticIpInput!, config: AwsConfig): AwsLightsailAllocateStaticIpOutput
  attachCertificateToDistribution(input: AwsLightsailAttachCertificateToDistributionInput!, config: AwsConfig): AwsLightsailAttachCertificateToDistributionOutput
  attachDisk(input: AwsLightsailAttachDiskInput!, config: AwsConfig): AwsLightsailAttachDiskOutput
  attachInstancesToLoadBalancer(input: AwsLightsailAttachInstancesToLoadBalancerInput!, config: AwsConfig): AwsLightsailAttachInstancesToLoadBalancerOutput
  attachLoadBalancerTlsCertificate(input: AwsLightsailAttachLoadBalancerTlsCertificateInput!, config: AwsConfig): AwsLightsailAttachLoadBalancerTlsCertificateOutput
  attachStaticIp(input: AwsLightsailAttachStaticIpInput!, config: AwsConfig): AwsLightsailAttachStaticIpOutput
  closeInstancePublicPorts(input: AwsLightsailCloseInstancePublicPortsInput!, config: AwsConfig): AwsLightsailCloseInstancePublicPortsOutput
  copySnapshot(input: AwsLightsailCopySnapshotInput!, config: AwsConfig): AwsLightsailCopySnapshotOutput
  createCertificate(input: AwsLightsailCreateCertificateInput!, config: AwsConfig): AwsLightsailCreateCertificateOutput
  createCloudFormationStack(input: AwsLightsailCreateCloudFormationStackInput!, config: AwsConfig): AwsLightsailCreateCloudFormationStackOutput
  createContactMethod(input: AwsLightsailCreateContactMethodInput!, config: AwsConfig): AwsLightsailCreateContactMethodOutput
  createContainerService(input: AwsLightsailCreateContainerServiceInput!, config: AwsConfig): AwsLightsailCreateContainerServiceOutput
  createContainerServiceDeployment(input: AwsLightsailCreateContainerServiceDeploymentInput, config: AwsConfig): AwsLightsailCreateContainerServiceDeploymentOutput
  createContainerServiceRegistryLogin(input: JSON, config: AwsConfig): AwsLightsailCreateContainerServiceRegistryLoginOutput
  createDisk(input: AwsLightsailCreateDiskInput!, config: AwsConfig): AwsLightsailCreateDiskOutput
  createDiskFromSnapshot(input: AwsLightsailCreateDiskFromSnapshotInput!, config: AwsConfig): AwsLightsailCreateDiskFromSnapshotOutput
  createDiskSnapshot(input: AwsLightsailCreateDiskSnapshotInput!, config: AwsConfig): AwsLightsailCreateDiskSnapshotOutput
  createDistribution(input: AwsLightsailCreateDistributionInput!, config: AwsConfig): AwsLightsailCreateDistributionOutput
  createDomain(input: AwsLightsailCreateDomainInput!, config: AwsConfig): AwsLightsailCreateDomainOutput
  createDomainEntry(input: AwsLightsailCreateDomainEntryInput!, config: AwsConfig): AwsLightsailCreateDomainEntryOutput
  createInstanceSnapshot(input: AwsLightsailCreateInstanceSnapshotInput!, config: AwsConfig): AwsLightsailCreateInstanceSnapshotOutput
  createInstances(input: AwsLightsailCreateInstancesInput!, config: AwsConfig): AwsLightsailCreateInstancesOutput
  createInstancesFromSnapshot(input: AwsLightsailCreateInstancesFromSnapshotInput!, config: AwsConfig): AwsLightsailCreateInstancesFromSnapshotOutput
  createKeyPair(input: AwsLightsailCreateKeyPairInput!, config: AwsConfig): AwsLightsailCreateKeyPairOutput
  createLoadBalancer(input: AwsLightsailCreateLoadBalancerInput!, config: AwsConfig): AwsLightsailCreateLoadBalancerOutput
  createLoadBalancerTlsCertificate(input: AwsLightsailCreateLoadBalancerTlsCertificateInput!, config: AwsConfig): AwsLightsailCreateLoadBalancerTlsCertificateOutput
  createRelationalDatabase(input: AwsLightsailCreateRelationalDatabaseInput!, config: AwsConfig): AwsLightsailCreateRelationalDatabaseOutput
  createRelationalDatabaseFromSnapshot(input: AwsLightsailCreateRelationalDatabaseFromSnapshotInput!, config: AwsConfig): AwsLightsailCreateRelationalDatabaseFromSnapshotOutput
  createRelationalDatabaseSnapshot(input: AwsLightsailCreateRelationalDatabaseSnapshotInput!, config: AwsConfig): AwsLightsailCreateRelationalDatabaseSnapshotOutput
  deleteAlarm(input: AwsLightsailDeleteAlarmInput!, config: AwsConfig): AwsLightsailDeleteAlarmOutput
  deleteAutoSnapshot(input: AwsLightsailDeleteAutoSnapshotInput!, config: AwsConfig): AwsLightsailDeleteAutoSnapshotOutput
  deleteCertificate(input: AwsLightsailDeleteCertificateInput!, config: AwsConfig): AwsLightsailDeleteCertificateOutput
  deleteContactMethod(input: AwsLightsailDeleteContactMethodInput!, config: AwsConfig): AwsLightsailDeleteContactMethodOutput
  deleteContainerImage(input: AwsLightsailDeleteContainerImageInput!, config: AwsConfig): JSON
  deleteContainerService(input: AwsLightsailDeleteContainerServiceInput!, config: AwsConfig): JSON
  deleteDisk(input: AwsLightsailDeleteDiskInput!, config: AwsConfig): AwsLightsailDeleteDiskOutput
  deleteDiskSnapshot(input: AwsLightsailDeleteDiskSnapshotInput!, config: AwsConfig): AwsLightsailDeleteDiskSnapshotOutput
  deleteDistribution(input: AwsLightsailDeleteDistributionInput, config: AwsConfig): AwsLightsailDeleteDistributionOutput
  deleteDomain(input: AwsLightsailDeleteDomainInput!, config: AwsConfig): AwsLightsailDeleteDomainOutput
  deleteDomainEntry(input: AwsLightsailDeleteDomainEntryInput!, config: AwsConfig): AwsLightsailDeleteDomainEntryOutput
  deleteInstance(input: AwsLightsailDeleteInstanceInput!, config: AwsConfig): AwsLightsailDeleteInstanceOutput
  deleteInstanceSnapshot(input: AwsLightsailDeleteInstanceSnapshotInput!, config: AwsConfig): AwsLightsailDeleteInstanceSnapshotOutput
  deleteKeyPair(input: AwsLightsailDeleteKeyPairInput!, config: AwsConfig): AwsLightsailDeleteKeyPairOutput
  deleteKnownHostKeys(input: AwsLightsailDeleteKnownHostKeysInput!, config: AwsConfig): AwsLightsailDeleteKnownHostKeysOutput
  deleteLoadBalancer(input: AwsLightsailDeleteLoadBalancerInput!, config: AwsConfig): AwsLightsailDeleteLoadBalancerOutput
  deleteLoadBalancerTlsCertificate(input: AwsLightsailDeleteLoadBalancerTlsCertificateInput!, config: AwsConfig): AwsLightsailDeleteLoadBalancerTlsCertificateOutput
  deleteRelationalDatabase(input: AwsLightsailDeleteRelationalDatabaseInput!, config: AwsConfig): AwsLightsailDeleteRelationalDatabaseOutput
  deleteRelationalDatabaseSnapshot(input: AwsLightsailDeleteRelationalDatabaseSnapshotInput!, config: AwsConfig): AwsLightsailDeleteRelationalDatabaseSnapshotOutput
  detachCertificateFromDistribution(input: AwsLightsailDetachCertificateFromDistributionInput!, config: AwsConfig): AwsLightsailDetachCertificateFromDistributionOutput
  detachDisk(input: AwsLightsailDetachDiskInput!, config: AwsConfig): AwsLightsailDetachDiskOutput
  detachInstancesFromLoadBalancer(input: AwsLightsailDetachInstancesFromLoadBalancerInput!, config: AwsConfig): AwsLightsailDetachInstancesFromLoadBalancerOutput
  detachStaticIp(input: AwsLightsailDetachStaticIpInput!, config: AwsConfig): AwsLightsailDetachStaticIpOutput
  disableAddOn(input: AwsLightsailDisableAddOnInput!, config: AwsConfig): AwsLightsailDisableAddOnOutput
  downloadDefaultKeyPair(input: JSON, config: AwsConfig): AwsLightsailDownloadDefaultKeyPairOutput
  enableAddOn(input: AwsLightsailEnableAddOnInput!, config: AwsConfig): AwsLightsailEnableAddOnOutput
  exportSnapshot(input: AwsLightsailExportSnapshotInput!, config: AwsConfig): AwsLightsailExportSnapshotOutput
  getActiveNames(input: AwsLightsailGetActiveNamesInput, config: AwsConfig): AwsLightsailGetActiveNamesOutput
  getAlarms(input: AwsLightsailGetAlarmsInput, config: AwsConfig): AwsLightsailGetAlarmsOutput
  getAutoSnapshots(input: AwsLightsailGetAutoSnapshotsInput!, config: AwsConfig): AwsLightsailGetAutoSnapshotsOutput
  getBlueprints(input: AwsLightsailGetBlueprintsInput, config: AwsConfig): AwsLightsailGetBlueprintsOutput
  getBundles(input: AwsLightsailGetBundlesInput, config: AwsConfig): AwsLightsailGetBundlesOutput
  getCertificates(input: AwsLightsailGetCertificatesInput, config: AwsConfig): AwsLightsailGetCertificatesOutput
  getCloudFormationStackRecords(input: AwsLightsailGetCloudFormationStackRecordsInput, config: AwsConfig): AwsLightsailGetCloudFormationStackRecordsOutput
  getContactMethods(input: AwsLightsailGetContactMethodsInput, config: AwsConfig): AwsLightsailGetContactMethodsOutput
  getContainerAPIMetadata(input: JSON, config: AwsConfig): AwsLightsailGetContainerAPIMetadataOutput
  getContainerImages(input: AwsLightsailGetContainerImagesInput!, config: AwsConfig): AwsLightsailGetContainerImagesOutput
  getContainerLog(input: AwsLightsailGetContainerLogInput!, config: AwsConfig): AwsLightsailGetContainerLogOutput
  getContainerServiceDeployments(input: AwsLightsailGetContainerServiceDeploymentsInput!, config: AwsConfig): AwsLightsailGetContainerServiceDeploymentsOutput
  getContainerServiceMetricData(input: AwsLightsailGetContainerServiceMetricDataInput!, config: AwsConfig): AwsLightsailGetContainerServiceMetricDataOutput
  getContainerServicePowers(input: JSON, config: AwsConfig): AwsLightsailGetContainerServicePowersOutput
  getContainerServices(input: AwsLightsailGetContainerServicesInput, config: AwsConfig): AwsLightsailGetContainerServicesOutput
  getDisk(input: AwsLightsailGetDiskInput!, config: AwsConfig): AwsLightsailGetDiskOutput
  getDiskSnapshot(input: AwsLightsailGetDiskSnapshotInput!, config: AwsConfig): AwsLightsailGetDiskSnapshotOutput
  getDiskSnapshots(input: AwsLightsailGetDiskSnapshotsInput, config: AwsConfig): AwsLightsailGetDiskSnapshotsOutput
  getDisks(input: AwsLightsailGetDisksInput, config: AwsConfig): AwsLightsailGetDisksOutput
  getDistributionBundles(input: JSON, config: AwsConfig): AwsLightsailGetDistributionBundlesOutput
  getDistributionLatestCacheReset(input: AwsLightsailGetDistributionLatestCacheResetInput, config: AwsConfig): AwsLightsailGetDistributionLatestCacheResetOutput
  getDistributionMetricData(input: AwsLightsailGetDistributionMetricDataInput!, config: AwsConfig): AwsLightsailGetDistributionMetricDataOutput
  getDistributions(input: AwsLightsailGetDistributionsInput, config: AwsConfig): AwsLightsailGetDistributionsOutput
  getDomain(input: AwsLightsailGetDomainInput!, config: AwsConfig): AwsLightsailGetDomainOutput
  getDomains(input: AwsLightsailGetDomainsInput, config: AwsConfig): AwsLightsailGetDomainsOutput
  getExportSnapshotRecords(input: AwsLightsailGetExportSnapshotRecordsInput, config: AwsConfig): AwsLightsailGetExportSnapshotRecordsOutput
  getInstance(input: AwsLightsailGetInstanceInput!, config: AwsConfig): AwsLightsailGetInstanceOutput
  getInstanceAccessDetails(input: AwsLightsailGetInstanceAccessDetailsInput!, config: AwsConfig): AwsLightsailGetInstanceAccessDetailsOutput
  getInstanceMetricData(input: AwsLightsailGetInstanceMetricDataInput!, config: AwsConfig): AwsLightsailGetInstanceMetricDataOutput
  getInstancePortStates(input: AwsLightsailGetInstancePortStatesInput!, config: AwsConfig): AwsLightsailGetInstancePortStatesOutput
  getInstanceSnapshot(input: AwsLightsailGetInstanceSnapshotInput!, config: AwsConfig): AwsLightsailGetInstanceSnapshotOutput
  getInstanceSnapshots(input: AwsLightsailGetInstanceSnapshotsInput, config: AwsConfig): AwsLightsailGetInstanceSnapshotsOutput
  getInstanceState(input: AwsLightsailGetInstanceStateInput!, config: AwsConfig): AwsLightsailGetInstanceStateOutput
  getInstances(input: AwsLightsailGetInstancesInput, config: AwsConfig): AwsLightsailGetInstancesOutput
  getKeyPair(input: AwsLightsailGetKeyPairInput!, config: AwsConfig): AwsLightsailGetKeyPairOutput
  getKeyPairs(input: AwsLightsailGetKeyPairsInput, config: AwsConfig): AwsLightsailGetKeyPairsOutput
  getLoadBalancer(input: AwsLightsailGetLoadBalancerInput!, config: AwsConfig): AwsLightsailGetLoadBalancerOutput
  getLoadBalancerMetricData(input: AwsLightsailGetLoadBalancerMetricDataInput!, config: AwsConfig): AwsLightsailGetLoadBalancerMetricDataOutput
  getLoadBalancerTlsCertificates(input: AwsLightsailGetLoadBalancerTlsCertificatesInput!, config: AwsConfig): AwsLightsailGetLoadBalancerTlsCertificatesOutput
  getLoadBalancers(input: AwsLightsailGetLoadBalancersInput, config: AwsConfig): AwsLightsailGetLoadBalancersOutput
  getOperation(input: AwsLightsailGetOperationInput!, config: AwsConfig): AwsLightsailGetOperationOutput
  getOperations(input: AwsLightsailGetOperationsInput, config: AwsConfig): AwsLightsailGetOperationsOutput
  getOperationsForResource(input: AwsLightsailGetOperationsForResourceInput!, config: AwsConfig): AwsLightsailGetOperationsForResourceOutput
  getRegions(input: AwsLightsailGetRegionsInput, config: AwsConfig): AwsLightsailGetRegionsOutput
  getRelationalDatabase(input: AwsLightsailGetRelationalDatabaseInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseOutput
  getRelationalDatabaseBlueprints(input: AwsLightsailGetRelationalDatabaseBlueprintsInput, config: AwsConfig): AwsLightsailGetRelationalDatabaseBlueprintsOutput
  getRelationalDatabaseBundles(input: AwsLightsailGetRelationalDatabaseBundlesInput, config: AwsConfig): AwsLightsailGetRelationalDatabaseBundlesOutput
  getRelationalDatabaseEvents(input: AwsLightsailGetRelationalDatabaseEventsInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseEventsOutput
  getRelationalDatabaseLogEvents(input: AwsLightsailGetRelationalDatabaseLogEventsInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseLogEventsOutput
  getRelationalDatabaseLogStreams(input: AwsLightsailGetRelationalDatabaseLogStreamsInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseLogStreamsOutput
  getRelationalDatabaseMasterUserPassword(input: AwsLightsailGetRelationalDatabaseMasterUserPasswordInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseMasterUserPasswordOutput
  getRelationalDatabaseMetricData(input: AwsLightsailGetRelationalDatabaseMetricDataInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseMetricDataOutput
  getRelationalDatabaseParameters(input: AwsLightsailGetRelationalDatabaseParametersInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseParametersOutput
  getRelationalDatabaseSnapshot(input: AwsLightsailGetRelationalDatabaseSnapshotInput!, config: AwsConfig): AwsLightsailGetRelationalDatabaseSnapshotOutput
  getRelationalDatabaseSnapshots(input: AwsLightsailGetRelationalDatabaseSnapshotsInput, config: AwsConfig): AwsLightsailGetRelationalDatabaseSnapshotsOutput
  getRelationalDatabases(input: AwsLightsailGetRelationalDatabasesInput, config: AwsConfig): AwsLightsailGetRelationalDatabasesOutput
  getStaticIp(input: AwsLightsailGetStaticIpInput!, config: AwsConfig): AwsLightsailGetStaticIpOutput
  getStaticIps(input: AwsLightsailGetStaticIpsInput, config: AwsConfig): AwsLightsailGetStaticIpsOutput
  importKeyPair(input: AwsLightsailImportKeyPairInput!, config: AwsConfig): AwsLightsailImportKeyPairOutput
  isVpcPeered(input: JSON, config: AwsConfig): AwsLightsailIsVpcPeeredOutput
  openInstancePublicPorts(input: AwsLightsailOpenInstancePublicPortsInput!, config: AwsConfig): AwsLightsailOpenInstancePublicPortsOutput
  peerVpc(input: JSON, config: AwsConfig): AwsLightsailPeerVpcOutput
  putAlarm(input: AwsLightsailPutAlarmInput!, config: AwsConfig): AwsLightsailPutAlarmOutput
  putInstancePublicPorts(input: AwsLightsailPutInstancePublicPortsInput!, config: AwsConfig): AwsLightsailPutInstancePublicPortsOutput
  rebootInstance(input: AwsLightsailRebootInstanceInput!, config: AwsConfig): AwsLightsailRebootInstanceOutput
  rebootRelationalDatabase(input: AwsLightsailRebootRelationalDatabaseInput!, config: AwsConfig): AwsLightsailRebootRelationalDatabaseOutput
  registerContainerImage(input: AwsLightsailRegisterContainerImageInput!, config: AwsConfig): AwsLightsailRegisterContainerImageOutput
  releaseStaticIp(input: AwsLightsailReleaseStaticIpInput!, config: AwsConfig): AwsLightsailReleaseStaticIpOutput
  resetDistributionCache(input: AwsLightsailResetDistributionCacheInput, config: AwsConfig): AwsLightsailResetDistributionCacheOutput
  sendContactMethodVerification(input: AwsLightsailSendContactMethodVerificationInput!, config: AwsConfig): AwsLightsailSendContactMethodVerificationOutput
  setIpAddressType(input: AwsLightsailSetIpAddressTypeInput!, config: AwsConfig): AwsLightsailSetIpAddressTypeOutput
  startInstance(input: AwsLightsailStartInstanceInput!, config: AwsConfig): AwsLightsailStartInstanceOutput
  startRelationalDatabase(input: AwsLightsailStartRelationalDatabaseInput!, config: AwsConfig): AwsLightsailStartRelationalDatabaseOutput
  stopInstance(input: AwsLightsailStopInstanceInput!, config: AwsConfig): AwsLightsailStopInstanceOutput
  stopRelationalDatabase(input: AwsLightsailStopRelationalDatabaseInput!, config: AwsConfig): AwsLightsailStopRelationalDatabaseOutput
  tagResource(input: AwsLightsailTagResourceInput!, config: AwsConfig): AwsLightsailTagResourceOutput
  testAlarm(input: AwsLightsailTestAlarmInput!, config: AwsConfig): AwsLightsailTestAlarmOutput
  unpeerVpc(input: JSON, config: AwsConfig): AwsLightsailUnpeerVpcOutput
  untagResource(input: AwsLightsailUntagResourceInput!, config: AwsConfig): AwsLightsailUntagResourceOutput
  updateContainerService(input: AwsLightsailUpdateContainerServiceInput!, config: AwsConfig): AwsLightsailUpdateContainerServiceOutput
  updateDistribution(input: AwsLightsailUpdateDistributionInput!, config: AwsConfig): AwsLightsailUpdateDistributionOutput
  updateDistributionBundle(input: AwsLightsailUpdateDistributionBundleInput, config: AwsConfig): AwsLightsailUpdateDistributionBundleOutput
  updateDomainEntry(input: AwsLightsailUpdateDomainEntryInput!, config: AwsConfig): AwsLightsailUpdateDomainEntryOutput
  updateLoadBalancerAttribute(input: AwsLightsailUpdateLoadBalancerAttributeInput!, config: AwsConfig): AwsLightsailUpdateLoadBalancerAttributeOutput
  updateRelationalDatabase(input: AwsLightsailUpdateRelationalDatabaseInput!, config: AwsConfig): AwsLightsailUpdateRelationalDatabaseOutput
  updateRelationalDatabaseParameters(input: AwsLightsailUpdateRelationalDatabaseParametersInput!, config: AwsConfig): AwsLightsailUpdateRelationalDatabaseParametersOutput
}

type AwsLightsailAllocateStaticIpOutput {
  operations: [AwsLightsailS5]
}

type AwsLightsailS5 {
  id: String
  resourceName: String
  resourceType: String
  createdAt: Date
  location: AwsLightsailS9
  isTerminal: Boolean
  operationDetails: String
  operationType: String
  status: String
  statusChangedAt: Date
  errorCode: String
  errorDetails: String
}

type AwsLightsailS9 {
  availabilityZone: String
  regionName: String
}

input AwsLightsailAllocateStaticIpInput {
  staticIpName: String!
}

type AwsLightsailAttachCertificateToDistributionOutput {
  operation: AwsLightsailS5
}

input AwsLightsailAttachCertificateToDistributionInput {
  distributionName: String!
  certificateName: String!
}

type AwsLightsailAttachDiskOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailAttachDiskInput {
  diskName: String!
  instanceName: String!
  diskPath: String!
}

type AwsLightsailAttachInstancesToLoadBalancerOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailAttachInstancesToLoadBalancerInput {
  loadBalancerName: String!
  instanceNames: [String]!
}

type AwsLightsailAttachLoadBalancerTlsCertificateOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailAttachLoadBalancerTlsCertificateInput {
  loadBalancerName: String!
  certificateName: String!
}

type AwsLightsailAttachStaticIpOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailAttachStaticIpInput {
  staticIpName: String!
  instanceName: String!
}

type AwsLightsailCloseInstancePublicPortsOutput {
  operation: AwsLightsailS5
}

input AwsLightsailCloseInstancePublicPortsInput {
  portInfo: AwsLightsailSrInput!
  instanceName: String!
}

input AwsLightsailSrInput {
  fromPort: Int
  toPort: Int
  protocol: String
  cidrs: [String]
  ipv6Cidrs: [String]
  cidrListAliases: [String]
}

type AwsLightsailCopySnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCopySnapshotInput {
  sourceSnapshotName: String
  sourceResourceName: String
  restoreDate: String
  useLatestRestorableAutoSnapshot: Boolean
  targetSnapshotName: String!
  sourceRegion: String!
}

type AwsLightsailCreateCertificateOutput {
  certificate: AwsLightsailS17
  operations: [AwsLightsailS5]
}

type AwsLightsailS17 {
  certificateArn: String
  certificateName: String
  domainName: String
  certificateDetail: AwsLightsailS17CertificateDetail
  tags: [AwsLightsailS12]
}

type AwsLightsailS17CertificateDetail {
  arn: String
  name: String
  domainName: String
  status: String
  serialNumber: String
  subjectAlternativeNames: [String]
  domainValidationRecords: [AwsLightsailS1b]
  requestFailureReason: String
  inUseResourceCount: Int
  keyAlgorithm: String
  createdAt: Date
  issuedAt: Date
  issuerCA: String
  notBefore: Date
  notAfter: Date
  eligibleToRenew: String
  renewalSummary: AwsLightsailS17CertificateDetailRenewalSummary
  revokedAt: Date
  revocationReason: String
  tags: [AwsLightsailS12]
  supportCode: String
}

type AwsLightsailS1b {
  domainName: String
  resourceRecord: AwsLightsailS1bResourceRecord
}

type AwsLightsailS1bResourceRecord {
  name: String
  type: String
  value: String
}

type AwsLightsailS17CertificateDetailRenewalSummary {
  domainValidationRecords: [AwsLightsailS1b]
  renewalStatus: String
  renewalStatusReason: String
  updatedAt: Date
}

type AwsLightsailS12 {
  key: String
  value: String
}

input AwsLightsailCreateCertificateInput {
  certificateName: String!
  domainName: String!
  subjectAlternativeNames: [String]
  tags: [AwsLightsailS12Input]
}

input AwsLightsailS12Input {
  key: String
  value: String
}

type AwsLightsailCreateCloudFormationStackOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateCloudFormationStackInput {
  instances: [AwsLightsailCreateCloudFormationStackInstancesInput]!
}

input AwsLightsailCreateCloudFormationStackInstancesInput {
  sourceName: String!
  instanceType: String!
  portInfoSource: String!
  userData: String
  availabilityZone: String!
}

type AwsLightsailCreateContactMethodOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateContactMethodInput {
  protocol: String!
  contactEndpoint: String!
}

type AwsLightsailCreateContainerServiceOutput {
  containerService: AwsLightsailS2d
}

type AwsLightsailS2d {
  containerServiceName: String
  arn: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  power: String
  powerId: String
  state: String
  stateDetail: AwsLightsailS2dStateDetail
  scale: Int
  currentDeployment: AwsLightsailS2h
  nextDeployment: AwsLightsailS2h
  isDisabled: Boolean
  principalArn: String
  privateDomainName: String
  publicDomainNames: JSON
  url: String
}

type AwsLightsailS2dStateDetail {
  code: String
  message: String
}

type AwsLightsailS2h {
  version: Int
  state: String
  containers: JSON
  publicEndpoint: AwsLightsailS2hPublicEndpoint
  createdAt: Date
}

type AwsLightsailS2hPublicEndpoint {
  containerName: String
  containerPort: Int
  healthCheck: AwsLightsailS2b
}

type AwsLightsailS2b {
  healthyThreshold: Int
  unhealthyThreshold: Int
  timeoutSeconds: Int
  intervalSeconds: Int
  path: String
  successCodes: String
}

input AwsLightsailCreateContainerServiceInput {
  serviceName: String!
  power: String!
  scale: Int!
  tags: [AwsLightsailS12Input]
  publicDomainNames: JSON
  deployment: AwsLightsailCreateContainerServiceDeploymentInput
}

input AwsLightsailCreateContainerServiceDeploymentInput {
  containers: JSON
  publicEndpoint: AwsLightsailS29Input
}

input AwsLightsailS29Input {
  containerName: String!
  containerPort: Int!
  healthCheck: AwsLightsailS2bInput
}

input AwsLightsailS2bInput {
  healthyThreshold: Int
  unhealthyThreshold: Int
  timeoutSeconds: Int
  intervalSeconds: Int
  path: String
  successCodes: String
}

type AwsLightsailCreateContainerServiceDeploymentOutput {
  containerService: AwsLightsailS2d
}

type AwsLightsailCreateContainerServiceRegistryLoginOutput {
  registryLogin: AwsLightsailCreateContainerServiceRegistryLoginOutputRegistryLogin
}

type AwsLightsailCreateContainerServiceRegistryLoginOutputRegistryLogin {
  username: String
  password: String
  expiresAt: Date
  registry: String
}

type AwsLightsailCreateDiskOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateDiskInput {
  diskName: String!
  availabilityZone: String!
  sizeInGb: Int!
  tags: [AwsLightsailS12Input]
  addOns: [AwsLightsailS2rInput]
}

input AwsLightsailS2rInput {
  addOnType: String!
  autoSnapshotAddOnRequest: AwsLightsailS2rAutoSnapshotAddOnRequestInput
}

input AwsLightsailS2rAutoSnapshotAddOnRequestInput {
  snapshotTimeOfDay: String
}

type AwsLightsailCreateDiskFromSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateDiskFromSnapshotInput {
  diskName: String!
  diskSnapshotName: String
  availabilityZone: String!
  sizeInGb: Int!
  tags: [AwsLightsailS12Input]
  addOns: [AwsLightsailS2rInput]
  sourceDiskName: String
  restoreDate: String
  useLatestRestorableAutoSnapshot: Boolean
}

type AwsLightsailCreateDiskSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateDiskSnapshotInput {
  diskName: String
  diskSnapshotName: String!
  instanceName: String
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateDistributionOutput {
  distribution: AwsLightsailS3h
  operation: AwsLightsailS5
}

type AwsLightsailS3h {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  alternativeDomainNames: [String]
  status: String
  isEnabled: Boolean
  domainName: String
  bundleId: String
  certificateName: String
  origin: AwsLightsailS3hOrigin
  originPublicDNS: String
  defaultCacheBehavior: AwsLightsailS33
  cacheBehaviorSettings: AwsLightsailS35
  cacheBehaviors: [AwsLightsailS3d]
  ableToUpdateBundle: Boolean
  ipAddressType: String
  tags: [AwsLightsailS12]
}

type AwsLightsailS3hOrigin {
  name: String
  resourceType: String
  regionName: String
  protocolPolicy: String
}

type AwsLightsailS33 {
  behavior: String
}

type AwsLightsailS35 {
  defaultTTL: JSON
  minimumTTL: JSON
  maximumTTL: JSON
  allowedHTTPMethods: String
  cachedHTTPMethods: String
  forwardedCookies: AwsLightsailS35ForwardedCookies
  forwardedHeaders: AwsLightsailS35ForwardedHeaders
  forwardedQueryStrings: AwsLightsailS35ForwardedQueryStrings
}

type AwsLightsailS35ForwardedCookies {
  option: String
  cookiesAllowList: [String]
}

type AwsLightsailS35ForwardedHeaders {
  option: String
  headersAllowList: [String]
}

type AwsLightsailS35ForwardedQueryStrings {
  option: Boolean
  queryStringsAllowList: [String]
}

type AwsLightsailS3d {
  path: String
  behavior: String
}

input AwsLightsailCreateDistributionInput {
  distributionName: String!
  origin: AwsLightsailS31Input!
  defaultCacheBehavior: AwsLightsailS33Input!
  cacheBehaviorSettings: AwsLightsailS35Input
  cacheBehaviors: [AwsLightsailS3dInput]
  bundleId: String!
  ipAddressType: String
  tags: [AwsLightsailS12Input]
}

input AwsLightsailS31Input {
  name: String
  regionName: String
  protocolPolicy: String
}

input AwsLightsailS33Input {
  behavior: String
}

input AwsLightsailS35Input {
  defaultTTL: JSON
  minimumTTL: JSON
  maximumTTL: JSON
  allowedHTTPMethods: String
  cachedHTTPMethods: String
  forwardedCookies: AwsLightsailS35ForwardedCookiesInput
  forwardedHeaders: AwsLightsailS35ForwardedHeadersInput
  forwardedQueryStrings: AwsLightsailS35ForwardedQueryStringsInput
}

input AwsLightsailS35ForwardedCookiesInput {
  option: String
  cookiesAllowList: [String]
}

input AwsLightsailS35ForwardedHeadersInput {
  option: String
  headersAllowList: [String]
}

input AwsLightsailS35ForwardedQueryStringsInput {
  option: Boolean
  queryStringsAllowList: [String]
}

input AwsLightsailS3dInput {
  path: String
  behavior: String
}

type AwsLightsailCreateDomainOutput {
  operation: AwsLightsailS5
}

input AwsLightsailCreateDomainInput {
  domainName: String!
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateDomainEntryOutput {
  operation: AwsLightsailS5
}

input AwsLightsailCreateDomainEntryInput {
  domainName: String!
  domainEntry: AwsLightsailS3mInput!
}

input AwsLightsailS3mInput {
  id: String
  name: String
  target: String
  isAlias: Boolean
  type: String
  options: JSON
}

type AwsLightsailCreateInstanceSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateInstanceSnapshotInput {
  instanceSnapshotName: String!
  instanceName: String!
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateInstancesOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateInstancesInput {
  instanceNames: [String]!
  availabilityZone: String!
  customImageName: String
  blueprintId: String!
  bundleId: String!
  userData: String
  keyPairName: String
  tags: [AwsLightsailS12Input]
  addOns: [AwsLightsailS2rInput]
  ipAddressType: String
}

type AwsLightsailCreateInstancesFromSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateInstancesFromSnapshotInput {
  instanceNames: [String]!
  attachedDiskMapping: JSON
  availabilityZone: String!
  instanceSnapshotName: String
  bundleId: String!
  userData: String
  keyPairName: String
  tags: [AwsLightsailS12Input]
  addOns: [AwsLightsailS2rInput]
  ipAddressType: String
  sourceInstanceName: String
  restoreDate: String
  useLatestRestorableAutoSnapshot: Boolean
}

type AwsLightsailCreateKeyPairOutput {
  keyPair: AwsLightsailS42
  publicKeyBase64: String
  privateKeyBase64: String
  operation: AwsLightsailS5
}

type AwsLightsailS42 {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  fingerprint: String
}

input AwsLightsailCreateKeyPairInput {
  keyPairName: String!
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateLoadBalancerOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateLoadBalancerInput {
  loadBalancerName: String!
  instancePort: Int!
  healthCheckPath: String
  certificateName: String
  certificateDomainName: String
  certificateAlternativeNames: [String]
  tags: [AwsLightsailS12Input]
  ipAddressType: String
}

type AwsLightsailCreateLoadBalancerTlsCertificateOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateLoadBalancerTlsCertificateInput {
  loadBalancerName: String!
  certificateName: String!
  certificateDomainName: String!
  certificateAlternativeNames: [String]
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateRelationalDatabaseInput {
  relationalDatabaseName: String!
  availabilityZone: String
  relationalDatabaseBlueprintId: String!
  relationalDatabaseBundleId: String!
  masterDatabaseName: String!
  masterUsername: String!
  masterUserPassword: String
  preferredBackupWindow: String
  preferredMaintenanceWindow: String
  publiclyAccessible: Boolean
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateRelationalDatabaseFromSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateRelationalDatabaseFromSnapshotInput {
  relationalDatabaseName: String!
  availabilityZone: String
  publiclyAccessible: Boolean
  relationalDatabaseSnapshotName: String
  relationalDatabaseBundleId: String
  sourceRelationalDatabaseName: String
  restoreTime: Date
  useLatestRestorableTime: Boolean
  tags: [AwsLightsailS12Input]
}

type AwsLightsailCreateRelationalDatabaseSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailCreateRelationalDatabaseSnapshotInput {
  relationalDatabaseName: String!
  relationalDatabaseSnapshotName: String!
  tags: [AwsLightsailS12Input]
}

type AwsLightsailDeleteAlarmOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteAlarmInput {
  alarmName: String!
}

type AwsLightsailDeleteAutoSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteAutoSnapshotInput {
  resourceName: String!
  date: String!
}

type AwsLightsailDeleteCertificateOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteCertificateInput {
  certificateName: String!
}

type AwsLightsailDeleteContactMethodOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteContactMethodInput {
  protocol: String!
}

input AwsLightsailDeleteContainerImageInput {
  serviceName: String!
  image: String!
}

input AwsLightsailDeleteContainerServiceInput {
  serviceName: String!
}

type AwsLightsailDeleteDiskOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteDiskInput {
  diskName: String!
  forceDeleteAddOns: Boolean
}

type AwsLightsailDeleteDiskSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteDiskSnapshotInput {
  diskSnapshotName: String!
}

type AwsLightsailDeleteDistributionOutput {
  operation: AwsLightsailS5
}

input AwsLightsailDeleteDistributionInput {
  distributionName: String
}

type AwsLightsailDeleteDomainOutput {
  operation: AwsLightsailS5
}

input AwsLightsailDeleteDomainInput {
  domainName: String!
}

type AwsLightsailDeleteDomainEntryOutput {
  operation: AwsLightsailS5
}

input AwsLightsailDeleteDomainEntryInput {
  domainName: String!
  domainEntry: AwsLightsailS3mInput!
}

type AwsLightsailDeleteInstanceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteInstanceInput {
  instanceName: String!
  forceDeleteAddOns: Boolean
}

type AwsLightsailDeleteInstanceSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteInstanceSnapshotInput {
  instanceSnapshotName: String!
}

type AwsLightsailDeleteKeyPairOutput {
  operation: AwsLightsailS5
}

input AwsLightsailDeleteKeyPairInput {
  keyPairName: String!
}

type AwsLightsailDeleteKnownHostKeysOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteKnownHostKeysInput {
  instanceName: String!
}

type AwsLightsailDeleteLoadBalancerOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteLoadBalancerInput {
  loadBalancerName: String!
}

type AwsLightsailDeleteLoadBalancerTlsCertificateOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteLoadBalancerTlsCertificateInput {
  loadBalancerName: String!
  certificateName: String!
  force: Boolean
}

type AwsLightsailDeleteRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteRelationalDatabaseInput {
  relationalDatabaseName: String!
  skipFinalSnapshot: Boolean
  finalRelationalDatabaseSnapshotName: String
}

type AwsLightsailDeleteRelationalDatabaseSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDeleteRelationalDatabaseSnapshotInput {
  relationalDatabaseSnapshotName: String!
}

type AwsLightsailDetachCertificateFromDistributionOutput {
  operation: AwsLightsailS5
}

input AwsLightsailDetachCertificateFromDistributionInput {
  distributionName: String!
}

type AwsLightsailDetachDiskOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDetachDiskInput {
  diskName: String!
}

type AwsLightsailDetachInstancesFromLoadBalancerOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDetachInstancesFromLoadBalancerInput {
  loadBalancerName: String!
  instanceNames: [String]!
}

type AwsLightsailDetachStaticIpOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDetachStaticIpInput {
  staticIpName: String!
}

type AwsLightsailDisableAddOnOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailDisableAddOnInput {
  addOnType: String!
  resourceName: String!
}

type AwsLightsailDownloadDefaultKeyPairOutput {
  publicKeyBase64: String
  privateKeyBase64: String
}

type AwsLightsailEnableAddOnOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailEnableAddOnInput {
  resourceName: String!
  addOnRequest: AwsLightsailS2rInput!
}

type AwsLightsailExportSnapshotOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailExportSnapshotInput {
  sourceSnapshotName: String!
}

type AwsLightsailGetActiveNamesOutput {
  activeNames: [String]
  nextPageToken: String
}

input AwsLightsailGetActiveNamesInput {
  pageToken: String
}

type AwsLightsailGetAlarmsOutput {
  alarms: [AwsLightsailGetAlarmsOutputAlarms]
  nextPageToken: String
}

type AwsLightsailGetAlarmsOutputAlarms {
  name: String
  arn: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  supportCode: String
  monitoredResourceInfo: AwsLightsailGetAlarmsOutputAlarmsMonitoredResourceInfo
  comparisonOperator: String
  evaluationPeriods: Int
  period: Int
  threshold: JSON
  datapointsToAlarm: Int
  treatMissingData: String
  statistic: String
  metricName: String
  state: String
  unit: String
  contactProtocols: [String]
  notificationTriggers: [String]
  notificationEnabled: Boolean
}

type AwsLightsailGetAlarmsOutputAlarmsMonitoredResourceInfo {
  arn: String
  name: String
  resourceType: String
}

input AwsLightsailGetAlarmsInput {
  alarmName: String
  pageToken: String
  monitoredResourceName: String
}

type AwsLightsailGetAutoSnapshotsOutput {
  resourceName: String
  resourceType: String
  autoSnapshots: [AwsLightsailGetAutoSnapshotsOutputAutoSnapshots]
}

type AwsLightsailGetAutoSnapshotsOutputAutoSnapshots {
  date: String
  createdAt: Date
  status: String
  fromAttachedDisks: [AwsLightsailGetAutoSnapshotsOutputAutoSnapshotsFromAttachedDisks]
}

type AwsLightsailGetAutoSnapshotsOutputAutoSnapshotsFromAttachedDisks {
  path: String
  sizeInGb: Int
}

input AwsLightsailGetAutoSnapshotsInput {
  resourceName: String!
}

type AwsLightsailGetBlueprintsOutput {
  blueprints: [AwsLightsailGetBlueprintsOutputBlueprints]
  nextPageToken: String
}

type AwsLightsailGetBlueprintsOutputBlueprints {
  blueprintId: String
  name: String
  group: String
  type: String
  description: String
  isActive: Boolean
  minPower: Int
  version: String
  versionCode: String
  productUrl: String
  licenseUrl: String
  platform: String
}

input AwsLightsailGetBlueprintsInput {
  includeInactive: Boolean
  pageToken: String
}

type AwsLightsailGetBundlesOutput {
  bundles: [AwsLightsailGetBundlesOutputBundles]
  nextPageToken: String
}

type AwsLightsailGetBundlesOutputBundles {
  price: Float
  cpuCount: Int
  diskSizeInGb: Int
  bundleId: String
  instanceType: String
  isActive: Boolean
  name: String
  power: Int
  ramSizeInGb: Float
  transferPerMonthInGb: Int
  supportedPlatforms: [String]
}

input AwsLightsailGetBundlesInput {
  includeInactive: Boolean
  pageToken: String
}

type AwsLightsailGetCertificatesOutput {
  certificates: [AwsLightsailS17]
}

input AwsLightsailGetCertificatesInput {
  certificateStatuses: [String]
  includeCertificateDetails: Boolean
  certificateName: String
}

type AwsLightsailGetCloudFormationStackRecordsOutput {
  cloudFormationStackRecords: [AwsLightsailGetCloudFormationStackRecordsOutputCloudFormationStackRecords]
  nextPageToken: String
}

type AwsLightsailGetCloudFormationStackRecordsOutputCloudFormationStackRecords {
  name: String
  arn: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  state: String
  sourceInfo: [AwsLightsailGetCloudFormationStackRecordsOutputCloudFormationStackRecordsSourceInfo]
  destinationInfo: AwsLightsailS7d
}

type AwsLightsailGetCloudFormationStackRecordsOutputCloudFormationStackRecordsSourceInfo {
  resourceType: String
  name: String
  arn: String
}

type AwsLightsailS7d {
  id: String
  service: String
}

input AwsLightsailGetCloudFormationStackRecordsInput {
  pageToken: String
}

type AwsLightsailGetContactMethodsOutput {
  contactMethods: [AwsLightsailGetContactMethodsOutputContactMethods]
}

type AwsLightsailGetContactMethodsOutputContactMethods {
  contactEndpoint: String
  status: String
  protocol: String
  name: String
  arn: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  supportCode: String
}

input AwsLightsailGetContactMethodsInput {
  protocols: [String]
}

type AwsLightsailGetContainerAPIMetadataOutput {
  metadata: [JSON]
}

type AwsLightsailGetContainerImagesOutput {
  containerImages: [AwsLightsailS7q]
}

type AwsLightsailS7q {
  image: String
  digest: String
  createdAt: Date
}

input AwsLightsailGetContainerImagesInput {
  serviceName: String!
}

type AwsLightsailGetContainerLogOutput {
  logEvents: [AwsLightsailGetContainerLogOutputLogEvents]
  nextPageToken: String
}

type AwsLightsailGetContainerLogOutputLogEvents {
  createdAt: Date
  message: String
}

input AwsLightsailGetContainerLogInput {
  serviceName: String!
  containerName: String!
  startTime: Date
  endTime: Date
  filterPattern: String
  pageToken: String
}

type AwsLightsailGetContainerServiceDeploymentsOutput {
  deployments: [AwsLightsailS2h]
}

input AwsLightsailGetContainerServiceDeploymentsInput {
  serviceName: String!
}

type AwsLightsailGetContainerServiceMetricDataOutput {
  metricName: String
  metricData: [AwsLightsailS82]
}

type AwsLightsailS82 {
  average: JSON
  maximum: JSON
  minimum: JSON
  sampleCount: JSON
  sum: JSON
  timestamp: Date
  unit: String
}

input AwsLightsailGetContainerServiceMetricDataInput {
  serviceName: String!
  metricName: String!
  startTime: Date!
  endTime: Date!
  period: Int!
  statistics: [String]!
}

type AwsLightsailGetContainerServicePowersOutput {
  powers: [AwsLightsailGetContainerServicePowersOutputPowers]
}

type AwsLightsailGetContainerServicePowersOutputPowers {
  powerId: String
  price: Float
  cpuCount: Float
  ramSizeInGb: Float
  name: String
  isActive: Boolean
}

type AwsLightsailGetContainerServicesOutput {
  containerServices: [AwsLightsailS2d]
}

input AwsLightsailGetContainerServicesInput {
  serviceName: String
}

type AwsLightsailGetDiskOutput {
  disk: AwsLightsailS8e
}

type AwsLightsailS8e {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  addOns: [AwsLightsailS8f]
  sizeInGb: Int
  isSystemDisk: Boolean
  iops: Int
  path: String
  state: String
  attachedTo: String
  isAttached: Boolean
  attachmentState: String
  gbInUse: Int
}

type AwsLightsailS8f {
  name: String
  status: String
  snapshotTimeOfDay: String
  nextSnapshotTimeOfDay: String
}

input AwsLightsailGetDiskInput {
  diskName: String!
}

type AwsLightsailGetDiskSnapshotOutput {
  diskSnapshot: AwsLightsailS8k
}

type AwsLightsailS8k {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  sizeInGb: Int
  state: String
  progress: String
  fromDiskName: String
  fromDiskArn: String
  fromInstanceName: String
  fromInstanceArn: String
  isFromAutoSnapshot: Boolean
}

input AwsLightsailGetDiskSnapshotInput {
  diskSnapshotName: String!
}

type AwsLightsailGetDiskSnapshotsOutput {
  diskSnapshots: [AwsLightsailS8k]
  nextPageToken: String
}

input AwsLightsailGetDiskSnapshotsInput {
  pageToken: String
}

type AwsLightsailGetDisksOutput {
  disks: [AwsLightsailS8e]
  nextPageToken: String
}

input AwsLightsailGetDisksInput {
  pageToken: String
}

type AwsLightsailGetDistributionBundlesOutput {
  bundles: [AwsLightsailGetDistributionBundlesOutputBundles]
}

type AwsLightsailGetDistributionBundlesOutputBundles {
  bundleId: String
  name: String
  price: Float
  transferPerMonthInGb: Int
  isActive: Boolean
}

type AwsLightsailGetDistributionLatestCacheResetOutput {
  status: String
  createTime: Date
}

input AwsLightsailGetDistributionLatestCacheResetInput {
  distributionName: String
}

type AwsLightsailGetDistributionMetricDataOutput {
  metricName: String
  metricData: [AwsLightsailS82]
}

input AwsLightsailGetDistributionMetricDataInput {
  distributionName: String!
  metricName: String!
  startTime: Date!
  endTime: Date!
  period: Int!
  unit: String!
  statistics: [String]!
}

type AwsLightsailGetDistributionsOutput {
  distributions: [AwsLightsailS3h]
  nextPageToken: String
}

input AwsLightsailGetDistributionsInput {
  distributionName: String
  pageToken: String
}

type AwsLightsailGetDomainOutput {
  domain: AwsLightsailS96
}

type AwsLightsailS96 {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  domainEntries: [AwsLightsailS3m]
}

type AwsLightsailS3m {
  id: String
  name: String
  target: String
  isAlias: Boolean
  type: String
  options: JSON
}

input AwsLightsailGetDomainInput {
  domainName: String!
}

type AwsLightsailGetDomainsOutput {
  domains: [AwsLightsailS96]
  nextPageToken: String
}

input AwsLightsailGetDomainsInput {
  pageToken: String
}

type AwsLightsailGetExportSnapshotRecordsOutput {
  exportSnapshotRecords: [AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecords]
  nextPageToken: String
}

type AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecords {
  name: String
  arn: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  state: String
  sourceInfo: AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfo
  destinationInfo: AwsLightsailS7d
}

type AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfo {
  resourceType: String
  createdAt: Date
  name: String
  arn: String
  fromResourceName: String
  fromResourceArn: String
  instanceSnapshotInfo: AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoInstanceSnapshotInfo
  diskSnapshotInfo: AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoDiskSnapshotInfo
}

type AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoInstanceSnapshotInfo {
  fromBundleId: String
  fromBlueprintId: String
  fromDiskInfo: [AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoInstanceSnapshotInfoFromDiskInfo]
}

type AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoInstanceSnapshotInfoFromDiskInfo {
  name: String
  path: String
  sizeInGb: Int
  isSystemDisk: Boolean
}

type AwsLightsailGetExportSnapshotRecordsOutputExportSnapshotRecordsSourceInfoDiskSnapshotInfo {
  sizeInGb: Int
}

input AwsLightsailGetExportSnapshotRecordsInput {
  pageToken: String
}

type AwsLightsailGetInstanceOutput {
  instance: AwsLightsailS9n
}

type AwsLightsailS9n {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  blueprintId: String
  blueprintName: String
  bundleId: String
  addOns: [AwsLightsailS8f]
  isStaticIp: Boolean
  privateIpAddress: String
  publicIpAddress: String
  ipv6Addresses: [String]
  ipAddressType: String
  hardware: AwsLightsailS9nHardware
  networking: AwsLightsailS9nNetworking
  state: AwsLightsailS9y
  username: String
  sshKeyName: String
}

type AwsLightsailS9nHardware {
  cpuCount: Int
  disks: [AwsLightsailS8e]
  ramSizeInGb: Float
}

type AwsLightsailS9nNetworking {
  monthlyTransfer: AwsLightsailS9nNetworkingMonthlyTransfer
  ports: [AwsLightsailS9nNetworkingPorts]
}

type AwsLightsailS9nNetworkingMonthlyTransfer {
  gbPerMonthAllocated: Int
}

type AwsLightsailS9nNetworkingPorts {
  fromPort: Int
  toPort: Int
  protocol: String
  accessFrom: String
  accessType: String
  commonName: String
  accessDirection: String
  cidrs: [String]
  ipv6Cidrs: [String]
  cidrListAliases: [String]
}

type AwsLightsailS9y {
  code: Int
  name: String
}

input AwsLightsailGetInstanceInput {
  instanceName: String!
}

type AwsLightsailGetInstanceAccessDetailsOutput {
  accessDetails: AwsLightsailGetInstanceAccessDetailsOutputAccessDetails
}

type AwsLightsailGetInstanceAccessDetailsOutputAccessDetails {
  certKey: String
  expiresAt: Date
  ipAddress: String
  password: String
  passwordData: AwsLightsailGetInstanceAccessDetailsOutputAccessDetailsPasswordData
  privateKey: String
  protocol: String
  instanceName: String
  username: String
  hostKeys: [AwsLightsailGetInstanceAccessDetailsOutputAccessDetailsHostKeys]
}

type AwsLightsailGetInstanceAccessDetailsOutputAccessDetailsPasswordData {
  ciphertext: String
  keyPairName: String
}

type AwsLightsailGetInstanceAccessDetailsOutputAccessDetailsHostKeys {
  algorithm: String
  publicKey: String
  witnessedAt: Date
  fingerprintSHA1: String
  fingerprintSHA256: String
  notValidBefore: Date
  notValidAfter: Date
}

input AwsLightsailGetInstanceAccessDetailsInput {
  instanceName: String!
  protocol: String
}

type AwsLightsailGetInstanceMetricDataOutput {
  metricName: String
  metricData: [AwsLightsailS82]
}

input AwsLightsailGetInstanceMetricDataInput {
  instanceName: String!
  metricName: String!
  period: Int!
  startTime: Date!
  endTime: Date!
  unit: String!
  statistics: [String]!
}

type AwsLightsailGetInstancePortStatesOutput {
  portStates: [AwsLightsailGetInstancePortStatesOutputPortStates]
}

type AwsLightsailGetInstancePortStatesOutputPortStates {
  fromPort: Int
  toPort: Int
  protocol: String
  state: String
  cidrs: [String]
  ipv6Cidrs: [String]
  cidrListAliases: [String]
}

input AwsLightsailGetInstancePortStatesInput {
  instanceName: String!
}

type AwsLightsailGetInstanceSnapshotOutput {
  instanceSnapshot: AwsLightsailSag
}

type AwsLightsailSag {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  state: String
  progress: String
  fromAttachedDisks: [AwsLightsailS8e]
  fromInstanceName: String
  fromInstanceArn: String
  fromBlueprintId: String
  fromBundleId: String
  isFromAutoSnapshot: Boolean
  sizeInGb: Int
}

input AwsLightsailGetInstanceSnapshotInput {
  instanceSnapshotName: String!
}

type AwsLightsailGetInstanceSnapshotsOutput {
  instanceSnapshots: [AwsLightsailSag]
  nextPageToken: String
}

input AwsLightsailGetInstanceSnapshotsInput {
  pageToken: String
}

type AwsLightsailGetInstanceStateOutput {
  state: AwsLightsailS9y
}

input AwsLightsailGetInstanceStateInput {
  instanceName: String!
}

type AwsLightsailGetInstancesOutput {
  instances: [AwsLightsailS9n]
  nextPageToken: String
}

input AwsLightsailGetInstancesInput {
  pageToken: String
}

type AwsLightsailGetKeyPairOutput {
  keyPair: AwsLightsailS42
}

input AwsLightsailGetKeyPairInput {
  keyPairName: String!
}

type AwsLightsailGetKeyPairsOutput {
  keyPairs: [AwsLightsailS42]
  nextPageToken: String
}

input AwsLightsailGetKeyPairsInput {
  pageToken: String
}

type AwsLightsailGetLoadBalancerOutput {
  loadBalancer: AwsLightsailSax
}

type AwsLightsailSax {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  dnsName: String
  state: String
  protocol: String
  publicPorts: [Int]
  healthCheckPath: String
  instancePort: Int
  instanceHealthSummary: [AwsLightsailSaxInstanceHealthSummary]
  tlsCertificateSummaries: [AwsLightsailSaxTlsCertificateSummaries]
  configurationOptions: JSON
  ipAddressType: String
}

type AwsLightsailSaxInstanceHealthSummary {
  instanceName: String
  instanceHealth: String
  instanceHealthReason: String
}

type AwsLightsailSaxTlsCertificateSummaries {
  name: String
  isAttached: Boolean
}

input AwsLightsailGetLoadBalancerInput {
  loadBalancerName: String!
}

type AwsLightsailGetLoadBalancerMetricDataOutput {
  metricName: String
  metricData: [AwsLightsailS82]
}

input AwsLightsailGetLoadBalancerMetricDataInput {
  loadBalancerName: String!
  metricName: String!
  period: Int!
  startTime: Date!
  endTime: Date!
  unit: String!
  statistics: [String]!
}

type AwsLightsailGetLoadBalancerTlsCertificatesOutput {
  tlsCertificates: [AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificates]
}

type AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificates {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  loadBalancerName: String
  isAttached: Boolean
  status: String
  domainName: String
  domainValidationRecords: [AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesDomainValidationRecords]
  failureReason: String
  issuedAt: Date
  issuer: String
  keyAlgorithm: String
  notAfter: Date
  notBefore: Date
  renewalSummary: AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesRenewalSummary
  revocationReason: String
  revokedAt: Date
  serial: String
  signatureAlgorithm: String
  subject: String
  subjectAlternativeNames: [String]
}

type AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesDomainValidationRecords {
  name: String
  type: String
  value: String
  validationStatus: String
  domainName: String
}

type AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesRenewalSummary {
  renewalStatus: String
  domainValidationOptions: [AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesRenewalSummaryDomainValidationOptions]
}

type AwsLightsailGetLoadBalancerTlsCertificatesOutputTlsCertificatesRenewalSummaryDomainValidationOptions {
  domainName: String
  validationStatus: String
}

input AwsLightsailGetLoadBalancerTlsCertificatesInput {
  loadBalancerName: String!
}

type AwsLightsailGetLoadBalancersOutput {
  loadBalancers: [AwsLightsailSax]
  nextPageToken: String
}

input AwsLightsailGetLoadBalancersInput {
  pageToken: String
}

type AwsLightsailGetOperationOutput {
  operation: AwsLightsailS5
}

input AwsLightsailGetOperationInput {
  operationId: String!
}

type AwsLightsailGetOperationsOutput {
  operations: [AwsLightsailS5]
  nextPageToken: String
}

input AwsLightsailGetOperationsInput {
  pageToken: String
}

type AwsLightsailGetOperationsForResourceOutput {
  operations: [AwsLightsailS5]
  nextPageCount: String
  nextPageToken: String
}

input AwsLightsailGetOperationsForResourceInput {
  resourceName: String!
  pageToken: String
}

type AwsLightsailGetRegionsOutput {
  regions: [AwsLightsailGetRegionsOutputRegions]
}

type AwsLightsailGetRegionsOutputRegions {
  continentCode: String
  description: String
  displayName: String
  name: String
  availabilityZones: [AwsLightsailSc3]
  relationalDatabaseAvailabilityZones: [AwsLightsailSc3]
}

type AwsLightsailSc3 {
  zoneName: String
  state: String
}

input AwsLightsailGetRegionsInput {
  includeAvailabilityZones: Boolean
  includeRelationalDatabaseAvailabilityZones: Boolean
}

type AwsLightsailGetRelationalDatabaseOutput {
  relationalDatabase: AwsLightsailSc7
}

type AwsLightsailSc7 {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  relationalDatabaseBlueprintId: String
  relationalDatabaseBundleId: String
  masterDatabaseName: String
  hardware: AwsLightsailSc7Hardware
  state: String
  secondaryAvailabilityZone: String
  backupRetentionEnabled: Boolean
  pendingModifiedValues: AwsLightsailSc7PendingModifiedValues
  engine: String
  engineVersion: String
  latestRestorableTime: Date
  masterUsername: String
  parameterApplyStatus: String
  preferredBackupWindow: String
  preferredMaintenanceWindow: String
  publiclyAccessible: Boolean
  masterEndpoint: AwsLightsailSc7MasterEndpoint
  pendingMaintenanceActions: [AwsLightsailSc7PendingMaintenanceActions]
  caCertificateIdentifier: String
}

type AwsLightsailSc7Hardware {
  cpuCount: Int
  diskSizeInGb: Int
  ramSizeInGb: Float
}

type AwsLightsailSc7PendingModifiedValues {
  masterUserPassword: String
  engineVersion: String
  backupRetentionEnabled: Boolean
}

type AwsLightsailSc7MasterEndpoint {
  port: Int
  address: String
}

type AwsLightsailSc7PendingMaintenanceActions {
  action: String
  description: String
  currentApplyDate: Date
}

input AwsLightsailGetRelationalDatabaseInput {
  relationalDatabaseName: String!
}

type AwsLightsailGetRelationalDatabaseBlueprintsOutput {
  blueprints: [AwsLightsailGetRelationalDatabaseBlueprintsOutputBlueprints]
  nextPageToken: String
}

type AwsLightsailGetRelationalDatabaseBlueprintsOutputBlueprints {
  blueprintId: String
  engine: String
  engineVersion: String
  engineDescription: String
  engineVersionDescription: String
  isEngineDefault: Boolean
}

input AwsLightsailGetRelationalDatabaseBlueprintsInput {
  pageToken: String
}

type AwsLightsailGetRelationalDatabaseBundlesOutput {
  bundles: [AwsLightsailGetRelationalDatabaseBundlesOutputBundles]
  nextPageToken: String
}

type AwsLightsailGetRelationalDatabaseBundlesOutputBundles {
  bundleId: String
  name: String
  price: Float
  ramSizeInGb: Float
  diskSizeInGb: Int
  transferPerMonthInGb: Int
  cpuCount: Int
  isEncrypted: Boolean
  isActive: Boolean
}

input AwsLightsailGetRelationalDatabaseBundlesInput {
  pageToken: String
}

type AwsLightsailGetRelationalDatabaseEventsOutput {
  relationalDatabaseEvents: [AwsLightsailGetRelationalDatabaseEventsOutputRelationalDatabaseEvents]
  nextPageToken: String
}

type AwsLightsailGetRelationalDatabaseEventsOutputRelationalDatabaseEvents {
  resource: String
  createdAt: Date
  message: String
  eventCategories: [String]
}

input AwsLightsailGetRelationalDatabaseEventsInput {
  relationalDatabaseName: String!
  durationInMinutes: Int
  pageToken: String
}

type AwsLightsailGetRelationalDatabaseLogEventsOutput {
  resourceLogEvents: [AwsLightsailGetRelationalDatabaseLogEventsOutputResourceLogEvents]
  nextBackwardToken: String
  nextForwardToken: String
}

type AwsLightsailGetRelationalDatabaseLogEventsOutputResourceLogEvents {
  createdAt: Date
  message: String
}

input AwsLightsailGetRelationalDatabaseLogEventsInput {
  relationalDatabaseName: String!
  logStreamName: String!
  startTime: Date
  endTime: Date
  startFromHead: Boolean
  pageToken: String
}

type AwsLightsailGetRelationalDatabaseLogStreamsOutput {
  logStreams: [String]
}

input AwsLightsailGetRelationalDatabaseLogStreamsInput {
  relationalDatabaseName: String!
}

type AwsLightsailGetRelationalDatabaseMasterUserPasswordOutput {
  masterUserPassword: String
  createdAt: Date
}

input AwsLightsailGetRelationalDatabaseMasterUserPasswordInput {
  relationalDatabaseName: String!
  passwordVersion: String
}

type AwsLightsailGetRelationalDatabaseMetricDataOutput {
  metricName: String
  metricData: [AwsLightsailS82]
}

input AwsLightsailGetRelationalDatabaseMetricDataInput {
  relationalDatabaseName: String!
  metricName: String!
  period: Int!
  startTime: Date!
  endTime: Date!
  unit: String!
  statistics: [String]!
}

type AwsLightsailGetRelationalDatabaseParametersOutput {
  parameters: [AwsLightsailSd4]
  nextPageToken: String
}

type AwsLightsailSd4 {
  allowedValues: String
  applyMethod: String
  applyType: String
  dataType: String
  description: String
  isModifiable: Boolean
  parameterName: String
  parameterValue: String
}

input AwsLightsailGetRelationalDatabaseParametersInput {
  relationalDatabaseName: String!
  pageToken: String
}

type AwsLightsailGetRelationalDatabaseSnapshotOutput {
  relationalDatabaseSnapshot: AwsLightsailSd8
}

type AwsLightsailSd8 {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  tags: [AwsLightsailS12]
  engine: String
  engineVersion: String
  sizeInGb: Int
  state: String
  fromRelationalDatabaseName: String
  fromRelationalDatabaseArn: String
  fromRelationalDatabaseBundleId: String
  fromRelationalDatabaseBlueprintId: String
}

input AwsLightsailGetRelationalDatabaseSnapshotInput {
  relationalDatabaseSnapshotName: String!
}

type AwsLightsailGetRelationalDatabaseSnapshotsOutput {
  relationalDatabaseSnapshots: [AwsLightsailSd8]
  nextPageToken: String
}

input AwsLightsailGetRelationalDatabaseSnapshotsInput {
  pageToken: String
}

type AwsLightsailGetRelationalDatabasesOutput {
  relationalDatabases: [AwsLightsailSc7]
  nextPageToken: String
}

input AwsLightsailGetRelationalDatabasesInput {
  pageToken: String
}

type AwsLightsailGetStaticIpOutput {
  staticIp: AwsLightsailSdh
}

type AwsLightsailSdh {
  name: String
  arn: String
  supportCode: String
  createdAt: Date
  location: AwsLightsailS9
  resourceType: String
  ipAddress: String
  attachedTo: String
  isAttached: Boolean
}

input AwsLightsailGetStaticIpInput {
  staticIpName: String!
}

type AwsLightsailGetStaticIpsOutput {
  staticIps: [AwsLightsailSdh]
  nextPageToken: String
}

input AwsLightsailGetStaticIpsInput {
  pageToken: String
}

type AwsLightsailImportKeyPairOutput {
  operation: AwsLightsailS5
}

input AwsLightsailImportKeyPairInput {
  keyPairName: String!
  publicKeyBase64: String!
}

type AwsLightsailIsVpcPeeredOutput {
  isPeered: Boolean
}

type AwsLightsailOpenInstancePublicPortsOutput {
  operation: AwsLightsailS5
}

input AwsLightsailOpenInstancePublicPortsInput {
  portInfo: AwsLightsailSrInput!
  instanceName: String!
}

type AwsLightsailPeerVpcOutput {
  operation: AwsLightsailS5
}

type AwsLightsailPutAlarmOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailPutAlarmInput {
  alarmName: String!
  metricName: String!
  monitoredResourceName: String!
  comparisonOperator: String!
  threshold: JSON!
  evaluationPeriods: Int!
  datapointsToAlarm: Int
  treatMissingData: String
  contactProtocols: [String]
  notificationTriggers: [String]
  notificationEnabled: Boolean
}

type AwsLightsailPutInstancePublicPortsOutput {
  operation: AwsLightsailS5
}

input AwsLightsailPutInstancePublicPortsInput {
  portInfos: [AwsLightsailSrInput]!
  instanceName: String!
}

type AwsLightsailRebootInstanceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailRebootInstanceInput {
  instanceName: String!
}

type AwsLightsailRebootRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailRebootRelationalDatabaseInput {
  relationalDatabaseName: String!
}

type AwsLightsailRegisterContainerImageOutput {
  containerImage: AwsLightsailS7q
}

input AwsLightsailRegisterContainerImageInput {
  serviceName: String!
  label: String!
  digest: String!
}

type AwsLightsailReleaseStaticIpOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailReleaseStaticIpInput {
  staticIpName: String!
}

type AwsLightsailResetDistributionCacheOutput {
  status: String
  createTime: Date
  operation: AwsLightsailS5
}

input AwsLightsailResetDistributionCacheInput {
  distributionName: String
}

type AwsLightsailSendContactMethodVerificationOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailSendContactMethodVerificationInput {
  protocol: String!
}

type AwsLightsailSetIpAddressTypeOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailSetIpAddressTypeInput {
  resourceType: String!
  resourceName: String!
  ipAddressType: String!
}

type AwsLightsailStartInstanceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailStartInstanceInput {
  instanceName: String!
}

type AwsLightsailStartRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailStartRelationalDatabaseInput {
  relationalDatabaseName: String!
}

type AwsLightsailStopInstanceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailStopInstanceInput {
  instanceName: String!
  force: Boolean
}

type AwsLightsailStopRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailStopRelationalDatabaseInput {
  relationalDatabaseName: String!
  relationalDatabaseSnapshotName: String
}

type AwsLightsailTagResourceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailTagResourceInput {
  resourceName: String!
  resourceArn: String
  tags: [AwsLightsailS12Input]!
}

type AwsLightsailTestAlarmOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailTestAlarmInput {
  alarmName: String!
  state: String!
}

type AwsLightsailUnpeerVpcOutput {
  operation: AwsLightsailS5
}

type AwsLightsailUntagResourceOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailUntagResourceInput {
  resourceName: String!
  resourceArn: String
  tagKeys: [String]!
}

type AwsLightsailUpdateContainerServiceOutput {
  containerService: AwsLightsailS2d
}

input AwsLightsailUpdateContainerServiceInput {
  serviceName: String!
  power: String
  scale: Int
  isDisabled: Boolean
  publicDomainNames: JSON
}

type AwsLightsailUpdateDistributionOutput {
  operation: AwsLightsailS5
}

input AwsLightsailUpdateDistributionInput {
  distributionName: String!
  origin: AwsLightsailS31Input
  defaultCacheBehavior: AwsLightsailS33Input
  cacheBehaviorSettings: AwsLightsailS35Input
  cacheBehaviors: [AwsLightsailS3dInput]
  isEnabled: Boolean
}

type AwsLightsailUpdateDistributionBundleOutput {
  operation: AwsLightsailS5
}

input AwsLightsailUpdateDistributionBundleInput {
  distributionName: String
  bundleId: String
}

type AwsLightsailUpdateDomainEntryOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailUpdateDomainEntryInput {
  domainName: String!
  domainEntry: AwsLightsailS3mInput!
}

type AwsLightsailUpdateLoadBalancerAttributeOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailUpdateLoadBalancerAttributeInput {
  loadBalancerName: String!
  attributeName: String!
  attributeValue: String!
}

type AwsLightsailUpdateRelationalDatabaseOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailUpdateRelationalDatabaseInput {
  relationalDatabaseName: String!
  masterUserPassword: String
  rotateMasterUserPassword: Boolean
  preferredBackupWindow: String
  preferredMaintenanceWindow: String
  enableBackupRetention: Boolean
  disableBackupRetention: Boolean
  publiclyAccessible: Boolean
  applyImmediately: Boolean
  caCertificateIdentifier: String
}

type AwsLightsailUpdateRelationalDatabaseParametersOutput {
  operations: [AwsLightsailS5]
}

input AwsLightsailUpdateRelationalDatabaseParametersInput {
  relationalDatabaseName: String!
  parameters: [AwsLightsailSd4Input]!
}

input AwsLightsailSd4Input {
  allowedValues: String
  applyMethod: String
  applyType: String
  dataType: String
  description: String
  isModifiable: Boolean
  parameterName: String
  parameterValue: String
}

"""Amazon Location Service (2020-11-19)"""
type AwsLocation {
  associateTrackerConsumer(input: AwsLocationAssociateTrackerConsumerInput!, config: AwsConfig): JSON
  batchDeleteDevicePositionHistory(input: AwsLocationBatchDeleteDevicePositionHistoryInput!, config: AwsConfig): AwsLocationBatchDeleteDevicePositionHistoryOutput
  batchDeleteGeofence(input: AwsLocationBatchDeleteGeofenceInput!, config: AwsConfig): AwsLocationBatchDeleteGeofenceOutput
  batchEvaluateGeofences(input: AwsLocationBatchEvaluateGeofencesInput!, config: AwsConfig): AwsLocationBatchEvaluateGeofencesOutput
  batchGetDevicePosition(input: AwsLocationBatchGetDevicePositionInput!, config: AwsConfig): AwsLocationBatchGetDevicePositionOutput
  batchPutGeofence(input: AwsLocationBatchPutGeofenceInput!, config: AwsConfig): AwsLocationBatchPutGeofenceOutput
  batchUpdateDevicePosition(input: AwsLocationBatchUpdateDevicePositionInput!, config: AwsConfig): AwsLocationBatchUpdateDevicePositionOutput
  calculateRoute(input: AwsLocationCalculateRouteInput!, config: AwsConfig): AwsLocationCalculateRouteOutput
  createGeofenceCollection(input: AwsLocationCreateGeofenceCollectionInput!, config: AwsConfig): AwsLocationCreateGeofenceCollectionOutput
  createMap(input: AwsLocationCreateMapInput!, config: AwsConfig): AwsLocationCreateMapOutput
  createPlaceIndex(input: AwsLocationCreatePlaceIndexInput!, config: AwsConfig): AwsLocationCreatePlaceIndexOutput
  createRouteCalculator(input: AwsLocationCreateRouteCalculatorInput!, config: AwsConfig): AwsLocationCreateRouteCalculatorOutput
  createTracker(input: AwsLocationCreateTrackerInput!, config: AwsConfig): AwsLocationCreateTrackerOutput
  deleteGeofenceCollection(input: AwsLocationDeleteGeofenceCollectionInput!, config: AwsConfig): JSON
  deleteMap(input: AwsLocationDeleteMapInput!, config: AwsConfig): JSON
  deletePlaceIndex(input: AwsLocationDeletePlaceIndexInput!, config: AwsConfig): JSON
  deleteRouteCalculator(input: AwsLocationDeleteRouteCalculatorInput!, config: AwsConfig): JSON
  deleteTracker(input: AwsLocationDeleteTrackerInput!, config: AwsConfig): JSON
  describeGeofenceCollection(input: AwsLocationDescribeGeofenceCollectionInput!, config: AwsConfig): AwsLocationDescribeGeofenceCollectionOutput
  describeMap(input: AwsLocationDescribeMapInput!, config: AwsConfig): AwsLocationDescribeMapOutput
  describePlaceIndex(input: AwsLocationDescribePlaceIndexInput!, config: AwsConfig): AwsLocationDescribePlaceIndexOutput
  describeRouteCalculator(input: AwsLocationDescribeRouteCalculatorInput!, config: AwsConfig): AwsLocationDescribeRouteCalculatorOutput
  describeTracker(input: AwsLocationDescribeTrackerInput!, config: AwsConfig): AwsLocationDescribeTrackerOutput
  disassociateTrackerConsumer(input: AwsLocationDisassociateTrackerConsumerInput!, config: AwsConfig): JSON
  getDevicePosition(input: AwsLocationGetDevicePositionInput!, config: AwsConfig): AwsLocationGetDevicePositionOutput
  getDevicePositionHistory(input: AwsLocationGetDevicePositionHistoryInput!, config: AwsConfig): AwsLocationGetDevicePositionHistoryOutput
  getGeofence(input: AwsLocationGetGeofenceInput!, config: AwsConfig): AwsLocationGetGeofenceOutput
  getMapGlyphs(input: AwsLocationGetMapGlyphsInput!, config: AwsConfig): AwsLocationGetMapGlyphsOutput
  getMapSprites(input: AwsLocationGetMapSpritesInput!, config: AwsConfig): AwsLocationGetMapSpritesOutput
  getMapStyleDescriptor(input: AwsLocationGetMapStyleDescriptorInput!, config: AwsConfig): AwsLocationGetMapStyleDescriptorOutput
  getMapTile(input: AwsLocationGetMapTileInput!, config: AwsConfig): AwsLocationGetMapTileOutput
  listDevicePositions(input: AwsLocationListDevicePositionsInput!, config: AwsConfig): AwsLocationListDevicePositionsOutput
  listGeofenceCollections(input: AwsLocationListGeofenceCollectionsInput, config: AwsConfig): AwsLocationListGeofenceCollectionsOutput
  listGeofences(input: AwsLocationListGeofencesInput!, config: AwsConfig): AwsLocationListGeofencesOutput
  listMaps(input: AwsLocationListMapsInput, config: AwsConfig): AwsLocationListMapsOutput
  listPlaceIndexes(input: AwsLocationListPlaceIndexesInput, config: AwsConfig): AwsLocationListPlaceIndexesOutput
  listRouteCalculators(input: AwsLocationListRouteCalculatorsInput, config: AwsConfig): AwsLocationListRouteCalculatorsOutput
  listTagsForResource(input: AwsLocationListTagsForResourceInput!, config: AwsConfig): AwsLocationListTagsForResourceOutput
  listTrackerConsumers(input: AwsLocationListTrackerConsumersInput!, config: AwsConfig): AwsLocationListTrackerConsumersOutput
  listTrackers(input: AwsLocationListTrackersInput, config: AwsConfig): AwsLocationListTrackersOutput
  putGeofence(input: AwsLocationPutGeofenceInput!, config: AwsConfig): AwsLocationPutGeofenceOutput
  searchPlaceIndexForPosition(input: AwsLocationSearchPlaceIndexForPositionInput!, config: AwsConfig): AwsLocationSearchPlaceIndexForPositionOutput
  searchPlaceIndexForText(input: AwsLocationSearchPlaceIndexForTextInput!, config: AwsConfig): AwsLocationSearchPlaceIndexForTextOutput
  tagResource(input: AwsLocationTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLocationUntagResourceInput!, config: AwsConfig): JSON
}

input AwsLocationAssociateTrackerConsumerInput {
  ConsumerArn: String!
  TrackerName: String!
}

type AwsLocationBatchDeleteDevicePositionHistoryOutput {
  Errors: [AwsLocationBatchDeleteDevicePositionHistoryOutputErrors]!
}

type AwsLocationBatchDeleteDevicePositionHistoryOutputErrors {
  DeviceId: String!
  Error: AwsLocationSb!
}

type AwsLocationSb {
  Code: String
  Message: String
}

input AwsLocationBatchDeleteDevicePositionHistoryInput {
  DeviceIds: [String]!
  TrackerName: String!
}

type AwsLocationBatchDeleteGeofenceOutput {
  Errors: [AwsLocationBatchDeleteGeofenceOutputErrors]!
}

type AwsLocationBatchDeleteGeofenceOutputErrors {
  Error: AwsLocationSb!
  GeofenceId: String!
}

input AwsLocationBatchDeleteGeofenceInput {
  CollectionName: String!
  GeofenceIds: [String]!
}

type AwsLocationBatchEvaluateGeofencesOutput {
  Errors: [AwsLocationBatchEvaluateGeofencesOutputErrors]!
}

type AwsLocationBatchEvaluateGeofencesOutputErrors {
  DeviceId: String!
  Error: AwsLocationSb!
  SampleTime: Date!
}

input AwsLocationBatchEvaluateGeofencesInput {
  CollectionName: String!
  DevicePositionUpdates: [AwsLocationSlInput]!
}

input AwsLocationSlInput {
  DeviceId: String!
  Position: [JSON]!
  SampleTime: Date!
}

type AwsLocationBatchGetDevicePositionOutput {
  DevicePositions: [AwsLocationSw]!
  Errors: [AwsLocationBatchGetDevicePositionOutputErrors]!
}

type AwsLocationSw {
  DeviceId: String
  Position: [JSON]!
  ReceivedTime: Date!
  SampleTime: Date!
}

type AwsLocationBatchGetDevicePositionOutputErrors {
  DeviceId: String!
  Error: AwsLocationSb!
}

input AwsLocationBatchGetDevicePositionInput {
  DeviceIds: [String]!
  TrackerName: String!
}

type AwsLocationBatchPutGeofenceOutput {
  Errors: [AwsLocationBatchPutGeofenceOutputErrors]!
  Successes: [AwsLocationBatchPutGeofenceOutputSuccesses]!
}

type AwsLocationBatchPutGeofenceOutputErrors {
  Error: AwsLocationSb!
  GeofenceId: String!
}

type AwsLocationBatchPutGeofenceOutputSuccesses {
  CreateTime: Date!
  GeofenceId: String!
  UpdateTime: Date!
}

input AwsLocationBatchPutGeofenceInput {
  CollectionName: String!
  Entries: [AwsLocationBatchPutGeofenceEntriesInput]!
}

input AwsLocationBatchPutGeofenceEntriesInput {
  GeofenceId: String!
  Geometry: AwsLocationS13Input!
}

input AwsLocationS13Input {
  Polygon: [[[JSON]]]
}

type AwsLocationBatchUpdateDevicePositionOutput {
  Errors: [AwsLocationBatchUpdateDevicePositionOutputErrors]!
}

type AwsLocationBatchUpdateDevicePositionOutputErrors {
  DeviceId: String!
  Error: AwsLocationSb!
  SampleTime: Date!
}

input AwsLocationBatchUpdateDevicePositionInput {
  TrackerName: String!
  Updates: [AwsLocationSlInput]!
}

type AwsLocationCalculateRouteOutput {
  Legs: [AwsLocationCalculateRouteOutputLegs]!
  Summary: AwsLocationCalculateRouteOutputSummary!
}

type AwsLocationCalculateRouteOutputLegs {
  Distance: JSON!
  DurationSeconds: JSON!
  EndPosition: [JSON]!
  Geometry: AwsLocationCalculateRouteOutputLegsGeometry
  StartPosition: [JSON]!
  Steps: [AwsLocationCalculateRouteOutputLegsSteps]!
}

type AwsLocationCalculateRouteOutputLegsGeometry {
  LineString: [[JSON]]
}

type AwsLocationCalculateRouteOutputLegsSteps {
  Distance: JSON!
  DurationSeconds: JSON!
  EndPosition: [JSON]!
  GeometryOffset: Int
  StartPosition: [JSON]!
}

type AwsLocationCalculateRouteOutputSummary {
  DataSource: String!
  Distance: JSON!
  DistanceUnit: String!
  DurationSeconds: JSON!
  RouteBBox: [JSON]!
}

input AwsLocationCalculateRouteInput {
  CalculatorName: String!
  CarModeOptions: AwsLocationCalculateRouteCarModeOptionsInput
  DepartNow: Boolean
  DeparturePosition: [JSON]!
  DepartureTime: Date
  DestinationPosition: [JSON]!
  DistanceUnit: String
  IncludeLegGeometry: Boolean
  TravelMode: String
  TruckModeOptions: AwsLocationCalculateRouteTruckModeOptionsInput
  WaypointPositions: [[JSON]]
}

input AwsLocationCalculateRouteCarModeOptionsInput {
  AvoidFerries: Boolean
  AvoidTolls: Boolean
}

input AwsLocationCalculateRouteTruckModeOptionsInput {
  AvoidFerries: Boolean
  AvoidTolls: Boolean
  Dimensions: AwsLocationCalculateRouteTruckModeOptionsDimensionsInput
  Weight: AwsLocationCalculateRouteTruckModeOptionsWeightInput
}

input AwsLocationCalculateRouteTruckModeOptionsDimensionsInput {
  Height: JSON
  Length: JSON
  Unit: String
  Width: JSON
}

input AwsLocationCalculateRouteTruckModeOptionsWeightInput {
  Total: JSON
  Unit: String
}

type AwsLocationCreateGeofenceCollectionOutput {
  CollectionArn: String!
  CollectionName: String!
  CreateTime: Date!
}

input AwsLocationCreateGeofenceCollectionInput {
  CollectionName: String!
  Description: String
  KmsKeyId: String
  PricingPlan: String!
  PricingPlanDataSource: String
  Tags: JSON
}

type AwsLocationCreateMapOutput {
  CreateTime: Date!
  MapArn: String!
  MapName: String!
}

input AwsLocationCreateMapInput {
  Configuration: AwsLocationS2kInput!
  Description: String
  MapName: String!
  PricingPlan: String!
  Tags: JSON
}

input AwsLocationS2kInput {
  Style: String!
}

type AwsLocationCreatePlaceIndexOutput {
  CreateTime: Date!
  IndexArn: String!
  IndexName: String!
}

input AwsLocationCreatePlaceIndexInput {
  DataSource: String!
  DataSourceConfiguration: AwsLocationS2oInput
  Description: String
  IndexName: String!
  PricingPlan: String!
  Tags: JSON
}

input AwsLocationS2oInput {
  IntendedUse: String
}

type AwsLocationCreateRouteCalculatorOutput {
  CalculatorArn: String!
  CalculatorName: String!
  CreateTime: Date!
}

input AwsLocationCreateRouteCalculatorInput {
  CalculatorName: String!
  DataSource: String!
  Description: String
  PricingPlan: String!
  Tags: JSON
}

type AwsLocationCreateTrackerOutput {
  CreateTime: Date!
  TrackerArn: String!
  TrackerName: String!
}

input AwsLocationCreateTrackerInput {
  Description: String
  KmsKeyId: String
  PricingPlan: String!
  PricingPlanDataSource: String
  Tags: JSON
  TrackerName: String!
}

input AwsLocationDeleteGeofenceCollectionInput {
  CollectionName: String!
}

input AwsLocationDeleteMapInput {
  MapName: String!
}

input AwsLocationDeletePlaceIndexInput {
  IndexName: String!
}

input AwsLocationDeleteRouteCalculatorInput {
  CalculatorName: String!
}

input AwsLocationDeleteTrackerInput {
  TrackerName: String!
}

type AwsLocationDescribeGeofenceCollectionOutput {
  CollectionArn: String!
  CollectionName: String!
  CreateTime: Date!
  Description: String!
  KmsKeyId: String
  PricingPlan: String!
  PricingPlanDataSource: String
  Tags: JSON
  UpdateTime: Date!
}

input AwsLocationDescribeGeofenceCollectionInput {
  CollectionName: String!
}

type AwsLocationDescribeMapOutput {
  Configuration: AwsLocationS2k!
  CreateTime: Date!
  DataSource: String!
  Description: String!
  MapArn: String!
  MapName: String!
  PricingPlan: String!
  Tags: JSON
  UpdateTime: Date!
}

type AwsLocationS2k {
  Style: String!
}

input AwsLocationDescribeMapInput {
  MapName: String!
}

type AwsLocationDescribePlaceIndexOutput {
  CreateTime: Date!
  DataSource: String!
  DataSourceConfiguration: AwsLocationS2o!
  Description: String!
  IndexArn: String!
  IndexName: String!
  PricingPlan: String!
  Tags: JSON
  UpdateTime: Date!
}

type AwsLocationS2o {
  IntendedUse: String
}

input AwsLocationDescribePlaceIndexInput {
  IndexName: String!
}

type AwsLocationDescribeRouteCalculatorOutput {
  CalculatorArn: String!
  CalculatorName: String!
  CreateTime: Date!
  DataSource: String!
  Description: String!
  PricingPlan: String!
  Tags: JSON
  UpdateTime: Date!
}

input AwsLocationDescribeRouteCalculatorInput {
  CalculatorName: String!
}

type AwsLocationDescribeTrackerOutput {
  CreateTime: Date!
  Description: String!
  KmsKeyId: String
  PricingPlan: String!
  PricingPlanDataSource: String
  Tags: JSON
  TrackerArn: String!
  TrackerName: String!
  UpdateTime: Date!
}

input AwsLocationDescribeTrackerInput {
  TrackerName: String!
}

input AwsLocationDisassociateTrackerConsumerInput {
  ConsumerArn: String!
  TrackerName: String!
}

type AwsLocationGetDevicePositionOutput {
  DeviceId: String
  Position: [JSON]!
  ReceivedTime: Date!
  SampleTime: Date!
}

input AwsLocationGetDevicePositionInput {
  DeviceId: String!
  TrackerName: String!
}

type AwsLocationGetDevicePositionHistoryOutput {
  DevicePositions: [AwsLocationSw]!
  NextToken: String
}

input AwsLocationGetDevicePositionHistoryInput {
  DeviceId: String!
  EndTimeExclusive: Date
  NextToken: String
  StartTimeInclusive: Date
  TrackerName: String!
}

type AwsLocationGetGeofenceOutput {
  CreateTime: Date!
  GeofenceId: String!
  Geometry: AwsLocationS13!
  Status: String!
  UpdateTime: Date!
}

type AwsLocationS13 {
  Polygon: [[[JSON]]]
}

input AwsLocationGetGeofenceInput {
  CollectionName: String!
  GeofenceId: String!
}

type AwsLocationGetMapGlyphsOutput {
  Blob: JSON
  ContentType: String
}

input AwsLocationGetMapGlyphsInput {
  FontStack: String!
  FontUnicodeRange: String!
  MapName: String!
}

type AwsLocationGetMapSpritesOutput {
  Blob: JSON
  ContentType: String
}

input AwsLocationGetMapSpritesInput {
  FileName: String!
  MapName: String!
}

type AwsLocationGetMapStyleDescriptorOutput {
  Blob: JSON
  ContentType: String
}

input AwsLocationGetMapStyleDescriptorInput {
  MapName: String!
}

type AwsLocationGetMapTileOutput {
  Blob: JSON
  ContentType: String
}

input AwsLocationGetMapTileInput {
  MapName: String!
  X: String!
  Y: String!
  Z: String!
}

type AwsLocationListDevicePositionsOutput {
  Entries: [AwsLocationListDevicePositionsOutputEntries]!
  NextToken: String
}

type AwsLocationListDevicePositionsOutputEntries {
  DeviceId: String!
  Position: [JSON]!
  SampleTime: Date!
}

input AwsLocationListDevicePositionsInput {
  MaxResults: Int
  NextToken: String
  TrackerName: String!
}

type AwsLocationListGeofenceCollectionsOutput {
  Entries: [AwsLocationListGeofenceCollectionsOutputEntries]!
  NextToken: String
}

type AwsLocationListGeofenceCollectionsOutputEntries {
  CollectionName: String!
  CreateTime: Date!
  Description: String!
  PricingPlan: String!
  PricingPlanDataSource: String
  UpdateTime: Date!
}

input AwsLocationListGeofenceCollectionsInput {
  MaxResults: Int
  NextToken: String
}

type AwsLocationListGeofencesOutput {
  Entries: [AwsLocationListGeofencesOutputEntries]!
  NextToken: String
}

type AwsLocationListGeofencesOutputEntries {
  CreateTime: Date!
  GeofenceId: String!
  Geometry: AwsLocationS13!
  Status: String!
  UpdateTime: Date!
}

input AwsLocationListGeofencesInput {
  CollectionName: String!
  NextToken: String
}

type AwsLocationListMapsOutput {
  Entries: [AwsLocationListMapsOutputEntries]!
  NextToken: String
}

type AwsLocationListMapsOutputEntries {
  CreateTime: Date!
  DataSource: String!
  Description: String!
  MapName: String!
  PricingPlan: String!
  UpdateTime: Date!
}

input AwsLocationListMapsInput {
  MaxResults: Int
  NextToken: String
}

type AwsLocationListPlaceIndexesOutput {
  Entries: [AwsLocationListPlaceIndexesOutputEntries]!
  NextToken: String
}

type AwsLocationListPlaceIndexesOutputEntries {
  CreateTime: Date!
  DataSource: String!
  Description: String!
  IndexName: String!
  PricingPlan: String!
  UpdateTime: Date!
}

input AwsLocationListPlaceIndexesInput {
  MaxResults: Int
  NextToken: String
}

type AwsLocationListRouteCalculatorsOutput {
  Entries: [AwsLocationListRouteCalculatorsOutputEntries]!
  NextToken: String
}

type AwsLocationListRouteCalculatorsOutputEntries {
  CalculatorName: String!
  CreateTime: Date!
  DataSource: String!
  Description: String!
  PricingPlan: String!
  UpdateTime: Date!
}

input AwsLocationListRouteCalculatorsInput {
  MaxResults: Int
  NextToken: String
}

type AwsLocationListTagsForResourceOutput {
  Tags: JSON
}

input AwsLocationListTagsForResourceInput {
  ResourceArn: String!
}

type AwsLocationListTrackerConsumersOutput {
  ConsumerArns: [String]!
  NextToken: String
}

input AwsLocationListTrackerConsumersInput {
  MaxResults: Int
  NextToken: String
  TrackerName: String!
}

type AwsLocationListTrackersOutput {
  Entries: [AwsLocationListTrackersOutputEntries]!
  NextToken: String
}

type AwsLocationListTrackersOutputEntries {
  CreateTime: Date!
  Description: String!
  PricingPlan: String!
  PricingPlanDataSource: String
  TrackerName: String!
  UpdateTime: Date!
}

input AwsLocationListTrackersInput {
  MaxResults: Int
  NextToken: String
}

type AwsLocationPutGeofenceOutput {
  CreateTime: Date!
  GeofenceId: String!
  UpdateTime: Date!
}

input AwsLocationPutGeofenceInput {
  CollectionName: String!
  GeofenceId: String!
  Geometry: AwsLocationS13Input!
}

type AwsLocationSearchPlaceIndexForPositionOutput {
  Results: [AwsLocationSearchPlaceIndexForPositionOutputResults]!
  Summary: AwsLocationSearchPlaceIndexForPositionOutputSummary!
}

type AwsLocationSearchPlaceIndexForPositionOutputResults {
  Place: AwsLocationS5d!
}

type AwsLocationS5d {
  AddressNumber: String
  Country: String
  Geometry: AwsLocationS5dGeometry!
  Label: String
  Municipality: String
  Neighborhood: String
  PostalCode: String
  Region: String
  Street: String
  SubRegion: String
}

type AwsLocationS5dGeometry {
  Point: [JSON]
}

type AwsLocationSearchPlaceIndexForPositionOutputSummary {
  DataSource: String!
  MaxResults: Int
  Position: [JSON]!
}

input AwsLocationSearchPlaceIndexForPositionInput {
  IndexName: String!
  MaxResults: Int
  Position: [JSON]!
}

type AwsLocationSearchPlaceIndexForTextOutput {
  Results: [AwsLocationSearchPlaceIndexForTextOutputResults]!
  Summary: AwsLocationSearchPlaceIndexForTextOutputSummary!
}

type AwsLocationSearchPlaceIndexForTextOutputResults {
  Place: AwsLocationS5d!
}

type AwsLocationSearchPlaceIndexForTextOutputSummary {
  BiasPosition: [JSON]
  DataSource: String!
  FilterBBox: [JSON]
  FilterCountries: [String]
  MaxResults: Int
  ResultBBox: [JSON]
  Text: String!
}

input AwsLocationSearchPlaceIndexForTextInput {
  BiasPosition: [JSON]
  FilterBBox: [JSON]
  FilterCountries: [String]
  IndexName: String!
  MaxResults: Int
  Text: String!
}

input AwsLocationTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsLocationUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""Amazon Lookout for Equipment (2020-12-15)"""
type AwsLookoutEquipment {
  createDataset(input: AwsLookoutEquipmentCreateDatasetInput!, config: AwsConfig): AwsLookoutEquipmentCreateDatasetOutput
  createInferenceScheduler(input: AwsLookoutEquipmentCreateInferenceSchedulerInput!, config: AwsConfig): AwsLookoutEquipmentCreateInferenceSchedulerOutput
  createModel(input: AwsLookoutEquipmentCreateModelInput!, config: AwsConfig): AwsLookoutEquipmentCreateModelOutput
  deleteDataset(input: AwsLookoutEquipmentDeleteDatasetInput!, config: AwsConfig): JSON
  deleteInferenceScheduler(input: AwsLookoutEquipmentDeleteInferenceSchedulerInput!, config: AwsConfig): JSON
  deleteModel(input: AwsLookoutEquipmentDeleteModelInput!, config: AwsConfig): JSON
  describeDataIngestionJob(input: AwsLookoutEquipmentDescribeDataIngestionJobInput!, config: AwsConfig): AwsLookoutEquipmentDescribeDataIngestionJobOutput
  describeDataset(input: AwsLookoutEquipmentDescribeDatasetInput!, config: AwsConfig): AwsLookoutEquipmentDescribeDatasetOutput
  describeInferenceScheduler(input: AwsLookoutEquipmentDescribeInferenceSchedulerInput!, config: AwsConfig): AwsLookoutEquipmentDescribeInferenceSchedulerOutput
  describeModel(input: AwsLookoutEquipmentDescribeModelInput!, config: AwsConfig): AwsLookoutEquipmentDescribeModelOutput
  listDataIngestionJobs(input: AwsLookoutEquipmentListDataIngestionJobsInput, config: AwsConfig): AwsLookoutEquipmentListDataIngestionJobsOutput
  listDatasets(input: AwsLookoutEquipmentListDatasetsInput, config: AwsConfig): AwsLookoutEquipmentListDatasetsOutput
  listInferenceExecutions(input: AwsLookoutEquipmentListInferenceExecutionsInput!, config: AwsConfig): AwsLookoutEquipmentListInferenceExecutionsOutput
  listInferenceSchedulers(input: AwsLookoutEquipmentListInferenceSchedulersInput, config: AwsConfig): AwsLookoutEquipmentListInferenceSchedulersOutput
  listModels(input: AwsLookoutEquipmentListModelsInput, config: AwsConfig): AwsLookoutEquipmentListModelsOutput
  listTagsForResource(input: AwsLookoutEquipmentListTagsForResourceInput!, config: AwsConfig): AwsLookoutEquipmentListTagsForResourceOutput
  startDataIngestionJob(input: AwsLookoutEquipmentStartDataIngestionJobInput!, config: AwsConfig): AwsLookoutEquipmentStartDataIngestionJobOutput
  startInferenceScheduler(input: AwsLookoutEquipmentStartInferenceSchedulerInput!, config: AwsConfig): AwsLookoutEquipmentStartInferenceSchedulerOutput
  stopInferenceScheduler(input: AwsLookoutEquipmentStopInferenceSchedulerInput!, config: AwsConfig): AwsLookoutEquipmentStopInferenceSchedulerOutput
  tagResource(input: AwsLookoutEquipmentTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLookoutEquipmentUntagResourceInput!, config: AwsConfig): JSON
  updateInferenceScheduler(input: AwsLookoutEquipmentUpdateInferenceSchedulerInput!, config: AwsConfig): JSON
}

type AwsLookoutEquipmentCreateDatasetOutput {
  DatasetName: String
  DatasetArn: String
  Status: String
}

input AwsLookoutEquipmentCreateDatasetInput {
  DatasetName: String!
  DatasetSchema: AwsLookoutEquipmentS3Input!
  ServerSideKmsKeyId: String
  ClientToken: String!
  Tags: [AwsLookoutEquipmentS7Input]
}

input AwsLookoutEquipmentS3Input {
  InlineDataSchema: String
}

input AwsLookoutEquipmentS7Input {
  Key: String!
  Value: String!
}

type AwsLookoutEquipmentCreateInferenceSchedulerOutput {
  InferenceSchedulerArn: String
  InferenceSchedulerName: String
  Status: String
}

input AwsLookoutEquipmentCreateInferenceSchedulerInput {
  ModelName: String!
  InferenceSchedulerName: String!
  DataDelayOffsetInMinutes: JSON
  DataUploadFrequency: String!
  DataInputConfiguration: AwsLookoutEquipmentSjInput!
  DataOutputConfiguration: AwsLookoutEquipmentSrInput!
  RoleArn: String!
  ServerSideKmsKeyId: String
  ClientToken: String!
  Tags: [AwsLookoutEquipmentS7Input]
}

input AwsLookoutEquipmentSjInput {
  S3InputConfiguration: AwsLookoutEquipmentSjS3InputConfigurationInput
  InputTimeZoneOffset: String
  InferenceInputNameConfiguration: AwsLookoutEquipmentSjInferenceInputNameConfigurationInput
}

input AwsLookoutEquipmentSjS3InputConfigurationInput {
  Bucket: String!
  Prefix: String
}

input AwsLookoutEquipmentSjInferenceInputNameConfigurationInput {
  TimestampFormat: String
  ComponentTimestampDelimiter: String
}

input AwsLookoutEquipmentSrInput {
  S3OutputConfiguration: AwsLookoutEquipmentSrS3OutputConfigurationInput!
  KmsKeyId: String
}

input AwsLookoutEquipmentSrS3OutputConfigurationInput {
  Bucket: String!
  Prefix: String
}

type AwsLookoutEquipmentCreateModelOutput {
  ModelArn: String
  Status: String
}

input AwsLookoutEquipmentCreateModelInput {
  ModelName: String!
  DatasetName: String!
  DatasetSchema: AwsLookoutEquipmentS3Input
  LabelsInputConfiguration: AwsLookoutEquipmentSzInput
  ClientToken: String!
  TrainingDataStartTime: Date
  TrainingDataEndTime: Date
  EvaluationDataStartTime: Date
  EvaluationDataEndTime: Date
  RoleArn: String
  DataPreProcessingConfiguration: AwsLookoutEquipmentS12Input
  ServerSideKmsKeyId: String
  Tags: [AwsLookoutEquipmentS7Input]
}

input AwsLookoutEquipmentSzInput {
  S3InputConfiguration: AwsLookoutEquipmentSzS3InputConfigurationInput!
}

input AwsLookoutEquipmentSzS3InputConfigurationInput {
  Bucket: String!
  Prefix: String
}

input AwsLookoutEquipmentS12Input {
  TargetSamplingRate: String
}

input AwsLookoutEquipmentDeleteDatasetInput {
  DatasetName: String!
}

input AwsLookoutEquipmentDeleteInferenceSchedulerInput {
  InferenceSchedulerName: String!
}

input AwsLookoutEquipmentDeleteModelInput {
  ModelName: String!
}

type AwsLookoutEquipmentDescribeDataIngestionJobOutput {
  JobId: String
  DatasetArn: String
  IngestionInputConfiguration: AwsLookoutEquipmentS1e
  RoleArn: String
  CreatedAt: Date
  Status: String
  FailedReason: String
}

type AwsLookoutEquipmentS1e {
  S3InputConfiguration: AwsLookoutEquipmentS1eS3InputConfiguration!
}

type AwsLookoutEquipmentS1eS3InputConfiguration {
  Bucket: String!
  Prefix: String
}

input AwsLookoutEquipmentDescribeDataIngestionJobInput {
  JobId: String!
}

type AwsLookoutEquipmentDescribeDatasetOutput {
  DatasetName: String
  DatasetArn: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Status: String
  Schema: String
  ServerSideKmsKeyId: String
  IngestionInputConfiguration: AwsLookoutEquipmentS1e
}

input AwsLookoutEquipmentDescribeDatasetInput {
  DatasetName: String!
}

type AwsLookoutEquipmentDescribeInferenceSchedulerOutput {
  ModelArn: String
  ModelName: String
  InferenceSchedulerName: String
  InferenceSchedulerArn: String
  Status: String
  DataDelayOffsetInMinutes: JSON
  DataUploadFrequency: String
  CreatedAt: Date
  UpdatedAt: Date
  DataInputConfiguration: AwsLookoutEquipmentSj
  DataOutputConfiguration: AwsLookoutEquipmentSr
  RoleArn: String
  ServerSideKmsKeyId: String
}

type AwsLookoutEquipmentSj {
  S3InputConfiguration: AwsLookoutEquipmentSjS3InputConfiguration
  InputTimeZoneOffset: String
  InferenceInputNameConfiguration: AwsLookoutEquipmentSjInferenceInputNameConfiguration
}

type AwsLookoutEquipmentSjS3InputConfiguration {
  Bucket: String!
  Prefix: String
}

type AwsLookoutEquipmentSjInferenceInputNameConfiguration {
  TimestampFormat: String
  ComponentTimestampDelimiter: String
}

type AwsLookoutEquipmentSr {
  S3OutputConfiguration: AwsLookoutEquipmentSrS3OutputConfiguration!
  KmsKeyId: String
}

type AwsLookoutEquipmentSrS3OutputConfiguration {
  Bucket: String!
  Prefix: String
}

input AwsLookoutEquipmentDescribeInferenceSchedulerInput {
  InferenceSchedulerName: String!
}

type AwsLookoutEquipmentDescribeModelOutput {
  ModelName: String
  ModelArn: String
  DatasetName: String
  DatasetArn: String
  Schema: String
  LabelsInputConfiguration: AwsLookoutEquipmentSz
  TrainingDataStartTime: Date
  TrainingDataEndTime: Date
  EvaluationDataStartTime: Date
  EvaluationDataEndTime: Date
  RoleArn: String
  DataPreProcessingConfiguration: AwsLookoutEquipmentS12
  Status: String
  TrainingExecutionStartTime: Date
  TrainingExecutionEndTime: Date
  FailedReason: String
  ModelMetrics: String
  LastUpdatedTime: Date
  CreatedAt: Date
  ServerSideKmsKeyId: String
}

type AwsLookoutEquipmentSz {
  S3InputConfiguration: AwsLookoutEquipmentSzS3InputConfiguration!
}

type AwsLookoutEquipmentSzS3InputConfiguration {
  Bucket: String!
  Prefix: String
}

type AwsLookoutEquipmentS12 {
  TargetSamplingRate: String
}

input AwsLookoutEquipmentDescribeModelInput {
  ModelName: String!
}

type AwsLookoutEquipmentListDataIngestionJobsOutput {
  NextToken: String
  DataIngestionJobSummaries: [AwsLookoutEquipmentListDataIngestionJobsOutputDataIngestionJobSummaries]
}

type AwsLookoutEquipmentListDataIngestionJobsOutputDataIngestionJobSummaries {
  JobId: String
  DatasetName: String
  DatasetArn: String
  IngestionInputConfiguration: AwsLookoutEquipmentS1e
  Status: String
}

input AwsLookoutEquipmentListDataIngestionJobsInput {
  DatasetName: String
  NextToken: String
  MaxResults: Int
  Status: String
}

type AwsLookoutEquipmentListDatasetsOutput {
  NextToken: String
  DatasetSummaries: [AwsLookoutEquipmentListDatasetsOutputDatasetSummaries]
}

type AwsLookoutEquipmentListDatasetsOutputDatasetSummaries {
  DatasetName: String
  DatasetArn: String
  Status: String
  CreatedAt: Date
}

input AwsLookoutEquipmentListDatasetsInput {
  NextToken: String
  MaxResults: Int
  DatasetNameBeginsWith: String
}

type AwsLookoutEquipmentListInferenceExecutionsOutput {
  NextToken: String
  InferenceExecutionSummaries: [AwsLookoutEquipmentListInferenceExecutionsOutputInferenceExecutionSummaries]
}

type AwsLookoutEquipmentListInferenceExecutionsOutputInferenceExecutionSummaries {
  ModelName: String
  ModelArn: String
  InferenceSchedulerName: String
  InferenceSchedulerArn: String
  ScheduledStartTime: Date
  DataStartTime: Date
  DataEndTime: Date
  DataInputConfiguration: AwsLookoutEquipmentSj
  DataOutputConfiguration: AwsLookoutEquipmentSr
  CustomerResultObject: AwsLookoutEquipmentListInferenceExecutionsOutputInferenceExecutionSummariesCustomerResultObject
  Status: String
  FailedReason: String
}

type AwsLookoutEquipmentListInferenceExecutionsOutputInferenceExecutionSummariesCustomerResultObject {
  Bucket: String!
  Key: String!
}

input AwsLookoutEquipmentListInferenceExecutionsInput {
  NextToken: String
  MaxResults: Int
  InferenceSchedulerName: String!
  DataStartTimeAfter: Date
  DataEndTimeBefore: Date
  Status: String
}

type AwsLookoutEquipmentListInferenceSchedulersOutput {
  NextToken: String
  InferenceSchedulerSummaries: [AwsLookoutEquipmentListInferenceSchedulersOutputInferenceSchedulerSummaries]
}

type AwsLookoutEquipmentListInferenceSchedulersOutputInferenceSchedulerSummaries {
  ModelName: String
  ModelArn: String
  InferenceSchedulerName: String
  InferenceSchedulerArn: String
  Status: String
  DataDelayOffsetInMinutes: JSON
  DataUploadFrequency: String
}

input AwsLookoutEquipmentListInferenceSchedulersInput {
  NextToken: String
  MaxResults: Int
  InferenceSchedulerNameBeginsWith: String
  ModelName: String
}

type AwsLookoutEquipmentListModelsOutput {
  NextToken: String
  ModelSummaries: [AwsLookoutEquipmentListModelsOutputModelSummaries]
}

type AwsLookoutEquipmentListModelsOutputModelSummaries {
  ModelName: String
  ModelArn: String
  DatasetName: String
  DatasetArn: String
  Status: String
  CreatedAt: Date
}

input AwsLookoutEquipmentListModelsInput {
  NextToken: String
  MaxResults: Int
  Status: String
  ModelNameBeginsWith: String
  DatasetNameBeginsWith: String
}

type AwsLookoutEquipmentListTagsForResourceOutput {
  Tags: [AwsLookoutEquipmentS7]
}

type AwsLookoutEquipmentS7 {
  Key: String!
  Value: String!
}

input AwsLookoutEquipmentListTagsForResourceInput {
  ResourceArn: String!
}

type AwsLookoutEquipmentStartDataIngestionJobOutput {
  JobId: String
  Status: String
}

input AwsLookoutEquipmentStartDataIngestionJobInput {
  DatasetName: String!
  IngestionInputConfiguration: AwsLookoutEquipmentS1eInput!
  RoleArn: String!
  ClientToken: String!
}

input AwsLookoutEquipmentS1eInput {
  S3InputConfiguration: AwsLookoutEquipmentS1eS3InputConfigurationInput!
}

input AwsLookoutEquipmentS1eS3InputConfigurationInput {
  Bucket: String!
  Prefix: String
}

type AwsLookoutEquipmentStartInferenceSchedulerOutput {
  ModelArn: String
  ModelName: String
  InferenceSchedulerName: String
  InferenceSchedulerArn: String
  Status: String
}

input AwsLookoutEquipmentStartInferenceSchedulerInput {
  InferenceSchedulerName: String!
}

type AwsLookoutEquipmentStopInferenceSchedulerOutput {
  ModelArn: String
  ModelName: String
  InferenceSchedulerName: String
  InferenceSchedulerArn: String
  Status: String
}

input AwsLookoutEquipmentStopInferenceSchedulerInput {
  InferenceSchedulerName: String!
}

input AwsLookoutEquipmentTagResourceInput {
  ResourceArn: String!
  Tags: [AwsLookoutEquipmentS7Input]!
}

input AwsLookoutEquipmentUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsLookoutEquipmentUpdateInferenceSchedulerInput {
  InferenceSchedulerName: String!
  DataDelayOffsetInMinutes: JSON
  DataUploadFrequency: String
  DataInputConfiguration: AwsLookoutEquipmentSjInput
  DataOutputConfiguration: AwsLookoutEquipmentSrInput
  RoleArn: String
}

"""Amazon Lookout for Metrics (2017-07-25)"""
type AwsLookoutMetrics {
  activateAnomalyDetector(input: AwsLookoutMetricsActivateAnomalyDetectorInput!, config: AwsConfig): JSON
  backTestAnomalyDetector(input: AwsLookoutMetricsBackTestAnomalyDetectorInput!, config: AwsConfig): JSON
  createAlert(input: AwsLookoutMetricsCreateAlertInput!, config: AwsConfig): AwsLookoutMetricsCreateAlertOutput
  createAnomalyDetector(input: AwsLookoutMetricsCreateAnomalyDetectorInput!, config: AwsConfig): AwsLookoutMetricsCreateAnomalyDetectorOutput
  createMetricSet(input: AwsLookoutMetricsCreateMetricSetInput!, config: AwsConfig): AwsLookoutMetricsCreateMetricSetOutput
  deleteAlert(input: AwsLookoutMetricsDeleteAlertInput!, config: AwsConfig): JSON
  deleteAnomalyDetector(input: AwsLookoutMetricsDeleteAnomalyDetectorInput!, config: AwsConfig): JSON
  describeAlert(input: AwsLookoutMetricsDescribeAlertInput!, config: AwsConfig): AwsLookoutMetricsDescribeAlertOutput
  describeAnomalyDetectionExecutions(input: AwsLookoutMetricsDescribeAnomalyDetectionExecutionsInput!, config: AwsConfig): AwsLookoutMetricsDescribeAnomalyDetectionExecutionsOutput
  describeAnomalyDetector(input: AwsLookoutMetricsDescribeAnomalyDetectorInput!, config: AwsConfig): AwsLookoutMetricsDescribeAnomalyDetectorOutput
  describeMetricSet(input: AwsLookoutMetricsDescribeMetricSetInput!, config: AwsConfig): AwsLookoutMetricsDescribeMetricSetOutput
  getAnomalyGroup(input: AwsLookoutMetricsGetAnomalyGroupInput!, config: AwsConfig): AwsLookoutMetricsGetAnomalyGroupOutput
  getFeedback(input: AwsLookoutMetricsGetFeedbackInput!, config: AwsConfig): AwsLookoutMetricsGetFeedbackOutput
  getSampleData(input: AwsLookoutMetricsGetSampleDataInput, config: AwsConfig): AwsLookoutMetricsGetSampleDataOutput
  listAlerts(input: AwsLookoutMetricsListAlertsInput, config: AwsConfig): AwsLookoutMetricsListAlertsOutput
  listAnomalyDetectors(input: AwsLookoutMetricsListAnomalyDetectorsInput, config: AwsConfig): AwsLookoutMetricsListAnomalyDetectorsOutput
  listAnomalyGroupSummaries(input: AwsLookoutMetricsListAnomalyGroupSummariesInput!, config: AwsConfig): AwsLookoutMetricsListAnomalyGroupSummariesOutput
  listAnomalyGroupTimeSeries(input: AwsLookoutMetricsListAnomalyGroupTimeSeriesInput!, config: AwsConfig): AwsLookoutMetricsListAnomalyGroupTimeSeriesOutput
  listMetricSets(input: AwsLookoutMetricsListMetricSetsInput, config: AwsConfig): AwsLookoutMetricsListMetricSetsOutput
  listTagsForResource(input: AwsLookoutMetricsListTagsForResourceInput!, config: AwsConfig): AwsLookoutMetricsListTagsForResourceOutput
  putFeedback(input: AwsLookoutMetricsPutFeedbackInput!, config: AwsConfig): JSON
  tagResource(input: AwsLookoutMetricsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLookoutMetricsUntagResourceInput!, config: AwsConfig): JSON
  updateAnomalyDetector(input: AwsLookoutMetricsUpdateAnomalyDetectorInput!, config: AwsConfig): AwsLookoutMetricsUpdateAnomalyDetectorOutput
  updateMetricSet(input: AwsLookoutMetricsUpdateMetricSetInput!, config: AwsConfig): AwsLookoutMetricsUpdateMetricSetOutput
}

input AwsLookoutMetricsActivateAnomalyDetectorInput {
  AnomalyDetectorArn: String!
}

input AwsLookoutMetricsBackTestAnomalyDetectorInput {
  AnomalyDetectorArn: String!
}

type AwsLookoutMetricsCreateAlertOutput {
  AlertArn: String
}

input AwsLookoutMetricsCreateAlertInput {
  AlertName: String!
  AlertSensitivityThreshold: Int!
  AlertDescription: String
  AnomalyDetectorArn: String!
  Action: AwsLookoutMetricsSaInput!
  Tags: JSON
}

input AwsLookoutMetricsSaInput {
  SNSConfiguration: AwsLookoutMetricsSaSNSConfigurationInput
  LambdaConfiguration: AwsLookoutMetricsSaLambdaConfigurationInput
}

input AwsLookoutMetricsSaSNSConfigurationInput {
  RoleArn: String!
  SnsTopicArn: String!
}

input AwsLookoutMetricsSaLambdaConfigurationInput {
  RoleArn: String!
  LambdaArn: String!
}

type AwsLookoutMetricsCreateAnomalyDetectorOutput {
  AnomalyDetectorArn: String
}

input AwsLookoutMetricsCreateAnomalyDetectorInput {
  AnomalyDetectorName: String!
  AnomalyDetectorDescription: String
  AnomalyDetectorConfig: AwsLookoutMetricsSkInput!
  KmsKeyArn: String
  Tags: JSON
}

input AwsLookoutMetricsSkInput {
  AnomalyDetectorFrequency: String
}

type AwsLookoutMetricsCreateMetricSetOutput {
  MetricSetArn: String
}

input AwsLookoutMetricsCreateMetricSetInput {
  AnomalyDetectorArn: String!
  MetricSetName: String!
  MetricSetDescription: String
  MetricList: [AwsLookoutMetricsSrInput]!
  Offset: Int
  TimestampColumn: AwsLookoutMetricsSxInput
  DimensionList: [String]
  MetricSetFrequency: String
  MetricSource: AwsLookoutMetricsS10Input!
  Timezone: String
  Tags: JSON
}

input AwsLookoutMetricsSrInput {
  MetricName: String!
  AggregationFunction: String!
  Namespace: String
}

input AwsLookoutMetricsSxInput {
  ColumnName: String
  ColumnFormat: String
}

input AwsLookoutMetricsS10Input {
  S3SourceConfig: AwsLookoutMetricsS10S3SourceConfigInput
  AppFlowConfig: AwsLookoutMetricsS10AppFlowConfigInput
  CloudWatchConfig: AwsLookoutMetricsS10CloudWatchConfigInput
  RDSSourceConfig: AwsLookoutMetricsS10RDSSourceConfigInput
  RedshiftSourceConfig: AwsLookoutMetricsS10RedshiftSourceConfigInput
}

input AwsLookoutMetricsS10S3SourceConfigInput {
  RoleArn: String!
  TemplatedPathList: [String]
  HistoricalDataPathList: [String]
  FileFormatDescriptor: AwsLookoutMetricsS16Input
}

input AwsLookoutMetricsS16Input {
  CsvFormatDescriptor: AwsLookoutMetricsS16CsvFormatDescriptorInput
  JsonFormatDescriptor: AwsLookoutMetricsS16JsonFormatDescriptorInput
}

input AwsLookoutMetricsS16CsvFormatDescriptorInput {
  FileCompression: String
  Charset: String
  ContainsHeader: Boolean
  Delimiter: String
  HeaderList: [String]
  QuoteSymbol: String
}

input AwsLookoutMetricsS16JsonFormatDescriptorInput {
  FileCompression: String
  Charset: String
}

input AwsLookoutMetricsS10AppFlowConfigInput {
  RoleArn: String!
  FlowName: String!
}

input AwsLookoutMetricsS10CloudWatchConfigInput {
  RoleArn: String!
}

input AwsLookoutMetricsS10RDSSourceConfigInput {
  DBInstanceIdentifier: String!
  DatabaseHost: String!
  DatabasePort: Int!
  SecretManagerArn: String!
  DatabaseName: String!
  TableName: String!
  RoleArn: String!
  VpcConfiguration: AwsLookoutMetricsS1qInput!
}

input AwsLookoutMetricsS1qInput {
  SubnetIdList: [String]!
  SecurityGroupIdList: [String]!
}

input AwsLookoutMetricsS10RedshiftSourceConfigInput {
  ClusterIdentifier: String!
  DatabaseHost: String!
  DatabasePort: Int!
  SecretManagerArn: String!
  DatabaseName: String!
  TableName: String!
  RoleArn: String!
  VpcConfiguration: AwsLookoutMetricsS1qInput!
}

input AwsLookoutMetricsDeleteAlertInput {
  AlertArn: String!
}

input AwsLookoutMetricsDeleteAnomalyDetectorInput {
  AnomalyDetectorArn: String!
}

type AwsLookoutMetricsDescribeAlertOutput {
  Alert: AwsLookoutMetricsDescribeAlertOutputAlert
}

type AwsLookoutMetricsDescribeAlertOutputAlert {
  Action: AwsLookoutMetricsSa
  AlertDescription: String
  AlertArn: String
  AnomalyDetectorArn: String
  AlertName: String
  AlertSensitivityThreshold: Int
  AlertType: String
  AlertStatus: String
  LastModificationTime: Date
  CreationTime: Date
}

type AwsLookoutMetricsSa {
  SNSConfiguration: AwsLookoutMetricsSaSNSConfiguration
  LambdaConfiguration: AwsLookoutMetricsSaLambdaConfiguration
}

type AwsLookoutMetricsSaSNSConfiguration {
  RoleArn: String!
  SnsTopicArn: String!
}

type AwsLookoutMetricsSaLambdaConfiguration {
  RoleArn: String!
  LambdaArn: String!
}

input AwsLookoutMetricsDescribeAlertInput {
  AlertArn: String!
}

type AwsLookoutMetricsDescribeAnomalyDetectionExecutionsOutput {
  ExecutionList: [AwsLookoutMetricsDescribeAnomalyDetectionExecutionsOutputExecutionList]
  NextToken: String
}

type AwsLookoutMetricsDescribeAnomalyDetectionExecutionsOutputExecutionList {
  Timestamp: String
  Status: String
  FailureReason: String
}

input AwsLookoutMetricsDescribeAnomalyDetectionExecutionsInput {
  AnomalyDetectorArn: String!
  Timestamp: String
  MaxResults: Int
  NextToken: String
}

type AwsLookoutMetricsDescribeAnomalyDetectorOutput {
  AnomalyDetectorArn: String
  AnomalyDetectorName: String
  AnomalyDetectorDescription: String
  AnomalyDetectorConfig: AwsLookoutMetricsDescribeAnomalyDetectorOutputAnomalyDetectorConfig
  CreationTime: Date
  LastModificationTime: Date
  Status: String
  FailureReason: String
  KmsKeyArn: String
}

type AwsLookoutMetricsDescribeAnomalyDetectorOutputAnomalyDetectorConfig {
  AnomalyDetectorFrequency: String
}

input AwsLookoutMetricsDescribeAnomalyDetectorInput {
  AnomalyDetectorArn: String!
}

type AwsLookoutMetricsDescribeMetricSetOutput {
  MetricSetArn: String
  AnomalyDetectorArn: String
  MetricSetName: String
  MetricSetDescription: String
  CreationTime: Date
  LastModificationTime: Date
  Offset: Int
  MetricList: [AwsLookoutMetricsSr]
  TimestampColumn: AwsLookoutMetricsSx
  DimensionList: [String]
  MetricSetFrequency: String
  Timezone: String
  MetricSource: AwsLookoutMetricsS10
}

type AwsLookoutMetricsSr {
  MetricName: String!
  AggregationFunction: String!
  Namespace: String
}

type AwsLookoutMetricsSx {
  ColumnName: String
  ColumnFormat: String
}

type AwsLookoutMetricsS10 {
  S3SourceConfig: AwsLookoutMetricsS10S3SourceConfig
  AppFlowConfig: AwsLookoutMetricsS10AppFlowConfig
  CloudWatchConfig: AwsLookoutMetricsS10CloudWatchConfig
  RDSSourceConfig: AwsLookoutMetricsS10RDSSourceConfig
  RedshiftSourceConfig: AwsLookoutMetricsS10RedshiftSourceConfig
}

type AwsLookoutMetricsS10S3SourceConfig {
  RoleArn: String!
  TemplatedPathList: [String]
  HistoricalDataPathList: [String]
  FileFormatDescriptor: AwsLookoutMetricsS16
}

type AwsLookoutMetricsS16 {
  CsvFormatDescriptor: AwsLookoutMetricsS16CsvFormatDescriptor
  JsonFormatDescriptor: AwsLookoutMetricsS16JsonFormatDescriptor
}

type AwsLookoutMetricsS16CsvFormatDescriptor {
  FileCompression: String
  Charset: String
  ContainsHeader: Boolean
  Delimiter: String
  HeaderList: [String]
  QuoteSymbol: String
}

type AwsLookoutMetricsS16JsonFormatDescriptor {
  FileCompression: String
  Charset: String
}

type AwsLookoutMetricsS10AppFlowConfig {
  RoleArn: String!
  FlowName: String!
}

type AwsLookoutMetricsS10CloudWatchConfig {
  RoleArn: String!
}

type AwsLookoutMetricsS10RDSSourceConfig {
  DBInstanceIdentifier: String!
  DatabaseHost: String!
  DatabasePort: Int!
  SecretManagerArn: String!
  DatabaseName: String!
  TableName: String!
  RoleArn: String!
  VpcConfiguration: AwsLookoutMetricsS1q!
}

type AwsLookoutMetricsS1q {
  SubnetIdList: [String]!
  SecurityGroupIdList: [String]!
}

type AwsLookoutMetricsS10RedshiftSourceConfig {
  ClusterIdentifier: String!
  DatabaseHost: String!
  DatabasePort: Int!
  SecretManagerArn: String!
  DatabaseName: String!
  TableName: String!
  RoleArn: String!
  VpcConfiguration: AwsLookoutMetricsS1q!
}

input AwsLookoutMetricsDescribeMetricSetInput {
  MetricSetArn: String!
}

type AwsLookoutMetricsGetAnomalyGroupOutput {
  AnomalyGroup: AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroup
}

type AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroup {
  StartTime: String
  EndTime: String
  AnomalyGroupId: String
  AnomalyGroupScore: JSON
  PrimaryMetricName: String
  MetricLevelImpactList: [AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactList]
}

type AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactList {
  MetricName: String
  NumTimeSeries: Int
  ContributionMatrix: AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrix
}

type AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrix {
  DimensionContributionList: [AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrixDimensionContributionList]
}

type AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrixDimensionContributionList {
  DimensionName: String
  DimensionValueContributionList: [AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrixDimensionContributionListDimensionValueContributionList]
}

type AwsLookoutMetricsGetAnomalyGroupOutputAnomalyGroupMetricLevelImpactListContributionMatrixDimensionContributionListDimensionValueContributionList {
  DimensionValue: String
  ContributionScore: JSON
}

input AwsLookoutMetricsGetAnomalyGroupInput {
  AnomalyGroupId: String!
  AnomalyDetectorArn: String!
}

type AwsLookoutMetricsGetFeedbackOutput {
  AnomalyGroupTimeSeriesFeedback: [AwsLookoutMetricsGetFeedbackOutputAnomalyGroupTimeSeriesFeedback]
  NextToken: String
}

type AwsLookoutMetricsGetFeedbackOutputAnomalyGroupTimeSeriesFeedback {
  TimeSeriesId: String
  IsAnomaly: Boolean
}

input AwsLookoutMetricsGetFeedbackInput {
  AnomalyDetectorArn: String!
  AnomalyGroupTimeSeriesFeedback: AwsLookoutMetricsGetFeedbackAnomalyGroupTimeSeriesFeedbackInput!
  MaxResults: Int
  NextToken: String
}

input AwsLookoutMetricsGetFeedbackAnomalyGroupTimeSeriesFeedbackInput {
  AnomalyGroupId: String!
  TimeSeriesId: String
}

type AwsLookoutMetricsGetSampleDataOutput {
  HeaderValues: [String]
  SampleRows: [[String]]
}

input AwsLookoutMetricsGetSampleDataInput {
  S3SourceConfig: AwsLookoutMetricsGetSampleDataS3SourceConfigInput
}

input AwsLookoutMetricsGetSampleDataS3SourceConfigInput {
  RoleArn: String!
  TemplatedPathList: [String]
  HistoricalDataPathList: [String]
  FileFormatDescriptor: AwsLookoutMetricsS16Input!
}

type AwsLookoutMetricsListAlertsOutput {
  AlertSummaryList: [AwsLookoutMetricsListAlertsOutputAlertSummaryList]
  NextToken: String
}

type AwsLookoutMetricsListAlertsOutputAlertSummaryList {
  AlertArn: String
  AnomalyDetectorArn: String
  AlertName: String
  AlertSensitivityThreshold: Int
  AlertType: String
  AlertStatus: String
  LastModificationTime: Date
  CreationTime: Date
  Tags: JSON
}

input AwsLookoutMetricsListAlertsInput {
  AnomalyDetectorArn: String
  NextToken: String
  MaxResults: Int
}

type AwsLookoutMetricsListAnomalyDetectorsOutput {
  AnomalyDetectorSummaryList: [AwsLookoutMetricsListAnomalyDetectorsOutputAnomalyDetectorSummaryList]
  NextToken: String
}

type AwsLookoutMetricsListAnomalyDetectorsOutputAnomalyDetectorSummaryList {
  AnomalyDetectorArn: String
  AnomalyDetectorName: String
  AnomalyDetectorDescription: String
  CreationTime: Date
  LastModificationTime: Date
  Status: String
  Tags: JSON
}

input AwsLookoutMetricsListAnomalyDetectorsInput {
  MaxResults: Int
  NextToken: String
}

type AwsLookoutMetricsListAnomalyGroupSummariesOutput {
  AnomalyGroupSummaryList: [AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupSummaryList]
  AnomalyGroupStatistics: AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupStatistics
  NextToken: String
}

type AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupSummaryList {
  StartTime: String
  EndTime: String
  AnomalyGroupId: String
  AnomalyGroupScore: JSON
  PrimaryMetricName: String
}

type AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupStatistics {
  EvaluationStartDate: String
  TotalCount: Int
  ItemizedMetricStatsList: [AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupStatisticsItemizedMetricStatsList]
}

type AwsLookoutMetricsListAnomalyGroupSummariesOutputAnomalyGroupStatisticsItemizedMetricStatsList {
  MetricName: String
  OccurrenceCount: Int
}

input AwsLookoutMetricsListAnomalyGroupSummariesInput {
  AnomalyDetectorArn: String!
  SensitivityThreshold: Int!
  MaxResults: Int
  NextToken: String
}

type AwsLookoutMetricsListAnomalyGroupTimeSeriesOutput {
  AnomalyGroupId: String
  MetricName: String
  TimestampList: [String]
  NextToken: String
  TimeSeriesList: [AwsLookoutMetricsListAnomalyGroupTimeSeriesOutputTimeSeriesList]
}

type AwsLookoutMetricsListAnomalyGroupTimeSeriesOutputTimeSeriesList {
  TimeSeriesId: String!
  DimensionList: [AwsLookoutMetricsListAnomalyGroupTimeSeriesOutputTimeSeriesListDimensionList]!
  MetricValueList: [JSON]!
}

type AwsLookoutMetricsListAnomalyGroupTimeSeriesOutputTimeSeriesListDimensionList {
  DimensionName: String!
  DimensionValue: String!
}

input AwsLookoutMetricsListAnomalyGroupTimeSeriesInput {
  AnomalyDetectorArn: String!
  AnomalyGroupId: String!
  MetricName: String!
  MaxResults: Int
  NextToken: String
}

type AwsLookoutMetricsListMetricSetsOutput {
  MetricSetSummaryList: [AwsLookoutMetricsListMetricSetsOutputMetricSetSummaryList]
  NextToken: String
}

type AwsLookoutMetricsListMetricSetsOutputMetricSetSummaryList {
  MetricSetArn: String
  AnomalyDetectorArn: String
  MetricSetDescription: String
  MetricSetName: String
  CreationTime: Date
  LastModificationTime: Date
  Tags: JSON
}

input AwsLookoutMetricsListMetricSetsInput {
  AnomalyDetectorArn: String
  MaxResults: Int
  NextToken: String
}

type AwsLookoutMetricsListTagsForResourceOutput {
  Tags: JSON
}

input AwsLookoutMetricsListTagsForResourceInput {
  ResourceArn: String!
}

input AwsLookoutMetricsPutFeedbackInput {
  AnomalyDetectorArn: String!
  AnomalyGroupTimeSeriesFeedback: AwsLookoutMetricsPutFeedbackAnomalyGroupTimeSeriesFeedbackInput!
}

input AwsLookoutMetricsPutFeedbackAnomalyGroupTimeSeriesFeedbackInput {
  AnomalyGroupId: String!
  TimeSeriesId: String!
  IsAnomaly: Boolean!
}

input AwsLookoutMetricsTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsLookoutMetricsUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsLookoutMetricsUpdateAnomalyDetectorOutput {
  AnomalyDetectorArn: String
}

input AwsLookoutMetricsUpdateAnomalyDetectorInput {
  AnomalyDetectorArn: String!
  KmsKeyArn: String
  AnomalyDetectorDescription: String
  AnomalyDetectorConfig: AwsLookoutMetricsSkInput
}

type AwsLookoutMetricsUpdateMetricSetOutput {
  MetricSetArn: String
}

input AwsLookoutMetricsUpdateMetricSetInput {
  MetricSetArn: String!
  MetricSetDescription: String
  MetricList: [AwsLookoutMetricsSrInput]
  Offset: Int
  TimestampColumn: AwsLookoutMetricsSxInput
  DimensionList: [String]
  MetricSetFrequency: String
  MetricSource: AwsLookoutMetricsS10Input
}

"""Amazon Lookout for Vision (2020-11-20)"""
type AwsLookoutVision {
  createDataset(input: AwsLookoutVisionCreateDatasetInput!, config: AwsConfig): AwsLookoutVisionCreateDatasetOutput
  createModel(input: AwsLookoutVisionCreateModelInput!, config: AwsConfig): AwsLookoutVisionCreateModelOutput
  createProject(input: AwsLookoutVisionCreateProjectInput!, config: AwsConfig): AwsLookoutVisionCreateProjectOutput
  deleteDataset(input: AwsLookoutVisionDeleteDatasetInput!, config: AwsConfig): JSON
  deleteModel(input: AwsLookoutVisionDeleteModelInput!, config: AwsConfig): AwsLookoutVisionDeleteModelOutput
  deleteProject(input: AwsLookoutVisionDeleteProjectInput!, config: AwsConfig): AwsLookoutVisionDeleteProjectOutput
  describeDataset(input: AwsLookoutVisionDescribeDatasetInput!, config: AwsConfig): AwsLookoutVisionDescribeDatasetOutput
  describeModel(input: AwsLookoutVisionDescribeModelInput!, config: AwsConfig): AwsLookoutVisionDescribeModelOutput
  describeProject(input: AwsLookoutVisionDescribeProjectInput!, config: AwsConfig): AwsLookoutVisionDescribeProjectOutput
  detectAnomalies(input: AwsLookoutVisionDetectAnomaliesInput!, config: AwsConfig): AwsLookoutVisionDetectAnomaliesOutput
  listDatasetEntries(input: AwsLookoutVisionListDatasetEntriesInput!, config: AwsConfig): AwsLookoutVisionListDatasetEntriesOutput
  listModels(input: AwsLookoutVisionListModelsInput!, config: AwsConfig): AwsLookoutVisionListModelsOutput
  listProjects(input: AwsLookoutVisionListProjectsInput, config: AwsConfig): AwsLookoutVisionListProjectsOutput
  listTagsForResource(input: AwsLookoutVisionListTagsForResourceInput!, config: AwsConfig): AwsLookoutVisionListTagsForResourceOutput
  startModel(input: AwsLookoutVisionStartModelInput!, config: AwsConfig): AwsLookoutVisionStartModelOutput
  stopModel(input: AwsLookoutVisionStopModelInput!, config: AwsConfig): AwsLookoutVisionStopModelOutput
  tagResource(input: AwsLookoutVisionTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsLookoutVisionUntagResourceInput!, config: AwsConfig): JSON
  updateDatasetEntries(input: AwsLookoutVisionUpdateDatasetEntriesInput!, config: AwsConfig): AwsLookoutVisionUpdateDatasetEntriesOutput
}

type AwsLookoutVisionCreateDatasetOutput {
  DatasetMetadata: AwsLookoutVisionSc
}

type AwsLookoutVisionSc {
  DatasetType: String
  CreationTimestamp: Date
  Status: String
  StatusMessage: String
}

input AwsLookoutVisionCreateDatasetInput {
  ProjectName: String!
  DatasetType: String!
  DatasetSource: AwsLookoutVisionCreateDatasetDatasetSourceInput
  ClientToken: String
}

input AwsLookoutVisionCreateDatasetDatasetSourceInput {
  GroundTruthManifest: AwsLookoutVisionCreateDatasetDatasetSourceGroundTruthManifestInput
}

input AwsLookoutVisionCreateDatasetDatasetSourceGroundTruthManifestInput {
  S3Object: AwsLookoutVisionCreateDatasetDatasetSourceGroundTruthManifestS3ObjectInput
}

input AwsLookoutVisionCreateDatasetDatasetSourceGroundTruthManifestS3ObjectInput {
  Bucket: String!
  Key: String!
  VersionId: String
}

type AwsLookoutVisionCreateModelOutput {
  ModelMetadata: AwsLookoutVisionSr
}

type AwsLookoutVisionSr {
  CreationTimestamp: Date
  ModelVersion: String
  ModelArn: String
  Description: String
  Status: String
  StatusMessage: String
  Performance: AwsLookoutVisionSw
}

type AwsLookoutVisionSw {
  F1Score: Float
  Recall: Float
  Precision: Float
}

input AwsLookoutVisionCreateModelInput {
  ProjectName: String!
  Description: String
  ClientToken: String
  OutputConfig: AwsLookoutVisionSiInput!
  KmsKeyId: String
  Tags: [AwsLookoutVisionSmInput]
}

input AwsLookoutVisionSiInput {
  S3Location: AwsLookoutVisionSiS3LocationInput!
}

input AwsLookoutVisionSiS3LocationInput {
  Bucket: String!
  Prefix: String
}

input AwsLookoutVisionSmInput {
  Key: String!
  Value: String!
}

type AwsLookoutVisionCreateProjectOutput {
  ProjectMetadata: AwsLookoutVisionS10
}

type AwsLookoutVisionS10 {
  ProjectArn: String
  ProjectName: String
  CreationTimestamp: Date
}

input AwsLookoutVisionCreateProjectInput {
  ProjectName: String!
  ClientToken: String
}

input AwsLookoutVisionDeleteDatasetInput {
  ProjectName: String!
  DatasetType: String!
  ClientToken: String
}

type AwsLookoutVisionDeleteModelOutput {
  ModelArn: String
}

input AwsLookoutVisionDeleteModelInput {
  ProjectName: String!
  ModelVersion: String!
  ClientToken: String
}

type AwsLookoutVisionDeleteProjectOutput {
  ProjectArn: String
}

input AwsLookoutVisionDeleteProjectInput {
  ProjectName: String!
  ClientToken: String
}

type AwsLookoutVisionDescribeDatasetOutput {
  DatasetDescription: AwsLookoutVisionDescribeDatasetOutputDatasetDescription
}

type AwsLookoutVisionDescribeDatasetOutputDatasetDescription {
  ProjectName: String
  DatasetType: String
  CreationTimestamp: Date
  LastUpdatedTimestamp: Date
  Status: String
  StatusMessage: String
  ImageStats: AwsLookoutVisionDescribeDatasetOutputDatasetDescriptionImageStats
}

type AwsLookoutVisionDescribeDatasetOutputDatasetDescriptionImageStats {
  Total: Int
  Labeled: Int
  Normal: Int
  Anomaly: Int
}

input AwsLookoutVisionDescribeDatasetInput {
  ProjectName: String!
  DatasetType: String!
}

type AwsLookoutVisionDescribeModelOutput {
  ModelDescription: AwsLookoutVisionDescribeModelOutputModelDescription
}

type AwsLookoutVisionDescribeModelOutputModelDescription {
  ModelVersion: String
  ModelArn: String
  CreationTimestamp: Date
  Description: String
  Status: String
  StatusMessage: String
  Performance: AwsLookoutVisionSw
  OutputConfig: AwsLookoutVisionSi
  EvaluationManifest: AwsLookoutVisionS1g
  EvaluationResult: AwsLookoutVisionS1g
  EvaluationEndTimestamp: Date
  KmsKeyId: String
}

type AwsLookoutVisionSi {
  S3Location: AwsLookoutVisionSiS3Location!
}

type AwsLookoutVisionSiS3Location {
  Bucket: String!
  Prefix: String
}

type AwsLookoutVisionS1g {
  Bucket: String!
  Key: String!
}

input AwsLookoutVisionDescribeModelInput {
  ProjectName: String!
  ModelVersion: String!
}

type AwsLookoutVisionDescribeProjectOutput {
  ProjectDescription: AwsLookoutVisionDescribeProjectOutputProjectDescription
}

type AwsLookoutVisionDescribeProjectOutputProjectDescription {
  ProjectArn: String
  ProjectName: String
  CreationTimestamp: Date
  Datasets: [AwsLookoutVisionSc]
}

input AwsLookoutVisionDescribeProjectInput {
  ProjectName: String!
}

type AwsLookoutVisionDetectAnomaliesOutput {
  DetectAnomalyResult: AwsLookoutVisionDetectAnomaliesOutputDetectAnomalyResult
}

type AwsLookoutVisionDetectAnomaliesOutputDetectAnomalyResult {
  Source: AwsLookoutVisionDetectAnomaliesOutputDetectAnomalyResultSource
  IsAnomalous: Boolean
  Confidence: Float
}

type AwsLookoutVisionDetectAnomaliesOutputDetectAnomalyResultSource {
  Type: String
}

input AwsLookoutVisionDetectAnomaliesInput {
  ProjectName: String!
  ModelVersion: String!
  Body: JSON!
  ContentType: String!
}

type AwsLookoutVisionListDatasetEntriesOutput {
  DatasetEntries: [String]
  NextToken: String
}

input AwsLookoutVisionListDatasetEntriesInput {
  ProjectName: String!
  DatasetType: String!
  Labeled: Boolean
  AnomalyClass: String
  BeforeCreationDate: Date
  AfterCreationDate: Date
  NextToken: String
  MaxResults: Int
  SourceRefContains: String
}

type AwsLookoutVisionListModelsOutput {
  Models: [AwsLookoutVisionSr]
  NextToken: String
}

input AwsLookoutVisionListModelsInput {
  ProjectName: String!
  NextToken: String
  MaxResults: Int
}

type AwsLookoutVisionListProjectsOutput {
  Projects: [AwsLookoutVisionS10]
  NextToken: String
}

input AwsLookoutVisionListProjectsInput {
  NextToken: String
  MaxResults: Int
}

type AwsLookoutVisionListTagsForResourceOutput {
  Tags: [AwsLookoutVisionSm]
}

type AwsLookoutVisionSm {
  Key: String!
  Value: String!
}

input AwsLookoutVisionListTagsForResourceInput {
  ResourceArn: String!
}

type AwsLookoutVisionStartModelOutput {
  Status: String
}

input AwsLookoutVisionStartModelInput {
  ProjectName: String!
  ModelVersion: String!
  MinInferenceUnits: Int!
  ClientToken: String
}

type AwsLookoutVisionStopModelOutput {
  Status: String
}

input AwsLookoutVisionStopModelInput {
  ProjectName: String!
  ModelVersion: String!
  ClientToken: String
}

input AwsLookoutVisionTagResourceInput {
  ResourceArn: String!
  Tags: [AwsLookoutVisionSmInput]!
}

input AwsLookoutVisionUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsLookoutVisionUpdateDatasetEntriesOutput {
  Status: String
}

input AwsLookoutVisionUpdateDatasetEntriesInput {
  ProjectName: String!
  DatasetType: String!
  Changes: JSON!
  ClientToken: String
}

"""AmazonMQ (2017-11-27)"""
type AwsMQ {
  createBroker(input: AwsMQCreateBrokerInput, config: AwsConfig): AwsMQCreateBrokerOutput
  createConfiguration(input: AwsMQCreateConfigurationInput, config: AwsConfig): AwsMQCreateConfigurationOutput
  createTags(input: AwsMQCreateTagsInput!, config: AwsConfig): JSON
  createUser(input: AwsMQCreateUserInput!, config: AwsConfig): JSON
  deleteBroker(input: AwsMQDeleteBrokerInput!, config: AwsConfig): AwsMQDeleteBrokerOutput
  deleteTags(input: AwsMQDeleteTagsInput!, config: AwsConfig): JSON
  deleteUser(input: AwsMQDeleteUserInput!, config: AwsConfig): JSON
  describeBroker(input: AwsMQDescribeBrokerInput!, config: AwsConfig): AwsMQDescribeBrokerOutput
  describeBrokerEngineTypes(input: AwsMQDescribeBrokerEngineTypesInput, config: AwsConfig): AwsMQDescribeBrokerEngineTypesOutput
  describeBrokerInstanceOptions(input: AwsMQDescribeBrokerInstanceOptionsInput, config: AwsConfig): AwsMQDescribeBrokerInstanceOptionsOutput
  describeConfiguration(input: AwsMQDescribeConfigurationInput!, config: AwsConfig): AwsMQDescribeConfigurationOutput
  describeConfigurationRevision(input: AwsMQDescribeConfigurationRevisionInput!, config: AwsConfig): AwsMQDescribeConfigurationRevisionOutput
  describeUser(input: AwsMQDescribeUserInput!, config: AwsConfig): AwsMQDescribeUserOutput
  listBrokers(input: AwsMQListBrokersInput, config: AwsConfig): AwsMQListBrokersOutput
  listConfigurationRevisions(input: AwsMQListConfigurationRevisionsInput!, config: AwsConfig): AwsMQListConfigurationRevisionsOutput
  listConfigurations(input: AwsMQListConfigurationsInput, config: AwsConfig): AwsMQListConfigurationsOutput
  listTags(input: AwsMQListTagsInput!, config: AwsConfig): AwsMQListTagsOutput
  listUsers(input: AwsMQListUsersInput!, config: AwsConfig): AwsMQListUsersOutput
  rebootBroker(input: AwsMQRebootBrokerInput!, config: AwsConfig): JSON
  updateBroker(input: AwsMQUpdateBrokerInput!, config: AwsConfig): AwsMQUpdateBrokerOutput
  updateConfiguration(input: AwsMQUpdateConfigurationInput!, config: AwsConfig): AwsMQUpdateConfigurationOutput
  updateUser(input: AwsMQUpdateUserInput!, config: AwsConfig): JSON
}

type AwsMQCreateBrokerOutput {
  BrokerArn: String
  BrokerId: String
}

input AwsMQCreateBrokerInput {
  AuthenticationStrategy: String
  AutoMinorVersionUpgrade: Boolean
  BrokerName: String
  Configuration: AwsMQS5Input
  CreatorRequestId: String
  DeploymentMode: String
  EncryptionOptions: AwsMQS8Input
  EngineType: String
  EngineVersion: String
  HostInstanceType: String
  LdapServerMetadata: AwsMQSaInput
  Logs: AwsMQScInput
  MaintenanceWindowStartTime: AwsMQSdInput
  PubliclyAccessible: Boolean
  SecurityGroups: [String]
  StorageType: String
  SubnetIds: [String]
  Tags: JSON
  Users: [AwsMQCreateBrokerUsersInput]
}

input AwsMQS5Input {
  Id: String
  Revision: Int
}

input AwsMQS8Input {
  KmsKeyId: String
  UseAwsOwnedKey: Boolean!
}

input AwsMQSaInput {
  Hosts: [String]
  RoleBase: String
  RoleName: String
  RoleSearchMatching: String
  RoleSearchSubtree: Boolean
  ServiceAccountPassword: String
  ServiceAccountUsername: String
  UserBase: String
  UserRoleName: String
  UserSearchMatching: String
  UserSearchSubtree: Boolean
}

input AwsMQScInput {
  Audit: Boolean
  General: Boolean
}

input AwsMQSdInput {
  DayOfWeek: String
  TimeOfDay: String
  TimeZone: String
}

input AwsMQCreateBrokerUsersInput {
  ConsoleAccess: Boolean
  Groups: [String]
  Password: String
  Username: String
}

type AwsMQCreateConfigurationOutput {
  Arn: String
  AuthenticationStrategy: String
  Created: Date
  Id: String
  LatestRevision: AwsMQSn
  Name: String
}

type AwsMQSn {
  Created: Date
  Description: String
  Revision: Int
}

input AwsMQCreateConfigurationInput {
  AuthenticationStrategy: String
  EngineType: String
  EngineVersion: String
  Name: String
  Tags: JSON
}

input AwsMQCreateTagsInput {
  ResourceArn: String!
  Tags: JSON
}

input AwsMQCreateUserInput {
  BrokerId: String!
  ConsoleAccess: Boolean
  Groups: [String]
  Password: String
  Username: String!
}

type AwsMQDeleteBrokerOutput {
  BrokerId: String
}

input AwsMQDeleteBrokerInput {
  BrokerId: String!
}

input AwsMQDeleteTagsInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsMQDeleteUserInput {
  BrokerId: String!
  Username: String!
}

type AwsMQDescribeBrokerOutput {
  AuthenticationStrategy: String
  AutoMinorVersionUpgrade: Boolean
  BrokerArn: String
  BrokerId: String
  BrokerInstances: [AwsMQDescribeBrokerOutputBrokerInstances]
  BrokerName: String
  BrokerState: String
  Configurations: AwsMQDescribeBrokerOutputConfigurations
  Created: Date
  DeploymentMode: String
  EncryptionOptions: AwsMQS8
  EngineType: String
  EngineVersion: String
  HostInstanceType: String
  LdapServerMetadata: AwsMQS13
  Logs: AwsMQDescribeBrokerOutputLogs
  MaintenanceWindowStartTime: AwsMQSd
  PendingAuthenticationStrategy: String
  PendingEngineVersion: String
  PendingHostInstanceType: String
  PendingLdapServerMetadata: AwsMQS13
  PendingSecurityGroups: [String]
  PubliclyAccessible: Boolean
  SecurityGroups: [String]
  StorageType: String
  SubnetIds: [String]
  Tags: JSON
  Users: [AwsMQS16]
}

type AwsMQDescribeBrokerOutputBrokerInstances {
  ConsoleURL: String
  Endpoints: [String]
  IpAddress: String
}

type AwsMQDescribeBrokerOutputConfigurations {
  Current: AwsMQS5
  History: [AwsMQS5]
  Pending: AwsMQS5
}

type AwsMQS5 {
  Id: String
  Revision: Int
}

type AwsMQS8 {
  KmsKeyId: String
  UseAwsOwnedKey: Boolean!
}

type AwsMQS13 {
  Hosts: [String]
  RoleBase: String
  RoleName: String
  RoleSearchMatching: String
  RoleSearchSubtree: Boolean
  ServiceAccountUsername: String
  UserBase: String
  UserRoleName: String
  UserSearchMatching: String
  UserSearchSubtree: Boolean
}

type AwsMQDescribeBrokerOutputLogs {
  Audit: Boolean
  AuditLogGroup: String
  General: Boolean
  GeneralLogGroup: String
  Pending: AwsMQDescribeBrokerOutputLogsPending
}

type AwsMQDescribeBrokerOutputLogsPending {
  Audit: Boolean
  General: Boolean
}

type AwsMQSd {
  DayOfWeek: String
  TimeOfDay: String
  TimeZone: String
}

type AwsMQS16 {
  PendingChange: String
  Username: String
}

input AwsMQDescribeBrokerInput {
  BrokerId: String!
}

type AwsMQDescribeBrokerEngineTypesOutput {
  BrokerEngineTypes: [AwsMQDescribeBrokerEngineTypesOutputBrokerEngineTypes]
  MaxResults: Int
  NextToken: String
}

type AwsMQDescribeBrokerEngineTypesOutputBrokerEngineTypes {
  EngineType: String
  EngineVersions: [AwsMQDescribeBrokerEngineTypesOutputBrokerEngineTypesEngineVersions]
}

type AwsMQDescribeBrokerEngineTypesOutputBrokerEngineTypesEngineVersions {
  Name: String
}

input AwsMQDescribeBrokerEngineTypesInput {
  EngineType: String
  MaxResults: Int
  NextToken: String
}

type AwsMQDescribeBrokerInstanceOptionsOutput {
  BrokerInstanceOptions: [AwsMQDescribeBrokerInstanceOptionsOutputBrokerInstanceOptions]
  MaxResults: Int
  NextToken: String
}

type AwsMQDescribeBrokerInstanceOptionsOutputBrokerInstanceOptions {
  AvailabilityZones: [AwsMQDescribeBrokerInstanceOptionsOutputBrokerInstanceOptionsAvailabilityZones]
  EngineType: String
  HostInstanceType: String
  StorageType: String
  SupportedDeploymentModes: [String]
  SupportedEngineVersions: [String]
}

type AwsMQDescribeBrokerInstanceOptionsOutputBrokerInstanceOptionsAvailabilityZones {
  Name: String
}

input AwsMQDescribeBrokerInstanceOptionsInput {
  EngineType: String
  HostInstanceType: String
  MaxResults: Int
  NextToken: String
  StorageType: String
}

type AwsMQDescribeConfigurationOutput {
  Arn: String
  AuthenticationStrategy: String
  Created: Date
  Description: String
  EngineType: String
  EngineVersion: String
  Id: String
  LatestRevision: AwsMQSn
  Name: String
  Tags: JSON
}

input AwsMQDescribeConfigurationInput {
  ConfigurationId: String!
}

type AwsMQDescribeConfigurationRevisionOutput {
  ConfigurationId: String
  Created: Date
  Data: String
  Description: String
}

input AwsMQDescribeConfigurationRevisionInput {
  ConfigurationId: String!
  ConfigurationRevision: String!
}

type AwsMQDescribeUserOutput {
  BrokerId: String
  ConsoleAccess: Boolean
  Groups: [String]
  Pending: AwsMQDescribeUserOutputPending
  Username: String
}

type AwsMQDescribeUserOutputPending {
  ConsoleAccess: Boolean
  Groups: [String]
  PendingChange: String
}

input AwsMQDescribeUserInput {
  BrokerId: String!
  Username: String!
}

type AwsMQListBrokersOutput {
  BrokerSummaries: [AwsMQListBrokersOutputBrokerSummaries]
  NextToken: String
}

type AwsMQListBrokersOutputBrokerSummaries {
  BrokerArn: String
  BrokerId: String
  BrokerName: String
  BrokerState: String
  Created: Date
  DeploymentMode: String
  EngineType: String
  HostInstanceType: String
}

input AwsMQListBrokersInput {
  MaxResults: Int
  NextToken: String
}

type AwsMQListConfigurationRevisionsOutput {
  ConfigurationId: String
  MaxResults: Int
  NextToken: String
  Revisions: [AwsMQSn]
}

input AwsMQListConfigurationRevisionsInput {
  ConfigurationId: String!
  MaxResults: Int
  NextToken: String
}

type AwsMQListConfigurationsOutput {
  Configurations: [AwsMQListConfigurationsOutputConfigurations]
  MaxResults: Int
  NextToken: String
}

type AwsMQListConfigurationsOutputConfigurations {
  Arn: String
  AuthenticationStrategy: String
  Created: Date
  Description: String
  EngineType: String
  EngineVersion: String
  Id: String
  LatestRevision: AwsMQSn
  Name: String
  Tags: JSON
}

input AwsMQListConfigurationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMQListTagsOutput {
  Tags: JSON
}

input AwsMQListTagsInput {
  ResourceArn: String!
}

type AwsMQListUsersOutput {
  BrokerId: String
  MaxResults: Int
  NextToken: String
  Users: [AwsMQS16]
}

input AwsMQListUsersInput {
  BrokerId: String!
  MaxResults: Int
  NextToken: String
}

input AwsMQRebootBrokerInput {
  BrokerId: String!
}

type AwsMQUpdateBrokerOutput {
  AuthenticationStrategy: String
  AutoMinorVersionUpgrade: Boolean
  BrokerId: String
  Configuration: AwsMQS5
  EngineVersion: String
  HostInstanceType: String
  LdapServerMetadata: AwsMQS13
  Logs: AwsMQSc
  SecurityGroups: [String]
}

type AwsMQSc {
  Audit: Boolean
  General: Boolean
}

input AwsMQUpdateBrokerInput {
  AuthenticationStrategy: String
  AutoMinorVersionUpgrade: Boolean
  BrokerId: String!
  Configuration: AwsMQS5Input
  EngineVersion: String
  HostInstanceType: String
  LdapServerMetadata: AwsMQSaInput
  Logs: AwsMQScInput
  SecurityGroups: [String]
}

type AwsMQUpdateConfigurationOutput {
  Arn: String
  Created: Date
  Id: String
  LatestRevision: AwsMQSn
  Name: String
  Warnings: [AwsMQUpdateConfigurationOutputWarnings]
}

type AwsMQUpdateConfigurationOutputWarnings {
  AttributeName: String
  ElementName: String
  Reason: String
}

input AwsMQUpdateConfigurationInput {
  ConfigurationId: String!
  Data: String
  Description: String
}

input AwsMQUpdateUserInput {
  BrokerId: String!
  ConsoleAccess: Boolean
  Groups: [String]
  Password: String
  Username: String!
}

"""Amazon Mechanical Turk (2017-01-17)"""
type AwsMTurk {
  acceptQualificationRequest(input: AwsMTurkAcceptQualificationRequestInput!, config: AwsConfig): JSON
  approveAssignment(input: AwsMTurkApproveAssignmentInput!, config: AwsConfig): JSON
  associateQualificationWithWorker(input: AwsMTurkAssociateQualificationWithWorkerInput!, config: AwsConfig): JSON
  createAdditionalAssignmentsForHIT(input: AwsMTurkCreateAdditionalAssignmentsForHITInput!, config: AwsConfig): JSON
  createHIT(input: AwsMTurkCreateHITInput!, config: AwsConfig): AwsMTurkCreateHITOutput
  createHITType(input: AwsMTurkCreateHITTypeInput!, config: AwsConfig): AwsMTurkCreateHITTypeOutput
  createHITWithHITType(input: AwsMTurkCreateHITWithHITTypeInput!, config: AwsConfig): AwsMTurkCreateHITWithHITTypeOutput
  createQualificationType(input: AwsMTurkCreateQualificationTypeInput!, config: AwsConfig): AwsMTurkCreateQualificationTypeOutput
  createWorkerBlock(input: AwsMTurkCreateWorkerBlockInput!, config: AwsConfig): JSON
  deleteHIT(input: AwsMTurkDeleteHITInput!, config: AwsConfig): JSON
  deleteQualificationType(input: AwsMTurkDeleteQualificationTypeInput!, config: AwsConfig): JSON
  deleteWorkerBlock(input: AwsMTurkDeleteWorkerBlockInput!, config: AwsConfig): JSON
  disassociateQualificationFromWorker(input: AwsMTurkDisassociateQualificationFromWorkerInput!, config: AwsConfig): JSON
  getAccountBalance(input: JSON, config: AwsConfig): AwsMTurkGetAccountBalanceOutput
  getAssignment(input: AwsMTurkGetAssignmentInput!, config: AwsConfig): AwsMTurkGetAssignmentOutput
  getFileUploadURL(input: AwsMTurkGetFileUploadURLInput!, config: AwsConfig): AwsMTurkGetFileUploadURLOutput
  getHIT(input: AwsMTurkGetHITInput!, config: AwsConfig): AwsMTurkGetHITOutput
  getQualificationScore(input: AwsMTurkGetQualificationScoreInput!, config: AwsConfig): AwsMTurkGetQualificationScoreOutput
  getQualificationType(input: AwsMTurkGetQualificationTypeInput!, config: AwsConfig): AwsMTurkGetQualificationTypeOutput
  listAssignmentsForHIT(input: AwsMTurkListAssignmentsForHITInput!, config: AwsConfig): AwsMTurkListAssignmentsForHITOutput
  listBonusPayments(input: AwsMTurkListBonusPaymentsInput, config: AwsConfig): AwsMTurkListBonusPaymentsOutput
  listHITs(input: AwsMTurkListHITsInput, config: AwsConfig): AwsMTurkListHITsOutput
  listHITsForQualificationType(input: AwsMTurkListHITsForQualificationTypeInput!, config: AwsConfig): AwsMTurkListHITsForQualificationTypeOutput
  listQualificationRequests(input: AwsMTurkListQualificationRequestsInput, config: AwsConfig): AwsMTurkListQualificationRequestsOutput
  listQualificationTypes(input: AwsMTurkListQualificationTypesInput!, config: AwsConfig): AwsMTurkListQualificationTypesOutput
  listReviewPolicyResultsForHIT(input: AwsMTurkListReviewPolicyResultsForHITInput!, config: AwsConfig): AwsMTurkListReviewPolicyResultsForHITOutput
  listReviewableHITs(input: AwsMTurkListReviewableHITsInput, config: AwsConfig): AwsMTurkListReviewableHITsOutput
  listWorkerBlocks(input: AwsMTurkListWorkerBlocksInput, config: AwsConfig): AwsMTurkListWorkerBlocksOutput
  listWorkersWithQualificationType(input: AwsMTurkListWorkersWithQualificationTypeInput!, config: AwsConfig): AwsMTurkListWorkersWithQualificationTypeOutput
  notifyWorkers(input: AwsMTurkNotifyWorkersInput!, config: AwsConfig): AwsMTurkNotifyWorkersOutput
  rejectAssignment(input: AwsMTurkRejectAssignmentInput!, config: AwsConfig): JSON
  rejectQualificationRequest(input: AwsMTurkRejectQualificationRequestInput!, config: AwsConfig): JSON
  sendBonus(input: AwsMTurkSendBonusInput!, config: AwsConfig): JSON
  sendTestEventNotification(input: AwsMTurkSendTestEventNotificationInput!, config: AwsConfig): JSON
  updateExpirationForHIT(input: AwsMTurkUpdateExpirationForHITInput!, config: AwsConfig): JSON
  updateHITReviewStatus(input: AwsMTurkUpdateHITReviewStatusInput!, config: AwsConfig): JSON
  updateHITTypeOfHIT(input: AwsMTurkUpdateHITTypeOfHITInput!, config: AwsConfig): JSON
  updateNotificationSettings(input: AwsMTurkUpdateNotificationSettingsInput!, config: AwsConfig): JSON
  updateQualificationType(input: AwsMTurkUpdateQualificationTypeInput!, config: AwsConfig): AwsMTurkUpdateQualificationTypeOutput
}

input AwsMTurkAcceptQualificationRequestInput {
  QualificationRequestId: String!
  IntegerValue: Int
}

input AwsMTurkApproveAssignmentInput {
  AssignmentId: String!
  RequesterFeedback: String
  OverrideRejection: Boolean
}

input AwsMTurkAssociateQualificationWithWorkerInput {
  QualificationTypeId: String!
  WorkerId: String!
  IntegerValue: Int
  SendNotification: Boolean
}

input AwsMTurkCreateAdditionalAssignmentsForHITInput {
  HITId: String!
  NumberOfAdditionalAssignments: Int!
  UniqueRequestToken: String
}

type AwsMTurkCreateHITOutput {
  HIT: AwsMTurkSz
}

type AwsMTurkSz {
  HITId: String
  HITTypeId: String
  HITGroupId: String
  HITLayoutId: String
  CreationTime: Date
  Title: String
  Description: String
  Question: String
  Keywords: String
  HITStatus: String
  MaxAssignments: Int
  Reward: String
  AutoApprovalDelayInSeconds: JSON
  Expiration: Date
  AssignmentDurationInSeconds: JSON
  RequesterAnnotation: String
  QualificationRequirements: [AwsMTurkSi]
  HITReviewStatus: String
  NumberOfAssignmentsPending: Int
  NumberOfAssignmentsAvailable: Int
  NumberOfAssignmentsCompleted: Int
}

type AwsMTurkSi {
  QualificationTypeId: String!
  Comparator: String!
  IntegerValues: [Int]
  LocaleValues: [AwsMTurkSn]
  RequiredToPreview: Boolean
  ActionsGuarded: String
}

type AwsMTurkSn {
  Country: String!
  Subdivision: String
}

input AwsMTurkCreateHITInput {
  MaxAssignments: Int
  AutoApprovalDelayInSeconds: JSON
  LifetimeInSeconds: JSON!
  AssignmentDurationInSeconds: JSON!
  Reward: String!
  Title: String!
  Keywords: String
  Description: String!
  Question: String
  RequesterAnnotation: String
  QualificationRequirements: [AwsMTurkSiInput]
  UniqueRequestToken: String
  AssignmentReviewPolicy: AwsMTurkSqInput
  HITReviewPolicy: AwsMTurkSqInput
  HITLayoutId: String
  HITLayoutParameters: [AwsMTurkSwInput]
}

input AwsMTurkSiInput {
  QualificationTypeId: String!
  Comparator: String!
  IntegerValues: [Int]
  LocaleValues: [AwsMTurkSnInput]
  RequiredToPreview: Boolean
  ActionsGuarded: String
}

input AwsMTurkSnInput {
  Country: String!
  Subdivision: String
}

input AwsMTurkSqInput {
  PolicyName: String!
  Parameters: [AwsMTurkSqParametersInput]
}

input AwsMTurkSqParametersInput {
  Key: String
  Values: [String]
  MapEntries: [AwsMTurkSqParametersMapEntriesInput]
}

input AwsMTurkSqParametersMapEntriesInput {
  Key: String
  Values: [String]
}

input AwsMTurkSwInput {
  Name: String!
  Value: String!
}

type AwsMTurkCreateHITTypeOutput {
  HITTypeId: String
}

input AwsMTurkCreateHITTypeInput {
  AutoApprovalDelayInSeconds: JSON
  AssignmentDurationInSeconds: JSON!
  Reward: String!
  Title: String!
  Keywords: String
  Description: String!
  QualificationRequirements: [AwsMTurkSiInput]
}

type AwsMTurkCreateHITWithHITTypeOutput {
  HIT: AwsMTurkSz
}

input AwsMTurkCreateHITWithHITTypeInput {
  HITTypeId: String!
  MaxAssignments: Int
  LifetimeInSeconds: JSON!
  Question: String
  RequesterAnnotation: String
  UniqueRequestToken: String
  AssignmentReviewPolicy: AwsMTurkSqInput
  HITReviewPolicy: AwsMTurkSqInput
  HITLayoutId: String
  HITLayoutParameters: [AwsMTurkSwInput]
}

type AwsMTurkCreateQualificationTypeOutput {
  QualificationType: AwsMTurkS1a
}

type AwsMTurkS1a {
  QualificationTypeId: String
  CreationTime: Date
  Name: String
  Description: String
  Keywords: String
  QualificationTypeStatus: String
  Test: String
  TestDurationInSeconds: JSON
  AnswerKey: String
  RetryDelayInSeconds: JSON
  IsRequestable: Boolean
  AutoGranted: Boolean
  AutoGrantedValue: Int
}

input AwsMTurkCreateQualificationTypeInput {
  Name: String!
  Keywords: String
  Description: String!
  QualificationTypeStatus: String!
  RetryDelayInSeconds: JSON
  Test: String
  AnswerKey: String
  TestDurationInSeconds: JSON
  AutoGranted: Boolean
  AutoGrantedValue: Int
}

input AwsMTurkCreateWorkerBlockInput {
  WorkerId: String!
  Reason: String!
}

input AwsMTurkDeleteHITInput {
  HITId: String!
}

input AwsMTurkDeleteQualificationTypeInput {
  QualificationTypeId: String!
}

input AwsMTurkDeleteWorkerBlockInput {
  WorkerId: String!
  Reason: String
}

input AwsMTurkDisassociateQualificationFromWorkerInput {
  WorkerId: String!
  QualificationTypeId: String!
  Reason: String
}

type AwsMTurkGetAccountBalanceOutput {
  AvailableBalance: String
  OnHoldBalance: String
}

type AwsMTurkGetAssignmentOutput {
  Assignment: AwsMTurkS1p
  HIT: AwsMTurkSz
}

type AwsMTurkS1p {
  AssignmentId: String
  WorkerId: String
  HITId: String
  AssignmentStatus: String
  AutoApprovalTime: Date
  AcceptTime: Date
  SubmitTime: Date
  ApprovalTime: Date
  RejectionTime: Date
  Deadline: Date
  Answer: String
  RequesterFeedback: String
}

input AwsMTurkGetAssignmentInput {
  AssignmentId: String!
}

type AwsMTurkGetFileUploadURLOutput {
  FileUploadURL: String
}

input AwsMTurkGetFileUploadURLInput {
  AssignmentId: String!
  QuestionIdentifier: String!
}

type AwsMTurkGetHITOutput {
  HIT: AwsMTurkSz
}

input AwsMTurkGetHITInput {
  HITId: String!
}

type AwsMTurkGetQualificationScoreOutput {
  Qualification: AwsMTurkS1x
}

type AwsMTurkS1x {
  QualificationTypeId: String
  WorkerId: String
  GrantTime: Date
  IntegerValue: Int
  LocaleValue: AwsMTurkSn
  Status: String
}

input AwsMTurkGetQualificationScoreInput {
  QualificationTypeId: String!
  WorkerId: String!
}

type AwsMTurkGetQualificationTypeOutput {
  QualificationType: AwsMTurkS1a
}

input AwsMTurkGetQualificationTypeInput {
  QualificationTypeId: String!
}

type AwsMTurkListAssignmentsForHITOutput {
  NextToken: String
  NumResults: Int
  Assignments: [AwsMTurkS1p]
}

input AwsMTurkListAssignmentsForHITInput {
  HITId: String!
  NextToken: String
  MaxResults: Int
  AssignmentStatuses: [String]
}

type AwsMTurkListBonusPaymentsOutput {
  NumResults: Int
  NextToken: String
  BonusPayments: [AwsMTurkListBonusPaymentsOutputBonusPayments]
}

type AwsMTurkListBonusPaymentsOutputBonusPayments {
  WorkerId: String
  BonusAmount: String
  AssignmentId: String
  Reason: String
  GrantTime: Date
}

input AwsMTurkListBonusPaymentsInput {
  HITId: String
  AssignmentId: String
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListHITsOutput {
  NextToken: String
  NumResults: Int
  HITs: [AwsMTurkSz]
}

input AwsMTurkListHITsInput {
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListHITsForQualificationTypeOutput {
  NextToken: String
  NumResults: Int
  HITs: [AwsMTurkSz]
}

input AwsMTurkListHITsForQualificationTypeInput {
  QualificationTypeId: String!
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListQualificationRequestsOutput {
  NumResults: Int
  NextToken: String
  QualificationRequests: [AwsMTurkListQualificationRequestsOutputQualificationRequests]
}

type AwsMTurkListQualificationRequestsOutputQualificationRequests {
  QualificationRequestId: String
  QualificationTypeId: String
  WorkerId: String
  Test: String
  Answer: String
  SubmitTime: Date
}

input AwsMTurkListQualificationRequestsInput {
  QualificationTypeId: String
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListQualificationTypesOutput {
  NumResults: Int
  NextToken: String
  QualificationTypes: [AwsMTurkS1a]
}

input AwsMTurkListQualificationTypesInput {
  Query: String
  MustBeRequestable: Boolean!
  MustBeOwnedByCaller: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListReviewPolicyResultsForHITOutput {
  HITId: String
  AssignmentReviewPolicy: AwsMTurkSq
  HITReviewPolicy: AwsMTurkSq
  AssignmentReviewReport: AwsMTurkS2r
  HITReviewReport: AwsMTurkS2r
  NextToken: String
}

type AwsMTurkSq {
  PolicyName: String!
  Parameters: [AwsMTurkSqParameters]
}

type AwsMTurkSqParameters {
  Key: String
  Values: [String]
  MapEntries: [AwsMTurkSqParametersMapEntries]
}

type AwsMTurkSqParametersMapEntries {
  Key: String
  Values: [String]
}

type AwsMTurkS2r {
  ReviewResults: [AwsMTurkS2rReviewResults]
  ReviewActions: [AwsMTurkS2rReviewActions]
}

type AwsMTurkS2rReviewResults {
  ActionId: String
  SubjectId: String
  SubjectType: String
  QuestionId: String
  Key: String
  Value: String
}

type AwsMTurkS2rReviewActions {
  ActionId: String
  ActionName: String
  TargetId: String
  TargetType: String
  Status: String
  CompleteTime: Date
  Result: String
  ErrorCode: String
}

input AwsMTurkListReviewPolicyResultsForHITInput {
  HITId: String!
  PolicyLevels: [String]
  RetrieveActions: Boolean
  RetrieveResults: Boolean
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListReviewableHITsOutput {
  NextToken: String
  NumResults: Int
  HITs: [AwsMTurkSz]
}

input AwsMTurkListReviewableHITsInput {
  HITTypeId: String
  Status: String
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListWorkerBlocksOutput {
  NextToken: String
  NumResults: Int
  WorkerBlocks: [AwsMTurkListWorkerBlocksOutputWorkerBlocks]
}

type AwsMTurkListWorkerBlocksOutputWorkerBlocks {
  WorkerId: String
  Reason: String
}

input AwsMTurkListWorkerBlocksInput {
  NextToken: String
  MaxResults: Int
}

type AwsMTurkListWorkersWithQualificationTypeOutput {
  NextToken: String
  NumResults: Int
  Qualifications: [AwsMTurkS1x]
}

input AwsMTurkListWorkersWithQualificationTypeInput {
  QualificationTypeId: String!
  Status: String
  NextToken: String
  MaxResults: Int
}

type AwsMTurkNotifyWorkersOutput {
  NotifyWorkersFailureStatuses: [AwsMTurkNotifyWorkersOutputNotifyWorkersFailureStatuses]
}

type AwsMTurkNotifyWorkersOutputNotifyWorkersFailureStatuses {
  NotifyWorkersFailureCode: String
  NotifyWorkersFailureMessage: String
  WorkerId: String
}

input AwsMTurkNotifyWorkersInput {
  Subject: String!
  MessageText: String!
  WorkerIds: [String]!
}

input AwsMTurkRejectAssignmentInput {
  AssignmentId: String!
  RequesterFeedback: String!
}

input AwsMTurkRejectQualificationRequestInput {
  QualificationRequestId: String!
  Reason: String
}

input AwsMTurkSendBonusInput {
  WorkerId: String!
  BonusAmount: String!
  AssignmentId: String!
  Reason: String!
  UniqueRequestToken: String
}

input AwsMTurkSendTestEventNotificationInput {
  Notification: AwsMTurkS3kInput!
  TestEventType: String!
}

input AwsMTurkS3kInput {
  Destination: String!
  Transport: String!
  Version: String!
  EventTypes: [String]!
}

input AwsMTurkUpdateExpirationForHITInput {
  HITId: String!
  ExpireAt: Date!
}

input AwsMTurkUpdateHITReviewStatusInput {
  HITId: String!
  Revert: Boolean
}

input AwsMTurkUpdateHITTypeOfHITInput {
  HITId: String!
  HITTypeId: String!
}

input AwsMTurkUpdateNotificationSettingsInput {
  HITTypeId: String!
  Notification: AwsMTurkS3kInput
  Active: Boolean
}

type AwsMTurkUpdateQualificationTypeOutput {
  QualificationType: AwsMTurkS1a
}

input AwsMTurkUpdateQualificationTypeInput {
  QualificationTypeId: String!
  Description: String
  QualificationTypeStatus: String
  Test: String
  AnswerKey: String
  TestDurationInSeconds: JSON
  RetryDelayInSeconds: JSON
  AutoGranted: Boolean
  AutoGrantedValue: Int
}

"""AmazonMWAA (2020-07-01)"""
type AwsMWAA {
  createCliToken(input: AwsMWAACreateCliTokenInput!, config: AwsConfig): AwsMWAACreateCliTokenOutput
  createEnvironment(input: AwsMWAACreateEnvironmentInput!, config: AwsConfig): AwsMWAACreateEnvironmentOutput
  createWebLoginToken(input: AwsMWAACreateWebLoginTokenInput!, config: AwsConfig): AwsMWAACreateWebLoginTokenOutput
  deleteEnvironment(input: AwsMWAADeleteEnvironmentInput!, config: AwsConfig): JSON
  getEnvironment(input: AwsMWAAGetEnvironmentInput!, config: AwsConfig): AwsMWAAGetEnvironmentOutput
  listEnvironments(input: AwsMWAAListEnvironmentsInput, config: AwsConfig): AwsMWAAListEnvironmentsOutput
  listTagsForResource(input: AwsMWAAListTagsForResourceInput!, config: AwsConfig): AwsMWAAListTagsForResourceOutput
  publishMetrics(input: AwsMWAAPublishMetricsInput!, config: AwsConfig): JSON
  tagResource(input: AwsMWAATagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMWAAUntagResourceInput!, config: AwsConfig): JSON
  updateEnvironment(input: AwsMWAAUpdateEnvironmentInput!, config: AwsConfig): AwsMWAAUpdateEnvironmentOutput
}

type AwsMWAACreateCliTokenOutput {
  CliToken: String
  WebServerHostname: String
}

input AwsMWAACreateCliTokenInput {
  Name: String!
}

type AwsMWAACreateEnvironmentOutput {
  Arn: String
}

input AwsMWAACreateEnvironmentInput {
  AirflowConfigurationOptions: JSON
  AirflowVersion: String
  DagS3Path: String!
  EnvironmentClass: String
  ExecutionRoleArn: String!
  KmsKey: String
  LoggingConfiguration: AwsMWAASfInput
  MaxWorkers: Int
  MinWorkers: Int
  Name: String!
  NetworkConfiguration: AwsMWAASlInput!
  PluginsS3ObjectVersion: String
  PluginsS3Path: String
  RequirementsS3ObjectVersion: String
  RequirementsS3Path: String
  Schedulers: Int
  SourceBucketArn: String!
  Tags: JSON
  WebserverAccessMode: String
  WeeklyMaintenanceWindowStart: String
}

input AwsMWAASfInput {
  DagProcessingLogs: AwsMWAASgInput
  SchedulerLogs: AwsMWAASgInput
  TaskLogs: AwsMWAASgInput
  WebserverLogs: AwsMWAASgInput
  WorkerLogs: AwsMWAASgInput
}

input AwsMWAASgInput {
  Enabled: Boolean!
  LogLevel: String!
}

input AwsMWAASlInput {
  SecurityGroupIds: [String]
  SubnetIds: [String]
}

type AwsMWAACreateWebLoginTokenOutput {
  WebServerHostname: String
  WebToken: String
}

input AwsMWAACreateWebLoginTokenInput {
  Name: String!
}

input AwsMWAADeleteEnvironmentInput {
  Name: String!
}

type AwsMWAAGetEnvironmentOutput {
  Environment: AwsMWAAGetEnvironmentOutputEnvironment
}

type AwsMWAAGetEnvironmentOutputEnvironment {
  AirflowConfigurationOptions: JSON
  AirflowVersion: String
  Arn: String
  CreatedAt: Date
  DagS3Path: String
  EnvironmentClass: String
  ExecutionRoleArn: String
  KmsKey: String
  LastUpdate: AwsMWAAGetEnvironmentOutputEnvironmentLastUpdate
  LoggingConfiguration: AwsMWAAGetEnvironmentOutputEnvironmentLoggingConfiguration
  MaxWorkers: Int
  MinWorkers: Int
  Name: String
  NetworkConfiguration: AwsMWAASl
  PluginsS3ObjectVersion: String
  PluginsS3Path: String
  RequirementsS3ObjectVersion: String
  RequirementsS3Path: String
  Schedulers: Int
  ServiceRoleArn: String
  SourceBucketArn: String
  Status: String
  Tags: JSON
  WebserverAccessMode: String
  WebserverUrl: String
  WeeklyMaintenanceWindowStart: String
}

type AwsMWAAGetEnvironmentOutputEnvironmentLastUpdate {
  CreatedAt: Date
  Error: AwsMWAAGetEnvironmentOutputEnvironmentLastUpdateError
  Status: String
}

type AwsMWAAGetEnvironmentOutputEnvironmentLastUpdateError {
  ErrorCode: String
  ErrorMessage: String
}

type AwsMWAAGetEnvironmentOutputEnvironmentLoggingConfiguration {
  DagProcessingLogs: AwsMWAAS1h
  SchedulerLogs: AwsMWAAS1h
  TaskLogs: AwsMWAAS1h
  WebserverLogs: AwsMWAAS1h
  WorkerLogs: AwsMWAAS1h
}

type AwsMWAAS1h {
  CloudWatchLogGroupArn: String
  Enabled: Boolean
  LogLevel: String
}

type AwsMWAASl {
  SecurityGroupIds: [String]
  SubnetIds: [String]
}

input AwsMWAAGetEnvironmentInput {
  Name: String!
}

type AwsMWAAListEnvironmentsOutput {
  Environments: [String]!
  NextToken: String
}

input AwsMWAAListEnvironmentsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMWAAListTagsForResourceOutput {
  Tags: JSON
}

input AwsMWAAListTagsForResourceInput {
  ResourceArn: String!
}

input AwsMWAAPublishMetricsInput {
  EnvironmentName: String!
  MetricData: [AwsMWAAPublishMetricsMetricDataInput]!
}

input AwsMWAAPublishMetricsMetricDataInput {
  Dimensions: [AwsMWAAPublishMetricsMetricDataDimensionsInput]
  MetricName: String!
  StatisticValues: AwsMWAAPublishMetricsMetricDataStatisticValuesInput
  Timestamp: Date!
  Unit: String
  Value: JSON
}

input AwsMWAAPublishMetricsMetricDataDimensionsInput {
  Name: String!
  Value: String!
}

input AwsMWAAPublishMetricsMetricDataStatisticValuesInput {
  Maximum: JSON
  Minimum: JSON
  SampleCount: Int
  Sum: JSON
}

input AwsMWAATagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsMWAAUntagResourceInput {
  ResourceArn: String!
  tagKeys: [String]!
}

type AwsMWAAUpdateEnvironmentOutput {
  Arn: String
}

input AwsMWAAUpdateEnvironmentInput {
  AirflowConfigurationOptions: JSON
  AirflowVersion: String
  DagS3Path: String
  EnvironmentClass: String
  ExecutionRoleArn: String
  LoggingConfiguration: AwsMWAASfInput
  MaxWorkers: Int
  MinWorkers: Int
  Name: String!
  NetworkConfiguration: AwsMWAAUpdateEnvironmentNetworkConfigurationInput
  PluginsS3ObjectVersion: String
  PluginsS3Path: String
  RequirementsS3ObjectVersion: String
  RequirementsS3Path: String
  Schedulers: Int
  SourceBucketArn: String
  WebserverAccessMode: String
  WeeklyMaintenanceWindowStart: String
}

input AwsMWAAUpdateEnvironmentNetworkConfigurationInput {
  SecurityGroupIds: [String]!
}

"""Amazon Machine Learning (2014-12-12)"""
type AwsMachineLearning {
  addTags(input: AwsMachineLearningAddTagsInput!, config: AwsConfig): AwsMachineLearningAddTagsOutput
  createBatchPrediction(input: AwsMachineLearningCreateBatchPredictionInput!, config: AwsConfig): AwsMachineLearningCreateBatchPredictionOutput
  createDataSourceFromRDS(input: AwsMachineLearningCreateDataSourceFromRDSInput!, config: AwsConfig): AwsMachineLearningCreateDataSourceFromRDSOutput
  createDataSourceFromRedshift(input: AwsMachineLearningCreateDataSourceFromRedshiftInput!, config: AwsConfig): AwsMachineLearningCreateDataSourceFromRedshiftOutput
  createDataSourceFromS3(input: AwsMachineLearningCreateDataSourceFromS3Input!, config: AwsConfig): AwsMachineLearningCreateDataSourceFromS3Output
  createEvaluation(input: AwsMachineLearningCreateEvaluationInput!, config: AwsConfig): AwsMachineLearningCreateEvaluationOutput
  createMLModel(input: AwsMachineLearningCreateMLModelInput!, config: AwsConfig): AwsMachineLearningCreateMLModelOutput
  createRealtimeEndpoint(input: AwsMachineLearningCreateRealtimeEndpointInput!, config: AwsConfig): AwsMachineLearningCreateRealtimeEndpointOutput
  deleteBatchPrediction(input: AwsMachineLearningDeleteBatchPredictionInput!, config: AwsConfig): AwsMachineLearningDeleteBatchPredictionOutput
  deleteDataSource(input: AwsMachineLearningDeleteDataSourceInput!, config: AwsConfig): AwsMachineLearningDeleteDataSourceOutput
  deleteEvaluation(input: AwsMachineLearningDeleteEvaluationInput!, config: AwsConfig): AwsMachineLearningDeleteEvaluationOutput
  deleteMLModel(input: AwsMachineLearningDeleteMLModelInput!, config: AwsConfig): AwsMachineLearningDeleteMLModelOutput
  deleteRealtimeEndpoint(input: AwsMachineLearningDeleteRealtimeEndpointInput!, config: AwsConfig): AwsMachineLearningDeleteRealtimeEndpointOutput
  deleteTags(input: AwsMachineLearningDeleteTagsInput!, config: AwsConfig): AwsMachineLearningDeleteTagsOutput
  describeBatchPredictions(input: AwsMachineLearningDescribeBatchPredictionsInput, config: AwsConfig): AwsMachineLearningDescribeBatchPredictionsOutput
  describeDataSources(input: AwsMachineLearningDescribeDataSourcesInput, config: AwsConfig): AwsMachineLearningDescribeDataSourcesOutput
  describeEvaluations(input: AwsMachineLearningDescribeEvaluationsInput, config: AwsConfig): AwsMachineLearningDescribeEvaluationsOutput
  describeMLModels(input: AwsMachineLearningDescribeMLModelsInput, config: AwsConfig): AwsMachineLearningDescribeMLModelsOutput
  describeTags(input: AwsMachineLearningDescribeTagsInput!, config: AwsConfig): AwsMachineLearningDescribeTagsOutput
  getBatchPrediction(input: AwsMachineLearningGetBatchPredictionInput!, config: AwsConfig): AwsMachineLearningGetBatchPredictionOutput
  getDataSource(input: AwsMachineLearningGetDataSourceInput!, config: AwsConfig): AwsMachineLearningGetDataSourceOutput
  getEvaluation(input: AwsMachineLearningGetEvaluationInput!, config: AwsConfig): AwsMachineLearningGetEvaluationOutput
  getMLModel(input: AwsMachineLearningGetMLModelInput!, config: AwsConfig): AwsMachineLearningGetMLModelOutput
  predict(input: AwsMachineLearningPredictInput!, config: AwsConfig): AwsMachineLearningPredictOutput
  updateBatchPrediction(input: AwsMachineLearningUpdateBatchPredictionInput!, config: AwsConfig): AwsMachineLearningUpdateBatchPredictionOutput
  updateDataSource(input: AwsMachineLearningUpdateDataSourceInput!, config: AwsConfig): AwsMachineLearningUpdateDataSourceOutput
  updateEvaluation(input: AwsMachineLearningUpdateEvaluationInput!, config: AwsConfig): AwsMachineLearningUpdateEvaluationOutput
  updateMLModel(input: AwsMachineLearningUpdateMLModelInput!, config: AwsConfig): AwsMachineLearningUpdateMLModelOutput
}

type AwsMachineLearningAddTagsOutput {
  ResourceId: String
  ResourceType: String
}

input AwsMachineLearningAddTagsInput {
  Tags: [AwsMachineLearningS2Input]!
  ResourceId: String!
  ResourceType: String!
}

input AwsMachineLearningS2Input {
  Key: String
  Value: String
}

type AwsMachineLearningCreateBatchPredictionOutput {
  BatchPredictionId: String
}

input AwsMachineLearningCreateBatchPredictionInput {
  BatchPredictionId: String!
  BatchPredictionName: String
  MLModelId: String!
  BatchPredictionDataSourceId: String!
  OutputUri: String!
}

type AwsMachineLearningCreateDataSourceFromRDSOutput {
  DataSourceId: String
}

input AwsMachineLearningCreateDataSourceFromRDSInput {
  DataSourceId: String!
  DataSourceName: String
  RDSData: AwsMachineLearningCreateDataSourceFromRDSRDSDataInput!
  RoleARN: String!
  ComputeStatistics: Boolean
}

input AwsMachineLearningCreateDataSourceFromRDSRDSDataInput {
  DatabaseInformation: AwsMachineLearningSfInput!
  SelectSqlQuery: String!
  DatabaseCredentials: AwsMachineLearningCreateDataSourceFromRDSRDSDataDatabaseCredentialsInput!
  S3StagingLocation: String!
  DataRearrangement: String
  DataSchema: String
  DataSchemaUri: String
  ResourceRole: String!
  ServiceRole: String!
  SubnetId: String!
  SecurityGroupIds: [String]!
}

input AwsMachineLearningSfInput {
  InstanceIdentifier: String!
  DatabaseName: String!
}

input AwsMachineLearningCreateDataSourceFromRDSRDSDataDatabaseCredentialsInput {
  Username: String!
  Password: String!
}

type AwsMachineLearningCreateDataSourceFromRedshiftOutput {
  DataSourceId: String
}

input AwsMachineLearningCreateDataSourceFromRedshiftInput {
  DataSourceId: String!
  DataSourceName: String
  DataSpec: AwsMachineLearningCreateDataSourceFromRedshiftDataSpecInput!
  RoleARN: String!
  ComputeStatistics: Boolean
}

input AwsMachineLearningCreateDataSourceFromRedshiftDataSpecInput {
  DatabaseInformation: AwsMachineLearningSyInput!
  SelectSqlQuery: String!
  DatabaseCredentials: AwsMachineLearningCreateDataSourceFromRedshiftDataSpecDatabaseCredentialsInput!
  S3StagingLocation: String!
  DataRearrangement: String
  DataSchema: String
  DataSchemaUri: String
}

input AwsMachineLearningSyInput {
  DatabaseName: String!
  ClusterIdentifier: String!
}

input AwsMachineLearningCreateDataSourceFromRedshiftDataSpecDatabaseCredentialsInput {
  Username: String!
  Password: String!
}

type AwsMachineLearningCreateDataSourceFromS3Output {
  DataSourceId: String
}

input AwsMachineLearningCreateDataSourceFromS3Input {
  DataSourceId: String!
  DataSourceName: String
  DataSpec: AwsMachineLearningCreateDataSourceFromS3DataSpecInput!
  ComputeStatistics: Boolean
}

input AwsMachineLearningCreateDataSourceFromS3DataSpecInput {
  DataLocationS3: String!
  DataRearrangement: String
  DataSchema: String
  DataSchemaLocationS3: String
}

type AwsMachineLearningCreateEvaluationOutput {
  EvaluationId: String
}

input AwsMachineLearningCreateEvaluationInput {
  EvaluationId: String!
  EvaluationName: String
  MLModelId: String!
  EvaluationDataSourceId: String!
}

type AwsMachineLearningCreateMLModelOutput {
  MLModelId: String
}

input AwsMachineLearningCreateMLModelInput {
  MLModelId: String!
  MLModelName: String
  MLModelType: String!
  Parameters: JSON
  TrainingDataSourceId: String!
  Recipe: String
  RecipeUri: String
}

type AwsMachineLearningCreateRealtimeEndpointOutput {
  MLModelId: String
  RealtimeEndpointInfo: AwsMachineLearningS1j
}

type AwsMachineLearningS1j {
  PeakRequestsPerSecond: Int
  CreatedAt: Date
  EndpointUrl: String
  EndpointStatus: String
}

input AwsMachineLearningCreateRealtimeEndpointInput {
  MLModelId: String!
}

type AwsMachineLearningDeleteBatchPredictionOutput {
  BatchPredictionId: String
}

input AwsMachineLearningDeleteBatchPredictionInput {
  BatchPredictionId: String!
}

type AwsMachineLearningDeleteDataSourceOutput {
  DataSourceId: String
}

input AwsMachineLearningDeleteDataSourceInput {
  DataSourceId: String!
}

type AwsMachineLearningDeleteEvaluationOutput {
  EvaluationId: String
}

input AwsMachineLearningDeleteEvaluationInput {
  EvaluationId: String!
}

type AwsMachineLearningDeleteMLModelOutput {
  MLModelId: String
}

input AwsMachineLearningDeleteMLModelInput {
  MLModelId: String!
}

type AwsMachineLearningDeleteRealtimeEndpointOutput {
  MLModelId: String
  RealtimeEndpointInfo: AwsMachineLearningS1j
}

input AwsMachineLearningDeleteRealtimeEndpointInput {
  MLModelId: String!
}

type AwsMachineLearningDeleteTagsOutput {
  ResourceId: String
  ResourceType: String
}

input AwsMachineLearningDeleteTagsInput {
  TagKeys: [String]!
  ResourceId: String!
  ResourceType: String!
}

type AwsMachineLearningDescribeBatchPredictionsOutput {
  Results: [AwsMachineLearningDescribeBatchPredictionsOutputResults]
  NextToken: String
}

type AwsMachineLearningDescribeBatchPredictionsOutputResults {
  BatchPredictionId: String
  MLModelId: String
  BatchPredictionDataSourceId: String
  InputDataLocationS3: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  OutputUri: String
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
  TotalRecordCount: JSON
  InvalidRecordCount: JSON
}

input AwsMachineLearningDescribeBatchPredictionsInput {
  FilterVariable: String
  EQ: String
  GT: String
  LT: String
  GE: String
  LE: String
  NE: String
  Prefix: String
  SortOrder: String
  NextToken: String
  Limit: Int
}

type AwsMachineLearningDescribeDataSourcesOutput {
  Results: [AwsMachineLearningDescribeDataSourcesOutputResults]
  NextToken: String
}

type AwsMachineLearningDescribeDataSourcesOutputResults {
  DataSourceId: String
  DataLocationS3: String
  DataRearrangement: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  DataSizeInBytes: JSON
  NumberOfFiles: JSON
  Name: String
  Status: String
  Message: String
  RedshiftMetadata: AwsMachineLearningS2i
  RDSMetadata: AwsMachineLearningS2j
  RoleARN: String
  ComputeStatistics: Boolean
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
}

type AwsMachineLearningS2i {
  RedshiftDatabase: AwsMachineLearningSy
  DatabaseUserName: String
  SelectSqlQuery: String
}

type AwsMachineLearningSy {
  DatabaseName: String!
  ClusterIdentifier: String!
}

type AwsMachineLearningS2j {
  Database: AwsMachineLearningSf
  DatabaseUserName: String
  SelectSqlQuery: String
  ResourceRole: String
  ServiceRole: String
  DataPipelineId: String
}

type AwsMachineLearningSf {
  InstanceIdentifier: String!
  DatabaseName: String!
}

input AwsMachineLearningDescribeDataSourcesInput {
  FilterVariable: String
  EQ: String
  GT: String
  LT: String
  GE: String
  LE: String
  NE: String
  Prefix: String
  SortOrder: String
  NextToken: String
  Limit: Int
}

type AwsMachineLearningDescribeEvaluationsOutput {
  Results: [AwsMachineLearningDescribeEvaluationsOutputResults]
  NextToken: String
}

type AwsMachineLearningDescribeEvaluationsOutputResults {
  EvaluationId: String
  MLModelId: String
  EvaluationDataSourceId: String
  InputDataLocationS3: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  PerformanceMetrics: AwsMachineLearningS2q
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
}

type AwsMachineLearningS2q {
  Properties: JSON
}

input AwsMachineLearningDescribeEvaluationsInput {
  FilterVariable: String
  EQ: String
  GT: String
  LT: String
  GE: String
  LE: String
  NE: String
  Prefix: String
  SortOrder: String
  NextToken: String
  Limit: Int
}

type AwsMachineLearningDescribeMLModelsOutput {
  Results: [AwsMachineLearningDescribeMLModelsOutputResults]
  NextToken: String
}

type AwsMachineLearningDescribeMLModelsOutputResults {
  MLModelId: String
  TrainingDataSourceId: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  SizeInBytes: JSON
  EndpointInfo: AwsMachineLearningS1j
  TrainingParameters: JSON
  InputDataLocationS3: String
  Algorithm: String
  MLModelType: String
  ScoreThreshold: Float
  ScoreThresholdLastUpdatedAt: Date
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
}

input AwsMachineLearningDescribeMLModelsInput {
  FilterVariable: String
  EQ: String
  GT: String
  LT: String
  GE: String
  LE: String
  NE: String
  Prefix: String
  SortOrder: String
  NextToken: String
  Limit: Int
}

type AwsMachineLearningDescribeTagsOutput {
  ResourceId: String
  ResourceType: String
  Tags: [AwsMachineLearningS2]
}

type AwsMachineLearningS2 {
  Key: String
  Value: String
}

input AwsMachineLearningDescribeTagsInput {
  ResourceId: String!
  ResourceType: String!
}

type AwsMachineLearningGetBatchPredictionOutput {
  BatchPredictionId: String
  MLModelId: String
  BatchPredictionDataSourceId: String
  InputDataLocationS3: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  OutputUri: String
  LogUri: String
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
  TotalRecordCount: JSON
  InvalidRecordCount: JSON
}

input AwsMachineLearningGetBatchPredictionInput {
  BatchPredictionId: String!
}

type AwsMachineLearningGetDataSourceOutput {
  DataSourceId: String
  DataLocationS3: String
  DataRearrangement: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  DataSizeInBytes: JSON
  NumberOfFiles: JSON
  Name: String
  Status: String
  LogUri: String
  Message: String
  RedshiftMetadata: AwsMachineLearningS2i
  RDSMetadata: AwsMachineLearningS2j
  RoleARN: String
  ComputeStatistics: Boolean
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
  DataSourceSchema: String
}

input AwsMachineLearningGetDataSourceInput {
  DataSourceId: String!
  Verbose: Boolean
}

type AwsMachineLearningGetEvaluationOutput {
  EvaluationId: String
  MLModelId: String
  EvaluationDataSourceId: String
  InputDataLocationS3: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  PerformanceMetrics: AwsMachineLearningS2q
  LogUri: String
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
}

input AwsMachineLearningGetEvaluationInput {
  EvaluationId: String!
}

type AwsMachineLearningGetMLModelOutput {
  MLModelId: String
  TrainingDataSourceId: String
  CreatedByIamUser: String
  CreatedAt: Date
  LastUpdatedAt: Date
  Name: String
  Status: String
  SizeInBytes: JSON
  EndpointInfo: AwsMachineLearningS1j
  TrainingParameters: JSON
  InputDataLocationS3: String
  MLModelType: String
  ScoreThreshold: Float
  ScoreThresholdLastUpdatedAt: Date
  LogUri: String
  Message: String
  ComputeTime: JSON
  FinishedAt: Date
  StartedAt: Date
  Recipe: String
  Schema: String
}

input AwsMachineLearningGetMLModelInput {
  MLModelId: String!
  Verbose: Boolean
}

type AwsMachineLearningPredictOutput {
  Prediction: AwsMachineLearningPredictOutputPrediction
}

type AwsMachineLearningPredictOutputPrediction {
  predictedLabel: String
  predictedValue: Float
  predictedScores: JSON
  details: JSON
}

input AwsMachineLearningPredictInput {
  MLModelId: String!
  Record: JSON!
  PredictEndpoint: String!
}

type AwsMachineLearningUpdateBatchPredictionOutput {
  BatchPredictionId: String
}

input AwsMachineLearningUpdateBatchPredictionInput {
  BatchPredictionId: String!
  BatchPredictionName: String!
}

type AwsMachineLearningUpdateDataSourceOutput {
  DataSourceId: String
}

input AwsMachineLearningUpdateDataSourceInput {
  DataSourceId: String!
  DataSourceName: String!
}

type AwsMachineLearningUpdateEvaluationOutput {
  EvaluationId: String
}

input AwsMachineLearningUpdateEvaluationInput {
  EvaluationId: String!
  EvaluationName: String!
}

type AwsMachineLearningUpdateMLModelOutput {
  MLModelId: String
}

input AwsMachineLearningUpdateMLModelInput {
  MLModelId: String!
  MLModelName: String
  ScoreThreshold: Float
}

"""Amazon Macie (2017-12-19)"""
type AwsMacie {
  associateMemberAccount(input: AwsMacieAssociateMemberAccountInput!, config: AwsConfig): JSON
  associateS3Resources(input: AwsMacieAssociateS3ResourcesInput!, config: AwsConfig): AwsMacieAssociateS3ResourcesOutput
  disassociateMemberAccount(input: AwsMacieDisassociateMemberAccountInput!, config: AwsConfig): JSON
  disassociateS3Resources(input: AwsMacieDisassociateS3ResourcesInput!, config: AwsConfig): AwsMacieDisassociateS3ResourcesOutput
  listMemberAccounts(input: AwsMacieListMemberAccountsInput, config: AwsConfig): AwsMacieListMemberAccountsOutput
  listS3Resources(input: AwsMacieListS3ResourcesInput, config: AwsConfig): AwsMacieListS3ResourcesOutput
  updateS3Resources(input: AwsMacieUpdateS3ResourcesInput!, config: AwsConfig): AwsMacieUpdateS3ResourcesOutput
}

input AwsMacieAssociateMemberAccountInput {
  memberAccountId: String!
}

type AwsMacieAssociateS3ResourcesOutput {
  failedS3Resources: [AwsMacieSc]
}

type AwsMacieSc {
  failedItem: AwsMacieSe
  errorCode: String
  errorMessage: String
}

type AwsMacieSe {
  bucketName: String!
  prefix: String
}

input AwsMacieAssociateS3ResourcesInput {
  memberAccountId: String
  s3Resources: [AwsMacieS4Input]!
}

input AwsMacieS4Input {
  bucketName: String!
  prefix: String
  classificationType: AwsMacieS4ClassificationTypeInput!
}

input AwsMacieS4ClassificationTypeInput {
  oneTime: String!
  continuous: String!
}

input AwsMacieDisassociateMemberAccountInput {
  memberAccountId: String!
}

type AwsMacieDisassociateS3ResourcesOutput {
  failedS3Resources: [AwsMacieSc]
}

input AwsMacieDisassociateS3ResourcesInput {
  memberAccountId: String
  associatedS3Resources: [AwsMacieSeInput]!
}

input AwsMacieSeInput {
  bucketName: String!
  prefix: String
}

type AwsMacieListMemberAccountsOutput {
  memberAccounts: [AwsMacieListMemberAccountsOutputMemberAccounts]
  nextToken: String
}

type AwsMacieListMemberAccountsOutputMemberAccounts {
  accountId: String
}

input AwsMacieListMemberAccountsInput {
  nextToken: String
  maxResults: Int
}

type AwsMacieListS3ResourcesOutput {
  s3Resources: [AwsMacieS4]
  nextToken: String
}

type AwsMacieS4 {
  bucketName: String!
  prefix: String
  classificationType: AwsMacieS4ClassificationType!
}

type AwsMacieS4ClassificationType {
  oneTime: String!
  continuous: String!
}

input AwsMacieListS3ResourcesInput {
  memberAccountId: String
  nextToken: String
  maxResults: Int
}

type AwsMacieUpdateS3ResourcesOutput {
  failedS3Resources: [AwsMacieSc]
}

input AwsMacieUpdateS3ResourcesInput {
  memberAccountId: String
  s3ResourcesUpdate: [AwsMacieUpdateS3ResourcesS3ResourcesUpdateInput]!
}

input AwsMacieUpdateS3ResourcesS3ResourcesUpdateInput {
  bucketName: String!
  prefix: String
  classificationTypeUpdate: AwsMacieUpdateS3ResourcesS3ResourcesUpdateClassificationTypeUpdateInput!
}

input AwsMacieUpdateS3ResourcesS3ResourcesUpdateClassificationTypeUpdateInput {
  oneTime: String
  continuous: String
}

"""Amazon Macie 2 (2020-01-01)"""
type AwsMacie2 {
  acceptInvitation(input: AwsMacie2AcceptInvitationInput!, config: AwsConfig): JSON
  batchGetCustomDataIdentifiers(input: AwsMacie2BatchGetCustomDataIdentifiersInput, config: AwsConfig): AwsMacie2BatchGetCustomDataIdentifiersOutput
  createClassificationJob(input: AwsMacie2CreateClassificationJobInput!, config: AwsConfig): AwsMacie2CreateClassificationJobOutput
  createCustomDataIdentifier(input: AwsMacie2CreateCustomDataIdentifierInput, config: AwsConfig): AwsMacie2CreateCustomDataIdentifierOutput
  createFindingsFilter(input: AwsMacie2CreateFindingsFilterInput!, config: AwsConfig): AwsMacie2CreateFindingsFilterOutput
  createInvitations(input: AwsMacie2CreateInvitationsInput!, config: AwsConfig): AwsMacie2CreateInvitationsOutput
  createMember(input: AwsMacie2CreateMemberInput!, config: AwsConfig): AwsMacie2CreateMemberOutput
  createSampleFindings(input: AwsMacie2CreateSampleFindingsInput, config: AwsConfig): JSON
  declineInvitations(input: AwsMacie2DeclineInvitationsInput!, config: AwsConfig): AwsMacie2DeclineInvitationsOutput
  deleteCustomDataIdentifier(input: AwsMacie2DeleteCustomDataIdentifierInput!, config: AwsConfig): JSON
  deleteFindingsFilter(input: AwsMacie2DeleteFindingsFilterInput!, config: AwsConfig): JSON
  deleteInvitations(input: AwsMacie2DeleteInvitationsInput!, config: AwsConfig): AwsMacie2DeleteInvitationsOutput
  deleteMember(input: AwsMacie2DeleteMemberInput!, config: AwsConfig): JSON
  describeBuckets(input: AwsMacie2DescribeBucketsInput, config: AwsConfig): AwsMacie2DescribeBucketsOutput
  describeClassificationJob(input: AwsMacie2DescribeClassificationJobInput!, config: AwsConfig): AwsMacie2DescribeClassificationJobOutput
  describeOrganizationConfiguration(input: JSON, config: AwsConfig): AwsMacie2DescribeOrganizationConfigurationOutput
  disableMacie(input: JSON, config: AwsConfig): JSON
  disableOrganizationAdminAccount(input: AwsMacie2DisableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  disassociateFromAdministratorAccount(input: JSON, config: AwsConfig): JSON
  disassociateFromMasterAccount(input: JSON, config: AwsConfig): JSON
  disassociateMember(input: AwsMacie2DisassociateMemberInput!, config: AwsConfig): JSON
  enableMacie(input: AwsMacie2EnableMacieInput, config: AwsConfig): JSON
  enableOrganizationAdminAccount(input: AwsMacie2EnableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  getAdministratorAccount(input: JSON, config: AwsConfig): AwsMacie2GetAdministratorAccountOutput
  getBucketStatistics(input: AwsMacie2GetBucketStatisticsInput, config: AwsConfig): AwsMacie2GetBucketStatisticsOutput
  getClassificationExportConfiguration(input: JSON, config: AwsConfig): AwsMacie2GetClassificationExportConfigurationOutput
  getCustomDataIdentifier(input: AwsMacie2GetCustomDataIdentifierInput!, config: AwsConfig): AwsMacie2GetCustomDataIdentifierOutput
  getFindingStatistics(input: AwsMacie2GetFindingStatisticsInput!, config: AwsConfig): AwsMacie2GetFindingStatisticsOutput
  getFindings(input: AwsMacie2GetFindingsInput!, config: AwsConfig): AwsMacie2GetFindingsOutput
  getFindingsFilter(input: AwsMacie2GetFindingsFilterInput!, config: AwsConfig): AwsMacie2GetFindingsFilterOutput
  getFindingsPublicationConfiguration(input: JSON, config: AwsConfig): AwsMacie2GetFindingsPublicationConfigurationOutput
  getInvitationsCount(input: JSON, config: AwsConfig): AwsMacie2GetInvitationsCountOutput
  getMacieSession(input: JSON, config: AwsConfig): AwsMacie2GetMacieSessionOutput
  getMasterAccount(input: JSON, config: AwsConfig): AwsMacie2GetMasterAccountOutput
  getMember(input: AwsMacie2GetMemberInput!, config: AwsConfig): AwsMacie2GetMemberOutput
  getUsageStatistics(input: AwsMacie2GetUsageStatisticsInput, config: AwsConfig): AwsMacie2GetUsageStatisticsOutput
  getUsageTotals(input: AwsMacie2GetUsageTotalsInput, config: AwsConfig): AwsMacie2GetUsageTotalsOutput
  listClassificationJobs(input: AwsMacie2ListClassificationJobsInput, config: AwsConfig): AwsMacie2ListClassificationJobsOutput
  listCustomDataIdentifiers(input: AwsMacie2ListCustomDataIdentifiersInput, config: AwsConfig): AwsMacie2ListCustomDataIdentifiersOutput
  listFindings(input: AwsMacie2ListFindingsInput, config: AwsConfig): AwsMacie2ListFindingsOutput
  listFindingsFilters(input: AwsMacie2ListFindingsFiltersInput, config: AwsConfig): AwsMacie2ListFindingsFiltersOutput
  listInvitations(input: AwsMacie2ListInvitationsInput, config: AwsConfig): AwsMacie2ListInvitationsOutput
  listMembers(input: AwsMacie2ListMembersInput, config: AwsConfig): AwsMacie2ListMembersOutput
  listOrganizationAdminAccounts(input: AwsMacie2ListOrganizationAdminAccountsInput, config: AwsConfig): AwsMacie2ListOrganizationAdminAccountsOutput
  listTagsForResource(input: AwsMacie2ListTagsForResourceInput!, config: AwsConfig): AwsMacie2ListTagsForResourceOutput
  putClassificationExportConfiguration(input: AwsMacie2PutClassificationExportConfigurationInput!, config: AwsConfig): AwsMacie2PutClassificationExportConfigurationOutput
  putFindingsPublicationConfiguration(input: AwsMacie2PutFindingsPublicationConfigurationInput, config: AwsConfig): JSON
  searchResources(input: AwsMacie2SearchResourcesInput, config: AwsConfig): AwsMacie2SearchResourcesOutput
  tagResource(input: AwsMacie2TagResourceInput!, config: AwsConfig): JSON
  testCustomDataIdentifier(input: AwsMacie2TestCustomDataIdentifierInput!, config: AwsConfig): AwsMacie2TestCustomDataIdentifierOutput
  untagResource(input: AwsMacie2UntagResourceInput!, config: AwsConfig): JSON
  updateClassificationJob(input: AwsMacie2UpdateClassificationJobInput!, config: AwsConfig): JSON
  updateFindingsFilter(input: AwsMacie2UpdateFindingsFilterInput!, config: AwsConfig): AwsMacie2UpdateFindingsFilterOutput
  updateMacieSession(input: AwsMacie2UpdateMacieSessionInput, config: AwsConfig): JSON
  updateMemberSession(input: AwsMacie2UpdateMemberSessionInput!, config: AwsConfig): JSON
  updateOrganizationConfiguration(input: AwsMacie2UpdateOrganizationConfigurationInput!, config: AwsConfig): JSON
}

input AwsMacie2AcceptInvitationInput {
  administratorAccountId: String
  invitationId: String!
  masterAccount: String
}

type AwsMacie2BatchGetCustomDataIdentifiersOutput {
  customDataIdentifiers: [AwsMacie2BatchGetCustomDataIdentifiersOutputCustomDataIdentifiers]
  notFoundIdentifierIds: [String]
}

type AwsMacie2BatchGetCustomDataIdentifiersOutputCustomDataIdentifiers {
  arn: String
  createdAt: Date
  deleted: Boolean
  description: String
  id: String
  name: String
}

input AwsMacie2BatchGetCustomDataIdentifiersInput {
  ids: [String]
}

type AwsMacie2CreateClassificationJobOutput {
  jobArn: String
  jobId: String
}

input AwsMacie2CreateClassificationJobInput {
  clientToken: String!
  customDataIdentifierIds: [String]
  description: String
  initialRun: Boolean
  jobType: String!
  name: String!
  s3JobDefinition: AwsMacie2SdInput!
  samplingPercentage: Int
  scheduleFrequency: AwsMacie2S11Input
  tags: JSON
}

input AwsMacie2SdInput {
  bucketDefinitions: [AwsMacie2SeInput]
  scoping: AwsMacie2SdScopingInput
  bucketCriteria: AwsMacie2SrInput
}

input AwsMacie2SeInput {
  accountId: String!
  buckets: [String]!
}

input AwsMacie2SdScopingInput {
  excludes: AwsMacie2ShInput
  includes: AwsMacie2ShInput
}

input AwsMacie2ShInput {
  and: [AwsMacie2ShAndInput]
}

input AwsMacie2ShAndInput {
  simpleScopeTerm: AwsMacie2ShAndSimpleScopeTermInput
  tagScopeTerm: AwsMacie2ShAndTagScopeTermInput
}

input AwsMacie2ShAndSimpleScopeTermInput {
  comparator: String
  key: String
  values: [String]
}

input AwsMacie2ShAndTagScopeTermInput {
  comparator: String
  key: String
  tagValues: [AwsMacie2ShAndTagScopeTermTagValuesInput]
  target: String
}

input AwsMacie2ShAndTagScopeTermTagValuesInput {
  key: String
  value: String
}

input AwsMacie2SrInput {
  excludes: AwsMacie2SsInput
  includes: AwsMacie2SsInput
}

input AwsMacie2SsInput {
  and: [AwsMacie2SsAndInput]
}

input AwsMacie2SsAndInput {
  simpleCriterion: AwsMacie2SsAndSimpleCriterionInput
  tagCriterion: AwsMacie2SsAndTagCriterionInput
}

input AwsMacie2SsAndSimpleCriterionInput {
  comparator: String
  key: String
  values: [String]
}

input AwsMacie2SsAndTagCriterionInput {
  comparator: String
  tagValues: [AwsMacie2SsAndTagCriterionTagValuesInput]
}

input AwsMacie2SsAndTagCriterionTagValuesInput {
  key: String
  value: String
}

input AwsMacie2S11Input {
  dailySchedule: JSON
  monthlySchedule: AwsMacie2S11MonthlyScheduleInput
  weeklySchedule: AwsMacie2S11WeeklyScheduleInput
}

input AwsMacie2S11MonthlyScheduleInput {
  dayOfMonth: Int
}

input AwsMacie2S11WeeklyScheduleInput {
  dayOfWeek: String
}

type AwsMacie2CreateCustomDataIdentifierOutput {
  customDataIdentifierId: String
}

input AwsMacie2CreateCustomDataIdentifierInput {
  clientToken: String
  description: String
  ignoreWords: [String]
  keywords: [String]
  maximumMatchDistance: Int
  name: String
  regex: String
  tags: JSON
}

type AwsMacie2CreateFindingsFilterOutput {
  arn: String
  id: String
}

input AwsMacie2CreateFindingsFilterInput {
  action: String!
  clientToken: String
  description: String
  findingCriteria: AwsMacie2S1cInput!
  name: String!
  position: Int
  tags: JSON
}

input AwsMacie2S1cInput {
  criterion: JSON
}

type AwsMacie2CreateInvitationsOutput {
  unprocessedAccounts: [AwsMacie2S1j]
}

type AwsMacie2S1j {
  accountId: String
  errorCode: String
  errorMessage: String
}

input AwsMacie2CreateInvitationsInput {
  accountIds: [String]!
  disableEmailNotification: Boolean
  message: String
}

type AwsMacie2CreateMemberOutput {
  arn: String
}

input AwsMacie2CreateMemberInput {
  account: AwsMacie2CreateMemberAccountInput!
  tags: JSON
}

input AwsMacie2CreateMemberAccountInput {
  accountId: String!
  email: String!
}

input AwsMacie2CreateSampleFindingsInput {
  findingTypes: [String]
}

type AwsMacie2DeclineInvitationsOutput {
  unprocessedAccounts: [AwsMacie2S1j]
}

input AwsMacie2DeclineInvitationsInput {
  accountIds: [String]!
}

input AwsMacie2DeleteCustomDataIdentifierInput {
  id: String!
}

input AwsMacie2DeleteFindingsFilterInput {
  id: String!
}

type AwsMacie2DeleteInvitationsOutput {
  unprocessedAccounts: [AwsMacie2S1j]
}

input AwsMacie2DeleteInvitationsInput {
  accountIds: [String]!
}

input AwsMacie2DeleteMemberInput {
  id: String!
}

type AwsMacie2DescribeBucketsOutput {
  buckets: [AwsMacie2DescribeBucketsOutputBuckets]
  nextToken: String
}

type AwsMacie2DescribeBucketsOutputBuckets {
  accountId: String
  allowsUnencryptedObjectUploads: String
  bucketArn: String
  bucketCreatedAt: Date
  bucketName: String
  classifiableObjectCount: JSON
  classifiableSizeInBytes: JSON
  jobDetails: AwsMacie2S2c
  lastUpdated: Date
  objectCount: JSON
  objectCountByEncryptionType: AwsMacie2S2f
  publicAccess: AwsMacie2S2g
  region: String
  replicationDetails: AwsMacie2DescribeBucketsOutputBucketsReplicationDetails
  serverSideEncryption: AwsMacie2DescribeBucketsOutputBucketsServerSideEncryption
  sharedAccess: String
  sizeInBytes: JSON
  sizeInBytesCompressed: JSON
  tags: [AwsMacie2S2t]
  unclassifiableObjectCount: AwsMacie2S2u
  unclassifiableObjectSizeInBytes: AwsMacie2S2u
  versioning: Boolean
}

type AwsMacie2S2c {
  isDefinedInJob: String
  isMonitoredByJob: String
  lastJobId: String
  lastJobRunTime: Date
}

type AwsMacie2S2f {
  customerManaged: JSON
  kmsManaged: JSON
  s3Managed: JSON
  unencrypted: JSON
  unknown: JSON
}

type AwsMacie2S2g {
  effectivePermission: String
  permissionConfiguration: AwsMacie2S2gPermissionConfiguration
}

type AwsMacie2S2gPermissionConfiguration {
  accountLevelPermissions: AwsMacie2S2gPermissionConfigurationAccountLevelPermissions
  bucketLevelPermissions: AwsMacie2S2gPermissionConfigurationBucketLevelPermissions
}

type AwsMacie2S2gPermissionConfigurationAccountLevelPermissions {
  blockPublicAccess: AwsMacie2S2k
}

type AwsMacie2S2k {
  blockPublicAcls: Boolean
  blockPublicPolicy: Boolean
  ignorePublicAcls: Boolean
  restrictPublicBuckets: Boolean
}

type AwsMacie2S2gPermissionConfigurationBucketLevelPermissions {
  accessControlList: AwsMacie2S2gPermissionConfigurationBucketLevelPermissionsAccessControlList
  blockPublicAccess: AwsMacie2S2k
  bucketPolicy: AwsMacie2S2gPermissionConfigurationBucketLevelPermissionsBucketPolicy
}

type AwsMacie2S2gPermissionConfigurationBucketLevelPermissionsAccessControlList {
  allowsPublicReadAccess: Boolean
  allowsPublicWriteAccess: Boolean
}

type AwsMacie2S2gPermissionConfigurationBucketLevelPermissionsBucketPolicy {
  allowsPublicReadAccess: Boolean
  allowsPublicWriteAccess: Boolean
}

type AwsMacie2DescribeBucketsOutputBucketsReplicationDetails {
  replicated: Boolean
  replicatedExternally: Boolean
  replicationAccounts: [String]
}

type AwsMacie2DescribeBucketsOutputBucketsServerSideEncryption {
  kmsMasterKeyId: String
  type: String
}

type AwsMacie2S2t {
  key: String
  value: String
}

type AwsMacie2S2u {
  fileType: JSON
  storageClass: JSON
  total: JSON
}

input AwsMacie2DescribeBucketsInput {
  criteria: JSON
  maxResults: Int
  nextToken: String
  sortCriteria: AwsMacie2DescribeBucketsSortCriteriaInput
}

input AwsMacie2DescribeBucketsSortCriteriaInput {
  attributeName: String
  orderBy: String
}

type AwsMacie2DescribeClassificationJobOutput {
  clientToken: String
  createdAt: Date
  customDataIdentifierIds: [String]
  description: String
  initialRun: Boolean
  jobArn: String
  jobId: String
  jobStatus: String
  jobType: String
  lastRunErrorStatus: AwsMacie2S2y
  lastRunTime: Date
  name: String
  s3JobDefinition: AwsMacie2Sd
  samplingPercentage: Int
  scheduleFrequency: AwsMacie2S11
  statistics: AwsMacie2DescribeClassificationJobOutputStatistics
  tags: JSON
  userPausedDetails: AwsMacie2S32
}

type AwsMacie2S2y {
  code: String
}

type AwsMacie2Sd {
  bucketDefinitions: [AwsMacie2Se]
  scoping: AwsMacie2SdScoping
  bucketCriteria: AwsMacie2Sr
}

type AwsMacie2Se {
  accountId: String!
  buckets: [String]!
}

type AwsMacie2SdScoping {
  excludes: AwsMacie2Sh
  includes: AwsMacie2Sh
}

type AwsMacie2Sh {
  and: [AwsMacie2ShAnd]
}

type AwsMacie2ShAnd {
  simpleScopeTerm: AwsMacie2ShAndSimpleScopeTerm
  tagScopeTerm: AwsMacie2ShAndTagScopeTerm
}

type AwsMacie2ShAndSimpleScopeTerm {
  comparator: String
  key: String
  values: [String]
}

type AwsMacie2ShAndTagScopeTerm {
  comparator: String
  key: String
  tagValues: [AwsMacie2ShAndTagScopeTermTagValues]
  target: String
}

type AwsMacie2ShAndTagScopeTermTagValues {
  key: String
  value: String
}

type AwsMacie2Sr {
  excludes: AwsMacie2Ss
  includes: AwsMacie2Ss
}

type AwsMacie2Ss {
  and: [AwsMacie2SsAnd]
}

type AwsMacie2SsAnd {
  simpleCriterion: AwsMacie2SsAndSimpleCriterion
  tagCriterion: AwsMacie2SsAndTagCriterion
}

type AwsMacie2SsAndSimpleCriterion {
  comparator: String
  key: String
  values: [String]
}

type AwsMacie2SsAndTagCriterion {
  comparator: String
  tagValues: [AwsMacie2SsAndTagCriterionTagValues]
}

type AwsMacie2SsAndTagCriterionTagValues {
  key: String
  value: String
}

type AwsMacie2S11 {
  dailySchedule: JSON
  monthlySchedule: AwsMacie2S11MonthlySchedule
  weeklySchedule: AwsMacie2S11WeeklySchedule
}

type AwsMacie2S11MonthlySchedule {
  dayOfMonth: Int
}

type AwsMacie2S11WeeklySchedule {
  dayOfWeek: String
}

type AwsMacie2DescribeClassificationJobOutputStatistics {
  approximateNumberOfObjectsToProcess: JSON
  numberOfRuns: JSON
}

type AwsMacie2S32 {
  jobExpiresAt: Date
  jobImminentExpirationHealthEventArn: String
  jobPausedAt: Date
}

input AwsMacie2DescribeClassificationJobInput {
  jobId: String!
}

type AwsMacie2DescribeOrganizationConfigurationOutput {
  autoEnable: Boolean
  maxAccountLimitReached: Boolean
}

input AwsMacie2DisableOrganizationAdminAccountInput {
  adminAccountId: String!
}

input AwsMacie2DisassociateMemberInput {
  id: String!
}

input AwsMacie2EnableMacieInput {
  clientToken: String
  findingPublishingFrequency: String
  status: String
}

input AwsMacie2EnableOrganizationAdminAccountInput {
  adminAccountId: String!
  clientToken: String
}

type AwsMacie2GetAdministratorAccountOutput {
  administrator: AwsMacie2S3n
}

type AwsMacie2S3n {
  accountId: String
  invitationId: String
  invitedAt: Date
  relationshipStatus: String
}

type AwsMacie2GetBucketStatisticsOutput {
  bucketCount: JSON
  bucketCountByEffectivePermission: AwsMacie2GetBucketStatisticsOutputBucketCountByEffectivePermission
  bucketCountByEncryptionType: AwsMacie2GetBucketStatisticsOutputBucketCountByEncryptionType
  bucketCountByObjectEncryptionRequirement: AwsMacie2GetBucketStatisticsOutputBucketCountByObjectEncryptionRequirement
  bucketCountBySharedAccessType: AwsMacie2GetBucketStatisticsOutputBucketCountBySharedAccessType
  classifiableObjectCount: JSON
  classifiableSizeInBytes: JSON
  lastUpdated: Date
  objectCount: JSON
  sizeInBytes: JSON
  sizeInBytesCompressed: JSON
  unclassifiableObjectCount: AwsMacie2S2u
  unclassifiableObjectSizeInBytes: AwsMacie2S2u
}

type AwsMacie2GetBucketStatisticsOutputBucketCountByEffectivePermission {
  publiclyAccessible: JSON
  publiclyReadable: JSON
  publiclyWritable: JSON
  unknown: JSON
}

type AwsMacie2GetBucketStatisticsOutputBucketCountByEncryptionType {
  kmsManaged: JSON
  s3Managed: JSON
  unencrypted: JSON
  unknown: JSON
}

type AwsMacie2GetBucketStatisticsOutputBucketCountByObjectEncryptionRequirement {
  allowsUnencryptedObjectUploads: JSON
  deniesUnencryptedObjectUploads: JSON
  unknown: JSON
}

type AwsMacie2GetBucketStatisticsOutputBucketCountBySharedAccessType {
  external: JSON
  internal: JSON
  notShared: JSON
  unknown: JSON
}

input AwsMacie2GetBucketStatisticsInput {
  accountId: String
}

type AwsMacie2GetClassificationExportConfigurationOutput {
  configuration: AwsMacie2S3x
}

type AwsMacie2S3x {
  s3Destination: AwsMacie2S3xS3Destination
}

type AwsMacie2S3xS3Destination {
  bucketName: String!
  keyPrefix: String
  kmsKeyArn: String!
}

type AwsMacie2GetCustomDataIdentifierOutput {
  arn: String
  createdAt: Date
  deleted: Boolean
  description: String
  id: String
  ignoreWords: [String]
  keywords: [String]
  maximumMatchDistance: Int
  name: String
  regex: String
  tags: JSON
}

input AwsMacie2GetCustomDataIdentifierInput {
  id: String!
}

type AwsMacie2GetFindingStatisticsOutput {
  countsByGroup: [AwsMacie2GetFindingStatisticsOutputCountsByGroup]
}

type AwsMacie2GetFindingStatisticsOutputCountsByGroup {
  count: JSON
  groupKey: String
}

input AwsMacie2GetFindingStatisticsInput {
  findingCriteria: AwsMacie2S1cInput
  groupBy: String!
  size: Int
  sortCriteria: AwsMacie2GetFindingStatisticsSortCriteriaInput
}

input AwsMacie2GetFindingStatisticsSortCriteriaInput {
  attributeName: String
  orderBy: String
}

type AwsMacie2GetFindingsOutput {
  findings: [AwsMacie2GetFindingsOutputFindings]
}

type AwsMacie2GetFindingsOutputFindings {
  accountId: String
  archived: Boolean
  category: String
  classificationDetails: AwsMacie2GetFindingsOutputFindingsClassificationDetails
  count: JSON
  createdAt: Date
  description: String
  id: String
  partition: String
  policyDetails: AwsMacie2GetFindingsOutputFindingsPolicyDetails
  region: String
  resourcesAffected: AwsMacie2GetFindingsOutputFindingsResourcesAffected
  sample: Boolean
  schemaVersion: String
  severity: AwsMacie2GetFindingsOutputFindingsSeverity
  title: String
  type: String
  updatedAt: Date
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetails {
  detailedResultsLocation: String
  jobArn: String
  jobId: String
  result: AwsMacie2GetFindingsOutputFindingsClassificationDetailsResult
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResult {
  additionalOccurrences: Boolean
  customDataIdentifiers: AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultCustomDataIdentifiers
  mimeType: String
  sensitiveData: [AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultSensitiveData]
  sizeClassified: JSON
  status: AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultStatus
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultCustomDataIdentifiers {
  detections: [AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultCustomDataIdentifiersDetections]
  totalCount: JSON
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultCustomDataIdentifiersDetections {
  arn: String
  count: JSON
  name: String
  occurrences: AwsMacie2S4j
}

type AwsMacie2S4j {
  cells: [AwsMacie2S4jCells]
  lineRanges: [AwsMacie2S4n]
  offsetRanges: [AwsMacie2S4n]
  pages: [AwsMacie2S4jPages]
  records: [AwsMacie2S4jRecords]
}

type AwsMacie2S4jCells {
  cellReference: String
  column: JSON
  columnName: String
  row: JSON
}

type AwsMacie2S4n {
  end: JSON
  start: JSON
  startColumn: JSON
}

type AwsMacie2S4jPages {
  lineRange: AwsMacie2S4n
  offsetRange: AwsMacie2S4n
  pageNumber: JSON
}

type AwsMacie2S4jRecords {
  jsonPath: String
  recordIndex: JSON
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultSensitiveData {
  category: String
  detections: [AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultSensitiveDataDetections]
  totalCount: JSON
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultSensitiveDataDetections {
  count: JSON
  occurrences: AwsMacie2S4j
  type: String
}

type AwsMacie2GetFindingsOutputFindingsClassificationDetailsResultStatus {
  code: String
  reason: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetails {
  action: AwsMacie2GetFindingsOutputFindingsPolicyDetailsAction
  actor: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActor
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsAction {
  actionType: String
  apiCallDetails: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActionApiCallDetails
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActionApiCallDetails {
  api: String
  apiServiceName: String
  firstSeen: Date
  lastSeen: Date
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActor {
  domainDetails: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorDomainDetails
  ipAddressDetails: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetails
  userIdentity: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentity
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorDomainDetails {
  domainName: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetails {
  ipAddressV4: String
  ipCity: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpCity
  ipCountry: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpCountry
  ipGeoLocation: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpGeoLocation
  ipOwner: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpOwner
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpCity {
  name: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpCountry {
  code: String
  name: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpGeoLocation {
  lat: JSON
  lon: JSON
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorIpAddressDetailsIpOwner {
  asn: String
  asnOrg: String
  isp: String
  org: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentity {
  assumedRole: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAssumedRole
  awsAccount: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAwsAccount
  awsService: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAwsService
  federatedUser: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityFederatedUser
  iamUser: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityIamUser
  root: AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityRoot
  type: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAssumedRole {
  accessKeyId: String
  accountId: String
  arn: String
  principalId: String
  sessionContext: AwsMacie2S5b
}

type AwsMacie2S5b {
  attributes: AwsMacie2S5bAttributes
  sessionIssuer: AwsMacie2S5bSessionIssuer
}

type AwsMacie2S5bAttributes {
  creationDate: Date
  mfaAuthenticated: Boolean
}

type AwsMacie2S5bSessionIssuer {
  accountId: String
  arn: String
  principalId: String
  type: String
  userName: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAwsAccount {
  accountId: String
  principalId: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityAwsService {
  invokedBy: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityFederatedUser {
  accessKeyId: String
  accountId: String
  arn: String
  principalId: String
  sessionContext: AwsMacie2S5b
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityIamUser {
  accountId: String
  arn: String
  principalId: String
  userName: String
}

type AwsMacie2GetFindingsOutputFindingsPolicyDetailsActorUserIdentityRoot {
  accountId: String
  arn: String
  principalId: String
}

type AwsMacie2GetFindingsOutputFindingsResourcesAffected {
  s3Bucket: AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3Bucket
  s3Object: AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3Object
}

type AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3Bucket {
  allowsUnencryptedObjectUploads: String
  arn: String
  createdAt: Date
  defaultServerSideEncryption: AwsMacie2S5m
  name: String
  owner: AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3BucketOwner
  publicAccess: AwsMacie2S2g
  tags: [AwsMacie2S2t]
}

type AwsMacie2S5m {
  encryptionType: String
  kmsMasterKeyId: String
}

type AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3BucketOwner {
  displayName: String
  id: String
}

type AwsMacie2GetFindingsOutputFindingsResourcesAffectedS3Object {
  bucketArn: String
  eTag: String
  extension: String
  key: String
  lastModified: Date
  path: String
  publicAccess: Boolean
  serverSideEncryption: AwsMacie2S5m
  size: JSON
  storageClass: String
  tags: [AwsMacie2S2t]
  versionId: String
}

type AwsMacie2GetFindingsOutputFindingsSeverity {
  description: String
  score: JSON
}

input AwsMacie2GetFindingsInput {
  findingIds: [String]!
  sortCriteria: AwsMacie2S49Input
}

input AwsMacie2S49Input {
  attributeName: String
  orderBy: String
}

type AwsMacie2GetFindingsFilterOutput {
  action: String
  arn: String
  description: String
  findingCriteria: AwsMacie2S1c
  id: String
  name: String
  position: Int
  tags: JSON
}

type AwsMacie2S1c {
  criterion: JSON
}

input AwsMacie2GetFindingsFilterInput {
  id: String!
}

type AwsMacie2GetFindingsPublicationConfigurationOutput {
  securityHubConfiguration: AwsMacie2S5y
}

type AwsMacie2S5y {
  publishClassificationFindings: Boolean!
  publishPolicyFindings: Boolean!
}

type AwsMacie2GetInvitationsCountOutput {
  invitationsCount: JSON
}

type AwsMacie2GetMacieSessionOutput {
  createdAt: Date
  findingPublishingFrequency: String
  serviceRole: String
  status: String
  updatedAt: Date
}

type AwsMacie2GetMasterAccountOutput {
  master: AwsMacie2S3n
}

type AwsMacie2GetMemberOutput {
  accountId: String
  administratorAccountId: String
  arn: String
  email: String
  invitedAt: Date
  masterAccountId: String
  relationshipStatus: String
  tags: JSON
  updatedAt: Date
}

input AwsMacie2GetMemberInput {
  id: String!
}

type AwsMacie2GetUsageStatisticsOutput {
  nextToken: String
  records: [AwsMacie2GetUsageStatisticsOutputRecords]
  timeRange: String
}

type AwsMacie2GetUsageStatisticsOutputRecords {
  accountId: String
  freeTrialStartDate: Date
  usage: [AwsMacie2GetUsageStatisticsOutputRecordsUsage]
}

type AwsMacie2GetUsageStatisticsOutputRecordsUsage {
  currency: String
  estimatedCost: String
  serviceLimit: AwsMacie2GetUsageStatisticsOutputRecordsUsageServiceLimit
  type: String
}

type AwsMacie2GetUsageStatisticsOutputRecordsUsageServiceLimit {
  isServiceLimited: Boolean
  unit: String
  value: JSON
}

input AwsMacie2GetUsageStatisticsInput {
  filterBy: [AwsMacie2GetUsageStatisticsFilterByInput]
  maxResults: Int
  nextToken: String
  sortBy: AwsMacie2GetUsageStatisticsSortByInput
  timeRange: String
}

input AwsMacie2GetUsageStatisticsFilterByInput {
  comparator: String
  key: String
  values: [String]
}

input AwsMacie2GetUsageStatisticsSortByInput {
  key: String
  orderBy: String
}

type AwsMacie2GetUsageTotalsOutput {
  timeRange: String
  usageTotals: [AwsMacie2GetUsageTotalsOutputUsageTotals]
}

type AwsMacie2GetUsageTotalsOutputUsageTotals {
  currency: String
  estimatedCost: String
  type: String
}

input AwsMacie2GetUsageTotalsInput {
  timeRange: String
}

type AwsMacie2ListClassificationJobsOutput {
  items: [AwsMacie2ListClassificationJobsOutputItems]
  nextToken: String
}

type AwsMacie2ListClassificationJobsOutputItems {
  bucketDefinitions: [AwsMacie2Se]
  createdAt: Date
  jobId: String
  jobStatus: String
  jobType: String
  lastRunErrorStatus: AwsMacie2S2y
  name: String
  userPausedDetails: AwsMacie2S32
  bucketCriteria: AwsMacie2Sr
}

input AwsMacie2ListClassificationJobsInput {
  filterCriteria: AwsMacie2ListClassificationJobsFilterCriteriaInput
  maxResults: Int
  nextToken: String
  sortCriteria: AwsMacie2ListClassificationJobsSortCriteriaInput
}

input AwsMacie2ListClassificationJobsFilterCriteriaInput {
  excludes: [AwsMacie2S6uInput]
  includes: [AwsMacie2S6uInput]
}

input AwsMacie2S6uInput {
  comparator: String
  key: String
  values: [String]
}

input AwsMacie2ListClassificationJobsSortCriteriaInput {
  attributeName: String
  orderBy: String
}

type AwsMacie2ListCustomDataIdentifiersOutput {
  items: [AwsMacie2ListCustomDataIdentifiersOutputItems]
  nextToken: String
}

type AwsMacie2ListCustomDataIdentifiersOutputItems {
  arn: String
  createdAt: Date
  description: String
  id: String
  name: String
}

input AwsMacie2ListCustomDataIdentifiersInput {
  maxResults: Int
  nextToken: String
}

type AwsMacie2ListFindingsOutput {
  findingIds: [String]
  nextToken: String
}

input AwsMacie2ListFindingsInput {
  findingCriteria: AwsMacie2S1cInput
  maxResults: Int
  nextToken: String
  sortCriteria: AwsMacie2S49Input
}

type AwsMacie2ListFindingsFiltersOutput {
  findingsFilterListItems: [AwsMacie2ListFindingsFiltersOutputFindingsFilterListItems]
  nextToken: String
}

type AwsMacie2ListFindingsFiltersOutputFindingsFilterListItems {
  action: String
  arn: String
  id: String
  name: String
  tags: JSON
}

input AwsMacie2ListFindingsFiltersInput {
  maxResults: Int
  nextToken: String
}

type AwsMacie2ListInvitationsOutput {
  invitations: [AwsMacie2S3n]
  nextToken: String
}

input AwsMacie2ListInvitationsInput {
  maxResults: Int
  nextToken: String
}

type AwsMacie2ListMembersOutput {
  members: [AwsMacie2ListMembersOutputMembers]
  nextToken: String
}

type AwsMacie2ListMembersOutputMembers {
  accountId: String
  administratorAccountId: String
  arn: String
  email: String
  invitedAt: Date
  masterAccountId: String
  relationshipStatus: String
  tags: JSON
  updatedAt: Date
}

input AwsMacie2ListMembersInput {
  maxResults: Int
  nextToken: String
  onlyAssociated: String
}

type AwsMacie2ListOrganizationAdminAccountsOutput {
  adminAccounts: [AwsMacie2ListOrganizationAdminAccountsOutputAdminAccounts]
  nextToken: String
}

type AwsMacie2ListOrganizationAdminAccountsOutputAdminAccounts {
  accountId: String
  status: String
}

input AwsMacie2ListOrganizationAdminAccountsInput {
  maxResults: Int
  nextToken: String
}

type AwsMacie2ListTagsForResourceOutput {
  tags: JSON
}

input AwsMacie2ListTagsForResourceInput {
  resourceArn: String!
}

type AwsMacie2PutClassificationExportConfigurationOutput {
  configuration: AwsMacie2S3x
}

input AwsMacie2PutClassificationExportConfigurationInput {
  configuration: AwsMacie2S3xInput!
}

input AwsMacie2S3xInput {
  s3Destination: AwsMacie2S3xS3DestinationInput
}

input AwsMacie2S3xS3DestinationInput {
  bucketName: String!
  keyPrefix: String
  kmsKeyArn: String!
}

input AwsMacie2PutFindingsPublicationConfigurationInput {
  clientToken: String
  securityHubConfiguration: AwsMacie2S5yInput
}

input AwsMacie2S5yInput {
  publishClassificationFindings: Boolean!
  publishPolicyFindings: Boolean!
}

type AwsMacie2SearchResourcesOutput {
  matchingResources: [AwsMacie2SearchResourcesOutputMatchingResources]
  nextToken: String
}

type AwsMacie2SearchResourcesOutputMatchingResources {
  matchingBucket: AwsMacie2SearchResourcesOutputMatchingResourcesMatchingBucket
}

type AwsMacie2SearchResourcesOutputMatchingResourcesMatchingBucket {
  accountId: String
  bucketName: String
  classifiableObjectCount: JSON
  classifiableSizeInBytes: JSON
  jobDetails: AwsMacie2S2c
  objectCount: JSON
  objectCountByEncryptionType: AwsMacie2S2f
  sizeInBytes: JSON
  sizeInBytesCompressed: JSON
  unclassifiableObjectCount: AwsMacie2S2u
  unclassifiableObjectSizeInBytes: AwsMacie2S2u
}

input AwsMacie2SearchResourcesInput {
  bucketCriteria: AwsMacie2SearchResourcesBucketCriteriaInput
  maxResults: Int
  nextToken: String
  sortCriteria: AwsMacie2SearchResourcesSortCriteriaInput
}

input AwsMacie2SearchResourcesBucketCriteriaInput {
  excludes: AwsMacie2S7xInput
  includes: AwsMacie2S7xInput
}

input AwsMacie2S7xInput {
  and: [AwsMacie2S7xAndInput]
}

input AwsMacie2S7xAndInput {
  simpleCriterion: AwsMacie2S7xAndSimpleCriterionInput
  tagCriterion: AwsMacie2S7xAndTagCriterionInput
}

input AwsMacie2S7xAndSimpleCriterionInput {
  comparator: String
  key: String
  values: [String]
}

input AwsMacie2S7xAndTagCriterionInput {
  comparator: String
  tagValues: [AwsMacie2S7xAndTagCriterionTagValuesInput]
}

input AwsMacie2S7xAndTagCriterionTagValuesInput {
  key: String
  value: String
}

input AwsMacie2SearchResourcesSortCriteriaInput {
  attributeName: String
  orderBy: String
}

input AwsMacie2TagResourceInput {
  resourceArn: String!
  tags: JSON!
}

type AwsMacie2TestCustomDataIdentifierOutput {
  matchCount: Int
}

input AwsMacie2TestCustomDataIdentifierInput {
  ignoreWords: [String]
  keywords: [String]
  maximumMatchDistance: Int
  regex: String!
  sampleText: String!
}

input AwsMacie2UntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsMacie2UpdateClassificationJobInput {
  jobId: String!
  jobStatus: String!
}

type AwsMacie2UpdateFindingsFilterOutput {
  arn: String
  id: String
}

input AwsMacie2UpdateFindingsFilterInput {
  action: String
  description: String
  findingCriteria: AwsMacie2S1cInput
  id: String!
  name: String
  position: Int
  clientToken: String
}

input AwsMacie2UpdateMacieSessionInput {
  findingPublishingFrequency: String
  status: String
}

input AwsMacie2UpdateMemberSessionInput {
  id: String!
  status: String!
}

input AwsMacie2UpdateOrganizationConfigurationInput {
  autoEnable: Boolean!
}

"""Amazon Managed Blockchain (2018-09-24)"""
type AwsManagedBlockchain {
  createMember(input: AwsManagedBlockchainCreateMemberInput!, config: AwsConfig): AwsManagedBlockchainCreateMemberOutput
  createNetwork(input: AwsManagedBlockchainCreateNetworkInput!, config: AwsConfig): AwsManagedBlockchainCreateNetworkOutput
  createNode(input: AwsManagedBlockchainCreateNodeInput!, config: AwsConfig): AwsManagedBlockchainCreateNodeOutput
  createProposal(input: AwsManagedBlockchainCreateProposalInput!, config: AwsConfig): AwsManagedBlockchainCreateProposalOutput
  deleteMember(input: AwsManagedBlockchainDeleteMemberInput!, config: AwsConfig): JSON
  deleteNode(input: AwsManagedBlockchainDeleteNodeInput!, config: AwsConfig): JSON
  getMember(input: AwsManagedBlockchainGetMemberInput!, config: AwsConfig): AwsManagedBlockchainGetMemberOutput
  getNetwork(input: AwsManagedBlockchainGetNetworkInput!, config: AwsConfig): AwsManagedBlockchainGetNetworkOutput
  getNode(input: AwsManagedBlockchainGetNodeInput!, config: AwsConfig): AwsManagedBlockchainGetNodeOutput
  getProposal(input: AwsManagedBlockchainGetProposalInput!, config: AwsConfig): AwsManagedBlockchainGetProposalOutput
  listInvitations(input: AwsManagedBlockchainListInvitationsInput, config: AwsConfig): AwsManagedBlockchainListInvitationsOutput
  listMembers(input: AwsManagedBlockchainListMembersInput!, config: AwsConfig): AwsManagedBlockchainListMembersOutput
  listNetworks(input: AwsManagedBlockchainListNetworksInput, config: AwsConfig): AwsManagedBlockchainListNetworksOutput
  listNodes(input: AwsManagedBlockchainListNodesInput!, config: AwsConfig): AwsManagedBlockchainListNodesOutput
  listProposalVotes(input: AwsManagedBlockchainListProposalVotesInput!, config: AwsConfig): AwsManagedBlockchainListProposalVotesOutput
  listProposals(input: AwsManagedBlockchainListProposalsInput!, config: AwsConfig): AwsManagedBlockchainListProposalsOutput
  listTagsForResource(input: AwsManagedBlockchainListTagsForResourceInput!, config: AwsConfig): AwsManagedBlockchainListTagsForResourceOutput
  rejectInvitation(input: AwsManagedBlockchainRejectInvitationInput!, config: AwsConfig): JSON
  tagResource(input: AwsManagedBlockchainTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsManagedBlockchainUntagResourceInput!, config: AwsConfig): JSON
  updateMember(input: AwsManagedBlockchainUpdateMemberInput!, config: AwsConfig): JSON
  updateNode(input: AwsManagedBlockchainUpdateNodeInput!, config: AwsConfig): JSON
  voteOnProposal(input: AwsManagedBlockchainVoteOnProposalInput!, config: AwsConfig): JSON
}

type AwsManagedBlockchainCreateMemberOutput {
  MemberId: String
}

input AwsManagedBlockchainCreateMemberInput {
  ClientRequestToken: String!
  InvitationId: String!
  NetworkId: String!
  MemberConfiguration: AwsManagedBlockchainS4Input!
}

input AwsManagedBlockchainS4Input {
  Name: String!
  Description: String
  FrameworkConfiguration: AwsManagedBlockchainS4FrameworkConfigurationInput!
  LogPublishingConfiguration: AwsManagedBlockchainSbInput
  Tags: JSON
  KmsKeyArn: String
}

input AwsManagedBlockchainS4FrameworkConfigurationInput {
  Fabric: AwsManagedBlockchainS4FrameworkConfigurationFabricInput
}

input AwsManagedBlockchainS4FrameworkConfigurationFabricInput {
  AdminUsername: String!
  AdminPassword: String!
}

input AwsManagedBlockchainSbInput {
  Fabric: AwsManagedBlockchainSbFabricInput
}

input AwsManagedBlockchainSbFabricInput {
  CaLogs: AwsManagedBlockchainSdInput
}

input AwsManagedBlockchainSdInput {
  Cloudwatch: AwsManagedBlockchainSdCloudwatchInput
}

input AwsManagedBlockchainSdCloudwatchInput {
  Enabled: Boolean
}

type AwsManagedBlockchainCreateNetworkOutput {
  NetworkId: String
  MemberId: String
}

input AwsManagedBlockchainCreateNetworkInput {
  ClientRequestToken: String!
  Name: String!
  Description: String
  Framework: String!
  FrameworkVersion: String!
  FrameworkConfiguration: AwsManagedBlockchainCreateNetworkFrameworkConfigurationInput
  VotingPolicy: AwsManagedBlockchainSsInput!
  MemberConfiguration: AwsManagedBlockchainS4Input!
  Tags: JSON
}

input AwsManagedBlockchainCreateNetworkFrameworkConfigurationInput {
  Fabric: AwsManagedBlockchainCreateNetworkFrameworkConfigurationFabricInput
}

input AwsManagedBlockchainCreateNetworkFrameworkConfigurationFabricInput {
  Edition: String!
}

input AwsManagedBlockchainSsInput {
  ApprovalThresholdPolicy: AwsManagedBlockchainSsApprovalThresholdPolicyInput
}

input AwsManagedBlockchainSsApprovalThresholdPolicyInput {
  ThresholdPercentage: Int
  ProposalDurationInHours: Int
  ThresholdComparator: String
}

type AwsManagedBlockchainCreateNodeOutput {
  NodeId: String
}

input AwsManagedBlockchainCreateNodeInput {
  ClientRequestToken: String!
  NetworkId: String!
  MemberId: String
  NodeConfiguration: AwsManagedBlockchainCreateNodeNodeConfigurationInput!
  Tags: JSON
}

input AwsManagedBlockchainCreateNodeNodeConfigurationInput {
  InstanceType: String!
  AvailabilityZone: String
  LogPublishingConfiguration: AwsManagedBlockchainS12Input
  StateDB: String
}

input AwsManagedBlockchainS12Input {
  Fabric: AwsManagedBlockchainS12FabricInput
}

input AwsManagedBlockchainS12FabricInput {
  ChaincodeLogs: AwsManagedBlockchainSdInput
  PeerLogs: AwsManagedBlockchainSdInput
}

type AwsManagedBlockchainCreateProposalOutput {
  ProposalId: String
}

input AwsManagedBlockchainCreateProposalInput {
  ClientRequestToken: String!
  NetworkId: String!
  MemberId: String!
  Actions: AwsManagedBlockchainS17Input!
  Description: String
  Tags: JSON
}

input AwsManagedBlockchainS17Input {
  Invitations: [AwsManagedBlockchainS17InvitationsInput]
  Removals: [AwsManagedBlockchainS17RemovalsInput]
}

input AwsManagedBlockchainS17InvitationsInput {
  Principal: String!
}

input AwsManagedBlockchainS17RemovalsInput {
  MemberId: String!
}

input AwsManagedBlockchainDeleteMemberInput {
  NetworkId: String!
  MemberId: String!
}

input AwsManagedBlockchainDeleteNodeInput {
  NetworkId: String!
  MemberId: String
  NodeId: String!
}

type AwsManagedBlockchainGetMemberOutput {
  Member: AwsManagedBlockchainGetMemberOutputMember
}

type AwsManagedBlockchainGetMemberOutputMember {
  NetworkId: String
  Id: String
  Name: String
  Description: String
  FrameworkAttributes: AwsManagedBlockchainGetMemberOutputMemberFrameworkAttributes
  LogPublishingConfiguration: AwsManagedBlockchainSb
  Status: String
  CreationDate: Date
  Tags: JSON
  Arn: String
  KmsKeyArn: String
}

type AwsManagedBlockchainGetMemberOutputMemberFrameworkAttributes {
  Fabric: AwsManagedBlockchainGetMemberOutputMemberFrameworkAttributesFabric
}

type AwsManagedBlockchainGetMemberOutputMemberFrameworkAttributesFabric {
  AdminUsername: String
  CaEndpoint: String
}

type AwsManagedBlockchainSb {
  Fabric: AwsManagedBlockchainSbFabric
}

type AwsManagedBlockchainSbFabric {
  CaLogs: AwsManagedBlockchainSd
}

type AwsManagedBlockchainSd {
  Cloudwatch: AwsManagedBlockchainSdCloudwatch
}

type AwsManagedBlockchainSdCloudwatch {
  Enabled: Boolean
}

input AwsManagedBlockchainGetMemberInput {
  NetworkId: String!
  MemberId: String!
}

type AwsManagedBlockchainGetNetworkOutput {
  Network: AwsManagedBlockchainGetNetworkOutputNetwork
}

type AwsManagedBlockchainGetNetworkOutputNetwork {
  Id: String
  Name: String
  Description: String
  Framework: String
  FrameworkVersion: String
  FrameworkAttributes: AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributes
  VpcEndpointServiceName: String
  VotingPolicy: AwsManagedBlockchainSs
  Status: String
  CreationDate: Date
  Tags: JSON
  Arn: String
}

type AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributes {
  Fabric: AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributesFabric
  Ethereum: AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributesEthereum
}

type AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributesFabric {
  OrderingServiceEndpoint: String
  Edition: String
}

type AwsManagedBlockchainGetNetworkOutputNetworkFrameworkAttributesEthereum {
  ChainId: String
}

type AwsManagedBlockchainSs {
  ApprovalThresholdPolicy: AwsManagedBlockchainSsApprovalThresholdPolicy
}

type AwsManagedBlockchainSsApprovalThresholdPolicy {
  ThresholdPercentage: Int
  ProposalDurationInHours: Int
  ThresholdComparator: String
}

input AwsManagedBlockchainGetNetworkInput {
  NetworkId: String!
}

type AwsManagedBlockchainGetNodeOutput {
  Node: AwsManagedBlockchainGetNodeOutputNode
}

type AwsManagedBlockchainGetNodeOutputNode {
  NetworkId: String
  MemberId: String
  Id: String
  InstanceType: String
  AvailabilityZone: String
  FrameworkAttributes: AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributes
  LogPublishingConfiguration: AwsManagedBlockchainS12
  StateDB: String
  Status: String
  CreationDate: Date
  Tags: JSON
  Arn: String
  KmsKeyArn: String
}

type AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributes {
  Fabric: AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributesFabric
  Ethereum: AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributesEthereum
}

type AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributesFabric {
  PeerEndpoint: String
  PeerEventEndpoint: String
}

type AwsManagedBlockchainGetNodeOutputNodeFrameworkAttributesEthereum {
  HttpEndpoint: String
  WebSocketEndpoint: String
}

type AwsManagedBlockchainS12 {
  Fabric: AwsManagedBlockchainS12Fabric
}

type AwsManagedBlockchainS12Fabric {
  ChaincodeLogs: AwsManagedBlockchainSd
  PeerLogs: AwsManagedBlockchainSd
}

input AwsManagedBlockchainGetNodeInput {
  NetworkId: String!
  MemberId: String
  NodeId: String!
}

type AwsManagedBlockchainGetProposalOutput {
  Proposal: AwsManagedBlockchainGetProposalOutputProposal
}

type AwsManagedBlockchainGetProposalOutputProposal {
  ProposalId: String
  NetworkId: String
  Description: String
  Actions: AwsManagedBlockchainS17
  ProposedByMemberId: String
  ProposedByMemberName: String
  Status: String
  CreationDate: Date
  ExpirationDate: Date
  YesVoteCount: Int
  NoVoteCount: Int
  OutstandingVoteCount: Int
  Tags: JSON
  Arn: String
}

type AwsManagedBlockchainS17 {
  Invitations: [AwsManagedBlockchainS17Invitations]
  Removals: [AwsManagedBlockchainS17Removals]
}

type AwsManagedBlockchainS17Invitations {
  Principal: String!
}

type AwsManagedBlockchainS17Removals {
  MemberId: String!
}

input AwsManagedBlockchainGetProposalInput {
  NetworkId: String!
  ProposalId: String!
}

type AwsManagedBlockchainListInvitationsOutput {
  Invitations: [AwsManagedBlockchainListInvitationsOutputInvitations]
  NextToken: String
}

type AwsManagedBlockchainListInvitationsOutputInvitations {
  InvitationId: String
  CreationDate: Date
  ExpirationDate: Date
  Status: String
  NetworkSummary: AwsManagedBlockchainS2h
  Arn: String
}

type AwsManagedBlockchainS2h {
  Id: String
  Name: String
  Description: String
  Framework: String
  FrameworkVersion: String
  Status: String
  CreationDate: Date
  Arn: String
}

input AwsManagedBlockchainListInvitationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListMembersOutput {
  Members: [AwsManagedBlockchainListMembersOutputMembers]
  NextToken: String
}

type AwsManagedBlockchainListMembersOutputMembers {
  Id: String
  Name: String
  Description: String
  Status: String
  CreationDate: Date
  IsOwned: Boolean
  Arn: String
}

input AwsManagedBlockchainListMembersInput {
  NetworkId: String!
  Name: String
  Status: String
  IsOwned: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListNetworksOutput {
  Networks: [AwsManagedBlockchainS2h]
  NextToken: String
}

input AwsManagedBlockchainListNetworksInput {
  Name: String
  Framework: String
  Status: String
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListNodesOutput {
  Nodes: [AwsManagedBlockchainListNodesOutputNodes]
  NextToken: String
}

type AwsManagedBlockchainListNodesOutputNodes {
  Id: String
  Status: String
  CreationDate: Date
  AvailabilityZone: String
  InstanceType: String
  Arn: String
}

input AwsManagedBlockchainListNodesInput {
  NetworkId: String!
  MemberId: String
  Status: String
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListProposalVotesOutput {
  ProposalVotes: [AwsManagedBlockchainListProposalVotesOutputProposalVotes]
  NextToken: String
}

type AwsManagedBlockchainListProposalVotesOutputProposalVotes {
  Vote: String
  MemberName: String
  MemberId: String
}

input AwsManagedBlockchainListProposalVotesInput {
  NetworkId: String!
  ProposalId: String!
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListProposalsOutput {
  Proposals: [AwsManagedBlockchainListProposalsOutputProposals]
  NextToken: String
}

type AwsManagedBlockchainListProposalsOutputProposals {
  ProposalId: String
  Description: String
  ProposedByMemberId: String
  ProposedByMemberName: String
  Status: String
  CreationDate: Date
  ExpirationDate: Date
  Arn: String
}

input AwsManagedBlockchainListProposalsInput {
  NetworkId: String!
  MaxResults: Int
  NextToken: String
}

type AwsManagedBlockchainListTagsForResourceOutput {
  Tags: JSON
}

input AwsManagedBlockchainListTagsForResourceInput {
  ResourceArn: String!
}

input AwsManagedBlockchainRejectInvitationInput {
  InvitationId: String!
}

input AwsManagedBlockchainTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsManagedBlockchainUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsManagedBlockchainUpdateMemberInput {
  NetworkId: String!
  MemberId: String!
  LogPublishingConfiguration: AwsManagedBlockchainSbInput
}

input AwsManagedBlockchainUpdateNodeInput {
  NetworkId: String!
  MemberId: String
  NodeId: String!
  LogPublishingConfiguration: AwsManagedBlockchainS12Input
}

input AwsManagedBlockchainVoteOnProposalInput {
  NetworkId: String!
  ProposalId: String!
  VoterMemberId: String!
  Vote: String!
}

"""AWS Marketplace Catalog Service (2018-09-17)"""
type AwsMarketplaceCatalog {
  cancelChangeSet(input: AwsMarketplaceCatalogCancelChangeSetInput!, config: AwsConfig): AwsMarketplaceCatalogCancelChangeSetOutput
  describeChangeSet(input: AwsMarketplaceCatalogDescribeChangeSetInput!, config: AwsConfig): AwsMarketplaceCatalogDescribeChangeSetOutput
  describeEntity(input: AwsMarketplaceCatalogDescribeEntityInput!, config: AwsConfig): AwsMarketplaceCatalogDescribeEntityOutput
  listChangeSets(input: AwsMarketplaceCatalogListChangeSetsInput!, config: AwsConfig): AwsMarketplaceCatalogListChangeSetsOutput
  listEntities(input: AwsMarketplaceCatalogListEntitiesInput!, config: AwsConfig): AwsMarketplaceCatalogListEntitiesOutput
  startChangeSet(input: AwsMarketplaceCatalogStartChangeSetInput!, config: AwsConfig): AwsMarketplaceCatalogStartChangeSetOutput
}

type AwsMarketplaceCatalogCancelChangeSetOutput {
  ChangeSetId: String
  ChangeSetArn: String
}

input AwsMarketplaceCatalogCancelChangeSetInput {
  Catalog: String!
  ChangeSetId: String!
}

type AwsMarketplaceCatalogDescribeChangeSetOutput {
  ChangeSetId: String
  ChangeSetArn: String
  ChangeSetName: String
  StartTime: String
  EndTime: String
  Status: String
  FailureCode: String
  FailureDescription: String
  ChangeSet: [AwsMarketplaceCatalogDescribeChangeSetOutputChangeSet]
}

type AwsMarketplaceCatalogDescribeChangeSetOutputChangeSet {
  ChangeType: String
  Entity: AwsMarketplaceCatalogSg
  Details: String
  ErrorDetailList: [AwsMarketplaceCatalogDescribeChangeSetOutputChangeSetErrorDetailList]
  ChangeName: String
}

type AwsMarketplaceCatalogSg {
  Type: String!
  Identifier: String
}

type AwsMarketplaceCatalogDescribeChangeSetOutputChangeSetErrorDetailList {
  ErrorCode: String
  ErrorMessage: String
}

input AwsMarketplaceCatalogDescribeChangeSetInput {
  Catalog: String!
  ChangeSetId: String!
}

type AwsMarketplaceCatalogDescribeEntityOutput {
  EntityType: String
  EntityIdentifier: String
  EntityArn: String
  LastModifiedDate: String
  Details: String
}

input AwsMarketplaceCatalogDescribeEntityInput {
  Catalog: String!
  EntityId: String!
}

type AwsMarketplaceCatalogListChangeSetsOutput {
  ChangeSetSummaryList: [AwsMarketplaceCatalogListChangeSetsOutputChangeSetSummaryList]
  NextToken: String
}

type AwsMarketplaceCatalogListChangeSetsOutputChangeSetSummaryList {
  ChangeSetId: String
  ChangeSetArn: String
  ChangeSetName: String
  StartTime: String
  EndTime: String
  Status: String
  EntityIdList: [String]
  FailureCode: String
}

input AwsMarketplaceCatalogListChangeSetsInput {
  Catalog: String!
  FilterList: [AwsMarketplaceCatalogSrInput]
  Sort: AwsMarketplaceCatalogSwInput
  MaxResults: Int
  NextToken: String
}

input AwsMarketplaceCatalogSrInput {
  Name: String
  ValueList: [String]
}

input AwsMarketplaceCatalogSwInput {
  SortBy: String
  SortOrder: String
}

type AwsMarketplaceCatalogListEntitiesOutput {
  EntitySummaryList: [AwsMarketplaceCatalogListEntitiesOutputEntitySummaryList]
  NextToken: String
}

type AwsMarketplaceCatalogListEntitiesOutputEntitySummaryList {
  Name: String
  EntityType: String
  EntityId: String
  EntityArn: String
  LastModifiedDate: String
  Visibility: String
}

input AwsMarketplaceCatalogListEntitiesInput {
  Catalog: String!
  EntityType: String!
  FilterList: [AwsMarketplaceCatalogSrInput]
  Sort: AwsMarketplaceCatalogSwInput
  NextToken: String
  MaxResults: Int
}

type AwsMarketplaceCatalogStartChangeSetOutput {
  ChangeSetId: String
  ChangeSetArn: String
}

input AwsMarketplaceCatalogStartChangeSetInput {
  Catalog: String!
  ChangeSet: [AwsMarketplaceCatalogStartChangeSetChangeSetInput]!
  ChangeSetName: String
  ClientRequestToken: String
}

input AwsMarketplaceCatalogStartChangeSetChangeSetInput {
  ChangeType: String!
  Entity: AwsMarketplaceCatalogSgInput!
  Details: String!
  ChangeName: String
}

input AwsMarketplaceCatalogSgInput {
  Type: String!
  Identifier: String
}

"""AWS Marketplace Commerce Analytics (2015-07-01)"""
type AwsMarketplaceCommerceAnalytics {
  generateDataSet(input: AwsMarketplaceCommerceAnalyticsGenerateDataSetInput!, config: AwsConfig): AwsMarketplaceCommerceAnalyticsGenerateDataSetOutput
  startSupportDataExport(input: AwsMarketplaceCommerceAnalyticsStartSupportDataExportInput!, config: AwsConfig): AwsMarketplaceCommerceAnalyticsStartSupportDataExportOutput
}

type AwsMarketplaceCommerceAnalyticsGenerateDataSetOutput {
  dataSetRequestId: String
}

input AwsMarketplaceCommerceAnalyticsGenerateDataSetInput {
  dataSetType: String!
  dataSetPublicationDate: Date!
  roleNameArn: String!
  destinationS3BucketName: String!
  destinationS3Prefix: String
  snsTopicArn: String!
  customerDefinedValues: JSON
}

type AwsMarketplaceCommerceAnalyticsStartSupportDataExportOutput {
  dataSetRequestId: String
}

input AwsMarketplaceCommerceAnalyticsStartSupportDataExportInput {
  dataSetType: String!
  fromDate: Date!
  roleNameArn: String!
  destinationS3BucketName: String!
  destinationS3Prefix: String
  snsTopicArn: String!
  customerDefinedValues: JSON
}

"""AWS Marketplace Entitlement Service (2017-01-11)"""
type AwsMarketplaceEntitlementService {
  getEntitlements(input: AwsMarketplaceEntitlementServiceGetEntitlementsInput!, config: AwsConfig): AwsMarketplaceEntitlementServiceGetEntitlementsOutput
}

type AwsMarketplaceEntitlementServiceGetEntitlementsOutput {
  Entitlements: [AwsMarketplaceEntitlementServiceGetEntitlementsOutputEntitlements]
  NextToken: String
}

type AwsMarketplaceEntitlementServiceGetEntitlementsOutputEntitlements {
  ProductCode: String
  Dimension: String
  CustomerIdentifier: String
  Value: AwsMarketplaceEntitlementServiceGetEntitlementsOutputEntitlementsValue
  ExpirationDate: Date
}

type AwsMarketplaceEntitlementServiceGetEntitlementsOutputEntitlementsValue {
  IntegerValue: Int
  DoubleValue: JSON
  BooleanValue: Boolean
  StringValue: String
}

input AwsMarketplaceEntitlementServiceGetEntitlementsInput {
  ProductCode: String!
  Filter: JSON
  NextToken: String
  MaxResults: Int
}

"""AWSMarketplace Metering (2016-01-14)"""
type AwsMarketplaceMetering {
  batchMeterUsage(input: AwsMarketplaceMeteringBatchMeterUsageInput!, config: AwsConfig): AwsMarketplaceMeteringBatchMeterUsageOutput
  meterUsage(input: AwsMarketplaceMeteringMeterUsageInput!, config: AwsConfig): AwsMarketplaceMeteringMeterUsageOutput
  registerUsage(input: AwsMarketplaceMeteringRegisterUsageInput!, config: AwsConfig): AwsMarketplaceMeteringRegisterUsageOutput
  resolveCustomer(input: AwsMarketplaceMeteringResolveCustomerInput!, config: AwsConfig): AwsMarketplaceMeteringResolveCustomerOutput
}

type AwsMarketplaceMeteringBatchMeterUsageOutput {
  Results: [AwsMarketplaceMeteringBatchMeterUsageOutputResults]
  UnprocessedRecords: [AwsMarketplaceMeteringS3]
}

type AwsMarketplaceMeteringBatchMeterUsageOutputResults {
  UsageRecord: AwsMarketplaceMeteringS3
  MeteringRecordId: String
  Status: String
}

type AwsMarketplaceMeteringS3 {
  Timestamp: Date!
  CustomerIdentifier: String!
  Dimension: String!
  Quantity: Int
  UsageAllocations: [AwsMarketplaceMeteringS8]
}

type AwsMarketplaceMeteringS8 {
  AllocatedUsageQuantity: Int!
  Tags: [AwsMarketplaceMeteringS8Tags]
}

type AwsMarketplaceMeteringS8Tags {
  Key: String!
  Value: String!
}

input AwsMarketplaceMeteringBatchMeterUsageInput {
  UsageRecords: [AwsMarketplaceMeteringS3Input]!
  ProductCode: String!
}

input AwsMarketplaceMeteringS3Input {
  Timestamp: Date!
  CustomerIdentifier: String!
  Dimension: String!
  Quantity: Int
  UsageAllocations: [AwsMarketplaceMeteringS8Input]
}

input AwsMarketplaceMeteringS8Input {
  AllocatedUsageQuantity: Int!
  Tags: [AwsMarketplaceMeteringS8TagsInput]
}

input AwsMarketplaceMeteringS8TagsInput {
  Key: String!
  Value: String!
}

type AwsMarketplaceMeteringMeterUsageOutput {
  MeteringRecordId: String
}

input AwsMarketplaceMeteringMeterUsageInput {
  ProductCode: String!
  Timestamp: Date!
  UsageDimension: String!
  UsageQuantity: Int
  DryRun: Boolean
  UsageAllocations: [AwsMarketplaceMeteringS8Input]
}

type AwsMarketplaceMeteringRegisterUsageOutput {
  PublicKeyRotationTimestamp: Date
  Signature: String
}

input AwsMarketplaceMeteringRegisterUsageInput {
  ProductCode: String!
  PublicKeyVersion: Int!
  Nonce: String
}

type AwsMarketplaceMeteringResolveCustomerOutput {
  CustomerIdentifier: String
  ProductCode: String
}

input AwsMarketplaceMeteringResolveCustomerInput {
  RegistrationToken: String!
}

"""AWS MediaConnect (2018-11-14)"""
type AwsMediaConnect {
  addFlowMediaStreams(input: AwsMediaConnectAddFlowMediaStreamsInput!, config: AwsConfig): AwsMediaConnectAddFlowMediaStreamsOutput
  addFlowOutputs(input: AwsMediaConnectAddFlowOutputsInput!, config: AwsConfig): AwsMediaConnectAddFlowOutputsOutput
  addFlowSources(input: AwsMediaConnectAddFlowSourcesInput!, config: AwsConfig): AwsMediaConnectAddFlowSourcesOutput
  addFlowVpcInterfaces(input: AwsMediaConnectAddFlowVpcInterfacesInput!, config: AwsConfig): AwsMediaConnectAddFlowVpcInterfacesOutput
  createFlow(input: AwsMediaConnectCreateFlowInput!, config: AwsConfig): AwsMediaConnectCreateFlowOutput
  deleteFlow(input: AwsMediaConnectDeleteFlowInput!, config: AwsConfig): AwsMediaConnectDeleteFlowOutput
  describeFlow(input: AwsMediaConnectDescribeFlowInput!, config: AwsConfig): AwsMediaConnectDescribeFlowOutput
  describeOffering(input: AwsMediaConnectDescribeOfferingInput!, config: AwsConfig): AwsMediaConnectDescribeOfferingOutput
  describeReservation(input: AwsMediaConnectDescribeReservationInput!, config: AwsConfig): AwsMediaConnectDescribeReservationOutput
  grantFlowEntitlements(input: AwsMediaConnectGrantFlowEntitlementsInput!, config: AwsConfig): AwsMediaConnectGrantFlowEntitlementsOutput
  listEntitlements(input: AwsMediaConnectListEntitlementsInput, config: AwsConfig): AwsMediaConnectListEntitlementsOutput
  listFlows(input: AwsMediaConnectListFlowsInput, config: AwsConfig): AwsMediaConnectListFlowsOutput
  listOfferings(input: AwsMediaConnectListOfferingsInput, config: AwsConfig): AwsMediaConnectListOfferingsOutput
  listReservations(input: AwsMediaConnectListReservationsInput, config: AwsConfig): AwsMediaConnectListReservationsOutput
  listTagsForResource(input: AwsMediaConnectListTagsForResourceInput!, config: AwsConfig): AwsMediaConnectListTagsForResourceOutput
  purchaseOffering(input: AwsMediaConnectPurchaseOfferingInput!, config: AwsConfig): AwsMediaConnectPurchaseOfferingOutput
  removeFlowMediaStream(input: AwsMediaConnectRemoveFlowMediaStreamInput!, config: AwsConfig): AwsMediaConnectRemoveFlowMediaStreamOutput
  removeFlowOutput(input: AwsMediaConnectRemoveFlowOutputInput!, config: AwsConfig): AwsMediaConnectRemoveFlowOutputOutput
  removeFlowSource(input: AwsMediaConnectRemoveFlowSourceInput!, config: AwsConfig): AwsMediaConnectRemoveFlowSourceOutput
  removeFlowVpcInterface(input: AwsMediaConnectRemoveFlowVpcInterfaceInput!, config: AwsConfig): AwsMediaConnectRemoveFlowVpcInterfaceOutput
  revokeFlowEntitlement(input: AwsMediaConnectRevokeFlowEntitlementInput!, config: AwsConfig): AwsMediaConnectRevokeFlowEntitlementOutput
  startFlow(input: AwsMediaConnectStartFlowInput!, config: AwsConfig): AwsMediaConnectStartFlowOutput
  stopFlow(input: AwsMediaConnectStopFlowInput!, config: AwsConfig): AwsMediaConnectStopFlowOutput
  tagResource(input: AwsMediaConnectTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaConnectUntagResourceInput!, config: AwsConfig): JSON
  updateFlow(input: AwsMediaConnectUpdateFlowInput!, config: AwsConfig): AwsMediaConnectUpdateFlowOutput
  updateFlowEntitlement(input: AwsMediaConnectUpdateFlowEntitlementInput!, config: AwsConfig): AwsMediaConnectUpdateFlowEntitlementOutput
  updateFlowMediaStream(input: AwsMediaConnectUpdateFlowMediaStreamInput!, config: AwsConfig): AwsMediaConnectUpdateFlowMediaStreamOutput
  updateFlowOutput(input: AwsMediaConnectUpdateFlowOutputInput!, config: AwsConfig): AwsMediaConnectUpdateFlowOutputOutput
  updateFlowSource(input: AwsMediaConnectUpdateFlowSourceInput!, config: AwsConfig): AwsMediaConnectUpdateFlowSourceOutput
}

type AwsMediaConnectAddFlowMediaStreamsOutput {
  FlowArn: String
  MediaStreams: [AwsMediaConnectSf]
}

type AwsMediaConnectSf {
  Attributes: AwsMediaConnectSfAttributes
  ClockRate: Int
  Description: String
  Fmt: Int!
  MediaStreamId: Int!
  MediaStreamName: String!
  MediaStreamType: String!
  VideoFormat: String
}

type AwsMediaConnectSfAttributes {
  Fmtp: AwsMediaConnectSfAttributesFmtp!
  Lang: String
}

type AwsMediaConnectSfAttributesFmtp {
  ChannelOrder: String
  Colorimetry: String
  ExactFramerate: String
  Par: String
  Range: String
  ScanMode: String
  Tcs: String
}

input AwsMediaConnectAddFlowMediaStreamsInput {
  FlowArn: String!
  MediaStreams: [AwsMediaConnectS3Input]!
}

input AwsMediaConnectS3Input {
  Attributes: AwsMediaConnectS5Input
  ClockRate: Int
  Description: String
  MediaStreamId: Int!
  MediaStreamName: String!
  MediaStreamType: String!
  VideoFormat: String
}

input AwsMediaConnectS5Input {
  Fmtp: AwsMediaConnectS5FmtpInput
  Lang: String
}

input AwsMediaConnectS5FmtpInput {
  ChannelOrder: String
  Colorimetry: String
  ExactFramerate: String
  Par: String
  Range: String
  ScanMode: String
  Tcs: String
}

type AwsMediaConnectAddFlowOutputsOutput {
  FlowArn: String
  Outputs: [AwsMediaConnectS12]
}

type AwsMediaConnectS12 {
  DataTransferSubscriberFeePercent: Int
  Description: String
  Destination: String
  Encryption: AwsMediaConnectSm
  EntitlementArn: String
  ListenerAddress: String
  MediaLiveInputArn: String
  MediaStreamOutputConfigurations: [AwsMediaConnectS12MediaStreamOutputConfigurations]
  Name: String!
  OutputArn: String!
  Port: Int
  Transport: AwsMediaConnectS19
  VpcInterfaceAttachment: AwsMediaConnectSz
}

type AwsMediaConnectSm {
  Algorithm: String
  ConstantInitializationVector: String
  DeviceId: String
  KeyType: String
  Region: String
  ResourceId: String
  RoleArn: String!
  SecretArn: String
  Url: String
}

type AwsMediaConnectS12MediaStreamOutputConfigurations {
  DestinationConfigurations: [AwsMediaConnectS12MediaStreamOutputConfigurationsDestinationConfigurations]
  EncodingName: String!
  EncodingParameters: AwsMediaConnectS12MediaStreamOutputConfigurationsEncodingParameters
  MediaStreamName: String!
}

type AwsMediaConnectS12MediaStreamOutputConfigurationsDestinationConfigurations {
  DestinationIp: String!
  DestinationPort: Int!
  Interface: AwsMediaConnectS17!
  OutboundIp: String!
}

type AwsMediaConnectS17 {
  Name: String!
}

type AwsMediaConnectS12MediaStreamOutputConfigurationsEncodingParameters {
  CompressionFactor: JSON!
  EncoderProfile: String!
}

type AwsMediaConnectS19 {
  CidrAllowList: [String]
  MaxBitrate: Int
  MaxLatency: Int
  MaxSyncBuffer: Int
  MinLatency: Int
  Protocol: String!
  RemoteId: String
  SmoothingLatency: Int
  StreamId: String
}

type AwsMediaConnectSz {
  VpcInterfaceName: String
}

input AwsMediaConnectAddFlowOutputsInput {
  FlowArn: String!
  Outputs: [AwsMediaConnectSjInput]!
}

input AwsMediaConnectSjInput {
  CidrAllowList: [String]
  Description: String
  Destination: String
  Encryption: AwsMediaConnectSmInput
  MaxLatency: Int
  MediaStreamOutputConfigurations: [AwsMediaConnectSpInput]
  MinLatency: Int
  Name: String
  Port: Int
  Protocol: String!
  RemoteId: String
  SmoothingLatency: Int
  StreamId: String
  VpcInterfaceAttachment: AwsMediaConnectSzInput
}

input AwsMediaConnectSmInput {
  Algorithm: String
  ConstantInitializationVector: String
  DeviceId: String
  KeyType: String
  Region: String
  ResourceId: String
  RoleArn: String!
  SecretArn: String
  Url: String
}

input AwsMediaConnectSpInput {
  DestinationConfigurations: [AwsMediaConnectSpDestinationConfigurationsInput]
  EncodingName: String!
  EncodingParameters: AwsMediaConnectSpEncodingParametersInput
  MediaStreamName: String!
}

input AwsMediaConnectSpDestinationConfigurationsInput {
  DestinationIp: String!
  DestinationPort: Int!
  Interface: AwsMediaConnectStInput!
}

input AwsMediaConnectStInput {
  Name: String!
}

input AwsMediaConnectSpEncodingParametersInput {
  CompressionFactor: JSON!
  EncoderProfile: String!
}

input AwsMediaConnectSzInput {
  VpcInterfaceName: String
}

type AwsMediaConnectAddFlowSourcesOutput {
  FlowArn: String
  Sources: [AwsMediaConnectS1j]
}

type AwsMediaConnectS1j {
  DataTransferSubscriberFeePercent: Int
  Decryption: AwsMediaConnectSm
  Description: String
  EntitlementArn: String
  IngestIp: String
  IngestPort: Int
  MediaStreamSourceConfigurations: [AwsMediaConnectS1jMediaStreamSourceConfigurations]
  Name: String!
  SourceArn: String!
  Transport: AwsMediaConnectS19
  VpcInterfaceName: String
  WhitelistCidr: String
}

type AwsMediaConnectS1jMediaStreamSourceConfigurations {
  EncodingName: String!
  InputConfigurations: [AwsMediaConnectS1jMediaStreamSourceConfigurationsInputConfigurations]
  MediaStreamName: String!
}

type AwsMediaConnectS1jMediaStreamSourceConfigurationsInputConfigurations {
  InputIp: String!
  InputPort: Int!
  Interface: AwsMediaConnectS17!
}

input AwsMediaConnectAddFlowSourcesInput {
  FlowArn: String!
  Sources: [AwsMediaConnectS1cInput]!
}

input AwsMediaConnectS1cInput {
  Decryption: AwsMediaConnectSmInput
  Description: String
  EntitlementArn: String
  IngestPort: Int
  MaxBitrate: Int
  MaxLatency: Int
  MaxSyncBuffer: Int
  MediaStreamSourceConfigurations: [AwsMediaConnectS1dInput]
  MinLatency: Int
  Name: String
  Protocol: String
  StreamId: String
  VpcInterfaceName: String
  WhitelistCidr: String
}

input AwsMediaConnectS1dInput {
  EncodingName: String!
  InputConfigurations: [AwsMediaConnectS1dInputConfigurationsInput]
  MediaStreamName: String!
}

input AwsMediaConnectS1dInputConfigurationsInput {
  InputPort: Int!
  Interface: AwsMediaConnectStInput!
}

type AwsMediaConnectAddFlowVpcInterfacesOutput {
  FlowArn: String
  VpcInterfaces: [AwsMediaConnectS1t]
}

type AwsMediaConnectS1t {
  Name: String!
  NetworkInterfaceIds: [String]!
  NetworkInterfaceType: String!
  RoleArn: String!
  SecurityGroupIds: [String]!
  SubnetId: String!
}

input AwsMediaConnectAddFlowVpcInterfacesInput {
  FlowArn: String!
  VpcInterfaces: [AwsMediaConnectS1pInput]!
}

input AwsMediaConnectS1pInput {
  Name: String!
  NetworkInterfaceType: String
  RoleArn: String!
  SecurityGroupIds: [String]!
  SubnetId: String!
}

type AwsMediaConnectCreateFlowOutput {
  Flow: AwsMediaConnectS24
}

type AwsMediaConnectS24 {
  AvailabilityZone: String!
  Description: String
  EgressIp: String
  Entitlements: [AwsMediaConnectS26]!
  FlowArn: String!
  MediaStreams: [AwsMediaConnectSf]
  Name: String!
  Outputs: [AwsMediaConnectS12]!
  Source: AwsMediaConnectS1j!
  SourceFailoverConfig: AwsMediaConnectS1z
  Sources: [AwsMediaConnectS1j]
  Status: String!
  VpcInterfaces: [AwsMediaConnectS1t]
}

type AwsMediaConnectS26 {
  DataTransferSubscriberFeePercent: Int
  Description: String
  Encryption: AwsMediaConnectSm
  EntitlementArn: String!
  EntitlementStatus: String
  Name: String!
  Subscribers: [String]!
}

type AwsMediaConnectS1z {
  FailoverMode: String
  RecoveryWindow: Int
  SourcePriority: AwsMediaConnectS21
  State: String
}

type AwsMediaConnectS21 {
  PrimarySource: String
}

input AwsMediaConnectCreateFlowInput {
  AvailabilityZone: String
  Entitlements: [AwsMediaConnectS1wInput]
  MediaStreams: [AwsMediaConnectS3Input]
  Name: String!
  Outputs: [AwsMediaConnectSjInput]
  Source: AwsMediaConnectS1cInput
  SourceFailoverConfig: AwsMediaConnectS1zInput
  Sources: [AwsMediaConnectS1cInput]
  VpcInterfaces: [AwsMediaConnectS1pInput]
}

input AwsMediaConnectS1wInput {
  DataTransferSubscriberFeePercent: Int
  Description: String
  Encryption: AwsMediaConnectSmInput
  EntitlementStatus: String
  Name: String
  Subscribers: [String]!
}

input AwsMediaConnectS1zInput {
  FailoverMode: String
  RecoveryWindow: Int
  SourcePriority: AwsMediaConnectS21Input
  State: String
}

input AwsMediaConnectS21Input {
  PrimarySource: String
}

type AwsMediaConnectDeleteFlowOutput {
  FlowArn: String
  Status: String
}

input AwsMediaConnectDeleteFlowInput {
  FlowArn: String!
}

type AwsMediaConnectDescribeFlowOutput {
  Flow: AwsMediaConnectS24
  Messages: AwsMediaConnectDescribeFlowOutputMessages
}

type AwsMediaConnectDescribeFlowOutputMessages {
  Errors: [String]!
}

input AwsMediaConnectDescribeFlowInput {
  FlowArn: String!
}

type AwsMediaConnectDescribeOfferingOutput {
  Offering: AwsMediaConnectS2f
}

type AwsMediaConnectS2f {
  CurrencyCode: String!
  Duration: Int!
  DurationUnits: String!
  OfferingArn: String!
  OfferingDescription: String!
  PricePerUnit: String!
  PriceUnits: String!
  ResourceSpecification: AwsMediaConnectS2i!
}

type AwsMediaConnectS2i {
  ReservedBitrate: Int
  ResourceType: String!
}

input AwsMediaConnectDescribeOfferingInput {
  OfferingArn: String!
}

type AwsMediaConnectDescribeReservationOutput {
  Reservation: AwsMediaConnectS2m
}

type AwsMediaConnectS2m {
  CurrencyCode: String!
  Duration: Int!
  DurationUnits: String!
  End: String!
  OfferingArn: String!
  OfferingDescription: String!
  PricePerUnit: String!
  PriceUnits: String!
  ReservationArn: String!
  ReservationName: String!
  ReservationState: String!
  ResourceSpecification: AwsMediaConnectS2i!
  Start: String!
}

input AwsMediaConnectDescribeReservationInput {
  ReservationArn: String!
}

type AwsMediaConnectGrantFlowEntitlementsOutput {
  Entitlements: [AwsMediaConnectS26]
  FlowArn: String
}

input AwsMediaConnectGrantFlowEntitlementsInput {
  Entitlements: [AwsMediaConnectS1wInput]!
  FlowArn: String!
}

type AwsMediaConnectListEntitlementsOutput {
  Entitlements: [AwsMediaConnectListEntitlementsOutputEntitlements]
  NextToken: String
}

type AwsMediaConnectListEntitlementsOutputEntitlements {
  DataTransferSubscriberFeePercent: Int
  EntitlementArn: String!
  EntitlementName: String!
}

input AwsMediaConnectListEntitlementsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaConnectListFlowsOutput {
  Flows: [AwsMediaConnectListFlowsOutputFlows]
  NextToken: String
}

type AwsMediaConnectListFlowsOutputFlows {
  AvailabilityZone: String!
  Description: String!
  FlowArn: String!
  Name: String!
  SourceType: String!
  Status: String!
}

input AwsMediaConnectListFlowsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaConnectListOfferingsOutput {
  NextToken: String
  Offerings: [AwsMediaConnectS2f]
}

input AwsMediaConnectListOfferingsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaConnectListReservationsOutput {
  NextToken: String
  Reservations: [AwsMediaConnectS2m]
}

input AwsMediaConnectListReservationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaConnectListTagsForResourceOutput {
  Tags: JSON
}

input AwsMediaConnectListTagsForResourceInput {
  ResourceArn: String!
}

type AwsMediaConnectPurchaseOfferingOutput {
  Reservation: AwsMediaConnectS2m
}

input AwsMediaConnectPurchaseOfferingInput {
  OfferingArn: String!
  ReservationName: String!
  Start: String!
}

type AwsMediaConnectRemoveFlowMediaStreamOutput {
  FlowArn: String
  MediaStreamName: String
}

input AwsMediaConnectRemoveFlowMediaStreamInput {
  FlowArn: String!
  MediaStreamName: String!
}

type AwsMediaConnectRemoveFlowOutputOutput {
  FlowArn: String
  OutputArn: String
}

input AwsMediaConnectRemoveFlowOutputInput {
  FlowArn: String!
  OutputArn: String!
}

type AwsMediaConnectRemoveFlowSourceOutput {
  FlowArn: String
  SourceArn: String
}

input AwsMediaConnectRemoveFlowSourceInput {
  FlowArn: String!
  SourceArn: String!
}

type AwsMediaConnectRemoveFlowVpcInterfaceOutput {
  FlowArn: String
  NonDeletedNetworkInterfaceIds: [String]
  VpcInterfaceName: String
}

input AwsMediaConnectRemoveFlowVpcInterfaceInput {
  FlowArn: String!
  VpcInterfaceName: String!
}

type AwsMediaConnectRevokeFlowEntitlementOutput {
  EntitlementArn: String
  FlowArn: String
}

input AwsMediaConnectRevokeFlowEntitlementInput {
  EntitlementArn: String!
  FlowArn: String!
}

type AwsMediaConnectStartFlowOutput {
  FlowArn: String
  Status: String
}

input AwsMediaConnectStartFlowInput {
  FlowArn: String!
}

type AwsMediaConnectStopFlowOutput {
  FlowArn: String
  Status: String
}

input AwsMediaConnectStopFlowInput {
  FlowArn: String!
}

input AwsMediaConnectTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsMediaConnectUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsMediaConnectUpdateFlowOutput {
  Flow: AwsMediaConnectS24
}

input AwsMediaConnectUpdateFlowInput {
  FlowArn: String!
  SourceFailoverConfig: AwsMediaConnectUpdateFlowSourceFailoverConfigInput
}

input AwsMediaConnectUpdateFlowSourceFailoverConfigInput {
  FailoverMode: String
  RecoveryWindow: Int
  SourcePriority: AwsMediaConnectS21Input
  State: String
}

type AwsMediaConnectUpdateFlowEntitlementOutput {
  Entitlement: AwsMediaConnectS26
  FlowArn: String
}

input AwsMediaConnectUpdateFlowEntitlementInput {
  Description: String
  Encryption: AwsMediaConnectS3vInput
  EntitlementArn: String!
  EntitlementStatus: String
  FlowArn: String!
  Subscribers: [String]
}

input AwsMediaConnectS3vInput {
  Algorithm: String
  ConstantInitializationVector: String
  DeviceId: String
  KeyType: String
  Region: String
  ResourceId: String
  RoleArn: String
  SecretArn: String
  Url: String
}

type AwsMediaConnectUpdateFlowMediaStreamOutput {
  FlowArn: String
  MediaStream: AwsMediaConnectSf
}

input AwsMediaConnectUpdateFlowMediaStreamInput {
  Attributes: AwsMediaConnectS5Input
  ClockRate: Int
  Description: String
  FlowArn: String!
  MediaStreamName: String!
  MediaStreamType: String
  VideoFormat: String
}

type AwsMediaConnectUpdateFlowOutputOutput {
  FlowArn: String
  Output: AwsMediaConnectS12
}

input AwsMediaConnectUpdateFlowOutputInput {
  CidrAllowList: [String]
  Description: String
  Destination: String
  Encryption: AwsMediaConnectS3vInput
  FlowArn: String!
  MaxLatency: Int
  MediaStreamOutputConfigurations: [AwsMediaConnectSpInput]
  MinLatency: Int
  OutputArn: String!
  Port: Int
  Protocol: String
  RemoteId: String
  SmoothingLatency: Int
  StreamId: String
  VpcInterfaceAttachment: AwsMediaConnectSzInput
}

type AwsMediaConnectUpdateFlowSourceOutput {
  FlowArn: String
  Source: AwsMediaConnectS1j
}

input AwsMediaConnectUpdateFlowSourceInput {
  Decryption: AwsMediaConnectS3vInput
  Description: String
  EntitlementArn: String
  FlowArn: String!
  IngestPort: Int
  MaxBitrate: Int
  MaxLatency: Int
  MaxSyncBuffer: Int
  MediaStreamSourceConfigurations: [AwsMediaConnectS1dInput]
  MinLatency: Int
  Protocol: String
  SourceArn: String!
  StreamId: String
  VpcInterfaceName: String
  WhitelistCidr: String
}

"""AWS Elemental MediaConvert (2017-08-29)"""
type AwsMediaConvert {
  associateCertificate(input: AwsMediaConvertAssociateCertificateInput!, config: AwsConfig): JSON
  cancelJob(input: AwsMediaConvertCancelJobInput!, config: AwsConfig): JSON
  createJob(input: AwsMediaConvertCreateJobInput!, config: AwsConfig): AwsMediaConvertCreateJobOutput
  createJobTemplate(input: AwsMediaConvertCreateJobTemplateInput!, config: AwsConfig): AwsMediaConvertCreateJobTemplateOutput
  createPreset(input: AwsMediaConvertCreatePresetInput!, config: AwsConfig): AwsMediaConvertCreatePresetOutput
  createQueue(input: AwsMediaConvertCreateQueueInput!, config: AwsConfig): AwsMediaConvertCreateQueueOutput
  deleteJobTemplate(input: AwsMediaConvertDeleteJobTemplateInput!, config: AwsConfig): JSON
  deletePreset(input: AwsMediaConvertDeletePresetInput!, config: AwsConfig): JSON
  deleteQueue(input: AwsMediaConvertDeleteQueueInput!, config: AwsConfig): JSON
  describeEndpoints(input: AwsMediaConvertDescribeEndpointsInput, config: AwsConfig): AwsMediaConvertDescribeEndpointsOutput
  disassociateCertificate(input: AwsMediaConvertDisassociateCertificateInput!, config: AwsConfig): JSON
  getJob(input: AwsMediaConvertGetJobInput!, config: AwsConfig): AwsMediaConvertGetJobOutput
  getJobTemplate(input: AwsMediaConvertGetJobTemplateInput!, config: AwsConfig): AwsMediaConvertGetJobTemplateOutput
  getPreset(input: AwsMediaConvertGetPresetInput!, config: AwsConfig): AwsMediaConvertGetPresetOutput
  getQueue(input: AwsMediaConvertGetQueueInput!, config: AwsConfig): AwsMediaConvertGetQueueOutput
  listJobTemplates(input: AwsMediaConvertListJobTemplatesInput, config: AwsConfig): AwsMediaConvertListJobTemplatesOutput
  listJobs(input: AwsMediaConvertListJobsInput, config: AwsConfig): AwsMediaConvertListJobsOutput
  listPresets(input: AwsMediaConvertListPresetsInput, config: AwsConfig): AwsMediaConvertListPresetsOutput
  listQueues(input: AwsMediaConvertListQueuesInput, config: AwsConfig): AwsMediaConvertListQueuesOutput
  listTagsForResource(input: AwsMediaConvertListTagsForResourceInput!, config: AwsConfig): AwsMediaConvertListTagsForResourceOutput
  tagResource(input: AwsMediaConvertTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaConvertUntagResourceInput!, config: AwsConfig): JSON
  updateJobTemplate(input: AwsMediaConvertUpdateJobTemplateInput!, config: AwsConfig): AwsMediaConvertUpdateJobTemplateOutput
  updatePreset(input: AwsMediaConvertUpdatePresetInput!, config: AwsConfig): AwsMediaConvertUpdatePresetOutput
  updateQueue(input: AwsMediaConvertUpdateQueueInput!, config: AwsConfig): AwsMediaConvertUpdateQueueOutput
}

input AwsMediaConvertAssociateCertificateInput {
  Arn: String!
}

input AwsMediaConvertCancelJobInput {
  Id: String!
}

type AwsMediaConvertCreateJobOutput {
  Job: AwsMediaConvertSh2
}

type AwsMediaConvertSh2 {
  AccelerationSettings: AwsMediaConvertS7
  AccelerationStatus: String
  Arn: String
  BillingTagsSource: String
  CreatedAt: Date
  CurrentPhase: String
  ErrorCode: Int
  ErrorMessage: String
  HopDestinations: [AwsMediaConvertSa]
  Id: String
  JobPercentComplete: Int
  JobTemplate: String
  Messages: AwsMediaConvertSh2Messages
  OutputGroupDetails: [AwsMediaConvertSh2OutputGroupDetails]
  Priority: Int
  Queue: String
  QueueTransitions: [AwsMediaConvertSh2QueueTransitions]
  RetryCount: Int
  Role: String!
  Settings: AwsMediaConvertSe!
  SimulateReservedQueue: String
  Status: String
  StatusUpdateInterval: String
  Timing: AwsMediaConvertSh2Timing
  UserMetadata: JSON
}

type AwsMediaConvertS7 {
  Mode: String!
}

type AwsMediaConvertSa {
  Priority: Int
  Queue: String
  WaitMinutes: Int
}

type AwsMediaConvertSh2Messages {
  Info: [String]
  Warning: [String]
}

type AwsMediaConvertSh2OutputGroupDetails {
  OutputDetails: [AwsMediaConvertSh2OutputGroupDetailsOutputDetails]
}

type AwsMediaConvertSh2OutputGroupDetailsOutputDetails {
  DurationInMs: Int
  VideoDetails: AwsMediaConvertSh2OutputGroupDetailsOutputDetailsVideoDetails
}

type AwsMediaConvertSh2OutputGroupDetailsOutputDetailsVideoDetails {
  HeightInPx: Int
  WidthInPx: Int
}

type AwsMediaConvertSh2QueueTransitions {
  DestinationQueue: String
  SourceQueue: String
  Timestamp: Date
}

type AwsMediaConvertSe {
  AdAvailOffset: Int
  AvailBlanking: AwsMediaConvertSg
  Esam: AwsMediaConvertSi
  Inputs: [AwsMediaConvertSeInputs]
  KantarWatermark: AwsMediaConvertS32
  MotionImageInserter: AwsMediaConvertS3a
  NielsenConfiguration: AwsMediaConvertS3i
  NielsenNonLinearWatermark: AwsMediaConvertS3k
  OutputGroups: [AwsMediaConvertS3r]
  TimecodeConfig: AwsMediaConvertSgr
  TimedMetadataInsertion: AwsMediaConvertSgu
}

type AwsMediaConvertSg {
  AvailBlankingImage: String
}

type AwsMediaConvertSi {
  ManifestConfirmConditionNotification: AwsMediaConvertSiManifestConfirmConditionNotification
  ResponseSignalPreroll: Int
  SignalProcessingNotification: AwsMediaConvertSiSignalProcessingNotification
}

type AwsMediaConvertSiManifestConfirmConditionNotification {
  MccXml: String
}

type AwsMediaConvertSiSignalProcessingNotification {
  SccXml: String
}

type AwsMediaConvertSeInputs {
  AudioSelectorGroups: JSON
  AudioSelectors: JSON
  CaptionSelectors: JSON
  Crop: AwsMediaConvertS20
  DeblockFilter: String
  DecryptionSettings: AwsMediaConvertSeInputsDecryptionSettings
  DenoiseFilter: String
  FileInput: String
  FilterEnable: String
  FilterStrength: Int
  ImageInserter: AwsMediaConvertS2d
  InputClippings: [AwsMediaConvertS2k]
  InputScanType: String
  Position: AwsMediaConvertS20
  ProgramNumber: Int
  PsiControl: String
  SupplementalImps: [String]
  TimecodeSource: String
  TimecodeStart: String
  VideoSelector: AwsMediaConvertS2t
}

type AwsMediaConvertS20 {
  Height: Int
  Width: Int
  X: Int
  Y: Int
}

type AwsMediaConvertSeInputsDecryptionSettings {
  DecryptionMode: String
  EncryptedDecryptionKey: String
  InitializationVector: String
  KmsKeyRegion: String
}

type AwsMediaConvertS2d {
  InsertableImages: [AwsMediaConvertS2dInsertableImages]
}

type AwsMediaConvertS2dInsertableImages {
  Duration: Int
  FadeIn: Int
  FadeOut: Int
  Height: Int
  ImageInserterInput: String
  ImageX: Int
  ImageY: Int
  Layer: Int
  Opacity: Int
  StartTime: String
  Width: Int
}

type AwsMediaConvertS2k {
  EndTimecode: String
  StartTimecode: String
}

type AwsMediaConvertS2t {
  AlphaBehavior: String
  ColorSpace: String
  ColorSpaceUsage: String
  Hdr10Metadata: AwsMediaConvertS2x
  Pid: Int
  ProgramNumber: Int
  Rotate: String
  SampleRange: String
}

type AwsMediaConvertS2x {
  BluePrimaryX: Int
  BluePrimaryY: Int
  GreenPrimaryX: Int
  GreenPrimaryY: Int
  MaxContentLightLevel: Int
  MaxFrameAverageLightLevel: Int
  MaxLuminance: Int
  MinLuminance: Int
  RedPrimaryX: Int
  RedPrimaryY: Int
  WhitePointX: Int
  WhitePointY: Int
}

type AwsMediaConvertS32 {
  ChannelName: String
  ContentReference: String
  CredentialsSecretName: String
  FileOffset: JSON
  KantarLicenseId: Int
  KantarServerUrl: String
  LogDestination: String
  Metadata3: String
  Metadata4: String
  Metadata5: String
  Metadata6: String
  Metadata7: String
  Metadata8: String
}

type AwsMediaConvertS3a {
  Framerate: AwsMediaConvertS3aFramerate
  Input: String
  InsertionMode: String
  Offset: AwsMediaConvertS3aOffset
  Playback: String
  StartTime: String
}

type AwsMediaConvertS3aFramerate {
  FramerateDenominator: Int
  FramerateNumerator: Int
}

type AwsMediaConvertS3aOffset {
  ImageX: Int
  ImageY: Int
}

type AwsMediaConvertS3i {
  BreakoutCode: Int
  DistributorId: String
}

type AwsMediaConvertS3k {
  ActiveWatermarkProcess: String
  AdiFilename: String
  AssetId: String
  AssetName: String
  CbetSourceId: String
  EpisodeId: String
  MetadataDestination: String
  SourceId: Int
  SourceWatermarkStatus: String
  TicServerUrl: String
  UniqueTicPerAudioTrack: String
}

type AwsMediaConvertS3r {
  AutomatedEncodingSettings: AwsMediaConvertS3rAutomatedEncodingSettings
  CustomName: String
  Name: String
  OutputGroupSettings: AwsMediaConvertS3rOutputGroupSettings
  Outputs: [AwsMediaConvertS3rOutputs]
}

type AwsMediaConvertS3rAutomatedEncodingSettings {
  AbrSettings: AwsMediaConvertS3rAutomatedEncodingSettingsAbrSettings
}

type AwsMediaConvertS3rAutomatedEncodingSettingsAbrSettings {
  MaxAbrBitrate: Int
  MaxRenditions: Int
  MinAbrBitrate: Int
}

type AwsMediaConvertS3rOutputGroupSettings {
  CmafGroupSettings: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettings
  DashIsoGroupSettings: AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettings
  FileGroupSettings: AwsMediaConvertS3rOutputGroupSettingsFileGroupSettings
  HlsGroupSettings: AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettings
  MsSmoothGroupSettings: AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettings
  Type: String
}

type AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettings {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsAdditionalManifests]
  BaseUrl: String
  ClientCache: String
  CodecSpecification: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43
  Encryption: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryption
  FragmentLength: Int
  ManifestCompression: String
  ManifestDurationFormat: String
  MinBufferTime: Int
  MinFinalSegmentLength: JSON
  MpdProfile: String
  PtsOffsetHandlingForBFrames: String
  SegmentControl: String
  SegmentLength: Int
  StreamInfResolution: String
  WriteDashManifest: String
  WriteHlsManifest: String
  WriteSegmentTimelineInRepresentation: String
}

type AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsAdditionalManifests {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

type AwsMediaConvertS43 {
  S3Settings: AwsMediaConvertS43S3Settings
}

type AwsMediaConvertS43S3Settings {
  AccessControl: AwsMediaConvertS43S3SettingsAccessControl
  Encryption: AwsMediaConvertS43S3SettingsEncryption
}

type AwsMediaConvertS43S3SettingsAccessControl {
  CannedAcl: String
}

type AwsMediaConvertS43S3SettingsEncryption {
  EncryptionType: String
  KmsKeyArn: String
}

type AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryption {
  ConstantInitializationVector: String
  EncryptionMethod: String
  InitializationVectorInManifest: String
  SpekeKeyProvider: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionSpekeKeyProvider
  StaticKeyProvider: AwsMediaConvertS4j
  Type: String
}

type AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionSpekeKeyProvider {
  CertificateArn: String
  DashSignaledSystemIds: [String]
  HlsSignaledSystemIds: [String]
  ResourceId: String
  Url: String
}

type AwsMediaConvertS4j {
  KeyFormat: String
  KeyFormatVersions: String
  StaticKeyValue: String
  Url: String
}

type AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettings {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsAdditionalManifests]
  AudioChannelConfigSchemeIdUri: String
  BaseUrl: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43
  Encryption: AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsEncryption
  FragmentLength: Int
  HbbtvCompliance: String
  MinBufferTime: Int
  MinFinalSegmentLength: JSON
  MpdProfile: String
  PtsOffsetHandlingForBFrames: String
  SegmentControl: String
  SegmentLength: Int
  WriteSegmentTimelineInRepresentation: String
}

type AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsAdditionalManifests {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

type AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsEncryption {
  PlaybackDeviceCompatibility: String
  SpekeKeyProvider: AwsMediaConvertS54
}

type AwsMediaConvertS54 {
  CertificateArn: String
  ResourceId: String
  SystemIds: [String]
  Url: String
}

type AwsMediaConvertS3rOutputGroupSettingsFileGroupSettings {
  Destination: String
  DestinationSettings: AwsMediaConvertS43
}

type AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettings {
  AdMarkers: [String]
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsAdditionalManifests]
  AudioOnlyHeader: String
  BaseUrl: String
  CaptionLanguageMappings: [AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappings]
  CaptionLanguageSetting: String
  ClientCache: String
  CodecSpecification: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43
  DirectoryStructure: String
  Encryption: AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsEncryption
  ManifestCompression: String
  ManifestDurationFormat: String
  MinFinalSegmentLength: JSON
  MinSegmentLength: Int
  OutputSelection: String
  ProgramDateTime: String
  ProgramDateTimePeriod: Int
  SegmentControl: String
  SegmentLength: Int
  SegmentsPerSubdirectory: Int
  StreamInfResolution: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
  TimestampDeltaMilliseconds: Int
}

type AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsAdditionalManifests {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

type AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappings {
  CaptionChannel: Int
  CustomLanguageCode: String
  LanguageCode: String
  LanguageDescription: String
}

type AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsEncryption {
  ConstantInitializationVector: String
  EncryptionMethod: String
  InitializationVectorInManifest: String
  OfflineEncrypted: String
  SpekeKeyProvider: AwsMediaConvertS54
  StaticKeyProvider: AwsMediaConvertS4j
  Type: String
}

type AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettings {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsAdditionalManifests]
  AudioDeduplication: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43
  Encryption: AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsEncryption
  FragmentLength: Int
  ManifestEncoding: String
}

type AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsAdditionalManifests {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

type AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsEncryption {
  SpekeKeyProvider: AwsMediaConvertS54
}

type AwsMediaConvertS3rOutputs {
  AudioDescriptions: [AwsMediaConvertS6b]
  CaptionDescriptions: [AwsMediaConvertS3rOutputsCaptionDescriptions]
  ContainerSettings: AwsMediaConvertS9r
  Extension: String
  NameModifier: String
  OutputSettings: AwsMediaConvertS3rOutputsOutputSettings
  Preset: String
  VideoDescription: AwsMediaConvertSbr
}

type AwsMediaConvertS6b {
  AudioChannelTaggingSettings: AwsMediaConvertS6bAudioChannelTaggingSettings
  AudioNormalizationSettings: AwsMediaConvertS6bAudioNormalizationSettings
  AudioSourceName: String
  AudioType: Int
  AudioTypeControl: String
  CodecSettings: AwsMediaConvertS6bCodecSettings
  CustomLanguageCode: String
  LanguageCode: String
  LanguageCodeControl: String
  RemixSettings: AwsMediaConvertS14
  StreamName: String
}

type AwsMediaConvertS6bAudioChannelTaggingSettings {
  ChannelTag: String
}

type AwsMediaConvertS6bAudioNormalizationSettings {
  Algorithm: String
  AlgorithmControl: String
  CorrectionGateLevel: Int
  LoudnessLogging: String
  PeakCalculation: String
  TargetLkfs: JSON
}

type AwsMediaConvertS6bCodecSettings {
  AacSettings: AwsMediaConvertS6bCodecSettingsAacSettings
  Ac3Settings: AwsMediaConvertS6bCodecSettingsAc3Settings
  AiffSettings: AwsMediaConvertS6bCodecSettingsAiffSettings
  Codec: String
  Eac3AtmosSettings: AwsMediaConvertS6bCodecSettingsEac3AtmosSettings
  Eac3Settings: AwsMediaConvertS6bCodecSettingsEac3Settings
  Mp2Settings: AwsMediaConvertS6bCodecSettingsMp2Settings
  Mp3Settings: AwsMediaConvertS6bCodecSettingsMp3Settings
  OpusSettings: AwsMediaConvertS6bCodecSettingsOpusSettings
  VorbisSettings: AwsMediaConvertS6bCodecSettingsVorbisSettings
  WavSettings: AwsMediaConvertS6bCodecSettingsWavSettings
}

type AwsMediaConvertS6bCodecSettingsAacSettings {
  AudioDescriptionBroadcasterMix: String
  Bitrate: Int
  CodecProfile: String
  CodingMode: String
  RateControlMode: String
  RawFormat: String
  SampleRate: Int
  Specification: String
  VbrQuality: String
}

type AwsMediaConvertS6bCodecSettingsAc3Settings {
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  Dialnorm: Int
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionProfile: String
  DynamicRangeCompressionRf: String
  LfeFilter: String
  MetadataControl: String
  SampleRate: Int
}

type AwsMediaConvertS6bCodecSettingsAiffSettings {
  BitDepth: Int
  Channels: Int
  SampleRate: Int
}

type AwsMediaConvertS6bCodecSettingsEac3AtmosSettings {
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  DialogueIntelligence: String
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionRf: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MeteringMode: String
  SampleRate: Int
  SpeechThreshold: Int
  StereoDownmix: String
  SurroundExMode: String
}

type AwsMediaConvertS6bCodecSettingsEac3Settings {
  AttenuationControl: String
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  DcFilter: String
  Dialnorm: Int
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionRf: String
  LfeControl: String
  LfeFilter: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MetadataControl: String
  PassthroughControl: String
  PhaseControl: String
  SampleRate: Int
  StereoDownmix: String
  SurroundExMode: String
  SurroundMode: String
}

type AwsMediaConvertS6bCodecSettingsMp2Settings {
  Bitrate: Int
  Channels: Int
  SampleRate: Int
}

type AwsMediaConvertS6bCodecSettingsMp3Settings {
  Bitrate: Int
  Channels: Int
  RateControlMode: String
  SampleRate: Int
  VbrQuality: Int
}

type AwsMediaConvertS6bCodecSettingsOpusSettings {
  Bitrate: Int
  Channels: Int
  SampleRate: Int
}

type AwsMediaConvertS6bCodecSettingsVorbisSettings {
  Channels: Int
  SampleRate: Int
  VbrQuality: Int
}

type AwsMediaConvertS6bCodecSettingsWavSettings {
  BitDepth: Int
  Channels: Int
  Format: String
  SampleRate: Int
}

type AwsMediaConvertS14 {
  ChannelMapping: AwsMediaConvertS14ChannelMapping
  ChannelsIn: Int
  ChannelsOut: Int
}

type AwsMediaConvertS14ChannelMapping {
  OutputChannels: [AwsMediaConvertS14ChannelMappingOutputChannels]
}

type AwsMediaConvertS14ChannelMappingOutputChannels {
  InputChannels: [Int]
  InputChannelsFineTune: [JSON]
}

type AwsMediaConvertS3rOutputsCaptionDescriptions {
  CaptionSelectorName: String
  CustomLanguageCode: String
  DestinationSettings: AwsMediaConvertS8s
  LanguageCode: String
  LanguageDescription: String
}

type AwsMediaConvertS8s {
  BurninDestinationSettings: AwsMediaConvertS8sBurninDestinationSettings
  DestinationType: String
  DvbSubDestinationSettings: AwsMediaConvertS8sDvbSubDestinationSettings
  EmbeddedDestinationSettings: AwsMediaConvertS8sEmbeddedDestinationSettings
  ImscDestinationSettings: AwsMediaConvertS8sImscDestinationSettings
  SccDestinationSettings: AwsMediaConvertS8sSccDestinationSettings
  TeletextDestinationSettings: AwsMediaConvertS8sTeletextDestinationSettings
  TtmlDestinationSettings: AwsMediaConvertS8sTtmlDestinationSettings
  WebvttDestinationSettings: AwsMediaConvertS8sWebvttDestinationSettings
}

type AwsMediaConvertS8sBurninDestinationSettings {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontScript: String
  FontSize: Int
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextSpacing: String
  XPosition: Int
  YPosition: Int
}

type AwsMediaConvertS8sDvbSubDestinationSettings {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  DdsHandling: String
  DdsXCoordinate: Int
  DdsYCoordinate: Int
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontScript: String
  FontSize: Int
  Height: Int
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  SubtitlingType: String
  TeletextSpacing: String
  Width: Int
  XPosition: Int
  YPosition: Int
}

type AwsMediaConvertS8sEmbeddedDestinationSettings {
  Destination608ChannelNumber: Int
  Destination708ServiceNumber: Int
}

type AwsMediaConvertS8sImscDestinationSettings {
  StylePassthrough: String
}

type AwsMediaConvertS8sSccDestinationSettings {
  Framerate: String
}

type AwsMediaConvertS8sTeletextDestinationSettings {
  PageNumber: String
  PageTypes: [String]
}

type AwsMediaConvertS8sTtmlDestinationSettings {
  StylePassthrough: String
}

type AwsMediaConvertS8sWebvttDestinationSettings {
  StylePassthrough: String
}

type AwsMediaConvertS9r {
  CmfcSettings: AwsMediaConvertS9rCmfcSettings
  Container: String
  F4vSettings: AwsMediaConvertS9rF4vSettings
  M2tsSettings: AwsMediaConvertS9rM2tsSettings
  M3u8Settings: AwsMediaConvertS9rM3u8Settings
  MovSettings: AwsMediaConvertS9rMovSettings
  Mp4Settings: AwsMediaConvertS9rMp4Settings
  MpdSettings: AwsMediaConvertS9rMpdSettings
  MxfSettings: AwsMediaConvertS9rMxfSettings
}

type AwsMediaConvertS9rCmfcSettings {
  AudioDuration: String
  AudioGroupId: String
  AudioRenditionSets: String
  AudioTrackType: String
  DescriptiveVideoServiceFlag: String
  IFrameOnlyManifest: String
  Scte35Esam: String
  Scte35Source: String
}

type AwsMediaConvertS9rF4vSettings {
  MoovPlacement: String
}

type AwsMediaConvertS9rM2tsSettings {
  AudioBufferModel: String
  AudioDuration: String
  AudioFramesPerPes: Int
  AudioPids: [Int]
  Bitrate: Int
  BufferModel: String
  DvbNitSettings: AwsMediaConvertS9rM2tsSettingsDvbNitSettings
  DvbSdtSettings: AwsMediaConvertS9rM2tsSettingsDvbSdtSettings
  DvbSubPids: [Int]
  DvbTdtSettings: AwsMediaConvertS9rM2tsSettingsDvbTdtSettings
  DvbTeletextPid: Int
  EbpAudioInterval: String
  EbpPlacement: String
  EsRateInPes: String
  ForceTsVideoEbpOrder: String
  FragmentTime: JSON
  MaxPcrInterval: Int
  MinEbpInterval: Int
  NielsenId3: String
  NullPacketBitrate: JSON
  PatInterval: Int
  PcrControl: String
  PcrPid: Int
  PmtInterval: Int
  PmtPid: Int
  PrivateMetadataPid: Int
  ProgramNumber: Int
  RateMode: String
  Scte35Esam: AwsMediaConvertS9rM2tsSettingsScte35Esam
  Scte35Pid: Int
  Scte35Source: String
  SegmentationMarkers: String
  SegmentationStyle: String
  SegmentationTime: JSON
  TimedMetadataPid: Int
  TransportStreamId: Int
  VideoPid: Int
}

type AwsMediaConvertS9rM2tsSettingsDvbNitSettings {
  NetworkId: Int
  NetworkName: String
  NitInterval: Int
}

type AwsMediaConvertS9rM2tsSettingsDvbSdtSettings {
  OutputSdt: String
  SdtInterval: Int
  ServiceName: String
  ServiceProviderName: String
}

type AwsMediaConvertS9rM2tsSettingsDvbTdtSettings {
  TdtInterval: Int
}

type AwsMediaConvertS9rM2tsSettingsScte35Esam {
  Scte35EsamPid: Int
}

type AwsMediaConvertS9rM3u8Settings {
  AudioDuration: String
  AudioFramesPerPes: Int
  AudioPids: [Int]
  MaxPcrInterval: Int
  NielsenId3: String
  PatInterval: Int
  PcrControl: String
  PcrPid: Int
  PmtInterval: Int
  PmtPid: Int
  PrivateMetadataPid: Int
  ProgramNumber: Int
  Scte35Pid: Int
  Scte35Source: String
  TimedMetadata: String
  TimedMetadataPid: Int
  TransportStreamId: Int
  VideoPid: Int
}

type AwsMediaConvertS9rMovSettings {
  ClapAtom: String
  CslgAtom: String
  Mpeg2FourCCControl: String
  PaddingControl: String
  Reference: String
}

type AwsMediaConvertS9rMp4Settings {
  AudioDuration: String
  CslgAtom: String
  CttsVersion: Int
  FreeSpaceBox: String
  MoovPlacement: String
  Mp4MajorBrand: String
}

type AwsMediaConvertS9rMpdSettings {
  AccessibilityCaptionHints: String
  AudioDuration: String
  CaptionContainerType: String
  Scte35Esam: String
  Scte35Source: String
}

type AwsMediaConvertS9rMxfSettings {
  AfdSignaling: String
  Profile: String
}

type AwsMediaConvertS3rOutputsOutputSettings {
  HlsSettings: AwsMediaConvertS3rOutputsOutputSettingsHlsSettings
}

type AwsMediaConvertS3rOutputsOutputSettingsHlsSettings {
  AudioGroupId: String
  AudioOnlyContainer: String
  AudioRenditionSets: String
  AudioTrackType: String
  DescriptiveVideoServiceFlag: String
  IFrameOnlyManifest: String
  SegmentModifier: String
}

type AwsMediaConvertSbr {
  AfdSignaling: String
  AntiAlias: String
  CodecSettings: AwsMediaConvertSbrCodecSettings
  ColorMetadata: String
  Crop: AwsMediaConvertS20
  DropFrameTimecode: String
  FixedAfd: Int
  Height: Int
  Position: AwsMediaConvertS20
  RespondToAfd: String
  ScalingBehavior: String
  Sharpness: Int
  TimecodeInsertion: String
  VideoPreprocessors: AwsMediaConvertSbrVideoPreprocessors
  Width: Int
}

type AwsMediaConvertSbrCodecSettings {
  Av1Settings: AwsMediaConvertSbrCodecSettingsAv1Settings
  AvcIntraSettings: AwsMediaConvertSbrCodecSettingsAvcIntraSettings
  Codec: String
  FrameCaptureSettings: AwsMediaConvertSbrCodecSettingsFrameCaptureSettings
  H264Settings: AwsMediaConvertSbrCodecSettingsH264Settings
  H265Settings: AwsMediaConvertSbrCodecSettingsH265Settings
  Mpeg2Settings: AwsMediaConvertSbrCodecSettingsMpeg2Settings
  ProresSettings: AwsMediaConvertSbrCodecSettingsProresSettings
  Vc3Settings: AwsMediaConvertSbrCodecSettingsVc3Settings
  Vp8Settings: AwsMediaConvertSbrCodecSettingsVp8Settings
  Vp9Settings: AwsMediaConvertSbrCodecSettingsVp9Settings
}

type AwsMediaConvertSbrCodecSettingsAv1Settings {
  AdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  MaxBitrate: Int
  NumberBFramesBetweenReferenceFrames: Int
  QvbrSettings: AwsMediaConvertSbrCodecSettingsAv1SettingsQvbrSettings
  RateControlMode: String
  Slices: Int
  SpatialAdaptiveQuantization: String
}

type AwsMediaConvertSbrCodecSettingsAv1SettingsQvbrSettings {
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

type AwsMediaConvertSbrCodecSettingsAvcIntraSettings {
  AvcIntraClass: String
  AvcIntraUhdSettings: AwsMediaConvertSbrCodecSettingsAvcIntraSettingsAvcIntraUhdSettings
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
}

type AwsMediaConvertSbrCodecSettingsAvcIntraSettingsAvcIntraUhdSettings {
  QualityTuningLevel: String
}

type AwsMediaConvertSbrCodecSettingsFrameCaptureSettings {
  FramerateDenominator: Int
  FramerateNumerator: Int
  MaxCaptures: Int
  Quality: Int
}

type AwsMediaConvertSbrCodecSettingsH264Settings {
  AdaptiveQuantization: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  EntropyEncoding: String
  FieldEncoding: String
  FlickerAdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  NumberReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  QvbrSettings: AwsMediaConvertSbrCodecSettingsH264SettingsQvbrSettings
  RateControlMode: String
  RepeatPps: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  Slices: Int
  SlowPal: String
  Softness: Int
  SpatialAdaptiveQuantization: String
  Syntax: String
  Telecine: String
  TemporalAdaptiveQuantization: String
  UnregisteredSeiTimecode: String
}

type AwsMediaConvertSbrCodecSettingsH264SettingsQvbrSettings {
  MaxAverageBitrate: Int
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

type AwsMediaConvertSbrCodecSettingsH265Settings {
  AdaptiveQuantization: String
  AlternateTransferFunctionSei: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  FlickerAdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  NumberReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  QvbrSettings: AwsMediaConvertSbrCodecSettingsH265SettingsQvbrSettings
  RateControlMode: String
  SampleAdaptiveOffsetFilterMode: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  Slices: Int
  SlowPal: String
  SpatialAdaptiveQuantization: String
  Telecine: String
  TemporalAdaptiveQuantization: String
  TemporalIds: String
  Tiles: String
  UnregisteredSeiTimecode: String
  WriteMp4PackagingType: String
}

type AwsMediaConvertSbrCodecSettingsH265SettingsQvbrSettings {
  MaxAverageBitrate: Int
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

type AwsMediaConvertSbrCodecSettingsMpeg2Settings {
  AdaptiveQuantization: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  IntraDcPrecision: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  SlowPal: String
  Softness: Int
  SpatialAdaptiveQuantization: String
  Syntax: String
  Telecine: String
  TemporalAdaptiveQuantization: String
}

type AwsMediaConvertSbrCodecSettingsProresSettings {
  CodecProfile: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
}

type AwsMediaConvertSbrCodecSettingsVc3Settings {
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
  Vc3Class: String
}

type AwsMediaConvertSbrCodecSettingsVp8Settings {
  Bitrate: Int
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  HrdBufferSize: Int
  MaxBitrate: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
}

type AwsMediaConvertSbrCodecSettingsVp9Settings {
  Bitrate: Int
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  HrdBufferSize: Int
  MaxBitrate: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
}

type AwsMediaConvertSbrVideoPreprocessors {
  ColorCorrector: AwsMediaConvertSbrVideoPreprocessorsColorCorrector
  Deinterlacer: AwsMediaConvertSbrVideoPreprocessorsDeinterlacer
  DolbyVision: AwsMediaConvertSbrVideoPreprocessorsDolbyVision
  ImageInserter: AwsMediaConvertS2d
  NoiseReducer: AwsMediaConvertSbrVideoPreprocessorsNoiseReducer
  PartnerWatermarking: AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarking
  TimecodeBurnin: AwsMediaConvertSbrVideoPreprocessorsTimecodeBurnin
}

type AwsMediaConvertSbrVideoPreprocessorsColorCorrector {
  Brightness: Int
  ColorSpaceConversion: String
  Contrast: Int
  Hdr10Metadata: AwsMediaConvertS2x
  Hue: Int
  Saturation: Int
}

type AwsMediaConvertSbrVideoPreprocessorsDeinterlacer {
  Algorithm: String
  Control: String
  Mode: String
}

type AwsMediaConvertSbrVideoPreprocessorsDolbyVision {
  L6Metadata: AwsMediaConvertSbrVideoPreprocessorsDolbyVisionL6Metadata
  L6Mode: String
  Profile: String
}

type AwsMediaConvertSbrVideoPreprocessorsDolbyVisionL6Metadata {
  MaxCll: Int
  MaxFall: Int
}

type AwsMediaConvertSbrVideoPreprocessorsNoiseReducer {
  Filter: String
  FilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerFilterSettings
  SpatialFilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerSpatialFilterSettings
  TemporalFilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerTemporalFilterSettings
}

type AwsMediaConvertSbrVideoPreprocessorsNoiseReducerFilterSettings {
  Strength: Int
}

type AwsMediaConvertSbrVideoPreprocessorsNoiseReducerSpatialFilterSettings {
  PostFilterSharpenStrength: Int
  Speed: Int
  Strength: Int
}

type AwsMediaConvertSbrVideoPreprocessorsNoiseReducerTemporalFilterSettings {
  AggressiveMode: Int
  PostTemporalSharpening: String
  Speed: Int
  Strength: Int
}

type AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarking {
  NexguardFileMarkerSettings: AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingNexguardFileMarkerSettings
}

type AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingNexguardFileMarkerSettings {
  License: String
  Payload: Int
  Preset: String
  Strength: String
}

type AwsMediaConvertSbrVideoPreprocessorsTimecodeBurnin {
  FontSize: Int
  Position: String
  Prefix: String
}

type AwsMediaConvertSgr {
  Anchor: String
  Source: String
  Start: String
  TimestampOffset: String
}

type AwsMediaConvertSgu {
  Id3Insertions: [AwsMediaConvertSguId3Insertions]
}

type AwsMediaConvertSguId3Insertions {
  Id3: String
  Timecode: String
}

type AwsMediaConvertSh2Timing {
  FinishTime: Date
  StartTime: Date
  SubmitTime: Date
}

input AwsMediaConvertCreateJobInput {
  AccelerationSettings: AwsMediaConvertS7Input
  BillingTagsSource: String
  ClientRequestToken: String
  HopDestinations: [AwsMediaConvertSaInput]
  JobTemplate: String
  Priority: Int
  Queue: String
  Role: String!
  Settings: AwsMediaConvertSeInput!
  SimulateReservedQueue: String
  StatusUpdateInterval: String
  Tags: JSON
  UserMetadata: JSON
}

input AwsMediaConvertS7Input {
  Mode: String!
}

input AwsMediaConvertSaInput {
  Priority: Int
  Queue: String
  WaitMinutes: Int
}

input AwsMediaConvertSeInput {
  AdAvailOffset: Int
  AvailBlanking: AwsMediaConvertSgInput
  Esam: AwsMediaConvertSiInput
  Inputs: [AwsMediaConvertSeInputsInput]
  KantarWatermark: AwsMediaConvertS32Input
  MotionImageInserter: AwsMediaConvertS3aInput
  NielsenConfiguration: AwsMediaConvertS3iInput
  NielsenNonLinearWatermark: AwsMediaConvertS3kInput
  OutputGroups: [AwsMediaConvertS3rInput]
  TimecodeConfig: AwsMediaConvertSgrInput
  TimedMetadataInsertion: AwsMediaConvertSguInput
}

input AwsMediaConvertSgInput {
  AvailBlankingImage: String
}

input AwsMediaConvertSiInput {
  ManifestConfirmConditionNotification: AwsMediaConvertSiManifestConfirmConditionNotificationInput
  ResponseSignalPreroll: Int
  SignalProcessingNotification: AwsMediaConvertSiSignalProcessingNotificationInput
}

input AwsMediaConvertSiManifestConfirmConditionNotificationInput {
  MccXml: String
}

input AwsMediaConvertSiSignalProcessingNotificationInput {
  SccXml: String
}

input AwsMediaConvertSeInputsInput {
  AudioSelectorGroups: JSON
  AudioSelectors: JSON
  CaptionSelectors: JSON
  Crop: AwsMediaConvertS20Input
  DeblockFilter: String
  DecryptionSettings: AwsMediaConvertSeInputsDecryptionSettingsInput
  DenoiseFilter: String
  FileInput: String
  FilterEnable: String
  FilterStrength: Int
  ImageInserter: AwsMediaConvertS2dInput
  InputClippings: [AwsMediaConvertS2kInput]
  InputScanType: String
  Position: AwsMediaConvertS20Input
  ProgramNumber: Int
  PsiControl: String
  SupplementalImps: [String]
  TimecodeSource: String
  TimecodeStart: String
  VideoSelector: AwsMediaConvertS2tInput
}

input AwsMediaConvertS20Input {
  Height: Int
  Width: Int
  X: Int
  Y: Int
}

input AwsMediaConvertSeInputsDecryptionSettingsInput {
  DecryptionMode: String
  EncryptedDecryptionKey: String
  InitializationVector: String
  KmsKeyRegion: String
}

input AwsMediaConvertS2dInput {
  InsertableImages: [AwsMediaConvertS2dInsertableImagesInput]
}

input AwsMediaConvertS2dInsertableImagesInput {
  Duration: Int
  FadeIn: Int
  FadeOut: Int
  Height: Int
  ImageInserterInput: String
  ImageX: Int
  ImageY: Int
  Layer: Int
  Opacity: Int
  StartTime: String
  Width: Int
}

input AwsMediaConvertS2kInput {
  EndTimecode: String
  StartTimecode: String
}

input AwsMediaConvertS2tInput {
  AlphaBehavior: String
  ColorSpace: String
  ColorSpaceUsage: String
  Hdr10Metadata: AwsMediaConvertS2xInput
  Pid: Int
  ProgramNumber: Int
  Rotate: String
  SampleRange: String
}

input AwsMediaConvertS2xInput {
  BluePrimaryX: Int
  BluePrimaryY: Int
  GreenPrimaryX: Int
  GreenPrimaryY: Int
  MaxContentLightLevel: Int
  MaxFrameAverageLightLevel: Int
  MaxLuminance: Int
  MinLuminance: Int
  RedPrimaryX: Int
  RedPrimaryY: Int
  WhitePointX: Int
  WhitePointY: Int
}

input AwsMediaConvertS32Input {
  ChannelName: String
  ContentReference: String
  CredentialsSecretName: String
  FileOffset: JSON
  KantarLicenseId: Int
  KantarServerUrl: String
  LogDestination: String
  Metadata3: String
  Metadata4: String
  Metadata5: String
  Metadata6: String
  Metadata7: String
  Metadata8: String
}

input AwsMediaConvertS3aInput {
  Framerate: AwsMediaConvertS3aFramerateInput
  Input: String
  InsertionMode: String
  Offset: AwsMediaConvertS3aOffsetInput
  Playback: String
  StartTime: String
}

input AwsMediaConvertS3aFramerateInput {
  FramerateDenominator: Int
  FramerateNumerator: Int
}

input AwsMediaConvertS3aOffsetInput {
  ImageX: Int
  ImageY: Int
}

input AwsMediaConvertS3iInput {
  BreakoutCode: Int
  DistributorId: String
}

input AwsMediaConvertS3kInput {
  ActiveWatermarkProcess: String
  AdiFilename: String
  AssetId: String
  AssetName: String
  CbetSourceId: String
  EpisodeId: String
  MetadataDestination: String
  SourceId: Int
  SourceWatermarkStatus: String
  TicServerUrl: String
  UniqueTicPerAudioTrack: String
}

input AwsMediaConvertS3rInput {
  AutomatedEncodingSettings: AwsMediaConvertS3rAutomatedEncodingSettingsInput
  CustomName: String
  Name: String
  OutputGroupSettings: AwsMediaConvertS3rOutputGroupSettingsInput
  Outputs: [AwsMediaConvertS3rOutputsInput]
}

input AwsMediaConvertS3rAutomatedEncodingSettingsInput {
  AbrSettings: AwsMediaConvertS3rAutomatedEncodingSettingsAbrSettingsInput
}

input AwsMediaConvertS3rAutomatedEncodingSettingsAbrSettingsInput {
  MaxAbrBitrate: Int
  MaxRenditions: Int
  MinAbrBitrate: Int
}

input AwsMediaConvertS3rOutputGroupSettingsInput {
  CmafGroupSettings: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsInput
  DashIsoGroupSettings: AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsInput
  FileGroupSettings: AwsMediaConvertS3rOutputGroupSettingsFileGroupSettingsInput
  HlsGroupSettings: AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsInput
  MsSmoothGroupSettings: AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsInput
  Type: String
}

input AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsInput {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsAdditionalManifestsInput]
  BaseUrl: String
  ClientCache: String
  CodecSpecification: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43Input
  Encryption: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionInput
  FragmentLength: Int
  ManifestCompression: String
  ManifestDurationFormat: String
  MinBufferTime: Int
  MinFinalSegmentLength: JSON
  MpdProfile: String
  PtsOffsetHandlingForBFrames: String
  SegmentControl: String
  SegmentLength: Int
  StreamInfResolution: String
  WriteDashManifest: String
  WriteHlsManifest: String
  WriteSegmentTimelineInRepresentation: String
}

input AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsAdditionalManifestsInput {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

input AwsMediaConvertS43Input {
  S3Settings: AwsMediaConvertS43S3SettingsInput
}

input AwsMediaConvertS43S3SettingsInput {
  AccessControl: AwsMediaConvertS43S3SettingsAccessControlInput
  Encryption: AwsMediaConvertS43S3SettingsEncryptionInput
}

input AwsMediaConvertS43S3SettingsAccessControlInput {
  CannedAcl: String
}

input AwsMediaConvertS43S3SettingsEncryptionInput {
  EncryptionType: String
  KmsKeyArn: String
}

input AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionInput {
  ConstantInitializationVector: String
  EncryptionMethod: String
  InitializationVectorInManifest: String
  SpekeKeyProvider: AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionSpekeKeyProviderInput
  StaticKeyProvider: AwsMediaConvertS4jInput
  Type: String
}

input AwsMediaConvertS3rOutputGroupSettingsCmafGroupSettingsEncryptionSpekeKeyProviderInput {
  CertificateArn: String
  DashSignaledSystemIds: [String]
  HlsSignaledSystemIds: [String]
  ResourceId: String
  Url: String
}

input AwsMediaConvertS4jInput {
  KeyFormat: String
  KeyFormatVersions: String
  StaticKeyValue: String
  Url: String
}

input AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsInput {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsAdditionalManifestsInput]
  AudioChannelConfigSchemeIdUri: String
  BaseUrl: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43Input
  Encryption: AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsEncryptionInput
  FragmentLength: Int
  HbbtvCompliance: String
  MinBufferTime: Int
  MinFinalSegmentLength: JSON
  MpdProfile: String
  PtsOffsetHandlingForBFrames: String
  SegmentControl: String
  SegmentLength: Int
  WriteSegmentTimelineInRepresentation: String
}

input AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsAdditionalManifestsInput {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

input AwsMediaConvertS3rOutputGroupSettingsDashIsoGroupSettingsEncryptionInput {
  PlaybackDeviceCompatibility: String
  SpekeKeyProvider: AwsMediaConvertS54Input
}

input AwsMediaConvertS54Input {
  CertificateArn: String
  ResourceId: String
  SystemIds: [String]
  Url: String
}

input AwsMediaConvertS3rOutputGroupSettingsFileGroupSettingsInput {
  Destination: String
  DestinationSettings: AwsMediaConvertS43Input
}

input AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsInput {
  AdMarkers: [String]
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsAdditionalManifestsInput]
  AudioOnlyHeader: String
  BaseUrl: String
  CaptionLanguageMappings: [AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsInput]
  CaptionLanguageSetting: String
  ClientCache: String
  CodecSpecification: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43Input
  DirectoryStructure: String
  Encryption: AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsEncryptionInput
  ManifestCompression: String
  ManifestDurationFormat: String
  MinFinalSegmentLength: JSON
  MinSegmentLength: Int
  OutputSelection: String
  ProgramDateTime: String
  ProgramDateTimePeriod: Int
  SegmentControl: String
  SegmentLength: Int
  SegmentsPerSubdirectory: Int
  StreamInfResolution: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
  TimestampDeltaMilliseconds: Int
}

input AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsAdditionalManifestsInput {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

input AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsInput {
  CaptionChannel: Int
  CustomLanguageCode: String
  LanguageCode: String
  LanguageDescription: String
}

input AwsMediaConvertS3rOutputGroupSettingsHlsGroupSettingsEncryptionInput {
  ConstantInitializationVector: String
  EncryptionMethod: String
  InitializationVectorInManifest: String
  OfflineEncrypted: String
  SpekeKeyProvider: AwsMediaConvertS54Input
  StaticKeyProvider: AwsMediaConvertS4jInput
  Type: String
}

input AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsInput {
  AdditionalManifests: [AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsAdditionalManifestsInput]
  AudioDeduplication: String
  Destination: String
  DestinationSettings: AwsMediaConvertS43Input
  Encryption: AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsEncryptionInput
  FragmentLength: Int
  ManifestEncoding: String
}

input AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsAdditionalManifestsInput {
  ManifestNameModifier: String
  SelectedOutputs: [String]
}

input AwsMediaConvertS3rOutputGroupSettingsMsSmoothGroupSettingsEncryptionInput {
  SpekeKeyProvider: AwsMediaConvertS54Input
}

input AwsMediaConvertS3rOutputsInput {
  AudioDescriptions: [AwsMediaConvertS6bInput]
  CaptionDescriptions: [AwsMediaConvertS3rOutputsCaptionDescriptionsInput]
  ContainerSettings: AwsMediaConvertS9rInput
  Extension: String
  NameModifier: String
  OutputSettings: AwsMediaConvertS3rOutputsOutputSettingsInput
  Preset: String
  VideoDescription: AwsMediaConvertSbrInput
}

input AwsMediaConvertS6bInput {
  AudioChannelTaggingSettings: AwsMediaConvertS6bAudioChannelTaggingSettingsInput
  AudioNormalizationSettings: AwsMediaConvertS6bAudioNormalizationSettingsInput
  AudioSourceName: String
  AudioType: Int
  AudioTypeControl: String
  CodecSettings: AwsMediaConvertS6bCodecSettingsInput
  CustomLanguageCode: String
  LanguageCode: String
  LanguageCodeControl: String
  RemixSettings: AwsMediaConvertS14Input
  StreamName: String
}

input AwsMediaConvertS6bAudioChannelTaggingSettingsInput {
  ChannelTag: String
}

input AwsMediaConvertS6bAudioNormalizationSettingsInput {
  Algorithm: String
  AlgorithmControl: String
  CorrectionGateLevel: Int
  LoudnessLogging: String
  PeakCalculation: String
  TargetLkfs: JSON
}

input AwsMediaConvertS6bCodecSettingsInput {
  AacSettings: AwsMediaConvertS6bCodecSettingsAacSettingsInput
  Ac3Settings: AwsMediaConvertS6bCodecSettingsAc3SettingsInput
  AiffSettings: AwsMediaConvertS6bCodecSettingsAiffSettingsInput
  Codec: String
  Eac3AtmosSettings: AwsMediaConvertS6bCodecSettingsEac3AtmosSettingsInput
  Eac3Settings: AwsMediaConvertS6bCodecSettingsEac3SettingsInput
  Mp2Settings: AwsMediaConvertS6bCodecSettingsMp2SettingsInput
  Mp3Settings: AwsMediaConvertS6bCodecSettingsMp3SettingsInput
  OpusSettings: AwsMediaConvertS6bCodecSettingsOpusSettingsInput
  VorbisSettings: AwsMediaConvertS6bCodecSettingsVorbisSettingsInput
  WavSettings: AwsMediaConvertS6bCodecSettingsWavSettingsInput
}

input AwsMediaConvertS6bCodecSettingsAacSettingsInput {
  AudioDescriptionBroadcasterMix: String
  Bitrate: Int
  CodecProfile: String
  CodingMode: String
  RateControlMode: String
  RawFormat: String
  SampleRate: Int
  Specification: String
  VbrQuality: String
}

input AwsMediaConvertS6bCodecSettingsAc3SettingsInput {
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  Dialnorm: Int
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionProfile: String
  DynamicRangeCompressionRf: String
  LfeFilter: String
  MetadataControl: String
  SampleRate: Int
}

input AwsMediaConvertS6bCodecSettingsAiffSettingsInput {
  BitDepth: Int
  Channels: Int
  SampleRate: Int
}

input AwsMediaConvertS6bCodecSettingsEac3AtmosSettingsInput {
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  DialogueIntelligence: String
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionRf: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MeteringMode: String
  SampleRate: Int
  SpeechThreshold: Int
  StereoDownmix: String
  SurroundExMode: String
}

input AwsMediaConvertS6bCodecSettingsEac3SettingsInput {
  AttenuationControl: String
  Bitrate: Int
  BitstreamMode: String
  CodingMode: String
  DcFilter: String
  Dialnorm: Int
  DynamicRangeCompressionLine: String
  DynamicRangeCompressionRf: String
  LfeControl: String
  LfeFilter: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MetadataControl: String
  PassthroughControl: String
  PhaseControl: String
  SampleRate: Int
  StereoDownmix: String
  SurroundExMode: String
  SurroundMode: String
}

input AwsMediaConvertS6bCodecSettingsMp2SettingsInput {
  Bitrate: Int
  Channels: Int
  SampleRate: Int
}

input AwsMediaConvertS6bCodecSettingsMp3SettingsInput {
  Bitrate: Int
  Channels: Int
  RateControlMode: String
  SampleRate: Int
  VbrQuality: Int
}

input AwsMediaConvertS6bCodecSettingsOpusSettingsInput {
  Bitrate: Int
  Channels: Int
  SampleRate: Int
}

input AwsMediaConvertS6bCodecSettingsVorbisSettingsInput {
  Channels: Int
  SampleRate: Int
  VbrQuality: Int
}

input AwsMediaConvertS6bCodecSettingsWavSettingsInput {
  BitDepth: Int
  Channels: Int
  Format: String
  SampleRate: Int
}

input AwsMediaConvertS14Input {
  ChannelMapping: AwsMediaConvertS14ChannelMappingInput
  ChannelsIn: Int
  ChannelsOut: Int
}

input AwsMediaConvertS14ChannelMappingInput {
  OutputChannels: [AwsMediaConvertS14ChannelMappingOutputChannelsInput]
}

input AwsMediaConvertS14ChannelMappingOutputChannelsInput {
  InputChannels: [Int]
  InputChannelsFineTune: [JSON]
}

input AwsMediaConvertS3rOutputsCaptionDescriptionsInput {
  CaptionSelectorName: String
  CustomLanguageCode: String
  DestinationSettings: AwsMediaConvertS8sInput
  LanguageCode: String
  LanguageDescription: String
}

input AwsMediaConvertS8sInput {
  BurninDestinationSettings: AwsMediaConvertS8sBurninDestinationSettingsInput
  DestinationType: String
  DvbSubDestinationSettings: AwsMediaConvertS8sDvbSubDestinationSettingsInput
  EmbeddedDestinationSettings: AwsMediaConvertS8sEmbeddedDestinationSettingsInput
  ImscDestinationSettings: AwsMediaConvertS8sImscDestinationSettingsInput
  SccDestinationSettings: AwsMediaConvertS8sSccDestinationSettingsInput
  TeletextDestinationSettings: AwsMediaConvertS8sTeletextDestinationSettingsInput
  TtmlDestinationSettings: AwsMediaConvertS8sTtmlDestinationSettingsInput
  WebvttDestinationSettings: AwsMediaConvertS8sWebvttDestinationSettingsInput
}

input AwsMediaConvertS8sBurninDestinationSettingsInput {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontScript: String
  FontSize: Int
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextSpacing: String
  XPosition: Int
  YPosition: Int
}

input AwsMediaConvertS8sDvbSubDestinationSettingsInput {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  DdsHandling: String
  DdsXCoordinate: Int
  DdsYCoordinate: Int
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontScript: String
  FontSize: Int
  Height: Int
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  SubtitlingType: String
  TeletextSpacing: String
  Width: Int
  XPosition: Int
  YPosition: Int
}

input AwsMediaConvertS8sEmbeddedDestinationSettingsInput {
  Destination608ChannelNumber: Int
  Destination708ServiceNumber: Int
}

input AwsMediaConvertS8sImscDestinationSettingsInput {
  StylePassthrough: String
}

input AwsMediaConvertS8sSccDestinationSettingsInput {
  Framerate: String
}

input AwsMediaConvertS8sTeletextDestinationSettingsInput {
  PageNumber: String
  PageTypes: [String]
}

input AwsMediaConvertS8sTtmlDestinationSettingsInput {
  StylePassthrough: String
}

input AwsMediaConvertS8sWebvttDestinationSettingsInput {
  StylePassthrough: String
}

input AwsMediaConvertS9rInput {
  CmfcSettings: AwsMediaConvertS9rCmfcSettingsInput
  Container: String
  F4vSettings: AwsMediaConvertS9rF4vSettingsInput
  M2tsSettings: AwsMediaConvertS9rM2tsSettingsInput
  M3u8Settings: AwsMediaConvertS9rM3u8SettingsInput
  MovSettings: AwsMediaConvertS9rMovSettingsInput
  Mp4Settings: AwsMediaConvertS9rMp4SettingsInput
  MpdSettings: AwsMediaConvertS9rMpdSettingsInput
  MxfSettings: AwsMediaConvertS9rMxfSettingsInput
}

input AwsMediaConvertS9rCmfcSettingsInput {
  AudioDuration: String
  AudioGroupId: String
  AudioRenditionSets: String
  AudioTrackType: String
  DescriptiveVideoServiceFlag: String
  IFrameOnlyManifest: String
  Scte35Esam: String
  Scte35Source: String
}

input AwsMediaConvertS9rF4vSettingsInput {
  MoovPlacement: String
}

input AwsMediaConvertS9rM2tsSettingsInput {
  AudioBufferModel: String
  AudioDuration: String
  AudioFramesPerPes: Int
  AudioPids: [Int]
  Bitrate: Int
  BufferModel: String
  DvbNitSettings: AwsMediaConvertS9rM2tsSettingsDvbNitSettingsInput
  DvbSdtSettings: AwsMediaConvertS9rM2tsSettingsDvbSdtSettingsInput
  DvbSubPids: [Int]
  DvbTdtSettings: AwsMediaConvertS9rM2tsSettingsDvbTdtSettingsInput
  DvbTeletextPid: Int
  EbpAudioInterval: String
  EbpPlacement: String
  EsRateInPes: String
  ForceTsVideoEbpOrder: String
  FragmentTime: JSON
  MaxPcrInterval: Int
  MinEbpInterval: Int
  NielsenId3: String
  NullPacketBitrate: JSON
  PatInterval: Int
  PcrControl: String
  PcrPid: Int
  PmtInterval: Int
  PmtPid: Int
  PrivateMetadataPid: Int
  ProgramNumber: Int
  RateMode: String
  Scte35Esam: AwsMediaConvertS9rM2tsSettingsScte35EsamInput
  Scte35Pid: Int
  Scte35Source: String
  SegmentationMarkers: String
  SegmentationStyle: String
  SegmentationTime: JSON
  TimedMetadataPid: Int
  TransportStreamId: Int
  VideoPid: Int
}

input AwsMediaConvertS9rM2tsSettingsDvbNitSettingsInput {
  NetworkId: Int
  NetworkName: String
  NitInterval: Int
}

input AwsMediaConvertS9rM2tsSettingsDvbSdtSettingsInput {
  OutputSdt: String
  SdtInterval: Int
  ServiceName: String
  ServiceProviderName: String
}

input AwsMediaConvertS9rM2tsSettingsDvbTdtSettingsInput {
  TdtInterval: Int
}

input AwsMediaConvertS9rM2tsSettingsScte35EsamInput {
  Scte35EsamPid: Int
}

input AwsMediaConvertS9rM3u8SettingsInput {
  AudioDuration: String
  AudioFramesPerPes: Int
  AudioPids: [Int]
  MaxPcrInterval: Int
  NielsenId3: String
  PatInterval: Int
  PcrControl: String
  PcrPid: Int
  PmtInterval: Int
  PmtPid: Int
  PrivateMetadataPid: Int
  ProgramNumber: Int
  Scte35Pid: Int
  Scte35Source: String
  TimedMetadata: String
  TimedMetadataPid: Int
  TransportStreamId: Int
  VideoPid: Int
}

input AwsMediaConvertS9rMovSettingsInput {
  ClapAtom: String
  CslgAtom: String
  Mpeg2FourCCControl: String
  PaddingControl: String
  Reference: String
}

input AwsMediaConvertS9rMp4SettingsInput {
  AudioDuration: String
  CslgAtom: String
  CttsVersion: Int
  FreeSpaceBox: String
  MoovPlacement: String
  Mp4MajorBrand: String
}

input AwsMediaConvertS9rMpdSettingsInput {
  AccessibilityCaptionHints: String
  AudioDuration: String
  CaptionContainerType: String
  Scte35Esam: String
  Scte35Source: String
}

input AwsMediaConvertS9rMxfSettingsInput {
  AfdSignaling: String
  Profile: String
}

input AwsMediaConvertS3rOutputsOutputSettingsInput {
  HlsSettings: AwsMediaConvertS3rOutputsOutputSettingsHlsSettingsInput
}

input AwsMediaConvertS3rOutputsOutputSettingsHlsSettingsInput {
  AudioGroupId: String
  AudioOnlyContainer: String
  AudioRenditionSets: String
  AudioTrackType: String
  DescriptiveVideoServiceFlag: String
  IFrameOnlyManifest: String
  SegmentModifier: String
}

input AwsMediaConvertSbrInput {
  AfdSignaling: String
  AntiAlias: String
  CodecSettings: AwsMediaConvertSbrCodecSettingsInput
  ColorMetadata: String
  Crop: AwsMediaConvertS20Input
  DropFrameTimecode: String
  FixedAfd: Int
  Height: Int
  Position: AwsMediaConvertS20Input
  RespondToAfd: String
  ScalingBehavior: String
  Sharpness: Int
  TimecodeInsertion: String
  VideoPreprocessors: AwsMediaConvertSbrVideoPreprocessorsInput
  Width: Int
}

input AwsMediaConvertSbrCodecSettingsInput {
  Av1Settings: AwsMediaConvertSbrCodecSettingsAv1SettingsInput
  AvcIntraSettings: AwsMediaConvertSbrCodecSettingsAvcIntraSettingsInput
  Codec: String
  FrameCaptureSettings: AwsMediaConvertSbrCodecSettingsFrameCaptureSettingsInput
  H264Settings: AwsMediaConvertSbrCodecSettingsH264SettingsInput
  H265Settings: AwsMediaConvertSbrCodecSettingsH265SettingsInput
  Mpeg2Settings: AwsMediaConvertSbrCodecSettingsMpeg2SettingsInput
  ProresSettings: AwsMediaConvertSbrCodecSettingsProresSettingsInput
  Vc3Settings: AwsMediaConvertSbrCodecSettingsVc3SettingsInput
  Vp8Settings: AwsMediaConvertSbrCodecSettingsVp8SettingsInput
  Vp9Settings: AwsMediaConvertSbrCodecSettingsVp9SettingsInput
}

input AwsMediaConvertSbrCodecSettingsAv1SettingsInput {
  AdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  MaxBitrate: Int
  NumberBFramesBetweenReferenceFrames: Int
  QvbrSettings: AwsMediaConvertSbrCodecSettingsAv1SettingsQvbrSettingsInput
  RateControlMode: String
  Slices: Int
  SpatialAdaptiveQuantization: String
}

input AwsMediaConvertSbrCodecSettingsAv1SettingsQvbrSettingsInput {
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

input AwsMediaConvertSbrCodecSettingsAvcIntraSettingsInput {
  AvcIntraClass: String
  AvcIntraUhdSettings: AwsMediaConvertSbrCodecSettingsAvcIntraSettingsAvcIntraUhdSettingsInput
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
}

input AwsMediaConvertSbrCodecSettingsAvcIntraSettingsAvcIntraUhdSettingsInput {
  QualityTuningLevel: String
}

input AwsMediaConvertSbrCodecSettingsFrameCaptureSettingsInput {
  FramerateDenominator: Int
  FramerateNumerator: Int
  MaxCaptures: Int
  Quality: Int
}

input AwsMediaConvertSbrCodecSettingsH264SettingsInput {
  AdaptiveQuantization: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  EntropyEncoding: String
  FieldEncoding: String
  FlickerAdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  NumberReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  QvbrSettings: AwsMediaConvertSbrCodecSettingsH264SettingsQvbrSettingsInput
  RateControlMode: String
  RepeatPps: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  Slices: Int
  SlowPal: String
  Softness: Int
  SpatialAdaptiveQuantization: String
  Syntax: String
  Telecine: String
  TemporalAdaptiveQuantization: String
  UnregisteredSeiTimecode: String
}

input AwsMediaConvertSbrCodecSettingsH264SettingsQvbrSettingsInput {
  MaxAverageBitrate: Int
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

input AwsMediaConvertSbrCodecSettingsH265SettingsInput {
  AdaptiveQuantization: String
  AlternateTransferFunctionSei: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  FlickerAdaptiveQuantization: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  NumberReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  QvbrSettings: AwsMediaConvertSbrCodecSettingsH265SettingsQvbrSettingsInput
  RateControlMode: String
  SampleAdaptiveOffsetFilterMode: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  Slices: Int
  SlowPal: String
  SpatialAdaptiveQuantization: String
  Telecine: String
  TemporalAdaptiveQuantization: String
  TemporalIds: String
  Tiles: String
  UnregisteredSeiTimecode: String
  WriteMp4PackagingType: String
}

input AwsMediaConvertSbrCodecSettingsH265SettingsQvbrSettingsInput {
  MaxAverageBitrate: Int
  QvbrQualityLevel: Int
  QvbrQualityLevelFineTune: JSON
}

input AwsMediaConvertSbrCodecSettingsMpeg2SettingsInput {
  AdaptiveQuantization: String
  Bitrate: Int
  CodecLevel: String
  CodecProfile: String
  DynamicSubGop: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  HrdBufferInitialFillPercentage: Int
  HrdBufferSize: Int
  InterlaceMode: String
  IntraDcPrecision: String
  MaxBitrate: Int
  MinIInterval: Int
  NumberBFramesBetweenReferenceFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
  ScanTypeConversionMode: String
  SceneChangeDetect: String
  SlowPal: String
  Softness: Int
  SpatialAdaptiveQuantization: String
  Syntax: String
  Telecine: String
  TemporalAdaptiveQuantization: String
}

input AwsMediaConvertSbrCodecSettingsProresSettingsInput {
  CodecProfile: String
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
}

input AwsMediaConvertSbrCodecSettingsVc3SettingsInput {
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  InterlaceMode: String
  ScanTypeConversionMode: String
  SlowPal: String
  Telecine: String
  Vc3Class: String
}

input AwsMediaConvertSbrCodecSettingsVp8SettingsInput {
  Bitrate: Int
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  HrdBufferSize: Int
  MaxBitrate: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
}

input AwsMediaConvertSbrCodecSettingsVp9SettingsInput {
  Bitrate: Int
  FramerateControl: String
  FramerateConversionAlgorithm: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopSize: JSON
  HrdBufferSize: Int
  MaxBitrate: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  QualityTuningLevel: String
  RateControlMode: String
}

input AwsMediaConvertSbrVideoPreprocessorsInput {
  ColorCorrector: AwsMediaConvertSbrVideoPreprocessorsColorCorrectorInput
  Deinterlacer: AwsMediaConvertSbrVideoPreprocessorsDeinterlacerInput
  DolbyVision: AwsMediaConvertSbrVideoPreprocessorsDolbyVisionInput
  ImageInserter: AwsMediaConvertS2dInput
  NoiseReducer: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerInput
  PartnerWatermarking: AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingInput
  TimecodeBurnin: AwsMediaConvertSbrVideoPreprocessorsTimecodeBurninInput
}

input AwsMediaConvertSbrVideoPreprocessorsColorCorrectorInput {
  Brightness: Int
  ColorSpaceConversion: String
  Contrast: Int
  Hdr10Metadata: AwsMediaConvertS2xInput
  Hue: Int
  Saturation: Int
}

input AwsMediaConvertSbrVideoPreprocessorsDeinterlacerInput {
  Algorithm: String
  Control: String
  Mode: String
}

input AwsMediaConvertSbrVideoPreprocessorsDolbyVisionInput {
  L6Metadata: AwsMediaConvertSbrVideoPreprocessorsDolbyVisionL6MetadataInput
  L6Mode: String
  Profile: String
}

input AwsMediaConvertSbrVideoPreprocessorsDolbyVisionL6MetadataInput {
  MaxCll: Int
  MaxFall: Int
}

input AwsMediaConvertSbrVideoPreprocessorsNoiseReducerInput {
  Filter: String
  FilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerFilterSettingsInput
  SpatialFilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerSpatialFilterSettingsInput
  TemporalFilterSettings: AwsMediaConvertSbrVideoPreprocessorsNoiseReducerTemporalFilterSettingsInput
}

input AwsMediaConvertSbrVideoPreprocessorsNoiseReducerFilterSettingsInput {
  Strength: Int
}

input AwsMediaConvertSbrVideoPreprocessorsNoiseReducerSpatialFilterSettingsInput {
  PostFilterSharpenStrength: Int
  Speed: Int
  Strength: Int
}

input AwsMediaConvertSbrVideoPreprocessorsNoiseReducerTemporalFilterSettingsInput {
  AggressiveMode: Int
  PostTemporalSharpening: String
  Speed: Int
  Strength: Int
}

input AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingInput {
  NexguardFileMarkerSettings: AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingNexguardFileMarkerSettingsInput
}

input AwsMediaConvertSbrVideoPreprocessorsPartnerWatermarkingNexguardFileMarkerSettingsInput {
  License: String
  Payload: Int
  Preset: String
  Strength: String
}

input AwsMediaConvertSbrVideoPreprocessorsTimecodeBurninInput {
  FontSize: Int
  Position: String
  Prefix: String
}

input AwsMediaConvertSgrInput {
  Anchor: String
  Source: String
  Start: String
  TimestampOffset: String
}

input AwsMediaConvertSguInput {
  Id3Insertions: [AwsMediaConvertSguId3InsertionsInput]
}

input AwsMediaConvertSguId3InsertionsInput {
  Id3: String
  Timecode: String
}

type AwsMediaConvertCreateJobTemplateOutput {
  JobTemplate: AwsMediaConvertShm
}

type AwsMediaConvertShm {
  AccelerationSettings: AwsMediaConvertS7
  Arn: String
  Category: String
  CreatedAt: Date
  Description: String
  HopDestinations: [AwsMediaConvertSa]
  LastUpdated: Date
  Name: String!
  Priority: Int
  Queue: String
  Settings: AwsMediaConvertShi!
  StatusUpdateInterval: String
  Type: String
}

type AwsMediaConvertShi {
  AdAvailOffset: Int
  AvailBlanking: AwsMediaConvertSg
  Esam: AwsMediaConvertSi
  Inputs: [AwsMediaConvertShiInputs]
  KantarWatermark: AwsMediaConvertS32
  MotionImageInserter: AwsMediaConvertS3a
  NielsenConfiguration: AwsMediaConvertS3i
  NielsenNonLinearWatermark: AwsMediaConvertS3k
  OutputGroups: [AwsMediaConvertS3r]
  TimecodeConfig: AwsMediaConvertSgr
  TimedMetadataInsertion: AwsMediaConvertSgu
}

type AwsMediaConvertShiInputs {
  AudioSelectorGroups: JSON
  AudioSelectors: JSON
  CaptionSelectors: JSON
  Crop: AwsMediaConvertS20
  DeblockFilter: String
  DenoiseFilter: String
  FilterEnable: String
  FilterStrength: Int
  ImageInserter: AwsMediaConvertS2d
  InputClippings: [AwsMediaConvertS2k]
  InputScanType: String
  Position: AwsMediaConvertS20
  ProgramNumber: Int
  PsiControl: String
  TimecodeSource: String
  TimecodeStart: String
  VideoSelector: AwsMediaConvertS2t
}

input AwsMediaConvertCreateJobTemplateInput {
  AccelerationSettings: AwsMediaConvertS7Input
  Category: String
  Description: String
  HopDestinations: [AwsMediaConvertSaInput]
  Name: String!
  Priority: Int
  Queue: String
  Settings: AwsMediaConvertShiInput!
  StatusUpdateInterval: String
  Tags: JSON
}

input AwsMediaConvertShiInput {
  AdAvailOffset: Int
  AvailBlanking: AwsMediaConvertSgInput
  Esam: AwsMediaConvertSiInput
  Inputs: [AwsMediaConvertShiInputsInput]
  KantarWatermark: AwsMediaConvertS32Input
  MotionImageInserter: AwsMediaConvertS3aInput
  NielsenConfiguration: AwsMediaConvertS3iInput
  NielsenNonLinearWatermark: AwsMediaConvertS3kInput
  OutputGroups: [AwsMediaConvertS3rInput]
  TimecodeConfig: AwsMediaConvertSgrInput
  TimedMetadataInsertion: AwsMediaConvertSguInput
}

input AwsMediaConvertShiInputsInput {
  AudioSelectorGroups: JSON
  AudioSelectors: JSON
  CaptionSelectors: JSON
  Crop: AwsMediaConvertS20Input
  DeblockFilter: String
  DenoiseFilter: String
  FilterEnable: String
  FilterStrength: Int
  ImageInserter: AwsMediaConvertS2dInput
  InputClippings: [AwsMediaConvertS2kInput]
  InputScanType: String
  Position: AwsMediaConvertS20Input
  ProgramNumber: Int
  PsiControl: String
  TimecodeSource: String
  TimecodeStart: String
  VideoSelector: AwsMediaConvertS2tInput
}

type AwsMediaConvertCreatePresetOutput {
  Preset: AwsMediaConvertSht
}

type AwsMediaConvertSht {
  Arn: String
  Category: String
  CreatedAt: Date
  Description: String
  LastUpdated: Date
  Name: String!
  Settings: AwsMediaConvertShp!
  Type: String
}

type AwsMediaConvertShp {
  AudioDescriptions: [AwsMediaConvertS6b]
  CaptionDescriptions: [AwsMediaConvertShpCaptionDescriptions]
  ContainerSettings: AwsMediaConvertS9r
  VideoDescription: AwsMediaConvertSbr
}

type AwsMediaConvertShpCaptionDescriptions {
  CustomLanguageCode: String
  DestinationSettings: AwsMediaConvertS8s
  LanguageCode: String
  LanguageDescription: String
}

input AwsMediaConvertCreatePresetInput {
  Category: String
  Description: String
  Name: String!
  Settings: AwsMediaConvertShpInput!
  Tags: JSON
}

input AwsMediaConvertShpInput {
  AudioDescriptions: [AwsMediaConvertS6bInput]
  CaptionDescriptions: [AwsMediaConvertShpCaptionDescriptionsInput]
  ContainerSettings: AwsMediaConvertS9rInput
  VideoDescription: AwsMediaConvertSbrInput
}

input AwsMediaConvertShpCaptionDescriptionsInput {
  CustomLanguageCode: String
  DestinationSettings: AwsMediaConvertS8sInput
  LanguageCode: String
  LanguageDescription: String
}

type AwsMediaConvertCreateQueueOutput {
  Queue: AwsMediaConvertSi1
}

type AwsMediaConvertSi1 {
  Arn: String
  CreatedAt: Date
  Description: String
  LastUpdated: Date
  Name: String!
  PricingPlan: String
  ProgressingJobsCount: Int
  ReservationPlan: AwsMediaConvertSi1ReservationPlan
  Status: String
  SubmittedJobsCount: Int
  Type: String
}

type AwsMediaConvertSi1ReservationPlan {
  Commitment: String
  ExpiresAt: Date
  PurchasedAt: Date
  RenewalType: String
  ReservedSlots: Int
  Status: String
}

input AwsMediaConvertCreateQueueInput {
  Description: String
  Name: String!
  PricingPlan: String
  ReservationPlanSettings: AwsMediaConvertShwInput
  Status: String
  Tags: JSON
}

input AwsMediaConvertShwInput {
  Commitment: String!
  RenewalType: String!
  ReservedSlots: Int!
}

input AwsMediaConvertDeleteJobTemplateInput {
  Name: String!
}

input AwsMediaConvertDeletePresetInput {
  Name: String!
}

input AwsMediaConvertDeleteQueueInput {
  Name: String!
}

type AwsMediaConvertDescribeEndpointsOutput {
  Endpoints: [AwsMediaConvertDescribeEndpointsOutputEndpoints]
  NextToken: String
}

type AwsMediaConvertDescribeEndpointsOutputEndpoints {
  Url: String
}

input AwsMediaConvertDescribeEndpointsInput {
  MaxResults: Int
  Mode: String
  NextToken: String
}

input AwsMediaConvertDisassociateCertificateInput {
  Arn: String!
}

type AwsMediaConvertGetJobOutput {
  Job: AwsMediaConvertSh2
}

input AwsMediaConvertGetJobInput {
  Id: String!
}

type AwsMediaConvertGetJobTemplateOutput {
  JobTemplate: AwsMediaConvertShm
}

input AwsMediaConvertGetJobTemplateInput {
  Name: String!
}

type AwsMediaConvertGetPresetOutput {
  Preset: AwsMediaConvertSht
}

input AwsMediaConvertGetPresetInput {
  Name: String!
}

type AwsMediaConvertGetQueueOutput {
  Queue: AwsMediaConvertSi1
}

input AwsMediaConvertGetQueueInput {
  Name: String!
}

type AwsMediaConvertListJobTemplatesOutput {
  JobTemplates: [AwsMediaConvertShm]
  NextToken: String
}

input AwsMediaConvertListJobTemplatesInput {
  Category: String
  ListBy: String
  MaxResults: Int
  NextToken: String
  Order: String
}

type AwsMediaConvertListJobsOutput {
  Jobs: [AwsMediaConvertSh2]
  NextToken: String
}

input AwsMediaConvertListJobsInput {
  MaxResults: Int
  NextToken: String
  Order: String
  Queue: String
  Status: String
}

type AwsMediaConvertListPresetsOutput {
  NextToken: String
  Presets: [AwsMediaConvertSht]
}

input AwsMediaConvertListPresetsInput {
  Category: String
  ListBy: String
  MaxResults: Int
  NextToken: String
  Order: String
}

type AwsMediaConvertListQueuesOutput {
  NextToken: String
  Queues: [AwsMediaConvertSi1]
}

input AwsMediaConvertListQueuesInput {
  ListBy: String
  MaxResults: Int
  NextToken: String
  Order: String
}

type AwsMediaConvertListTagsForResourceOutput {
  ResourceTags: AwsMediaConvertListTagsForResourceOutputResourceTags
}

type AwsMediaConvertListTagsForResourceOutputResourceTags {
  Arn: String
  Tags: JSON
}

input AwsMediaConvertListTagsForResourceInput {
  Arn: String!
}

input AwsMediaConvertTagResourceInput {
  Arn: String!
  Tags: JSON!
}

input AwsMediaConvertUntagResourceInput {
  Arn: String!
  TagKeys: [String]
}

type AwsMediaConvertUpdateJobTemplateOutput {
  JobTemplate: AwsMediaConvertShm
}

input AwsMediaConvertUpdateJobTemplateInput {
  AccelerationSettings: AwsMediaConvertS7Input
  Category: String
  Description: String
  HopDestinations: [AwsMediaConvertSaInput]
  Name: String!
  Priority: Int
  Queue: String
  Settings: AwsMediaConvertShiInput
  StatusUpdateInterval: String
}

type AwsMediaConvertUpdatePresetOutput {
  Preset: AwsMediaConvertSht
}

input AwsMediaConvertUpdatePresetInput {
  Category: String
  Description: String
  Name: String!
  Settings: AwsMediaConvertShpInput
}

type AwsMediaConvertUpdateQueueOutput {
  Queue: AwsMediaConvertSi1
}

input AwsMediaConvertUpdateQueueInput {
  Description: String
  Name: String!
  ReservationPlanSettings: AwsMediaConvertShwInput
  Status: String
}

"""AWS Elemental MediaLive (2017-10-14)"""
type AwsMediaLive {
  acceptInputDeviceTransfer(input: AwsMediaLiveAcceptInputDeviceTransferInput!, config: AwsConfig): JSON
  batchDelete(input: AwsMediaLiveBatchDeleteInput, config: AwsConfig): AwsMediaLiveBatchDeleteOutput
  batchStart(input: AwsMediaLiveBatchStartInput, config: AwsConfig): AwsMediaLiveBatchStartOutput
  batchStop(input: AwsMediaLiveBatchStopInput, config: AwsConfig): AwsMediaLiveBatchStopOutput
  batchUpdateSchedule(input: AwsMediaLiveBatchUpdateScheduleInput!, config: AwsConfig): AwsMediaLiveBatchUpdateScheduleOutput
  cancelInputDeviceTransfer(input: AwsMediaLiveCancelInputDeviceTransferInput!, config: AwsConfig): JSON
  createChannel(input: AwsMediaLiveCreateChannelInput, config: AwsConfig): AwsMediaLiveCreateChannelOutput
  createInput(input: AwsMediaLiveCreateInputInput, config: AwsConfig): AwsMediaLiveCreateInputOutput
  createInputSecurityGroup(input: AwsMediaLiveCreateInputSecurityGroupInput, config: AwsConfig): AwsMediaLiveCreateInputSecurityGroupOutput
  createMultiplex(input: AwsMediaLiveCreateMultiplexInput!, config: AwsConfig): AwsMediaLiveCreateMultiplexOutput
  createMultiplexProgram(input: AwsMediaLiveCreateMultiplexProgramInput!, config: AwsConfig): AwsMediaLiveCreateMultiplexProgramOutput
  createPartnerInput(input: AwsMediaLiveCreatePartnerInputInput!, config: AwsConfig): AwsMediaLiveCreatePartnerInputOutput
  createTags(input: AwsMediaLiveCreateTagsInput!, config: AwsConfig): JSON
  deleteChannel(input: AwsMediaLiveDeleteChannelInput!, config: AwsConfig): AwsMediaLiveDeleteChannelOutput
  deleteInput(input: AwsMediaLiveDeleteInputInput!, config: AwsConfig): JSON
  deleteInputSecurityGroup(input: AwsMediaLiveDeleteInputSecurityGroupInput!, config: AwsConfig): JSON
  deleteMultiplex(input: AwsMediaLiveDeleteMultiplexInput!, config: AwsConfig): AwsMediaLiveDeleteMultiplexOutput
  deleteMultiplexProgram(input: AwsMediaLiveDeleteMultiplexProgramInput!, config: AwsConfig): AwsMediaLiveDeleteMultiplexProgramOutput
  deleteReservation(input: AwsMediaLiveDeleteReservationInput!, config: AwsConfig): AwsMediaLiveDeleteReservationOutput
  deleteSchedule(input: AwsMediaLiveDeleteScheduleInput!, config: AwsConfig): JSON
  deleteTags(input: AwsMediaLiveDeleteTagsInput!, config: AwsConfig): JSON
  describeChannel(input: AwsMediaLiveDescribeChannelInput!, config: AwsConfig): AwsMediaLiveDescribeChannelOutput
  describeInput(input: AwsMediaLiveDescribeInputInput!, config: AwsConfig): AwsMediaLiveDescribeInputOutput
  describeInputDevice(input: AwsMediaLiveDescribeInputDeviceInput!, config: AwsConfig): AwsMediaLiveDescribeInputDeviceOutput
  describeInputDeviceThumbnail(input: AwsMediaLiveDescribeInputDeviceThumbnailInput!, config: AwsConfig): AwsMediaLiveDescribeInputDeviceThumbnailOutput
  describeInputSecurityGroup(input: AwsMediaLiveDescribeInputSecurityGroupInput!, config: AwsConfig): AwsMediaLiveDescribeInputSecurityGroupOutput
  describeMultiplex(input: AwsMediaLiveDescribeMultiplexInput!, config: AwsConfig): AwsMediaLiveDescribeMultiplexOutput
  describeMultiplexProgram(input: AwsMediaLiveDescribeMultiplexProgramInput!, config: AwsConfig): AwsMediaLiveDescribeMultiplexProgramOutput
  describeOffering(input: AwsMediaLiveDescribeOfferingInput!, config: AwsConfig): AwsMediaLiveDescribeOfferingOutput
  describeReservation(input: AwsMediaLiveDescribeReservationInput!, config: AwsConfig): AwsMediaLiveDescribeReservationOutput
  describeSchedule(input: AwsMediaLiveDescribeScheduleInput!, config: AwsConfig): AwsMediaLiveDescribeScheduleOutput
  listChannels(input: AwsMediaLiveListChannelsInput, config: AwsConfig): AwsMediaLiveListChannelsOutput
  listInputDeviceTransfers(input: AwsMediaLiveListInputDeviceTransfersInput!, config: AwsConfig): AwsMediaLiveListInputDeviceTransfersOutput
  listInputDevices(input: AwsMediaLiveListInputDevicesInput, config: AwsConfig): AwsMediaLiveListInputDevicesOutput
  listInputSecurityGroups(input: AwsMediaLiveListInputSecurityGroupsInput, config: AwsConfig): AwsMediaLiveListInputSecurityGroupsOutput
  listInputs(input: AwsMediaLiveListInputsInput, config: AwsConfig): AwsMediaLiveListInputsOutput
  listMultiplexPrograms(input: AwsMediaLiveListMultiplexProgramsInput!, config: AwsConfig): AwsMediaLiveListMultiplexProgramsOutput
  listMultiplexes(input: AwsMediaLiveListMultiplexesInput, config: AwsConfig): AwsMediaLiveListMultiplexesOutput
  listOfferings(input: AwsMediaLiveListOfferingsInput, config: AwsConfig): AwsMediaLiveListOfferingsOutput
  listReservations(input: AwsMediaLiveListReservationsInput, config: AwsConfig): AwsMediaLiveListReservationsOutput
  listTagsForResource(input: AwsMediaLiveListTagsForResourceInput!, config: AwsConfig): AwsMediaLiveListTagsForResourceOutput
  purchaseOffering(input: AwsMediaLivePurchaseOfferingInput!, config: AwsConfig): AwsMediaLivePurchaseOfferingOutput
  rejectInputDeviceTransfer(input: AwsMediaLiveRejectInputDeviceTransferInput!, config: AwsConfig): JSON
  startChannel(input: AwsMediaLiveStartChannelInput!, config: AwsConfig): AwsMediaLiveStartChannelOutput
  startMultiplex(input: AwsMediaLiveStartMultiplexInput!, config: AwsConfig): AwsMediaLiveStartMultiplexOutput
  stopChannel(input: AwsMediaLiveStopChannelInput!, config: AwsConfig): AwsMediaLiveStopChannelOutput
  stopMultiplex(input: AwsMediaLiveStopMultiplexInput!, config: AwsConfig): AwsMediaLiveStopMultiplexOutput
  transferInputDevice(input: AwsMediaLiveTransferInputDeviceInput!, config: AwsConfig): JSON
  updateChannel(input: AwsMediaLiveUpdateChannelInput!, config: AwsConfig): AwsMediaLiveUpdateChannelOutput
  updateChannelClass(input: AwsMediaLiveUpdateChannelClassInput!, config: AwsConfig): AwsMediaLiveUpdateChannelClassOutput
  updateInput(input: AwsMediaLiveUpdateInputInput!, config: AwsConfig): AwsMediaLiveUpdateInputOutput
  updateInputDevice(input: AwsMediaLiveUpdateInputDeviceInput!, config: AwsConfig): AwsMediaLiveUpdateInputDeviceOutput
  updateInputSecurityGroup(input: AwsMediaLiveUpdateInputSecurityGroupInput!, config: AwsConfig): AwsMediaLiveUpdateInputSecurityGroupOutput
  updateMultiplex(input: AwsMediaLiveUpdateMultiplexInput!, config: AwsConfig): AwsMediaLiveUpdateMultiplexOutput
  updateMultiplexProgram(input: AwsMediaLiveUpdateMultiplexProgramInput!, config: AwsConfig): AwsMediaLiveUpdateMultiplexProgramOutput
  updateReservation(input: AwsMediaLiveUpdateReservationInput!, config: AwsConfig): AwsMediaLiveUpdateReservationOutput
}

input AwsMediaLiveAcceptInputDeviceTransferInput {
  InputDeviceId: String!
}

type AwsMediaLiveBatchDeleteOutput {
  Failed: [AwsMediaLiveS7]
  Successful: [AwsMediaLiveS9]
}

type AwsMediaLiveS7 {
  Arn: String
  Code: String
  Id: String
  Message: String
}

type AwsMediaLiveS9 {
  Arn: String
  Id: String
  State: String
}

input AwsMediaLiveBatchDeleteInput {
  ChannelIds: [String]
  InputIds: [String]
  InputSecurityGroupIds: [String]
  MultiplexIds: [String]
}

type AwsMediaLiveBatchStartOutput {
  Failed: [AwsMediaLiveS7]
  Successful: [AwsMediaLiveS9]
}

input AwsMediaLiveBatchStartInput {
  ChannelIds: [String]
  MultiplexIds: [String]
}

type AwsMediaLiveBatchStopOutput {
  Failed: [AwsMediaLiveS7]
  Successful: [AwsMediaLiveS9]
}

input AwsMediaLiveBatchStopInput {
  ChannelIds: [String]
  MultiplexIds: [String]
}

type AwsMediaLiveBatchUpdateScheduleOutput {
  Creates: AwsMediaLiveBatchUpdateScheduleOutputCreates
  Deletes: AwsMediaLiveBatchUpdateScheduleOutputDeletes
}

type AwsMediaLiveBatchUpdateScheduleOutputCreates {
  ScheduleActions: [AwsMediaLiveSh]!
}

type AwsMediaLiveSh {
  ActionName: String!
  ScheduleActionSettings: AwsMediaLiveShScheduleActionSettings!
  ScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettings!
}

type AwsMediaLiveShScheduleActionSettings {
  HlsId3SegmentTaggingSettings: AwsMediaLiveShScheduleActionSettingsHlsId3SegmentTaggingSettings
  HlsTimedMetadataSettings: AwsMediaLiveShScheduleActionSettingsHlsTimedMetadataSettings
  InputPrepareSettings: AwsMediaLiveShScheduleActionSettingsInputPrepareSettings
  InputSwitchSettings: AwsMediaLiveShScheduleActionSettingsInputSwitchSettings
  MotionGraphicsImageActivateSettings: AwsMediaLiveShScheduleActionSettingsMotionGraphicsImageActivateSettings
  MotionGraphicsImageDeactivateSettings: JSON
  PauseStateSettings: AwsMediaLiveShScheduleActionSettingsPauseStateSettings
  Scte35ReturnToNetworkSettings: AwsMediaLiveShScheduleActionSettingsScte35ReturnToNetworkSettings
  Scte35SpliceInsertSettings: AwsMediaLiveShScheduleActionSettingsScte35SpliceInsertSettings
  Scte35TimeSignalSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettings
  StaticImageActivateSettings: AwsMediaLiveShScheduleActionSettingsStaticImageActivateSettings
  StaticImageDeactivateSettings: AwsMediaLiveShScheduleActionSettingsStaticImageDeactivateSettings
}

type AwsMediaLiveShScheduleActionSettingsHlsId3SegmentTaggingSettings {
  Tag: String!
}

type AwsMediaLiveShScheduleActionSettingsHlsTimedMetadataSettings {
  Id3: String!
}

type AwsMediaLiveShScheduleActionSettingsInputPrepareSettings {
  InputAttachmentNameReference: String
  InputClippingSettings: AwsMediaLiveSn
  UrlPath: [String]
}

type AwsMediaLiveSn {
  InputTimecodeSource: String!
  StartTimecode: AwsMediaLiveSnStartTimecode
  StopTimecode: AwsMediaLiveSnStopTimecode
}

type AwsMediaLiveSnStartTimecode {
  Timecode: String
}

type AwsMediaLiveSnStopTimecode {
  LastFrameClippingBehavior: String
  Timecode: String
}

type AwsMediaLiveShScheduleActionSettingsInputSwitchSettings {
  InputAttachmentNameReference: String!
  InputClippingSettings: AwsMediaLiveSn
  UrlPath: [String]
}

type AwsMediaLiveShScheduleActionSettingsMotionGraphicsImageActivateSettings {
  Duration: JSON
  PasswordParam: String
  Url: String
  Username: String
}

type AwsMediaLiveShScheduleActionSettingsPauseStateSettings {
  Pipelines: [AwsMediaLiveShScheduleActionSettingsPauseStateSettingsPipelines]
}

type AwsMediaLiveShScheduleActionSettingsPauseStateSettingsPipelines {
  PipelineId: String!
}

type AwsMediaLiveShScheduleActionSettingsScte35ReturnToNetworkSettings {
  SpliceEventId: JSON!
}

type AwsMediaLiveShScheduleActionSettingsScte35SpliceInsertSettings {
  Duration: JSON
  SpliceEventId: JSON!
}

type AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettings {
  Scte35Descriptors: [AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors]!
}

type AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors {
  Scte35DescriptorSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings!
}

type AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings {
  SegmentationDescriptorScte35DescriptorSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings!
}

type AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings {
  DeliveryRestrictions: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictions
  SegmentNum: Int
  SegmentationCancelIndicator: String!
  SegmentationDuration: JSON
  SegmentationEventId: JSON!
  SegmentationTypeId: Int
  SegmentationUpid: String
  SegmentationUpidType: Int
  SegmentsExpected: Int
  SubSegmentNum: Int
  SubSegmentsExpected: Int
}

type AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictions {
  ArchiveAllowedFlag: String!
  DeviceRestrictions: String!
  NoRegionalBlackoutFlag: String!
  WebDeliveryAllowedFlag: String!
}

type AwsMediaLiveShScheduleActionSettingsStaticImageActivateSettings {
  Duration: Int
  FadeIn: Int
  FadeOut: Int
  Height: Int
  Image: AwsMediaLiveS1k!
  ImageX: Int
  ImageY: Int
  Layer: Int
  Opacity: Int
  Width: Int
}

type AwsMediaLiveS1k {
  PasswordParam: String
  Uri: String!
  Username: String
}

type AwsMediaLiveShScheduleActionSettingsStaticImageDeactivateSettings {
  FadeOut: Int
  Layer: Int
}

type AwsMediaLiveShScheduleActionStartSettings {
  FixedModeScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettingsFixedModeScheduleActionStartSettings
  FollowModeScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettingsFollowModeScheduleActionStartSettings
  ImmediateModeScheduleActionStartSettings: JSON
}

type AwsMediaLiveShScheduleActionStartSettingsFixedModeScheduleActionStartSettings {
  Time: String!
}

type AwsMediaLiveShScheduleActionStartSettingsFollowModeScheduleActionStartSettings {
  FollowPoint: String!
  ReferenceActionName: String!
}

type AwsMediaLiveBatchUpdateScheduleOutputDeletes {
  ScheduleActions: [AwsMediaLiveSh]!
}

input AwsMediaLiveBatchUpdateScheduleInput {
  ChannelId: String!
  Creates: AwsMediaLiveBatchUpdateScheduleCreatesInput
  Deletes: AwsMediaLiveBatchUpdateScheduleDeletesInput
}

input AwsMediaLiveBatchUpdateScheduleCreatesInput {
  ScheduleActions: [AwsMediaLiveShInput]!
}

input AwsMediaLiveShInput {
  ActionName: String!
  ScheduleActionSettings: AwsMediaLiveShScheduleActionSettingsInput!
  ScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettingsInput!
}

input AwsMediaLiveShScheduleActionSettingsInput {
  HlsId3SegmentTaggingSettings: AwsMediaLiveShScheduleActionSettingsHlsId3SegmentTaggingSettingsInput
  HlsTimedMetadataSettings: AwsMediaLiveShScheduleActionSettingsHlsTimedMetadataSettingsInput
  InputPrepareSettings: AwsMediaLiveShScheduleActionSettingsInputPrepareSettingsInput
  InputSwitchSettings: AwsMediaLiveShScheduleActionSettingsInputSwitchSettingsInput
  MotionGraphicsImageActivateSettings: AwsMediaLiveShScheduleActionSettingsMotionGraphicsImageActivateSettingsInput
  MotionGraphicsImageDeactivateSettings: JSON
  PauseStateSettings: AwsMediaLiveShScheduleActionSettingsPauseStateSettingsInput
  Scte35ReturnToNetworkSettings: AwsMediaLiveShScheduleActionSettingsScte35ReturnToNetworkSettingsInput
  Scte35SpliceInsertSettings: AwsMediaLiveShScheduleActionSettingsScte35SpliceInsertSettingsInput
  Scte35TimeSignalSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsInput
  StaticImageActivateSettings: AwsMediaLiveShScheduleActionSettingsStaticImageActivateSettingsInput
  StaticImageDeactivateSettings: AwsMediaLiveShScheduleActionSettingsStaticImageDeactivateSettingsInput
}

input AwsMediaLiveShScheduleActionSettingsHlsId3SegmentTaggingSettingsInput {
  Tag: String!
}

input AwsMediaLiveShScheduleActionSettingsHlsTimedMetadataSettingsInput {
  Id3: String!
}

input AwsMediaLiveShScheduleActionSettingsInputPrepareSettingsInput {
  InputAttachmentNameReference: String
  InputClippingSettings: AwsMediaLiveSnInput
  UrlPath: [String]
}

input AwsMediaLiveSnInput {
  InputTimecodeSource: String!
  StartTimecode: AwsMediaLiveSnStartTimecodeInput
  StopTimecode: AwsMediaLiveSnStopTimecodeInput
}

input AwsMediaLiveSnStartTimecodeInput {
  Timecode: String
}

input AwsMediaLiveSnStopTimecodeInput {
  LastFrameClippingBehavior: String
  Timecode: String
}

input AwsMediaLiveShScheduleActionSettingsInputSwitchSettingsInput {
  InputAttachmentNameReference: String!
  InputClippingSettings: AwsMediaLiveSnInput
  UrlPath: [String]
}

input AwsMediaLiveShScheduleActionSettingsMotionGraphicsImageActivateSettingsInput {
  Duration: JSON
  PasswordParam: String
  Url: String
  Username: String
}

input AwsMediaLiveShScheduleActionSettingsPauseStateSettingsInput {
  Pipelines: [AwsMediaLiveShScheduleActionSettingsPauseStateSettingsPipelinesInput]
}

input AwsMediaLiveShScheduleActionSettingsPauseStateSettingsPipelinesInput {
  PipelineId: String!
}

input AwsMediaLiveShScheduleActionSettingsScte35ReturnToNetworkSettingsInput {
  SpliceEventId: JSON!
}

input AwsMediaLiveShScheduleActionSettingsScte35SpliceInsertSettingsInput {
  Duration: JSON
  SpliceEventId: JSON!
}

input AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsInput {
  Scte35Descriptors: [AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsInput]!
}

input AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsInput {
  Scte35DescriptorSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsInput!
}

input AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsInput {
  SegmentationDescriptorScte35DescriptorSettings: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsInput!
}

input AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsInput {
  DeliveryRestrictions: AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsInput
  SegmentNum: Int
  SegmentationCancelIndicator: String!
  SegmentationDuration: JSON
  SegmentationEventId: JSON!
  SegmentationTypeId: Int
  SegmentationUpid: String
  SegmentationUpidType: Int
  SegmentsExpected: Int
  SubSegmentNum: Int
  SubSegmentsExpected: Int
}

input AwsMediaLiveShScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsInput {
  ArchiveAllowedFlag: String!
  DeviceRestrictions: String!
  NoRegionalBlackoutFlag: String!
  WebDeliveryAllowedFlag: String!
}

input AwsMediaLiveShScheduleActionSettingsStaticImageActivateSettingsInput {
  Duration: Int
  FadeIn: Int
  FadeOut: Int
  Height: Int
  Image: AwsMediaLiveS1kInput!
  ImageX: Int
  ImageY: Int
  Layer: Int
  Opacity: Int
  Width: Int
}

input AwsMediaLiveS1kInput {
  PasswordParam: String
  Uri: String!
  Username: String
}

input AwsMediaLiveShScheduleActionSettingsStaticImageDeactivateSettingsInput {
  FadeOut: Int
  Layer: Int
}

input AwsMediaLiveShScheduleActionStartSettingsInput {
  FixedModeScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettingsFixedModeScheduleActionStartSettingsInput
  FollowModeScheduleActionStartSettings: AwsMediaLiveShScheduleActionStartSettingsFollowModeScheduleActionStartSettingsInput
  ImmediateModeScheduleActionStartSettings: JSON
}

input AwsMediaLiveShScheduleActionStartSettingsFixedModeScheduleActionStartSettingsInput {
  Time: String!
}

input AwsMediaLiveShScheduleActionStartSettingsFollowModeScheduleActionStartSettingsInput {
  FollowPoint: String!
  ReferenceActionName: String!
}

input AwsMediaLiveBatchUpdateScheduleDeletesInput {
  ActionNames: [String]!
}

input AwsMediaLiveCancelInputDeviceTransferInput {
  InputDeviceId: String!
}

type AwsMediaLiveCreateChannelOutput {
  Channel: AwsMediaLiveSdz
}

type AwsMediaLiveSdz {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  EncoderSettings: AwsMediaLiveS2b
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelineDetails: [AwsMediaLiveSe2]
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

type AwsMediaLiveS20 {
  Resolution: String
}

type AwsMediaLiveS23 {
  Id: String
  MediaPackageSettings: [AwsMediaLiveS23MediaPackageSettings]
  MultiplexSettings: AwsMediaLiveS23MultiplexSettings
  Settings: [AwsMediaLiveS23Settings]
}

type AwsMediaLiveS23MediaPackageSettings {
  ChannelId: String
}

type AwsMediaLiveS23MultiplexSettings {
  MultiplexId: String
  ProgramName: String
}

type AwsMediaLiveS23Settings {
  PasswordParam: String
  StreamName: String
  Url: String
  Username: String
}

type AwsMediaLiveSe0 {
  SourceIp: String
}

type AwsMediaLiveS2b {
  AudioDescriptions: [AwsMediaLiveS2bAudioDescriptions]!
  AvailBlanking: AwsMediaLiveS2bAvailBlanking
  AvailConfiguration: AwsMediaLiveS2bAvailConfiguration
  BlackoutSlate: AwsMediaLiveS2bBlackoutSlate
  CaptionDescriptions: [AwsMediaLiveS2bCaptionDescriptions]
  FeatureActivations: AwsMediaLiveS2bFeatureActivations
  GlobalConfiguration: AwsMediaLiveS2bGlobalConfiguration
  MotionGraphicsConfiguration: AwsMediaLiveS2bMotionGraphicsConfiguration
  NielsenConfiguration: AwsMediaLiveS2bNielsenConfiguration
  OutputGroups: [AwsMediaLiveS2bOutputGroups]!
  TimecodeConfig: AwsMediaLiveS2bTimecodeConfig!
  VideoDescriptions: [AwsMediaLiveS2bVideoDescriptions]!
}

type AwsMediaLiveS2bAudioDescriptions {
  AudioNormalizationSettings: AwsMediaLiveS2bAudioDescriptionsAudioNormalizationSettings
  AudioSelectorName: String!
  AudioType: String
  AudioTypeControl: String
  CodecSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettings
  LanguageCode: String
  LanguageCodeControl: String
  Name: String!
  RemixSettings: AwsMediaLiveS2bAudioDescriptionsRemixSettings
  StreamName: String
}

type AwsMediaLiveS2bAudioDescriptionsAudioNormalizationSettings {
  Algorithm: String
  AlgorithmControl: String
  TargetLkfs: JSON
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettings {
  AacSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsAacSettings
  Ac3Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsAc3Settings
  Eac3Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsEac3Settings
  Mp2Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsMp2Settings
  PassThroughSettings: JSON
  WavSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsWavSettings
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettingsAacSettings {
  Bitrate: JSON
  CodingMode: String
  InputType: String
  Profile: String
  RateControlMode: String
  RawFormat: String
  SampleRate: JSON
  Spec: String
  VbrQuality: String
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettingsAc3Settings {
  Bitrate: JSON
  BitstreamMode: String
  CodingMode: String
  Dialnorm: Int
  DrcProfile: String
  LfeFilter: String
  MetadataControl: String
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettingsEac3Settings {
  AttenuationControl: String
  Bitrate: JSON
  BitstreamMode: String
  CodingMode: String
  DcFilter: String
  Dialnorm: Int
  DrcLine: String
  DrcRf: String
  LfeControl: String
  LfeFilter: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MetadataControl: String
  PassthroughControl: String
  PhaseControl: String
  StereoDownmix: String
  SurroundExMode: String
  SurroundMode: String
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettingsMp2Settings {
  Bitrate: JSON
  CodingMode: String
  SampleRate: JSON
}

type AwsMediaLiveS2bAudioDescriptionsCodecSettingsWavSettings {
  BitDepth: JSON
  CodingMode: String
  SampleRate: JSON
}

type AwsMediaLiveS2bAudioDescriptionsRemixSettings {
  ChannelMappings: [AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappings]!
  ChannelsIn: Int
  ChannelsOut: Int
}

type AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappings {
  InputChannelLevels: [AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevels]!
  OutputChannel: Int!
}

type AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevels {
  Gain: Int!
  InputChannel: Int!
}

type AwsMediaLiveS2bAvailBlanking {
  AvailBlankingImage: AwsMediaLiveS1k
  State: String
}

type AwsMediaLiveS2bAvailConfiguration {
  AvailSettings: AwsMediaLiveS2bAvailConfigurationAvailSettings
}

type AwsMediaLiveS2bAvailConfigurationAvailSettings {
  Scte35SpliceInsert: AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35SpliceInsert
  Scte35TimeSignalApos: AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35TimeSignalApos
}

type AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35SpliceInsert {
  AdAvailOffset: Int
  NoRegionalBlackoutFlag: String
  WebDeliveryAllowedFlag: String
}

type AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35TimeSignalApos {
  AdAvailOffset: Int
  NoRegionalBlackoutFlag: String
  WebDeliveryAllowedFlag: String
}

type AwsMediaLiveS2bBlackoutSlate {
  BlackoutSlateImage: AwsMediaLiveS1k
  NetworkEndBlackout: String
  NetworkEndBlackoutImage: AwsMediaLiveS1k
  NetworkId: String
  State: String
}

type AwsMediaLiveS2bCaptionDescriptions {
  CaptionSelectorName: String!
  DestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettings
  LanguageCode: String
  LanguageDescription: String
  Name: String!
}

type AwsMediaLiveS2bCaptionDescriptionsDestinationSettings {
  AribDestinationSettings: JSON
  BurnInDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsBurnInDestinationSettings
  DvbSubDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings
  EbuTtDDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsEbuTtDDestinationSettings
  EmbeddedDestinationSettings: JSON
  EmbeddedPlusScte20DestinationSettings: JSON
  RtmpCaptionInfoDestinationSettings: JSON
  Scte20PlusEmbeddedDestinationSettings: JSON
  Scte27DestinationSettings: JSON
  SmpteTtDestinationSettings: JSON
  TeletextDestinationSettings: JSON
  TtmlDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsTtmlDestinationSettings
  WebvttDestinationSettings: JSON
}

type AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsBurnInDestinationSettings {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  Font: AwsMediaLiveS1k
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontSize: String
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextGridControl: String
  XPosition: Int
  YPosition: Int
}

type AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  Font: AwsMediaLiveS1k
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontSize: String
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextGridControl: String
  XPosition: Int
  YPosition: Int
}

type AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsEbuTtDDestinationSettings {
  CopyrightHolder: String
  FillLineGap: String
  FontFamily: String
  StyleControl: String
}

type AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsTtmlDestinationSettings {
  StyleControl: String
}

type AwsMediaLiveS2bFeatureActivations {
  InputPrepareScheduleActions: String
}

type AwsMediaLiveS2bGlobalConfiguration {
  InitialAudioGain: Int
  InputEndAction: String
  InputLossBehavior: AwsMediaLiveS2bGlobalConfigurationInputLossBehavior
  OutputLockingMode: String
  OutputTimingSource: String
  SupportLowFramerateInputs: String
}

type AwsMediaLiveS2bGlobalConfigurationInputLossBehavior {
  BlackFrameMsec: Int
  InputLossImageColor: String
  InputLossImageSlate: AwsMediaLiveS1k
  InputLossImageType: String
  RepeatFrameMsec: Int
}

type AwsMediaLiveS2bMotionGraphicsConfiguration {
  MotionGraphicsInsertion: String
  MotionGraphicsSettings: AwsMediaLiveS2bMotionGraphicsConfigurationMotionGraphicsSettings!
}

type AwsMediaLiveS2bMotionGraphicsConfigurationMotionGraphicsSettings {
  HtmlMotionGraphicsSettings: JSON
}

type AwsMediaLiveS2bNielsenConfiguration {
  DistributorId: String
  NielsenPcmToId3Tagging: String
}

type AwsMediaLiveS2bOutputGroups {
  Name: String
  OutputGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettings!
  Outputs: [AwsMediaLiveS2bOutputGroupsOutputs]!
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettings {
  ArchiveGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettings
  FrameCaptureGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings
  HlsGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettings
  MediaPackageGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMediaPackageGroupSettings
  MsSmoothGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMsSmoothGroupSettings
  MultiplexGroupSettings: JSON
  RtmpGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsRtmpGroupSettings
  UdpGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsUdpGroupSettings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettings {
  ArchiveCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettings
  Destination: AwsMediaLiveS60!
  RolloverInterval: Int
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettings {
  ArchiveS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsArchiveS3Settings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsArchiveS3Settings {
  CannedAcl: String
}

type AwsMediaLiveS60 {
  DestinationRefId: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings {
  Destination: AwsMediaLiveS60!
  FrameCaptureCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettings {
  FrameCaptureS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3Settings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3Settings {
  CannedAcl: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettings {
  AdMarkers: [String]
  BaseUrlContent: String
  BaseUrlContent1: String
  BaseUrlManifest: String
  BaseUrlManifest1: String
  CaptionLanguageMappings: [AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappings]
  CaptionLanguageSetting: String
  ClientCache: String
  CodecSpecification: String
  ConstantIv: String
  Destination: AwsMediaLiveS60!
  DirectoryStructure: String
  DiscontinuityTags: String
  EncryptionType: String
  HlsCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings
  HlsId3SegmentTagging: String
  IFrameOnlyPlaylists: String
  IncompleteSegmentBehavior: String
  IndexNSegments: Int
  InputLossAction: String
  IvInManifest: String
  IvSource: String
  KeepSegments: Int
  KeyFormat: String
  KeyFormatVersions: String
  KeyProviderSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings
  ManifestCompression: String
  ManifestDurationFormat: String
  MinSegmentLength: Int
  Mode: String
  OutputSelection: String
  ProgramDateTime: String
  ProgramDateTimePeriod: Int
  RedundantManifest: String
  SegmentLength: Int
  SegmentationMode: String
  SegmentsPerSubdirectory: Int
  StreamInfResolution: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
  TimestampDeltaMilliseconds: Int
  TsFileMode: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappings {
  CaptionChannel: Int!
  LanguageCode: String!
  LanguageDescription: String!
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings {
  HlsAkamaiSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettings
  HlsBasicPutSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettings
  HlsMediaStoreSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettings
  HlsS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsS3Settings
  HlsWebdavSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettings {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  HttpTransferMode: String
  NumRetries: Int
  RestartDelay: Int
  Salt: String
  Token: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettings {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  NumRetries: Int
  RestartDelay: Int
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettings {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  MediaStoreStorageClass: String
  NumRetries: Int
  RestartDelay: Int
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsS3Settings {
  CannedAcl: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettings {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  HttpTransferMode: String
  NumRetries: Int
  RestartDelay: Int
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings {
  StaticKeySettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings {
  KeyProviderServer: AwsMediaLiveS1k
  StaticKeyValue: String!
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMediaPackageGroupSettings {
  Destination: AwsMediaLiveS60!
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMsSmoothGroupSettings {
  AcquisitionPointId: String
  AudioOnlyTimecodeControl: String
  CertificateMode: String
  ConnectionRetryInterval: Int
  Destination: AwsMediaLiveS60!
  EventId: String
  EventIdMode: String
  EventStopBehavior: String
  FilecacheDuration: Int
  FragmentLength: Int
  InputLossAction: String
  NumRetries: Int
  RestartDelay: Int
  SegmentationMode: String
  SendDelayMs: Int
  SparseTrackType: String
  StreamManifestBehavior: String
  TimestampOffset: String
  TimestampOffsetMode: String
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsRtmpGroupSettings {
  AdMarkers: [String]
  AuthenticationScheme: String
  CacheFullBehavior: String
  CacheLength: Int
  CaptionData: String
  InputLossAction: String
  RestartDelay: Int
}

type AwsMediaLiveS2bOutputGroupsOutputGroupSettingsUdpGroupSettings {
  InputLossAction: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
}

type AwsMediaLiveS2bOutputGroupsOutputs {
  AudioDescriptionNames: [String]
  CaptionDescriptionNames: [String]
  OutputName: String
  OutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettings!
  VideoDescriptionName: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettings {
  ArchiveOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettings
  FrameCaptureOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettings
  HlsOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettings
  MediaPackageOutputSettings: JSON
  MsSmoothOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMsSmoothOutputSettings
  MultiplexOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMultiplexOutputSettings
  RtmpOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsRtmpOutputSettings
  UdpOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettings
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettings {
  ContainerSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings!
  Extension: String
  NameModifier: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings {
  M2tsSettings: AwsMediaLiveS86
  RawSettings: JSON
}

type AwsMediaLiveS86 {
  AbsentInputAudioBehavior: String
  Arib: String
  AribCaptionsPid: String
  AribCaptionsPidControl: String
  AudioBufferModel: String
  AudioFramesPerPes: Int
  AudioPids: String
  AudioStreamType: String
  Bitrate: Int
  BufferModel: String
  CcDescriptor: String
  DvbNitSettings: AwsMediaLiveS86DvbNitSettings
  DvbSdtSettings: AwsMediaLiveS86DvbSdtSettings
  DvbSubPids: String
  DvbTdtSettings: AwsMediaLiveS86DvbTdtSettings
  DvbTeletextPid: String
  Ebif: String
  EbpAudioInterval: String
  EbpLookaheadMs: Int
  EbpPlacement: String
  EcmPid: String
  EsRateInPes: String
  EtvPlatformPid: String
  EtvSignalPid: String
  FragmentTime: JSON
  Klv: String
  KlvDataPids: String
  NielsenId3Behavior: String
  NullPacketBitrate: JSON
  PatInterval: Int
  PcrControl: String
  PcrPeriod: Int
  PcrPid: String
  PmtInterval: Int
  PmtPid: String
  ProgramNum: Int
  RateMode: String
  Scte27Pids: String
  Scte35Control: String
  Scte35Pid: String
  SegmentationMarkers: String
  SegmentationStyle: String
  SegmentationTime: JSON
  TimedMetadataBehavior: String
  TimedMetadataPid: String
  TransportStreamId: Int
  VideoPid: String
}

type AwsMediaLiveS86DvbNitSettings {
  NetworkId: Int!
  NetworkName: String!
  RepInterval: Int
}

type AwsMediaLiveS86DvbSdtSettings {
  OutputSdt: String
  RepInterval: Int
  ServiceName: String
  ServiceProviderName: String
}

type AwsMediaLiveS86DvbTdtSettings {
  RepInterval: Int
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettings {
  NameModifier: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettings {
  H265PackagingType: String
  HlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings!
  NameModifier: String
  SegmentModifier: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings {
  AudioOnlyHlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings
  Fmp4HlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettings
  FrameCaptureHlsSettings: JSON
  StandardHlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings {
  AudioGroupId: String
  AudioOnlyImage: AwsMediaLiveS1k
  AudioTrackType: String
  SegmentType: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettings {
  AudioRenditionSets: String
  NielsenId3Behavior: String
  TimedMetadataBehavior: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings {
  AudioRenditionSets: String
  M3u8Settings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8Settings!
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8Settings {
  AudioFramesPerPes: Int
  AudioPids: String
  EcmPid: String
  NielsenId3Behavior: String
  PatInterval: Int
  PcrControl: String
  PcrPeriod: Int
  PcrPid: String
  PmtInterval: Int
  PmtPid: String
  ProgramNum: Int
  Scte35Behavior: String
  Scte35Pid: String
  TimedMetadataBehavior: String
  TimedMetadataPid: String
  TransportStreamId: Int
  VideoPid: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMsSmoothOutputSettings {
  H265PackagingType: String
  NameModifier: String
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMultiplexOutputSettings {
  Destination: AwsMediaLiveS60!
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsRtmpOutputSettings {
  CertificateMode: String
  ConnectionRetryInterval: Int
  Destination: AwsMediaLiveS60!
  NumRetries: Int
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettings {
  BufferMsec: Int
  ContainerSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings!
  Destination: AwsMediaLiveS60!
  FecOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettings
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings {
  M2tsSettings: AwsMediaLiveS86
}

type AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettings {
  ColumnDepth: Int
  IncludeFec: String
  RowLength: Int
}

type AwsMediaLiveS2bTimecodeConfig {
  Source: String!
  SyncThreshold: Int
}

type AwsMediaLiveS2bVideoDescriptions {
  CodecSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettings
  Height: Int
  Name: String!
  RespondToAfd: String
  ScalingBehavior: String
  Sharpness: Int
  Width: Int
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettings {
  FrameCaptureSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsFrameCaptureSettings
  H264Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264Settings
  H265Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265Settings
  Mpeg2Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2Settings
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsFrameCaptureSettings {
  CaptureInterval: Int
  CaptureIntervalUnits: String
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264Settings {
  AdaptiveQuantization: String
  AfdSignaling: String
  Bitrate: Int
  BufFillPct: Int
  BufSize: Int
  ColorMetadata: String
  ColorSpaceSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettings
  EntropyEncoding: String
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsFilterSettings
  FixedAfd: String
  FlickerAq: String
  ForceFieldPictures: String
  FramerateControl: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopNumBFrames: Int
  GopSize: JSON
  GopSizeUnits: String
  Level: String
  LookAheadRateControl: String
  MaxBitrate: Int
  MinIInterval: Int
  NumRefFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  Profile: String
  QualityLevel: String
  QvbrQualityLevel: Int
  RateControlMode: String
  ScanType: String
  SceneChangeDetect: String
  Slices: Int
  Softness: Int
  SpatialAq: String
  SubgopLength: String
  Syntax: String
  TemporalAq: String
  TimecodeInsertion: String
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettings {
  ColorSpacePassthroughSettings: JSON
  Rec601Settings: JSON
  Rec709Settings: JSON
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsFilterSettings {
  TemporalFilterSettings: AwsMediaLiveSai
}

type AwsMediaLiveSai {
  PostFilterSharpening: String
  Strength: String
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265Settings {
  AdaptiveQuantization: String
  AfdSignaling: String
  AlternativeTransferFunction: String
  Bitrate: Int
  BufSize: Int
  ColorMetadata: String
  ColorSpaceSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsFilterSettings
  FixedAfd: String
  FlickerAq: String
  FramerateDenominator: Int!
  FramerateNumerator: Int!
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  Level: String
  LookAheadRateControl: String
  MaxBitrate: Int
  MinIInterval: Int
  ParDenominator: Int
  ParNumerator: Int
  Profile: String
  QvbrQualityLevel: Int
  RateControlMode: String
  ScanType: String
  SceneChangeDetect: String
  Slices: Int
  Tier: String
  TimecodeInsertion: String
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings {
  ColorSpacePassthroughSettings: JSON
  Hdr10Settings: AwsMediaLiveSbg
  Rec601Settings: JSON
  Rec709Settings: JSON
}

type AwsMediaLiveSbg {
  MaxCll: Int
  MaxFall: Int
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsFilterSettings {
  TemporalFilterSettings: AwsMediaLiveSai
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2Settings {
  AdaptiveQuantization: String
  AfdSignaling: String
  ColorMetadata: String
  ColorSpace: String
  DisplayAspectRatio: String
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsFilterSettings
  FixedAfd: String
  FramerateDenominator: Int!
  FramerateNumerator: Int!
  GopClosedCadence: Int
  GopNumBFrames: Int
  GopSize: JSON
  GopSizeUnits: String
  ScanType: String
  SubgopLength: String
  TimecodeInsertion: String
}

type AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsFilterSettings {
  TemporalFilterSettings: AwsMediaLiveSai
}

type AwsMediaLiveSc6 {
  AutomaticInputFailoverSettings: AwsMediaLiveSc6AutomaticInputFailoverSettings
  InputAttachmentName: String
  InputId: String
  InputSettings: AwsMediaLiveSc6InputSettings
}

type AwsMediaLiveSc6AutomaticInputFailoverSettings {
  ErrorClearTimeMsec: Int
  FailoverConditions: [AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditions]
  InputPreference: String
  SecondaryInputId: String!
}

type AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditions {
  FailoverConditionSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettings
}

type AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettings {
  AudioSilenceSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsAudioSilenceSettings
  InputLossSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInputLossSettings
  VideoBlackSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsVideoBlackSettings
}

type AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsAudioSilenceSettings {
  AudioSelectorName: String!
  AudioSilenceThresholdMsec: Int
}

type AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInputLossSettings {
  InputLossThresholdMsec: Int
}

type AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsVideoBlackSettings {
  BlackDetectThreshold: JSON
  VideoBlackThresholdMsec: Int
}

type AwsMediaLiveSc6InputSettings {
  AudioSelectors: [AwsMediaLiveSc6InputSettingsAudioSelectors]
  CaptionSelectors: [AwsMediaLiveSc6InputSettingsCaptionSelectors]
  DeblockFilter: String
  DenoiseFilter: String
  FilterStrength: Int
  InputFilter: String
  NetworkInputSettings: AwsMediaLiveSc6InputSettingsNetworkInputSettings
  Smpte2038DataPreference: String
  SourceEndBehavior: String
  VideoSelector: AwsMediaLiveSc6InputSettingsVideoSelector
}

type AwsMediaLiveSc6InputSettingsAudioSelectors {
  Name: String!
  SelectorSettings: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettings
}

type AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettings {
  AudioLanguageSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelection
  AudioPidSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioPidSelection
  AudioTrackSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelection
}

type AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelection {
  LanguageCode: String!
  LanguageSelectionPolicy: String
}

type AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioPidSelection {
  Pid: Int!
}

type AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelection {
  Tracks: [AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionTracks]!
}

type AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionTracks {
  Track: Int!
}

type AwsMediaLiveSc6InputSettingsCaptionSelectors {
  LanguageCode: String
  Name: String!
  SelectorSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettings
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettings {
  AncillarySourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsAncillarySourceSettings
  AribSourceSettings: JSON
  DvbSubSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettings
  EmbeddedSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettings
  Scte20SourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettings
  Scte27SourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettings
  TeletextSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettings
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsAncillarySourceSettings {
  SourceAncillaryChannelNumber: Int
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettings {
  OcrLanguage: String
  Pid: Int
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettings {
  Convert608To708: String
  Scte20Detection: String
  Source608ChannelNumber: Int
  Source608TrackNumber: Int
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettings {
  Convert608To708: String
  Source608ChannelNumber: Int
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettings {
  OcrLanguage: String
  Pid: Int
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettings {
  OutputRectangle: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsOutputRectangle
  PageNumber: String
}

type AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsOutputRectangle {
  Height: JSON!
  LeftOffset: JSON!
  TopOffset: JSON!
  Width: JSON!
}

type AwsMediaLiveSc6InputSettingsNetworkInputSettings {
  HlsInputSettings: AwsMediaLiveSc6InputSettingsNetworkInputSettingsHlsInputSettings
  ServerValidation: String
}

type AwsMediaLiveSc6InputSettingsNetworkInputSettingsHlsInputSettings {
  Bandwidth: Int
  BufferSegments: Int
  Retries: Int
  RetryInterval: Int
  Scte35Source: String
}

type AwsMediaLiveSc6InputSettingsVideoSelector {
  ColorSpace: String
  ColorSpaceSettings: AwsMediaLiveSc6InputSettingsVideoSelectorColorSpaceSettings
  ColorSpaceUsage: String
  SelectorSettings: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettings
}

type AwsMediaLiveSc6InputSettingsVideoSelectorColorSpaceSettings {
  Hdr10Settings: AwsMediaLiveSbg
}

type AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettings {
  VideoSelectorPid: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorPid
  VideoSelectorProgramId: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramId
}

type AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorPid {
  Pid: Int
}

type AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramId {
  ProgramId: Int
}

type AwsMediaLiveSdr {
  Codec: String
  MaximumBitrate: String
  Resolution: String
}

type AwsMediaLiveSe2 {
  ActiveInputAttachmentName: String
  ActiveInputSwitchActionName: String
  ActiveMotionGraphicsActionName: String
  ActiveMotionGraphicsUri: String
  PipelineId: String
}

type AwsMediaLiveSe5 {
  AvailabilityZones: [String]
  NetworkInterfaceIds: [String]
  SecurityGroupIds: [String]
  SubnetIds: [String]
}

input AwsMediaLiveCreateChannelInput {
  CdiInputSpecification: AwsMediaLiveS20Input
  ChannelClass: String
  Destinations: [AwsMediaLiveS23Input]
  EncoderSettings: AwsMediaLiveS2bInput
  InputAttachments: [AwsMediaLiveSc6Input]
  InputSpecification: AwsMediaLiveSdrInput
  LogLevel: String
  Name: String
  RequestId: String
  Reserved: String
  RoleArn: String
  Tags: JSON
  Vpc: AwsMediaLiveCreateChannelVpcInput
}

input AwsMediaLiveS20Input {
  Resolution: String
}

input AwsMediaLiveS23Input {
  Id: String
  MediaPackageSettings: [AwsMediaLiveS23MediaPackageSettingsInput]
  MultiplexSettings: AwsMediaLiveS23MultiplexSettingsInput
  Settings: [AwsMediaLiveS23SettingsInput]
}

input AwsMediaLiveS23MediaPackageSettingsInput {
  ChannelId: String
}

input AwsMediaLiveS23MultiplexSettingsInput {
  MultiplexId: String
  ProgramName: String
}

input AwsMediaLiveS23SettingsInput {
  PasswordParam: String
  StreamName: String
  Url: String
  Username: String
}

input AwsMediaLiveS2bInput {
  AudioDescriptions: [AwsMediaLiveS2bAudioDescriptionsInput]!
  AvailBlanking: AwsMediaLiveS2bAvailBlankingInput
  AvailConfiguration: AwsMediaLiveS2bAvailConfigurationInput
  BlackoutSlate: AwsMediaLiveS2bBlackoutSlateInput
  CaptionDescriptions: [AwsMediaLiveS2bCaptionDescriptionsInput]
  FeatureActivations: AwsMediaLiveS2bFeatureActivationsInput
  GlobalConfiguration: AwsMediaLiveS2bGlobalConfigurationInput
  MotionGraphicsConfiguration: AwsMediaLiveS2bMotionGraphicsConfigurationInput
  NielsenConfiguration: AwsMediaLiveS2bNielsenConfigurationInput
  OutputGroups: [AwsMediaLiveS2bOutputGroupsInput]!
  TimecodeConfig: AwsMediaLiveS2bTimecodeConfigInput!
  VideoDescriptions: [AwsMediaLiveS2bVideoDescriptionsInput]!
}

input AwsMediaLiveS2bAudioDescriptionsInput {
  AudioNormalizationSettings: AwsMediaLiveS2bAudioDescriptionsAudioNormalizationSettingsInput
  AudioSelectorName: String!
  AudioType: String
  AudioTypeControl: String
  CodecSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsInput
  LanguageCode: String
  LanguageCodeControl: String
  Name: String!
  RemixSettings: AwsMediaLiveS2bAudioDescriptionsRemixSettingsInput
  StreamName: String
}

input AwsMediaLiveS2bAudioDescriptionsAudioNormalizationSettingsInput {
  Algorithm: String
  AlgorithmControl: String
  TargetLkfs: JSON
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsInput {
  AacSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsAacSettingsInput
  Ac3Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsAc3SettingsInput
  Eac3Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsEac3SettingsInput
  Mp2Settings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsMp2SettingsInput
  PassThroughSettings: JSON
  WavSettings: AwsMediaLiveS2bAudioDescriptionsCodecSettingsWavSettingsInput
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsAacSettingsInput {
  Bitrate: JSON
  CodingMode: String
  InputType: String
  Profile: String
  RateControlMode: String
  RawFormat: String
  SampleRate: JSON
  Spec: String
  VbrQuality: String
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsAc3SettingsInput {
  Bitrate: JSON
  BitstreamMode: String
  CodingMode: String
  Dialnorm: Int
  DrcProfile: String
  LfeFilter: String
  MetadataControl: String
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsEac3SettingsInput {
  AttenuationControl: String
  Bitrate: JSON
  BitstreamMode: String
  CodingMode: String
  DcFilter: String
  Dialnorm: Int
  DrcLine: String
  DrcRf: String
  LfeControl: String
  LfeFilter: String
  LoRoCenterMixLevel: JSON
  LoRoSurroundMixLevel: JSON
  LtRtCenterMixLevel: JSON
  LtRtSurroundMixLevel: JSON
  MetadataControl: String
  PassthroughControl: String
  PhaseControl: String
  StereoDownmix: String
  SurroundExMode: String
  SurroundMode: String
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsMp2SettingsInput {
  Bitrate: JSON
  CodingMode: String
  SampleRate: JSON
}

input AwsMediaLiveS2bAudioDescriptionsCodecSettingsWavSettingsInput {
  BitDepth: JSON
  CodingMode: String
  SampleRate: JSON
}

input AwsMediaLiveS2bAudioDescriptionsRemixSettingsInput {
  ChannelMappings: [AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInput]!
  ChannelsIn: Int
  ChannelsOut: Int
}

input AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInput {
  InputChannelLevels: [AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsInput]!
  OutputChannel: Int!
}

input AwsMediaLiveS2bAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsInput {
  Gain: Int!
  InputChannel: Int!
}

input AwsMediaLiveS2bAvailBlankingInput {
  AvailBlankingImage: AwsMediaLiveS1kInput
  State: String
}

input AwsMediaLiveS2bAvailConfigurationInput {
  AvailSettings: AwsMediaLiveS2bAvailConfigurationAvailSettingsInput
}

input AwsMediaLiveS2bAvailConfigurationAvailSettingsInput {
  Scte35SpliceInsert: AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35SpliceInsertInput
  Scte35TimeSignalApos: AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35TimeSignalAposInput
}

input AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35SpliceInsertInput {
  AdAvailOffset: Int
  NoRegionalBlackoutFlag: String
  WebDeliveryAllowedFlag: String
}

input AwsMediaLiveS2bAvailConfigurationAvailSettingsScte35TimeSignalAposInput {
  AdAvailOffset: Int
  NoRegionalBlackoutFlag: String
  WebDeliveryAllowedFlag: String
}

input AwsMediaLiveS2bBlackoutSlateInput {
  BlackoutSlateImage: AwsMediaLiveS1kInput
  NetworkEndBlackout: String
  NetworkEndBlackoutImage: AwsMediaLiveS1kInput
  NetworkId: String
  State: String
}

input AwsMediaLiveS2bCaptionDescriptionsInput {
  CaptionSelectorName: String!
  DestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsInput
  LanguageCode: String
  LanguageDescription: String
  Name: String!
}

input AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsInput {
  AribDestinationSettings: JSON
  BurnInDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsInput
  DvbSubDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsInput
  EbuTtDDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsEbuTtDDestinationSettingsInput
  EmbeddedDestinationSettings: JSON
  EmbeddedPlusScte20DestinationSettings: JSON
  RtmpCaptionInfoDestinationSettings: JSON
  Scte20PlusEmbeddedDestinationSettings: JSON
  Scte27DestinationSettings: JSON
  SmpteTtDestinationSettings: JSON
  TeletextDestinationSettings: JSON
  TtmlDestinationSettings: AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsInput
  WebvttDestinationSettings: JSON
}

input AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsInput {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  Font: AwsMediaLiveS1kInput
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontSize: String
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextGridControl: String
  XPosition: Int
  YPosition: Int
}

input AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsInput {
  Alignment: String
  BackgroundColor: String
  BackgroundOpacity: Int
  Font: AwsMediaLiveS1kInput
  FontColor: String
  FontOpacity: Int
  FontResolution: Int
  FontSize: String
  OutlineColor: String
  OutlineSize: Int
  ShadowColor: String
  ShadowOpacity: Int
  ShadowXOffset: Int
  ShadowYOffset: Int
  TeletextGridControl: String
  XPosition: Int
  YPosition: Int
}

input AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsEbuTtDDestinationSettingsInput {
  CopyrightHolder: String
  FillLineGap: String
  FontFamily: String
  StyleControl: String
}

input AwsMediaLiveS2bCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsInput {
  StyleControl: String
}

input AwsMediaLiveS2bFeatureActivationsInput {
  InputPrepareScheduleActions: String
}

input AwsMediaLiveS2bGlobalConfigurationInput {
  InitialAudioGain: Int
  InputEndAction: String
  InputLossBehavior: AwsMediaLiveS2bGlobalConfigurationInputLossBehaviorInput
  OutputLockingMode: String
  OutputTimingSource: String
  SupportLowFramerateInputs: String
}

input AwsMediaLiveS2bGlobalConfigurationInputLossBehaviorInput {
  BlackFrameMsec: Int
  InputLossImageColor: String
  InputLossImageSlate: AwsMediaLiveS1kInput
  InputLossImageType: String
  RepeatFrameMsec: Int
}

input AwsMediaLiveS2bMotionGraphicsConfigurationInput {
  MotionGraphicsInsertion: String
  MotionGraphicsSettings: AwsMediaLiveS2bMotionGraphicsConfigurationMotionGraphicsSettingsInput!
}

input AwsMediaLiveS2bMotionGraphicsConfigurationMotionGraphicsSettingsInput {
  HtmlMotionGraphicsSettings: JSON
}

input AwsMediaLiveS2bNielsenConfigurationInput {
  DistributorId: String
  NielsenPcmToId3Tagging: String
}

input AwsMediaLiveS2bOutputGroupsInput {
  Name: String
  OutputGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsInput!
  Outputs: [AwsMediaLiveS2bOutputGroupsOutputsInput]!
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsInput {
  ArchiveGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsInput
  FrameCaptureGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsInput
  HlsGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsInput
  MediaPackageGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsInput
  MsSmoothGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsInput
  MultiplexGroupSettings: JSON
  RtmpGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsRtmpGroupSettingsInput
  UdpGroupSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsUdpGroupSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsInput {
  ArchiveCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsInput
  Destination: AwsMediaLiveS60Input!
  RolloverInterval: Int
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsInput {
  ArchiveS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsArchiveS3SettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsArchiveGroupSettingsArchiveCdnSettingsArchiveS3SettingsInput {
  CannedAcl: String
}

input AwsMediaLiveS60Input {
  DestinationRefId: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsInput {
  Destination: AwsMediaLiveS60Input!
  FrameCaptureCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsInput {
  FrameCaptureS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3SettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsFrameCaptureCdnSettingsFrameCaptureS3SettingsInput {
  CannedAcl: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsInput {
  AdMarkers: [String]
  BaseUrlContent: String
  BaseUrlContent1: String
  BaseUrlManifest: String
  BaseUrlManifest1: String
  CaptionLanguageMappings: [AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsInput]
  CaptionLanguageSetting: String
  ClientCache: String
  CodecSpecification: String
  ConstantIv: String
  Destination: AwsMediaLiveS60Input!
  DirectoryStructure: String
  DiscontinuityTags: String
  EncryptionType: String
  HlsCdnSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsInput
  HlsId3SegmentTagging: String
  IFrameOnlyPlaylists: String
  IncompleteSegmentBehavior: String
  IndexNSegments: Int
  InputLossAction: String
  IvInManifest: String
  IvSource: String
  KeepSegments: Int
  KeyFormat: String
  KeyFormatVersions: String
  KeyProviderSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsInput
  ManifestCompression: String
  ManifestDurationFormat: String
  MinSegmentLength: Int
  Mode: String
  OutputSelection: String
  ProgramDateTime: String
  ProgramDateTimePeriod: Int
  RedundantManifest: String
  SegmentLength: Int
  SegmentationMode: String
  SegmentsPerSubdirectory: Int
  StreamInfResolution: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
  TimestampDeltaMilliseconds: Int
  TsFileMode: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsInput {
  CaptionChannel: Int!
  LanguageCode: String!
  LanguageDescription: String!
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsInput {
  HlsAkamaiSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsInput
  HlsBasicPutSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsInput
  HlsMediaStoreSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsInput
  HlsS3Settings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsS3SettingsInput
  HlsWebdavSettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsInput {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  HttpTransferMode: String
  NumRetries: Int
  RestartDelay: Int
  Salt: String
  Token: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsInput {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  NumRetries: Int
  RestartDelay: Int
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsInput {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  MediaStoreStorageClass: String
  NumRetries: Int
  RestartDelay: Int
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsS3SettingsInput {
  CannedAcl: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsInput {
  ConnectionRetryInterval: Int
  FilecacheDuration: Int
  HttpTransferMode: String
  NumRetries: Int
  RestartDelay: Int
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsInput {
  StaticKeySettings: AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsInput {
  KeyProviderServer: AwsMediaLiveS1kInput
  StaticKeyValue: String!
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsInput {
  Destination: AwsMediaLiveS60Input!
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsInput {
  AcquisitionPointId: String
  AudioOnlyTimecodeControl: String
  CertificateMode: String
  ConnectionRetryInterval: Int
  Destination: AwsMediaLiveS60Input!
  EventId: String
  EventIdMode: String
  EventStopBehavior: String
  FilecacheDuration: Int
  FragmentLength: Int
  InputLossAction: String
  NumRetries: Int
  RestartDelay: Int
  SegmentationMode: String
  SendDelayMs: Int
  SparseTrackType: String
  StreamManifestBehavior: String
  TimestampOffset: String
  TimestampOffsetMode: String
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsRtmpGroupSettingsInput {
  AdMarkers: [String]
  AuthenticationScheme: String
  CacheFullBehavior: String
  CacheLength: Int
  CaptionData: String
  InputLossAction: String
  RestartDelay: Int
}

input AwsMediaLiveS2bOutputGroupsOutputGroupSettingsUdpGroupSettingsInput {
  InputLossAction: String
  TimedMetadataId3Frame: String
  TimedMetadataId3Period: Int
}

input AwsMediaLiveS2bOutputGroupsOutputsInput {
  AudioDescriptionNames: [String]
  CaptionDescriptionNames: [String]
  OutputName: String
  OutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsInput!
  VideoDescriptionName: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsInput {
  ArchiveOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsInput
  FrameCaptureOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsInput
  HlsOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsInput
  MediaPackageOutputSettings: JSON
  MsSmoothOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsInput
  MultiplexOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsInput
  RtmpOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsRtmpOutputSettingsInput
  UdpOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsInput {
  ContainerSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsInput!
  Extension: String
  NameModifier: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsInput {
  M2tsSettings: AwsMediaLiveS86Input
  RawSettings: JSON
}

input AwsMediaLiveS86Input {
  AbsentInputAudioBehavior: String
  Arib: String
  AribCaptionsPid: String
  AribCaptionsPidControl: String
  AudioBufferModel: String
  AudioFramesPerPes: Int
  AudioPids: String
  AudioStreamType: String
  Bitrate: Int
  BufferModel: String
  CcDescriptor: String
  DvbNitSettings: AwsMediaLiveS86DvbNitSettingsInput
  DvbSdtSettings: AwsMediaLiveS86DvbSdtSettingsInput
  DvbSubPids: String
  DvbTdtSettings: AwsMediaLiveS86DvbTdtSettingsInput
  DvbTeletextPid: String
  Ebif: String
  EbpAudioInterval: String
  EbpLookaheadMs: Int
  EbpPlacement: String
  EcmPid: String
  EsRateInPes: String
  EtvPlatformPid: String
  EtvSignalPid: String
  FragmentTime: JSON
  Klv: String
  KlvDataPids: String
  NielsenId3Behavior: String
  NullPacketBitrate: JSON
  PatInterval: Int
  PcrControl: String
  PcrPeriod: Int
  PcrPid: String
  PmtInterval: Int
  PmtPid: String
  ProgramNum: Int
  RateMode: String
  Scte27Pids: String
  Scte35Control: String
  Scte35Pid: String
  SegmentationMarkers: String
  SegmentationStyle: String
  SegmentationTime: JSON
  TimedMetadataBehavior: String
  TimedMetadataPid: String
  TransportStreamId: Int
  VideoPid: String
}

input AwsMediaLiveS86DvbNitSettingsInput {
  NetworkId: Int!
  NetworkName: String!
  RepInterval: Int
}

input AwsMediaLiveS86DvbSdtSettingsInput {
  OutputSdt: String
  RepInterval: Int
  ServiceName: String
  ServiceProviderName: String
}

input AwsMediaLiveS86DvbTdtSettingsInput {
  RepInterval: Int
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsInput {
  NameModifier: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsInput {
  H265PackagingType: String
  HlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsInput!
  NameModifier: String
  SegmentModifier: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsInput {
  AudioOnlyHlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsInput
  Fmp4HlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettingsInput
  FrameCaptureHlsSettings: JSON
  StandardHlsSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsInput {
  AudioGroupId: String
  AudioOnlyImage: AwsMediaLiveS1kInput
  AudioTrackType: String
  SegmentType: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsFmp4HlsSettingsInput {
  AudioRenditionSets: String
  NielsenId3Behavior: String
  TimedMetadataBehavior: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsInput {
  AudioRenditionSets: String
  M3u8Settings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsInput!
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsInput {
  AudioFramesPerPes: Int
  AudioPids: String
  EcmPid: String
  NielsenId3Behavior: String
  PatInterval: Int
  PcrControl: String
  PcrPeriod: Int
  PcrPid: String
  PmtInterval: Int
  PmtPid: String
  ProgramNum: Int
  Scte35Behavior: String
  Scte35Pid: String
  TimedMetadataBehavior: String
  TimedMetadataPid: String
  TransportStreamId: Int
  VideoPid: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsInput {
  H265PackagingType: String
  NameModifier: String
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsInput {
  Destination: AwsMediaLiveS60Input!
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsRtmpOutputSettingsInput {
  CertificateMode: String
  ConnectionRetryInterval: Int
  Destination: AwsMediaLiveS60Input!
  NumRetries: Int
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsInput {
  BufferMsec: Int
  ContainerSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsInput!
  Destination: AwsMediaLiveS60Input!
  FecOutputSettings: AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsInput
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsInput {
  M2tsSettings: AwsMediaLiveS86Input
}

input AwsMediaLiveS2bOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsInput {
  ColumnDepth: Int
  IncludeFec: String
  RowLength: Int
}

input AwsMediaLiveS2bTimecodeConfigInput {
  Source: String!
  SyncThreshold: Int
}

input AwsMediaLiveS2bVideoDescriptionsInput {
  CodecSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsInput
  Height: Int
  Name: String!
  RespondToAfd: String
  ScalingBehavior: String
  Sharpness: Int
  Width: Int
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsInput {
  FrameCaptureSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsFrameCaptureSettingsInput
  H264Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsInput
  H265Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsInput
  Mpeg2Settings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsInput
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsFrameCaptureSettingsInput {
  CaptureInterval: Int
  CaptureIntervalUnits: String
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsInput {
  AdaptiveQuantization: String
  AfdSignaling: String
  Bitrate: Int
  BufFillPct: Int
  BufSize: Int
  ColorMetadata: String
  ColorSpaceSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsInput
  EntropyEncoding: String
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsFilterSettingsInput
  FixedAfd: String
  FlickerAq: String
  ForceFieldPictures: String
  FramerateControl: String
  FramerateDenominator: Int
  FramerateNumerator: Int
  GopBReference: String
  GopClosedCadence: Int
  GopNumBFrames: Int
  GopSize: JSON
  GopSizeUnits: String
  Level: String
  LookAheadRateControl: String
  MaxBitrate: Int
  MinIInterval: Int
  NumRefFrames: Int
  ParControl: String
  ParDenominator: Int
  ParNumerator: Int
  Profile: String
  QualityLevel: String
  QvbrQualityLevel: Int
  RateControlMode: String
  ScanType: String
  SceneChangeDetect: String
  Slices: Int
  Softness: Int
  SpatialAq: String
  SubgopLength: String
  Syntax: String
  TemporalAq: String
  TimecodeInsertion: String
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsInput {
  ColorSpacePassthroughSettings: JSON
  Rec601Settings: JSON
  Rec709Settings: JSON
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH264SettingsFilterSettingsInput {
  TemporalFilterSettings: AwsMediaLiveSaiInput
}

input AwsMediaLiveSaiInput {
  PostFilterSharpening: String
  Strength: String
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsInput {
  AdaptiveQuantization: String
  AfdSignaling: String
  AlternativeTransferFunction: String
  Bitrate: Int
  BufSize: Int
  ColorMetadata: String
  ColorSpaceSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsInput
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsFilterSettingsInput
  FixedAfd: String
  FlickerAq: String
  FramerateDenominator: Int!
  FramerateNumerator: Int!
  GopClosedCadence: Int
  GopSize: JSON
  GopSizeUnits: String
  Level: String
  LookAheadRateControl: String
  MaxBitrate: Int
  MinIInterval: Int
  ParDenominator: Int
  ParNumerator: Int
  Profile: String
  QvbrQualityLevel: Int
  RateControlMode: String
  ScanType: String
  SceneChangeDetect: String
  Slices: Int
  Tier: String
  TimecodeInsertion: String
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsInput {
  ColorSpacePassthroughSettings: JSON
  Hdr10Settings: AwsMediaLiveSbgInput
  Rec601Settings: JSON
  Rec709Settings: JSON
}

input AwsMediaLiveSbgInput {
  MaxCll: Int
  MaxFall: Int
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsH265SettingsFilterSettingsInput {
  TemporalFilterSettings: AwsMediaLiveSaiInput
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsInput {
  AdaptiveQuantization: String
  AfdSignaling: String
  ColorMetadata: String
  ColorSpace: String
  DisplayAspectRatio: String
  FilterSettings: AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsFilterSettingsInput
  FixedAfd: String
  FramerateDenominator: Int!
  FramerateNumerator: Int!
  GopClosedCadence: Int
  GopNumBFrames: Int
  GopSize: JSON
  GopSizeUnits: String
  ScanType: String
  SubgopLength: String
  TimecodeInsertion: String
}

input AwsMediaLiveS2bVideoDescriptionsCodecSettingsMpeg2SettingsFilterSettingsInput {
  TemporalFilterSettings: AwsMediaLiveSaiInput
}

input AwsMediaLiveSc6Input {
  AutomaticInputFailoverSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsInput
  InputAttachmentName: String
  InputId: String
  InputSettings: AwsMediaLiveSc6InputSettingsInput
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsInput {
  ErrorClearTimeMsec: Int
  FailoverConditions: [AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsInput]
  InputPreference: String
  SecondaryInputId: String!
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsInput {
  FailoverConditionSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInput
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInput {
  AudioSilenceSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsAudioSilenceSettingsInput
  InputLossSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInputLossSettingsInput
  VideoBlackSettings: AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsVideoBlackSettingsInput
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsAudioSilenceSettingsInput {
  AudioSelectorName: String!
  AudioSilenceThresholdMsec: Int
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsInputLossSettingsInput {
  InputLossThresholdMsec: Int
}

input AwsMediaLiveSc6AutomaticInputFailoverSettingsFailoverConditionsFailoverConditionSettingsVideoBlackSettingsInput {
  BlackDetectThreshold: JSON
  VideoBlackThresholdMsec: Int
}

input AwsMediaLiveSc6InputSettingsInput {
  AudioSelectors: [AwsMediaLiveSc6InputSettingsAudioSelectorsInput]
  CaptionSelectors: [AwsMediaLiveSc6InputSettingsCaptionSelectorsInput]
  DeblockFilter: String
  DenoiseFilter: String
  FilterStrength: Int
  InputFilter: String
  NetworkInputSettings: AwsMediaLiveSc6InputSettingsNetworkInputSettingsInput
  Smpte2038DataPreference: String
  SourceEndBehavior: String
  VideoSelector: AwsMediaLiveSc6InputSettingsVideoSelectorInput
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsInput {
  Name: String!
  SelectorSettings: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsInput
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsInput {
  AudioLanguageSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionInput
  AudioPidSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionInput
  AudioTrackSelection: AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionInput
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionInput {
  LanguageCode: String!
  LanguageSelectionPolicy: String
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionInput {
  Pid: Int!
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionInput {
  Tracks: [AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionTracksInput]!
}

input AwsMediaLiveSc6InputSettingsAudioSelectorsSelectorSettingsAudioTrackSelectionTracksInput {
  Track: Int!
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsInput {
  LanguageCode: String
  Name: String!
  SelectorSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsInput
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsInput {
  AncillarySourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsAncillarySourceSettingsInput
  AribSourceSettings: JSON
  DvbSubSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsInput
  EmbeddedSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsInput
  Scte20SourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsInput
  Scte27SourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsInput
  TeletextSourceSettings: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsInput
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsAncillarySourceSettingsInput {
  SourceAncillaryChannelNumber: Int
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsInput {
  OcrLanguage: String
  Pid: Int
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsInput {
  Convert608To708: String
  Scte20Detection: String
  Source608ChannelNumber: Int
  Source608TrackNumber: Int
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsInput {
  Convert608To708: String
  Source608ChannelNumber: Int
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsInput {
  OcrLanguage: String
  Pid: Int
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsInput {
  OutputRectangle: AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsOutputRectangleInput
  PageNumber: String
}

input AwsMediaLiveSc6InputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsOutputRectangleInput {
  Height: JSON!
  LeftOffset: JSON!
  TopOffset: JSON!
  Width: JSON!
}

input AwsMediaLiveSc6InputSettingsNetworkInputSettingsInput {
  HlsInputSettings: AwsMediaLiveSc6InputSettingsNetworkInputSettingsHlsInputSettingsInput
  ServerValidation: String
}

input AwsMediaLiveSc6InputSettingsNetworkInputSettingsHlsInputSettingsInput {
  Bandwidth: Int
  BufferSegments: Int
  Retries: Int
  RetryInterval: Int
  Scte35Source: String
}

input AwsMediaLiveSc6InputSettingsVideoSelectorInput {
  ColorSpace: String
  ColorSpaceSettings: AwsMediaLiveSc6InputSettingsVideoSelectorColorSpaceSettingsInput
  ColorSpaceUsage: String
  SelectorSettings: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsInput
}

input AwsMediaLiveSc6InputSettingsVideoSelectorColorSpaceSettingsInput {
  Hdr10Settings: AwsMediaLiveSbgInput
}

input AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsInput {
  VideoSelectorPid: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorPidInput
  VideoSelectorProgramId: AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdInput
}

input AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorPidInput {
  Pid: Int
}

input AwsMediaLiveSc6InputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdInput {
  ProgramId: Int
}

input AwsMediaLiveSdrInput {
  Codec: String
  MaximumBitrate: String
  Resolution: String
}

input AwsMediaLiveCreateChannelVpcInput {
  PublicAddressAllocationIds: [String]
  SecurityGroupIds: [String]
  SubnetIds: [String]!
}

type AwsMediaLiveCreateInputOutput {
  Input: AwsMediaLiveSei
}

type AwsMediaLiveSei {
  Arn: String
  AttachedChannels: [String]
  Destinations: [AwsMediaLiveSej]
  Id: String
  InputClass: String
  InputDevices: [AwsMediaLiveSe9]
  InputPartnerIds: [String]
  InputSourceType: String
  MediaConnectFlows: [AwsMediaLiveSeo]
  Name: String
  RoleArn: String
  SecurityGroups: [String]
  Sources: [AwsMediaLiveSeq]
  State: String
  Tags: JSON
  Type: String
}

type AwsMediaLiveSej {
  Ip: String
  Port: String
  Url: String
  Vpc: AwsMediaLiveSejVpc
}

type AwsMediaLiveSejVpc {
  AvailabilityZone: String
  NetworkInterfaceId: String
}

type AwsMediaLiveSe9 {
  Id: String
}

type AwsMediaLiveSeo {
  FlowArn: String
}

type AwsMediaLiveSeq {
  PasswordParam: String
  Url: String
  Username: String
}

input AwsMediaLiveCreateInputInput {
  Destinations: [AwsMediaLiveSe7Input]
  InputDevices: [AwsMediaLiveSe9Input]
  InputSecurityGroups: [String]
  MediaConnectFlows: [AwsMediaLiveSebInput]
  Name: String
  RequestId: String
  RoleArn: String
  Sources: [AwsMediaLiveSedInput]
  Tags: JSON
  Type: String
  Vpc: AwsMediaLiveCreateInputVpcInput
}

input AwsMediaLiveSe7Input {
  StreamName: String
}

input AwsMediaLiveSe9Input {
  Id: String
}

input AwsMediaLiveSebInput {
  FlowArn: String
}

input AwsMediaLiveSedInput {
  PasswordParam: String
  Url: String
  Username: String
}

input AwsMediaLiveCreateInputVpcInput {
  SecurityGroupIds: [String]
  SubnetIds: [String]!
}

type AwsMediaLiveCreateInputSecurityGroupOutput {
  SecurityGroup: AwsMediaLiveSex
}

type AwsMediaLiveSex {
  Arn: String
  Id: String
  Inputs: [String]
  State: String
  Tags: JSON
  WhitelistRules: [AwsMediaLiveSez]
}

type AwsMediaLiveSez {
  Cidr: String
}

input AwsMediaLiveCreateInputSecurityGroupInput {
  Tags: JSON
  WhitelistRules: [AwsMediaLiveSeuInput]
}

input AwsMediaLiveSeuInput {
  Cidr: String
}

type AwsMediaLiveCreateMultiplexOutput {
  Multiplex: AwsMediaLiveSf7
}

type AwsMediaLiveSf7 {
  Arn: String
  AvailabilityZones: [String]
  Destinations: [AwsMediaLiveSf8]
  Id: String
  MultiplexSettings: AwsMediaLiveSf2
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

type AwsMediaLiveSf8 {
  MediaConnectSettings: AwsMediaLiveSf8MediaConnectSettings
}

type AwsMediaLiveSf8MediaConnectSettings {
  EntitlementArn: String
}

type AwsMediaLiveSf2 {
  MaximumVideoBufferDelayMilliseconds: Int
  TransportStreamBitrate: Int!
  TransportStreamId: Int!
  TransportStreamReservedBitrate: Int
}

input AwsMediaLiveCreateMultiplexInput {
  AvailabilityZones: [String]!
  MultiplexSettings: AwsMediaLiveSf2Input!
  Name: String!
  RequestId: String!
  Tags: JSON
}

input AwsMediaLiveSf2Input {
  MaximumVideoBufferDelayMilliseconds: Int
  TransportStreamBitrate: Int!
  TransportStreamId: Int!
  TransportStreamReservedBitrate: Int
}

type AwsMediaLiveCreateMultiplexProgramOutput {
  MultiplexProgram: AwsMediaLiveSfm
}

type AwsMediaLiveSfm {
  ChannelId: String
  MultiplexProgramSettings: AwsMediaLiveSfd
  PacketIdentifiersMap: AwsMediaLiveSfn
  PipelineDetails: [AwsMediaLiveSfp]
  ProgramName: String
}

type AwsMediaLiveSfd {
  PreferredChannelPipeline: String
  ProgramNumber: Int!
  ServiceDescriptor: AwsMediaLiveSfdServiceDescriptor
  VideoSettings: AwsMediaLiveSfdVideoSettings
}

type AwsMediaLiveSfdServiceDescriptor {
  ProviderName: String!
  ServiceName: String!
}

type AwsMediaLiveSfdVideoSettings {
  ConstantBitrate: Int
  StatmuxSettings: AwsMediaLiveSfdVideoSettingsStatmuxSettings
}

type AwsMediaLiveSfdVideoSettingsStatmuxSettings {
  MaximumBitrate: Int
  MinimumBitrate: Int
  Priority: Int
}

type AwsMediaLiveSfn {
  AudioPids: [Int]
  DvbSubPids: [Int]
  DvbTeletextPid: Int
  EtvPlatformPid: Int
  EtvSignalPid: Int
  KlvDataPids: [Int]
  PcrPid: Int
  PmtPid: Int
  PrivateMetadataPid: Int
  Scte27Pids: [Int]
  Scte35Pid: Int
  TimedMetadataPid: Int
  VideoPid: Int
}

type AwsMediaLiveSfp {
  ActiveChannelPipeline: String
  PipelineId: String
}

input AwsMediaLiveCreateMultiplexProgramInput {
  MultiplexId: String!
  MultiplexProgramSettings: AwsMediaLiveSfdInput!
  ProgramName: String!
  RequestId: String!
}

input AwsMediaLiveSfdInput {
  PreferredChannelPipeline: String
  ProgramNumber: Int!
  ServiceDescriptor: AwsMediaLiveSfdServiceDescriptorInput
  VideoSettings: AwsMediaLiveSfdVideoSettingsInput
}

input AwsMediaLiveSfdServiceDescriptorInput {
  ProviderName: String!
  ServiceName: String!
}

input AwsMediaLiveSfdVideoSettingsInput {
  ConstantBitrate: Int
  StatmuxSettings: AwsMediaLiveSfdVideoSettingsStatmuxSettingsInput
}

input AwsMediaLiveSfdVideoSettingsStatmuxSettingsInput {
  MaximumBitrate: Int
  MinimumBitrate: Int
  Priority: Int
}

type AwsMediaLiveCreatePartnerInputOutput {
  Input: AwsMediaLiveSei
}

input AwsMediaLiveCreatePartnerInputInput {
  InputId: String!
  RequestId: String
  Tags: JSON
}

input AwsMediaLiveCreateTagsInput {
  ResourceArn: String!
  Tags: JSON
}

type AwsMediaLiveDeleteChannelOutput {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  EncoderSettings: AwsMediaLiveS2b
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelineDetails: [AwsMediaLiveSe2]
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

input AwsMediaLiveDeleteChannelInput {
  ChannelId: String!
}

input AwsMediaLiveDeleteInputInput {
  InputId: String!
}

input AwsMediaLiveDeleteInputSecurityGroupInput {
  InputSecurityGroupId: String!
}

type AwsMediaLiveDeleteMultiplexOutput {
  Arn: String
  AvailabilityZones: [String]
  Destinations: [AwsMediaLiveSf8]
  Id: String
  MultiplexSettings: AwsMediaLiveSf2
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

input AwsMediaLiveDeleteMultiplexInput {
  MultiplexId: String!
}

type AwsMediaLiveDeleteMultiplexProgramOutput {
  ChannelId: String
  MultiplexProgramSettings: AwsMediaLiveSfd
  PacketIdentifiersMap: AwsMediaLiveSfn
  PipelineDetails: [AwsMediaLiveSfp]
  ProgramName: String
}

input AwsMediaLiveDeleteMultiplexProgramInput {
  MultiplexId: String!
  ProgramName: String!
}

type AwsMediaLiveDeleteReservationOutput {
  Arn: String
  Count: Int
  CurrencyCode: String
  Duration: Int
  DurationUnits: String
  End: String
  FixedPrice: JSON
  Name: String
  OfferingDescription: String
  OfferingId: String
  OfferingType: String
  Region: String
  ReservationId: String
  ResourceSpecification: AwsMediaLiveSg8
  Start: String
  State: String
  Tags: JSON
  UsagePrice: JSON
}

type AwsMediaLiveSg8 {
  ChannelClass: String
  Codec: String
  MaximumBitrate: String
  MaximumFramerate: String
  Resolution: String
  ResourceType: String
  SpecialFeature: String
  VideoQuality: String
}

input AwsMediaLiveDeleteReservationInput {
  ReservationId: String!
}

input AwsMediaLiveDeleteScheduleInput {
  ChannelId: String!
}

input AwsMediaLiveDeleteTagsInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsMediaLiveDescribeChannelOutput {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  EncoderSettings: AwsMediaLiveS2b
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelineDetails: [AwsMediaLiveSe2]
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

input AwsMediaLiveDescribeChannelInput {
  ChannelId: String!
}

type AwsMediaLiveDescribeInputOutput {
  Arn: String
  AttachedChannels: [String]
  Destinations: [AwsMediaLiveSej]
  Id: String
  InputClass: String
  InputDevices: [AwsMediaLiveSe9]
  InputPartnerIds: [String]
  InputSourceType: String
  MediaConnectFlows: [AwsMediaLiveSeo]
  Name: String
  RoleArn: String
  SecurityGroups: [String]
  Sources: [AwsMediaLiveSeq]
  State: String
  Tags: JSON
  Type: String
}

input AwsMediaLiveDescribeInputInput {
  InputId: String!
}

type AwsMediaLiveDescribeInputDeviceOutput {
  Arn: String
  ConnectionState: String
  DeviceSettingsSyncState: String
  DeviceUpdateStatus: String
  HdDeviceSettings: AwsMediaLiveSgt
  Id: String
  MacAddress: String
  Name: String
  NetworkSettings: AwsMediaLiveSgy
  SerialNumber: String
  Type: String
  UhdDeviceSettings: AwsMediaLiveSh1
}

type AwsMediaLiveSgt {
  ActiveInput: String
  ConfiguredInput: String
  DeviceState: String
  Framerate: JSON
  Height: Int
  MaxBitrate: Int
  ScanType: String
  Width: Int
}

type AwsMediaLiveSgy {
  DnsAddresses: [String]
  Gateway: String
  IpAddress: String
  IpScheme: String
  SubnetMask: String
}

type AwsMediaLiveSh1 {
  ActiveInput: String
  ConfiguredInput: String
  DeviceState: String
  Framerate: JSON
  Height: Int
  MaxBitrate: Int
  ScanType: String
  Width: Int
}

input AwsMediaLiveDescribeInputDeviceInput {
  InputDeviceId: String!
}

type AwsMediaLiveDescribeInputDeviceThumbnailOutput {
  Body: JSON
  ContentType: String
  ContentLength: JSON
  ETag: String
  LastModified: Date
}

input AwsMediaLiveDescribeInputDeviceThumbnailInput {
  InputDeviceId: String!
  Accept: String!
}

type AwsMediaLiveDescribeInputSecurityGroupOutput {
  Arn: String
  Id: String
  Inputs: [String]
  State: String
  Tags: JSON
  WhitelistRules: [AwsMediaLiveSez]
}

input AwsMediaLiveDescribeInputSecurityGroupInput {
  InputSecurityGroupId: String!
}

type AwsMediaLiveDescribeMultiplexOutput {
  Arn: String
  AvailabilityZones: [String]
  Destinations: [AwsMediaLiveSf8]
  Id: String
  MultiplexSettings: AwsMediaLiveSf2
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

input AwsMediaLiveDescribeMultiplexInput {
  MultiplexId: String!
}

type AwsMediaLiveDescribeMultiplexProgramOutput {
  ChannelId: String
  MultiplexProgramSettings: AwsMediaLiveSfd
  PacketIdentifiersMap: AwsMediaLiveSfn
  PipelineDetails: [AwsMediaLiveSfp]
  ProgramName: String
}

input AwsMediaLiveDescribeMultiplexProgramInput {
  MultiplexId: String!
  ProgramName: String!
}

type AwsMediaLiveDescribeOfferingOutput {
  Arn: String
  CurrencyCode: String
  Duration: Int
  DurationUnits: String
  FixedPrice: JSON
  OfferingDescription: String
  OfferingId: String
  OfferingType: String
  Region: String
  ResourceSpecification: AwsMediaLiveSg8
  UsagePrice: JSON
}

input AwsMediaLiveDescribeOfferingInput {
  OfferingId: String!
}

type AwsMediaLiveDescribeReservationOutput {
  Arn: String
  Count: Int
  CurrencyCode: String
  Duration: Int
  DurationUnits: String
  End: String
  FixedPrice: JSON
  Name: String
  OfferingDescription: String
  OfferingId: String
  OfferingType: String
  Region: String
  ReservationId: String
  ResourceSpecification: AwsMediaLiveSg8
  Start: String
  State: String
  Tags: JSON
  UsagePrice: JSON
}

input AwsMediaLiveDescribeReservationInput {
  ReservationId: String!
}

type AwsMediaLiveDescribeScheduleOutput {
  NextToken: String
  ScheduleActions: [AwsMediaLiveSh]
}

input AwsMediaLiveDescribeScheduleInput {
  ChannelId: String!
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListChannelsOutput {
  Channels: [AwsMediaLiveListChannelsOutputChannels]
  NextToken: String
}

type AwsMediaLiveListChannelsOutputChannels {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

input AwsMediaLiveListChannelsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListInputDeviceTransfersOutput {
  InputDeviceTransfers: [AwsMediaLiveListInputDeviceTransfersOutputInputDeviceTransfers]
  NextToken: String
}

type AwsMediaLiveListInputDeviceTransfersOutputInputDeviceTransfers {
  Id: String
  Message: String
  TargetCustomerId: String
  TransferType: String
}

input AwsMediaLiveListInputDeviceTransfersInput {
  MaxResults: Int
  NextToken: String
  TransferType: String!
}

type AwsMediaLiveListInputDevicesOutput {
  InputDevices: [AwsMediaLiveListInputDevicesOutputInputDevices]
  NextToken: String
}

type AwsMediaLiveListInputDevicesOutputInputDevices {
  Arn: String
  ConnectionState: String
  DeviceSettingsSyncState: String
  DeviceUpdateStatus: String
  HdDeviceSettings: AwsMediaLiveSgt
  Id: String
  MacAddress: String
  Name: String
  NetworkSettings: AwsMediaLiveSgy
  SerialNumber: String
  Type: String
  UhdDeviceSettings: AwsMediaLiveSh1
}

input AwsMediaLiveListInputDevicesInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListInputSecurityGroupsOutput {
  InputSecurityGroups: [AwsMediaLiveSex]
  NextToken: String
}

input AwsMediaLiveListInputSecurityGroupsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListInputsOutput {
  Inputs: [AwsMediaLiveSei]
  NextToken: String
}

input AwsMediaLiveListInputsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListMultiplexProgramsOutput {
  MultiplexPrograms: [AwsMediaLiveListMultiplexProgramsOutputMultiplexPrograms]
  NextToken: String
}

type AwsMediaLiveListMultiplexProgramsOutputMultiplexPrograms {
  ChannelId: String
  ProgramName: String
}

input AwsMediaLiveListMultiplexProgramsInput {
  MaxResults: Int
  MultiplexId: String!
  NextToken: String
}

type AwsMediaLiveListMultiplexesOutput {
  Multiplexes: [AwsMediaLiveListMultiplexesOutputMultiplexes]
  NextToken: String
}

type AwsMediaLiveListMultiplexesOutputMultiplexes {
  Arn: String
  AvailabilityZones: [String]
  Id: String
  MultiplexSettings: AwsMediaLiveListMultiplexesOutputMultiplexesMultiplexSettings
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

type AwsMediaLiveListMultiplexesOutputMultiplexesMultiplexSettings {
  TransportStreamBitrate: Int
}

input AwsMediaLiveListMultiplexesInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaLiveListOfferingsOutput {
  NextToken: String
  Offerings: [AwsMediaLiveListOfferingsOutputOfferings]
}

type AwsMediaLiveListOfferingsOutputOfferings {
  Arn: String
  CurrencyCode: String
  Duration: Int
  DurationUnits: String
  FixedPrice: JSON
  OfferingDescription: String
  OfferingId: String
  OfferingType: String
  Region: String
  ResourceSpecification: AwsMediaLiveSg8
  UsagePrice: JSON
}

input AwsMediaLiveListOfferingsInput {
  ChannelClass: String
  ChannelConfiguration: String
  Codec: String
  Duration: String
  MaxResults: Int
  MaximumBitrate: String
  MaximumFramerate: String
  NextToken: String
  Resolution: String
  ResourceType: String
  SpecialFeature: String
  VideoQuality: String
}

type AwsMediaLiveListReservationsOutput {
  NextToken: String
  Reservations: [AwsMediaLiveSil]
}

type AwsMediaLiveSil {
  Arn: String
  Count: Int
  CurrencyCode: String
  Duration: Int
  DurationUnits: String
  End: String
  FixedPrice: JSON
  Name: String
  OfferingDescription: String
  OfferingId: String
  OfferingType: String
  Region: String
  ReservationId: String
  ResourceSpecification: AwsMediaLiveSg8
  Start: String
  State: String
  Tags: JSON
  UsagePrice: JSON
}

input AwsMediaLiveListReservationsInput {
  ChannelClass: String
  Codec: String
  MaxResults: Int
  MaximumBitrate: String
  MaximumFramerate: String
  NextToken: String
  Resolution: String
  ResourceType: String
  SpecialFeature: String
  VideoQuality: String
}

type AwsMediaLiveListTagsForResourceOutput {
  Tags: JSON
}

input AwsMediaLiveListTagsForResourceInput {
  ResourceArn: String!
}

type AwsMediaLivePurchaseOfferingOutput {
  Reservation: AwsMediaLiveSil
}

input AwsMediaLivePurchaseOfferingInput {
  Count: Int!
  Name: String
  OfferingId: String!
  RequestId: String
  Start: String
  Tags: JSON
}

input AwsMediaLiveRejectInputDeviceTransferInput {
  InputDeviceId: String!
}

type AwsMediaLiveStartChannelOutput {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  EncoderSettings: AwsMediaLiveS2b
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelineDetails: [AwsMediaLiveSe2]
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

input AwsMediaLiveStartChannelInput {
  ChannelId: String!
}

type AwsMediaLiveStartMultiplexOutput {
  Arn: String
  AvailabilityZones: [String]
  Destinations: [AwsMediaLiveSf8]
  Id: String
  MultiplexSettings: AwsMediaLiveSf2
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

input AwsMediaLiveStartMultiplexInput {
  MultiplexId: String!
}

type AwsMediaLiveStopChannelOutput {
  Arn: String
  CdiInputSpecification: AwsMediaLiveS20
  ChannelClass: String
  Destinations: [AwsMediaLiveS23]
  EgressEndpoints: [AwsMediaLiveSe0]
  EncoderSettings: AwsMediaLiveS2b
  Id: String
  InputAttachments: [AwsMediaLiveSc6]
  InputSpecification: AwsMediaLiveSdr
  LogLevel: String
  Name: String
  PipelineDetails: [AwsMediaLiveSe2]
  PipelinesRunningCount: Int
  RoleArn: String
  State: String
  Tags: JSON
  Vpc: AwsMediaLiveSe5
}

input AwsMediaLiveStopChannelInput {
  ChannelId: String!
}

type AwsMediaLiveStopMultiplexOutput {
  Arn: String
  AvailabilityZones: [String]
  Destinations: [AwsMediaLiveSf8]
  Id: String
  MultiplexSettings: AwsMediaLiveSf2
  Name: String
  PipelinesRunningCount: Int
  ProgramCount: Int
  State: String
  Tags: JSON
}

input AwsMediaLiveStopMultiplexInput {
  MultiplexId: String!
}

input AwsMediaLiveTransferInputDeviceInput {
  InputDeviceId: String!
  TargetCustomerId: String
  TargetRegion: String
  TransferMessage: String
}

type AwsMediaLiveUpdateChannelOutput {
  Channel: AwsMediaLiveSdz
}

input AwsMediaLiveUpdateChannelInput {
  CdiInputSpecification: AwsMediaLiveS20Input
  ChannelId: String!
  Destinations: [AwsMediaLiveS23Input]
  EncoderSettings: AwsMediaLiveS2bInput
  InputAttachments: [AwsMediaLiveSc6Input]
  InputSpecification: AwsMediaLiveSdrInput
  LogLevel: String
  Name: String
  RoleArn: String
}

type AwsMediaLiveUpdateChannelClassOutput {
  Channel: AwsMediaLiveSdz
}

input AwsMediaLiveUpdateChannelClassInput {
  ChannelClass: String!
  ChannelId: String!
  Destinations: [AwsMediaLiveS23Input]
}

type AwsMediaLiveUpdateInputOutput {
  Input: AwsMediaLiveSei
}

input AwsMediaLiveUpdateInputInput {
  Destinations: [AwsMediaLiveSe7Input]
  InputDevices: [AwsMediaLiveUpdateInputInputDevicesInput]
  InputId: String!
  InputSecurityGroups: [String]
  MediaConnectFlows: [AwsMediaLiveSebInput]
  Name: String
  RoleArn: String
  Sources: [AwsMediaLiveSedInput]
}

input AwsMediaLiveUpdateInputInputDevicesInput {
  Id: String
}

type AwsMediaLiveUpdateInputDeviceOutput {
  Arn: String
  ConnectionState: String
  DeviceSettingsSyncState: String
  DeviceUpdateStatus: String
  HdDeviceSettings: AwsMediaLiveSgt
  Id: String
  MacAddress: String
  Name: String
  NetworkSettings: AwsMediaLiveSgy
  SerialNumber: String
  Type: String
  UhdDeviceSettings: AwsMediaLiveSh1
}

input AwsMediaLiveUpdateInputDeviceInput {
  HdDeviceSettings: AwsMediaLiveSjbInput
  InputDeviceId: String!
  Name: String
  UhdDeviceSettings: AwsMediaLiveSjbInput
}

input AwsMediaLiveSjbInput {
  ConfiguredInput: String
  MaxBitrate: Int
}

type AwsMediaLiveUpdateInputSecurityGroupOutput {
  SecurityGroup: AwsMediaLiveSex
}

input AwsMediaLiveUpdateInputSecurityGroupInput {
  InputSecurityGroupId: String!
  Tags: JSON
  WhitelistRules: [AwsMediaLiveSeuInput]
}

type AwsMediaLiveUpdateMultiplexOutput {
  Multiplex: AwsMediaLiveSf7
}

input AwsMediaLiveUpdateMultiplexInput {
  MultiplexId: String!
  MultiplexSettings: AwsMediaLiveSf2Input
  Name: String
}

type AwsMediaLiveUpdateMultiplexProgramOutput {
  MultiplexProgram: AwsMediaLiveSfm
}

input AwsMediaLiveUpdateMultiplexProgramInput {
  MultiplexId: String!
  MultiplexProgramSettings: AwsMediaLiveSfdInput
  ProgramName: String!
}

type AwsMediaLiveUpdateReservationOutput {
  Reservation: AwsMediaLiveSil
}

input AwsMediaLiveUpdateReservationInput {
  Name: String
  ReservationId: String!
}

"""AWS Elemental MediaPackage (2017-10-12)"""
type AwsMediaPackage {
  configureLogs(input: AwsMediaPackageConfigureLogsInput!, config: AwsConfig): AwsMediaPackageConfigureLogsOutput
  createChannel(input: AwsMediaPackageCreateChannelInput!, config: AwsConfig): AwsMediaPackageCreateChannelOutput
  createHarvestJob(input: AwsMediaPackageCreateHarvestJobInput!, config: AwsConfig): AwsMediaPackageCreateHarvestJobOutput
  createOriginEndpoint(input: AwsMediaPackageCreateOriginEndpointInput!, config: AwsConfig): AwsMediaPackageCreateOriginEndpointOutput
  deleteChannel(input: AwsMediaPackageDeleteChannelInput!, config: AwsConfig): JSON
  deleteOriginEndpoint(input: AwsMediaPackageDeleteOriginEndpointInput!, config: AwsConfig): JSON
  describeChannel(input: AwsMediaPackageDescribeChannelInput!, config: AwsConfig): AwsMediaPackageDescribeChannelOutput
  describeHarvestJob(input: AwsMediaPackageDescribeHarvestJobInput!, config: AwsConfig): AwsMediaPackageDescribeHarvestJobOutput
  describeOriginEndpoint(input: AwsMediaPackageDescribeOriginEndpointInput!, config: AwsConfig): AwsMediaPackageDescribeOriginEndpointOutput
  listChannels(input: AwsMediaPackageListChannelsInput, config: AwsConfig): AwsMediaPackageListChannelsOutput
  listHarvestJobs(input: AwsMediaPackageListHarvestJobsInput, config: AwsConfig): AwsMediaPackageListHarvestJobsOutput
  listOriginEndpoints(input: AwsMediaPackageListOriginEndpointsInput, config: AwsConfig): AwsMediaPackageListOriginEndpointsOutput
  listTagsForResource(input: AwsMediaPackageListTagsForResourceInput!, config: AwsConfig): AwsMediaPackageListTagsForResourceOutput
  rotateChannelCredentials(input: AwsMediaPackageRotateChannelCredentialsInput!, config: AwsConfig): AwsMediaPackageRotateChannelCredentialsOutput
  rotateIngestEndpointCredentials(input: AwsMediaPackageRotateIngestEndpointCredentialsInput!, config: AwsConfig): AwsMediaPackageRotateIngestEndpointCredentialsOutput
  tagResource(input: AwsMediaPackageTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaPackageUntagResourceInput!, config: AwsConfig): JSON
  updateChannel(input: AwsMediaPackageUpdateChannelInput!, config: AwsConfig): AwsMediaPackageUpdateChannelOutput
  updateOriginEndpoint(input: AwsMediaPackageUpdateOriginEndpointInput!, config: AwsConfig): AwsMediaPackageUpdateOriginEndpointOutput
}

type AwsMediaPackageConfigureLogsOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

type AwsMediaPackageS2 {
  LogGroupName: String
}

type AwsMediaPackageS6 {
  IngestEndpoints: [AwsMediaPackageS6IngestEndpoints]
}

type AwsMediaPackageS6IngestEndpoints {
  Id: String
  Password: String
  Url: String
  Username: String
}

type AwsMediaPackageS4 {
  LogGroupName: String
}

input AwsMediaPackageConfigureLogsInput {
  EgressAccessLogs: AwsMediaPackageS2Input
  Id: String!
  IngressAccessLogs: AwsMediaPackageS4Input
}

input AwsMediaPackageS2Input {
  LogGroupName: String
}

input AwsMediaPackageS4Input {
  LogGroupName: String
}

type AwsMediaPackageCreateChannelOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageCreateChannelInput {
  Description: String
  Id: String!
  Tags: JSON
}

type AwsMediaPackageCreateHarvestJobOutput {
  Arn: String
  ChannelId: String
  CreatedAt: String
  EndTime: String
  Id: String
  OriginEndpointId: String
  S3Destination: AwsMediaPackageSd
  StartTime: String
  Status: String
}

type AwsMediaPackageSd {
  BucketName: String!
  ManifestKey: String!
  RoleArn: String!
}

input AwsMediaPackageCreateHarvestJobInput {
  EndTime: String!
  Id: String!
  OriginEndpointId: String!
  S3Destination: AwsMediaPackageSdInput!
  StartTime: String!
}

input AwsMediaPackageSdInput {
  BucketName: String!
  ManifestKey: String!
  RoleArn: String!
}

type AwsMediaPackageCreateOriginEndpointOutput {
  Arn: String
  Authorization: AwsMediaPackageSh
  ChannelId: String
  CmafPackage: AwsMediaPackageS1f
  DashPackage: AwsMediaPackageS10
  Description: String
  HlsPackage: AwsMediaPackageS18
  Id: String
  ManifestName: String
  MssPackage: AwsMediaPackageS1b
  Origination: String
  StartoverWindowSeconds: Int
  Tags: JSON
  TimeDelaySeconds: Int
  Url: String
  Whitelist: [String]
}

type AwsMediaPackageSh {
  CdnIdentifierSecret: String!
  SecretsRoleArn: String!
}

type AwsMediaPackageS1f {
  Encryption: AwsMediaPackageSj
  HlsManifests: [AwsMediaPackageS1fHlsManifests]
  SegmentDurationSeconds: Int
  SegmentPrefix: String
  StreamSelection: AwsMediaPackageSy
}

type AwsMediaPackageSj {
  ConstantInitializationVector: String
  KeyRotationIntervalSeconds: Int
  SpekeKeyProvider: AwsMediaPackageSl!
}

type AwsMediaPackageSl {
  CertificateArn: String
  EncryptionContractConfiguration: AwsMediaPackageSlEncryptionContractConfiguration
  ResourceId: String!
  RoleArn: String!
  SystemIds: [String]!
  Url: String!
}

type AwsMediaPackageSlEncryptionContractConfiguration {
  PresetSpeke20Audio: String!
  PresetSpeke20Video: String!
}

type AwsMediaPackageS1fHlsManifests {
  AdMarkers: String
  Id: String!
  IncludeIframeOnlyStream: Boolean
  ManifestName: String
  PlaylistType: String
  PlaylistWindowSeconds: Int
  ProgramDateTimeIntervalSeconds: Int
  Url: String
}

type AwsMediaPackageSy {
  MaxVideoBitsPerSecond: Int
  MinVideoBitsPerSecond: Int
  StreamOrder: String
}

type AwsMediaPackageS10 {
  AdTriggers: [String]
  AdsOnDeliveryRestrictions: String
  Encryption: AwsMediaPackageS10Encryption
  ManifestLayout: String
  ManifestWindowSeconds: Int
  MinBufferTimeSeconds: Int
  MinUpdatePeriodSeconds: Int
  PeriodTriggers: [String]
  Profile: String
  SegmentDurationSeconds: Int
  SegmentTemplateFormat: String
  StreamSelection: AwsMediaPackageSy
  SuggestedPresentationDelaySeconds: Int
  UtcTiming: String
  UtcTimingUri: String
}

type AwsMediaPackageS10Encryption {
  KeyRotationIntervalSeconds: Int
  SpekeKeyProvider: AwsMediaPackageSl!
}

type AwsMediaPackageS18 {
  AdMarkers: String
  AdTriggers: [String]
  AdsOnDeliveryRestrictions: String
  Encryption: AwsMediaPackageS18Encryption
  IncludeIframeOnlyStream: Boolean
  PlaylistType: String
  PlaylistWindowSeconds: Int
  ProgramDateTimeIntervalSeconds: Int
  SegmentDurationSeconds: Int
  StreamSelection: AwsMediaPackageSy
  UseAudioRenditionGroup: Boolean
}

type AwsMediaPackageS18Encryption {
  ConstantInitializationVector: String
  EncryptionMethod: String
  KeyRotationIntervalSeconds: Int
  RepeatExtXKey: Boolean
  SpekeKeyProvider: AwsMediaPackageSl!
}

type AwsMediaPackageS1b {
  Encryption: AwsMediaPackageS1bEncryption
  ManifestWindowSeconds: Int
  SegmentDurationSeconds: Int
  StreamSelection: AwsMediaPackageSy
}

type AwsMediaPackageS1bEncryption {
  SpekeKeyProvider: AwsMediaPackageSl!
}

input AwsMediaPackageCreateOriginEndpointInput {
  Authorization: AwsMediaPackageShInput
  ChannelId: String!
  CmafPackage: AwsMediaPackageSiInput
  DashPackage: AwsMediaPackageS10Input
  Description: String
  HlsPackage: AwsMediaPackageS18Input
  Id: String!
  ManifestName: String
  MssPackage: AwsMediaPackageS1bInput
  Origination: String
  StartoverWindowSeconds: Int
  Tags: JSON
  TimeDelaySeconds: Int
  Whitelist: [String]
}

input AwsMediaPackageShInput {
  CdnIdentifierSecret: String!
  SecretsRoleArn: String!
}

input AwsMediaPackageSiInput {
  Encryption: AwsMediaPackageSjInput
  HlsManifests: [AwsMediaPackageSiHlsManifestsInput]
  SegmentDurationSeconds: Int
  SegmentPrefix: String
  StreamSelection: AwsMediaPackageSyInput
}

input AwsMediaPackageSjInput {
  ConstantInitializationVector: String
  KeyRotationIntervalSeconds: Int
  SpekeKeyProvider: AwsMediaPackageSlInput!
}

input AwsMediaPackageSlInput {
  CertificateArn: String
  EncryptionContractConfiguration: AwsMediaPackageSlEncryptionContractConfigurationInput
  ResourceId: String!
  RoleArn: String!
  SystemIds: [String]!
  Url: String!
}

input AwsMediaPackageSlEncryptionContractConfigurationInput {
  PresetSpeke20Audio: String!
  PresetSpeke20Video: String!
}

input AwsMediaPackageSiHlsManifestsInput {
  AdMarkers: String
  AdTriggers: [String]
  AdsOnDeliveryRestrictions: String
  Id: String!
  IncludeIframeOnlyStream: Boolean
  ManifestName: String
  PlaylistType: String
  PlaylistWindowSeconds: Int
  ProgramDateTimeIntervalSeconds: Int
}

input AwsMediaPackageSyInput {
  MaxVideoBitsPerSecond: Int
  MinVideoBitsPerSecond: Int
  StreamOrder: String
}

input AwsMediaPackageS10Input {
  AdTriggers: [String]
  AdsOnDeliveryRestrictions: String
  Encryption: AwsMediaPackageS10EncryptionInput
  ManifestLayout: String
  ManifestWindowSeconds: Int
  MinBufferTimeSeconds: Int
  MinUpdatePeriodSeconds: Int
  PeriodTriggers: [String]
  Profile: String
  SegmentDurationSeconds: Int
  SegmentTemplateFormat: String
  StreamSelection: AwsMediaPackageSyInput
  SuggestedPresentationDelaySeconds: Int
  UtcTiming: String
  UtcTimingUri: String
}

input AwsMediaPackageS10EncryptionInput {
  KeyRotationIntervalSeconds: Int
  SpekeKeyProvider: AwsMediaPackageSlInput!
}

input AwsMediaPackageS18Input {
  AdMarkers: String
  AdTriggers: [String]
  AdsOnDeliveryRestrictions: String
  Encryption: AwsMediaPackageS18EncryptionInput
  IncludeIframeOnlyStream: Boolean
  PlaylistType: String
  PlaylistWindowSeconds: Int
  ProgramDateTimeIntervalSeconds: Int
  SegmentDurationSeconds: Int
  StreamSelection: AwsMediaPackageSyInput
  UseAudioRenditionGroup: Boolean
}

input AwsMediaPackageS18EncryptionInput {
  ConstantInitializationVector: String
  EncryptionMethod: String
  KeyRotationIntervalSeconds: Int
  RepeatExtXKey: Boolean
  SpekeKeyProvider: AwsMediaPackageSlInput!
}

input AwsMediaPackageS1bInput {
  Encryption: AwsMediaPackageS1bEncryptionInput
  ManifestWindowSeconds: Int
  SegmentDurationSeconds: Int
  StreamSelection: AwsMediaPackageSyInput
}

input AwsMediaPackageS1bEncryptionInput {
  SpekeKeyProvider: AwsMediaPackageSlInput!
}

input AwsMediaPackageDeleteChannelInput {
  Id: String!
}

input AwsMediaPackageDeleteOriginEndpointInput {
  Id: String!
}

type AwsMediaPackageDescribeChannelOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageDescribeChannelInput {
  Id: String!
}

type AwsMediaPackageDescribeHarvestJobOutput {
  Arn: String
  ChannelId: String
  CreatedAt: String
  EndTime: String
  Id: String
  OriginEndpointId: String
  S3Destination: AwsMediaPackageSd
  StartTime: String
  Status: String
}

input AwsMediaPackageDescribeHarvestJobInput {
  Id: String!
}

type AwsMediaPackageDescribeOriginEndpointOutput {
  Arn: String
  Authorization: AwsMediaPackageSh
  ChannelId: String
  CmafPackage: AwsMediaPackageS1f
  DashPackage: AwsMediaPackageS10
  Description: String
  HlsPackage: AwsMediaPackageS18
  Id: String
  ManifestName: String
  MssPackage: AwsMediaPackageS1b
  Origination: String
  StartoverWindowSeconds: Int
  Tags: JSON
  TimeDelaySeconds: Int
  Url: String
  Whitelist: [String]
}

input AwsMediaPackageDescribeOriginEndpointInput {
  Id: String!
}

type AwsMediaPackageListChannelsOutput {
  Channels: [AwsMediaPackageListChannelsOutputChannels]
  NextToken: String
}

type AwsMediaPackageListChannelsOutputChannels {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageListChannelsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaPackageListHarvestJobsOutput {
  HarvestJobs: [AwsMediaPackageListHarvestJobsOutputHarvestJobs]
  NextToken: String
}

type AwsMediaPackageListHarvestJobsOutputHarvestJobs {
  Arn: String
  ChannelId: String
  CreatedAt: String
  EndTime: String
  Id: String
  OriginEndpointId: String
  S3Destination: AwsMediaPackageSd
  StartTime: String
  Status: String
}

input AwsMediaPackageListHarvestJobsInput {
  IncludeChannelId: String
  IncludeStatus: String
  MaxResults: Int
  NextToken: String
}

type AwsMediaPackageListOriginEndpointsOutput {
  NextToken: String
  OriginEndpoints: [AwsMediaPackageListOriginEndpointsOutputOriginEndpoints]
}

type AwsMediaPackageListOriginEndpointsOutputOriginEndpoints {
  Arn: String
  Authorization: AwsMediaPackageSh
  ChannelId: String
  CmafPackage: AwsMediaPackageS1f
  DashPackage: AwsMediaPackageS10
  Description: String
  HlsPackage: AwsMediaPackageS18
  Id: String
  ManifestName: String
  MssPackage: AwsMediaPackageS1b
  Origination: String
  StartoverWindowSeconds: Int
  Tags: JSON
  TimeDelaySeconds: Int
  Url: String
  Whitelist: [String]
}

input AwsMediaPackageListOriginEndpointsInput {
  ChannelId: String
  MaxResults: Int
  NextToken: String
}

type AwsMediaPackageListTagsForResourceOutput {
  Tags: JSON
}

input AwsMediaPackageListTagsForResourceInput {
  ResourceArn: String!
}

type AwsMediaPackageRotateChannelCredentialsOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageRotateChannelCredentialsInput {
  Id: String!
}

type AwsMediaPackageRotateIngestEndpointCredentialsOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageRotateIngestEndpointCredentialsInput {
  Id: String!
  IngestEndpointId: String!
}

input AwsMediaPackageTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsMediaPackageUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsMediaPackageUpdateChannelOutput {
  Arn: String
  Description: String
  EgressAccessLogs: AwsMediaPackageS2
  HlsIngest: AwsMediaPackageS6
  Id: String
  IngressAccessLogs: AwsMediaPackageS4
  Tags: JSON
}

input AwsMediaPackageUpdateChannelInput {
  Description: String
  Id: String!
}

type AwsMediaPackageUpdateOriginEndpointOutput {
  Arn: String
  Authorization: AwsMediaPackageSh
  ChannelId: String
  CmafPackage: AwsMediaPackageS1f
  DashPackage: AwsMediaPackageS10
  Description: String
  HlsPackage: AwsMediaPackageS18
  Id: String
  ManifestName: String
  MssPackage: AwsMediaPackageS1b
  Origination: String
  StartoverWindowSeconds: Int
  Tags: JSON
  TimeDelaySeconds: Int
  Url: String
  Whitelist: [String]
}

input AwsMediaPackageUpdateOriginEndpointInput {
  Authorization: AwsMediaPackageShInput
  CmafPackage: AwsMediaPackageSiInput
  DashPackage: AwsMediaPackageS10Input
  Description: String
  HlsPackage: AwsMediaPackageS18Input
  Id: String!
  ManifestName: String
  MssPackage: AwsMediaPackageS1bInput
  Origination: String
  StartoverWindowSeconds: Int
  TimeDelaySeconds: Int
  Whitelist: [String]
}

"""AWS Elemental MediaPackage VOD (2018-11-07)"""
type AwsMediaPackageVod {
  configureLogs(input: AwsMediaPackageVodConfigureLogsInput!, config: AwsConfig): AwsMediaPackageVodConfigureLogsOutput
  createAsset(input: AwsMediaPackageVodCreateAssetInput!, config: AwsConfig): AwsMediaPackageVodCreateAssetOutput
  createPackagingConfiguration(input: AwsMediaPackageVodCreatePackagingConfigurationInput!, config: AwsConfig): AwsMediaPackageVodCreatePackagingConfigurationOutput
  createPackagingGroup(input: AwsMediaPackageVodCreatePackagingGroupInput!, config: AwsConfig): AwsMediaPackageVodCreatePackagingGroupOutput
  deleteAsset(input: AwsMediaPackageVodDeleteAssetInput!, config: AwsConfig): JSON
  deletePackagingConfiguration(input: AwsMediaPackageVodDeletePackagingConfigurationInput!, config: AwsConfig): JSON
  deletePackagingGroup(input: AwsMediaPackageVodDeletePackagingGroupInput!, config: AwsConfig): JSON
  describeAsset(input: AwsMediaPackageVodDescribeAssetInput!, config: AwsConfig): AwsMediaPackageVodDescribeAssetOutput
  describePackagingConfiguration(input: AwsMediaPackageVodDescribePackagingConfigurationInput!, config: AwsConfig): AwsMediaPackageVodDescribePackagingConfigurationOutput
  describePackagingGroup(input: AwsMediaPackageVodDescribePackagingGroupInput!, config: AwsConfig): AwsMediaPackageVodDescribePackagingGroupOutput
  listAssets(input: AwsMediaPackageVodListAssetsInput, config: AwsConfig): AwsMediaPackageVodListAssetsOutput
  listPackagingConfigurations(input: AwsMediaPackageVodListPackagingConfigurationsInput, config: AwsConfig): AwsMediaPackageVodListPackagingConfigurationsOutput
  listPackagingGroups(input: AwsMediaPackageVodListPackagingGroupsInput, config: AwsConfig): AwsMediaPackageVodListPackagingGroupsOutput
  listTagsForResource(input: AwsMediaPackageVodListTagsForResourceInput!, config: AwsConfig): AwsMediaPackageVodListTagsForResourceOutput
  tagResource(input: AwsMediaPackageVodTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaPackageVodUntagResourceInput!, config: AwsConfig): JSON
  updatePackagingGroup(input: AwsMediaPackageVodUpdatePackagingGroupInput!, config: AwsConfig): AwsMediaPackageVodUpdatePackagingGroupOutput
}

type AwsMediaPackageVodConfigureLogsOutput {
  Arn: String
  Authorization: AwsMediaPackageVodS5
  DomainName: String
  EgressAccessLogs: AwsMediaPackageVodS2
  Id: String
  Tags: JSON
}

type AwsMediaPackageVodS5 {
  CdnIdentifierSecret: String!
  SecretsRoleArn: String!
}

type AwsMediaPackageVodS2 {
  LogGroupName: String
}

input AwsMediaPackageVodConfigureLogsInput {
  EgressAccessLogs: AwsMediaPackageVodS2Input
  Id: String!
}

input AwsMediaPackageVodS2Input {
  LogGroupName: String
}

type AwsMediaPackageVodCreateAssetOutput {
  Arn: String
  CreatedAt: String
  EgressEndpoints: [AwsMediaPackageVodS9]
  Id: String
  PackagingGroupId: String
  ResourceId: String
  SourceArn: String
  SourceRoleArn: String
  Tags: JSON
}

type AwsMediaPackageVodS9 {
  PackagingConfigurationId: String
  Url: String
}

input AwsMediaPackageVodCreateAssetInput {
  Id: String!
  PackagingGroupId: String!
  ResourceId: String
  SourceArn: String!
  SourceRoleArn: String!
  Tags: JSON
}

type AwsMediaPackageVodCreatePackagingConfigurationOutput {
  Arn: String
  CmafPackage: AwsMediaPackageVodSc
  DashPackage: AwsMediaPackageVodSn
  HlsPackage: AwsMediaPackageVodSw
  Id: String
  MssPackage: AwsMediaPackageVodSz
  PackagingGroupId: String
  Tags: JSON
}

type AwsMediaPackageVodSc {
  Encryption: AwsMediaPackageVodScEncryption
  HlsManifests: [AwsMediaPackageVodSg]!
  IncludeEncoderConfigurationInSegments: Boolean
  SegmentDurationSeconds: Int
}

type AwsMediaPackageVodScEncryption {
  SpekeKeyProvider: AwsMediaPackageVodSe!
}

type AwsMediaPackageVodSe {
  RoleArn: String!
  SystemIds: [String]!
  Url: String!
}

type AwsMediaPackageVodSg {
  AdMarkers: String
  IncludeIframeOnlyStream: Boolean
  ManifestName: String
  ProgramDateTimeIntervalSeconds: Int
  RepeatExtXKey: Boolean
  StreamSelection: AwsMediaPackageVodSl
}

type AwsMediaPackageVodSl {
  MaxVideoBitsPerSecond: Int
  MinVideoBitsPerSecond: Int
  StreamOrder: String
}

type AwsMediaPackageVodSn {
  DashManifests: [AwsMediaPackageVodSnDashManifests]!
  Encryption: AwsMediaPackageVodSnEncryption
  IncludeEncoderConfigurationInSegments: Boolean
  PeriodTriggers: [String]
  SegmentDurationSeconds: Int
  SegmentTemplateFormat: String
}

type AwsMediaPackageVodSnDashManifests {
  ManifestLayout: String
  ManifestName: String
  MinBufferTimeSeconds: Int
  Profile: String
  StreamSelection: AwsMediaPackageVodSl
}

type AwsMediaPackageVodSnEncryption {
  SpekeKeyProvider: AwsMediaPackageVodSe!
}

type AwsMediaPackageVodSw {
  Encryption: AwsMediaPackageVodSwEncryption
  HlsManifests: [AwsMediaPackageVodSg]!
  SegmentDurationSeconds: Int
  UseAudioRenditionGroup: Boolean
}

type AwsMediaPackageVodSwEncryption {
  ConstantInitializationVector: String
  EncryptionMethod: String
  SpekeKeyProvider: AwsMediaPackageVodSe!
}

type AwsMediaPackageVodSz {
  Encryption: AwsMediaPackageVodSzEncryption
  MssManifests: [AwsMediaPackageVodSzMssManifests]!
  SegmentDurationSeconds: Int
}

type AwsMediaPackageVodSzEncryption {
  SpekeKeyProvider: AwsMediaPackageVodSe!
}

type AwsMediaPackageVodSzMssManifests {
  ManifestName: String
  StreamSelection: AwsMediaPackageVodSl
}

input AwsMediaPackageVodCreatePackagingConfigurationInput {
  CmafPackage: AwsMediaPackageVodScInput
  DashPackage: AwsMediaPackageVodSnInput
  HlsPackage: AwsMediaPackageVodSwInput
  Id: String!
  MssPackage: AwsMediaPackageVodSzInput
  PackagingGroupId: String!
  Tags: JSON
}

input AwsMediaPackageVodScInput {
  Encryption: AwsMediaPackageVodScEncryptionInput
  HlsManifests: [AwsMediaPackageVodSgInput]!
  IncludeEncoderConfigurationInSegments: Boolean
  SegmentDurationSeconds: Int
}

input AwsMediaPackageVodScEncryptionInput {
  SpekeKeyProvider: AwsMediaPackageVodSeInput!
}

input AwsMediaPackageVodSeInput {
  RoleArn: String!
  SystemIds: [String]!
  Url: String!
}

input AwsMediaPackageVodSgInput {
  AdMarkers: String
  IncludeIframeOnlyStream: Boolean
  ManifestName: String
  ProgramDateTimeIntervalSeconds: Int
  RepeatExtXKey: Boolean
  StreamSelection: AwsMediaPackageVodSlInput
}

input AwsMediaPackageVodSlInput {
  MaxVideoBitsPerSecond: Int
  MinVideoBitsPerSecond: Int
  StreamOrder: String
}

input AwsMediaPackageVodSnInput {
  DashManifests: [AwsMediaPackageVodSnDashManifestsInput]!
  Encryption: AwsMediaPackageVodSnEncryptionInput
  IncludeEncoderConfigurationInSegments: Boolean
  PeriodTriggers: [String]
  SegmentDurationSeconds: Int
  SegmentTemplateFormat: String
}

input AwsMediaPackageVodSnDashManifestsInput {
  ManifestLayout: String
  ManifestName: String
  MinBufferTimeSeconds: Int
  Profile: String
  StreamSelection: AwsMediaPackageVodSlInput
}

input AwsMediaPackageVodSnEncryptionInput {
  SpekeKeyProvider: AwsMediaPackageVodSeInput!
}

input AwsMediaPackageVodSwInput {
  Encryption: AwsMediaPackageVodSwEncryptionInput
  HlsManifests: [AwsMediaPackageVodSgInput]!
  SegmentDurationSeconds: Int
  UseAudioRenditionGroup: Boolean
}

input AwsMediaPackageVodSwEncryptionInput {
  ConstantInitializationVector: String
  EncryptionMethod: String
  SpekeKeyProvider: AwsMediaPackageVodSeInput!
}

input AwsMediaPackageVodSzInput {
  Encryption: AwsMediaPackageVodSzEncryptionInput
  MssManifests: [AwsMediaPackageVodSzMssManifestsInput]!
  SegmentDurationSeconds: Int
}

input AwsMediaPackageVodSzEncryptionInput {
  SpekeKeyProvider: AwsMediaPackageVodSeInput!
}

input AwsMediaPackageVodSzMssManifestsInput {
  ManifestName: String
  StreamSelection: AwsMediaPackageVodSlInput
}

type AwsMediaPackageVodCreatePackagingGroupOutput {
  Arn: String
  Authorization: AwsMediaPackageVodS5
  DomainName: String
  EgressAccessLogs: AwsMediaPackageVodS2
  Id: String
  Tags: JSON
}

input AwsMediaPackageVodCreatePackagingGroupInput {
  Authorization: AwsMediaPackageVodS5Input
  EgressAccessLogs: AwsMediaPackageVodS2Input
  Id: String!
  Tags: JSON
}

input AwsMediaPackageVodS5Input {
  CdnIdentifierSecret: String!
  SecretsRoleArn: String!
}

input AwsMediaPackageVodDeleteAssetInput {
  Id: String!
}

input AwsMediaPackageVodDeletePackagingConfigurationInput {
  Id: String!
}

input AwsMediaPackageVodDeletePackagingGroupInput {
  Id: String!
}

type AwsMediaPackageVodDescribeAssetOutput {
  Arn: String
  CreatedAt: String
  EgressEndpoints: [AwsMediaPackageVodS9]
  Id: String
  PackagingGroupId: String
  ResourceId: String
  SourceArn: String
  SourceRoleArn: String
  Tags: JSON
}

input AwsMediaPackageVodDescribeAssetInput {
  Id: String!
}

type AwsMediaPackageVodDescribePackagingConfigurationOutput {
  Arn: String
  CmafPackage: AwsMediaPackageVodSc
  DashPackage: AwsMediaPackageVodSn
  HlsPackage: AwsMediaPackageVodSw
  Id: String
  MssPackage: AwsMediaPackageVodSz
  PackagingGroupId: String
  Tags: JSON
}

input AwsMediaPackageVodDescribePackagingConfigurationInput {
  Id: String!
}

type AwsMediaPackageVodDescribePackagingGroupOutput {
  Arn: String
  Authorization: AwsMediaPackageVodS5
  DomainName: String
  EgressAccessLogs: AwsMediaPackageVodS2
  Id: String
  Tags: JSON
}

input AwsMediaPackageVodDescribePackagingGroupInput {
  Id: String!
}

type AwsMediaPackageVodListAssetsOutput {
  Assets: [AwsMediaPackageVodListAssetsOutputAssets]
  NextToken: String
}

type AwsMediaPackageVodListAssetsOutputAssets {
  Arn: String
  CreatedAt: String
  Id: String
  PackagingGroupId: String
  ResourceId: String
  SourceArn: String
  SourceRoleArn: String
  Tags: JSON
}

input AwsMediaPackageVodListAssetsInput {
  MaxResults: Int
  NextToken: String
  PackagingGroupId: String
}

type AwsMediaPackageVodListPackagingConfigurationsOutput {
  NextToken: String
  PackagingConfigurations: [AwsMediaPackageVodListPackagingConfigurationsOutputPackagingConfigurations]
}

type AwsMediaPackageVodListPackagingConfigurationsOutputPackagingConfigurations {
  Arn: String
  CmafPackage: AwsMediaPackageVodSc
  DashPackage: AwsMediaPackageVodSn
  HlsPackage: AwsMediaPackageVodSw
  Id: String
  MssPackage: AwsMediaPackageVodSz
  PackagingGroupId: String
  Tags: JSON
}

input AwsMediaPackageVodListPackagingConfigurationsInput {
  MaxResults: Int
  NextToken: String
  PackagingGroupId: String
}

type AwsMediaPackageVodListPackagingGroupsOutput {
  NextToken: String
  PackagingGroups: [AwsMediaPackageVodListPackagingGroupsOutputPackagingGroups]
}

type AwsMediaPackageVodListPackagingGroupsOutputPackagingGroups {
  Arn: String
  Authorization: AwsMediaPackageVodS5
  DomainName: String
  EgressAccessLogs: AwsMediaPackageVodS2
  Id: String
  Tags: JSON
}

input AwsMediaPackageVodListPackagingGroupsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaPackageVodListTagsForResourceOutput {
  Tags: JSON
}

input AwsMediaPackageVodListTagsForResourceInput {
  ResourceArn: String!
}

input AwsMediaPackageVodTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsMediaPackageVodUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsMediaPackageVodUpdatePackagingGroupOutput {
  Arn: String
  Authorization: AwsMediaPackageVodS5
  DomainName: String
  EgressAccessLogs: AwsMediaPackageVodS2
  Id: String
  Tags: JSON
}

input AwsMediaPackageVodUpdatePackagingGroupInput {
  Authorization: AwsMediaPackageVodS5Input
  Id: String!
}

"""AWS Elemental MediaStore (2017-09-01)"""
type AwsMediaStore {
  createContainer(input: AwsMediaStoreCreateContainerInput!, config: AwsConfig): AwsMediaStoreCreateContainerOutput
  deleteContainer(input: AwsMediaStoreDeleteContainerInput!, config: AwsConfig): JSON
  deleteContainerPolicy(input: AwsMediaStoreDeleteContainerPolicyInput!, config: AwsConfig): JSON
  deleteCorsPolicy(input: AwsMediaStoreDeleteCorsPolicyInput!, config: AwsConfig): JSON
  deleteLifecyclePolicy(input: AwsMediaStoreDeleteLifecyclePolicyInput!, config: AwsConfig): JSON
  deleteMetricPolicy(input: AwsMediaStoreDeleteMetricPolicyInput!, config: AwsConfig): JSON
  describeContainer(input: AwsMediaStoreDescribeContainerInput, config: AwsConfig): AwsMediaStoreDescribeContainerOutput
  getContainerPolicy(input: AwsMediaStoreGetContainerPolicyInput!, config: AwsConfig): AwsMediaStoreGetContainerPolicyOutput
  getCorsPolicy(input: AwsMediaStoreGetCorsPolicyInput!, config: AwsConfig): AwsMediaStoreGetCorsPolicyOutput
  getLifecyclePolicy(input: AwsMediaStoreGetLifecyclePolicyInput!, config: AwsConfig): AwsMediaStoreGetLifecyclePolicyOutput
  getMetricPolicy(input: AwsMediaStoreGetMetricPolicyInput!, config: AwsConfig): AwsMediaStoreGetMetricPolicyOutput
  listContainers(input: AwsMediaStoreListContainersInput, config: AwsConfig): AwsMediaStoreListContainersOutput
  listTagsForResource(input: AwsMediaStoreListTagsForResourceInput!, config: AwsConfig): AwsMediaStoreListTagsForResourceOutput
  putContainerPolicy(input: AwsMediaStorePutContainerPolicyInput!, config: AwsConfig): JSON
  putCorsPolicy(input: AwsMediaStorePutCorsPolicyInput!, config: AwsConfig): JSON
  putLifecyclePolicy(input: AwsMediaStorePutLifecyclePolicyInput!, config: AwsConfig): JSON
  putMetricPolicy(input: AwsMediaStorePutMetricPolicyInput!, config: AwsConfig): JSON
  startAccessLogging(input: AwsMediaStoreStartAccessLoggingInput!, config: AwsConfig): JSON
  stopAccessLogging(input: AwsMediaStoreStopAccessLoggingInput!, config: AwsConfig): JSON
  tagResource(input: AwsMediaStoreTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaStoreUntagResourceInput!, config: AwsConfig): JSON
}

type AwsMediaStoreCreateContainerOutput {
  Container: AwsMediaStoreS8!
}

type AwsMediaStoreS8 {
  Endpoint: String
  CreationTime: Date
  ARN: String
  Name: String
  Status: String
  AccessLoggingEnabled: Boolean
}

input AwsMediaStoreCreateContainerInput {
  ContainerName: String!
  Tags: [AwsMediaStoreS3Input]
}

input AwsMediaStoreS3Input {
  Key: String!
  Value: String
}

input AwsMediaStoreDeleteContainerInput {
  ContainerName: String!
}

input AwsMediaStoreDeleteContainerPolicyInput {
  ContainerName: String!
}

input AwsMediaStoreDeleteCorsPolicyInput {
  ContainerName: String!
}

input AwsMediaStoreDeleteLifecyclePolicyInput {
  ContainerName: String!
}

input AwsMediaStoreDeleteMetricPolicyInput {
  ContainerName: String!
}

type AwsMediaStoreDescribeContainerOutput {
  Container: AwsMediaStoreS8
}

input AwsMediaStoreDescribeContainerInput {
  ContainerName: String
}

type AwsMediaStoreGetContainerPolicyOutput {
  Policy: String!
}

input AwsMediaStoreGetContainerPolicyInput {
  ContainerName: String!
}

type AwsMediaStoreGetCorsPolicyOutput {
  CorsPolicy: [AwsMediaStoreSv]!
}

type AwsMediaStoreSv {
  AllowedOrigins: [String]!
  AllowedMethods: [String]
  AllowedHeaders: [String]!
  MaxAgeSeconds: Int
  ExposeHeaders: [String]
}

input AwsMediaStoreGetCorsPolicyInput {
  ContainerName: String!
}

type AwsMediaStoreGetLifecyclePolicyOutput {
  LifecyclePolicy: String!
}

input AwsMediaStoreGetLifecyclePolicyInput {
  ContainerName: String!
}

type AwsMediaStoreGetMetricPolicyOutput {
  MetricPolicy: AwsMediaStoreS1a!
}

type AwsMediaStoreS1a {
  ContainerLevelMetrics: String!
  MetricPolicyRules: [AwsMediaStoreS1aMetricPolicyRules]
}

type AwsMediaStoreS1aMetricPolicyRules {
  ObjectGroup: String!
  ObjectGroupName: String!
}

input AwsMediaStoreGetMetricPolicyInput {
  ContainerName: String!
}

type AwsMediaStoreListContainersOutput {
  Containers: [AwsMediaStoreS8]!
  NextToken: String
}

input AwsMediaStoreListContainersInput {
  NextToken: String
  MaxResults: Int
}

type AwsMediaStoreListTagsForResourceOutput {
  Tags: [AwsMediaStoreS3]
}

type AwsMediaStoreS3 {
  Key: String!
  Value: String
}

input AwsMediaStoreListTagsForResourceInput {
  Resource: String!
}

input AwsMediaStorePutContainerPolicyInput {
  ContainerName: String!
  Policy: String!
}

input AwsMediaStorePutCorsPolicyInput {
  ContainerName: String!
  CorsPolicy: [AwsMediaStoreSvInput]!
}

input AwsMediaStoreSvInput {
  AllowedOrigins: [String]!
  AllowedMethods: [String]
  AllowedHeaders: [String]!
  MaxAgeSeconds: Int
  ExposeHeaders: [String]
}

input AwsMediaStorePutLifecyclePolicyInput {
  ContainerName: String!
  LifecyclePolicy: String!
}

input AwsMediaStorePutMetricPolicyInput {
  ContainerName: String!
  MetricPolicy: AwsMediaStoreS1aInput!
}

input AwsMediaStoreS1aInput {
  ContainerLevelMetrics: String!
  MetricPolicyRules: [AwsMediaStoreS1aMetricPolicyRulesInput]
}

input AwsMediaStoreS1aMetricPolicyRulesInput {
  ObjectGroup: String!
  ObjectGroupName: String!
}

input AwsMediaStoreStartAccessLoggingInput {
  ContainerName: String!
}

input AwsMediaStoreStopAccessLoggingInput {
  ContainerName: String!
}

input AwsMediaStoreTagResourceInput {
  Resource: String!
  Tags: [AwsMediaStoreS3Input]!
}

input AwsMediaStoreUntagResourceInput {
  Resource: String!
  TagKeys: [String]!
}

"""AWS Elemental MediaStore Data Plane (2017-09-01)"""
type AwsMediaStoreData {
  deleteObject(input: AwsMediaStoreDataDeleteObjectInput!, config: AwsConfig): JSON
  describeObject(input: AwsMediaStoreDataDescribeObjectInput!, config: AwsConfig): AwsMediaStoreDataDescribeObjectOutput
  getObject(input: AwsMediaStoreDataGetObjectInput!, config: AwsConfig): AwsMediaStoreDataGetObjectOutput
  listItems(input: AwsMediaStoreDataListItemsInput, config: AwsConfig): AwsMediaStoreDataListItemsOutput
  putObject(input: AwsMediaStoreDataPutObjectInput!, config: AwsConfig): AwsMediaStoreDataPutObjectOutput
}

input AwsMediaStoreDataDeleteObjectInput {
  Path: String!
}

type AwsMediaStoreDataDescribeObjectOutput {
  ETag: String
  ContentType: String
  ContentLength: JSON
  CacheControl: String
  LastModified: Date
}

input AwsMediaStoreDataDescribeObjectInput {
  Path: String!
}

type AwsMediaStoreDataGetObjectOutput {
  Body: JSON
  CacheControl: String
  ContentRange: String
  ContentLength: JSON
  ContentType: String
  ETag: String
  LastModified: Date
  StatusCode: Int!
}

input AwsMediaStoreDataGetObjectInput {
  Path: String!
  Range: String
}

type AwsMediaStoreDataListItemsOutput {
  Items: [AwsMediaStoreDataListItemsOutputItems]
  NextToken: String
}

type AwsMediaStoreDataListItemsOutputItems {
  Name: String
  Type: String
  ETag: String
  LastModified: Date
  ContentType: String
  ContentLength: JSON
}

input AwsMediaStoreDataListItemsInput {
  Path: String
  MaxResults: Int
  NextToken: String
}

type AwsMediaStoreDataPutObjectOutput {
  ContentSHA256: String
  ETag: String
  StorageClass: String
}

input AwsMediaStoreDataPutObjectInput {
  Body: JSON!
  Path: String!
  ContentType: String
  CacheControl: String
  StorageClass: String
  UploadAvailability: String
}

"""AWS MediaTailor (2018-04-23)"""
type AwsMediaTailor {
  createChannel(input: AwsMediaTailorCreateChannelInput!, config: AwsConfig): AwsMediaTailorCreateChannelOutput
  createProgram(input: AwsMediaTailorCreateProgramInput!, config: AwsConfig): AwsMediaTailorCreateProgramOutput
  createSourceLocation(input: AwsMediaTailorCreateSourceLocationInput!, config: AwsConfig): AwsMediaTailorCreateSourceLocationOutput
  createVodSource(input: AwsMediaTailorCreateVodSourceInput!, config: AwsConfig): AwsMediaTailorCreateVodSourceOutput
  deleteChannel(input: AwsMediaTailorDeleteChannelInput!, config: AwsConfig): JSON
  deleteChannelPolicy(input: AwsMediaTailorDeleteChannelPolicyInput!, config: AwsConfig): JSON
  deletePlaybackConfiguration(input: AwsMediaTailorDeletePlaybackConfigurationInput!, config: AwsConfig): JSON
  deleteProgram(input: AwsMediaTailorDeleteProgramInput!, config: AwsConfig): JSON
  deleteSourceLocation(input: AwsMediaTailorDeleteSourceLocationInput!, config: AwsConfig): JSON
  deleteVodSource(input: AwsMediaTailorDeleteVodSourceInput!, config: AwsConfig): JSON
  describeChannel(input: AwsMediaTailorDescribeChannelInput!, config: AwsConfig): AwsMediaTailorDescribeChannelOutput
  describeProgram(input: AwsMediaTailorDescribeProgramInput!, config: AwsConfig): AwsMediaTailorDescribeProgramOutput
  describeSourceLocation(input: AwsMediaTailorDescribeSourceLocationInput!, config: AwsConfig): AwsMediaTailorDescribeSourceLocationOutput
  describeVodSource(input: AwsMediaTailorDescribeVodSourceInput!, config: AwsConfig): AwsMediaTailorDescribeVodSourceOutput
  getChannelPolicy(input: AwsMediaTailorGetChannelPolicyInput!, config: AwsConfig): AwsMediaTailorGetChannelPolicyOutput
  getChannelSchedule(input: AwsMediaTailorGetChannelScheduleInput!, config: AwsConfig): AwsMediaTailorGetChannelScheduleOutput
  getPlaybackConfiguration(input: AwsMediaTailorGetPlaybackConfigurationInput!, config: AwsConfig): AwsMediaTailorGetPlaybackConfigurationOutput
  listChannels(input: AwsMediaTailorListChannelsInput, config: AwsConfig): AwsMediaTailorListChannelsOutput
  listPlaybackConfigurations(input: AwsMediaTailorListPlaybackConfigurationsInput, config: AwsConfig): AwsMediaTailorListPlaybackConfigurationsOutput
  listSourceLocations(input: AwsMediaTailorListSourceLocationsInput, config: AwsConfig): AwsMediaTailorListSourceLocationsOutput
  listTagsForResource(input: AwsMediaTailorListTagsForResourceInput!, config: AwsConfig): AwsMediaTailorListTagsForResourceOutput
  listVodSources(input: AwsMediaTailorListVodSourcesInput!, config: AwsConfig): AwsMediaTailorListVodSourcesOutput
  putChannelPolicy(input: AwsMediaTailorPutChannelPolicyInput!, config: AwsConfig): JSON
  putPlaybackConfiguration(input: AwsMediaTailorPutPlaybackConfigurationInput, config: AwsConfig): AwsMediaTailorPutPlaybackConfigurationOutput
  startChannel(input: AwsMediaTailorStartChannelInput!, config: AwsConfig): JSON
  stopChannel(input: AwsMediaTailorStopChannelInput!, config: AwsConfig): JSON
  tagResource(input: AwsMediaTailorTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsMediaTailorUntagResourceInput!, config: AwsConfig): JSON
  updateChannel(input: AwsMediaTailorUpdateChannelInput!, config: AwsConfig): AwsMediaTailorUpdateChannelOutput
  updateSourceLocation(input: AwsMediaTailorUpdateSourceLocationInput!, config: AwsConfig): AwsMediaTailorUpdateSourceLocationOutput
  updateVodSource(input: AwsMediaTailorUpdateVodSourceInput!, config: AwsConfig): AwsMediaTailorUpdateVodSourceOutput
}

type AwsMediaTailorCreateChannelOutput {
  Arn: String
  ChannelName: String
  ChannelState: String
  CreationTime: Date
  LastModifiedTime: Date
  Outputs: [AwsMediaTailorSd]
  PlaybackMode: String
  Tags: JSON
}

type AwsMediaTailorSd {
  DashPlaylistSettings: AwsMediaTailorS5
  HlsPlaylistSettings: AwsMediaTailorS7
  ManifestName: String!
  PlaybackUrl: String!
  SourceGroup: String!
}

type AwsMediaTailorS5 {
  ManifestWindowSeconds: Int
  MinBufferTimeSeconds: Int
  MinUpdatePeriodSeconds: Int
  SuggestedPresentationDelaySeconds: Int
}

type AwsMediaTailorS7 {
  ManifestWindowSeconds: Int
}

input AwsMediaTailorCreateChannelInput {
  ChannelName: String!
  Outputs: [AwsMediaTailorS3Input]!
  PlaybackMode: String!
  Tags: JSON
}

input AwsMediaTailorS3Input {
  DashPlaylistSettings: AwsMediaTailorS5Input
  HlsPlaylistSettings: AwsMediaTailorS7Input
  ManifestName: String!
  SourceGroup: String!
}

input AwsMediaTailorS5Input {
  ManifestWindowSeconds: Int
  MinBufferTimeSeconds: Int
  MinUpdatePeriodSeconds: Int
  SuggestedPresentationDelaySeconds: Int
}

input AwsMediaTailorS7Input {
  ManifestWindowSeconds: Int
}

type AwsMediaTailorCreateProgramOutput {
  AdBreaks: [AwsMediaTailorSg]
  Arn: String
  ChannelName: String
  CreationTime: Date
  ProgramName: String
  SourceLocationName: String
  VodSourceName: String
}

type AwsMediaTailorSg {
  MessageType: String
  OffsetMillis: JSON
  Slate: AwsMediaTailorSgSlate
  SpliceInsertMessage: AwsMediaTailorSgSpliceInsertMessage
}

type AwsMediaTailorSgSlate {
  SourceLocationName: String
  VodSourceName: String
}

type AwsMediaTailorSgSpliceInsertMessage {
  AvailNum: Int
  AvailsExpected: Int
  SpliceEventId: Int
  UniqueProgramId: Int
}

input AwsMediaTailorCreateProgramInput {
  AdBreaks: [AwsMediaTailorSgInput]
  ChannelName: String!
  ProgramName: String!
  ScheduleConfiguration: AwsMediaTailorCreateProgramScheduleConfigurationInput!
  SourceLocationName: String!
  VodSourceName: String!
}

input AwsMediaTailorSgInput {
  MessageType: String
  OffsetMillis: JSON
  Slate: AwsMediaTailorSgSlateInput
  SpliceInsertMessage: AwsMediaTailorSgSpliceInsertMessageInput
}

input AwsMediaTailorSgSlateInput {
  SourceLocationName: String
  VodSourceName: String
}

input AwsMediaTailorSgSpliceInsertMessageInput {
  AvailNum: Int
  AvailsExpected: Int
  SpliceEventId: Int
  UniqueProgramId: Int
}

input AwsMediaTailorCreateProgramScheduleConfigurationInput {
  Transition: AwsMediaTailorCreateProgramScheduleConfigurationTransitionInput!
}

input AwsMediaTailorCreateProgramScheduleConfigurationTransitionInput {
  RelativePosition: String!
  RelativeProgram: String
  Type: String!
}

type AwsMediaTailorCreateSourceLocationOutput {
  AccessConfiguration: AwsMediaTailorSr
  Arn: String
  CreationTime: Date
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSu
  HttpConfiguration: AwsMediaTailorSv
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
}

type AwsMediaTailorSr {
  AccessType: String
  SecretsManagerAccessTokenConfiguration: AwsMediaTailorSrSecretsManagerAccessTokenConfiguration
}

type AwsMediaTailorSrSecretsManagerAccessTokenConfiguration {
  HeaderName: String
  SecretArn: String
  SecretStringKey: String
}

type AwsMediaTailorSu {
  BaseUrl: String
}

type AwsMediaTailorSv {
  BaseUrl: String!
}

input AwsMediaTailorCreateSourceLocationInput {
  AccessConfiguration: AwsMediaTailorSrInput
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSuInput
  HttpConfiguration: AwsMediaTailorSvInput!
  SourceLocationName: String!
  Tags: JSON
}

input AwsMediaTailorSrInput {
  AccessType: String
  SecretsManagerAccessTokenConfiguration: AwsMediaTailorSrSecretsManagerAccessTokenConfigurationInput
}

input AwsMediaTailorSrSecretsManagerAccessTokenConfigurationInput {
  HeaderName: String
  SecretArn: String
  SecretStringKey: String
}

input AwsMediaTailorSuInput {
  BaseUrl: String
}

input AwsMediaTailorSvInput {
  BaseUrl: String!
}

type AwsMediaTailorCreateVodSourceOutput {
  Arn: String
  CreationTime: Date
  HttpPackageConfigurations: [AwsMediaTailorSy]
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
  VodSourceName: String
}

type AwsMediaTailorSy {
  Path: String!
  SourceGroup: String!
  Type: String!
}

input AwsMediaTailorCreateVodSourceInput {
  HttpPackageConfigurations: [AwsMediaTailorSyInput]!
  SourceLocationName: String!
  Tags: JSON
  VodSourceName: String!
}

input AwsMediaTailorSyInput {
  Path: String!
  SourceGroup: String!
  Type: String!
}

input AwsMediaTailorDeleteChannelInput {
  ChannelName: String!
}

input AwsMediaTailorDeleteChannelPolicyInput {
  ChannelName: String!
}

input AwsMediaTailorDeletePlaybackConfigurationInput {
  Name: String!
}

input AwsMediaTailorDeleteProgramInput {
  ChannelName: String!
  ProgramName: String!
}

input AwsMediaTailorDeleteSourceLocationInput {
  SourceLocationName: String!
}

input AwsMediaTailorDeleteVodSourceInput {
  SourceLocationName: String!
  VodSourceName: String!
}

type AwsMediaTailorDescribeChannelOutput {
  Arn: String
  ChannelName: String
  ChannelState: String
  CreationTime: Date
  LastModifiedTime: Date
  Outputs: [AwsMediaTailorSd]
  PlaybackMode: String
  Tags: JSON
}

input AwsMediaTailorDescribeChannelInput {
  ChannelName: String!
}

type AwsMediaTailorDescribeProgramOutput {
  AdBreaks: [AwsMediaTailorSg]
  Arn: String
  ChannelName: String
  CreationTime: Date
  ProgramName: String
  SourceLocationName: String
  VodSourceName: String
}

input AwsMediaTailorDescribeProgramInput {
  ChannelName: String!
  ProgramName: String!
}

type AwsMediaTailorDescribeSourceLocationOutput {
  AccessConfiguration: AwsMediaTailorSr
  Arn: String
  CreationTime: Date
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSu
  HttpConfiguration: AwsMediaTailorSv
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
}

input AwsMediaTailorDescribeSourceLocationInput {
  SourceLocationName: String!
}

type AwsMediaTailorDescribeVodSourceOutput {
  Arn: String
  CreationTime: Date
  HttpPackageConfigurations: [AwsMediaTailorSy]
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
  VodSourceName: String
}

input AwsMediaTailorDescribeVodSourceInput {
  SourceLocationName: String!
  VodSourceName: String!
}

type AwsMediaTailorGetChannelPolicyOutput {
  Policy: String
}

input AwsMediaTailorGetChannelPolicyInput {
  ChannelName: String!
}

type AwsMediaTailorGetChannelScheduleOutput {
  Items: [AwsMediaTailorGetChannelScheduleOutputItems]
  NextToken: String
}

type AwsMediaTailorGetChannelScheduleOutputItems {
  ApproximateDurationSeconds: JSON
  ApproximateStartTime: Date
  Arn: String!
  ChannelName: String!
  ProgramName: String!
  ScheduleAdBreaks: [AwsMediaTailorGetChannelScheduleOutputItemsScheduleAdBreaks]
  SourceLocationName: String!
  VodSourceName: String!
}

type AwsMediaTailorGetChannelScheduleOutputItemsScheduleAdBreaks {
  ApproximateDurationSeconds: JSON
  ApproximateStartTime: Date
  SourceLocationName: String
  VodSourceName: String
}

input AwsMediaTailorGetChannelScheduleInput {
  ChannelName: String!
  DurationMinutes: String
  MaxResults: Int
  NextToken: String
}

type AwsMediaTailorGetPlaybackConfigurationOutput {
  AdDecisionServerUrl: String
  AvailSuppression: AwsMediaTailorS1x
  Bumper: AwsMediaTailorS1z
  CdnConfiguration: AwsMediaTailorS20
  ConfigurationAliases: JSON
  DashConfiguration: AwsMediaTailorS22
  HlsConfiguration: AwsMediaTailorS24
  LivePreRollConfiguration: AwsMediaTailorS25
  ManifestProcessingRules: AwsMediaTailorS26
  Name: String
  PersonalizationThresholdSeconds: Int
  PlaybackConfigurationArn: String
  PlaybackEndpointPrefix: String
  SessionInitializationEndpointPrefix: String
  SlateAdUrl: String
  Tags: JSON
  TranscodeProfileName: String
  VideoContentSourceUrl: String
}

type AwsMediaTailorS1x {
  Mode: String
  Value: String
}

type AwsMediaTailorS1z {
  EndUrl: String
  StartUrl: String
}

type AwsMediaTailorS20 {
  AdSegmentUrlPrefix: String
  ContentSegmentUrlPrefix: String
}

type AwsMediaTailorS22 {
  ManifestEndpointPrefix: String
  MpdLocation: String
  OriginManifestType: String
}

type AwsMediaTailorS24 {
  ManifestEndpointPrefix: String
}

type AwsMediaTailorS25 {
  AdDecisionServerUrl: String
  MaxDurationSeconds: Int
}

type AwsMediaTailorS26 {
  AdMarkerPassthrough: AwsMediaTailorS26AdMarkerPassthrough
}

type AwsMediaTailorS26AdMarkerPassthrough {
  Enabled: Boolean
}

input AwsMediaTailorGetPlaybackConfigurationInput {
  Name: String!
}

type AwsMediaTailorListChannelsOutput {
  Items: [AwsMediaTailorListChannelsOutputItems]
  NextToken: String
}

type AwsMediaTailorListChannelsOutputItems {
  Arn: String!
  ChannelName: String!
  ChannelState: String!
  CreationTime: Date
  LastModifiedTime: Date
  Outputs: [AwsMediaTailorSd]!
  PlaybackMode: String!
  Tags: JSON
}

input AwsMediaTailorListChannelsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaTailorListPlaybackConfigurationsOutput {
  Items: [AwsMediaTailorListPlaybackConfigurationsOutputItems]
  NextToken: String
}

type AwsMediaTailorListPlaybackConfigurationsOutputItems {
  AdDecisionServerUrl: String
  AvailSuppression: AwsMediaTailorS1x
  Bumper: AwsMediaTailorS1z
  CdnConfiguration: AwsMediaTailorS20
  ConfigurationAliases: JSON
  DashConfiguration: AwsMediaTailorS22
  HlsConfiguration: AwsMediaTailorS24
  LivePreRollConfiguration: AwsMediaTailorS25
  ManifestProcessingRules: AwsMediaTailorS26
  Name: String
  PersonalizationThresholdSeconds: Int
  PlaybackConfigurationArn: String
  PlaybackEndpointPrefix: String
  SessionInitializationEndpointPrefix: String
  SlateAdUrl: String
  Tags: JSON
  TranscodeProfileName: String
  VideoContentSourceUrl: String
}

input AwsMediaTailorListPlaybackConfigurationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaTailorListSourceLocationsOutput {
  Items: [AwsMediaTailorListSourceLocationsOutputItems]
  NextToken: String
}

type AwsMediaTailorListSourceLocationsOutputItems {
  AccessConfiguration: AwsMediaTailorSr
  Arn: String!
  CreationTime: Date
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSu
  HttpConfiguration: AwsMediaTailorSv!
  LastModifiedTime: Date
  SourceLocationName: String!
  Tags: JSON
}

input AwsMediaTailorListSourceLocationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsMediaTailorListTagsForResourceOutput {
  Tags: JSON
}

input AwsMediaTailorListTagsForResourceInput {
  ResourceArn: String!
}

type AwsMediaTailorListVodSourcesOutput {
  Items: [AwsMediaTailorListVodSourcesOutputItems]
  NextToken: String
}

type AwsMediaTailorListVodSourcesOutputItems {
  Arn: String!
  CreationTime: Date
  HttpPackageConfigurations: [AwsMediaTailorSy]!
  LastModifiedTime: Date
  SourceLocationName: String!
  Tags: JSON
  VodSourceName: String!
}

input AwsMediaTailorListVodSourcesInput {
  MaxResults: Int
  NextToken: String
  SourceLocationName: String!
}

input AwsMediaTailorPutChannelPolicyInput {
  ChannelName: String!
  Policy: String!
}

type AwsMediaTailorPutPlaybackConfigurationOutput {
  AdDecisionServerUrl: String
  AvailSuppression: AwsMediaTailorS1x
  Bumper: AwsMediaTailorS1z
  CdnConfiguration: AwsMediaTailorS20
  ConfigurationAliases: JSON
  DashConfiguration: AwsMediaTailorS22
  HlsConfiguration: AwsMediaTailorS24
  LivePreRollConfiguration: AwsMediaTailorS25
  ManifestProcessingRules: AwsMediaTailorS26
  Name: String
  PersonalizationThresholdSeconds: Int
  PlaybackConfigurationArn: String
  PlaybackEndpointPrefix: String
  SessionInitializationEndpointPrefix: String
  SlateAdUrl: String
  Tags: JSON
  TranscodeProfileName: String
  VideoContentSourceUrl: String
}

input AwsMediaTailorPutPlaybackConfigurationInput {
  AdDecisionServerUrl: String
  AvailSuppression: AwsMediaTailorS1xInput
  Bumper: AwsMediaTailorS1zInput
  CdnConfiguration: AwsMediaTailorS20Input
  ConfigurationAliases: JSON
  DashConfiguration: AwsMediaTailorPutPlaybackConfigurationDashConfigurationInput
  LivePreRollConfiguration: AwsMediaTailorS25Input
  ManifestProcessingRules: AwsMediaTailorS26Input
  Name: String
  PersonalizationThresholdSeconds: Int
  SlateAdUrl: String
  Tags: JSON
  TranscodeProfileName: String
  VideoContentSourceUrl: String
}

input AwsMediaTailorS1xInput {
  Mode: String
  Value: String
}

input AwsMediaTailorS1zInput {
  EndUrl: String
  StartUrl: String
}

input AwsMediaTailorS20Input {
  AdSegmentUrlPrefix: String
  ContentSegmentUrlPrefix: String
}

input AwsMediaTailorPutPlaybackConfigurationDashConfigurationInput {
  MpdLocation: String
  OriginManifestType: String
}

input AwsMediaTailorS25Input {
  AdDecisionServerUrl: String
  MaxDurationSeconds: Int
}

input AwsMediaTailorS26Input {
  AdMarkerPassthrough: AwsMediaTailorS26AdMarkerPassthroughInput
}

input AwsMediaTailorS26AdMarkerPassthroughInput {
  Enabled: Boolean
}

input AwsMediaTailorStartChannelInput {
  ChannelName: String!
}

input AwsMediaTailorStopChannelInput {
  ChannelName: String!
}

input AwsMediaTailorTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsMediaTailorUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsMediaTailorUpdateChannelOutput {
  Arn: String
  ChannelName: String
  ChannelState: String
  CreationTime: Date
  LastModifiedTime: Date
  Outputs: [AwsMediaTailorSd]
  PlaybackMode: String
  Tags: JSON
}

input AwsMediaTailorUpdateChannelInput {
  ChannelName: String!
  Outputs: [AwsMediaTailorS3Input]!
}

type AwsMediaTailorUpdateSourceLocationOutput {
  AccessConfiguration: AwsMediaTailorSr
  Arn: String
  CreationTime: Date
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSu
  HttpConfiguration: AwsMediaTailorSv
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
}

input AwsMediaTailorUpdateSourceLocationInput {
  AccessConfiguration: AwsMediaTailorSrInput
  DefaultSegmentDeliveryConfiguration: AwsMediaTailorSuInput
  HttpConfiguration: AwsMediaTailorSvInput!
  SourceLocationName: String!
}

type AwsMediaTailorUpdateVodSourceOutput {
  Arn: String
  CreationTime: Date
  HttpPackageConfigurations: [AwsMediaTailorSy]
  LastModifiedTime: Date
  SourceLocationName: String
  Tags: JSON
  VodSourceName: String
}

input AwsMediaTailorUpdateVodSourceInput {
  HttpPackageConfigurations: [AwsMediaTailorSyInput]!
  SourceLocationName: String!
  VodSourceName: String!
}

"""Application Migration Service (2020-02-26)"""
type AwsMgn {
  changeServerLifeCycleState(input: AwsMgnChangeServerLifeCycleStateInput!, config: AwsConfig): JSON
  createReplicationConfigurationTemplate(input: AwsMgnCreateReplicationConfigurationTemplateInput!, config: AwsConfig): JSON
  deleteJob(input: AwsMgnDeleteJobInput!, config: AwsConfig): JSON
  deleteReplicationConfigurationTemplate(input: AwsMgnDeleteReplicationConfigurationTemplateInput!, config: AwsConfig): JSON
  deleteSourceServer(input: AwsMgnDeleteSourceServerInput!, config: AwsConfig): JSON
  describeJobLogItems(input: AwsMgnDescribeJobLogItemsInput!, config: AwsConfig): AwsMgnDescribeJobLogItemsOutput
  describeJobs(input: AwsMgnDescribeJobsInput!, config: AwsConfig): AwsMgnDescribeJobsOutput
  describeReplicationConfigurationTemplates(input: AwsMgnDescribeReplicationConfigurationTemplatesInput!, config: AwsConfig): AwsMgnDescribeReplicationConfigurationTemplatesOutput
  describeSourceServers(input: AwsMgnDescribeSourceServersInput!, config: AwsConfig): AwsMgnDescribeSourceServersOutput
  disconnectFromService(input: AwsMgnDisconnectFromServiceInput!, config: AwsConfig): JSON
  finalizeCutover(input: AwsMgnFinalizeCutoverInput!, config: AwsConfig): JSON
  getLaunchConfiguration(input: AwsMgnGetLaunchConfigurationInput!, config: AwsConfig): JSON
  getReplicationConfiguration(input: AwsMgnGetReplicationConfigurationInput!, config: AwsConfig): JSON
  initializeService(input: JSON, config: AwsConfig): JSON
  listTagsForResource(input: AwsMgnListTagsForResourceInput!, config: AwsConfig): AwsMgnListTagsForResourceOutput
  markAsArchived(input: AwsMgnMarkAsArchivedInput!, config: AwsConfig): JSON
  retryDataReplication(input: AwsMgnRetryDataReplicationInput!, config: AwsConfig): JSON
  startCutover(input: AwsMgnStartCutoverInput!, config: AwsConfig): AwsMgnStartCutoverOutput
  startTest(input: AwsMgnStartTestInput!, config: AwsConfig): AwsMgnStartTestOutput
  tagResource(input: AwsMgnTagResourceInput!, config: AwsConfig): JSON
  terminateTargetInstances(input: AwsMgnTerminateTargetInstancesInput!, config: AwsConfig): AwsMgnTerminateTargetInstancesOutput
  untagResource(input: AwsMgnUntagResourceInput!, config: AwsConfig): JSON
  updateLaunchConfiguration(input: AwsMgnUpdateLaunchConfigurationInput!, config: AwsConfig): JSON
  updateReplicationConfiguration(input: AwsMgnUpdateReplicationConfigurationInput!, config: AwsConfig): JSON
  updateReplicationConfigurationTemplate(input: AwsMgnUpdateReplicationConfigurationTemplateInput!, config: AwsConfig): JSON
}

input AwsMgnChangeServerLifeCycleStateInput {
  lifeCycle: AwsMgnChangeServerLifeCycleStateLifeCycleInput!
  sourceServerID: String!
}

input AwsMgnChangeServerLifeCycleStateLifeCycleInput {
  state: String!
}

input AwsMgnCreateReplicationConfigurationTemplateInput {
  associateDefaultSecurityGroup: Boolean!
  bandwidthThrottling: JSON!
  createPublicIP: Boolean!
  dataPlaneRouting: String!
  defaultLargeStagingDiskType: String!
  ebsEncryption: String!
  ebsEncryptionKeyArn: String
  replicationServerInstanceType: String!
  replicationServersSecurityGroupsIDs: [String]!
  stagingAreaSubnetId: String!
  stagingAreaTags: JSON!
  tags: JSON
  useDedicatedReplicationServer: Boolean!
}

input AwsMgnDeleteJobInput {
  jobID: String!
}

input AwsMgnDeleteReplicationConfigurationTemplateInput {
  replicationConfigurationTemplateID: String!
}

input AwsMgnDeleteSourceServerInput {
  sourceServerID: String!
}

type AwsMgnDescribeJobLogItemsOutput {
  items: [AwsMgnDescribeJobLogItemsOutputItems]
  nextToken: String
}

type AwsMgnDescribeJobLogItemsOutputItems {
  event: String
  eventData: AwsMgnDescribeJobLogItemsOutputItemsEventData
  logDateTime: String
}

type AwsMgnDescribeJobLogItemsOutputItemsEventData {
  conversionServerID: String
  rawError: String
  sourceServerID: String
  targetInstanceID: String
}

input AwsMgnDescribeJobLogItemsInput {
  jobID: String!
  maxResults: Int
  nextToken: String
}

type AwsMgnDescribeJobsOutput {
  items: [AwsMgnS27]
  nextToken: String
}

type AwsMgnS27 {
  arn: String
  creationDateTime: String
  endDateTime: String
  initiatedBy: String
  jobID: String!
  participatingServers: [AwsMgnS27ParticipatingServers]
  status: String
  tags: JSON
  type: String
}

type AwsMgnS27ParticipatingServers {
  launchStatus: String
  sourceServerID: String
}

input AwsMgnDescribeJobsInput {
  filters: AwsMgnDescribeJobsFiltersInput!
  maxResults: Int
  nextToken: String
}

input AwsMgnDescribeJobsFiltersInput {
  fromDate: String
  jobIDs: [String]
  toDate: String
}

type AwsMgnDescribeReplicationConfigurationTemplatesOutput {
  items: [AwsMgnS1m]
  nextToken: String
}

type AwsMgnS1m {
  arn: String
  associateDefaultSecurityGroup: Boolean
  bandwidthThrottling: JSON
  createPublicIP: Boolean
  dataPlaneRouting: String
  defaultLargeStagingDiskType: String
  ebsEncryption: String
  ebsEncryptionKeyArn: String
  replicationConfigurationTemplateID: String!
  replicationServerInstanceType: String
  replicationServersSecurityGroupsIDs: [String]
  stagingAreaSubnetId: String
  stagingAreaTags: JSON
  tags: JSON
  useDedicatedReplicationServer: Boolean
}

input AwsMgnDescribeReplicationConfigurationTemplatesInput {
  maxResults: Int
  nextToken: String
  replicationConfigurationTemplateIDs: [String]!
}

type AwsMgnDescribeSourceServersOutput {
  items: [AwsMgnS5]
  nextToken: String
}

type AwsMgnS5 {
  arn: String
  dataReplicationInfo: AwsMgnS5DataReplicationInfo
  isArchived: Boolean
  launchedInstance: AwsMgnS5LaunchedInstance
  lifeCycle: AwsMgnS5LifeCycle
  sourceProperties: AwsMgnS5SourceProperties
  sourceServerID: String
  tags: JSON
}

type AwsMgnS5DataReplicationInfo {
  dataReplicationError: AwsMgnS5DataReplicationInfoDataReplicationError
  dataReplicationInitiation: AwsMgnS5DataReplicationInfoDataReplicationInitiation
  dataReplicationState: String
  etaDateTime: String
  lagDuration: String
  replicatedDisks: [AwsMgnS5DataReplicationInfoReplicatedDisks]
}

type AwsMgnS5DataReplicationInfoDataReplicationError {
  error: String
  rawError: String
}

type AwsMgnS5DataReplicationInfoDataReplicationInitiation {
  nextAttemptDateTime: String
  startDateTime: String
  steps: [AwsMgnS5DataReplicationInfoDataReplicationInitiationSteps]
}

type AwsMgnS5DataReplicationInfoDataReplicationInitiationSteps {
  name: String
  status: String
}

type AwsMgnS5DataReplicationInfoReplicatedDisks {
  backloggedStorageBytes: JSON
  deviceName: String
  replicatedStorageBytes: JSON
  rescannedStorageBytes: JSON
  totalStorageBytes: JSON
}

type AwsMgnS5LaunchedInstance {
  ec2InstanceID: String
  firstBoot: String
  jobID: String
}

type AwsMgnS5LifeCycle {
  addedToServiceDateTime: String
  elapsedReplicationDuration: String
  firstByteDateTime: String
  lastCutover: AwsMgnS5LifeCycleLastCutover
  lastSeenByServiceDateTime: String
  lastTest: AwsMgnS5LifeCycleLastTest
  state: String
}

type AwsMgnS5LifeCycleLastCutover {
  finalized: AwsMgnS5LifeCycleLastCutoverFinalized
  initiated: AwsMgnS5LifeCycleLastCutoverInitiated
  reverted: AwsMgnS5LifeCycleLastCutoverReverted
}

type AwsMgnS5LifeCycleLastCutoverFinalized {
  apiCallDateTime: String
}

type AwsMgnS5LifeCycleLastCutoverInitiated {
  apiCallDateTime: String
  jobID: String
}

type AwsMgnS5LifeCycleLastCutoverReverted {
  apiCallDateTime: String
}

type AwsMgnS5LifeCycleLastTest {
  finalized: AwsMgnS5LifeCycleLastTestFinalized
  initiated: AwsMgnS5LifeCycleLastTestInitiated
  reverted: AwsMgnS5LifeCycleLastTestReverted
}

type AwsMgnS5LifeCycleLastTestFinalized {
  apiCallDateTime: String
}

type AwsMgnS5LifeCycleLastTestInitiated {
  apiCallDateTime: String
  jobID: String
}

type AwsMgnS5LifeCycleLastTestReverted {
  apiCallDateTime: String
}

type AwsMgnS5SourceProperties {
  cpus: [AwsMgnS5SourcePropertiesCpus]
  disks: [AwsMgnS5SourcePropertiesDisks]
  identificationHints: AwsMgnS5SourcePropertiesIdentificationHints
  lastUpdatedDateTime: String
  networkInterfaces: [AwsMgnS5SourcePropertiesNetworkInterfaces]
  os: AwsMgnS5SourcePropertiesOs
  ramBytes: JSON
  recommendedInstanceType: String
}

type AwsMgnS5SourcePropertiesCpus {
  cores: JSON
  modelName: String
}

type AwsMgnS5SourcePropertiesDisks {
  bytes: JSON
  deviceName: String
}

type AwsMgnS5SourcePropertiesIdentificationHints {
  awsInstanceID: String
  fqdn: String
  hostname: String
  vmWareUuid: String
}

type AwsMgnS5SourcePropertiesNetworkInterfaces {
  ips: [String]
  isPrimary: Boolean
  macAddress: String
}

type AwsMgnS5SourcePropertiesOs {
  fullString: String
}

input AwsMgnDescribeSourceServersInput {
  filters: AwsMgnDescribeSourceServersFiltersInput!
  maxResults: Int
  nextToken: String
}

input AwsMgnDescribeSourceServersFiltersInput {
  isArchived: Boolean
  sourceServerIDs: [String]
}

input AwsMgnDisconnectFromServiceInput {
  sourceServerID: String!
}

input AwsMgnFinalizeCutoverInput {
  sourceServerID: String!
}

input AwsMgnGetLaunchConfigurationInput {
  sourceServerID: String!
}

input AwsMgnGetReplicationConfigurationInput {
  sourceServerID: String!
}

type AwsMgnListTagsForResourceOutput {
  tags: JSON
}

input AwsMgnListTagsForResourceInput {
  resourceArn: String!
}

input AwsMgnMarkAsArchivedInput {
  sourceServerID: String!
}

input AwsMgnRetryDataReplicationInput {
  sourceServerID: String!
}

type AwsMgnStartCutoverOutput {
  job: AwsMgnS27
}

input AwsMgnStartCutoverInput {
  sourceServerIDs: [String]!
  tags: JSON
}

type AwsMgnStartTestOutput {
  job: AwsMgnS27
}

input AwsMgnStartTestInput {
  sourceServerIDs: [String]!
  tags: JSON
}

input AwsMgnTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

type AwsMgnTerminateTargetInstancesOutput {
  job: AwsMgnS27
}

input AwsMgnTerminateTargetInstancesInput {
  sourceServerIDs: [String]!
  tags: JSON
}

input AwsMgnUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsMgnUpdateLaunchConfigurationInput {
  copyPrivateIp: Boolean
  copyTags: Boolean
  launchDisposition: String
  licensing: AwsMgnS2sInput
  name: String
  sourceServerID: String!
  targetInstanceTypeRightSizingMethod: String
}

input AwsMgnS2sInput {
  osByol: Boolean
}

input AwsMgnUpdateReplicationConfigurationInput {
  associateDefaultSecurityGroup: Boolean
  bandwidthThrottling: JSON
  createPublicIP: Boolean
  dataPlaneRouting: String
  defaultLargeStagingDiskType: String
  ebsEncryption: String
  ebsEncryptionKeyArn: String
  name: String
  replicatedDisks: [AwsMgnS2xInput]
  replicationServerInstanceType: String
  replicationServersSecurityGroupsIDs: [String]
  sourceServerID: String!
  stagingAreaSubnetId: String
  stagingAreaTags: JSON
  useDedicatedReplicationServer: Boolean
}

input AwsMgnS2xInput {
  deviceName: String
  iops: JSON
  isBootDisk: Boolean
  stagingDiskType: String
}

input AwsMgnUpdateReplicationConfigurationTemplateInput {
  arn: String
  associateDefaultSecurityGroup: Boolean
  bandwidthThrottling: JSON
  createPublicIP: Boolean
  dataPlaneRouting: String
  defaultLargeStagingDiskType: String
  ebsEncryption: String
  ebsEncryptionKeyArn: String
  replicationConfigurationTemplateID: String!
  replicationServerInstanceType: String
  replicationServersSecurityGroupsIDs: [String]
  stagingAreaSubnetId: String
  stagingAreaTags: JSON
  useDedicatedReplicationServer: Boolean
}

"""AWS Migration Hub (2017-05-31)"""
type AwsMigrationHub {
  associateCreatedArtifact(input: AwsMigrationHubAssociateCreatedArtifactInput!, config: AwsConfig): JSON
  associateDiscoveredResource(input: AwsMigrationHubAssociateDiscoveredResourceInput!, config: AwsConfig): JSON
  createProgressUpdateStream(input: AwsMigrationHubCreateProgressUpdateStreamInput!, config: AwsConfig): JSON
  deleteProgressUpdateStream(input: AwsMigrationHubDeleteProgressUpdateStreamInput!, config: AwsConfig): JSON
  describeApplicationState(input: AwsMigrationHubDescribeApplicationStateInput!, config: AwsConfig): AwsMigrationHubDescribeApplicationStateOutput
  describeMigrationTask(input: AwsMigrationHubDescribeMigrationTaskInput!, config: AwsConfig): AwsMigrationHubDescribeMigrationTaskOutput
  disassociateCreatedArtifact(input: AwsMigrationHubDisassociateCreatedArtifactInput!, config: AwsConfig): JSON
  disassociateDiscoveredResource(input: AwsMigrationHubDisassociateDiscoveredResourceInput!, config: AwsConfig): JSON
  importMigrationTask(input: AwsMigrationHubImportMigrationTaskInput!, config: AwsConfig): JSON
  listApplicationStates(input: AwsMigrationHubListApplicationStatesInput, config: AwsConfig): AwsMigrationHubListApplicationStatesOutput
  listCreatedArtifacts(input: AwsMigrationHubListCreatedArtifactsInput!, config: AwsConfig): AwsMigrationHubListCreatedArtifactsOutput
  listDiscoveredResources(input: AwsMigrationHubListDiscoveredResourcesInput!, config: AwsConfig): AwsMigrationHubListDiscoveredResourcesOutput
  listMigrationTasks(input: AwsMigrationHubListMigrationTasksInput, config: AwsConfig): AwsMigrationHubListMigrationTasksOutput
  listProgressUpdateStreams(input: AwsMigrationHubListProgressUpdateStreamsInput, config: AwsConfig): AwsMigrationHubListProgressUpdateStreamsOutput
  notifyApplicationState(input: AwsMigrationHubNotifyApplicationStateInput!, config: AwsConfig): JSON
  notifyMigrationTaskState(input: AwsMigrationHubNotifyMigrationTaskStateInput!, config: AwsConfig): JSON
  putResourceAttributes(input: AwsMigrationHubPutResourceAttributesInput!, config: AwsConfig): JSON
}

input AwsMigrationHubAssociateCreatedArtifactInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  CreatedArtifact: AwsMigrationHubS4Input!
  DryRun: Boolean
}

input AwsMigrationHubS4Input {
  Name: String!
  Description: String
}

input AwsMigrationHubAssociateDiscoveredResourceInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  DiscoveredResource: AwsMigrationHubSaInput!
  DryRun: Boolean
}

input AwsMigrationHubSaInput {
  ConfigurationId: String!
  Description: String
}

input AwsMigrationHubCreateProgressUpdateStreamInput {
  ProgressUpdateStreamName: String!
  DryRun: Boolean
}

input AwsMigrationHubDeleteProgressUpdateStreamInput {
  ProgressUpdateStreamName: String!
  DryRun: Boolean
}

type AwsMigrationHubDescribeApplicationStateOutput {
  ApplicationStatus: String
  LastUpdatedTime: Date
}

input AwsMigrationHubDescribeApplicationStateInput {
  ApplicationId: String!
}

type AwsMigrationHubDescribeMigrationTaskOutput {
  MigrationTask: AwsMigrationHubDescribeMigrationTaskOutputMigrationTask
}

type AwsMigrationHubDescribeMigrationTaskOutputMigrationTask {
  ProgressUpdateStream: String
  MigrationTaskName: String
  Task: AwsMigrationHubSq
  UpdateDateTime: Date
  ResourceAttributeList: [AwsMigrationHubSv]
}

type AwsMigrationHubSq {
  Status: String!
  StatusDetail: String
  ProgressPercent: Int
}

type AwsMigrationHubSv {
  Type: String!
  Value: String!
}

input AwsMigrationHubDescribeMigrationTaskInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
}

input AwsMigrationHubDisassociateCreatedArtifactInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  CreatedArtifactName: String!
  DryRun: Boolean
}

input AwsMigrationHubDisassociateDiscoveredResourceInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  ConfigurationId: String!
  DryRun: Boolean
}

input AwsMigrationHubImportMigrationTaskInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  DryRun: Boolean
}

type AwsMigrationHubListApplicationStatesOutput {
  ApplicationStateList: [AwsMigrationHubListApplicationStatesOutputApplicationStateList]
  NextToken: String
}

type AwsMigrationHubListApplicationStatesOutputApplicationStateList {
  ApplicationId: String
  ApplicationStatus: String
  LastUpdatedTime: Date
}

input AwsMigrationHubListApplicationStatesInput {
  ApplicationIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsMigrationHubListCreatedArtifactsOutput {
  NextToken: String
  CreatedArtifactList: [AwsMigrationHubS4]
}

type AwsMigrationHubS4 {
  Name: String!
  Description: String
}

input AwsMigrationHubListCreatedArtifactsInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  NextToken: String
  MaxResults: Int
}

type AwsMigrationHubListDiscoveredResourcesOutput {
  NextToken: String
  DiscoveredResourceList: [AwsMigrationHubSa]
}

type AwsMigrationHubSa {
  ConfigurationId: String!
  Description: String
}

input AwsMigrationHubListDiscoveredResourcesInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  NextToken: String
  MaxResults: Int
}

type AwsMigrationHubListMigrationTasksOutput {
  NextToken: String
  MigrationTaskSummaryList: [AwsMigrationHubListMigrationTasksOutputMigrationTaskSummaryList]
}

type AwsMigrationHubListMigrationTasksOutputMigrationTaskSummaryList {
  ProgressUpdateStream: String
  MigrationTaskName: String
  Status: String
  ProgressPercent: Int
  StatusDetail: String
  UpdateDateTime: Date
}

input AwsMigrationHubListMigrationTasksInput {
  NextToken: String
  MaxResults: Int
  ResourceName: String
}

type AwsMigrationHubListProgressUpdateStreamsOutput {
  ProgressUpdateStreamSummaryList: [AwsMigrationHubListProgressUpdateStreamsOutputProgressUpdateStreamSummaryList]
  NextToken: String
}

type AwsMigrationHubListProgressUpdateStreamsOutputProgressUpdateStreamSummaryList {
  ProgressUpdateStreamName: String
}

input AwsMigrationHubListProgressUpdateStreamsInput {
  NextToken: String
  MaxResults: Int
}

input AwsMigrationHubNotifyApplicationStateInput {
  ApplicationId: String!
  Status: String!
  UpdateDateTime: Date
  DryRun: Boolean
}

input AwsMigrationHubNotifyMigrationTaskStateInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  Task: AwsMigrationHubSqInput!
  UpdateDateTime: Date!
  NextUpdateSeconds: Int!
  DryRun: Boolean
}

input AwsMigrationHubSqInput {
  Status: String!
  StatusDetail: String
  ProgressPercent: Int
}

input AwsMigrationHubPutResourceAttributesInput {
  ProgressUpdateStream: String!
  MigrationTaskName: String!
  ResourceAttributeList: [AwsMigrationHubSvInput]!
  DryRun: Boolean
}

input AwsMigrationHubSvInput {
  Type: String!
  Value: String!
}

"""AWS Migration Hub Config (2019-06-30)"""
type AwsMigrationHubConfig {
  createHomeRegionControl(input: AwsMigrationHubConfigCreateHomeRegionControlInput!, config: AwsConfig): AwsMigrationHubConfigCreateHomeRegionControlOutput
  describeHomeRegionControls(input: AwsMigrationHubConfigDescribeHomeRegionControlsInput, config: AwsConfig): AwsMigrationHubConfigDescribeHomeRegionControlsOutput
  getHomeRegion(input: JSON, config: AwsConfig): AwsMigrationHubConfigGetHomeRegionOutput
}

type AwsMigrationHubConfigCreateHomeRegionControlOutput {
  HomeRegionControl: AwsMigrationHubConfigS8
}

type AwsMigrationHubConfigS8 {
  ControlId: String
  HomeRegion: String
  Target: AwsMigrationHubConfigS3
  RequestedTime: Date
}

type AwsMigrationHubConfigS3 {
  Type: String!
  Id: String
}

input AwsMigrationHubConfigCreateHomeRegionControlInput {
  HomeRegion: String!
  Target: AwsMigrationHubConfigS3Input!
  DryRun: Boolean
}

input AwsMigrationHubConfigS3Input {
  Type: String!
  Id: String
}

type AwsMigrationHubConfigDescribeHomeRegionControlsOutput {
  HomeRegionControls: [AwsMigrationHubConfigS8]
  NextToken: String
}

input AwsMigrationHubConfigDescribeHomeRegionControlsInput {
  ControlId: String
  HomeRegion: String
  Target: AwsMigrationHubConfigS3Input
  MaxResults: Int
  NextToken: String
}

type AwsMigrationHubConfigGetHomeRegionOutput {
  HomeRegion: String
}

"""AWS Mobile (2017-07-01)"""
type AwsMobile {
  createProject(input: AwsMobileCreateProjectInput, config: AwsConfig): AwsMobileCreateProjectOutput
  deleteProject(input: AwsMobileDeleteProjectInput!, config: AwsConfig): AwsMobileDeleteProjectOutput
  describeBundle(input: AwsMobileDescribeBundleInput!, config: AwsConfig): AwsMobileDescribeBundleOutput
  describeProject(input: AwsMobileDescribeProjectInput!, config: AwsConfig): AwsMobileDescribeProjectOutput
  exportBundle(input: AwsMobileExportBundleInput!, config: AwsConfig): AwsMobileExportBundleOutput
  exportProject(input: AwsMobileExportProjectInput!, config: AwsConfig): AwsMobileExportProjectOutput
  listBundles(input: AwsMobileListBundlesInput, config: AwsConfig): AwsMobileListBundlesOutput
  listProjects(input: AwsMobileListProjectsInput, config: AwsConfig): AwsMobileListProjectsOutput
  updateProject(input: AwsMobileUpdateProjectInput!, config: AwsConfig): AwsMobileUpdateProjectOutput
}

type AwsMobileCreateProjectOutput {
  details: AwsMobileS7
}

type AwsMobileS7 {
  name: String
  projectId: String
  region: String
  state: String
  createdDate: Date
  lastUpdatedDate: Date
  consoleUrl: String
  resources: [AwsMobileSc]
}

type AwsMobileSc {
  type: String
  name: String
  arn: String
  feature: String
  attributes: JSON
}

input AwsMobileCreateProjectInput {
  name: String
  region: String
  contents: JSON
  snapshotId: String
}

type AwsMobileDeleteProjectOutput {
  deletedResources: [AwsMobileSc]
  orphanedResources: [AwsMobileSc]
}

input AwsMobileDeleteProjectInput {
  projectId: String!
}

type AwsMobileDescribeBundleOutput {
  details: AwsMobileSq
}

type AwsMobileSq {
  bundleId: String
  title: String
  version: String
  description: String
  iconUrl: String
  availablePlatforms: [String]
}

input AwsMobileDescribeBundleInput {
  bundleId: String!
}

type AwsMobileDescribeProjectOutput {
  details: AwsMobileS7
}

input AwsMobileDescribeProjectInput {
  projectId: String!
  syncFromResources: Boolean
}

type AwsMobileExportBundleOutput {
  downloadUrl: String
}

input AwsMobileExportBundleInput {
  bundleId: String!
  projectId: String
  platform: String
}

type AwsMobileExportProjectOutput {
  downloadUrl: String
  shareUrl: String
  snapshotId: String
}

input AwsMobileExportProjectInput {
  projectId: String!
}

type AwsMobileListBundlesOutput {
  bundleList: [AwsMobileSq]
  nextToken: String
}

input AwsMobileListBundlesInput {
  maxResults: Int
  nextToken: String
}

type AwsMobileListProjectsOutput {
  projects: [AwsMobileListProjectsOutputProjects]
  nextToken: String
}

type AwsMobileListProjectsOutputProjects {
  name: String
  projectId: String
}

input AwsMobileListProjectsInput {
  maxResults: Int
  nextToken: String
}

type AwsMobileUpdateProjectOutput {
  details: AwsMobileS7
}

input AwsMobileUpdateProjectInput {
  contents: JSON
  projectId: String!
}

"""Amazon Mobile Analytics (2014-06-05)"""
type AwsMobileAnalytics {
  putEvents(input: AwsMobileAnalyticsPutEventsInput!, config: AwsConfig): JSON
}

input AwsMobileAnalyticsPutEventsInput {
  events: [AwsMobileAnalyticsPutEventsEventsInput]!
  clientContext: String!
  clientContextEncoding: String
}

input AwsMobileAnalyticsPutEventsEventsInput {
  eventType: String!
  timestamp: String!
  session: AwsMobileAnalyticsPutEventsEventsSessionInput
  version: String
  attributes: JSON
  metrics: JSON
}

input AwsMobileAnalyticsPutEventsEventsSessionInput {
  id: String
  duration: JSON
  startTimestamp: String
  stopTimestamp: String
}

"""Amazon Neptune (2014-10-31)"""
type AwsNeptune {
  addRoleToDBCluster(input: AwsNeptuneAddRoleToDBClusterInput!, config: AwsConfig): JSON
  addSourceIdentifierToSubscription(input: AwsNeptuneAddSourceIdentifierToSubscriptionInput!, config: AwsConfig): AwsNeptuneAddSourceIdentifierToSubscriptionOutput
  addTagsToResource(input: AwsNeptuneAddTagsToResourceInput!, config: AwsConfig): JSON
  applyPendingMaintenanceAction(input: AwsNeptuneApplyPendingMaintenanceActionInput!, config: AwsConfig): AwsNeptuneApplyPendingMaintenanceActionOutput
  copyDBClusterParameterGroup(input: AwsNeptuneCopyDBClusterParameterGroupInput!, config: AwsConfig): AwsNeptuneCopyDBClusterParameterGroupOutput
  copyDBClusterSnapshot(input: AwsNeptuneCopyDBClusterSnapshotInput!, config: AwsConfig): AwsNeptuneCopyDBClusterSnapshotOutput
  copyDBParameterGroup(input: AwsNeptuneCopyDBParameterGroupInput!, config: AwsConfig): AwsNeptuneCopyDBParameterGroupOutput
  createDBCluster(input: AwsNeptuneCreateDBClusterInput!, config: AwsConfig): AwsNeptuneCreateDBClusterOutput
  createDBClusterEndpoint(input: AwsNeptuneCreateDBClusterEndpointInput!, config: AwsConfig): AwsNeptuneCreateDBClusterEndpointOutput
  createDBClusterParameterGroup(input: AwsNeptuneCreateDBClusterParameterGroupInput!, config: AwsConfig): AwsNeptuneCreateDBClusterParameterGroupOutput
  createDBClusterSnapshot(input: AwsNeptuneCreateDBClusterSnapshotInput!, config: AwsConfig): AwsNeptuneCreateDBClusterSnapshotOutput
  createDBInstance(input: AwsNeptuneCreateDBInstanceInput!, config: AwsConfig): AwsNeptuneCreateDBInstanceOutput
  createDBParameterGroup(input: AwsNeptuneCreateDBParameterGroupInput!, config: AwsConfig): AwsNeptuneCreateDBParameterGroupOutput
  createDBSubnetGroup(input: AwsNeptuneCreateDBSubnetGroupInput!, config: AwsConfig): AwsNeptuneCreateDBSubnetGroupOutput
  createEventSubscription(input: AwsNeptuneCreateEventSubscriptionInput!, config: AwsConfig): AwsNeptuneCreateEventSubscriptionOutput
  deleteDBCluster(input: AwsNeptuneDeleteDBClusterInput!, config: AwsConfig): AwsNeptuneDeleteDBClusterOutput
  deleteDBClusterEndpoint(input: AwsNeptuneDeleteDBClusterEndpointInput!, config: AwsConfig): AwsNeptuneDeleteDBClusterEndpointOutput
  deleteDBClusterParameterGroup(input: AwsNeptuneDeleteDBClusterParameterGroupInput!, config: AwsConfig): JSON
  deleteDBClusterSnapshot(input: AwsNeptuneDeleteDBClusterSnapshotInput!, config: AwsConfig): AwsNeptuneDeleteDBClusterSnapshotOutput
  deleteDBInstance(input: AwsNeptuneDeleteDBInstanceInput!, config: AwsConfig): AwsNeptuneDeleteDBInstanceOutput
  deleteDBParameterGroup(input: AwsNeptuneDeleteDBParameterGroupInput!, config: AwsConfig): JSON
  deleteDBSubnetGroup(input: AwsNeptuneDeleteDBSubnetGroupInput!, config: AwsConfig): JSON
  deleteEventSubscription(input: AwsNeptuneDeleteEventSubscriptionInput!, config: AwsConfig): AwsNeptuneDeleteEventSubscriptionOutput
  describeDBClusterEndpoints(input: AwsNeptuneDescribeDBClusterEndpointsInput, config: AwsConfig): AwsNeptuneDescribeDBClusterEndpointsOutput
  describeDBClusterParameterGroups(input: AwsNeptuneDescribeDBClusterParameterGroupsInput, config: AwsConfig): AwsNeptuneDescribeDBClusterParameterGroupsOutput
  describeDBClusterParameters(input: AwsNeptuneDescribeDBClusterParametersInput!, config: AwsConfig): AwsNeptuneDescribeDBClusterParametersOutput
  describeDBClusterSnapshotAttributes(input: AwsNeptuneDescribeDBClusterSnapshotAttributesInput!, config: AwsConfig): AwsNeptuneDescribeDBClusterSnapshotAttributesOutput
  describeDBClusterSnapshots(input: AwsNeptuneDescribeDBClusterSnapshotsInput, config: AwsConfig): AwsNeptuneDescribeDBClusterSnapshotsOutput
  describeDBClusters(input: AwsNeptuneDescribeDBClustersInput, config: AwsConfig): AwsNeptuneDescribeDBClustersOutput
  describeDBEngineVersions(input: AwsNeptuneDescribeDBEngineVersionsInput, config: AwsConfig): AwsNeptuneDescribeDBEngineVersionsOutput
  describeDBInstances(input: AwsNeptuneDescribeDBInstancesInput, config: AwsConfig): AwsNeptuneDescribeDBInstancesOutput
  describeDBParameterGroups(input: AwsNeptuneDescribeDBParameterGroupsInput, config: AwsConfig): AwsNeptuneDescribeDBParameterGroupsOutput
  describeDBParameters(input: AwsNeptuneDescribeDBParametersInput!, config: AwsConfig): AwsNeptuneDescribeDBParametersOutput
  describeDBSubnetGroups(input: AwsNeptuneDescribeDBSubnetGroupsInput, config: AwsConfig): AwsNeptuneDescribeDBSubnetGroupsOutput
  describeEngineDefaultClusterParameters(input: AwsNeptuneDescribeEngineDefaultClusterParametersInput!, config: AwsConfig): AwsNeptuneDescribeEngineDefaultClusterParametersOutput
  describeEngineDefaultParameters(input: AwsNeptuneDescribeEngineDefaultParametersInput!, config: AwsConfig): AwsNeptuneDescribeEngineDefaultParametersOutput
  describeEventCategories(input: AwsNeptuneDescribeEventCategoriesInput, config: AwsConfig): AwsNeptuneDescribeEventCategoriesOutput
  describeEventSubscriptions(input: AwsNeptuneDescribeEventSubscriptionsInput, config: AwsConfig): AwsNeptuneDescribeEventSubscriptionsOutput
  describeEvents(input: AwsNeptuneDescribeEventsInput, config: AwsConfig): AwsNeptuneDescribeEventsOutput
  describeOrderableDBInstanceOptions(input: AwsNeptuneDescribeOrderableDBInstanceOptionsInput!, config: AwsConfig): AwsNeptuneDescribeOrderableDBInstanceOptionsOutput
  describePendingMaintenanceActions(input: AwsNeptuneDescribePendingMaintenanceActionsInput, config: AwsConfig): AwsNeptuneDescribePendingMaintenanceActionsOutput
  describeValidDBInstanceModifications(input: AwsNeptuneDescribeValidDBInstanceModificationsInput!, config: AwsConfig): AwsNeptuneDescribeValidDBInstanceModificationsOutput
  failoverDBCluster(input: AwsNeptuneFailoverDBClusterInput, config: AwsConfig): AwsNeptuneFailoverDBClusterOutput
  listTagsForResource(input: AwsNeptuneListTagsForResourceInput!, config: AwsConfig): AwsNeptuneListTagsForResourceOutput
  modifyDBCluster(input: AwsNeptuneModifyDBClusterInput!, config: AwsConfig): AwsNeptuneModifyDBClusterOutput
  modifyDBClusterEndpoint(input: AwsNeptuneModifyDBClusterEndpointInput!, config: AwsConfig): AwsNeptuneModifyDBClusterEndpointOutput
  modifyDBClusterParameterGroup(input: AwsNeptuneModifyDBClusterParameterGroupInput!, config: AwsConfig): JSON
  modifyDBClusterSnapshotAttribute(input: AwsNeptuneModifyDBClusterSnapshotAttributeInput!, config: AwsConfig): AwsNeptuneModifyDBClusterSnapshotAttributeOutput
  modifyDBInstance(input: AwsNeptuneModifyDBInstanceInput!, config: AwsConfig): AwsNeptuneModifyDBInstanceOutput
  modifyDBParameterGroup(input: AwsNeptuneModifyDBParameterGroupInput!, config: AwsConfig): JSON
  modifyDBSubnetGroup(input: AwsNeptuneModifyDBSubnetGroupInput!, config: AwsConfig): AwsNeptuneModifyDBSubnetGroupOutput
  modifyEventSubscription(input: AwsNeptuneModifyEventSubscriptionInput!, config: AwsConfig): AwsNeptuneModifyEventSubscriptionOutput
  promoteReadReplicaDBCluster(input: AwsNeptunePromoteReadReplicaDBClusterInput!, config: AwsConfig): AwsNeptunePromoteReadReplicaDBClusterOutput
  rebootDBInstance(input: AwsNeptuneRebootDBInstanceInput!, config: AwsConfig): AwsNeptuneRebootDBInstanceOutput
  removeRoleFromDBCluster(input: AwsNeptuneRemoveRoleFromDBClusterInput!, config: AwsConfig): JSON
  removeSourceIdentifierFromSubscription(input: AwsNeptuneRemoveSourceIdentifierFromSubscriptionInput!, config: AwsConfig): AwsNeptuneRemoveSourceIdentifierFromSubscriptionOutput
  removeTagsFromResource(input: AwsNeptuneRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetDBClusterParameterGroup(input: AwsNeptuneResetDBClusterParameterGroupInput!, config: AwsConfig): JSON
  resetDBParameterGroup(input: AwsNeptuneResetDBParameterGroupInput!, config: AwsConfig): JSON
  restoreDBClusterFromSnapshot(input: AwsNeptuneRestoreDBClusterFromSnapshotInput!, config: AwsConfig): AwsNeptuneRestoreDBClusterFromSnapshotOutput
  restoreDBClusterToPointInTime(input: AwsNeptuneRestoreDBClusterToPointInTimeInput!, config: AwsConfig): AwsNeptuneRestoreDBClusterToPointInTimeOutput
  startDBCluster(input: AwsNeptuneStartDBClusterInput!, config: AwsConfig): AwsNeptuneStartDBClusterOutput
  stopDBCluster(input: AwsNeptuneStopDBClusterInput!, config: AwsConfig): AwsNeptuneStopDBClusterOutput
}

input AwsNeptuneAddRoleToDBClusterInput {
  DBClusterIdentifier: String!
  RoleArn: String!
  FeatureName: String
}

type AwsNeptuneAddSourceIdentifierToSubscriptionOutput {
  EventSubscription: AwsNeptuneS5
}

type AwsNeptuneS5 {
  CustomerAwsId: String
  CustSubscriptionId: String
  SnsTopicArn: String
  Status: String
  SubscriptionCreationTime: String
  SourceType: String
  SourceIdsList: [String]
  EventCategoriesList: [String]
  Enabled: Boolean
  EventSubscriptionArn: String
}

input AwsNeptuneAddSourceIdentifierToSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsNeptuneAddTagsToResourceInput {
  ResourceName: String!
  Tags: [AwsNeptuneSaInput]!
}

input AwsNeptuneSaInput {
  Key: String
  Value: String
}

type AwsNeptuneApplyPendingMaintenanceActionOutput {
  ResourcePendingMaintenanceActions: AwsNeptuneSe
}

type AwsNeptuneSe {
  ResourceIdentifier: String
  PendingMaintenanceActionDetails: [AwsNeptuneSePendingMaintenanceActionDetails]
}

type AwsNeptuneSePendingMaintenanceActionDetails {
  Action: String
  AutoAppliedAfterDate: Date
  ForcedApplyDate: Date
  OptInStatus: String
  CurrentApplyDate: Date
  Description: String
}

input AwsNeptuneApplyPendingMaintenanceActionInput {
  ResourceIdentifier: String!
  ApplyAction: String!
  OptInType: String!
}

type AwsNeptuneCopyDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsNeptuneSk
}

type AwsNeptuneSk {
  DBClusterParameterGroupName: String
  DBParameterGroupFamily: String
  Description: String
  DBClusterParameterGroupArn: String
}

input AwsNeptuneCopyDBClusterParameterGroupInput {
  SourceDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupDescription: String!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCopyDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsNeptuneSo
}

type AwsNeptuneSo {
  AvailabilityZones: [String]
  DBClusterSnapshotIdentifier: String
  DBClusterIdentifier: String
  SnapshotCreateTime: Date
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  VpcId: String
  ClusterCreateTime: Date
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  PercentProgress: Int
  StorageEncrypted: Boolean
  KmsKeyId: String
  DBClusterSnapshotArn: String
  SourceDBClusterSnapshotArn: String
  IAMDatabaseAuthenticationEnabled: Boolean
}

input AwsNeptuneCopyDBClusterSnapshotInput {
  SourceDBClusterSnapshotIdentifier: String!
  TargetDBClusterSnapshotIdentifier: String!
  KmsKeyId: String
  PreSignedUrl: String
  CopyTags: Boolean
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCopyDBParameterGroupOutput {
  DBParameterGroup: AwsNeptuneSt
}

type AwsNeptuneSt {
  DBParameterGroupName: String
  DBParameterGroupFamily: String
  Description: String
  DBParameterGroupArn: String
}

input AwsNeptuneCopyDBParameterGroupInput {
  SourceDBParameterGroupIdentifier: String!
  TargetDBParameterGroupIdentifier: String!
  TargetDBParameterGroupDescription: String!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

type AwsNeptuneSz {
  AllocatedStorage: Int
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  CharacterSetName: String
  DatabaseName: String
  DBClusterIdentifier: String
  DBClusterParameterGroup: String
  DBSubnetGroup: String
  Status: String
  PercentProgress: String
  EarliestRestorableTime: Date
  Endpoint: String
  ReaderEndpoint: String
  MultiAZ: Boolean
  Engine: String
  EngineVersion: String
  LatestRestorableTime: Date
  Port: Int
  MasterUsername: String
  DBClusterOptionGroupMemberships: [AwsNeptuneSzDBClusterOptionGroupMemberships]
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReplicationSourceIdentifier: String
  ReadReplicaIdentifiers: [String]
  DBClusterMembers: [AwsNeptuneSzDBClusterMembers]
  VpcSecurityGroups: [AwsNeptuneS15]
  HostedZoneId: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterResourceId: String
  DBClusterArn: String
  AssociatedRoles: [AwsNeptuneSzAssociatedRoles]
  IAMDatabaseAuthenticationEnabled: Boolean
  CloneGroupId: String
  ClusterCreateTime: Date
  CopyTagsToSnapshot: Boolean
  EnabledCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
  CrossAccountClone: Boolean
  AutomaticRestartTime: Date
}

type AwsNeptuneSzDBClusterOptionGroupMemberships {
  DBClusterOptionGroupName: String
  Status: String
}

type AwsNeptuneSzDBClusterMembers {
  DBInstanceIdentifier: String
  IsClusterWriter: Boolean
  DBClusterParameterGroupStatus: String
  PromotionTier: Int
}

type AwsNeptuneS15 {
  VpcSecurityGroupId: String
  Status: String
}

type AwsNeptuneSzAssociatedRoles {
  RoleArn: String
  Status: String
  FeatureName: String
}

input AwsNeptuneCreateDBClusterInput {
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  CharacterSetName: String
  CopyTagsToSnapshot: Boolean
  DatabaseName: String
  DBClusterIdentifier: String!
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  DBSubnetGroupName: String
  Engine: String!
  EngineVersion: String
  Port: Int
  MasterUsername: String
  MasterUserPassword: String
  OptionGroupName: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReplicationSourceIdentifier: String
  Tags: [AwsNeptuneSaInput]
  StorageEncrypted: Boolean
  KmsKeyId: String
  PreSignedUrl: String
  EnableIAMDatabaseAuthentication: Boolean
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsNeptuneCreateDBClusterEndpointOutput {
  DBClusterEndpointIdentifier: String
  DBClusterIdentifier: String
  DBClusterEndpointResourceIdentifier: String
  Endpoint: String
  Status: String
  EndpointType: String
  CustomEndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
  DBClusterEndpointArn: String
}

input AwsNeptuneCreateDBClusterEndpointInput {
  DBClusterIdentifier: String!
  DBClusterEndpointIdentifier: String!
  EndpointType: String!
  StaticMembers: [String]
  ExcludedMembers: [String]
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsNeptuneSk
}

input AwsNeptuneCreateDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  DBParameterGroupFamily: String!
  Description: String!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsNeptuneSo
}

input AwsNeptuneCreateDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
  DBClusterIdentifier: String!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateDBInstanceOutput {
  DBInstance: AwsNeptuneS1j
}

type AwsNeptuneS1j {
  DBInstanceIdentifier: String
  DBInstanceClass: String
  Engine: String
  DBInstanceStatus: String
  MasterUsername: String
  DBName: String
  Endpoint: AwsNeptuneS1jEndpoint
  AllocatedStorage: Int
  InstanceCreateTime: Date
  PreferredBackupWindow: String
  BackupRetentionPeriod: Int
  DBSecurityGroups: [AwsNeptuneS1jDBSecurityGroups]
  VpcSecurityGroups: [AwsNeptuneS15]
  DBParameterGroups: [AwsNeptuneS1jDBParameterGroups]
  AvailabilityZone: String
  DBSubnetGroup: AwsNeptuneS1p
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsNeptuneS1jPendingModifiedValues
  LatestRestorableTime: Date
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  ReadReplicaSourceDBInstanceIdentifier: String
  ReadReplicaDBInstanceIdentifiers: [String]
  ReadReplicaDBClusterIdentifiers: [String]
  LicenseModel: String
  Iops: Int
  OptionGroupMemberships: [AwsNeptuneS1jOptionGroupMemberships]
  CharacterSetName: String
  SecondaryAvailabilityZone: String
  PubliclyAccessible: Boolean
  StatusInfos: [AwsNeptuneS1jStatusInfos]
  StorageType: String
  TdeCredentialArn: String
  DbInstancePort: Int
  DBClusterIdentifier: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbiResourceId: String
  CACertificateIdentifier: String
  DomainMemberships: [AwsNeptuneS1jDomainMemberships]
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  EnhancedMonitoringResourceArn: String
  MonitoringRoleArn: String
  PromotionTier: Int
  DBInstanceArn: String
  Timezone: String
  IAMDatabaseAuthenticationEnabled: Boolean
  PerformanceInsightsEnabled: Boolean
  PerformanceInsightsKMSKeyId: String
  EnabledCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsNeptuneS1jEndpoint {
  Address: String
  Port: Int
  HostedZoneId: String
}

type AwsNeptuneS1jDBSecurityGroups {
  DBSecurityGroupName: String
  Status: String
}

type AwsNeptuneS1jDBParameterGroups {
  DBParameterGroupName: String
  ParameterApplyStatus: String
}

type AwsNeptuneS1p {
  DBSubnetGroupName: String
  DBSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsNeptuneS1pSubnets]
  DBSubnetGroupArn: String
}

type AwsNeptuneS1pSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsNeptuneS1s
  SubnetStatus: String
}

type AwsNeptuneS1s {
  Name: String
}

type AwsNeptuneS1jPendingModifiedValues {
  DBInstanceClass: String
  AllocatedStorage: Int
  MasterUserPassword: String
  Port: Int
  BackupRetentionPeriod: Int
  MultiAZ: Boolean
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  DBInstanceIdentifier: String
  StorageType: String
  CACertificateIdentifier: String
  DBSubnetGroupName: String
  PendingCloudwatchLogsExports: AwsNeptuneS1jPendingModifiedValuesPendingCloudwatchLogsExports
}

type AwsNeptuneS1jPendingModifiedValuesPendingCloudwatchLogsExports {
  LogTypesToEnable: [String]
  LogTypesToDisable: [String]
}

type AwsNeptuneS1jOptionGroupMemberships {
  OptionGroupName: String
  Status: String
}

type AwsNeptuneS1jStatusInfos {
  StatusType: String
  Normal: Boolean
  Status: String
  Message: String
}

type AwsNeptuneS1jDomainMemberships {
  Domain: String
  Status: String
  FQDN: String
  IAMRoleName: String
}

input AwsNeptuneCreateDBInstanceInput {
  DBName: String
  DBInstanceIdentifier: String!
  AllocatedStorage: Int
  DBInstanceClass: String!
  Engine: String!
  MasterUsername: String
  MasterUserPassword: String
  DBSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  AvailabilityZone: String
  DBSubnetGroupName: String
  PreferredMaintenanceWindow: String
  DBParameterGroupName: String
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
  Port: Int
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  CharacterSetName: String
  PubliclyAccessible: Boolean
  Tags: [AwsNeptuneSaInput]
  DBClusterIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  Domain: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  DomainIAMRoleName: String
  PromotionTier: Int
  Timezone: String
  EnableIAMDatabaseAuthentication: Boolean
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
}

type AwsNeptuneCreateDBParameterGroupOutput {
  DBParameterGroup: AwsNeptuneSt
}

input AwsNeptuneCreateDBParameterGroupInput {
  DBParameterGroupName: String!
  DBParameterGroupFamily: String!
  Description: String!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateDBSubnetGroupOutput {
  DBSubnetGroup: AwsNeptuneS1p
}

input AwsNeptuneCreateDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String!
  SubnetIds: [String]!
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneCreateEventSubscriptionOutput {
  EventSubscription: AwsNeptuneS5
}

input AwsNeptuneCreateEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String!
  SourceType: String
  EventCategories: [String]
  SourceIds: [String]
  Enabled: Boolean
  Tags: [AwsNeptuneSaInput]
}

type AwsNeptuneDeleteDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneDeleteDBClusterInput {
  DBClusterIdentifier: String!
  SkipFinalSnapshot: Boolean
  FinalDBSnapshotIdentifier: String
}

type AwsNeptuneDeleteDBClusterEndpointOutput {
  DBClusterEndpointIdentifier: String
  DBClusterIdentifier: String
  DBClusterEndpointResourceIdentifier: String
  Endpoint: String
  Status: String
  EndpointType: String
  CustomEndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
  DBClusterEndpointArn: String
}

input AwsNeptuneDeleteDBClusterEndpointInput {
  DBClusterEndpointIdentifier: String!
}

input AwsNeptuneDeleteDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
}

type AwsNeptuneDeleteDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsNeptuneSo
}

input AwsNeptuneDeleteDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsNeptuneDeleteDBInstanceOutput {
  DBInstance: AwsNeptuneS1j
}

input AwsNeptuneDeleteDBInstanceInput {
  DBInstanceIdentifier: String!
  SkipFinalSnapshot: Boolean
  FinalDBSnapshotIdentifier: String
}

input AwsNeptuneDeleteDBParameterGroupInput {
  DBParameterGroupName: String!
}

input AwsNeptuneDeleteDBSubnetGroupInput {
  DBSubnetGroupName: String!
}

type AwsNeptuneDeleteEventSubscriptionOutput {
  EventSubscription: AwsNeptuneS5
}

input AwsNeptuneDeleteEventSubscriptionInput {
  SubscriptionName: String!
}

type AwsNeptuneDescribeDBClusterEndpointsOutput {
  Marker: String
  DBClusterEndpoints: [AwsNeptuneDescribeDBClusterEndpointsOutputDBClusterEndpoints]
}

type AwsNeptuneDescribeDBClusterEndpointsOutputDBClusterEndpoints {
  DBClusterEndpointIdentifier: String
  DBClusterIdentifier: String
  DBClusterEndpointResourceIdentifier: String
  Endpoint: String
  Status: String
  EndpointType: String
  CustomEndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
  DBClusterEndpointArn: String
}

input AwsNeptuneDescribeDBClusterEndpointsInput {
  DBClusterIdentifier: String
  DBClusterEndpointIdentifier: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

input AwsNeptuneS2oInput {
  Name: String!
  Values: [String]!
}

type AwsNeptuneDescribeDBClusterParameterGroupsOutput {
  Marker: String
  DBClusterParameterGroups: [AwsNeptuneSk]
}

input AwsNeptuneDescribeDBClusterParameterGroupsInput {
  DBClusterParameterGroupName: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBClusterParametersOutput {
  Parameters: [AwsNeptuneS2z]
  Marker: String
}

type AwsNeptuneS2z {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
}

input AwsNeptuneDescribeDBClusterParametersInput {
  DBClusterParameterGroupName: String!
  Source: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBClusterSnapshotAttributesOutput {
  DBClusterSnapshotAttributesResult: AwsNeptuneS34
}

type AwsNeptuneS34 {
  DBClusterSnapshotIdentifier: String
  DBClusterSnapshotAttributes: [AwsNeptuneS34DBClusterSnapshotAttributes]
}

type AwsNeptuneS34DBClusterSnapshotAttributes {
  AttributeName: String
  AttributeValues: [String]
}

input AwsNeptuneDescribeDBClusterSnapshotAttributesInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsNeptuneDescribeDBClusterSnapshotsOutput {
  Marker: String
  DBClusterSnapshots: [AwsNeptuneSo]
}

input AwsNeptuneDescribeDBClusterSnapshotsInput {
  DBClusterIdentifier: String
  DBClusterSnapshotIdentifier: String
  SnapshotType: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
  IncludeShared: Boolean
  IncludePublic: Boolean
}

type AwsNeptuneDescribeDBClustersOutput {
  Marker: String
  DBClusters: [AwsNeptuneSz]
}

input AwsNeptuneDescribeDBClustersInput {
  DBClusterIdentifier: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBEngineVersionsOutput {
  Marker: String
  DBEngineVersions: [AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersions]
}

type AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersions {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  DBEngineDescription: String
  DBEngineVersionDescription: String
  DefaultCharacterSet: AwsNeptuneS3i
  SupportedCharacterSets: [AwsNeptuneS3i]
  ValidUpgradeTarget: [AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget]
  SupportedTimezones: [AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersionsSupportedTimezones]
  ExportableLogTypes: [String]
  SupportsLogExportsToCloudwatchLogs: Boolean
  SupportsReadReplica: Boolean
}

type AwsNeptuneS3i {
  CharacterSetName: String
  CharacterSetDescription: String
}

type AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget {
  Engine: String
  EngineVersion: String
  Description: String
  AutoUpgrade: Boolean
  IsMajorVersionUpgrade: Boolean
}

type AwsNeptuneDescribeDBEngineVersionsOutputDBEngineVersionsSupportedTimezones {
  TimezoneName: String
}

input AwsNeptuneDescribeDBEngineVersionsInput {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
  DefaultOnly: Boolean
  ListSupportedCharacterSets: Boolean
  ListSupportedTimezones: Boolean
}

type AwsNeptuneDescribeDBInstancesOutput {
  Marker: String
  DBInstances: [AwsNeptuneS1j]
}

input AwsNeptuneDescribeDBInstancesInput {
  DBInstanceIdentifier: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBParameterGroupsOutput {
  Marker: String
  DBParameterGroups: [AwsNeptuneSt]
}

input AwsNeptuneDescribeDBParameterGroupsInput {
  DBParameterGroupName: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBParametersOutput {
  Parameters: [AwsNeptuneS2z]
  Marker: String
}

input AwsNeptuneDescribeDBParametersInput {
  DBParameterGroupName: String!
  Source: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeDBSubnetGroupsOutput {
  Marker: String
  DBSubnetGroups: [AwsNeptuneS1p]
}

input AwsNeptuneDescribeDBSubnetGroupsInput {
  DBSubnetGroupName: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeEngineDefaultClusterParametersOutput {
  EngineDefaults: AwsNeptuneS41
}

type AwsNeptuneS41 {
  DBParameterGroupFamily: String
  Marker: String
  Parameters: [AwsNeptuneS2z]
}

input AwsNeptuneDescribeEngineDefaultClusterParametersInput {
  DBParameterGroupFamily: String!
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeEngineDefaultParametersOutput {
  EngineDefaults: AwsNeptuneS41
}

input AwsNeptuneDescribeEngineDefaultParametersInput {
  DBParameterGroupFamily: String!
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeEventCategoriesOutput {
  EventCategoriesMapList: [AwsNeptuneDescribeEventCategoriesOutputEventCategoriesMapList]
}

type AwsNeptuneDescribeEventCategoriesOutputEventCategoriesMapList {
  SourceType: String
  EventCategories: [String]
}

input AwsNeptuneDescribeEventCategoriesInput {
  SourceType: String
  Filters: [AwsNeptuneS2oInput]
}

type AwsNeptuneDescribeEventSubscriptionsOutput {
  Marker: String
  EventSubscriptionsList: [AwsNeptuneS5]
}

input AwsNeptuneDescribeEventSubscriptionsInput {
  SubscriptionName: String
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeEventsOutput {
  Marker: String
  Events: [AwsNeptuneDescribeEventsOutputEvents]
}

type AwsNeptuneDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  EventCategories: [String]
  Date: Date
  SourceArn: String
}

input AwsNeptuneDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  EventCategories: [String]
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribeOrderableDBInstanceOptionsOutput {
  OrderableDBInstanceOptions: [AwsNeptuneDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions]
  Marker: String
}

type AwsNeptuneDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions {
  Engine: String
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  AvailabilityZones: [AwsNeptuneS1s]
  MultiAZCapable: Boolean
  ReadReplicaCapable: Boolean
  Vpc: Boolean
  SupportsStorageEncryption: Boolean
  StorageType: String
  SupportsIops: Boolean
  SupportsEnhancedMonitoring: Boolean
  SupportsIAMDatabaseAuthentication: Boolean
  SupportsPerformanceInsights: Boolean
  MinStorageSize: Int
  MaxStorageSize: Int
  MinIopsPerDbInstance: Int
  MaxIopsPerDbInstance: Int
  MinIopsPerGib: JSON
  MaxIopsPerGib: JSON
}

input AwsNeptuneDescribeOrderableDBInstanceOptionsInput {
  Engine: String!
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  Vpc: Boolean
  Filters: [AwsNeptuneS2oInput]
  MaxRecords: Int
  Marker: String
}

type AwsNeptuneDescribePendingMaintenanceActionsOutput {
  PendingMaintenanceActions: [AwsNeptuneSe]
  Marker: String
}

input AwsNeptuneDescribePendingMaintenanceActionsInput {
  ResourceIdentifier: String
  Filters: [AwsNeptuneS2oInput]
  Marker: String
  MaxRecords: Int
}

type AwsNeptuneDescribeValidDBInstanceModificationsOutput {
  ValidDBInstanceModificationsMessage: AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessage
}

type AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessage {
  Storage: [AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorage]
}

type AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorage {
  StorageType: String
  StorageSize: [AwsNeptuneS4u]
  ProvisionedIops: [AwsNeptuneS4u]
  IopsToStorageRatio: [AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorageIopsToStorageRatio]
}

type AwsNeptuneS4u {
  From: Int
  To: Int
  Step: Int
}

type AwsNeptuneDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorageIopsToStorageRatio {
  From: JSON
  To: JSON
}

input AwsNeptuneDescribeValidDBInstanceModificationsInput {
  DBInstanceIdentifier: String!
}

type AwsNeptuneFailoverDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneFailoverDBClusterInput {
  DBClusterIdentifier: String
  TargetDBInstanceIdentifier: String
}

type AwsNeptuneListTagsForResourceOutput {
  TagList: [AwsNeptuneSa]
}

type AwsNeptuneSa {
  Key: String
  Value: String
}

input AwsNeptuneListTagsForResourceInput {
  ResourceName: String!
  Filters: [AwsNeptuneS2oInput]
}

type AwsNeptuneModifyDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneModifyDBClusterInput {
  DBClusterIdentifier: String!
  NewDBClusterIdentifier: String
  ApplyImmediately: Boolean
  BackupRetentionPeriod: Int
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  Port: Int
  MasterUserPassword: String
  OptionGroupName: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  EnableIAMDatabaseAuthentication: Boolean
  CloudwatchLogsExportConfiguration: AwsNeptuneS54Input
  EngineVersion: String
  DeletionProtection: Boolean
  CopyTagsToSnapshot: Boolean
}

input AwsNeptuneS54Input {
  EnableLogTypes: [String]
  DisableLogTypes: [String]
}

type AwsNeptuneModifyDBClusterEndpointOutput {
  DBClusterEndpointIdentifier: String
  DBClusterIdentifier: String
  DBClusterEndpointResourceIdentifier: String
  Endpoint: String
  Status: String
  EndpointType: String
  CustomEndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
  DBClusterEndpointArn: String
}

input AwsNeptuneModifyDBClusterEndpointInput {
  DBClusterEndpointIdentifier: String!
  EndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
}

input AwsNeptuneModifyDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  Parameters: [AwsNeptuneS2zInput]!
}

input AwsNeptuneS2zInput {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
}

type AwsNeptuneModifyDBClusterSnapshotAttributeOutput {
  DBClusterSnapshotAttributesResult: AwsNeptuneS34
}

input AwsNeptuneModifyDBClusterSnapshotAttributeInput {
  DBClusterSnapshotIdentifier: String!
  AttributeName: String!
  ValuesToAdd: [String]
  ValuesToRemove: [String]
}

type AwsNeptuneModifyDBInstanceOutput {
  DBInstance: AwsNeptuneS1j
}

input AwsNeptuneModifyDBInstanceInput {
  DBInstanceIdentifier: String!
  AllocatedStorage: Int
  DBInstanceClass: String
  DBSubnetGroupName: String
  DBSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  ApplyImmediately: Boolean
  MasterUserPassword: String
  DBParameterGroupName: String
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  MultiAZ: Boolean
  EngineVersion: String
  AllowMajorVersionUpgrade: Boolean
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  NewDBInstanceIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  CACertificateIdentifier: String
  Domain: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  DBPortNumber: Int
  PubliclyAccessible: Boolean
  MonitoringRoleArn: String
  DomainIAMRoleName: String
  PromotionTier: Int
  EnableIAMDatabaseAuthentication: Boolean
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  CloudwatchLogsExportConfiguration: AwsNeptuneS54Input
  DeletionProtection: Boolean
}

input AwsNeptuneModifyDBParameterGroupInput {
  DBParameterGroupName: String!
  Parameters: [AwsNeptuneS2zInput]!
}

type AwsNeptuneModifyDBSubnetGroupOutput {
  DBSubnetGroup: AwsNeptuneS1p
}

input AwsNeptuneModifyDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String
  SubnetIds: [String]!
}

type AwsNeptuneModifyEventSubscriptionOutput {
  EventSubscription: AwsNeptuneS5
}

input AwsNeptuneModifyEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String
  SourceType: String
  EventCategories: [String]
  Enabled: Boolean
}

type AwsNeptunePromoteReadReplicaDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptunePromoteReadReplicaDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsNeptuneRebootDBInstanceOutput {
  DBInstance: AwsNeptuneS1j
}

input AwsNeptuneRebootDBInstanceInput {
  DBInstanceIdentifier: String!
  ForceFailover: Boolean
}

input AwsNeptuneRemoveRoleFromDBClusterInput {
  DBClusterIdentifier: String!
  RoleArn: String!
  FeatureName: String
}

type AwsNeptuneRemoveSourceIdentifierFromSubscriptionOutput {
  EventSubscription: AwsNeptuneS5
}

input AwsNeptuneRemoveSourceIdentifierFromSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsNeptuneRemoveTagsFromResourceInput {
  ResourceName: String!
  TagKeys: [String]!
}

input AwsNeptuneResetDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsNeptuneS2zInput]
}

input AwsNeptuneResetDBParameterGroupInput {
  DBParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsNeptuneS2zInput]
}

type AwsNeptuneRestoreDBClusterFromSnapshotOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneRestoreDBClusterFromSnapshotInput {
  AvailabilityZones: [String]
  DBClusterIdentifier: String!
  SnapshotIdentifier: String!
  Engine: String!
  EngineVersion: String
  Port: Int
  DBSubnetGroupName: String
  DatabaseName: String
  OptionGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsNeptuneSaInput]
  KmsKeyId: String
  EnableIAMDatabaseAuthentication: Boolean
  EnableCloudwatchLogsExports: [String]
  DBClusterParameterGroupName: String
  DeletionProtection: Boolean
  CopyTagsToSnapshot: Boolean
}

type AwsNeptuneRestoreDBClusterToPointInTimeOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneRestoreDBClusterToPointInTimeInput {
  DBClusterIdentifier: String!
  RestoreType: String
  SourceDBClusterIdentifier: String!
  RestoreToTime: Date
  UseLatestRestorableTime: Boolean
  Port: Int
  DBSubnetGroupName: String
  OptionGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsNeptuneSaInput]
  KmsKeyId: String
  EnableIAMDatabaseAuthentication: Boolean
  EnableCloudwatchLogsExports: [String]
  DBClusterParameterGroupName: String
  DeletionProtection: Boolean
}

type AwsNeptuneStartDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneStartDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsNeptuneStopDBClusterOutput {
  DBCluster: AwsNeptuneSz
}

input AwsNeptuneStopDBClusterInput {
  DBClusterIdentifier: String!
}

"""AWS Network Firewall (2020-11-12)"""
type AwsNetworkFirewall {
  associateFirewallPolicy(input: AwsNetworkFirewallAssociateFirewallPolicyInput!, config: AwsConfig): AwsNetworkFirewallAssociateFirewallPolicyOutput
  associateSubnets(input: AwsNetworkFirewallAssociateSubnetsInput!, config: AwsConfig): AwsNetworkFirewallAssociateSubnetsOutput
  createFirewall(input: AwsNetworkFirewallCreateFirewallInput!, config: AwsConfig): AwsNetworkFirewallCreateFirewallOutput
  createFirewallPolicy(input: AwsNetworkFirewallCreateFirewallPolicyInput!, config: AwsConfig): AwsNetworkFirewallCreateFirewallPolicyOutput
  createRuleGroup(input: AwsNetworkFirewallCreateRuleGroupInput!, config: AwsConfig): AwsNetworkFirewallCreateRuleGroupOutput
  deleteFirewall(input: AwsNetworkFirewallDeleteFirewallInput, config: AwsConfig): AwsNetworkFirewallDeleteFirewallOutput
  deleteFirewallPolicy(input: AwsNetworkFirewallDeleteFirewallPolicyInput, config: AwsConfig): AwsNetworkFirewallDeleteFirewallPolicyOutput
  deleteResourcePolicy(input: AwsNetworkFirewallDeleteResourcePolicyInput!, config: AwsConfig): JSON
  deleteRuleGroup(input: AwsNetworkFirewallDeleteRuleGroupInput, config: AwsConfig): AwsNetworkFirewallDeleteRuleGroupOutput
  describeFirewall(input: AwsNetworkFirewallDescribeFirewallInput, config: AwsConfig): AwsNetworkFirewallDescribeFirewallOutput
  describeFirewallPolicy(input: AwsNetworkFirewallDescribeFirewallPolicyInput, config: AwsConfig): AwsNetworkFirewallDescribeFirewallPolicyOutput
  describeLoggingConfiguration(input: AwsNetworkFirewallDescribeLoggingConfigurationInput, config: AwsConfig): AwsNetworkFirewallDescribeLoggingConfigurationOutput
  describeResourcePolicy(input: AwsNetworkFirewallDescribeResourcePolicyInput!, config: AwsConfig): AwsNetworkFirewallDescribeResourcePolicyOutput
  describeRuleGroup(input: AwsNetworkFirewallDescribeRuleGroupInput, config: AwsConfig): AwsNetworkFirewallDescribeRuleGroupOutput
  disassociateSubnets(input: AwsNetworkFirewallDisassociateSubnetsInput!, config: AwsConfig): AwsNetworkFirewallDisassociateSubnetsOutput
  listFirewallPolicies(input: AwsNetworkFirewallListFirewallPoliciesInput, config: AwsConfig): AwsNetworkFirewallListFirewallPoliciesOutput
  listFirewalls(input: AwsNetworkFirewallListFirewallsInput, config: AwsConfig): AwsNetworkFirewallListFirewallsOutput
  listRuleGroups(input: AwsNetworkFirewallListRuleGroupsInput, config: AwsConfig): AwsNetworkFirewallListRuleGroupsOutput
  listTagsForResource(input: AwsNetworkFirewallListTagsForResourceInput!, config: AwsConfig): AwsNetworkFirewallListTagsForResourceOutput
  putResourcePolicy(input: AwsNetworkFirewallPutResourcePolicyInput!, config: AwsConfig): JSON
  tagResource(input: AwsNetworkFirewallTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsNetworkFirewallUntagResourceInput!, config: AwsConfig): JSON
  updateFirewallDeleteProtection(input: AwsNetworkFirewallUpdateFirewallDeleteProtectionInput!, config: AwsConfig): AwsNetworkFirewallUpdateFirewallDeleteProtectionOutput
  updateFirewallDescription(input: AwsNetworkFirewallUpdateFirewallDescriptionInput, config: AwsConfig): AwsNetworkFirewallUpdateFirewallDescriptionOutput
  updateFirewallPolicy(input: AwsNetworkFirewallUpdateFirewallPolicyInput!, config: AwsConfig): AwsNetworkFirewallUpdateFirewallPolicyOutput
  updateFirewallPolicyChangeProtection(input: AwsNetworkFirewallUpdateFirewallPolicyChangeProtectionInput!, config: AwsConfig): AwsNetworkFirewallUpdateFirewallPolicyChangeProtectionOutput
  updateLoggingConfiguration(input: AwsNetworkFirewallUpdateLoggingConfigurationInput, config: AwsConfig): AwsNetworkFirewallUpdateLoggingConfigurationOutput
  updateRuleGroup(input: AwsNetworkFirewallUpdateRuleGroupInput!, config: AwsConfig): AwsNetworkFirewallUpdateRuleGroupOutput
  updateSubnetChangeProtection(input: AwsNetworkFirewallUpdateSubnetChangeProtectionInput!, config: AwsConfig): AwsNetworkFirewallUpdateSubnetChangeProtectionOutput
}

type AwsNetworkFirewallAssociateFirewallPolicyOutput {
  FirewallArn: String
  FirewallName: String
  FirewallPolicyArn: String
  UpdateToken: String
}

input AwsNetworkFirewallAssociateFirewallPolicyInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  FirewallPolicyArn: String!
}

type AwsNetworkFirewallAssociateSubnetsOutput {
  FirewallArn: String
  FirewallName: String
  SubnetMappings: [AwsNetworkFirewallS7]
  UpdateToken: String
}

type AwsNetworkFirewallS7 {
  SubnetId: String!
}

input AwsNetworkFirewallAssociateSubnetsInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  SubnetMappings: [AwsNetworkFirewallS7Input]!
}

input AwsNetworkFirewallS7Input {
  SubnetId: String!
}

type AwsNetworkFirewallCreateFirewallOutput {
  Firewall: AwsNetworkFirewallSk
  FirewallStatus: AwsNetworkFirewallSm
}

type AwsNetworkFirewallSk {
  FirewallName: String
  FirewallArn: String
  FirewallPolicyArn: String!
  VpcId: String!
  SubnetMappings: [AwsNetworkFirewallS7]!
  DeleteProtection: Boolean
  SubnetChangeProtection: Boolean
  FirewallPolicyChangeProtection: Boolean
  Description: String
  FirewallId: String!
  Tags: [AwsNetworkFirewallSf]
}

type AwsNetworkFirewallSf {
  Key: String!
  Value: String!
}

type AwsNetworkFirewallSm {
  Status: String!
  ConfigurationSyncStateSummary: String!
  SyncStates: JSON
}

input AwsNetworkFirewallCreateFirewallInput {
  FirewallName: String!
  FirewallPolicyArn: String!
  VpcId: String!
  SubnetMappings: [AwsNetworkFirewallS7Input]!
  DeleteProtection: Boolean
  SubnetChangeProtection: Boolean
  FirewallPolicyChangeProtection: Boolean
  Description: String
  Tags: [AwsNetworkFirewallSfInput]
}

input AwsNetworkFirewallSfInput {
  Key: String!
  Value: String!
}

type AwsNetworkFirewallCreateFirewallPolicyOutput {
  UpdateToken: String!
  FirewallPolicyResponse: AwsNetworkFirewallS1g!
}

type AwsNetworkFirewallS1g {
  FirewallPolicyName: String!
  FirewallPolicyArn: String!
  FirewallPolicyId: String!
  Description: String
  FirewallPolicyStatus: String
  Tags: [AwsNetworkFirewallSf]
}

input AwsNetworkFirewallCreateFirewallPolicyInput {
  FirewallPolicyName: String!
  FirewallPolicy: AwsNetworkFirewallS10Input!
  Description: String
  Tags: [AwsNetworkFirewallSfInput]
  DryRun: Boolean
}

input AwsNetworkFirewallS10Input {
  StatelessRuleGroupReferences: [AwsNetworkFirewallS10StatelessRuleGroupReferencesInput]
  StatelessDefaultActions: [String]!
  StatelessFragmentDefaultActions: [String]!
  StatelessCustomActions: [AwsNetworkFirewallS15Input]
  StatefulRuleGroupReferences: [AwsNetworkFirewallS10StatefulRuleGroupReferencesInput]
}

input AwsNetworkFirewallS10StatelessRuleGroupReferencesInput {
  ResourceArn: String!
  Priority: Int!
}

input AwsNetworkFirewallS15Input {
  ActionName: String!
  ActionDefinition: AwsNetworkFirewallS15ActionDefinitionInput!
}

input AwsNetworkFirewallS15ActionDefinitionInput {
  PublishMetricAction: AwsNetworkFirewallS15ActionDefinitionPublishMetricActionInput
}

input AwsNetworkFirewallS15ActionDefinitionPublishMetricActionInput {
  Dimensions: [AwsNetworkFirewallS15ActionDefinitionPublishMetricActionDimensionsInput]!
}

input AwsNetworkFirewallS15ActionDefinitionPublishMetricActionDimensionsInput {
  Value: String!
}

input AwsNetworkFirewallS10StatefulRuleGroupReferencesInput {
  ResourceArn: String!
}

type AwsNetworkFirewallCreateRuleGroupOutput {
  UpdateToken: String!
  RuleGroupResponse: AwsNetworkFirewallS2x!
}

type AwsNetworkFirewallS2x {
  RuleGroupArn: String!
  RuleGroupName: String!
  RuleGroupId: String!
  Description: String
  Type: String
  Capacity: Int
  RuleGroupStatus: String
  Tags: [AwsNetworkFirewallSf]
}

input AwsNetworkFirewallCreateRuleGroupInput {
  RuleGroupName: String!
  RuleGroup: AwsNetworkFirewallS1jInput
  Rules: String
  Type: String!
  Description: String
  Capacity: Int!
  Tags: [AwsNetworkFirewallSfInput]
  DryRun: Boolean
}

input AwsNetworkFirewallS1jInput {
  RuleVariables: AwsNetworkFirewallS1jRuleVariablesInput
  RulesSource: AwsNetworkFirewallS1jRulesSourceInput!
}

input AwsNetworkFirewallS1jRuleVariablesInput {
  IPSets: JSON
  PortSets: JSON
}

input AwsNetworkFirewallS1jRulesSourceInput {
  RulesString: String
  RulesSourceList: AwsNetworkFirewallS1jRulesSourceRulesSourceListInput
  StatefulRules: [AwsNetworkFirewallS1jRulesSourceStatefulRulesInput]
  StatelessRulesAndCustomActions: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsInput
}

input AwsNetworkFirewallS1jRulesSourceRulesSourceListInput {
  Targets: [String]!
  TargetTypes: [String]!
  GeneratedRulesType: String!
}

input AwsNetworkFirewallS1jRulesSourceStatefulRulesInput {
  Action: String!
  Header: AwsNetworkFirewallS1jRulesSourceStatefulRulesHeaderInput!
  RuleOptions: [AwsNetworkFirewallS1jRulesSourceStatefulRulesRuleOptionsInput]!
}

input AwsNetworkFirewallS1jRulesSourceStatefulRulesHeaderInput {
  Protocol: String!
  Source: String!
  SourcePort: String!
  Direction: String!
  Destination: String!
  DestinationPort: String!
}

input AwsNetworkFirewallS1jRulesSourceStatefulRulesRuleOptionsInput {
  Keyword: String!
  Settings: [String]
}

input AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsInput {
  StatelessRules: [AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesInput]!
  CustomActions: [AwsNetworkFirewallS15Input]
}

input AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesInput {
  RuleDefinition: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionInput!
  Priority: Int!
}

input AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionInput {
  MatchAttributes: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesInput!
  Actions: [String]!
}

input AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesInput {
  Sources: [AwsNetworkFirewallS2iInput]
  Destinations: [AwsNetworkFirewallS2iInput]
  SourcePorts: [AwsNetworkFirewallS2lInput]
  DestinationPorts: [AwsNetworkFirewallS2lInput]
  Protocols: [Int]
  TCPFlags: [AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesTCPFlagsInput]
}

input AwsNetworkFirewallS2iInput {
  AddressDefinition: String!
}

input AwsNetworkFirewallS2lInput {
  FromPort: Int!
  ToPort: Int!
}

input AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesTCPFlagsInput {
  Flags: [String]!
  Masks: [String]
}

type AwsNetworkFirewallDeleteFirewallOutput {
  Firewall: AwsNetworkFirewallSk
  FirewallStatus: AwsNetworkFirewallSm
}

input AwsNetworkFirewallDeleteFirewallInput {
  FirewallName: String
  FirewallArn: String
}

type AwsNetworkFirewallDeleteFirewallPolicyOutput {
  FirewallPolicyResponse: AwsNetworkFirewallS1g!
}

input AwsNetworkFirewallDeleteFirewallPolicyInput {
  FirewallPolicyName: String
  FirewallPolicyArn: String
}

input AwsNetworkFirewallDeleteResourcePolicyInput {
  ResourceArn: String!
}

type AwsNetworkFirewallDeleteRuleGroupOutput {
  RuleGroupResponse: AwsNetworkFirewallS2x!
}

input AwsNetworkFirewallDeleteRuleGroupInput {
  RuleGroupName: String
  RuleGroupArn: String
  Type: String
}

type AwsNetworkFirewallDescribeFirewallOutput {
  UpdateToken: String
  Firewall: AwsNetworkFirewallSk
  FirewallStatus: AwsNetworkFirewallSm
}

input AwsNetworkFirewallDescribeFirewallInput {
  FirewallName: String
  FirewallArn: String
}

type AwsNetworkFirewallDescribeFirewallPolicyOutput {
  UpdateToken: String!
  FirewallPolicyResponse: AwsNetworkFirewallS1g!
  FirewallPolicy: AwsNetworkFirewallS10
}

type AwsNetworkFirewallS10 {
  StatelessRuleGroupReferences: [AwsNetworkFirewallS10StatelessRuleGroupReferences]
  StatelessDefaultActions: [String]!
  StatelessFragmentDefaultActions: [String]!
  StatelessCustomActions: [AwsNetworkFirewallS15]
  StatefulRuleGroupReferences: [AwsNetworkFirewallS10StatefulRuleGroupReferences]
}

type AwsNetworkFirewallS10StatelessRuleGroupReferences {
  ResourceArn: String!
  Priority: Int!
}

type AwsNetworkFirewallS15 {
  ActionName: String!
  ActionDefinition: AwsNetworkFirewallS15ActionDefinition!
}

type AwsNetworkFirewallS15ActionDefinition {
  PublishMetricAction: AwsNetworkFirewallS15ActionDefinitionPublishMetricAction
}

type AwsNetworkFirewallS15ActionDefinitionPublishMetricAction {
  Dimensions: [AwsNetworkFirewallS15ActionDefinitionPublishMetricActionDimensions]!
}

type AwsNetworkFirewallS15ActionDefinitionPublishMetricActionDimensions {
  Value: String!
}

type AwsNetworkFirewallS10StatefulRuleGroupReferences {
  ResourceArn: String!
}

input AwsNetworkFirewallDescribeFirewallPolicyInput {
  FirewallPolicyName: String
  FirewallPolicyArn: String
}

type AwsNetworkFirewallDescribeLoggingConfigurationOutput {
  FirewallArn: String
  LoggingConfiguration: AwsNetworkFirewallS3c
}

type AwsNetworkFirewallS3c {
  LogDestinationConfigs: [AwsNetworkFirewallS3cLogDestinationConfigs]!
}

type AwsNetworkFirewallS3cLogDestinationConfigs {
  LogType: String!
  LogDestinationType: String!
  LogDestination: JSON!
}

input AwsNetworkFirewallDescribeLoggingConfigurationInput {
  FirewallArn: String
  FirewallName: String
}

type AwsNetworkFirewallDescribeResourcePolicyOutput {
  Policy: String
}

input AwsNetworkFirewallDescribeResourcePolicyInput {
  ResourceArn: String!
}

type AwsNetworkFirewallDescribeRuleGroupOutput {
  UpdateToken: String!
  RuleGroup: AwsNetworkFirewallS1j
  RuleGroupResponse: AwsNetworkFirewallS2x!
}

type AwsNetworkFirewallS1j {
  RuleVariables: AwsNetworkFirewallS1jRuleVariables
  RulesSource: AwsNetworkFirewallS1jRulesSource!
}

type AwsNetworkFirewallS1jRuleVariables {
  IPSets: JSON
  PortSets: JSON
}

type AwsNetworkFirewallS1jRulesSource {
  RulesString: String
  RulesSourceList: AwsNetworkFirewallS1jRulesSourceRulesSourceList
  StatefulRules: [AwsNetworkFirewallS1jRulesSourceStatefulRules]
  StatelessRulesAndCustomActions: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActions
}

type AwsNetworkFirewallS1jRulesSourceRulesSourceList {
  Targets: [String]!
  TargetTypes: [String]!
  GeneratedRulesType: String!
}

type AwsNetworkFirewallS1jRulesSourceStatefulRules {
  Action: String!
  Header: AwsNetworkFirewallS1jRulesSourceStatefulRulesHeader!
  RuleOptions: [AwsNetworkFirewallS1jRulesSourceStatefulRulesRuleOptions]!
}

type AwsNetworkFirewallS1jRulesSourceStatefulRulesHeader {
  Protocol: String!
  Source: String!
  SourcePort: String!
  Direction: String!
  Destination: String!
  DestinationPort: String!
}

type AwsNetworkFirewallS1jRulesSourceStatefulRulesRuleOptions {
  Keyword: String!
  Settings: [String]
}

type AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActions {
  StatelessRules: [AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRules]!
  CustomActions: [AwsNetworkFirewallS15]
}

type AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRules {
  RuleDefinition: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinition!
  Priority: Int!
}

type AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinition {
  MatchAttributes: AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributes!
  Actions: [String]!
}

type AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributes {
  Sources: [AwsNetworkFirewallS2i]
  Destinations: [AwsNetworkFirewallS2i]
  SourcePorts: [AwsNetworkFirewallS2l]
  DestinationPorts: [AwsNetworkFirewallS2l]
  Protocols: [Int]
  TCPFlags: [AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesTCPFlags]
}

type AwsNetworkFirewallS2i {
  AddressDefinition: String!
}

type AwsNetworkFirewallS2l {
  FromPort: Int!
  ToPort: Int!
}

type AwsNetworkFirewallS1jRulesSourceStatelessRulesAndCustomActionsStatelessRulesRuleDefinitionMatchAttributesTCPFlags {
  Flags: [String]!
  Masks: [String]
}

input AwsNetworkFirewallDescribeRuleGroupInput {
  RuleGroupName: String
  RuleGroupArn: String
  Type: String
}

type AwsNetworkFirewallDisassociateSubnetsOutput {
  FirewallArn: String
  FirewallName: String
  SubnetMappings: [AwsNetworkFirewallS7]
  UpdateToken: String
}

input AwsNetworkFirewallDisassociateSubnetsInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  SubnetIds: [String]!
}

type AwsNetworkFirewallListFirewallPoliciesOutput {
  NextToken: String
  FirewallPolicies: [AwsNetworkFirewallListFirewallPoliciesOutputFirewallPolicies]
}

type AwsNetworkFirewallListFirewallPoliciesOutputFirewallPolicies {
  Name: String
  Arn: String
}

input AwsNetworkFirewallListFirewallPoliciesInput {
  NextToken: String
  MaxResults: Int
}

type AwsNetworkFirewallListFirewallsOutput {
  NextToken: String
  Firewalls: [AwsNetworkFirewallListFirewallsOutputFirewalls]
}

type AwsNetworkFirewallListFirewallsOutputFirewalls {
  FirewallName: String
  FirewallArn: String
}

input AwsNetworkFirewallListFirewallsInput {
  NextToken: String
  VpcIds: [String]
  MaxResults: Int
}

type AwsNetworkFirewallListRuleGroupsOutput {
  NextToken: String
  RuleGroups: [AwsNetworkFirewallListRuleGroupsOutputRuleGroups]
}

type AwsNetworkFirewallListRuleGroupsOutputRuleGroups {
  Name: String
  Arn: String
}

input AwsNetworkFirewallListRuleGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsNetworkFirewallListTagsForResourceOutput {
  NextToken: String
  Tags: [AwsNetworkFirewallSf]
}

input AwsNetworkFirewallListTagsForResourceInput {
  NextToken: String
  MaxResults: Int
  ResourceArn: String!
}

input AwsNetworkFirewallPutResourcePolicyInput {
  ResourceArn: String!
  Policy: String!
}

input AwsNetworkFirewallTagResourceInput {
  ResourceArn: String!
  Tags: [AwsNetworkFirewallSfInput]!
}

input AwsNetworkFirewallUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsNetworkFirewallUpdateFirewallDeleteProtectionOutput {
  FirewallArn: String
  FirewallName: String
  DeleteProtection: Boolean
  UpdateToken: String
}

input AwsNetworkFirewallUpdateFirewallDeleteProtectionInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  DeleteProtection: Boolean!
}

type AwsNetworkFirewallUpdateFirewallDescriptionOutput {
  FirewallArn: String
  FirewallName: String
  Description: String
  UpdateToken: String
}

input AwsNetworkFirewallUpdateFirewallDescriptionInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  Description: String
}

type AwsNetworkFirewallUpdateFirewallPolicyOutput {
  UpdateToken: String!
  FirewallPolicyResponse: AwsNetworkFirewallS1g!
}

input AwsNetworkFirewallUpdateFirewallPolicyInput {
  UpdateToken: String!
  FirewallPolicyArn: String
  FirewallPolicyName: String
  FirewallPolicy: AwsNetworkFirewallS10Input!
  Description: String
  DryRun: Boolean
}

type AwsNetworkFirewallUpdateFirewallPolicyChangeProtectionOutput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  FirewallPolicyChangeProtection: Boolean
}

input AwsNetworkFirewallUpdateFirewallPolicyChangeProtectionInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  FirewallPolicyChangeProtection: Boolean!
}

type AwsNetworkFirewallUpdateLoggingConfigurationOutput {
  FirewallArn: String
  FirewallName: String
  LoggingConfiguration: AwsNetworkFirewallS3c
}

input AwsNetworkFirewallUpdateLoggingConfigurationInput {
  FirewallArn: String
  FirewallName: String
  LoggingConfiguration: AwsNetworkFirewallS3cInput
}

input AwsNetworkFirewallS3cInput {
  LogDestinationConfigs: [AwsNetworkFirewallS3cLogDestinationConfigsInput]!
}

input AwsNetworkFirewallS3cLogDestinationConfigsInput {
  LogType: String!
  LogDestinationType: String!
  LogDestination: JSON!
}

type AwsNetworkFirewallUpdateRuleGroupOutput {
  UpdateToken: String!
  RuleGroupResponse: AwsNetworkFirewallS2x!
}

input AwsNetworkFirewallUpdateRuleGroupInput {
  UpdateToken: String!
  RuleGroupArn: String
  RuleGroupName: String
  RuleGroup: AwsNetworkFirewallS1jInput
  Rules: String
  Type: String
  Description: String
  DryRun: Boolean
}

type AwsNetworkFirewallUpdateSubnetChangeProtectionOutput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  SubnetChangeProtection: Boolean
}

input AwsNetworkFirewallUpdateSubnetChangeProtectionInput {
  UpdateToken: String
  FirewallArn: String
  FirewallName: String
  SubnetChangeProtection: Boolean!
}

"""AWS Network Manager (2019-07-05)"""
type AwsNetworkManager {
  associateCustomerGateway(input: AwsNetworkManagerAssociateCustomerGatewayInput!, config: AwsConfig): AwsNetworkManagerAssociateCustomerGatewayOutput
  associateLink(input: AwsNetworkManagerAssociateLinkInput!, config: AwsConfig): AwsNetworkManagerAssociateLinkOutput
  associateTransitGatewayConnectPeer(input: AwsNetworkManagerAssociateTransitGatewayConnectPeerInput!, config: AwsConfig): AwsNetworkManagerAssociateTransitGatewayConnectPeerOutput
  createConnection(input: AwsNetworkManagerCreateConnectionInput!, config: AwsConfig): AwsNetworkManagerCreateConnectionOutput
  createDevice(input: AwsNetworkManagerCreateDeviceInput!, config: AwsConfig): AwsNetworkManagerCreateDeviceOutput
  createGlobalNetwork(input: AwsNetworkManagerCreateGlobalNetworkInput, config: AwsConfig): AwsNetworkManagerCreateGlobalNetworkOutput
  createLink(input: AwsNetworkManagerCreateLinkInput!, config: AwsConfig): AwsNetworkManagerCreateLinkOutput
  createSite(input: AwsNetworkManagerCreateSiteInput!, config: AwsConfig): AwsNetworkManagerCreateSiteOutput
  deleteConnection(input: AwsNetworkManagerDeleteConnectionInput!, config: AwsConfig): AwsNetworkManagerDeleteConnectionOutput
  deleteDevice(input: AwsNetworkManagerDeleteDeviceInput!, config: AwsConfig): AwsNetworkManagerDeleteDeviceOutput
  deleteGlobalNetwork(input: AwsNetworkManagerDeleteGlobalNetworkInput!, config: AwsConfig): AwsNetworkManagerDeleteGlobalNetworkOutput
  deleteLink(input: AwsNetworkManagerDeleteLinkInput!, config: AwsConfig): AwsNetworkManagerDeleteLinkOutput
  deleteSite(input: AwsNetworkManagerDeleteSiteInput!, config: AwsConfig): AwsNetworkManagerDeleteSiteOutput
  deregisterTransitGateway(input: AwsNetworkManagerDeregisterTransitGatewayInput!, config: AwsConfig): AwsNetworkManagerDeregisterTransitGatewayOutput
  describeGlobalNetworks(input: AwsNetworkManagerDescribeGlobalNetworksInput, config: AwsConfig): AwsNetworkManagerDescribeGlobalNetworksOutput
  disassociateCustomerGateway(input: AwsNetworkManagerDisassociateCustomerGatewayInput!, config: AwsConfig): AwsNetworkManagerDisassociateCustomerGatewayOutput
  disassociateLink(input: AwsNetworkManagerDisassociateLinkInput!, config: AwsConfig): AwsNetworkManagerDisassociateLinkOutput
  disassociateTransitGatewayConnectPeer(input: AwsNetworkManagerDisassociateTransitGatewayConnectPeerInput!, config: AwsConfig): AwsNetworkManagerDisassociateTransitGatewayConnectPeerOutput
  getConnections(input: AwsNetworkManagerGetConnectionsInput!, config: AwsConfig): AwsNetworkManagerGetConnectionsOutput
  getCustomerGatewayAssociations(input: AwsNetworkManagerGetCustomerGatewayAssociationsInput!, config: AwsConfig): AwsNetworkManagerGetCustomerGatewayAssociationsOutput
  getDevices(input: AwsNetworkManagerGetDevicesInput!, config: AwsConfig): AwsNetworkManagerGetDevicesOutput
  getLinkAssociations(input: AwsNetworkManagerGetLinkAssociationsInput!, config: AwsConfig): AwsNetworkManagerGetLinkAssociationsOutput
  getLinks(input: AwsNetworkManagerGetLinksInput!, config: AwsConfig): AwsNetworkManagerGetLinksOutput
  getSites(input: AwsNetworkManagerGetSitesInput!, config: AwsConfig): AwsNetworkManagerGetSitesOutput
  getTransitGatewayConnectPeerAssociations(input: AwsNetworkManagerGetTransitGatewayConnectPeerAssociationsInput!, config: AwsConfig): AwsNetworkManagerGetTransitGatewayConnectPeerAssociationsOutput
  getTransitGatewayRegistrations(input: AwsNetworkManagerGetTransitGatewayRegistrationsInput!, config: AwsConfig): AwsNetworkManagerGetTransitGatewayRegistrationsOutput
  listTagsForResource(input: AwsNetworkManagerListTagsForResourceInput!, config: AwsConfig): AwsNetworkManagerListTagsForResourceOutput
  registerTransitGateway(input: AwsNetworkManagerRegisterTransitGatewayInput!, config: AwsConfig): AwsNetworkManagerRegisterTransitGatewayOutput
  tagResource(input: AwsNetworkManagerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsNetworkManagerUntagResourceInput!, config: AwsConfig): JSON
  updateConnection(input: AwsNetworkManagerUpdateConnectionInput!, config: AwsConfig): AwsNetworkManagerUpdateConnectionOutput
  updateDevice(input: AwsNetworkManagerUpdateDeviceInput!, config: AwsConfig): AwsNetworkManagerUpdateDeviceOutput
  updateGlobalNetwork(input: AwsNetworkManagerUpdateGlobalNetworkInput!, config: AwsConfig): AwsNetworkManagerUpdateGlobalNetworkOutput
  updateLink(input: AwsNetworkManagerUpdateLinkInput!, config: AwsConfig): AwsNetworkManagerUpdateLinkOutput
  updateSite(input: AwsNetworkManagerUpdateSiteInput!, config: AwsConfig): AwsNetworkManagerUpdateSiteOutput
}

type AwsNetworkManagerAssociateCustomerGatewayOutput {
  CustomerGatewayAssociation: AwsNetworkManagerS4
}

type AwsNetworkManagerS4 {
  CustomerGatewayArn: String
  GlobalNetworkId: String
  DeviceId: String
  LinkId: String
  State: String
}

input AwsNetworkManagerAssociateCustomerGatewayInput {
  CustomerGatewayArn: String!
  GlobalNetworkId: String!
  DeviceId: String!
  LinkId: String
}

type AwsNetworkManagerAssociateLinkOutput {
  LinkAssociation: AwsNetworkManagerS8
}

type AwsNetworkManagerS8 {
  GlobalNetworkId: String
  DeviceId: String
  LinkId: String
  LinkAssociationState: String
}

input AwsNetworkManagerAssociateLinkInput {
  GlobalNetworkId: String!
  DeviceId: String!
  LinkId: String!
}

type AwsNetworkManagerAssociateTransitGatewayConnectPeerOutput {
  TransitGatewayConnectPeerAssociation: AwsNetworkManagerSc
}

type AwsNetworkManagerSc {
  TransitGatewayConnectPeerArn: String
  GlobalNetworkId: String
  DeviceId: String
  LinkId: String
  State: String
}

input AwsNetworkManagerAssociateTransitGatewayConnectPeerInput {
  GlobalNetworkId: String!
  TransitGatewayConnectPeerArn: String!
  DeviceId: String!
  LinkId: String
}

type AwsNetworkManagerCreateConnectionOutput {
  Connection: AwsNetworkManagerSk
}

type AwsNetworkManagerSk {
  ConnectionId: String
  ConnectionArn: String
  GlobalNetworkId: String
  DeviceId: String
  ConnectedDeviceId: String
  LinkId: String
  ConnectedLinkId: String
  Description: String
  CreatedAt: Date
  State: String
  Tags: [AwsNetworkManagerSf]
}

type AwsNetworkManagerSf {
  Key: String
  Value: String
}

input AwsNetworkManagerCreateConnectionInput {
  GlobalNetworkId: String!
  DeviceId: String!
  ConnectedDeviceId: String!
  LinkId: String
  ConnectedLinkId: String
  Description: String
  Tags: [AwsNetworkManagerSfInput]
}

input AwsNetworkManagerSfInput {
  Key: String
  Value: String
}

type AwsNetworkManagerCreateDeviceOutput {
  Device: AwsNetworkManagerSr
}

type AwsNetworkManagerSr {
  DeviceId: String
  DeviceArn: String
  GlobalNetworkId: String
  AWSLocation: AwsNetworkManagerSo
  Description: String
  Type: String
  Vendor: String
  Model: String
  SerialNumber: String
  Location: AwsNetworkManagerSp
  SiteId: String
  CreatedAt: Date
  State: String
  Tags: [AwsNetworkManagerSf]
}

type AwsNetworkManagerSo {
  Zone: String
  SubnetArn: String
}

type AwsNetworkManagerSp {
  Address: String
  Latitude: String
  Longitude: String
}

input AwsNetworkManagerCreateDeviceInput {
  GlobalNetworkId: String!
  AWSLocation: AwsNetworkManagerSoInput
  Description: String
  Type: String
  Vendor: String
  Model: String
  SerialNumber: String
  Location: AwsNetworkManagerSpInput
  SiteId: String
  Tags: [AwsNetworkManagerSfInput]
}

input AwsNetworkManagerSoInput {
  Zone: String
  SubnetArn: String
}

input AwsNetworkManagerSpInput {
  Address: String
  Latitude: String
  Longitude: String
}

type AwsNetworkManagerCreateGlobalNetworkOutput {
  GlobalNetwork: AwsNetworkManagerSv
}

type AwsNetworkManagerSv {
  GlobalNetworkId: String
  GlobalNetworkArn: String
  Description: String
  CreatedAt: Date
  State: String
  Tags: [AwsNetworkManagerSf]
}

input AwsNetworkManagerCreateGlobalNetworkInput {
  Description: String
  Tags: [AwsNetworkManagerSfInput]
}

type AwsNetworkManagerCreateLinkOutput {
  Link: AwsNetworkManagerS11
}

type AwsNetworkManagerS11 {
  LinkId: String
  LinkArn: String
  GlobalNetworkId: String
  SiteId: String
  Description: String
  Type: String
  Bandwidth: AwsNetworkManagerSy
  Provider: String
  CreatedAt: Date
  State: String
  Tags: [AwsNetworkManagerSf]
}

type AwsNetworkManagerSy {
  UploadSpeed: Int
  DownloadSpeed: Int
}

input AwsNetworkManagerCreateLinkInput {
  GlobalNetworkId: String!
  Description: String
  Type: String
  Bandwidth: AwsNetworkManagerSyInput!
  Provider: String
  SiteId: String!
  Tags: [AwsNetworkManagerSfInput]
}

input AwsNetworkManagerSyInput {
  UploadSpeed: Int
  DownloadSpeed: Int
}

type AwsNetworkManagerCreateSiteOutput {
  Site: AwsNetworkManagerS15
}

type AwsNetworkManagerS15 {
  SiteId: String
  SiteArn: String
  GlobalNetworkId: String
  Description: String
  Location: AwsNetworkManagerSp
  CreatedAt: Date
  State: String
  Tags: [AwsNetworkManagerSf]
}

input AwsNetworkManagerCreateSiteInput {
  GlobalNetworkId: String!
  Description: String
  Location: AwsNetworkManagerSpInput
  Tags: [AwsNetworkManagerSfInput]
}

type AwsNetworkManagerDeleteConnectionOutput {
  Connection: AwsNetworkManagerSk
}

input AwsNetworkManagerDeleteConnectionInput {
  GlobalNetworkId: String!
  ConnectionId: String!
}

type AwsNetworkManagerDeleteDeviceOutput {
  Device: AwsNetworkManagerSr
}

input AwsNetworkManagerDeleteDeviceInput {
  GlobalNetworkId: String!
  DeviceId: String!
}

type AwsNetworkManagerDeleteGlobalNetworkOutput {
  GlobalNetwork: AwsNetworkManagerSv
}

input AwsNetworkManagerDeleteGlobalNetworkInput {
  GlobalNetworkId: String!
}

type AwsNetworkManagerDeleteLinkOutput {
  Link: AwsNetworkManagerS11
}

input AwsNetworkManagerDeleteLinkInput {
  GlobalNetworkId: String!
  LinkId: String!
}

type AwsNetworkManagerDeleteSiteOutput {
  Site: AwsNetworkManagerS15
}

input AwsNetworkManagerDeleteSiteInput {
  GlobalNetworkId: String!
  SiteId: String!
}

type AwsNetworkManagerDeregisterTransitGatewayOutput {
  TransitGatewayRegistration: AwsNetworkManagerS1j
}

type AwsNetworkManagerS1j {
  GlobalNetworkId: String
  TransitGatewayArn: String
  State: AwsNetworkManagerS1jState
}

type AwsNetworkManagerS1jState {
  Code: String
  Message: String
}

input AwsNetworkManagerDeregisterTransitGatewayInput {
  GlobalNetworkId: String!
  TransitGatewayArn: String!
}

type AwsNetworkManagerDescribeGlobalNetworksOutput {
  GlobalNetworks: [AwsNetworkManagerSv]
  NextToken: String
}

input AwsNetworkManagerDescribeGlobalNetworksInput {
  GlobalNetworkIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerDisassociateCustomerGatewayOutput {
  CustomerGatewayAssociation: AwsNetworkManagerS4
}

input AwsNetworkManagerDisassociateCustomerGatewayInput {
  GlobalNetworkId: String!
  CustomerGatewayArn: String!
}

type AwsNetworkManagerDisassociateLinkOutput {
  LinkAssociation: AwsNetworkManagerS8
}

input AwsNetworkManagerDisassociateLinkInput {
  GlobalNetworkId: String!
  DeviceId: String!
  LinkId: String!
}

type AwsNetworkManagerDisassociateTransitGatewayConnectPeerOutput {
  TransitGatewayConnectPeerAssociation: AwsNetworkManagerSc
}

input AwsNetworkManagerDisassociateTransitGatewayConnectPeerInput {
  GlobalNetworkId: String!
  TransitGatewayConnectPeerArn: String!
}

type AwsNetworkManagerGetConnectionsOutput {
  Connections: [AwsNetworkManagerSk]
  NextToken: String
}

input AwsNetworkManagerGetConnectionsInput {
  GlobalNetworkId: String!
  ConnectionIds: [String]
  DeviceId: String
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetCustomerGatewayAssociationsOutput {
  CustomerGatewayAssociations: [AwsNetworkManagerS4]
  NextToken: String
}

input AwsNetworkManagerGetCustomerGatewayAssociationsInput {
  GlobalNetworkId: String!
  CustomerGatewayArns: [String]
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetDevicesOutput {
  Devices: [AwsNetworkManagerSr]
  NextToken: String
}

input AwsNetworkManagerGetDevicesInput {
  GlobalNetworkId: String!
  DeviceIds: [String]
  SiteId: String
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetLinkAssociationsOutput {
  LinkAssociations: [AwsNetworkManagerS8]
  NextToken: String
}

input AwsNetworkManagerGetLinkAssociationsInput {
  GlobalNetworkId: String!
  DeviceId: String
  LinkId: String
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetLinksOutput {
  Links: [AwsNetworkManagerS11]
  NextToken: String
}

input AwsNetworkManagerGetLinksInput {
  GlobalNetworkId: String!
  LinkIds: [String]
  SiteId: String
  Type: String
  Provider: String
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetSitesOutput {
  Sites: [AwsNetworkManagerS15]
  NextToken: String
}

input AwsNetworkManagerGetSitesInput {
  GlobalNetworkId: String!
  SiteIds: [String]
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetTransitGatewayConnectPeerAssociationsOutput {
  TransitGatewayConnectPeerAssociations: [AwsNetworkManagerSc]
  NextToken: String
}

input AwsNetworkManagerGetTransitGatewayConnectPeerAssociationsInput {
  GlobalNetworkId: String!
  TransitGatewayConnectPeerArns: [String]
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerGetTransitGatewayRegistrationsOutput {
  TransitGatewayRegistrations: [AwsNetworkManagerS1j]
  NextToken: String
}

input AwsNetworkManagerGetTransitGatewayRegistrationsInput {
  GlobalNetworkId: String!
  TransitGatewayArns: [String]
  MaxResults: Int
  NextToken: String
}

type AwsNetworkManagerListTagsForResourceOutput {
  TagList: [AwsNetworkManagerSf]
}

input AwsNetworkManagerListTagsForResourceInput {
  ResourceArn: String!
}

type AwsNetworkManagerRegisterTransitGatewayOutput {
  TransitGatewayRegistration: AwsNetworkManagerS1j
}

input AwsNetworkManagerRegisterTransitGatewayInput {
  GlobalNetworkId: String!
  TransitGatewayArn: String!
}

input AwsNetworkManagerTagResourceInput {
  ResourceArn: String!
  Tags: [AwsNetworkManagerSfInput]!
}

input AwsNetworkManagerUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsNetworkManagerUpdateConnectionOutput {
  Connection: AwsNetworkManagerSk
}

input AwsNetworkManagerUpdateConnectionInput {
  GlobalNetworkId: String!
  ConnectionId: String!
  LinkId: String
  ConnectedLinkId: String
  Description: String
}

type AwsNetworkManagerUpdateDeviceOutput {
  Device: AwsNetworkManagerSr
}

input AwsNetworkManagerUpdateDeviceInput {
  GlobalNetworkId: String!
  DeviceId: String!
  AWSLocation: AwsNetworkManagerSoInput
  Description: String
  Type: String
  Vendor: String
  Model: String
  SerialNumber: String
  Location: AwsNetworkManagerSpInput
  SiteId: String
}

type AwsNetworkManagerUpdateGlobalNetworkOutput {
  GlobalNetwork: AwsNetworkManagerSv
}

input AwsNetworkManagerUpdateGlobalNetworkInput {
  GlobalNetworkId: String!
  Description: String
}

type AwsNetworkManagerUpdateLinkOutput {
  Link: AwsNetworkManagerS11
}

input AwsNetworkManagerUpdateLinkInput {
  GlobalNetworkId: String!
  LinkId: String!
  Description: String
  Type: String
  Bandwidth: AwsNetworkManagerSyInput
  Provider: String
}

type AwsNetworkManagerUpdateSiteOutput {
  Site: AwsNetworkManagerS15
}

input AwsNetworkManagerUpdateSiteInput {
  GlobalNetworkId: String!
  SiteId: String!
  Description: String
  Location: AwsNetworkManagerSpInput
}

"""AmazonNimbleStudio (2020-08-01)"""
type AwsNimble {
  acceptEulas(input: AwsNimbleAcceptEulasInput!, config: AwsConfig): AwsNimbleAcceptEulasOutput
  createLaunchProfile(input: AwsNimbleCreateLaunchProfileInput!, config: AwsConfig): AwsNimbleCreateLaunchProfileOutput
  createStreamingImage(input: AwsNimbleCreateStreamingImageInput!, config: AwsConfig): AwsNimbleCreateStreamingImageOutput
  createStreamingSession(input: AwsNimbleCreateStreamingSessionInput!, config: AwsConfig): AwsNimbleCreateStreamingSessionOutput
  createStreamingSessionStream(input: AwsNimbleCreateStreamingSessionStreamInput!, config: AwsConfig): AwsNimbleCreateStreamingSessionStreamOutput
  createStudio(input: AwsNimbleCreateStudioInput!, config: AwsConfig): AwsNimbleCreateStudioOutput
  createStudioComponent(input: AwsNimbleCreateStudioComponentInput!, config: AwsConfig): AwsNimbleCreateStudioComponentOutput
  deleteLaunchProfile(input: AwsNimbleDeleteLaunchProfileInput!, config: AwsConfig): AwsNimbleDeleteLaunchProfileOutput
  deleteLaunchProfileMember(input: AwsNimbleDeleteLaunchProfileMemberInput!, config: AwsConfig): JSON
  deleteStreamingImage(input: AwsNimbleDeleteStreamingImageInput!, config: AwsConfig): AwsNimbleDeleteStreamingImageOutput
  deleteStreamingSession(input: AwsNimbleDeleteStreamingSessionInput!, config: AwsConfig): AwsNimbleDeleteStreamingSessionOutput
  deleteStudio(input: AwsNimbleDeleteStudioInput!, config: AwsConfig): AwsNimbleDeleteStudioOutput
  deleteStudioComponent(input: AwsNimbleDeleteStudioComponentInput!, config: AwsConfig): AwsNimbleDeleteStudioComponentOutput
  deleteStudioMember(input: AwsNimbleDeleteStudioMemberInput!, config: AwsConfig): JSON
  getEula(input: AwsNimbleGetEulaInput!, config: AwsConfig): AwsNimbleGetEulaOutput
  getLaunchProfile(input: AwsNimbleGetLaunchProfileInput!, config: AwsConfig): AwsNimbleGetLaunchProfileOutput
  getLaunchProfileDetails(input: AwsNimbleGetLaunchProfileDetailsInput!, config: AwsConfig): AwsNimbleGetLaunchProfileDetailsOutput
  getLaunchProfileInitialization(input: AwsNimbleGetLaunchProfileInitializationInput!, config: AwsConfig): AwsNimbleGetLaunchProfileInitializationOutput
  getLaunchProfileMember(input: AwsNimbleGetLaunchProfileMemberInput!, config: AwsConfig): AwsNimbleGetLaunchProfileMemberOutput
  getStreamingImage(input: AwsNimbleGetStreamingImageInput!, config: AwsConfig): AwsNimbleGetStreamingImageOutput
  getStreamingSession(input: AwsNimbleGetStreamingSessionInput!, config: AwsConfig): AwsNimbleGetStreamingSessionOutput
  getStreamingSessionStream(input: AwsNimbleGetStreamingSessionStreamInput!, config: AwsConfig): AwsNimbleGetStreamingSessionStreamOutput
  getStudio(input: AwsNimbleGetStudioInput!, config: AwsConfig): AwsNimbleGetStudioOutput
  getStudioComponent(input: AwsNimbleGetStudioComponentInput!, config: AwsConfig): AwsNimbleGetStudioComponentOutput
  getStudioMember(input: AwsNimbleGetStudioMemberInput!, config: AwsConfig): AwsNimbleGetStudioMemberOutput
  listEulaAcceptances(input: AwsNimbleListEulaAcceptancesInput!, config: AwsConfig): AwsNimbleListEulaAcceptancesOutput
  listEulas(input: AwsNimbleListEulasInput, config: AwsConfig): AwsNimbleListEulasOutput
  listLaunchProfileMembers(input: AwsNimbleListLaunchProfileMembersInput!, config: AwsConfig): AwsNimbleListLaunchProfileMembersOutput
  listLaunchProfiles(input: AwsNimbleListLaunchProfilesInput!, config: AwsConfig): AwsNimbleListLaunchProfilesOutput
  listStreamingImages(input: AwsNimbleListStreamingImagesInput!, config: AwsConfig): AwsNimbleListStreamingImagesOutput
  listStreamingSessions(input: AwsNimbleListStreamingSessionsInput!, config: AwsConfig): AwsNimbleListStreamingSessionsOutput
  listStudioComponents(input: AwsNimbleListStudioComponentsInput!, config: AwsConfig): AwsNimbleListStudioComponentsOutput
  listStudioMembers(input: AwsNimbleListStudioMembersInput!, config: AwsConfig): AwsNimbleListStudioMembersOutput
  listStudios(input: AwsNimbleListStudiosInput, config: AwsConfig): AwsNimbleListStudiosOutput
  listTagsForResource(input: AwsNimbleListTagsForResourceInput!, config: AwsConfig): AwsNimbleListTagsForResourceOutput
  putLaunchProfileMembers(input: AwsNimblePutLaunchProfileMembersInput!, config: AwsConfig): JSON
  putStudioMembers(input: AwsNimblePutStudioMembersInput!, config: AwsConfig): JSON
  startStudioSSOConfigurationRepair(input: AwsNimbleStartStudioSSOConfigurationRepairInput!, config: AwsConfig): AwsNimbleStartStudioSSOConfigurationRepairOutput
  tagResource(input: AwsNimbleTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsNimbleUntagResourceInput!, config: AwsConfig): JSON
  updateLaunchProfile(input: AwsNimbleUpdateLaunchProfileInput!, config: AwsConfig): AwsNimbleUpdateLaunchProfileOutput
  updateLaunchProfileMember(input: AwsNimbleUpdateLaunchProfileMemberInput!, config: AwsConfig): AwsNimbleUpdateLaunchProfileMemberOutput
  updateStreamingImage(input: AwsNimbleUpdateStreamingImageInput!, config: AwsConfig): AwsNimbleUpdateStreamingImageOutput
  updateStudio(input: AwsNimbleUpdateStudioInput!, config: AwsConfig): AwsNimbleUpdateStudioOutput
  updateStudioComponent(input: AwsNimbleUpdateStudioComponentInput!, config: AwsConfig): AwsNimbleUpdateStudioComponentOutput
}

type AwsNimbleAcceptEulasOutput {
  eulaAcceptances: [AwsNimbleS6]
}

type AwsNimbleS6 {
  acceptedAt: Date
  acceptedBy: String
  accepteeId: String
  eulaAcceptanceId: String
  eulaId: String
}

input AwsNimbleAcceptEulasInput {
  clientToken: String
  eulaIds: [String]
  studioId: String!
}

type AwsNimbleCreateLaunchProfileOutput {
  launchProfile: AwsNimbleSs
}

type AwsNimbleSs {
  arn: String
  createdAt: Date
  createdBy: String
  description: String
  ec2SubnetIds: [String]
  launchProfileId: String
  launchProfileProtocolVersions: [String]
  name: String
  state: String
  statusCode: String
  statusMessage: String
  streamConfiguration: AwsNimbleSsStreamConfiguration
  studioComponentIds: [String]
  tags: JSON
  updatedAt: Date
  updatedBy: String
}

type AwsNimbleSsStreamConfiguration {
  clipboardMode: String
  ec2InstanceTypes: [String]
  maxSessionLengthInMinutes: Int
  streamingImageIds: [String]
}

input AwsNimbleCreateLaunchProfileInput {
  clientToken: String
  description: String
  ec2SubnetIds: [String]!
  launchProfileProtocolVersions: [String]!
  name: String!
  streamConfiguration: AwsNimbleSiInput!
  studioComponentIds: [String]!
  studioId: String!
  tags: JSON
}

input AwsNimbleSiInput {
  clipboardMode: String!
  ec2InstanceTypes: [String]!
  maxSessionLengthInMinutes: Int
  streamingImageIds: [String]!
}

type AwsNimbleCreateStreamingImageOutput {
  streamingImage: AwsNimbleS12
}

type AwsNimbleS12 {
  arn: String
  description: String
  ec2ImageId: String
  encryptionConfiguration: AwsNimbleS12EncryptionConfiguration
  eulaIds: [String]
  name: String
  owner: String
  platform: String
  state: String
  statusCode: String
  statusMessage: String
  streamingImageId: String
  tags: JSON
}

type AwsNimbleS12EncryptionConfiguration {
  keyArn: String
  keyType: String!
}

input AwsNimbleCreateStreamingImageInput {
  clientToken: String
  description: String
  ec2ImageId: String!
  name: String!
  studioId: String!
  tags: JSON
}

type AwsNimbleCreateStreamingSessionOutput {
  session: AwsNimbleS1c
}

type AwsNimbleS1c {
  arn: String
  createdAt: Date
  createdBy: String
  ec2InstanceType: String
  launchProfileId: String
  sessionId: String
  state: String
  statusCode: String
  statusMessage: String
  streamingImageId: String
  tags: JSON
  terminateAt: Date
  updatedAt: Date
  updatedBy: String
}

input AwsNimbleCreateStreamingSessionInput {
  clientToken: String
  ec2InstanceType: String
  launchProfileId: String
  streamingImageId: String
  studioId: String!
  tags: JSON
}

type AwsNimbleCreateStreamingSessionStreamOutput {
  stream: AwsNimbleS1j
}

type AwsNimbleS1j {
  createdAt: Date
  createdBy: String
  expiresAt: Date
  state: String
  statusCode: String
  streamId: String
  url: String
}

input AwsNimbleCreateStreamingSessionStreamInput {
  clientToken: String
  expirationInSeconds: Int
  sessionId: String!
  studioId: String!
}

type AwsNimbleCreateStudioOutput {
  studio: AwsNimbleS1t
}

type AwsNimbleS1t {
  adminRoleArn: String
  arn: String
  createdAt: Date
  displayName: String
  homeRegion: String
  ssoClientId: String
  state: String
  statusCode: String
  statusMessage: String
  studioEncryptionConfiguration: AwsNimbleS1o
  studioId: String
  studioName: String
  studioUrl: String
  tags: JSON
  updatedAt: Date
  userRoleArn: String
}

type AwsNimbleS1o {
  keyArn: String
  keyType: String!
}

input AwsNimbleCreateStudioInput {
  adminRoleArn: String!
  clientToken: String
  displayName: String!
  studioEncryptionConfiguration: AwsNimbleS1oInput
  studioName: String!
  tags: JSON
  userRoleArn: String!
}

input AwsNimbleS1oInput {
  keyArn: String
  keyType: String!
}

type AwsNimbleCreateStudioComponentOutput {
  studioComponent: AwsNimbleS2r
}

type AwsNimbleS2r {
  arn: String
  configuration: AwsNimbleS1y
  createdAt: Date
  createdBy: String
  description: String
  ec2SecurityGroupIds: [String]
  initializationScripts: [AwsNimbleS2e]
  name: String
  scriptParameters: [AwsNimbleS2k]
  state: String
  statusCode: String
  statusMessage: String
  studioComponentId: String
  subtype: String
  tags: JSON
  type: String
  updatedAt: Date
  updatedBy: String
}

type AwsNimbleS1y {
  activeDirectoryConfiguration: AwsNimbleS1yActiveDirectoryConfiguration
  computeFarmConfiguration: AwsNimbleS1yComputeFarmConfiguration
  licenseServiceConfiguration: AwsNimbleS1yLicenseServiceConfiguration
  sharedFileSystemConfiguration: AwsNimbleS1ySharedFileSystemConfiguration
}

type AwsNimbleS1yActiveDirectoryConfiguration {
  computerAttributes: [AwsNimbleS20]
  directoryId: String
  organizationalUnitDistinguishedName: String
}

type AwsNimbleS20 {
  name: String
  value: String
}

type AwsNimbleS1yComputeFarmConfiguration {
  activeDirectoryUser: String
  endpoint: String
}

type AwsNimbleS1yLicenseServiceConfiguration {
  endpoint: String
}

type AwsNimbleS1ySharedFileSystemConfiguration {
  endpoint: String
  fileSystemId: String
  linuxMountPoint: String
  shareName: String
  windowsMountDrive: String
}

type AwsNimbleS2e {
  launchProfileProtocolVersion: String
  platform: String
  runContext: String
  script: String
}

type AwsNimbleS2k {
  key: String
  value: String
}

input AwsNimbleCreateStudioComponentInput {
  clientToken: String
  configuration: AwsNimbleS1yInput
  description: String
  ec2SecurityGroupIds: [String]
  initializationScripts: [AwsNimbleS2eInput]
  name: String!
  scriptParameters: [AwsNimbleS2kInput]
  studioId: String!
  subtype: String
  tags: JSON
  type: String!
}

input AwsNimbleS1yInput {
  activeDirectoryConfiguration: AwsNimbleS1yActiveDirectoryConfigurationInput
  computeFarmConfiguration: AwsNimbleS1yComputeFarmConfigurationInput
  licenseServiceConfiguration: AwsNimbleS1yLicenseServiceConfigurationInput
  sharedFileSystemConfiguration: AwsNimbleS1ySharedFileSystemConfigurationInput
}

input AwsNimbleS1yActiveDirectoryConfigurationInput {
  computerAttributes: [AwsNimbleS20Input]
  directoryId: String
  organizationalUnitDistinguishedName: String
}

input AwsNimbleS20Input {
  name: String
  value: String
}

input AwsNimbleS1yComputeFarmConfigurationInput {
  activeDirectoryUser: String
  endpoint: String
}

input AwsNimbleS1yLicenseServiceConfigurationInput {
  endpoint: String
}

input AwsNimbleS1ySharedFileSystemConfigurationInput {
  endpoint: String
  fileSystemId: String
  linuxMountPoint: String
  shareName: String
  windowsMountDrive: String
}

input AwsNimbleS2eInput {
  launchProfileProtocolVersion: String
  platform: String
  runContext: String
  script: String
}

input AwsNimbleS2kInput {
  key: String
  value: String
}

type AwsNimbleDeleteLaunchProfileOutput {
  launchProfile: AwsNimbleSs
}

input AwsNimbleDeleteLaunchProfileInput {
  clientToken: String
  launchProfileId: String!
  studioId: String!
}

input AwsNimbleDeleteLaunchProfileMemberInput {
  clientToken: String
  launchProfileId: String!
  principalId: String!
  studioId: String!
}

type AwsNimbleDeleteStreamingImageOutput {
  streamingImage: AwsNimbleS12
}

input AwsNimbleDeleteStreamingImageInput {
  clientToken: String
  streamingImageId: String!
  studioId: String!
}

type AwsNimbleDeleteStreamingSessionOutput {
  session: AwsNimbleS1c
}

input AwsNimbleDeleteStreamingSessionInput {
  clientToken: String
  sessionId: String!
  studioId: String!
}

type AwsNimbleDeleteStudioOutput {
  studio: AwsNimbleS1t
}

input AwsNimbleDeleteStudioInput {
  clientToken: String
  studioId: String!
}

type AwsNimbleDeleteStudioComponentOutput {
  studioComponent: AwsNimbleS2r
}

input AwsNimbleDeleteStudioComponentInput {
  clientToken: String
  studioComponentId: String!
  studioId: String!
}

input AwsNimbleDeleteStudioMemberInput {
  clientToken: String
  principalId: String!
  studioId: String!
}

type AwsNimbleGetEulaOutput {
  eula: AwsNimbleS3b
}

type AwsNimbleS3b {
  content: String
  createdAt: Date
  eulaId: String
  name: String
  updatedAt: Date
}

input AwsNimbleGetEulaInput {
  eulaId: String!
}

type AwsNimbleGetLaunchProfileOutput {
  launchProfile: AwsNimbleSs
}

input AwsNimbleGetLaunchProfileInput {
  launchProfileId: String!
  studioId: String!
}

type AwsNimbleGetLaunchProfileDetailsOutput {
  launchProfile: AwsNimbleSs
  streamingImages: [AwsNimbleS12]
  studioComponentSummaries: [AwsNimbleGetLaunchProfileDetailsOutputStudioComponentSummaries]
}

type AwsNimbleGetLaunchProfileDetailsOutputStudioComponentSummaries {
  createdAt: Date
  createdBy: String
  description: String
  name: String
  studioComponentId: String
  subtype: String
  type: String
  updatedAt: Date
  updatedBy: String
}

input AwsNimbleGetLaunchProfileDetailsInput {
  launchProfileId: String!
  studioId: String!
}

type AwsNimbleGetLaunchProfileInitializationOutput {
  launchProfileInitialization: AwsNimbleGetLaunchProfileInitializationOutputLaunchProfileInitialization
}

type AwsNimbleGetLaunchProfileInitializationOutputLaunchProfileInitialization {
  activeDirectory: AwsNimbleGetLaunchProfileInitializationOutputLaunchProfileInitializationActiveDirectory
  ec2SecurityGroupIds: [String]
  launchProfileId: String
  launchProfileProtocolVersion: String
  launchPurpose: String
  name: String
  platform: String
  systemInitializationScripts: [AwsNimbleS3t]
  userInitializationScripts: [AwsNimbleS3t]
}

type AwsNimbleGetLaunchProfileInitializationOutputLaunchProfileInitializationActiveDirectory {
  computerAttributes: [AwsNimbleS20]
  directoryId: String
  directoryName: String
  dnsIpAddresses: [String]
  organizationalUnitDistinguishedName: String
  studioComponentId: String
  studioComponentName: String
}

type AwsNimbleS3t {
  script: String
  studioComponentId: String
  studioComponentName: String
}

input AwsNimbleGetLaunchProfileInitializationInput {
  launchProfileId: String!
  launchProfileProtocolVersions: [String]!
  launchPurpose: String!
  platform: String!
  studioId: String!
}

type AwsNimbleGetLaunchProfileMemberOutput {
  member: AwsNimbleS3x
}

type AwsNimbleS3x {
  identityStoreId: String
  persona: String
  principalId: String
}

input AwsNimbleGetLaunchProfileMemberInput {
  launchProfileId: String!
  principalId: String!
  studioId: String!
}

type AwsNimbleGetStreamingImageOutput {
  streamingImage: AwsNimbleS12
}

input AwsNimbleGetStreamingImageInput {
  streamingImageId: String!
  studioId: String!
}

type AwsNimbleGetStreamingSessionOutput {
  session: AwsNimbleS1c
}

input AwsNimbleGetStreamingSessionInput {
  sessionId: String!
  studioId: String!
}

type AwsNimbleGetStreamingSessionStreamOutput {
  stream: AwsNimbleS1j
}

input AwsNimbleGetStreamingSessionStreamInput {
  sessionId: String!
  streamId: String!
  studioId: String!
}

type AwsNimbleGetStudioOutput {
  studio: AwsNimbleS1t
}

input AwsNimbleGetStudioInput {
  studioId: String!
}

type AwsNimbleGetStudioComponentOutput {
  studioComponent: AwsNimbleS2r
}

input AwsNimbleGetStudioComponentInput {
  studioComponentId: String!
  studioId: String!
}

type AwsNimbleGetStudioMemberOutput {
  member: AwsNimbleS4b
}

type AwsNimbleS4b {
  identityStoreId: String
  persona: String
  principalId: String
}

input AwsNimbleGetStudioMemberInput {
  principalId: String!
  studioId: String!
}

type AwsNimbleListEulaAcceptancesOutput {
  eulaAcceptances: [AwsNimbleS6]
  nextToken: String
}

input AwsNimbleListEulaAcceptancesInput {
  eulaIds: [String]
  nextToken: String
  studioId: String!
}

type AwsNimbleListEulasOutput {
  eulas: [AwsNimbleS3b]
  nextToken: String
}

input AwsNimbleListEulasInput {
  eulaIds: [String]
  nextToken: String
}

type AwsNimbleListLaunchProfileMembersOutput {
  members: [AwsNimbleS3x]
  nextToken: String
}

input AwsNimbleListLaunchProfileMembersInput {
  launchProfileId: String!
  maxResults: Int
  nextToken: String
  studioId: String!
}

type AwsNimbleListLaunchProfilesOutput {
  launchProfiles: [AwsNimbleSs]
  nextToken: String
}

input AwsNimbleListLaunchProfilesInput {
  maxResults: Int
  nextToken: String
  principalId: String
  states: [String]
  studioId: String!
}

type AwsNimbleListStreamingImagesOutput {
  nextToken: String
  streamingImages: [AwsNimbleS12]
}

input AwsNimbleListStreamingImagesInput {
  nextToken: String
  owner: String
  studioId: String!
}

type AwsNimbleListStreamingSessionsOutput {
  nextToken: String
  sessions: [AwsNimbleS1c]
}

input AwsNimbleListStreamingSessionsInput {
  createdBy: String
  nextToken: String
  sessionIds: String
  studioId: String!
}

type AwsNimbleListStudioComponentsOutput {
  nextToken: String
  studioComponents: [AwsNimbleS2r]
}

input AwsNimbleListStudioComponentsInput {
  maxResults: Int
  nextToken: String
  states: [String]
  studioId: String!
  types: [String]
}

type AwsNimbleListStudioMembersOutput {
  members: [AwsNimbleS4b]
  nextToken: String
}

input AwsNimbleListStudioMembersInput {
  maxResults: Int
  nextToken: String
  studioId: String!
}

type AwsNimbleListStudiosOutput {
  nextToken: String
  studios: [AwsNimbleS1t]
}

input AwsNimbleListStudiosInput {
  nextToken: String
}

type AwsNimbleListTagsForResourceOutput {
  tags: JSON
}

input AwsNimbleListTagsForResourceInput {
  resourceArn: String!
}

input AwsNimblePutLaunchProfileMembersInput {
  clientToken: String
  identityStoreId: String!
  launchProfileId: String!
  members: [AwsNimblePutLaunchProfileMembersMembersInput]!
  studioId: String!
}

input AwsNimblePutLaunchProfileMembersMembersInput {
  persona: String!
  principalId: String!
}

input AwsNimblePutStudioMembersInput {
  clientToken: String
  identityStoreId: String!
  members: [AwsNimblePutStudioMembersMembersInput]!
  studioId: String!
}

input AwsNimblePutStudioMembersMembersInput {
  persona: String!
  principalId: String!
}

type AwsNimbleStartStudioSSOConfigurationRepairOutput {
  studio: AwsNimbleS1t
}

input AwsNimbleStartStudioSSOConfigurationRepairInput {
  clientToken: String
  studioId: String!
}

input AwsNimbleTagResourceInput {
  resourceArn: String!
  tags: JSON
}

input AwsNimbleUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsNimbleUpdateLaunchProfileOutput {
  launchProfile: AwsNimbleSs
}

input AwsNimbleUpdateLaunchProfileInput {
  clientToken: String
  description: String
  launchProfileId: String!
  launchProfileProtocolVersions: [String]
  name: String
  streamConfiguration: AwsNimbleSiInput
  studioComponentIds: [String]
  studioId: String!
}

type AwsNimbleUpdateLaunchProfileMemberOutput {
  member: AwsNimbleS3x
}

input AwsNimbleUpdateLaunchProfileMemberInput {
  clientToken: String
  launchProfileId: String!
  persona: String!
  principalId: String!
  studioId: String!
}

type AwsNimbleUpdateStreamingImageOutput {
  streamingImage: AwsNimbleS12
}

input AwsNimbleUpdateStreamingImageInput {
  clientToken: String
  description: String
  name: String
  streamingImageId: String!
  studioId: String!
}

type AwsNimbleUpdateStudioOutput {
  studio: AwsNimbleS1t
}

input AwsNimbleUpdateStudioInput {
  adminRoleArn: String
  clientToken: String
  displayName: String
  studioId: String!
  userRoleArn: String
}

type AwsNimbleUpdateStudioComponentOutput {
  studioComponent: AwsNimbleS2r
}

input AwsNimbleUpdateStudioComponentInput {
  clientToken: String
  configuration: AwsNimbleS1yInput
  description: String
  ec2SecurityGroupIds: [String]
  initializationScripts: [AwsNimbleS2eInput]
  name: String
  scriptParameters: [AwsNimbleS2kInput]
  studioComponentId: String!
  studioId: String!
  subtype: String
  type: String
}

"""AWS OpsWorks (2013-02-18)"""
type AwsOpsWorks {
  assignInstance(input: AwsOpsWorksAssignInstanceInput!, config: AwsConfig): JSON
  assignVolume(input: AwsOpsWorksAssignVolumeInput!, config: AwsConfig): JSON
  associateElasticIp(input: AwsOpsWorksAssociateElasticIpInput!, config: AwsConfig): JSON
  attachElasticLoadBalancer(input: AwsOpsWorksAttachElasticLoadBalancerInput!, config: AwsConfig): JSON
  cloneStack(input: AwsOpsWorksCloneStackInput!, config: AwsConfig): AwsOpsWorksCloneStackOutput
  createApp(input: AwsOpsWorksCreateAppInput!, config: AwsConfig): AwsOpsWorksCreateAppOutput
  createDeployment(input: AwsOpsWorksCreateDeploymentInput!, config: AwsConfig): AwsOpsWorksCreateDeploymentOutput
  createInstance(input: AwsOpsWorksCreateInstanceInput!, config: AwsConfig): AwsOpsWorksCreateInstanceOutput
  createLayer(input: AwsOpsWorksCreateLayerInput!, config: AwsConfig): AwsOpsWorksCreateLayerOutput
  createStack(input: AwsOpsWorksCreateStackInput!, config: AwsConfig): AwsOpsWorksCreateStackOutput
  createUserProfile(input: AwsOpsWorksCreateUserProfileInput!, config: AwsConfig): AwsOpsWorksCreateUserProfileOutput
  deleteApp(input: AwsOpsWorksDeleteAppInput!, config: AwsConfig): JSON
  deleteInstance(input: AwsOpsWorksDeleteInstanceInput!, config: AwsConfig): JSON
  deleteLayer(input: AwsOpsWorksDeleteLayerInput!, config: AwsConfig): JSON
  deleteStack(input: AwsOpsWorksDeleteStackInput!, config: AwsConfig): JSON
  deleteUserProfile(input: AwsOpsWorksDeleteUserProfileInput!, config: AwsConfig): JSON
  deregisterEcsCluster(input: AwsOpsWorksDeregisterEcsClusterInput!, config: AwsConfig): JSON
  deregisterElasticIp(input: AwsOpsWorksDeregisterElasticIpInput!, config: AwsConfig): JSON
  deregisterInstance(input: AwsOpsWorksDeregisterInstanceInput!, config: AwsConfig): JSON
  deregisterRdsDbInstance(input: AwsOpsWorksDeregisterRdsDbInstanceInput!, config: AwsConfig): JSON
  deregisterVolume(input: AwsOpsWorksDeregisterVolumeInput!, config: AwsConfig): JSON
  describeAgentVersions(input: AwsOpsWorksDescribeAgentVersionsInput, config: AwsConfig): AwsOpsWorksDescribeAgentVersionsOutput
  describeApps(input: AwsOpsWorksDescribeAppsInput, config: AwsConfig): AwsOpsWorksDescribeAppsOutput
  describeCommands(input: AwsOpsWorksDescribeCommandsInput, config: AwsConfig): AwsOpsWorksDescribeCommandsOutput
  describeDeployments(input: AwsOpsWorksDescribeDeploymentsInput, config: AwsConfig): AwsOpsWorksDescribeDeploymentsOutput
  describeEcsClusters(input: AwsOpsWorksDescribeEcsClustersInput, config: AwsConfig): AwsOpsWorksDescribeEcsClustersOutput
  describeElasticIps(input: AwsOpsWorksDescribeElasticIpsInput, config: AwsConfig): AwsOpsWorksDescribeElasticIpsOutput
  describeElasticLoadBalancers(input: AwsOpsWorksDescribeElasticLoadBalancersInput, config: AwsConfig): AwsOpsWorksDescribeElasticLoadBalancersOutput
  describeInstances(input: AwsOpsWorksDescribeInstancesInput, config: AwsConfig): AwsOpsWorksDescribeInstancesOutput
  describeLayers(input: AwsOpsWorksDescribeLayersInput, config: AwsConfig): AwsOpsWorksDescribeLayersOutput
  describeLoadBasedAutoScaling(input: AwsOpsWorksDescribeLoadBasedAutoScalingInput!, config: AwsConfig): AwsOpsWorksDescribeLoadBasedAutoScalingOutput
  describeMyUserProfile(config: AwsConfig): AwsOpsWorksDescribeMyUserProfileOutput
  describeOperatingSystems(config: AwsConfig): AwsOpsWorksDescribeOperatingSystemsOutput
  describePermissions(input: AwsOpsWorksDescribePermissionsInput, config: AwsConfig): AwsOpsWorksDescribePermissionsOutput
  describeRaidArrays(input: AwsOpsWorksDescribeRaidArraysInput, config: AwsConfig): AwsOpsWorksDescribeRaidArraysOutput
  describeRdsDbInstances(input: AwsOpsWorksDescribeRdsDbInstancesInput!, config: AwsConfig): AwsOpsWorksDescribeRdsDbInstancesOutput
  describeServiceErrors(input: AwsOpsWorksDescribeServiceErrorsInput, config: AwsConfig): AwsOpsWorksDescribeServiceErrorsOutput
  describeStackProvisioningParameters(input: AwsOpsWorksDescribeStackProvisioningParametersInput!, config: AwsConfig): AwsOpsWorksDescribeStackProvisioningParametersOutput
  describeStackSummary(input: AwsOpsWorksDescribeStackSummaryInput!, config: AwsConfig): AwsOpsWorksDescribeStackSummaryOutput
  describeStacks(input: AwsOpsWorksDescribeStacksInput, config: AwsConfig): AwsOpsWorksDescribeStacksOutput
  describeTimeBasedAutoScaling(input: AwsOpsWorksDescribeTimeBasedAutoScalingInput!, config: AwsConfig): AwsOpsWorksDescribeTimeBasedAutoScalingOutput
  describeUserProfiles(input: AwsOpsWorksDescribeUserProfilesInput, config: AwsConfig): AwsOpsWorksDescribeUserProfilesOutput
  describeVolumes(input: AwsOpsWorksDescribeVolumesInput, config: AwsConfig): AwsOpsWorksDescribeVolumesOutput
  detachElasticLoadBalancer(input: AwsOpsWorksDetachElasticLoadBalancerInput!, config: AwsConfig): JSON
  disassociateElasticIp(input: AwsOpsWorksDisassociateElasticIpInput!, config: AwsConfig): JSON
  getHostnameSuggestion(input: AwsOpsWorksGetHostnameSuggestionInput!, config: AwsConfig): AwsOpsWorksGetHostnameSuggestionOutput
  grantAccess(input: AwsOpsWorksGrantAccessInput!, config: AwsConfig): AwsOpsWorksGrantAccessOutput
  listTags(input: AwsOpsWorksListTagsInput!, config: AwsConfig): AwsOpsWorksListTagsOutput
  rebootInstance(input: AwsOpsWorksRebootInstanceInput!, config: AwsConfig): JSON
  registerEcsCluster(input: AwsOpsWorksRegisterEcsClusterInput!, config: AwsConfig): AwsOpsWorksRegisterEcsClusterOutput
  registerElasticIp(input: AwsOpsWorksRegisterElasticIpInput!, config: AwsConfig): AwsOpsWorksRegisterElasticIpOutput
  registerInstance(input: AwsOpsWorksRegisterInstanceInput!, config: AwsConfig): AwsOpsWorksRegisterInstanceOutput
  registerRdsDbInstance(input: AwsOpsWorksRegisterRdsDbInstanceInput!, config: AwsConfig): JSON
  registerVolume(input: AwsOpsWorksRegisterVolumeInput!, config: AwsConfig): AwsOpsWorksRegisterVolumeOutput
  setLoadBasedAutoScaling(input: AwsOpsWorksSetLoadBasedAutoScalingInput!, config: AwsConfig): JSON
  setPermission(input: AwsOpsWorksSetPermissionInput!, config: AwsConfig): JSON
  setTimeBasedAutoScaling(input: AwsOpsWorksSetTimeBasedAutoScalingInput!, config: AwsConfig): JSON
  startInstance(input: AwsOpsWorksStartInstanceInput!, config: AwsConfig): JSON
  startStack(input: AwsOpsWorksStartStackInput!, config: AwsConfig): JSON
  stopInstance(input: AwsOpsWorksStopInstanceInput!, config: AwsConfig): JSON
  stopStack(input: AwsOpsWorksStopStackInput!, config: AwsConfig): JSON
  tagResource(input: AwsOpsWorksTagResourceInput!, config: AwsConfig): JSON
  unassignInstance(input: AwsOpsWorksUnassignInstanceInput!, config: AwsConfig): JSON
  unassignVolume(input: AwsOpsWorksUnassignVolumeInput!, config: AwsConfig): JSON
  untagResource(input: AwsOpsWorksUntagResourceInput!, config: AwsConfig): JSON
  updateApp(input: AwsOpsWorksUpdateAppInput!, config: AwsConfig): JSON
  updateElasticIp(input: AwsOpsWorksUpdateElasticIpInput!, config: AwsConfig): JSON
  updateInstance(input: AwsOpsWorksUpdateInstanceInput!, config: AwsConfig): JSON
  updateLayer(input: AwsOpsWorksUpdateLayerInput!, config: AwsConfig): JSON
  updateMyUserProfile(input: AwsOpsWorksUpdateMyUserProfileInput, config: AwsConfig): JSON
  updateRdsDbInstance(input: AwsOpsWorksUpdateRdsDbInstanceInput!, config: AwsConfig): JSON
  updateStack(input: AwsOpsWorksUpdateStackInput!, config: AwsConfig): JSON
  updateUserProfile(input: AwsOpsWorksUpdateUserProfileInput!, config: AwsConfig): JSON
  updateVolume(input: AwsOpsWorksUpdateVolumeInput!, config: AwsConfig): JSON
}

input AwsOpsWorksAssignInstanceInput {
  InstanceId: String!
  LayerIds: [String]!
}

input AwsOpsWorksAssignVolumeInput {
  VolumeId: String!
  InstanceId: String
}

input AwsOpsWorksAssociateElasticIpInput {
  ElasticIp: String!
  InstanceId: String
}

input AwsOpsWorksAttachElasticLoadBalancerInput {
  ElasticLoadBalancerName: String!
  LayerId: String!
}

type AwsOpsWorksCloneStackOutput {
  StackId: String
}

input AwsOpsWorksCloneStackInput {
  SourceStackId: String!
  Name: String
  Region: String
  VpcId: String
  Attributes: JSON
  ServiceRoleArn: String!
  DefaultInstanceProfileArn: String
  DefaultOs: String
  HostnameTheme: String
  DefaultAvailabilityZone: String
  DefaultSubnetId: String
  CustomJson: String
  ConfigurationManager: AwsOpsWorksSaInput
  ChefConfiguration: AwsOpsWorksSbInput
  UseCustomCookbooks: Boolean
  UseOpsworksSecurityGroups: Boolean
  CustomCookbooksSource: AwsOpsWorksSdInput
  DefaultSshKeyName: String
  ClonePermissions: Boolean
  CloneAppIds: [String]
  DefaultRootDeviceType: String
  AgentVersion: String
}

input AwsOpsWorksSaInput {
  Name: String
  Version: String
}

input AwsOpsWorksSbInput {
  ManageBerkshelf: Boolean
  BerkshelfVersion: String
}

input AwsOpsWorksSdInput {
  Type: String
  Url: String
  Username: String
  Password: String
  SshKey: String
  Revision: String
}

type AwsOpsWorksCreateAppOutput {
  AppId: String
}

input AwsOpsWorksCreateAppInput {
  StackId: String!
  Shortname: String
  Name: String!
  Description: String
  DataSources: [AwsOpsWorksSiInput]
  Type: String!
  AppSource: AwsOpsWorksSdInput
  Domains: [String]
  EnableSsl: Boolean
  SslConfiguration: AwsOpsWorksSlInput
  Attributes: JSON
  Environment: [AwsOpsWorksSoInput]
}

input AwsOpsWorksSiInput {
  Type: String
  Arn: String
  DatabaseName: String
}

input AwsOpsWorksSlInput {
  Certificate: String!
  PrivateKey: String!
  Chain: String
}

input AwsOpsWorksSoInput {
  Key: String!
  Value: String!
  Secure: Boolean
}

type AwsOpsWorksCreateDeploymentOutput {
  DeploymentId: String
}

input AwsOpsWorksCreateDeploymentInput {
  StackId: String!
  AppId: String
  InstanceIds: [String]
  LayerIds: [String]
  Command: AwsOpsWorksSsInput!
  Comment: String
  CustomJson: String
}

input AwsOpsWorksSsInput {
  Name: String!
  Args: JSON
}

type AwsOpsWorksCreateInstanceOutput {
  InstanceId: String
}

input AwsOpsWorksCreateInstanceInput {
  StackId: String!
  LayerIds: [String]!
  InstanceType: String!
  AutoScalingType: String
  Hostname: String
  Os: String
  AmiId: String
  SshKeyName: String
  AvailabilityZone: String
  VirtualizationType: String
  SubnetId: String
  Architecture: String
  RootDeviceType: String
  BlockDeviceMappings: [AwsOpsWorksSzInput]
  InstallUpdatesOnBoot: Boolean
  EbsOptimized: Boolean
  AgentVersion: String
  Tenancy: String
}

input AwsOpsWorksSzInput {
  DeviceName: String
  NoDevice: String
  VirtualName: String
  Ebs: AwsOpsWorksSzEbsInput
}

input AwsOpsWorksSzEbsInput {
  SnapshotId: String
  Iops: Int
  VolumeSize: Int
  VolumeType: String
  DeleteOnTermination: Boolean
}

type AwsOpsWorksCreateLayerOutput {
  LayerId: String
}

input AwsOpsWorksCreateLayerInput {
  StackId: String!
  Type: String!
  Name: String!
  Shortname: String!
  Attributes: JSON
  CloudWatchLogsConfiguration: AwsOpsWorksS19Input
  CustomInstanceProfileArn: String
  CustomJson: String
  CustomSecurityGroupIds: [String]
  Packages: [String]
  VolumeConfigurations: [AwsOpsWorksS1fInput]
  EnableAutoHealing: Boolean
  AutoAssignElasticIps: Boolean
  AutoAssignPublicIps: Boolean
  CustomRecipes: AwsOpsWorksS1hInput
  InstallUpdatesOnBoot: Boolean
  UseEbsOptimizedInstances: Boolean
  LifecycleEventConfiguration: AwsOpsWorksS1iInput
}

input AwsOpsWorksS19Input {
  Enabled: Boolean
  LogStreams: [AwsOpsWorksS19LogStreamsInput]
}

input AwsOpsWorksS19LogStreamsInput {
  LogGroupName: String
  DatetimeFormat: String
  TimeZone: String
  File: String
  FileFingerprintLines: String
  MultiLineStartPattern: String
  InitialPosition: String
  Encoding: String
  BufferDuration: Int
  BatchCount: Int
  BatchSize: Int
}

input AwsOpsWorksS1fInput {
  MountPoint: String!
  RaidLevel: Int
  NumberOfDisks: Int!
  Size: Int!
  VolumeType: String
  Iops: Int
  Encrypted: Boolean
}

input AwsOpsWorksS1hInput {
  Setup: [String]
  Configure: [String]
  Deploy: [String]
  Undeploy: [String]
  Shutdown: [String]
}

input AwsOpsWorksS1iInput {
  Shutdown: AwsOpsWorksS1iShutdownInput
}

input AwsOpsWorksS1iShutdownInput {
  ExecutionTimeout: Int
  DelayUntilElbConnectionsDrained: Boolean
}

type AwsOpsWorksCreateStackOutput {
  StackId: String
}

input AwsOpsWorksCreateStackInput {
  Name: String!
  Region: String!
  VpcId: String
  Attributes: JSON
  ServiceRoleArn: String!
  DefaultInstanceProfileArn: String!
  DefaultOs: String
  HostnameTheme: String
  DefaultAvailabilityZone: String
  DefaultSubnetId: String
  CustomJson: String
  ConfigurationManager: AwsOpsWorksSaInput
  ChefConfiguration: AwsOpsWorksSbInput
  UseCustomCookbooks: Boolean
  UseOpsworksSecurityGroups: Boolean
  CustomCookbooksSource: AwsOpsWorksSdInput
  DefaultSshKeyName: String
  DefaultRootDeviceType: String
  AgentVersion: String
}

type AwsOpsWorksCreateUserProfileOutput {
  IamUserArn: String
}

input AwsOpsWorksCreateUserProfileInput {
  IamUserArn: String!
  SshUsername: String
  SshPublicKey: String
  AllowSelfManagement: Boolean
}

input AwsOpsWorksDeleteAppInput {
  AppId: String!
}

input AwsOpsWorksDeleteInstanceInput {
  InstanceId: String!
  DeleteElasticIp: Boolean
  DeleteVolumes: Boolean
}

input AwsOpsWorksDeleteLayerInput {
  LayerId: String!
}

input AwsOpsWorksDeleteStackInput {
  StackId: String!
}

input AwsOpsWorksDeleteUserProfileInput {
  IamUserArn: String!
}

input AwsOpsWorksDeregisterEcsClusterInput {
  EcsClusterArn: String!
}

input AwsOpsWorksDeregisterElasticIpInput {
  ElasticIp: String!
}

input AwsOpsWorksDeregisterInstanceInput {
  InstanceId: String!
}

input AwsOpsWorksDeregisterRdsDbInstanceInput {
  RdsDbInstanceArn: String!
}

input AwsOpsWorksDeregisterVolumeInput {
  VolumeId: String!
}

type AwsOpsWorksDescribeAgentVersionsOutput {
  AgentVersions: [AwsOpsWorksDescribeAgentVersionsOutputAgentVersions]
}

type AwsOpsWorksDescribeAgentVersionsOutputAgentVersions {
  Version: String
  ConfigurationManager: AwsOpsWorksSa
}

type AwsOpsWorksSa {
  Name: String
  Version: String
}

input AwsOpsWorksDescribeAgentVersionsInput {
  StackId: String
  ConfigurationManager: AwsOpsWorksSaInput
}

type AwsOpsWorksDescribeAppsOutput {
  Apps: [AwsOpsWorksDescribeAppsOutputApps]
}

type AwsOpsWorksDescribeAppsOutputApps {
  AppId: String
  StackId: String
  Shortname: String
  Name: String
  Description: String
  DataSources: [AwsOpsWorksSi]
  Type: String
  AppSource: AwsOpsWorksSd
  Domains: [String]
  EnableSsl: Boolean
  SslConfiguration: AwsOpsWorksSl
  Attributes: JSON
  CreatedAt: String
  Environment: [AwsOpsWorksSo]
}

type AwsOpsWorksSi {
  Type: String
  Arn: String
  DatabaseName: String
}

type AwsOpsWorksSd {
  Type: String
  Url: String
  Username: String
  Password: String
  SshKey: String
  Revision: String
}

type AwsOpsWorksSl {
  Certificate: String!
  PrivateKey: String!
  Chain: String
}

type AwsOpsWorksSo {
  Key: String!
  Value: String!
  Secure: Boolean
}

input AwsOpsWorksDescribeAppsInput {
  StackId: String
  AppIds: [String]
}

type AwsOpsWorksDescribeCommandsOutput {
  Commands: [AwsOpsWorksDescribeCommandsOutputCommands]
}

type AwsOpsWorksDescribeCommandsOutputCommands {
  CommandId: String
  InstanceId: String
  DeploymentId: String
  CreatedAt: String
  AcknowledgedAt: String
  CompletedAt: String
  Status: String
  ExitCode: Int
  LogUrl: String
  Type: String
}

input AwsOpsWorksDescribeCommandsInput {
  DeploymentId: String
  InstanceId: String
  CommandIds: [String]
}

type AwsOpsWorksDescribeDeploymentsOutput {
  Deployments: [AwsOpsWorksDescribeDeploymentsOutputDeployments]
}

type AwsOpsWorksDescribeDeploymentsOutputDeployments {
  DeploymentId: String
  StackId: String
  AppId: String
  CreatedAt: String
  CompletedAt: String
  Duration: Int
  IamUserArn: String
  Comment: String
  Command: AwsOpsWorksSs
  Status: String
  CustomJson: String
  InstanceIds: [String]
}

type AwsOpsWorksSs {
  Name: String!
  Args: JSON
}

input AwsOpsWorksDescribeDeploymentsInput {
  StackId: String
  AppId: String
  DeploymentIds: [String]
}

type AwsOpsWorksDescribeEcsClustersOutput {
  EcsClusters: [AwsOpsWorksDescribeEcsClustersOutputEcsClusters]
  NextToken: String
}

type AwsOpsWorksDescribeEcsClustersOutputEcsClusters {
  EcsClusterArn: String
  EcsClusterName: String
  StackId: String
  RegisteredAt: String
}

input AwsOpsWorksDescribeEcsClustersInput {
  EcsClusterArns: [String]
  StackId: String
  NextToken: String
  MaxResults: Int
}

type AwsOpsWorksDescribeElasticIpsOutput {
  ElasticIps: [AwsOpsWorksDescribeElasticIpsOutputElasticIps]
}

type AwsOpsWorksDescribeElasticIpsOutputElasticIps {
  Ip: String
  Name: String
  Domain: String
  Region: String
  InstanceId: String
}

input AwsOpsWorksDescribeElasticIpsInput {
  InstanceId: String
  StackId: String
  Ips: [String]
}

type AwsOpsWorksDescribeElasticLoadBalancersOutput {
  ElasticLoadBalancers: [AwsOpsWorksDescribeElasticLoadBalancersOutputElasticLoadBalancers]
}

type AwsOpsWorksDescribeElasticLoadBalancersOutputElasticLoadBalancers {
  ElasticLoadBalancerName: String
  Region: String
  DnsName: String
  StackId: String
  LayerId: String
  VpcId: String
  AvailabilityZones: [String]
  SubnetIds: [String]
  Ec2InstanceIds: [String]
}

input AwsOpsWorksDescribeElasticLoadBalancersInput {
  StackId: String
  LayerIds: [String]
}

type AwsOpsWorksDescribeInstancesOutput {
  Instances: [AwsOpsWorksDescribeInstancesOutputInstances]
}

type AwsOpsWorksDescribeInstancesOutputInstances {
  AgentVersion: String
  AmiId: String
  Architecture: String
  Arn: String
  AutoScalingType: String
  AvailabilityZone: String
  BlockDeviceMappings: [AwsOpsWorksSz]
  CreatedAt: String
  EbsOptimized: Boolean
  Ec2InstanceId: String
  EcsClusterArn: String
  EcsContainerInstanceArn: String
  ElasticIp: String
  Hostname: String
  InfrastructureClass: String
  InstallUpdatesOnBoot: Boolean
  InstanceId: String
  InstanceProfileArn: String
  InstanceType: String
  LastServiceErrorId: String
  LayerIds: [String]
  Os: String
  Platform: String
  PrivateDns: String
  PrivateIp: String
  PublicDns: String
  PublicIp: String
  RegisteredBy: String
  ReportedAgentVersion: String
  ReportedOs: AwsOpsWorksDescribeInstancesOutputInstancesReportedOs
  RootDeviceType: String
  RootDeviceVolumeId: String
  SecurityGroupIds: [String]
  SshHostDsaKeyFingerprint: String
  SshHostRsaKeyFingerprint: String
  SshKeyName: String
  StackId: String
  Status: String
  SubnetId: String
  Tenancy: String
  VirtualizationType: String
}

type AwsOpsWorksSz {
  DeviceName: String
  NoDevice: String
  VirtualName: String
  Ebs: AwsOpsWorksSzEbs
}

type AwsOpsWorksSzEbs {
  SnapshotId: String
  Iops: Int
  VolumeSize: Int
  VolumeType: String
  DeleteOnTermination: Boolean
}

type AwsOpsWorksDescribeInstancesOutputInstancesReportedOs {
  Family: String
  Name: String
  Version: String
}

input AwsOpsWorksDescribeInstancesInput {
  StackId: String
  LayerId: String
  InstanceIds: [String]
}

type AwsOpsWorksDescribeLayersOutput {
  Layers: [AwsOpsWorksDescribeLayersOutputLayers]
}

type AwsOpsWorksDescribeLayersOutputLayers {
  Arn: String
  StackId: String
  LayerId: String
  Type: String
  Name: String
  Shortname: String
  Attributes: JSON
  CloudWatchLogsConfiguration: AwsOpsWorksS19
  CustomInstanceProfileArn: String
  CustomJson: String
  CustomSecurityGroupIds: [String]
  DefaultSecurityGroupNames: [String]
  Packages: [String]
  VolumeConfigurations: [AwsOpsWorksS1f]
  EnableAutoHealing: Boolean
  AutoAssignElasticIps: Boolean
  AutoAssignPublicIps: Boolean
  DefaultRecipes: AwsOpsWorksS1h
  CustomRecipes: AwsOpsWorksS1h
  CreatedAt: String
  InstallUpdatesOnBoot: Boolean
  UseEbsOptimizedInstances: Boolean
  LifecycleEventConfiguration: AwsOpsWorksS1i
}

type AwsOpsWorksS19 {
  Enabled: Boolean
  LogStreams: [AwsOpsWorksS19LogStreams]
}

type AwsOpsWorksS19LogStreams {
  LogGroupName: String
  DatetimeFormat: String
  TimeZone: String
  File: String
  FileFingerprintLines: String
  MultiLineStartPattern: String
  InitialPosition: String
  Encoding: String
  BufferDuration: Int
  BatchCount: Int
  BatchSize: Int
}

type AwsOpsWorksS1f {
  MountPoint: String!
  RaidLevel: Int
  NumberOfDisks: Int!
  Size: Int!
  VolumeType: String
  Iops: Int
  Encrypted: Boolean
}

type AwsOpsWorksS1h {
  Setup: [String]
  Configure: [String]
  Deploy: [String]
  Undeploy: [String]
  Shutdown: [String]
}

type AwsOpsWorksS1i {
  Shutdown: AwsOpsWorksS1iShutdown
}

type AwsOpsWorksS1iShutdown {
  ExecutionTimeout: Int
  DelayUntilElbConnectionsDrained: Boolean
}

input AwsOpsWorksDescribeLayersInput {
  StackId: String
  LayerIds: [String]
}

type AwsOpsWorksDescribeLoadBasedAutoScalingOutput {
  LoadBasedAutoScalingConfigurations: [AwsOpsWorksDescribeLoadBasedAutoScalingOutputLoadBasedAutoScalingConfigurations]
}

type AwsOpsWorksDescribeLoadBasedAutoScalingOutputLoadBasedAutoScalingConfigurations {
  LayerId: String
  Enable: Boolean
  UpScaling: AwsOpsWorksS36
  DownScaling: AwsOpsWorksS36
}

type AwsOpsWorksS36 {
  InstanceCount: Int
  ThresholdsWaitTime: Int
  IgnoreMetricsTime: Int
  CpuThreshold: JSON
  MemoryThreshold: JSON
  LoadThreshold: JSON
  Alarms: [String]
}

input AwsOpsWorksDescribeLoadBasedAutoScalingInput {
  LayerIds: [String]!
}

type AwsOpsWorksDescribeMyUserProfileOutput {
  UserProfile: AwsOpsWorksDescribeMyUserProfileOutputUserProfile
}

type AwsOpsWorksDescribeMyUserProfileOutputUserProfile {
  IamUserArn: String
  Name: String
  SshUsername: String
  SshPublicKey: String
}

type AwsOpsWorksDescribeOperatingSystemsOutput {
  OperatingSystems: [AwsOpsWorksDescribeOperatingSystemsOutputOperatingSystems]
}

type AwsOpsWorksDescribeOperatingSystemsOutputOperatingSystems {
  Name: String
  Id: String
  Type: String
  ConfigurationManagers: [AwsOpsWorksDescribeOperatingSystemsOutputOperatingSystemsConfigurationManagers]
  ReportedName: String
  ReportedVersion: String
  Supported: Boolean
}

type AwsOpsWorksDescribeOperatingSystemsOutputOperatingSystemsConfigurationManagers {
  Name: String
  Version: String
}

type AwsOpsWorksDescribePermissionsOutput {
  Permissions: [AwsOpsWorksDescribePermissionsOutputPermissions]
}

type AwsOpsWorksDescribePermissionsOutputPermissions {
  StackId: String
  IamUserArn: String
  AllowSsh: Boolean
  AllowSudo: Boolean
  Level: String
}

input AwsOpsWorksDescribePermissionsInput {
  IamUserArn: String
  StackId: String
}

type AwsOpsWorksDescribeRaidArraysOutput {
  RaidArrays: [AwsOpsWorksDescribeRaidArraysOutputRaidArrays]
}

type AwsOpsWorksDescribeRaidArraysOutputRaidArrays {
  RaidArrayId: String
  InstanceId: String
  Name: String
  RaidLevel: Int
  NumberOfDisks: Int
  Size: Int
  Device: String
  MountPoint: String
  AvailabilityZone: String
  CreatedAt: String
  StackId: String
  VolumeType: String
  Iops: Int
}

input AwsOpsWorksDescribeRaidArraysInput {
  InstanceId: String
  StackId: String
  RaidArrayIds: [String]
}

type AwsOpsWorksDescribeRdsDbInstancesOutput {
  RdsDbInstances: [AwsOpsWorksDescribeRdsDbInstancesOutputRdsDbInstances]
}

type AwsOpsWorksDescribeRdsDbInstancesOutputRdsDbInstances {
  RdsDbInstanceArn: String
  DbInstanceIdentifier: String
  DbUser: String
  DbPassword: String
  Region: String
  Address: String
  Engine: String
  StackId: String
  MissingOnRds: Boolean
}

input AwsOpsWorksDescribeRdsDbInstancesInput {
  StackId: String!
  RdsDbInstanceArns: [String]
}

type AwsOpsWorksDescribeServiceErrorsOutput {
  ServiceErrors: [AwsOpsWorksDescribeServiceErrorsOutputServiceErrors]
}

type AwsOpsWorksDescribeServiceErrorsOutputServiceErrors {
  ServiceErrorId: String
  StackId: String
  InstanceId: String
  Type: String
  Message: String
  CreatedAt: String
}

input AwsOpsWorksDescribeServiceErrorsInput {
  StackId: String
  InstanceId: String
  ServiceErrorIds: [String]
}

type AwsOpsWorksDescribeStackProvisioningParametersOutput {
  AgentInstallerUrl: String
  Parameters: JSON
}

input AwsOpsWorksDescribeStackProvisioningParametersInput {
  StackId: String!
}

type AwsOpsWorksDescribeStackSummaryOutput {
  StackSummary: AwsOpsWorksDescribeStackSummaryOutputStackSummary
}

type AwsOpsWorksDescribeStackSummaryOutputStackSummary {
  StackId: String
  Name: String
  Arn: String
  LayersCount: Int
  AppsCount: Int
  InstancesCount: AwsOpsWorksDescribeStackSummaryOutputStackSummaryInstancesCount
}

type AwsOpsWorksDescribeStackSummaryOutputStackSummaryInstancesCount {
  Assigning: Int
  Booting: Int
  ConnectionLost: Int
  Deregistering: Int
  Online: Int
  Pending: Int
  Rebooting: Int
  Registered: Int
  Registering: Int
  Requested: Int
  RunningSetup: Int
  SetupFailed: Int
  ShuttingDown: Int
  StartFailed: Int
  StopFailed: Int
  Stopped: Int
  Stopping: Int
  Terminated: Int
  Terminating: Int
  Unassigning: Int
}

input AwsOpsWorksDescribeStackSummaryInput {
  StackId: String!
}

type AwsOpsWorksDescribeStacksOutput {
  Stacks: [AwsOpsWorksDescribeStacksOutputStacks]
}

type AwsOpsWorksDescribeStacksOutputStacks {
  StackId: String
  Name: String
  Arn: String
  Region: String
  VpcId: String
  Attributes: JSON
  ServiceRoleArn: String
  DefaultInstanceProfileArn: String
  DefaultOs: String
  HostnameTheme: String
  DefaultAvailabilityZone: String
  DefaultSubnetId: String
  CustomJson: String
  ConfigurationManager: AwsOpsWorksSa
  ChefConfiguration: AwsOpsWorksSb
  UseCustomCookbooks: Boolean
  UseOpsworksSecurityGroups: Boolean
  CustomCookbooksSource: AwsOpsWorksSd
  DefaultSshKeyName: String
  CreatedAt: String
  DefaultRootDeviceType: String
  AgentVersion: String
}

type AwsOpsWorksSb {
  ManageBerkshelf: Boolean
  BerkshelfVersion: String
}

input AwsOpsWorksDescribeStacksInput {
  StackIds: [String]
}

type AwsOpsWorksDescribeTimeBasedAutoScalingOutput {
  TimeBasedAutoScalingConfigurations: [AwsOpsWorksDescribeTimeBasedAutoScalingOutputTimeBasedAutoScalingConfigurations]
}

type AwsOpsWorksDescribeTimeBasedAutoScalingOutputTimeBasedAutoScalingConfigurations {
  InstanceId: String
  AutoScalingSchedule: AwsOpsWorksS4b
}

type AwsOpsWorksS4b {
  Monday: JSON
  Tuesday: JSON
  Wednesday: JSON
  Thursday: JSON
  Friday: JSON
  Saturday: JSON
  Sunday: JSON
}

input AwsOpsWorksDescribeTimeBasedAutoScalingInput {
  InstanceIds: [String]!
}

type AwsOpsWorksDescribeUserProfilesOutput {
  UserProfiles: [AwsOpsWorksDescribeUserProfilesOutputUserProfiles]
}

type AwsOpsWorksDescribeUserProfilesOutputUserProfiles {
  IamUserArn: String
  Name: String
  SshUsername: String
  SshPublicKey: String
  AllowSelfManagement: Boolean
}

input AwsOpsWorksDescribeUserProfilesInput {
  IamUserArns: [String]
}

type AwsOpsWorksDescribeVolumesOutput {
  Volumes: [AwsOpsWorksDescribeVolumesOutputVolumes]
}

type AwsOpsWorksDescribeVolumesOutputVolumes {
  VolumeId: String
  Ec2VolumeId: String
  Name: String
  RaidArrayId: String
  InstanceId: String
  Status: String
  Size: Int
  Device: String
  MountPoint: String
  Region: String
  AvailabilityZone: String
  VolumeType: String
  Iops: Int
  Encrypted: Boolean
}

input AwsOpsWorksDescribeVolumesInput {
  InstanceId: String
  StackId: String
  RaidArrayId: String
  VolumeIds: [String]
}

input AwsOpsWorksDetachElasticLoadBalancerInput {
  ElasticLoadBalancerName: String!
  LayerId: String!
}

input AwsOpsWorksDisassociateElasticIpInput {
  ElasticIp: String!
}

type AwsOpsWorksGetHostnameSuggestionOutput {
  LayerId: String
  Hostname: String
}

input AwsOpsWorksGetHostnameSuggestionInput {
  LayerId: String!
}

type AwsOpsWorksGrantAccessOutput {
  TemporaryCredential: AwsOpsWorksGrantAccessOutputTemporaryCredential
}

type AwsOpsWorksGrantAccessOutputTemporaryCredential {
  Username: String
  Password: String
  ValidForInMinutes: Int
  InstanceId: String
}

input AwsOpsWorksGrantAccessInput {
  InstanceId: String!
  ValidForInMinutes: Int
}

type AwsOpsWorksListTagsOutput {
  Tags: JSON
  NextToken: String
}

input AwsOpsWorksListTagsInput {
  ResourceArn: String!
  MaxResults: Int
  NextToken: String
}

input AwsOpsWorksRebootInstanceInput {
  InstanceId: String!
}

type AwsOpsWorksRegisterEcsClusterOutput {
  EcsClusterArn: String
}

input AwsOpsWorksRegisterEcsClusterInput {
  EcsClusterArn: String!
  StackId: String!
}

type AwsOpsWorksRegisterElasticIpOutput {
  ElasticIp: String
}

input AwsOpsWorksRegisterElasticIpInput {
  ElasticIp: String!
  StackId: String!
}

type AwsOpsWorksRegisterInstanceOutput {
  InstanceId: String
}

input AwsOpsWorksRegisterInstanceInput {
  StackId: String!
  Hostname: String
  PublicIp: String
  PrivateIp: String
  RsaPublicKey: String
  RsaPublicKeyFingerprint: String
  InstanceIdentity: AwsOpsWorksRegisterInstanceInstanceIdentityInput
}

input AwsOpsWorksRegisterInstanceInstanceIdentityInput {
  Document: String
  Signature: String
}

input AwsOpsWorksRegisterRdsDbInstanceInput {
  StackId: String!
  RdsDbInstanceArn: String!
  DbUser: String!
  DbPassword: String!
}

type AwsOpsWorksRegisterVolumeOutput {
  VolumeId: String
}

input AwsOpsWorksRegisterVolumeInput {
  Ec2VolumeId: String
  StackId: String!
}

input AwsOpsWorksSetLoadBasedAutoScalingInput {
  LayerId: String!
  Enable: Boolean
  UpScaling: AwsOpsWorksS36Input
  DownScaling: AwsOpsWorksS36Input
}

input AwsOpsWorksS36Input {
  InstanceCount: Int
  ThresholdsWaitTime: Int
  IgnoreMetricsTime: Int
  CpuThreshold: JSON
  MemoryThreshold: JSON
  LoadThreshold: JSON
  Alarms: [String]
}

input AwsOpsWorksSetPermissionInput {
  StackId: String!
  IamUserArn: String!
  AllowSsh: Boolean
  AllowSudo: Boolean
  Level: String
}

input AwsOpsWorksSetTimeBasedAutoScalingInput {
  InstanceId: String!
  AutoScalingSchedule: AwsOpsWorksS4bInput
}

input AwsOpsWorksS4bInput {
  Monday: JSON
  Tuesday: JSON
  Wednesday: JSON
  Thursday: JSON
  Friday: JSON
  Saturday: JSON
  Sunday: JSON
}

input AwsOpsWorksStartInstanceInput {
  InstanceId: String!
}

input AwsOpsWorksStartStackInput {
  StackId: String!
}

input AwsOpsWorksStopInstanceInput {
  InstanceId: String!
  Force: Boolean
}

input AwsOpsWorksStopStackInput {
  StackId: String!
}

input AwsOpsWorksTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsOpsWorksUnassignInstanceInput {
  InstanceId: String!
}

input AwsOpsWorksUnassignVolumeInput {
  VolumeId: String!
}

input AwsOpsWorksUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsOpsWorksUpdateAppInput {
  AppId: String!
  Name: String
  Description: String
  DataSources: [AwsOpsWorksSiInput]
  Type: String
  AppSource: AwsOpsWorksSdInput
  Domains: [String]
  EnableSsl: Boolean
  SslConfiguration: AwsOpsWorksSlInput
  Attributes: JSON
  Environment: [AwsOpsWorksSoInput]
}

input AwsOpsWorksUpdateElasticIpInput {
  ElasticIp: String!
  Name: String
}

input AwsOpsWorksUpdateInstanceInput {
  InstanceId: String!
  LayerIds: [String]
  InstanceType: String
  AutoScalingType: String
  Hostname: String
  Os: String
  AmiId: String
  SshKeyName: String
  Architecture: String
  InstallUpdatesOnBoot: Boolean
  EbsOptimized: Boolean
  AgentVersion: String
}

input AwsOpsWorksUpdateLayerInput {
  LayerId: String!
  Name: String
  Shortname: String
  Attributes: JSON
  CloudWatchLogsConfiguration: AwsOpsWorksS19Input
  CustomInstanceProfileArn: String
  CustomJson: String
  CustomSecurityGroupIds: [String]
  Packages: [String]
  VolumeConfigurations: [AwsOpsWorksS1fInput]
  EnableAutoHealing: Boolean
  AutoAssignElasticIps: Boolean
  AutoAssignPublicIps: Boolean
  CustomRecipes: AwsOpsWorksS1hInput
  InstallUpdatesOnBoot: Boolean
  UseEbsOptimizedInstances: Boolean
  LifecycleEventConfiguration: AwsOpsWorksS1iInput
}

input AwsOpsWorksUpdateMyUserProfileInput {
  SshPublicKey: String
}

input AwsOpsWorksUpdateRdsDbInstanceInput {
  RdsDbInstanceArn: String!
  DbUser: String
  DbPassword: String
}

input AwsOpsWorksUpdateStackInput {
  StackId: String!
  Name: String
  Attributes: JSON
  ServiceRoleArn: String
  DefaultInstanceProfileArn: String
  DefaultOs: String
  HostnameTheme: String
  DefaultAvailabilityZone: String
  DefaultSubnetId: String
  CustomJson: String
  ConfigurationManager: AwsOpsWorksSaInput
  ChefConfiguration: AwsOpsWorksSbInput
  UseCustomCookbooks: Boolean
  CustomCookbooksSource: AwsOpsWorksSdInput
  DefaultSshKeyName: String
  DefaultRootDeviceType: String
  UseOpsworksSecurityGroups: Boolean
  AgentVersion: String
}

input AwsOpsWorksUpdateUserProfileInput {
  IamUserArn: String!
  SshUsername: String
  SshPublicKey: String
  AllowSelfManagement: Boolean
}

input AwsOpsWorksUpdateVolumeInput {
  VolumeId: String!
  Name: String
  MountPoint: String
}

"""AWS OpsWorks CM (2016-11-01)"""
type AwsOpsWorksCM {
  associateNode(input: AwsOpsWorksCMAssociateNodeInput!, config: AwsConfig): AwsOpsWorksCMAssociateNodeOutput
  createBackup(input: AwsOpsWorksCMCreateBackupInput!, config: AwsConfig): AwsOpsWorksCMCreateBackupOutput
  createServer(input: AwsOpsWorksCMCreateServerInput!, config: AwsConfig): AwsOpsWorksCMCreateServerOutput
  deleteBackup(input: AwsOpsWorksCMDeleteBackupInput!, config: AwsConfig): JSON
  deleteServer(input: AwsOpsWorksCMDeleteServerInput!, config: AwsConfig): JSON
  describeAccountAttributes(input: JSON, config: AwsConfig): AwsOpsWorksCMDescribeAccountAttributesOutput
  describeBackups(input: AwsOpsWorksCMDescribeBackupsInput, config: AwsConfig): AwsOpsWorksCMDescribeBackupsOutput
  describeEvents(input: AwsOpsWorksCMDescribeEventsInput!, config: AwsConfig): AwsOpsWorksCMDescribeEventsOutput
  describeNodeAssociationStatus(input: AwsOpsWorksCMDescribeNodeAssociationStatusInput!, config: AwsConfig): AwsOpsWorksCMDescribeNodeAssociationStatusOutput
  describeServers(input: AwsOpsWorksCMDescribeServersInput, config: AwsConfig): AwsOpsWorksCMDescribeServersOutput
  disassociateNode(input: AwsOpsWorksCMDisassociateNodeInput!, config: AwsConfig): AwsOpsWorksCMDisassociateNodeOutput
  exportServerEngineAttribute(input: AwsOpsWorksCMExportServerEngineAttributeInput!, config: AwsConfig): AwsOpsWorksCMExportServerEngineAttributeOutput
  listTagsForResource(input: AwsOpsWorksCMListTagsForResourceInput!, config: AwsConfig): AwsOpsWorksCMListTagsForResourceOutput
  restoreServer(input: AwsOpsWorksCMRestoreServerInput!, config: AwsConfig): AwsOpsWorksCMRestoreServerOutput
  startMaintenance(input: AwsOpsWorksCMStartMaintenanceInput!, config: AwsConfig): AwsOpsWorksCMStartMaintenanceOutput
  tagResource(input: AwsOpsWorksCMTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsOpsWorksCMUntagResourceInput!, config: AwsConfig): JSON
  updateServer(input: AwsOpsWorksCMUpdateServerInput!, config: AwsConfig): AwsOpsWorksCMUpdateServerOutput
  updateServerEngineAttributes(input: AwsOpsWorksCMUpdateServerEngineAttributesInput!, config: AwsConfig): AwsOpsWorksCMUpdateServerEngineAttributesOutput
}

type AwsOpsWorksCMAssociateNodeOutput {
  NodeAssociationStatusToken: String
}

input AwsOpsWorksCMAssociateNodeInput {
  ServerName: String!
  NodeName: String!
  EngineAttributes: [AwsOpsWorksCMS5Input]!
}

input AwsOpsWorksCMS5Input {
  Name: String
  Value: String
}

type AwsOpsWorksCMCreateBackupOutput {
  Backup: AwsOpsWorksCMSh
}

type AwsOpsWorksCMSh {
  BackupArn: String
  BackupId: String
  BackupType: String
  CreatedAt: Date
  Description: String
  Engine: String
  EngineModel: String
  EngineVersion: String
  InstanceProfileArn: String
  InstanceType: String
  KeyPair: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  S3DataSize: Int
  S3DataUrl: String
  S3LogUrl: String
  SecurityGroupIds: [String]
  ServerName: String
  ServiceRoleArn: String
  Status: String
  StatusDescription: String
  SubnetIds: [String]
  ToolsVersion: String
  UserArn: String
}

input AwsOpsWorksCMCreateBackupInput {
  ServerName: String!
  Description: String
  Tags: [AwsOpsWorksCMScInput]
}

input AwsOpsWorksCMScInput {
  Key: String!
  Value: String!
}

type AwsOpsWorksCMCreateServerOutput {
  Server: AwsOpsWorksCMSz
}

type AwsOpsWorksCMSz {
  AssociatePublicIpAddress: Boolean
  BackupRetentionCount: Int
  ServerName: String
  CreatedAt: Date
  CloudFormationStackArn: String
  CustomDomain: String
  DisableAutomatedBackup: Boolean
  Endpoint: String
  Engine: String
  EngineModel: String
  EngineAttributes: [AwsOpsWorksCMS5]
  EngineVersion: String
  InstanceProfileArn: String
  InstanceType: String
  KeyPair: String
  MaintenanceStatus: String
  PreferredMaintenanceWindow: String
  PreferredBackupWindow: String
  SecurityGroupIds: [String]
  ServiceRoleArn: String
  Status: String
  StatusReason: String
  SubnetIds: [String]
  ServerArn: String
}

type AwsOpsWorksCMS5 {
  Name: String
  Value: String
}

input AwsOpsWorksCMCreateServerInput {
  AssociatePublicIpAddress: Boolean
  CustomDomain: String
  CustomCertificate: String
  CustomPrivateKey: String
  DisableAutomatedBackup: Boolean
  Engine: String!
  EngineModel: String
  EngineVersion: String
  EngineAttributes: [AwsOpsWorksCMS5Input]
  BackupRetentionCount: Int
  ServerName: String!
  InstanceProfileArn: String!
  InstanceType: String!
  KeyPair: String
  PreferredMaintenanceWindow: String
  PreferredBackupWindow: String
  SecurityGroupIds: [String]
  ServiceRoleArn: String!
  SubnetIds: [String]
  Tags: [AwsOpsWorksCMScInput]
  BackupId: String
}

input AwsOpsWorksCMDeleteBackupInput {
  BackupId: String!
}

input AwsOpsWorksCMDeleteServerInput {
  ServerName: String!
}

type AwsOpsWorksCMDescribeAccountAttributesOutput {
  Attributes: [AwsOpsWorksCMDescribeAccountAttributesOutputAttributes]
}

type AwsOpsWorksCMDescribeAccountAttributesOutputAttributes {
  Name: String
  Maximum: Int
  Used: Int
}

type AwsOpsWorksCMDescribeBackupsOutput {
  Backups: [AwsOpsWorksCMSh]
  NextToken: String
}

input AwsOpsWorksCMDescribeBackupsInput {
  BackupId: String
  ServerName: String
  NextToken: String
  MaxResults: Int
}

type AwsOpsWorksCMDescribeEventsOutput {
  ServerEvents: [AwsOpsWorksCMDescribeEventsOutputServerEvents]
  NextToken: String
}

type AwsOpsWorksCMDescribeEventsOutputServerEvents {
  CreatedAt: Date
  ServerName: String
  Message: String
  LogUrl: String
}

input AwsOpsWorksCMDescribeEventsInput {
  ServerName: String!
  NextToken: String
  MaxResults: Int
}

type AwsOpsWorksCMDescribeNodeAssociationStatusOutput {
  NodeAssociationStatus: String
  EngineAttributes: [AwsOpsWorksCMS5]
}

input AwsOpsWorksCMDescribeNodeAssociationStatusInput {
  NodeAssociationStatusToken: String!
  ServerName: String!
}

type AwsOpsWorksCMDescribeServersOutput {
  Servers: [AwsOpsWorksCMSz]
  NextToken: String
}

input AwsOpsWorksCMDescribeServersInput {
  ServerName: String
  NextToken: String
  MaxResults: Int
}

type AwsOpsWorksCMDisassociateNodeOutput {
  NodeAssociationStatusToken: String
}

input AwsOpsWorksCMDisassociateNodeInput {
  ServerName: String!
  NodeName: String!
  EngineAttributes: [AwsOpsWorksCMS5Input]
}

type AwsOpsWorksCMExportServerEngineAttributeOutput {
  EngineAttribute: AwsOpsWorksCMS5
  ServerName: String
}

input AwsOpsWorksCMExportServerEngineAttributeInput {
  ExportAttributeName: String!
  ServerName: String!
  InputAttributes: [AwsOpsWorksCMS5Input]
}

type AwsOpsWorksCMListTagsForResourceOutput {
  Tags: [AwsOpsWorksCMSc]
  NextToken: String
}

type AwsOpsWorksCMSc {
  Key: String!
  Value: String!
}

input AwsOpsWorksCMListTagsForResourceInput {
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsOpsWorksCMRestoreServerOutput {
  Server: AwsOpsWorksCMSz
}

input AwsOpsWorksCMRestoreServerInput {
  BackupId: String!
  ServerName: String!
  InstanceType: String
  KeyPair: String
}

type AwsOpsWorksCMStartMaintenanceOutput {
  Server: AwsOpsWorksCMSz
}

input AwsOpsWorksCMStartMaintenanceInput {
  ServerName: String!
  EngineAttributes: [AwsOpsWorksCMS5Input]
}

input AwsOpsWorksCMTagResourceInput {
  ResourceArn: String!
  Tags: [AwsOpsWorksCMScInput]!
}

input AwsOpsWorksCMUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsOpsWorksCMUpdateServerOutput {
  Server: AwsOpsWorksCMSz
}

input AwsOpsWorksCMUpdateServerInput {
  DisableAutomatedBackup: Boolean
  BackupRetentionCount: Int
  ServerName: String!
  PreferredMaintenanceWindow: String
  PreferredBackupWindow: String
}

type AwsOpsWorksCMUpdateServerEngineAttributesOutput {
  Server: AwsOpsWorksCMSz
}

input AwsOpsWorksCMUpdateServerEngineAttributesInput {
  ServerName: String!
  AttributeName: String!
  AttributeValue: String
}

"""AWS Organizations (2016-11-28)"""
type AwsOrganizations {
  acceptHandshake(input: AwsOrganizationsAcceptHandshakeInput!, config: AwsConfig): AwsOrganizationsAcceptHandshakeOutput
  attachPolicy(input: AwsOrganizationsAttachPolicyInput!, config: AwsConfig): JSON
  cancelHandshake(input: AwsOrganizationsCancelHandshakeInput!, config: AwsConfig): AwsOrganizationsCancelHandshakeOutput
  createAccount(input: AwsOrganizationsCreateAccountInput!, config: AwsConfig): AwsOrganizationsCreateAccountOutput
  createGovCloudAccount(input: AwsOrganizationsCreateGovCloudAccountInput!, config: AwsConfig): AwsOrganizationsCreateGovCloudAccountOutput
  createOrganization(input: AwsOrganizationsCreateOrganizationInput, config: AwsConfig): AwsOrganizationsCreateOrganizationOutput
  createOrganizationalUnit(input: AwsOrganizationsCreateOrganizationalUnitInput!, config: AwsConfig): AwsOrganizationsCreateOrganizationalUnitOutput
  createPolicy(input: AwsOrganizationsCreatePolicyInput!, config: AwsConfig): AwsOrganizationsCreatePolicyOutput
  declineHandshake(input: AwsOrganizationsDeclineHandshakeInput!, config: AwsConfig): AwsOrganizationsDeclineHandshakeOutput
  deleteOrganization(config: AwsConfig): JSON
  deleteOrganizationalUnit(input: AwsOrganizationsDeleteOrganizationalUnitInput!, config: AwsConfig): JSON
  deletePolicy(input: AwsOrganizationsDeletePolicyInput!, config: AwsConfig): JSON
  deregisterDelegatedAdministrator(input: AwsOrganizationsDeregisterDelegatedAdministratorInput!, config: AwsConfig): JSON
  describeAccount(input: AwsOrganizationsDescribeAccountInput!, config: AwsConfig): AwsOrganizationsDescribeAccountOutput
  describeCreateAccountStatus(input: AwsOrganizationsDescribeCreateAccountStatusInput!, config: AwsConfig): AwsOrganizationsDescribeCreateAccountStatusOutput
  describeEffectivePolicy(input: AwsOrganizationsDescribeEffectivePolicyInput!, config: AwsConfig): AwsOrganizationsDescribeEffectivePolicyOutput
  describeHandshake(input: AwsOrganizationsDescribeHandshakeInput!, config: AwsConfig): AwsOrganizationsDescribeHandshakeOutput
  describeOrganization(config: AwsConfig): AwsOrganizationsDescribeOrganizationOutput
  describeOrganizationalUnit(input: AwsOrganizationsDescribeOrganizationalUnitInput!, config: AwsConfig): AwsOrganizationsDescribeOrganizationalUnitOutput
  describePolicy(input: AwsOrganizationsDescribePolicyInput!, config: AwsConfig): AwsOrganizationsDescribePolicyOutput
  detachPolicy(input: AwsOrganizationsDetachPolicyInput!, config: AwsConfig): JSON
  disableAWSServiceAccess(input: AwsOrganizationsDisableAWSServiceAccessInput!, config: AwsConfig): JSON
  disablePolicyType(input: AwsOrganizationsDisablePolicyTypeInput!, config: AwsConfig): AwsOrganizationsDisablePolicyTypeOutput
  enableAWSServiceAccess(input: AwsOrganizationsEnableAWSServiceAccessInput!, config: AwsConfig): JSON
  enableAllFeatures(input: JSON, config: AwsConfig): AwsOrganizationsEnableAllFeaturesOutput
  enablePolicyType(input: AwsOrganizationsEnablePolicyTypeInput!, config: AwsConfig): AwsOrganizationsEnablePolicyTypeOutput
  inviteAccountToOrganization(input: AwsOrganizationsInviteAccountToOrganizationInput!, config: AwsConfig): AwsOrganizationsInviteAccountToOrganizationOutput
  leaveOrganization(config: AwsConfig): JSON
  listAWSServiceAccessForOrganization(input: AwsOrganizationsListAWSServiceAccessForOrganizationInput, config: AwsConfig): AwsOrganizationsListAWSServiceAccessForOrganizationOutput
  listAccounts(input: AwsOrganizationsListAccountsInput, config: AwsConfig): AwsOrganizationsListAccountsOutput
  listAccountsForParent(input: AwsOrganizationsListAccountsForParentInput!, config: AwsConfig): AwsOrganizationsListAccountsForParentOutput
  listChildren(input: AwsOrganizationsListChildrenInput!, config: AwsConfig): AwsOrganizationsListChildrenOutput
  listCreateAccountStatus(input: AwsOrganizationsListCreateAccountStatusInput, config: AwsConfig): AwsOrganizationsListCreateAccountStatusOutput
  listDelegatedAdministrators(input: AwsOrganizationsListDelegatedAdministratorsInput, config: AwsConfig): AwsOrganizationsListDelegatedAdministratorsOutput
  listDelegatedServicesForAccount(input: AwsOrganizationsListDelegatedServicesForAccountInput!, config: AwsConfig): AwsOrganizationsListDelegatedServicesForAccountOutput
  listHandshakesForAccount(input: AwsOrganizationsListHandshakesForAccountInput, config: AwsConfig): AwsOrganizationsListHandshakesForAccountOutput
  listHandshakesForOrganization(input: AwsOrganizationsListHandshakesForOrganizationInput, config: AwsConfig): AwsOrganizationsListHandshakesForOrganizationOutput
  listOrganizationalUnitsForParent(input: AwsOrganizationsListOrganizationalUnitsForParentInput!, config: AwsConfig): AwsOrganizationsListOrganizationalUnitsForParentOutput
  listParents(input: AwsOrganizationsListParentsInput!, config: AwsConfig): AwsOrganizationsListParentsOutput
  listPolicies(input: AwsOrganizationsListPoliciesInput!, config: AwsConfig): AwsOrganizationsListPoliciesOutput
  listPoliciesForTarget(input: AwsOrganizationsListPoliciesForTargetInput!, config: AwsConfig): AwsOrganizationsListPoliciesForTargetOutput
  listRoots(input: AwsOrganizationsListRootsInput, config: AwsConfig): AwsOrganizationsListRootsOutput
  listTagsForResource(input: AwsOrganizationsListTagsForResourceInput!, config: AwsConfig): AwsOrganizationsListTagsForResourceOutput
  listTargetsForPolicy(input: AwsOrganizationsListTargetsForPolicyInput!, config: AwsConfig): AwsOrganizationsListTargetsForPolicyOutput
  moveAccount(input: AwsOrganizationsMoveAccountInput!, config: AwsConfig): JSON
  registerDelegatedAdministrator(input: AwsOrganizationsRegisterDelegatedAdministratorInput!, config: AwsConfig): JSON
  removeAccountFromOrganization(input: AwsOrganizationsRemoveAccountFromOrganizationInput!, config: AwsConfig): JSON
  tagResource(input: AwsOrganizationsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsOrganizationsUntagResourceInput!, config: AwsConfig): JSON
  updateOrganizationalUnit(input: AwsOrganizationsUpdateOrganizationalUnitInput!, config: AwsConfig): AwsOrganizationsUpdateOrganizationalUnitOutput
  updatePolicy(input: AwsOrganizationsUpdatePolicyInput!, config: AwsConfig): AwsOrganizationsUpdatePolicyOutput
}

type AwsOrganizationsAcceptHandshakeOutput {
  Handshake: AwsOrganizationsS4
}

type AwsOrganizationsS4 {
  Id: String
  Arn: String
  Parties: [AwsOrganizationsS7]
  State: String
  RequestedTimestamp: Date
  ExpirationTimestamp: Date
  Action: String
  Resources: [AwsOrganizationsSd]
}

type AwsOrganizationsS7 {
  Id: String!
  Type: String!
}

type AwsOrganizationsSd {
  Value: String
  Type: String
  Resources: JSON
}

input AwsOrganizationsAcceptHandshakeInput {
  HandshakeId: String!
}

input AwsOrganizationsAttachPolicyInput {
  PolicyId: String!
  TargetId: String!
}

type AwsOrganizationsCancelHandshakeOutput {
  Handshake: AwsOrganizationsS4
}

input AwsOrganizationsCancelHandshakeInput {
  HandshakeId: String!
}

type AwsOrganizationsCreateAccountOutput {
  CreateAccountStatus: AwsOrganizationsSw
}

type AwsOrganizationsSw {
  Id: String
  AccountName: String
  State: String
  RequestedTimestamp: Date
  CompletedTimestamp: Date
  AccountId: String
  GovCloudAccountId: String
  FailureReason: String
}

input AwsOrganizationsCreateAccountInput {
  Email: String!
  AccountName: String!
  RoleName: String
  IamUserAccessToBilling: String
  Tags: [AwsOrganizationsSrInput]
}

input AwsOrganizationsSrInput {
  Key: String!
  Value: String!
}

type AwsOrganizationsCreateGovCloudAccountOutput {
  CreateAccountStatus: AwsOrganizationsSw
}

input AwsOrganizationsCreateGovCloudAccountInput {
  Email: String!
  AccountName: String!
  RoleName: String
  IamUserAccessToBilling: String
  Tags: [AwsOrganizationsSrInput]
}

type AwsOrganizationsCreateOrganizationOutput {
  Organization: AwsOrganizationsS16
}

type AwsOrganizationsS16 {
  Id: String
  Arn: String
  FeatureSet: String
  MasterAccountArn: String
  MasterAccountId: String
  MasterAccountEmail: String
  AvailablePolicyTypes: [AwsOrganizationsS1a]
}

type AwsOrganizationsS1a {
  Type: String
  Status: String
}

input AwsOrganizationsCreateOrganizationInput {
  FeatureSet: String
}

type AwsOrganizationsCreateOrganizationalUnitOutput {
  OrganizationalUnit: AwsOrganizationsS1i
}

type AwsOrganizationsS1i {
  Id: String
  Arn: String
  Name: String
}

input AwsOrganizationsCreateOrganizationalUnitInput {
  ParentId: String!
  Name: String!
  Tags: [AwsOrganizationsSrInput]
}

type AwsOrganizationsCreatePolicyOutput {
  Policy: AwsOrganizationsS1q
}

type AwsOrganizationsS1q {
  PolicySummary: AwsOrganizationsS1r
  Content: String
}

type AwsOrganizationsS1r {
  Id: String
  Arn: String
  Name: String
  Description: String
  Type: String
  AwsManaged: Boolean
}

input AwsOrganizationsCreatePolicyInput {
  Content: String!
  Description: String!
  Name: String!
  Type: String!
  Tags: [AwsOrganizationsSrInput]
}

type AwsOrganizationsDeclineHandshakeOutput {
  Handshake: AwsOrganizationsS4
}

input AwsOrganizationsDeclineHandshakeInput {
  HandshakeId: String!
}

input AwsOrganizationsDeleteOrganizationalUnitInput {
  OrganizationalUnitId: String!
}

input AwsOrganizationsDeletePolicyInput {
  PolicyId: String!
}

input AwsOrganizationsDeregisterDelegatedAdministratorInput {
  AccountId: String!
  ServicePrincipal: String!
}

type AwsOrganizationsDescribeAccountOutput {
  Account: AwsOrganizationsS22
}

type AwsOrganizationsS22 {
  Id: String
  Arn: String
  Email: String
  Name: String
  Status: String
  JoinedMethod: String
  JoinedTimestamp: Date
}

input AwsOrganizationsDescribeAccountInput {
  AccountId: String!
}

type AwsOrganizationsDescribeCreateAccountStatusOutput {
  CreateAccountStatus: AwsOrganizationsSw
}

input AwsOrganizationsDescribeCreateAccountStatusInput {
  CreateAccountRequestId: String!
}

type AwsOrganizationsDescribeEffectivePolicyOutput {
  EffectivePolicy: AwsOrganizationsDescribeEffectivePolicyOutputEffectivePolicy
}

type AwsOrganizationsDescribeEffectivePolicyOutputEffectivePolicy {
  PolicyContent: String
  LastUpdatedTimestamp: Date
  TargetId: String
  PolicyType: String
}

input AwsOrganizationsDescribeEffectivePolicyInput {
  PolicyType: String!
  TargetId: String
}

type AwsOrganizationsDescribeHandshakeOutput {
  Handshake: AwsOrganizationsS4
}

input AwsOrganizationsDescribeHandshakeInput {
  HandshakeId: String!
}

type AwsOrganizationsDescribeOrganizationOutput {
  Organization: AwsOrganizationsS16
}

type AwsOrganizationsDescribeOrganizationalUnitOutput {
  OrganizationalUnit: AwsOrganizationsS1i
}

input AwsOrganizationsDescribeOrganizationalUnitInput {
  OrganizationalUnitId: String!
}

type AwsOrganizationsDescribePolicyOutput {
  Policy: AwsOrganizationsS1q
}

input AwsOrganizationsDescribePolicyInput {
  PolicyId: String!
}

input AwsOrganizationsDetachPolicyInput {
  PolicyId: String!
  TargetId: String!
}

input AwsOrganizationsDisableAWSServiceAccessInput {
  ServicePrincipal: String!
}

type AwsOrganizationsDisablePolicyTypeOutput {
  Root: AwsOrganizationsS2n
}

type AwsOrganizationsS2n {
  Id: String
  Arn: String
  Name: String
  PolicyTypes: [AwsOrganizationsS1a]
}

input AwsOrganizationsDisablePolicyTypeInput {
  RootId: String!
  PolicyType: String!
}

input AwsOrganizationsEnableAWSServiceAccessInput {
  ServicePrincipal: String!
}

type AwsOrganizationsEnableAllFeaturesOutput {
  Handshake: AwsOrganizationsS4
}

type AwsOrganizationsEnablePolicyTypeOutput {
  Root: AwsOrganizationsS2n
}

input AwsOrganizationsEnablePolicyTypeInput {
  RootId: String!
  PolicyType: String!
}

type AwsOrganizationsInviteAccountToOrganizationOutput {
  Handshake: AwsOrganizationsS4
}

input AwsOrganizationsInviteAccountToOrganizationInput {
  Target: AwsOrganizationsS7Input!
  Notes: String
  Tags: [AwsOrganizationsSrInput]
}

input AwsOrganizationsS7Input {
  Id: String!
  Type: String!
}

type AwsOrganizationsListAWSServiceAccessForOrganizationOutput {
  EnabledServicePrincipals: [AwsOrganizationsListAWSServiceAccessForOrganizationOutputEnabledServicePrincipals]
  NextToken: String
}

type AwsOrganizationsListAWSServiceAccessForOrganizationOutputEnabledServicePrincipals {
  ServicePrincipal: String
  DateEnabled: Date
}

input AwsOrganizationsListAWSServiceAccessForOrganizationInput {
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListAccountsOutput {
  Accounts: [AwsOrganizationsS22]
  NextToken: String
}

input AwsOrganizationsListAccountsInput {
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListAccountsForParentOutput {
  Accounts: [AwsOrganizationsS22]
  NextToken: String
}

input AwsOrganizationsListAccountsForParentInput {
  ParentId: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListChildrenOutput {
  Children: [AwsOrganizationsListChildrenOutputChildren]
  NextToken: String
}

type AwsOrganizationsListChildrenOutputChildren {
  Id: String
  Type: String
}

input AwsOrganizationsListChildrenInput {
  ParentId: String!
  ChildType: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListCreateAccountStatusOutput {
  CreateAccountStatuses: [AwsOrganizationsSw]
  NextToken: String
}

input AwsOrganizationsListCreateAccountStatusInput {
  States: [String]
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListDelegatedAdministratorsOutput {
  DelegatedAdministrators: [AwsOrganizationsListDelegatedAdministratorsOutputDelegatedAdministrators]
  NextToken: String
}

type AwsOrganizationsListDelegatedAdministratorsOutputDelegatedAdministrators {
  Id: String
  Arn: String
  Email: String
  Name: String
  Status: String
  JoinedMethod: String
  JoinedTimestamp: Date
  DelegationEnabledDate: Date
}

input AwsOrganizationsListDelegatedAdministratorsInput {
  ServicePrincipal: String
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListDelegatedServicesForAccountOutput {
  DelegatedServices: [AwsOrganizationsListDelegatedServicesForAccountOutputDelegatedServices]
  NextToken: String
}

type AwsOrganizationsListDelegatedServicesForAccountOutputDelegatedServices {
  ServicePrincipal: String
  DelegationEnabledDate: Date
}

input AwsOrganizationsListDelegatedServicesForAccountInput {
  AccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListHandshakesForAccountOutput {
  Handshakes: [AwsOrganizationsS4]
  NextToken: String
}

input AwsOrganizationsListHandshakesForAccountInput {
  Filter: AwsOrganizationsS3sInput
  NextToken: String
  MaxResults: Int
}

input AwsOrganizationsS3sInput {
  ActionType: String
  ParentHandshakeId: String
}

type AwsOrganizationsListHandshakesForOrganizationOutput {
  Handshakes: [AwsOrganizationsS4]
  NextToken: String
}

input AwsOrganizationsListHandshakesForOrganizationInput {
  Filter: AwsOrganizationsS3sInput
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListOrganizationalUnitsForParentOutput {
  OrganizationalUnits: [AwsOrganizationsS1i]
  NextToken: String
}

input AwsOrganizationsListOrganizationalUnitsForParentInput {
  ParentId: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListParentsOutput {
  Parents: [AwsOrganizationsListParentsOutputParents]
  NextToken: String
}

type AwsOrganizationsListParentsOutputParents {
  Id: String
  Type: String
}

input AwsOrganizationsListParentsInput {
  ChildId: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListPoliciesOutput {
  Policies: [AwsOrganizationsS1r]
  NextToken: String
}

input AwsOrganizationsListPoliciesInput {
  Filter: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListPoliciesForTargetOutput {
  Policies: [AwsOrganizationsS1r]
  NextToken: String
}

input AwsOrganizationsListPoliciesForTargetInput {
  TargetId: String!
  Filter: String!
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListRootsOutput {
  Roots: [AwsOrganizationsS2n]
  NextToken: String
}

input AwsOrganizationsListRootsInput {
  NextToken: String
  MaxResults: Int
}

type AwsOrganizationsListTagsForResourceOutput {
  Tags: [AwsOrganizationsSr]
  NextToken: String
}

type AwsOrganizationsSr {
  Key: String!
  Value: String!
}

input AwsOrganizationsListTagsForResourceInput {
  ResourceId: String!
  NextToken: String
}

type AwsOrganizationsListTargetsForPolicyOutput {
  Targets: [AwsOrganizationsListTargetsForPolicyOutputTargets]
  NextToken: String
}

type AwsOrganizationsListTargetsForPolicyOutputTargets {
  TargetId: String
  Arn: String
  Name: String
  Type: String
}

input AwsOrganizationsListTargetsForPolicyInput {
  PolicyId: String!
  NextToken: String
  MaxResults: Int
}

input AwsOrganizationsMoveAccountInput {
  AccountId: String!
  SourceParentId: String!
  DestinationParentId: String!
}

input AwsOrganizationsRegisterDelegatedAdministratorInput {
  AccountId: String!
  ServicePrincipal: String!
}

input AwsOrganizationsRemoveAccountFromOrganizationInput {
  AccountId: String!
}

input AwsOrganizationsTagResourceInput {
  ResourceId: String!
  Tags: [AwsOrganizationsSrInput]!
}

input AwsOrganizationsUntagResourceInput {
  ResourceId: String!
  TagKeys: [String]!
}

type AwsOrganizationsUpdateOrganizationalUnitOutput {
  OrganizationalUnit: AwsOrganizationsS1i
}

input AwsOrganizationsUpdateOrganizationalUnitInput {
  OrganizationalUnitId: String!
  Name: String
}

type AwsOrganizationsUpdatePolicyOutput {
  Policy: AwsOrganizationsS1q
}

input AwsOrganizationsUpdatePolicyInput {
  PolicyId: String!
  Name: String
  Description: String
  Content: String
}

"""AWS Outposts (2019-12-03)"""
type AwsOutposts {
  createOutpost(input: AwsOutpostsCreateOutpostInput!, config: AwsConfig): AwsOutpostsCreateOutpostOutput
  deleteOutpost(input: AwsOutpostsDeleteOutpostInput!, config: AwsConfig): JSON
  deleteSite(input: AwsOutpostsDeleteSiteInput!, config: AwsConfig): JSON
  getOutpost(input: AwsOutpostsGetOutpostInput!, config: AwsConfig): AwsOutpostsGetOutpostOutput
  getOutpostInstanceTypes(input: AwsOutpostsGetOutpostInstanceTypesInput!, config: AwsConfig): AwsOutpostsGetOutpostInstanceTypesOutput
  listOutposts(input: AwsOutpostsListOutpostsInput, config: AwsConfig): AwsOutpostsListOutpostsOutput
  listSites(input: AwsOutpostsListSitesInput, config: AwsConfig): AwsOutpostsListSitesOutput
  listTagsForResource(input: AwsOutpostsListTagsForResourceInput!, config: AwsConfig): AwsOutpostsListTagsForResourceOutput
  tagResource(input: AwsOutpostsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsOutpostsUntagResourceInput!, config: AwsConfig): JSON
}

type AwsOutpostsCreateOutpostOutput {
  Outpost: AwsOutpostsSb
}

type AwsOutpostsSb {
  OutpostId: String
  OwnerId: String
  OutpostArn: String
  SiteId: String
  Name: String
  Description: String
  LifeCycleStatus: String
  AvailabilityZone: String
  AvailabilityZoneId: String
  Tags: JSON
  SiteArn: String
}

input AwsOutpostsCreateOutpostInput {
  Name: String!
  Description: String
  SiteId: String!
  AvailabilityZone: String
  AvailabilityZoneId: String
  Tags: JSON
}

input AwsOutpostsDeleteOutpostInput {
  OutpostId: String!
}

input AwsOutpostsDeleteSiteInput {
  SiteId: String!
}

type AwsOutpostsGetOutpostOutput {
  Outpost: AwsOutpostsSb
}

input AwsOutpostsGetOutpostInput {
  OutpostId: String!
}

type AwsOutpostsGetOutpostInstanceTypesOutput {
  InstanceTypes: [AwsOutpostsGetOutpostInstanceTypesOutputInstanceTypes]
  NextToken: String
  OutpostId: String
  OutpostArn: String
}

type AwsOutpostsGetOutpostInstanceTypesOutputInstanceTypes {
  InstanceType: String
}

input AwsOutpostsGetOutpostInstanceTypesInput {
  OutpostId: String!
  NextToken: String
  MaxResults: Int
}

type AwsOutpostsListOutpostsOutput {
  Outposts: [AwsOutpostsSb]
  NextToken: String
}

input AwsOutpostsListOutpostsInput {
  NextToken: String
  MaxResults: Int
}

type AwsOutpostsListSitesOutput {
  Sites: [AwsOutpostsListSitesOutputSites]
  NextToken: String
}

type AwsOutpostsListSitesOutputSites {
  SiteId: String
  AccountId: String
  Name: String
  Description: String
  Tags: JSON
  SiteArn: String
}

input AwsOutpostsListSitesInput {
  NextToken: String
  MaxResults: Int
}

type AwsOutpostsListTagsForResourceOutput {
  Tags: JSON
}

input AwsOutpostsListTagsForResourceInput {
  ResourceArn: String!
}

input AwsOutpostsTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsOutpostsUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""AWS Performance Insights (2018-02-27)"""
type AwsPI {
  describeDimensionKeys(input: AwsPIDescribeDimensionKeysInput!, config: AwsConfig): AwsPIDescribeDimensionKeysOutput
  getDimensionKeyDetails(input: AwsPIGetDimensionKeyDetailsInput!, config: AwsConfig): AwsPIGetDimensionKeyDetailsOutput
  getResourceMetrics(input: AwsPIGetResourceMetricsInput!, config: AwsConfig): AwsPIGetResourceMetricsOutput
}

type AwsPIDescribeDimensionKeysOutput {
  AlignedStartTime: Date
  AlignedEndTime: Date
  PartitionKeys: [AwsPIDescribeDimensionKeysOutputPartitionKeys]
  Keys: [AwsPIDescribeDimensionKeysOutputKeys]
  NextToken: String
}

type AwsPIDescribeDimensionKeysOutputPartitionKeys {
  Dimensions: JSON!
}

type AwsPIDescribeDimensionKeysOutputKeys {
  Dimensions: JSON
  Total: JSON
  Partitions: [JSON]
}

input AwsPIDescribeDimensionKeysInput {
  ServiceType: String!
  Identifier: String!
  StartTime: Date!
  EndTime: Date!
  Metric: String!
  PeriodInSeconds: Int
  GroupBy: AwsPIS6Input!
  PartitionBy: AwsPIS6Input
  Filter: JSON
  MaxResults: Int
  NextToken: String
}

input AwsPIS6Input {
  Group: String!
  Dimensions: [String]
  Limit: Int
}

type AwsPIGetDimensionKeyDetailsOutput {
  Dimensions: [AwsPIGetDimensionKeyDetailsOutputDimensions]
}

type AwsPIGetDimensionKeyDetailsOutputDimensions {
  Value: String
  Dimension: String
  Status: String
}

input AwsPIGetDimensionKeyDetailsInput {
  ServiceType: String!
  Identifier: String!
  Group: String!
  GroupIdentifier: String!
  RequestedDimensions: [String]
}

type AwsPIGetResourceMetricsOutput {
  AlignedStartTime: Date
  AlignedEndTime: Date
  Identifier: String
  MetricList: [AwsPIGetResourceMetricsOutputMetricList]
  NextToken: String
}

type AwsPIGetResourceMetricsOutputMetricList {
  Key: AwsPIGetResourceMetricsOutputMetricListKey
  DataPoints: [AwsPIGetResourceMetricsOutputMetricListDataPoints]
}

type AwsPIGetResourceMetricsOutputMetricListKey {
  Metric: String!
  Dimensions: JSON
}

type AwsPIGetResourceMetricsOutputMetricListDataPoints {
  Timestamp: Date!
  Value: JSON!
}

input AwsPIGetResourceMetricsInput {
  ServiceType: String!
  Identifier: String!
  MetricQueries: [AwsPIGetResourceMetricsMetricQueriesInput]!
  StartTime: Date!
  EndTime: Date!
  PeriodInSeconds: Int
  MaxResults: Int
  NextToken: String
}

input AwsPIGetResourceMetricsMetricQueriesInput {
  Metric: String!
  GroupBy: AwsPIS6Input
  Filter: JSON
}

"""Amazon Personalize (2018-05-22)"""
type AwsPersonalize {
  createBatchInferenceJob(input: AwsPersonalizeCreateBatchInferenceJobInput!, config: AwsConfig): AwsPersonalizeCreateBatchInferenceJobOutput
  createCampaign(input: AwsPersonalizeCreateCampaignInput!, config: AwsConfig): AwsPersonalizeCreateCampaignOutput
  createDataset(input: AwsPersonalizeCreateDatasetInput!, config: AwsConfig): AwsPersonalizeCreateDatasetOutput
  createDatasetExportJob(input: AwsPersonalizeCreateDatasetExportJobInput!, config: AwsConfig): AwsPersonalizeCreateDatasetExportJobOutput
  createDatasetGroup(input: AwsPersonalizeCreateDatasetGroupInput!, config: AwsConfig): AwsPersonalizeCreateDatasetGroupOutput
  createDatasetImportJob(input: AwsPersonalizeCreateDatasetImportJobInput!, config: AwsConfig): AwsPersonalizeCreateDatasetImportJobOutput
  createEventTracker(input: AwsPersonalizeCreateEventTrackerInput!, config: AwsConfig): AwsPersonalizeCreateEventTrackerOutput
  createFilter(input: AwsPersonalizeCreateFilterInput!, config: AwsConfig): AwsPersonalizeCreateFilterOutput
  createSchema(input: AwsPersonalizeCreateSchemaInput!, config: AwsConfig): AwsPersonalizeCreateSchemaOutput
  createSolution(input: AwsPersonalizeCreateSolutionInput!, config: AwsConfig): AwsPersonalizeCreateSolutionOutput
  createSolutionVersion(input: AwsPersonalizeCreateSolutionVersionInput!, config: AwsConfig): AwsPersonalizeCreateSolutionVersionOutput
  deleteCampaign(input: AwsPersonalizeDeleteCampaignInput!, config: AwsConfig): JSON
  deleteDataset(input: AwsPersonalizeDeleteDatasetInput!, config: AwsConfig): JSON
  deleteDatasetGroup(input: AwsPersonalizeDeleteDatasetGroupInput!, config: AwsConfig): JSON
  deleteEventTracker(input: AwsPersonalizeDeleteEventTrackerInput!, config: AwsConfig): JSON
  deleteFilter(input: AwsPersonalizeDeleteFilterInput!, config: AwsConfig): JSON
  deleteSchema(input: AwsPersonalizeDeleteSchemaInput!, config: AwsConfig): JSON
  deleteSolution(input: AwsPersonalizeDeleteSolutionInput!, config: AwsConfig): JSON
  describeAlgorithm(input: AwsPersonalizeDescribeAlgorithmInput!, config: AwsConfig): AwsPersonalizeDescribeAlgorithmOutput
  describeBatchInferenceJob(input: AwsPersonalizeDescribeBatchInferenceJobInput!, config: AwsConfig): AwsPersonalizeDescribeBatchInferenceJobOutput
  describeCampaign(input: AwsPersonalizeDescribeCampaignInput!, config: AwsConfig): AwsPersonalizeDescribeCampaignOutput
  describeDataset(input: AwsPersonalizeDescribeDatasetInput!, config: AwsConfig): AwsPersonalizeDescribeDatasetOutput
  describeDatasetExportJob(input: AwsPersonalizeDescribeDatasetExportJobInput!, config: AwsConfig): AwsPersonalizeDescribeDatasetExportJobOutput
  describeDatasetGroup(input: AwsPersonalizeDescribeDatasetGroupInput!, config: AwsConfig): AwsPersonalizeDescribeDatasetGroupOutput
  describeDatasetImportJob(input: AwsPersonalizeDescribeDatasetImportJobInput!, config: AwsConfig): AwsPersonalizeDescribeDatasetImportJobOutput
  describeEventTracker(input: AwsPersonalizeDescribeEventTrackerInput!, config: AwsConfig): AwsPersonalizeDescribeEventTrackerOutput
  describeFeatureTransformation(input: AwsPersonalizeDescribeFeatureTransformationInput!, config: AwsConfig): AwsPersonalizeDescribeFeatureTransformationOutput
  describeFilter(input: AwsPersonalizeDescribeFilterInput!, config: AwsConfig): AwsPersonalizeDescribeFilterOutput
  describeRecipe(input: AwsPersonalizeDescribeRecipeInput!, config: AwsConfig): AwsPersonalizeDescribeRecipeOutput
  describeSchema(input: AwsPersonalizeDescribeSchemaInput!, config: AwsConfig): AwsPersonalizeDescribeSchemaOutput
  describeSolution(input: AwsPersonalizeDescribeSolutionInput!, config: AwsConfig): AwsPersonalizeDescribeSolutionOutput
  describeSolutionVersion(input: AwsPersonalizeDescribeSolutionVersionInput!, config: AwsConfig): AwsPersonalizeDescribeSolutionVersionOutput
  getSolutionMetrics(input: AwsPersonalizeGetSolutionMetricsInput!, config: AwsConfig): AwsPersonalizeGetSolutionMetricsOutput
  listBatchInferenceJobs(input: AwsPersonalizeListBatchInferenceJobsInput, config: AwsConfig): AwsPersonalizeListBatchInferenceJobsOutput
  listCampaigns(input: AwsPersonalizeListCampaignsInput, config: AwsConfig): AwsPersonalizeListCampaignsOutput
  listDatasetExportJobs(input: AwsPersonalizeListDatasetExportJobsInput, config: AwsConfig): AwsPersonalizeListDatasetExportJobsOutput
  listDatasetGroups(input: AwsPersonalizeListDatasetGroupsInput, config: AwsConfig): AwsPersonalizeListDatasetGroupsOutput
  listDatasetImportJobs(input: AwsPersonalizeListDatasetImportJobsInput, config: AwsConfig): AwsPersonalizeListDatasetImportJobsOutput
  listDatasets(input: AwsPersonalizeListDatasetsInput, config: AwsConfig): AwsPersonalizeListDatasetsOutput
  listEventTrackers(input: AwsPersonalizeListEventTrackersInput, config: AwsConfig): AwsPersonalizeListEventTrackersOutput
  listFilters(input: AwsPersonalizeListFiltersInput, config: AwsConfig): AwsPersonalizeListFiltersOutput
  listRecipes(input: AwsPersonalizeListRecipesInput, config: AwsConfig): AwsPersonalizeListRecipesOutput
  listSchemas(input: AwsPersonalizeListSchemasInput, config: AwsConfig): AwsPersonalizeListSchemasOutput
  listSolutionVersions(input: AwsPersonalizeListSolutionVersionsInput, config: AwsConfig): AwsPersonalizeListSolutionVersionsOutput
  listSolutions(input: AwsPersonalizeListSolutionsInput, config: AwsConfig): AwsPersonalizeListSolutionsOutput
  stopSolutionVersionCreation(input: AwsPersonalizeStopSolutionVersionCreationInput!, config: AwsConfig): JSON
  updateCampaign(input: AwsPersonalizeUpdateCampaignInput!, config: AwsConfig): AwsPersonalizeUpdateCampaignOutput
}

type AwsPersonalizeCreateBatchInferenceJobOutput {
  batchInferenceJobArn: String
}

input AwsPersonalizeCreateBatchInferenceJobInput {
  jobName: String!
  solutionVersionArn: String!
  filterArn: String
  numResults: Int
  jobInput: AwsPersonalizeS5Input!
  jobOutput: AwsPersonalizeS9Input!
  roleArn: String!
  batchInferenceJobConfig: AwsPersonalizeSbInput
}

input AwsPersonalizeS5Input {
  s3DataSource: AwsPersonalizeS6Input!
}

input AwsPersonalizeS6Input {
  path: String!
  kmsKeyArn: String
}

input AwsPersonalizeS9Input {
  s3DataDestination: AwsPersonalizeS6Input!
}

input AwsPersonalizeSbInput {
  itemExplorationConfig: JSON
}

type AwsPersonalizeCreateCampaignOutput {
  campaignArn: String
}

input AwsPersonalizeCreateCampaignInput {
  name: String!
  solutionVersionArn: String!
  minProvisionedTPS: Int!
  campaignConfig: AwsPersonalizeSiInput
}

input AwsPersonalizeSiInput {
  itemExplorationConfig: JSON
}

type AwsPersonalizeCreateDatasetOutput {
  datasetArn: String
}

input AwsPersonalizeCreateDatasetInput {
  name: String!
  schemaArn: String!
  datasetGroupArn: String!
  datasetType: String!
}

type AwsPersonalizeCreateDatasetExportJobOutput {
  datasetExportJobArn: String
}

input AwsPersonalizeCreateDatasetExportJobInput {
  jobName: String!
  datasetArn: String!
  ingestionMode: String
  roleArn: String!
  jobOutput: AwsPersonalizeSpInput!
}

input AwsPersonalizeSpInput {
  s3DataDestination: AwsPersonalizeS6Input!
}

type AwsPersonalizeCreateDatasetGroupOutput {
  datasetGroupArn: String
}

input AwsPersonalizeCreateDatasetGroupInput {
  name: String!
  roleArn: String
  kmsKeyArn: String
}

type AwsPersonalizeCreateDatasetImportJobOutput {
  datasetImportJobArn: String
}

input AwsPersonalizeCreateDatasetImportJobInput {
  jobName: String!
  datasetArn: String!
  dataSource: AwsPersonalizeSuInput!
  roleArn: String!
}

input AwsPersonalizeSuInput {
  dataLocation: String
}

type AwsPersonalizeCreateEventTrackerOutput {
  eventTrackerArn: String
  trackingId: String
}

input AwsPersonalizeCreateEventTrackerInput {
  name: String!
  datasetGroupArn: String!
}

type AwsPersonalizeCreateFilterOutput {
  filterArn: String
}

input AwsPersonalizeCreateFilterInput {
  name: String!
  datasetGroupArn: String!
  filterExpression: String!
}

type AwsPersonalizeCreateSchemaOutput {
  schemaArn: String
}

input AwsPersonalizeCreateSchemaInput {
  name: String!
  schema: String!
}

type AwsPersonalizeCreateSolutionOutput {
  solutionArn: String
}

input AwsPersonalizeCreateSolutionInput {
  name: String!
  performHPO: Boolean
  performAutoML: Boolean
  recipeArn: String
  datasetGroupArn: String!
  eventType: String
  solutionConfig: AwsPersonalizeS19Input
}

input AwsPersonalizeS19Input {
  eventValueThreshold: String
  hpoConfig: AwsPersonalizeS19HpoConfigInput
  algorithmHyperParameters: JSON
  featureTransformationParameters: JSON
  autoMLConfig: AwsPersonalizeS19AutoMLConfigInput
  optimizationObjective: AwsPersonalizeS19OptimizationObjectiveInput
}

input AwsPersonalizeS19HpoConfigInput {
  hpoObjective: AwsPersonalizeS19HpoConfigHpoObjectiveInput
  hpoResourceConfig: AwsPersonalizeS19HpoConfigHpoResourceConfigInput
  algorithmHyperParameterRanges: AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesInput
}

input AwsPersonalizeS19HpoConfigHpoObjectiveInput {
  type: String
  metricName: String
  metricRegex: String
}

input AwsPersonalizeS19HpoConfigHpoResourceConfigInput {
  maxNumberOfTrainingJobs: String
  maxParallelTrainingJobs: String
}

input AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesInput {
  integerHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesIntegerHyperParameterRangesInput]
  continuousHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesContinuousHyperParameterRangesInput]
  categoricalHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesCategoricalHyperParameterRangesInput]
}

input AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesIntegerHyperParameterRangesInput {
  name: String
  minValue: Int
  maxValue: Int
}

input AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesContinuousHyperParameterRangesInput {
  name: String
  minValue: JSON
  maxValue: JSON
}

input AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesCategoricalHyperParameterRangesInput {
  name: String
  values: [String]
}

input AwsPersonalizeS19AutoMLConfigInput {
  metricName: String
  recipeList: [String]
}

input AwsPersonalizeS19OptimizationObjectiveInput {
  itemAttribute: String
  objectiveSensitivity: String
}

type AwsPersonalizeCreateSolutionVersionOutput {
  solutionVersionArn: String
}

input AwsPersonalizeCreateSolutionVersionInput {
  solutionArn: String!
  trainingMode: String
}

input AwsPersonalizeDeleteCampaignInput {
  campaignArn: String!
}

input AwsPersonalizeDeleteDatasetInput {
  datasetArn: String!
}

input AwsPersonalizeDeleteDatasetGroupInput {
  datasetGroupArn: String!
}

input AwsPersonalizeDeleteEventTrackerInput {
  eventTrackerArn: String!
}

input AwsPersonalizeDeleteFilterInput {
  filterArn: String!
}

input AwsPersonalizeDeleteSchemaInput {
  schemaArn: String!
}

input AwsPersonalizeDeleteSolutionInput {
  solutionArn: String!
}

type AwsPersonalizeDescribeAlgorithmOutput {
  algorithm: AwsPersonalizeDescribeAlgorithmOutputAlgorithm
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithm {
  name: String
  algorithmArn: String
  algorithmImage: AwsPersonalizeDescribeAlgorithmOutputAlgorithmAlgorithmImage
  defaultHyperParameters: JSON
  defaultHyperParameterRanges: AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRanges
  defaultResourceConfig: JSON
  trainingInputMode: String
  roleArn: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithmAlgorithmImage {
  name: String
  dockerURI: String!
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRanges {
  integerHyperParameterRanges: [AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesIntegerHyperParameterRanges]
  continuousHyperParameterRanges: [AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesContinuousHyperParameterRanges]
  categoricalHyperParameterRanges: [AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesCategoricalHyperParameterRanges]
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesIntegerHyperParameterRanges {
  name: String
  minValue: Int
  maxValue: Int
  isTunable: Boolean
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesContinuousHyperParameterRanges {
  name: String
  minValue: JSON
  maxValue: JSON
  isTunable: Boolean
}

type AwsPersonalizeDescribeAlgorithmOutputAlgorithmDefaultHyperParameterRangesCategoricalHyperParameterRanges {
  name: String
  values: [String]
  isTunable: Boolean
}

input AwsPersonalizeDescribeAlgorithmInput {
  algorithmArn: String!
}

type AwsPersonalizeDescribeBatchInferenceJobOutput {
  batchInferenceJob: AwsPersonalizeDescribeBatchInferenceJobOutputBatchInferenceJob
}

type AwsPersonalizeDescribeBatchInferenceJobOutputBatchInferenceJob {
  jobName: String
  batchInferenceJobArn: String
  filterArn: String
  failureReason: String
  solutionVersionArn: String
  numResults: Int
  jobInput: AwsPersonalizeS5
  jobOutput: AwsPersonalizeS9
  batchInferenceJobConfig: AwsPersonalizeSb
  roleArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsPersonalizeS5 {
  s3DataSource: AwsPersonalizeS6!
}

type AwsPersonalizeS6 {
  path: String!
  kmsKeyArn: String
}

type AwsPersonalizeS9 {
  s3DataDestination: AwsPersonalizeS6!
}

type AwsPersonalizeSb {
  itemExplorationConfig: JSON
}

input AwsPersonalizeDescribeBatchInferenceJobInput {
  batchInferenceJobArn: String!
}

type AwsPersonalizeDescribeCampaignOutput {
  campaign: AwsPersonalizeDescribeCampaignOutputCampaign
}

type AwsPersonalizeDescribeCampaignOutputCampaign {
  name: String
  campaignArn: String
  solutionVersionArn: String
  minProvisionedTPS: Int
  campaignConfig: AwsPersonalizeSi
  status: String
  failureReason: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  latestCampaignUpdate: AwsPersonalizeDescribeCampaignOutputCampaignLatestCampaignUpdate
}

type AwsPersonalizeSi {
  itemExplorationConfig: JSON
}

type AwsPersonalizeDescribeCampaignOutputCampaignLatestCampaignUpdate {
  solutionVersionArn: String
  minProvisionedTPS: Int
  campaignConfig: AwsPersonalizeSi
  status: String
  failureReason: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeDescribeCampaignInput {
  campaignArn: String!
}

type AwsPersonalizeDescribeDatasetOutput {
  dataset: AwsPersonalizeDescribeDatasetOutputDataset
}

type AwsPersonalizeDescribeDatasetOutputDataset {
  name: String
  datasetArn: String
  datasetGroupArn: String
  datasetType: String
  schemaArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeDescribeDatasetInput {
  datasetArn: String!
}

type AwsPersonalizeDescribeDatasetExportJobOutput {
  datasetExportJob: AwsPersonalizeDescribeDatasetExportJobOutputDatasetExportJob
}

type AwsPersonalizeDescribeDatasetExportJobOutputDatasetExportJob {
  jobName: String
  datasetExportJobArn: String
  datasetArn: String
  ingestionMode: String
  roleArn: String
  status: String
  jobOutput: AwsPersonalizeSp
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

type AwsPersonalizeSp {
  s3DataDestination: AwsPersonalizeS6!
}

input AwsPersonalizeDescribeDatasetExportJobInput {
  datasetExportJobArn: String!
}

type AwsPersonalizeDescribeDatasetGroupOutput {
  datasetGroup: AwsPersonalizeDescribeDatasetGroupOutputDatasetGroup
}

type AwsPersonalizeDescribeDatasetGroupOutputDatasetGroup {
  name: String
  datasetGroupArn: String
  status: String
  roleArn: String
  kmsKeyArn: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeDescribeDatasetGroupInput {
  datasetGroupArn: String!
}

type AwsPersonalizeDescribeDatasetImportJobOutput {
  datasetImportJob: AwsPersonalizeDescribeDatasetImportJobOutputDatasetImportJob
}

type AwsPersonalizeDescribeDatasetImportJobOutputDatasetImportJob {
  jobName: String
  datasetImportJobArn: String
  datasetArn: String
  dataSource: AwsPersonalizeSu
  roleArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

type AwsPersonalizeSu {
  dataLocation: String
}

input AwsPersonalizeDescribeDatasetImportJobInput {
  datasetImportJobArn: String!
}

type AwsPersonalizeDescribeEventTrackerOutput {
  eventTracker: AwsPersonalizeDescribeEventTrackerOutputEventTracker
}

type AwsPersonalizeDescribeEventTrackerOutputEventTracker {
  name: String
  eventTrackerArn: String
  accountId: String
  trackingId: String
  datasetGroupArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeDescribeEventTrackerInput {
  eventTrackerArn: String!
}

type AwsPersonalizeDescribeFeatureTransformationOutput {
  featureTransformation: AwsPersonalizeDescribeFeatureTransformationOutputFeatureTransformation
}

type AwsPersonalizeDescribeFeatureTransformationOutputFeatureTransformation {
  name: String
  featureTransformationArn: String
  defaultParameters: JSON
  creationDateTime: Date
  lastUpdatedDateTime: Date
  status: String
}

input AwsPersonalizeDescribeFeatureTransformationInput {
  featureTransformationArn: String!
}

type AwsPersonalizeDescribeFilterOutput {
  filter: AwsPersonalizeDescribeFilterOutputFilter
}

type AwsPersonalizeDescribeFilterOutputFilter {
  name: String
  filterArn: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  datasetGroupArn: String
  failureReason: String
  filterExpression: String
  status: String
}

input AwsPersonalizeDescribeFilterInput {
  filterArn: String!
}

type AwsPersonalizeDescribeRecipeOutput {
  recipe: AwsPersonalizeDescribeRecipeOutputRecipe
}

type AwsPersonalizeDescribeRecipeOutputRecipe {
  name: String
  recipeArn: String
  algorithmArn: String
  featureTransformationArn: String
  status: String
  description: String
  creationDateTime: Date
  recipeType: String
  lastUpdatedDateTime: Date
}

input AwsPersonalizeDescribeRecipeInput {
  recipeArn: String!
}

type AwsPersonalizeDescribeSchemaOutput {
  schema: AwsPersonalizeDescribeSchemaOutputSchema
}

type AwsPersonalizeDescribeSchemaOutputSchema {
  name: String
  schemaArn: String
  schema: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeDescribeSchemaInput {
  schemaArn: String!
}

type AwsPersonalizeDescribeSolutionOutput {
  solution: AwsPersonalizeDescribeSolutionOutputSolution
}

type AwsPersonalizeDescribeSolutionOutputSolution {
  name: String
  solutionArn: String
  performHPO: Boolean
  performAutoML: Boolean
  recipeArn: String
  datasetGroupArn: String
  eventType: String
  solutionConfig: AwsPersonalizeS19
  autoMLResult: AwsPersonalizeDescribeSolutionOutputSolutionAutoMLResult
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  latestSolutionVersion: AwsPersonalizeS41
}

type AwsPersonalizeS19 {
  eventValueThreshold: String
  hpoConfig: AwsPersonalizeS19HpoConfig
  algorithmHyperParameters: JSON
  featureTransformationParameters: JSON
  autoMLConfig: AwsPersonalizeS19AutoMLConfig
  optimizationObjective: AwsPersonalizeS19OptimizationObjective
}

type AwsPersonalizeS19HpoConfig {
  hpoObjective: AwsPersonalizeS19HpoConfigHpoObjective
  hpoResourceConfig: AwsPersonalizeS19HpoConfigHpoResourceConfig
  algorithmHyperParameterRanges: AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRanges
}

type AwsPersonalizeS19HpoConfigHpoObjective {
  type: String
  metricName: String
  metricRegex: String
}

type AwsPersonalizeS19HpoConfigHpoResourceConfig {
  maxNumberOfTrainingJobs: String
  maxParallelTrainingJobs: String
}

type AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRanges {
  integerHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesIntegerHyperParameterRanges]
  continuousHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesContinuousHyperParameterRanges]
  categoricalHyperParameterRanges: [AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesCategoricalHyperParameterRanges]
}

type AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesIntegerHyperParameterRanges {
  name: String
  minValue: Int
  maxValue: Int
}

type AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesContinuousHyperParameterRanges {
  name: String
  minValue: JSON
  maxValue: JSON
}

type AwsPersonalizeS19HpoConfigAlgorithmHyperParameterRangesCategoricalHyperParameterRanges {
  name: String
  values: [String]
}

type AwsPersonalizeS19AutoMLConfig {
  metricName: String
  recipeList: [String]
}

type AwsPersonalizeS19OptimizationObjective {
  itemAttribute: String
  objectiveSensitivity: String
}

type AwsPersonalizeDescribeSolutionOutputSolutionAutoMLResult {
  bestRecipeArn: String
}

type AwsPersonalizeS41 {
  solutionVersionArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeDescribeSolutionInput {
  solutionArn: String!
}

type AwsPersonalizeDescribeSolutionVersionOutput {
  solutionVersion: AwsPersonalizeDescribeSolutionVersionOutputSolutionVersion
}

type AwsPersonalizeDescribeSolutionVersionOutputSolutionVersion {
  solutionVersionArn: String
  solutionArn: String
  performHPO: Boolean
  performAutoML: Boolean
  recipeArn: String
  eventType: String
  datasetGroupArn: String
  solutionConfig: AwsPersonalizeS19
  trainingHours: JSON
  trainingMode: String
  tunedHPOParams: AwsPersonalizeDescribeSolutionVersionOutputSolutionVersionTunedHPOParams
  status: String
  failureReason: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

type AwsPersonalizeDescribeSolutionVersionOutputSolutionVersionTunedHPOParams {
  algorithmHyperParameters: JSON
}

input AwsPersonalizeDescribeSolutionVersionInput {
  solutionVersionArn: String!
}

type AwsPersonalizeGetSolutionMetricsOutput {
  solutionVersionArn: String
  metrics: JSON
}

input AwsPersonalizeGetSolutionMetricsInput {
  solutionVersionArn: String!
}

type AwsPersonalizeListBatchInferenceJobsOutput {
  batchInferenceJobs: [AwsPersonalizeListBatchInferenceJobsOutputBatchInferenceJobs]
  nextToken: String
}

type AwsPersonalizeListBatchInferenceJobsOutputBatchInferenceJobs {
  batchInferenceJobArn: String
  jobName: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
  solutionVersionArn: String
}

input AwsPersonalizeListBatchInferenceJobsInput {
  solutionVersionArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListCampaignsOutput {
  campaigns: [AwsPersonalizeListCampaignsOutputCampaigns]
  nextToken: String
}

type AwsPersonalizeListCampaignsOutputCampaigns {
  name: String
  campaignArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeListCampaignsInput {
  solutionArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListDatasetExportJobsOutput {
  datasetExportJobs: [AwsPersonalizeListDatasetExportJobsOutputDatasetExportJobs]
  nextToken: String
}

type AwsPersonalizeListDatasetExportJobsOutputDatasetExportJobs {
  datasetExportJobArn: String
  jobName: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeListDatasetExportJobsInput {
  datasetArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListDatasetGroupsOutput {
  datasetGroups: [AwsPersonalizeListDatasetGroupsOutputDatasetGroups]
  nextToken: String
}

type AwsPersonalizeListDatasetGroupsOutputDatasetGroups {
  name: String
  datasetGroupArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeListDatasetGroupsInput {
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListDatasetImportJobsOutput {
  datasetImportJobs: [AwsPersonalizeListDatasetImportJobsOutputDatasetImportJobs]
  nextToken: String
}

type AwsPersonalizeListDatasetImportJobsOutputDatasetImportJobs {
  datasetImportJobArn: String
  jobName: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  failureReason: String
}

input AwsPersonalizeListDatasetImportJobsInput {
  datasetArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListDatasetsOutput {
  datasets: [AwsPersonalizeListDatasetsOutputDatasets]
  nextToken: String
}

type AwsPersonalizeListDatasetsOutputDatasets {
  name: String
  datasetArn: String
  datasetType: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeListDatasetsInput {
  datasetGroupArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListEventTrackersOutput {
  eventTrackers: [AwsPersonalizeListEventTrackersOutputEventTrackers]
  nextToken: String
}

type AwsPersonalizeListEventTrackersOutputEventTrackers {
  name: String
  eventTrackerArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeListEventTrackersInput {
  datasetGroupArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListFiltersOutput {
  Filters: [AwsPersonalizeListFiltersOutputFilters]
  nextToken: String
}

type AwsPersonalizeListFiltersOutputFilters {
  name: String
  filterArn: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
  datasetGroupArn: String
  failureReason: String
  status: String
}

input AwsPersonalizeListFiltersInput {
  datasetGroupArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListRecipesOutput {
  recipes: [AwsPersonalizeListRecipesOutputRecipes]
  nextToken: String
}

type AwsPersonalizeListRecipesOutputRecipes {
  name: String
  recipeArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeListRecipesInput {
  recipeProvider: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListSchemasOutput {
  schemas: [AwsPersonalizeListSchemasOutputSchemas]
  nextToken: String
}

type AwsPersonalizeListSchemasOutputSchemas {
  name: String
  schemaArn: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeListSchemasInput {
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListSolutionVersionsOutput {
  solutionVersions: [AwsPersonalizeS41]
  nextToken: String
}

input AwsPersonalizeListSolutionVersionsInput {
  solutionArn: String
  nextToken: String
  maxResults: Int
}

type AwsPersonalizeListSolutionsOutput {
  solutions: [AwsPersonalizeListSolutionsOutputSolutions]
  nextToken: String
}

type AwsPersonalizeListSolutionsOutputSolutions {
  name: String
  solutionArn: String
  status: String
  creationDateTime: Date
  lastUpdatedDateTime: Date
}

input AwsPersonalizeListSolutionsInput {
  datasetGroupArn: String
  nextToken: String
  maxResults: Int
}

input AwsPersonalizeStopSolutionVersionCreationInput {
  solutionVersionArn: String!
}

type AwsPersonalizeUpdateCampaignOutput {
  campaignArn: String
}

input AwsPersonalizeUpdateCampaignInput {
  campaignArn: String!
  solutionVersionArn: String
  minProvisionedTPS: Int
  campaignConfig: AwsPersonalizeSiInput
}

"""Amazon Personalize Events (2018-03-22)"""
type AwsPersonalizeEvents {
  putEvents(input: AwsPersonalizeEventsPutEventsInput!, config: AwsConfig): JSON
  putItems(input: AwsPersonalizeEventsPutItemsInput!, config: AwsConfig): JSON
  putUsers(input: AwsPersonalizeEventsPutUsersInput!, config: AwsConfig): JSON
}

input AwsPersonalizeEventsPutEventsInput {
  trackingId: String!
  userId: String
  sessionId: String!
  eventList: [AwsPersonalizeEventsPutEventsEventListInput]!
}

input AwsPersonalizeEventsPutEventsEventListInput {
  eventId: String
  eventType: String!
  eventValue: Float
  itemId: String
  properties: String
  sentAt: Date!
  recommendationId: String
  impression: [String]
}

input AwsPersonalizeEventsPutItemsInput {
  datasetArn: String!
  items: [AwsPersonalizeEventsPutItemsItemsInput]!
}

input AwsPersonalizeEventsPutItemsItemsInput {
  itemId: String!
  properties: String
}

input AwsPersonalizeEventsPutUsersInput {
  datasetArn: String!
  users: [AwsPersonalizeEventsPutUsersUsersInput]!
}

input AwsPersonalizeEventsPutUsersUsersInput {
  userId: String!
  properties: String
}

"""Amazon Personalize Runtime (2018-05-22)"""
type AwsPersonalizeRuntime {
  getPersonalizedRanking(input: AwsPersonalizeRuntimeGetPersonalizedRankingInput!, config: AwsConfig): AwsPersonalizeRuntimeGetPersonalizedRankingOutput
  getRecommendations(input: AwsPersonalizeRuntimeGetRecommendationsInput!, config: AwsConfig): AwsPersonalizeRuntimeGetRecommendationsOutput
}

type AwsPersonalizeRuntimeGetPersonalizedRankingOutput {
  personalizedRanking: [AwsPersonalizeRuntimeSd]
  recommendationId: String
}

type AwsPersonalizeRuntimeSd {
  itemId: String
  score: JSON
}

input AwsPersonalizeRuntimeGetPersonalizedRankingInput {
  campaignArn: String!
  inputList: [String]!
  userId: String!
  context: JSON
  filterArn: String
  filterValues: JSON
}

type AwsPersonalizeRuntimeGetRecommendationsOutput {
  itemList: [AwsPersonalizeRuntimeSd]
  recommendationId: String
}

input AwsPersonalizeRuntimeGetRecommendationsInput {
  campaignArn: String!
  itemId: String
  userId: String
  numResults: Int
  context: JSON
  filterArn: String
  filterValues: JSON
}

"""Amazon Pinpoint (2016-12-01)"""
type AwsPinpoint {
  createApp(input: AwsPinpointCreateAppInput!, config: AwsConfig): AwsPinpointCreateAppOutput
  createCampaign(input: AwsPinpointCreateCampaignInput!, config: AwsConfig): AwsPinpointCreateCampaignOutput
  createEmailTemplate(input: AwsPinpointCreateEmailTemplateInput!, config: AwsConfig): AwsPinpointCreateEmailTemplateOutput
  createExportJob(input: AwsPinpointCreateExportJobInput!, config: AwsConfig): AwsPinpointCreateExportJobOutput
  createImportJob(input: AwsPinpointCreateImportJobInput!, config: AwsConfig): AwsPinpointCreateImportJobOutput
  createJourney(input: AwsPinpointCreateJourneyInput!, config: AwsConfig): AwsPinpointCreateJourneyOutput
  createPushTemplate(input: AwsPinpointCreatePushTemplateInput!, config: AwsConfig): AwsPinpointCreatePushTemplateOutput
  createRecommenderConfiguration(input: AwsPinpointCreateRecommenderConfigurationInput!, config: AwsConfig): AwsPinpointCreateRecommenderConfigurationOutput
  createSegment(input: AwsPinpointCreateSegmentInput!, config: AwsConfig): AwsPinpointCreateSegmentOutput
  createSmsTemplate(input: AwsPinpointCreateSmsTemplateInput!, config: AwsConfig): AwsPinpointCreateSmsTemplateOutput
  createVoiceTemplate(input: AwsPinpointCreateVoiceTemplateInput!, config: AwsConfig): AwsPinpointCreateVoiceTemplateOutput
  deleteAdmChannel(input: AwsPinpointDeleteAdmChannelInput!, config: AwsConfig): AwsPinpointDeleteAdmChannelOutput
  deleteApnsChannel(input: AwsPinpointDeleteApnsChannelInput!, config: AwsConfig): AwsPinpointDeleteApnsChannelOutput
  deleteApnsSandboxChannel(input: AwsPinpointDeleteApnsSandboxChannelInput!, config: AwsConfig): AwsPinpointDeleteApnsSandboxChannelOutput
  deleteApnsVoipChannel(input: AwsPinpointDeleteApnsVoipChannelInput!, config: AwsConfig): AwsPinpointDeleteApnsVoipChannelOutput
  deleteApnsVoipSandboxChannel(input: AwsPinpointDeleteApnsVoipSandboxChannelInput!, config: AwsConfig): AwsPinpointDeleteApnsVoipSandboxChannelOutput
  deleteApp(input: AwsPinpointDeleteAppInput!, config: AwsConfig): AwsPinpointDeleteAppOutput
  deleteBaiduChannel(input: AwsPinpointDeleteBaiduChannelInput!, config: AwsConfig): AwsPinpointDeleteBaiduChannelOutput
  deleteCampaign(input: AwsPinpointDeleteCampaignInput!, config: AwsConfig): AwsPinpointDeleteCampaignOutput
  deleteEmailChannel(input: AwsPinpointDeleteEmailChannelInput!, config: AwsConfig): AwsPinpointDeleteEmailChannelOutput
  deleteEmailTemplate(input: AwsPinpointDeleteEmailTemplateInput!, config: AwsConfig): AwsPinpointDeleteEmailTemplateOutput
  deleteEndpoint(input: AwsPinpointDeleteEndpointInput!, config: AwsConfig): AwsPinpointDeleteEndpointOutput
  deleteEventStream(input: AwsPinpointDeleteEventStreamInput!, config: AwsConfig): AwsPinpointDeleteEventStreamOutput
  deleteGcmChannel(input: AwsPinpointDeleteGcmChannelInput!, config: AwsConfig): AwsPinpointDeleteGcmChannelOutput
  deleteJourney(input: AwsPinpointDeleteJourneyInput!, config: AwsConfig): AwsPinpointDeleteJourneyOutput
  deletePushTemplate(input: AwsPinpointDeletePushTemplateInput!, config: AwsConfig): AwsPinpointDeletePushTemplateOutput
  deleteRecommenderConfiguration(input: AwsPinpointDeleteRecommenderConfigurationInput!, config: AwsConfig): AwsPinpointDeleteRecommenderConfigurationOutput
  deleteSegment(input: AwsPinpointDeleteSegmentInput!, config: AwsConfig): AwsPinpointDeleteSegmentOutput
  deleteSmsChannel(input: AwsPinpointDeleteSmsChannelInput!, config: AwsConfig): AwsPinpointDeleteSmsChannelOutput
  deleteSmsTemplate(input: AwsPinpointDeleteSmsTemplateInput!, config: AwsConfig): AwsPinpointDeleteSmsTemplateOutput
  deleteUserEndpoints(input: AwsPinpointDeleteUserEndpointsInput!, config: AwsConfig): AwsPinpointDeleteUserEndpointsOutput
  deleteVoiceChannel(input: AwsPinpointDeleteVoiceChannelInput!, config: AwsConfig): AwsPinpointDeleteVoiceChannelOutput
  deleteVoiceTemplate(input: AwsPinpointDeleteVoiceTemplateInput!, config: AwsConfig): AwsPinpointDeleteVoiceTemplateOutput
  getAdmChannel(input: AwsPinpointGetAdmChannelInput!, config: AwsConfig): AwsPinpointGetAdmChannelOutput
  getApnsChannel(input: AwsPinpointGetApnsChannelInput!, config: AwsConfig): AwsPinpointGetApnsChannelOutput
  getApnsSandboxChannel(input: AwsPinpointGetApnsSandboxChannelInput!, config: AwsConfig): AwsPinpointGetApnsSandboxChannelOutput
  getApnsVoipChannel(input: AwsPinpointGetApnsVoipChannelInput!, config: AwsConfig): AwsPinpointGetApnsVoipChannelOutput
  getApnsVoipSandboxChannel(input: AwsPinpointGetApnsVoipSandboxChannelInput!, config: AwsConfig): AwsPinpointGetApnsVoipSandboxChannelOutput
  getApp(input: AwsPinpointGetAppInput!, config: AwsConfig): AwsPinpointGetAppOutput
  getApplicationDateRangeKpi(input: AwsPinpointGetApplicationDateRangeKpiInput!, config: AwsConfig): AwsPinpointGetApplicationDateRangeKpiOutput
  getApplicationSettings(input: AwsPinpointGetApplicationSettingsInput!, config: AwsConfig): AwsPinpointGetApplicationSettingsOutput
  getApps(input: AwsPinpointGetAppsInput, config: AwsConfig): AwsPinpointGetAppsOutput
  getBaiduChannel(input: AwsPinpointGetBaiduChannelInput!, config: AwsConfig): AwsPinpointGetBaiduChannelOutput
  getCampaign(input: AwsPinpointGetCampaignInput!, config: AwsConfig): AwsPinpointGetCampaignOutput
  getCampaignActivities(input: AwsPinpointGetCampaignActivitiesInput!, config: AwsConfig): AwsPinpointGetCampaignActivitiesOutput
  getCampaignDateRangeKpi(input: AwsPinpointGetCampaignDateRangeKpiInput!, config: AwsConfig): AwsPinpointGetCampaignDateRangeKpiOutput
  getCampaignVersion(input: AwsPinpointGetCampaignVersionInput!, config: AwsConfig): AwsPinpointGetCampaignVersionOutput
  getCampaignVersions(input: AwsPinpointGetCampaignVersionsInput!, config: AwsConfig): AwsPinpointGetCampaignVersionsOutput
  getCampaigns(input: AwsPinpointGetCampaignsInput!, config: AwsConfig): AwsPinpointGetCampaignsOutput
  getChannels(input: AwsPinpointGetChannelsInput!, config: AwsConfig): AwsPinpointGetChannelsOutput
  getEmailChannel(input: AwsPinpointGetEmailChannelInput!, config: AwsConfig): AwsPinpointGetEmailChannelOutput
  getEmailTemplate(input: AwsPinpointGetEmailTemplateInput!, config: AwsConfig): AwsPinpointGetEmailTemplateOutput
  getEndpoint(input: AwsPinpointGetEndpointInput!, config: AwsConfig): AwsPinpointGetEndpointOutput
  getEventStream(input: AwsPinpointGetEventStreamInput!, config: AwsConfig): AwsPinpointGetEventStreamOutput
  getExportJob(input: AwsPinpointGetExportJobInput!, config: AwsConfig): AwsPinpointGetExportJobOutput
  getExportJobs(input: AwsPinpointGetExportJobsInput!, config: AwsConfig): AwsPinpointGetExportJobsOutput
  getGcmChannel(input: AwsPinpointGetGcmChannelInput!, config: AwsConfig): AwsPinpointGetGcmChannelOutput
  getImportJob(input: AwsPinpointGetImportJobInput!, config: AwsConfig): AwsPinpointGetImportJobOutput
  getImportJobs(input: AwsPinpointGetImportJobsInput!, config: AwsConfig): AwsPinpointGetImportJobsOutput
  getJourney(input: AwsPinpointGetJourneyInput!, config: AwsConfig): AwsPinpointGetJourneyOutput
  getJourneyDateRangeKpi(input: AwsPinpointGetJourneyDateRangeKpiInput!, config: AwsConfig): AwsPinpointGetJourneyDateRangeKpiOutput
  getJourneyExecutionActivityMetrics(input: AwsPinpointGetJourneyExecutionActivityMetricsInput!, config: AwsConfig): AwsPinpointGetJourneyExecutionActivityMetricsOutput
  getJourneyExecutionMetrics(input: AwsPinpointGetJourneyExecutionMetricsInput!, config: AwsConfig): AwsPinpointGetJourneyExecutionMetricsOutput
  getPushTemplate(input: AwsPinpointGetPushTemplateInput!, config: AwsConfig): AwsPinpointGetPushTemplateOutput
  getRecommenderConfiguration(input: AwsPinpointGetRecommenderConfigurationInput!, config: AwsConfig): AwsPinpointGetRecommenderConfigurationOutput
  getRecommenderConfigurations(input: AwsPinpointGetRecommenderConfigurationsInput, config: AwsConfig): AwsPinpointGetRecommenderConfigurationsOutput
  getSegment(input: AwsPinpointGetSegmentInput!, config: AwsConfig): AwsPinpointGetSegmentOutput
  getSegmentExportJobs(input: AwsPinpointGetSegmentExportJobsInput!, config: AwsConfig): AwsPinpointGetSegmentExportJobsOutput
  getSegmentImportJobs(input: AwsPinpointGetSegmentImportJobsInput!, config: AwsConfig): AwsPinpointGetSegmentImportJobsOutput
  getSegmentVersion(input: AwsPinpointGetSegmentVersionInput!, config: AwsConfig): AwsPinpointGetSegmentVersionOutput
  getSegmentVersions(input: AwsPinpointGetSegmentVersionsInput!, config: AwsConfig): AwsPinpointGetSegmentVersionsOutput
  getSegments(input: AwsPinpointGetSegmentsInput!, config: AwsConfig): AwsPinpointGetSegmentsOutput
  getSmsChannel(input: AwsPinpointGetSmsChannelInput!, config: AwsConfig): AwsPinpointGetSmsChannelOutput
  getSmsTemplate(input: AwsPinpointGetSmsTemplateInput!, config: AwsConfig): AwsPinpointGetSmsTemplateOutput
  getUserEndpoints(input: AwsPinpointGetUserEndpointsInput!, config: AwsConfig): AwsPinpointGetUserEndpointsOutput
  getVoiceChannel(input: AwsPinpointGetVoiceChannelInput!, config: AwsConfig): AwsPinpointGetVoiceChannelOutput
  getVoiceTemplate(input: AwsPinpointGetVoiceTemplateInput!, config: AwsConfig): AwsPinpointGetVoiceTemplateOutput
  listJourneys(input: AwsPinpointListJourneysInput!, config: AwsConfig): AwsPinpointListJourneysOutput
  listTagsForResource(input: AwsPinpointListTagsForResourceInput!, config: AwsConfig): AwsPinpointListTagsForResourceOutput
  listTemplateVersions(input: AwsPinpointListTemplateVersionsInput!, config: AwsConfig): AwsPinpointListTemplateVersionsOutput
  listTemplates(input: AwsPinpointListTemplatesInput, config: AwsConfig): AwsPinpointListTemplatesOutput
  phoneNumberValidate(input: AwsPinpointPhoneNumberValidateInput!, config: AwsConfig): AwsPinpointPhoneNumberValidateOutput
  putEventStream(input: AwsPinpointPutEventStreamInput!, config: AwsConfig): AwsPinpointPutEventStreamOutput
  putEvents(input: AwsPinpointPutEventsInput!, config: AwsConfig): AwsPinpointPutEventsOutput
  removeAttributes(input: AwsPinpointRemoveAttributesInput!, config: AwsConfig): AwsPinpointRemoveAttributesOutput
  sendMessages(input: AwsPinpointSendMessagesInput!, config: AwsConfig): AwsPinpointSendMessagesOutput
  sendUsersMessages(input: AwsPinpointSendUsersMessagesInput!, config: AwsConfig): AwsPinpointSendUsersMessagesOutput
  tagResource(input: AwsPinpointTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsPinpointUntagResourceInput!, config: AwsConfig): JSON
  updateAdmChannel(input: AwsPinpointUpdateAdmChannelInput!, config: AwsConfig): AwsPinpointUpdateAdmChannelOutput
  updateApnsChannel(input: AwsPinpointUpdateApnsChannelInput!, config: AwsConfig): AwsPinpointUpdateApnsChannelOutput
  updateApnsSandboxChannel(input: AwsPinpointUpdateApnsSandboxChannelInput!, config: AwsConfig): AwsPinpointUpdateApnsSandboxChannelOutput
  updateApnsVoipChannel(input: AwsPinpointUpdateApnsVoipChannelInput!, config: AwsConfig): AwsPinpointUpdateApnsVoipChannelOutput
  updateApnsVoipSandboxChannel(input: AwsPinpointUpdateApnsVoipSandboxChannelInput!, config: AwsConfig): AwsPinpointUpdateApnsVoipSandboxChannelOutput
  updateApplicationSettings(input: AwsPinpointUpdateApplicationSettingsInput!, config: AwsConfig): AwsPinpointUpdateApplicationSettingsOutput
  updateBaiduChannel(input: AwsPinpointUpdateBaiduChannelInput!, config: AwsConfig): AwsPinpointUpdateBaiduChannelOutput
  updateCampaign(input: AwsPinpointUpdateCampaignInput!, config: AwsConfig): AwsPinpointUpdateCampaignOutput
  updateEmailChannel(input: AwsPinpointUpdateEmailChannelInput!, config: AwsConfig): AwsPinpointUpdateEmailChannelOutput
  updateEmailTemplate(input: AwsPinpointUpdateEmailTemplateInput!, config: AwsConfig): AwsPinpointUpdateEmailTemplateOutput
  updateEndpoint(input: AwsPinpointUpdateEndpointInput!, config: AwsConfig): AwsPinpointUpdateEndpointOutput
  updateEndpointsBatch(input: AwsPinpointUpdateEndpointsBatchInput!, config: AwsConfig): AwsPinpointUpdateEndpointsBatchOutput
  updateGcmChannel(input: AwsPinpointUpdateGcmChannelInput!, config: AwsConfig): AwsPinpointUpdateGcmChannelOutput
  updateJourney(input: AwsPinpointUpdateJourneyInput!, config: AwsConfig): AwsPinpointUpdateJourneyOutput
  updateJourneyState(input: AwsPinpointUpdateJourneyStateInput!, config: AwsConfig): AwsPinpointUpdateJourneyStateOutput
  updatePushTemplate(input: AwsPinpointUpdatePushTemplateInput!, config: AwsConfig): AwsPinpointUpdatePushTemplateOutput
  updateRecommenderConfiguration(input: AwsPinpointUpdateRecommenderConfigurationInput!, config: AwsConfig): AwsPinpointUpdateRecommenderConfigurationOutput
  updateSegment(input: AwsPinpointUpdateSegmentInput!, config: AwsConfig): AwsPinpointUpdateSegmentOutput
  updateSmsChannel(input: AwsPinpointUpdateSmsChannelInput!, config: AwsConfig): AwsPinpointUpdateSmsChannelOutput
  updateSmsTemplate(input: AwsPinpointUpdateSmsTemplateInput!, config: AwsConfig): AwsPinpointUpdateSmsTemplateOutput
  updateTemplateActiveVersion(input: AwsPinpointUpdateTemplateActiveVersionInput!, config: AwsConfig): AwsPinpointUpdateTemplateActiveVersionOutput
  updateVoiceChannel(input: AwsPinpointUpdateVoiceChannelInput!, config: AwsConfig): AwsPinpointUpdateVoiceChannelOutput
  updateVoiceTemplate(input: AwsPinpointUpdateVoiceTemplateInput!, config: AwsConfig): AwsPinpointUpdateVoiceTemplateOutput
}

type AwsPinpointCreateAppOutput {
  ApplicationResponse: AwsPinpointS6!
}

type AwsPinpointS6 {
  Arn: String!
  Id: String!
  Name: String!
  tags: JSON
}

input AwsPinpointCreateAppInput {
  CreateApplicationRequest: AwsPinpointCreateAppCreateApplicationRequestInput!
}

input AwsPinpointCreateAppCreateApplicationRequestInput {
  Name: String!
  tags: JSON
}

type AwsPinpointCreateCampaignOutput {
  CampaignResponse: AwsPinpointS18!
}

type AwsPinpointS18 {
  AdditionalTreatments: [AwsPinpointS18AdditionalTreatments]
  ApplicationId: String!
  Arn: String!
  CreationDate: String!
  CustomDeliveryConfiguration: AwsPinpointSb
  DefaultState: AwsPinpointS1b
  Description: String
  HoldoutPercent: Int
  Hook: AwsPinpointS14
  Id: String!
  IsPaused: Boolean
  LastModifiedDate: String!
  Limits: AwsPinpointS16
  MessageConfiguration: AwsPinpointSe
  Name: String
  Schedule: AwsPinpointSn
  SegmentId: String!
  SegmentVersion: Int!
  State: AwsPinpointS1b
  tags: JSON
  TemplateConfiguration: AwsPinpointS12
  TreatmentDescription: String
  TreatmentName: String
  Version: Int
}

type AwsPinpointS18AdditionalTreatments {
  CustomDeliveryConfiguration: AwsPinpointSb
  Id: String!
  MessageConfiguration: AwsPinpointSe
  Schedule: AwsPinpointSn
  SizePercent: Int!
  State: AwsPinpointS1b
  TemplateConfiguration: AwsPinpointS12
  TreatmentDescription: String
  TreatmentName: String
}

type AwsPinpointSb {
  DeliveryUri: String!
  EndpointTypes: [String]
}

type AwsPinpointSe {
  ADMMessage: AwsPinpointSf
  APNSMessage: AwsPinpointSf
  BaiduMessage: AwsPinpointSf
  CustomMessage: AwsPinpointSeCustomMessage
  DefaultMessage: AwsPinpointSf
  EmailMessage: AwsPinpointSeEmailMessage
  GCMMessage: AwsPinpointSf
  SMSMessage: AwsPinpointSeSMSMessage
}

type AwsPinpointSf {
  Action: String
  Body: String
  ImageIconUrl: String
  ImageSmallIconUrl: String
  ImageUrl: String
  JsonBody: String
  MediaUrl: String
  RawContent: String
  SilentPush: Boolean
  TimeToLive: Int
  Title: String
  Url: String
}

type AwsPinpointSeCustomMessage {
  Data: String
}

type AwsPinpointSeEmailMessage {
  Body: String
  FromAddress: String
  HtmlBody: String
  Title: String
}

type AwsPinpointSeSMSMessage {
  Body: String
  MessageType: String
  OriginationNumber: String
  SenderId: String
  EntityId: String
  TemplateId: String
}

type AwsPinpointSn {
  EndTime: String
  EventFilter: AwsPinpointSnEventFilter
  Frequency: String
  IsLocalTime: Boolean
  QuietTime: AwsPinpointS11
  StartTime: String!
  Timezone: String
}

type AwsPinpointSnEventFilter {
  Dimensions: AwsPinpointSp!
  FilterType: String!
}

type AwsPinpointSp {
  Attributes: JSON
  EventType: AwsPinpointSu
  Metrics: JSON
}

type AwsPinpointSu {
  DimensionType: String
  Values: [String]!
}

type AwsPinpointS11 {
  End: String
  Start: String
}

type AwsPinpointS1b {
  CampaignStatus: String
}

type AwsPinpointS12 {
  EmailTemplate: AwsPinpointS13
  PushTemplate: AwsPinpointS13
  SMSTemplate: AwsPinpointS13
  VoiceTemplate: AwsPinpointS13
}

type AwsPinpointS13 {
  Name: String
  Version: String
}

type AwsPinpointS14 {
  LambdaFunctionName: String
  Mode: String
  WebUrl: String
}

type AwsPinpointS16 {
  Daily: Int
  MaximumDuration: Int
  MessagesPerSecond: Int
  Total: Int
}

input AwsPinpointCreateCampaignInput {
  ApplicationId: String!
  WriteCampaignRequest: AwsPinpointS8Input!
}

input AwsPinpointS8Input {
  AdditionalTreatments: [AwsPinpointS8AdditionalTreatmentsInput]
  CustomDeliveryConfiguration: AwsPinpointSbInput
  Description: String
  HoldoutPercent: Int
  Hook: AwsPinpointS14Input
  IsPaused: Boolean
  Limits: AwsPinpointS16Input
  MessageConfiguration: AwsPinpointSeInput
  Name: String
  Schedule: AwsPinpointSnInput
  SegmentId: String
  SegmentVersion: Int
  tags: JSON
  TemplateConfiguration: AwsPinpointS12Input
  TreatmentDescription: String
  TreatmentName: String
}

input AwsPinpointS8AdditionalTreatmentsInput {
  CustomDeliveryConfiguration: AwsPinpointSbInput
  MessageConfiguration: AwsPinpointSeInput
  Schedule: AwsPinpointSnInput
  SizePercent: Int!
  TemplateConfiguration: AwsPinpointS12Input
  TreatmentDescription: String
  TreatmentName: String
}

input AwsPinpointSbInput {
  DeliveryUri: String!
  EndpointTypes: [String]
}

input AwsPinpointSeInput {
  ADMMessage: AwsPinpointSfInput
  APNSMessage: AwsPinpointSfInput
  BaiduMessage: AwsPinpointSfInput
  CustomMessage: AwsPinpointSeCustomMessageInput
  DefaultMessage: AwsPinpointSfInput
  EmailMessage: AwsPinpointSeEmailMessageInput
  GCMMessage: AwsPinpointSfInput
  SMSMessage: AwsPinpointSeSMSMessageInput
}

input AwsPinpointSfInput {
  Action: String
  Body: String
  ImageIconUrl: String
  ImageSmallIconUrl: String
  ImageUrl: String
  JsonBody: String
  MediaUrl: String
  RawContent: String
  SilentPush: Boolean
  TimeToLive: Int
  Title: String
  Url: String
}

input AwsPinpointSeCustomMessageInput {
  Data: String
}

input AwsPinpointSeEmailMessageInput {
  Body: String
  FromAddress: String
  HtmlBody: String
  Title: String
}

input AwsPinpointSeSMSMessageInput {
  Body: String
  MessageType: String
  OriginationNumber: String
  SenderId: String
  EntityId: String
  TemplateId: String
}

input AwsPinpointSnInput {
  EndTime: String
  EventFilter: AwsPinpointSnEventFilterInput
  Frequency: String
  IsLocalTime: Boolean
  QuietTime: AwsPinpointS11Input
  StartTime: String!
  Timezone: String
}

input AwsPinpointSnEventFilterInput {
  Dimensions: AwsPinpointSpInput!
  FilterType: String!
}

input AwsPinpointSpInput {
  Attributes: JSON
  EventType: AwsPinpointSuInput
  Metrics: JSON
}

input AwsPinpointSuInput {
  DimensionType: String
  Values: [String]!
}

input AwsPinpointS11Input {
  End: String
  Start: String
}

input AwsPinpointS12Input {
  EmailTemplate: AwsPinpointS13Input
  PushTemplate: AwsPinpointS13Input
  SMSTemplate: AwsPinpointS13Input
  VoiceTemplate: AwsPinpointS13Input
}

input AwsPinpointS13Input {
  Name: String
  Version: String
}

input AwsPinpointS14Input {
  LambdaFunctionName: String
  Mode: String
  WebUrl: String
}

input AwsPinpointS16Input {
  Daily: Int
  MaximumDuration: Int
  MessagesPerSecond: Int
  Total: Int
}

type AwsPinpointCreateEmailTemplateOutput {
  CreateTemplateMessageBody: AwsPinpointS1g!
}

type AwsPinpointS1g {
  Arn: String
  Message: String
  RequestID: String
}

input AwsPinpointCreateEmailTemplateInput {
  EmailTemplateRequest: AwsPinpointS1eInput!
  TemplateName: String!
}

input AwsPinpointS1eInput {
  DefaultSubstitutions: String
  HtmlPart: String
  RecommenderId: String
  Subject: String
  tags: JSON
  TemplateDescription: String
  TextPart: String
}

type AwsPinpointCreateExportJobOutput {
  ExportJobResponse: AwsPinpointS1k!
}

type AwsPinpointS1k {
  ApplicationId: String!
  CompletedPieces: Int
  CompletionDate: String
  CreationDate: String!
  Definition: AwsPinpointS1kDefinition!
  FailedPieces: Int
  Failures: [String]
  Id: String!
  JobStatus: String!
  TotalFailures: Int
  TotalPieces: Int
  TotalProcessed: Int
  Type: String!
}

type AwsPinpointS1kDefinition {
  RoleArn: String!
  S3UrlPrefix: String!
  SegmentId: String
  SegmentVersion: Int
}

input AwsPinpointCreateExportJobInput {
  ApplicationId: String!
  ExportJobRequest: AwsPinpointCreateExportJobExportJobRequestInput!
}

input AwsPinpointCreateExportJobExportJobRequestInput {
  RoleArn: String!
  S3UrlPrefix: String!
  SegmentId: String
  SegmentVersion: Int
}

type AwsPinpointCreateImportJobOutput {
  ImportJobResponse: AwsPinpointS1r!
}

type AwsPinpointS1r {
  ApplicationId: String!
  CompletedPieces: Int
  CompletionDate: String
  CreationDate: String!
  Definition: AwsPinpointS1rDefinition!
  FailedPieces: Int
  Failures: [String]
  Id: String!
  JobStatus: String!
  TotalFailures: Int
  TotalPieces: Int
  TotalProcessed: Int
  Type: String!
}

type AwsPinpointS1rDefinition {
  DefineSegment: Boolean
  ExternalId: String
  Format: String!
  RegisterEndpoints: Boolean
  RoleArn: String!
  S3Url: String!
  SegmentId: String
  SegmentName: String
}

input AwsPinpointCreateImportJobInput {
  ApplicationId: String!
  ImportJobRequest: AwsPinpointCreateImportJobImportJobRequestInput!
}

input AwsPinpointCreateImportJobImportJobRequestInput {
  DefineSegment: Boolean
  ExternalId: String
  Format: String!
  RegisterEndpoints: Boolean
  RoleArn: String!
  S3Url: String!
  SegmentId: String
  SegmentName: String
}

type AwsPinpointCreateJourneyOutput {
  JourneyResponse: AwsPinpointS32!
}

type AwsPinpointS32 {
  Activities: JSON
  ApplicationId: String!
  CreationDate: String
  Id: String!
  LastModifiedDate: String
  Limits: AwsPinpointS2u
  LocalTime: Boolean
  Name: String!
  QuietTime: AwsPinpointS11
  RefreshFrequency: String
  Schedule: AwsPinpointS2v
  StartActivity: String
  StartCondition: AwsPinpointS2x
  State: String
  tags: JSON
  WaitForQuietTime: Boolean
  RefreshOnSegmentUpdate: Boolean
}

type AwsPinpointS2u {
  DailyCap: Int
  EndpointReentryCap: Int
  MessagesPerSecond: Int
  EndpointReentryInterval: String
}

type AwsPinpointS2v {
  EndTime: Date
  StartTime: Date
  Timezone: String
}

type AwsPinpointS2x {
  Description: String
  EventStartCondition: AwsPinpointS2xEventStartCondition
  SegmentStartCondition: AwsPinpointS24
}

type AwsPinpointS2xEventStartCondition {
  EventFilter: AwsPinpointS2xEventStartConditionEventFilter
  SegmentId: String
}

type AwsPinpointS2xEventStartConditionEventFilter {
  Dimensions: AwsPinpointSp!
  FilterType: String!
}

type AwsPinpointS24 {
  SegmentId: String!
}

input AwsPinpointCreateJourneyInput {
  ApplicationId: String!
  WriteJourneyRequest: AwsPinpointS1uInput!
}

input AwsPinpointS1uInput {
  Activities: JSON
  CreationDate: String
  LastModifiedDate: String
  Limits: AwsPinpointS2uInput
  LocalTime: Boolean
  Name: String!
  QuietTime: AwsPinpointS11Input
  RefreshFrequency: String
  Schedule: AwsPinpointS2vInput
  StartActivity: String
  StartCondition: AwsPinpointS2xInput
  State: String
  WaitForQuietTime: Boolean
  RefreshOnSegmentUpdate: Boolean
}

input AwsPinpointS2uInput {
  DailyCap: Int
  EndpointReentryCap: Int
  MessagesPerSecond: Int
  EndpointReentryInterval: String
}

input AwsPinpointS2vInput {
  EndTime: Date
  StartTime: Date
  Timezone: String
}

input AwsPinpointS2xInput {
  Description: String
  EventStartCondition: AwsPinpointS2xEventStartConditionInput
  SegmentStartCondition: AwsPinpointS24Input
}

input AwsPinpointS2xEventStartConditionInput {
  EventFilter: AwsPinpointS2xEventStartConditionEventFilterInput
  SegmentId: String
}

input AwsPinpointS2xEventStartConditionEventFilterInput {
  Dimensions: AwsPinpointSpInput!
  FilterType: String!
}

input AwsPinpointS24Input {
  SegmentId: String!
}

type AwsPinpointCreatePushTemplateOutput {
  CreateTemplateMessageBody: AwsPinpointS1g!
}

input AwsPinpointCreatePushTemplateInput {
  PushNotificationTemplateRequest: AwsPinpointS34Input!
  TemplateName: String!
}

input AwsPinpointS34Input {
  ADM: AwsPinpointS35Input
  APNS: AwsPinpointS36Input
  Baidu: AwsPinpointS35Input
  Default: AwsPinpointS37Input
  DefaultSubstitutions: String
  GCM: AwsPinpointS35Input
  RecommenderId: String
  tags: JSON
  TemplateDescription: String
}

input AwsPinpointS35Input {
  Action: String
  Body: String
  ImageIconUrl: String
  ImageUrl: String
  RawContent: String
  SmallImageIconUrl: String
  Sound: String
  Title: String
  Url: String
}

input AwsPinpointS36Input {
  Action: String
  Body: String
  MediaUrl: String
  RawContent: String
  Sound: String
  Title: String
  Url: String
}

input AwsPinpointS37Input {
  Action: String
  Body: String
  Sound: String
  Title: String
  Url: String
}

type AwsPinpointCreateRecommenderConfigurationOutput {
  RecommenderConfigurationResponse: AwsPinpointS3c!
}

type AwsPinpointS3c {
  Attributes: JSON
  CreationDate: String!
  Description: String
  Id: String!
  LastModifiedDate: String!
  Name: String
  RecommendationProviderIdType: String
  RecommendationProviderRoleArn: String!
  RecommendationProviderUri: String!
  RecommendationTransformerUri: String
  RecommendationsDisplayName: String
  RecommendationsPerMessage: Int
}

input AwsPinpointCreateRecommenderConfigurationInput {
  CreateRecommenderConfiguration: AwsPinpointCreateRecommenderConfigurationCreateRecommenderConfigurationInput!
}

input AwsPinpointCreateRecommenderConfigurationCreateRecommenderConfigurationInput {
  Attributes: JSON
  Description: String
  Name: String
  RecommendationProviderIdType: String
  RecommendationProviderRoleArn: String!
  RecommendationProviderUri: String!
  RecommendationTransformerUri: String
  RecommendationsDisplayName: String
  RecommendationsPerMessage: Int
}

type AwsPinpointCreateSegmentOutput {
  SegmentResponse: AwsPinpointS3p!
}

type AwsPinpointS3p {
  ApplicationId: String!
  Arn: String!
  CreationDate: String!
  Dimensions: AwsPinpointS25
  Id: String!
  ImportDefinition: AwsPinpointS3pImportDefinition
  LastModifiedDate: String
  Name: String
  SegmentGroups: AwsPinpointS3f
  SegmentType: String!
  tags: JSON
  Version: Int
}

type AwsPinpointS25 {
  Attributes: JSON
  Behavior: AwsPinpointS25Behavior
  Demographic: AwsPinpointS25Demographic
  Location: AwsPinpointS25Location
  Metrics: JSON
  UserAttributes: JSON
}

type AwsPinpointS25Behavior {
  Recency: AwsPinpointS25BehaviorRecency
}

type AwsPinpointS25BehaviorRecency {
  Duration: String!
  RecencyType: String!
}

type AwsPinpointS25Demographic {
  AppVersion: AwsPinpointSu
  Channel: AwsPinpointSu
  DeviceType: AwsPinpointSu
  Make: AwsPinpointSu
  Model: AwsPinpointSu
  Platform: AwsPinpointSu
}

type AwsPinpointS25Location {
  Country: AwsPinpointSu
  GPSPoint: AwsPinpointS25LocationGPSPoint
}

type AwsPinpointS25LocationGPSPoint {
  Coordinates: AwsPinpointS25LocationGPSPointCoordinates!
  RangeInKilometers: JSON
}

type AwsPinpointS25LocationGPSPointCoordinates {
  Latitude: JSON!
  Longitude: JSON!
}

type AwsPinpointS3pImportDefinition {
  ChannelCounts: JSON
  ExternalId: String!
  Format: String!
  RoleArn: String!
  S3Url: String!
  Size: Int!
}

type AwsPinpointS3f {
  Groups: [AwsPinpointS3fGroups]
  Include: String
}

type AwsPinpointS3fGroups {
  Dimensions: [AwsPinpointS25]
  SourceSegments: [AwsPinpointS3fGroupsSourceSegments]
  SourceType: String
  Type: String
}

type AwsPinpointS3fGroupsSourceSegments {
  Id: String!
  Version: Int
}

input AwsPinpointCreateSegmentInput {
  ApplicationId: String!
  WriteSegmentRequest: AwsPinpointS3eInput!
}

input AwsPinpointS3eInput {
  Dimensions: AwsPinpointS25Input
  Name: String
  SegmentGroups: AwsPinpointS3fInput
  tags: JSON
}

input AwsPinpointS25Input {
  Attributes: JSON
  Behavior: AwsPinpointS25BehaviorInput
  Demographic: AwsPinpointS25DemographicInput
  Location: AwsPinpointS25LocationInput
  Metrics: JSON
  UserAttributes: JSON
}

input AwsPinpointS25BehaviorInput {
  Recency: AwsPinpointS25BehaviorRecencyInput
}

input AwsPinpointS25BehaviorRecencyInput {
  Duration: String!
  RecencyType: String!
}

input AwsPinpointS25DemographicInput {
  AppVersion: AwsPinpointSuInput
  Channel: AwsPinpointSuInput
  DeviceType: AwsPinpointSuInput
  Make: AwsPinpointSuInput
  Model: AwsPinpointSuInput
  Platform: AwsPinpointSuInput
}

input AwsPinpointS25LocationInput {
  Country: AwsPinpointSuInput
  GPSPoint: AwsPinpointS25LocationGPSPointInput
}

input AwsPinpointS25LocationGPSPointInput {
  Coordinates: AwsPinpointS25LocationGPSPointCoordinatesInput!
  RangeInKilometers: JSON
}

input AwsPinpointS25LocationGPSPointCoordinatesInput {
  Latitude: JSON!
  Longitude: JSON!
}

input AwsPinpointS3fInput {
  Groups: [AwsPinpointS3fGroupsInput]
  Include: String
}

input AwsPinpointS3fGroupsInput {
  Dimensions: [AwsPinpointS25Input]
  SourceSegments: [AwsPinpointS3fGroupsSourceSegmentsInput]
  SourceType: String
  Type: String
}

input AwsPinpointS3fGroupsSourceSegmentsInput {
  Id: String!
  Version: Int
}

type AwsPinpointCreateSmsTemplateOutput {
  CreateTemplateMessageBody: AwsPinpointS1g!
}

input AwsPinpointCreateSmsTemplateInput {
  SMSTemplateRequest: AwsPinpointS3uInput!
  TemplateName: String!
}

input AwsPinpointS3uInput {
  Body: String
  DefaultSubstitutions: String
  RecommenderId: String
  tags: JSON
  TemplateDescription: String
}

type AwsPinpointCreateVoiceTemplateOutput {
  CreateTemplateMessageBody: AwsPinpointS1g!
}

input AwsPinpointCreateVoiceTemplateInput {
  TemplateName: String!
  VoiceTemplateRequest: AwsPinpointS3xInput!
}

input AwsPinpointS3xInput {
  Body: String
  DefaultSubstitutions: String
  LanguageCode: String
  tags: JSON
  TemplateDescription: String
  VoiceId: String
}

type AwsPinpointDeleteAdmChannelOutput {
  ADMChannelResponse: AwsPinpointS41!
}

type AwsPinpointS41 {
  ApplicationId: String
  CreationDate: String
  Enabled: Boolean
  HasCredential: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteAdmChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteApnsChannelOutput {
  APNSChannelResponse: AwsPinpointS44!
}

type AwsPinpointS44 {
  ApplicationId: String
  CreationDate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  HasCredential: Boolean
  HasTokenKey: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteApnsChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteApnsSandboxChannelOutput {
  APNSSandboxChannelResponse: AwsPinpointS47!
}

type AwsPinpointS47 {
  ApplicationId: String
  CreationDate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  HasCredential: Boolean
  HasTokenKey: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteApnsSandboxChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteApnsVoipChannelOutput {
  APNSVoipChannelResponse: AwsPinpointS4a!
}

type AwsPinpointS4a {
  ApplicationId: String
  CreationDate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  HasCredential: Boolean
  HasTokenKey: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteApnsVoipChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteApnsVoipSandboxChannelOutput {
  APNSVoipSandboxChannelResponse: AwsPinpointS4d!
}

type AwsPinpointS4d {
  ApplicationId: String
  CreationDate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  HasCredential: Boolean
  HasTokenKey: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteApnsVoipSandboxChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteAppOutput {
  ApplicationResponse: AwsPinpointS6!
}

input AwsPinpointDeleteAppInput {
  ApplicationId: String!
}

type AwsPinpointDeleteBaiduChannelOutput {
  BaiduChannelResponse: AwsPinpointS4i!
}

type AwsPinpointS4i {
  ApplicationId: String
  CreationDate: String
  Credential: String!
  Enabled: Boolean
  HasCredential: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteBaiduChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteCampaignOutput {
  CampaignResponse: AwsPinpointS18!
}

input AwsPinpointDeleteCampaignInput {
  ApplicationId: String!
  CampaignId: String!
}

type AwsPinpointDeleteEmailChannelOutput {
  EmailChannelResponse: AwsPinpointS4n!
}

type AwsPinpointS4n {
  ApplicationId: String
  ConfigurationSet: String
  CreationDate: String
  Enabled: Boolean
  FromAddress: String
  HasCredential: Boolean
  Id: String
  Identity: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  MessagesPerSecond: Int
  Platform: String!
  RoleArn: String
  Version: Int
}

input AwsPinpointDeleteEmailChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteEmailTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

type AwsPinpointS4q {
  Message: String
  RequestID: String
}

input AwsPinpointDeleteEmailTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointDeleteEndpointOutput {
  EndpointResponse: AwsPinpointS4t!
}

type AwsPinpointS4t {
  Address: String
  ApplicationId: String
  Attributes: JSON
  ChannelType: String
  CohortId: String
  CreationDate: String
  Demographic: AwsPinpointS4w
  EffectiveDate: String
  EndpointStatus: String
  Id: String
  Location: AwsPinpointS4x
  Metrics: JSON
  OptOut: String
  RequestId: String
  User: AwsPinpointS4z
}

type AwsPinpointS4w {
  AppVersion: String
  Locale: String
  Make: String
  Model: String
  ModelVersion: String
  Platform: String
  PlatformVersion: String
  Timezone: String
}

type AwsPinpointS4x {
  City: String
  Country: String
  Latitude: JSON
  Longitude: JSON
  PostalCode: String
  Region: String
}

type AwsPinpointS4z {
  UserAttributes: JSON
  UserId: String
}

input AwsPinpointDeleteEndpointInput {
  ApplicationId: String!
  EndpointId: String!
}

type AwsPinpointDeleteEventStreamOutput {
  EventStream: AwsPinpointS52!
}

type AwsPinpointS52 {
  ApplicationId: String!
  DestinationStreamArn: String!
  ExternalId: String
  LastModifiedDate: String
  LastUpdatedBy: String
  RoleArn: String!
}

input AwsPinpointDeleteEventStreamInput {
  ApplicationId: String!
}

type AwsPinpointDeleteGcmChannelOutput {
  GCMChannelResponse: AwsPinpointS55!
}

type AwsPinpointS55 {
  ApplicationId: String
  CreationDate: String
  Credential: String!
  Enabled: Boolean
  HasCredential: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteGcmChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteJourneyOutput {
  JourneyResponse: AwsPinpointS32!
}

input AwsPinpointDeleteJourneyInput {
  ApplicationId: String!
  JourneyId: String!
}

type AwsPinpointDeletePushTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointDeletePushTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointDeleteRecommenderConfigurationOutput {
  RecommenderConfigurationResponse: AwsPinpointS3c!
}

input AwsPinpointDeleteRecommenderConfigurationInput {
  RecommenderId: String!
}

type AwsPinpointDeleteSegmentOutput {
  SegmentResponse: AwsPinpointS3p!
}

input AwsPinpointDeleteSegmentInput {
  ApplicationId: String!
  SegmentId: String!
}

type AwsPinpointDeleteSmsChannelOutput {
  SMSChannelResponse: AwsPinpointS5g!
}

type AwsPinpointS5g {
  ApplicationId: String
  CreationDate: String
  Enabled: Boolean
  HasCredential: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  PromotionalMessagesPerSecond: Int
  SenderId: String
  ShortCode: String
  TransactionalMessagesPerSecond: Int
  Version: Int
}

input AwsPinpointDeleteSmsChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteSmsTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointDeleteSmsTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointDeleteUserEndpointsOutput {
  EndpointsResponse: AwsPinpointS5l!
}

type AwsPinpointS5l {
  Item: [AwsPinpointS4t]!
}

input AwsPinpointDeleteUserEndpointsInput {
  ApplicationId: String!
  UserId: String!
}

type AwsPinpointDeleteVoiceChannelOutput {
  VoiceChannelResponse: AwsPinpointS5p!
}

type AwsPinpointS5p {
  ApplicationId: String
  CreationDate: String
  Enabled: Boolean
  HasCredential: Boolean
  Id: String
  IsArchived: Boolean
  LastModifiedBy: String
  LastModifiedDate: String
  Platform: String!
  Version: Int
}

input AwsPinpointDeleteVoiceChannelInput {
  ApplicationId: String!
}

type AwsPinpointDeleteVoiceTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointDeleteVoiceTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointGetAdmChannelOutput {
  ADMChannelResponse: AwsPinpointS41!
}

input AwsPinpointGetAdmChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetApnsChannelOutput {
  APNSChannelResponse: AwsPinpointS44!
}

input AwsPinpointGetApnsChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetApnsSandboxChannelOutput {
  APNSSandboxChannelResponse: AwsPinpointS47!
}

input AwsPinpointGetApnsSandboxChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetApnsVoipChannelOutput {
  APNSVoipChannelResponse: AwsPinpointS4a!
}

input AwsPinpointGetApnsVoipChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetApnsVoipSandboxChannelOutput {
  APNSVoipSandboxChannelResponse: AwsPinpointS4d!
}

input AwsPinpointGetApnsVoipSandboxChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetAppOutput {
  ApplicationResponse: AwsPinpointS6!
}

input AwsPinpointGetAppInput {
  ApplicationId: String!
}

type AwsPinpointGetApplicationDateRangeKpiOutput {
  ApplicationDateRangeKpiResponse: AwsPinpointGetApplicationDateRangeKpiOutputApplicationDateRangeKpiResponse!
}

type AwsPinpointGetApplicationDateRangeKpiOutputApplicationDateRangeKpiResponse {
  ApplicationId: String!
  EndTime: Date!
  KpiName: String!
  KpiResult: AwsPinpointS67!
  NextToken: String
  StartTime: Date!
}

type AwsPinpointS67 {
  Rows: [AwsPinpointS67Rows]!
}

type AwsPinpointS67Rows {
  GroupedBys: [AwsPinpointS6a]!
  Values: [AwsPinpointS6a]!
}

type AwsPinpointS6a {
  Key: String!
  Type: String!
  Value: String!
}

input AwsPinpointGetApplicationDateRangeKpiInput {
  ApplicationId: String!
  EndTime: Date
  KpiName: String!
  NextToken: String
  PageSize: String
  StartTime: Date
}

type AwsPinpointGetApplicationSettingsOutput {
  ApplicationSettingsResource: AwsPinpointS6e!
}

type AwsPinpointS6e {
  ApplicationId: String!
  CampaignHook: AwsPinpointS14
  LastModifiedDate: String
  Limits: AwsPinpointS16
  QuietTime: AwsPinpointS11
}

input AwsPinpointGetApplicationSettingsInput {
  ApplicationId: String!
}

type AwsPinpointGetAppsOutput {
  ApplicationsResponse: AwsPinpointGetAppsOutputApplicationsResponse!
}

type AwsPinpointGetAppsOutputApplicationsResponse {
  Item: [AwsPinpointS6]
  NextToken: String
}

input AwsPinpointGetAppsInput {
  PageSize: String
  Token: String
}

type AwsPinpointGetBaiduChannelOutput {
  BaiduChannelResponse: AwsPinpointS4i!
}

input AwsPinpointGetBaiduChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetCampaignOutput {
  CampaignResponse: AwsPinpointS18!
}

input AwsPinpointGetCampaignInput {
  ApplicationId: String!
  CampaignId: String!
}

type AwsPinpointGetCampaignActivitiesOutput {
  ActivitiesResponse: AwsPinpointGetCampaignActivitiesOutputActivitiesResponse!
}

type AwsPinpointGetCampaignActivitiesOutputActivitiesResponse {
  Item: [AwsPinpointGetCampaignActivitiesOutputActivitiesResponseItem]!
  NextToken: String
}

type AwsPinpointGetCampaignActivitiesOutputActivitiesResponseItem {
  ApplicationId: String!
  CampaignId: String!
  End: String
  Id: String!
  Result: String
  ScheduledStart: String
  Start: String
  State: String
  SuccessfulEndpointCount: Int
  TimezonesCompletedCount: Int
  TimezonesTotalCount: Int
  TotalEndpointCount: Int
  TreatmentId: String
}

input AwsPinpointGetCampaignActivitiesInput {
  ApplicationId: String!
  CampaignId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetCampaignDateRangeKpiOutput {
  CampaignDateRangeKpiResponse: AwsPinpointGetCampaignDateRangeKpiOutputCampaignDateRangeKpiResponse!
}

type AwsPinpointGetCampaignDateRangeKpiOutputCampaignDateRangeKpiResponse {
  ApplicationId: String!
  CampaignId: String!
  EndTime: Date!
  KpiName: String!
  KpiResult: AwsPinpointS67!
  NextToken: String
  StartTime: Date!
}

input AwsPinpointGetCampaignDateRangeKpiInput {
  ApplicationId: String!
  CampaignId: String!
  EndTime: Date
  KpiName: String!
  NextToken: String
  PageSize: String
  StartTime: Date
}

type AwsPinpointGetCampaignVersionOutput {
  CampaignResponse: AwsPinpointS18!
}

input AwsPinpointGetCampaignVersionInput {
  ApplicationId: String!
  CampaignId: String!
  Version: String!
}

type AwsPinpointGetCampaignVersionsOutput {
  CampaignsResponse: AwsPinpointS6z!
}

type AwsPinpointS6z {
  Item: [AwsPinpointS18]!
  NextToken: String
}

input AwsPinpointGetCampaignVersionsInput {
  ApplicationId: String!
  CampaignId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetCampaignsOutput {
  CampaignsResponse: AwsPinpointS6z!
}

input AwsPinpointGetCampaignsInput {
  ApplicationId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetChannelsOutput {
  ChannelsResponse: AwsPinpointGetChannelsOutputChannelsResponse!
}

type AwsPinpointGetChannelsOutputChannelsResponse {
  Channels: JSON!
}

input AwsPinpointGetChannelsInput {
  ApplicationId: String!
}

type AwsPinpointGetEmailChannelOutput {
  EmailChannelResponse: AwsPinpointS4n!
}

input AwsPinpointGetEmailChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetEmailTemplateOutput {
  EmailTemplateResponse: AwsPinpointGetEmailTemplateOutputEmailTemplateResponse!
}

type AwsPinpointGetEmailTemplateOutputEmailTemplateResponse {
  Arn: String
  CreationDate: String!
  DefaultSubstitutions: String
  HtmlPart: String
  LastModifiedDate: String!
  RecommenderId: String
  Subject: String
  tags: JSON
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  TextPart: String
  Version: String
}

input AwsPinpointGetEmailTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointGetEndpointOutput {
  EndpointResponse: AwsPinpointS4t!
}

input AwsPinpointGetEndpointInput {
  ApplicationId: String!
  EndpointId: String!
}

type AwsPinpointGetEventStreamOutput {
  EventStream: AwsPinpointS52!
}

input AwsPinpointGetEventStreamInput {
  ApplicationId: String!
}

type AwsPinpointGetExportJobOutput {
  ExportJobResponse: AwsPinpointS1k!
}

input AwsPinpointGetExportJobInput {
  ApplicationId: String!
  JobId: String!
}

type AwsPinpointGetExportJobsOutput {
  ExportJobsResponse: AwsPinpointS7m!
}

type AwsPinpointS7m {
  Item: [AwsPinpointS1k]!
  NextToken: String
}

input AwsPinpointGetExportJobsInput {
  ApplicationId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetGcmChannelOutput {
  GCMChannelResponse: AwsPinpointS55!
}

input AwsPinpointGetGcmChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetImportJobOutput {
  ImportJobResponse: AwsPinpointS1r!
}

input AwsPinpointGetImportJobInput {
  ApplicationId: String!
  JobId: String!
}

type AwsPinpointGetImportJobsOutput {
  ImportJobsResponse: AwsPinpointS7u!
}

type AwsPinpointS7u {
  Item: [AwsPinpointS1r]!
  NextToken: String
}

input AwsPinpointGetImportJobsInput {
  ApplicationId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetJourneyOutput {
  JourneyResponse: AwsPinpointS32!
}

input AwsPinpointGetJourneyInput {
  ApplicationId: String!
  JourneyId: String!
}

type AwsPinpointGetJourneyDateRangeKpiOutput {
  JourneyDateRangeKpiResponse: AwsPinpointGetJourneyDateRangeKpiOutputJourneyDateRangeKpiResponse!
}

type AwsPinpointGetJourneyDateRangeKpiOutputJourneyDateRangeKpiResponse {
  ApplicationId: String!
  EndTime: Date!
  JourneyId: String!
  KpiName: String!
  KpiResult: AwsPinpointS67!
  NextToken: String
  StartTime: Date!
}

input AwsPinpointGetJourneyDateRangeKpiInput {
  ApplicationId: String!
  EndTime: Date
  JourneyId: String!
  KpiName: String!
  NextToken: String
  PageSize: String
  StartTime: Date
}

type AwsPinpointGetJourneyExecutionActivityMetricsOutput {
  JourneyExecutionActivityMetricsResponse: AwsPinpointGetJourneyExecutionActivityMetricsOutputJourneyExecutionActivityMetricsResponse!
}

type AwsPinpointGetJourneyExecutionActivityMetricsOutputJourneyExecutionActivityMetricsResponse {
  ActivityType: String!
  ApplicationId: String!
  JourneyActivityId: String!
  JourneyId: String!
  LastEvaluatedTime: String!
  Metrics: JSON!
}

input AwsPinpointGetJourneyExecutionActivityMetricsInput {
  ApplicationId: String!
  JourneyActivityId: String!
  JourneyId: String!
  NextToken: String
  PageSize: String
}

type AwsPinpointGetJourneyExecutionMetricsOutput {
  JourneyExecutionMetricsResponse: AwsPinpointGetJourneyExecutionMetricsOutputJourneyExecutionMetricsResponse!
}

type AwsPinpointGetJourneyExecutionMetricsOutputJourneyExecutionMetricsResponse {
  ApplicationId: String!
  JourneyId: String!
  LastEvaluatedTime: String!
  Metrics: JSON!
}

input AwsPinpointGetJourneyExecutionMetricsInput {
  ApplicationId: String!
  JourneyId: String!
  NextToken: String
  PageSize: String
}

type AwsPinpointGetPushTemplateOutput {
  PushNotificationTemplateResponse: AwsPinpointGetPushTemplateOutputPushNotificationTemplateResponse!
}

type AwsPinpointGetPushTemplateOutputPushNotificationTemplateResponse {
  ADM: AwsPinpointS35
  APNS: AwsPinpointS36
  Arn: String
  Baidu: AwsPinpointS35
  CreationDate: String!
  Default: AwsPinpointS37
  DefaultSubstitutions: String
  GCM: AwsPinpointS35
  LastModifiedDate: String!
  RecommenderId: String
  tags: JSON
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  Version: String
}

type AwsPinpointS35 {
  Action: String
  Body: String
  ImageIconUrl: String
  ImageUrl: String
  RawContent: String
  SmallImageIconUrl: String
  Sound: String
  Title: String
  Url: String
}

type AwsPinpointS36 {
  Action: String
  Body: String
  MediaUrl: String
  RawContent: String
  Sound: String
  Title: String
  Url: String
}

type AwsPinpointS37 {
  Action: String
  Body: String
  Sound: String
  Title: String
  Url: String
}

input AwsPinpointGetPushTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointGetRecommenderConfigurationOutput {
  RecommenderConfigurationResponse: AwsPinpointS3c!
}

input AwsPinpointGetRecommenderConfigurationInput {
  RecommenderId: String!
}

type AwsPinpointGetRecommenderConfigurationsOutput {
  ListRecommenderConfigurationsResponse: AwsPinpointGetRecommenderConfigurationsOutputListRecommenderConfigurationsResponse!
}

type AwsPinpointGetRecommenderConfigurationsOutputListRecommenderConfigurationsResponse {
  Item: [AwsPinpointS3c]!
  NextToken: String
}

input AwsPinpointGetRecommenderConfigurationsInput {
  PageSize: String
  Token: String
}

type AwsPinpointGetSegmentOutput {
  SegmentResponse: AwsPinpointS3p!
}

input AwsPinpointGetSegmentInput {
  ApplicationId: String!
  SegmentId: String!
}

type AwsPinpointGetSegmentExportJobsOutput {
  ExportJobsResponse: AwsPinpointS7m!
}

input AwsPinpointGetSegmentExportJobsInput {
  ApplicationId: String!
  PageSize: String
  SegmentId: String!
  Token: String
}

type AwsPinpointGetSegmentImportJobsOutput {
  ImportJobsResponse: AwsPinpointS7u!
}

input AwsPinpointGetSegmentImportJobsInput {
  ApplicationId: String!
  PageSize: String
  SegmentId: String!
  Token: String
}

type AwsPinpointGetSegmentVersionOutput {
  SegmentResponse: AwsPinpointS3p!
}

input AwsPinpointGetSegmentVersionInput {
  ApplicationId: String!
  SegmentId: String!
  Version: String!
}

type AwsPinpointGetSegmentVersionsOutput {
  SegmentsResponse: AwsPinpointS8q!
}

type AwsPinpointS8q {
  Item: [AwsPinpointS3p]!
  NextToken: String
}

input AwsPinpointGetSegmentVersionsInput {
  ApplicationId: String!
  PageSize: String
  SegmentId: String!
  Token: String
}

type AwsPinpointGetSegmentsOutput {
  SegmentsResponse: AwsPinpointS8q!
}

input AwsPinpointGetSegmentsInput {
  ApplicationId: String!
  PageSize: String
  Token: String
}

type AwsPinpointGetSmsChannelOutput {
  SMSChannelResponse: AwsPinpointS5g!
}

input AwsPinpointGetSmsChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetSmsTemplateOutput {
  SMSTemplateResponse: AwsPinpointGetSmsTemplateOutputSMSTemplateResponse!
}

type AwsPinpointGetSmsTemplateOutputSMSTemplateResponse {
  Arn: String
  Body: String
  CreationDate: String!
  DefaultSubstitutions: String
  LastModifiedDate: String!
  RecommenderId: String
  tags: JSON
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  Version: String
}

input AwsPinpointGetSmsTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointGetUserEndpointsOutput {
  EndpointsResponse: AwsPinpointS5l!
}

input AwsPinpointGetUserEndpointsInput {
  ApplicationId: String!
  UserId: String!
}

type AwsPinpointGetVoiceChannelOutput {
  VoiceChannelResponse: AwsPinpointS5p!
}

input AwsPinpointGetVoiceChannelInput {
  ApplicationId: String!
}

type AwsPinpointGetVoiceTemplateOutput {
  VoiceTemplateResponse: AwsPinpointGetVoiceTemplateOutputVoiceTemplateResponse!
}

type AwsPinpointGetVoiceTemplateOutputVoiceTemplateResponse {
  Arn: String
  Body: String
  CreationDate: String!
  DefaultSubstitutions: String
  LanguageCode: String
  LastModifiedDate: String!
  tags: JSON
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  Version: String
  VoiceId: String
}

input AwsPinpointGetVoiceTemplateInput {
  TemplateName: String!
  Version: String
}

type AwsPinpointListJourneysOutput {
  JourneysResponse: AwsPinpointListJourneysOutputJourneysResponse!
}

type AwsPinpointListJourneysOutputJourneysResponse {
  Item: [AwsPinpointS32]!
  NextToken: String
}

input AwsPinpointListJourneysInput {
  ApplicationId: String!
  PageSize: String
  Token: String
}

type AwsPinpointListTagsForResourceOutput {
  TagsModel: AwsPinpointS9c!
}

type AwsPinpointS9c {
  tags: JSON!
}

input AwsPinpointListTagsForResourceInput {
  ResourceArn: String!
}

type AwsPinpointListTemplateVersionsOutput {
  TemplateVersionsResponse: AwsPinpointListTemplateVersionsOutputTemplateVersionsResponse!
}

type AwsPinpointListTemplateVersionsOutputTemplateVersionsResponse {
  Item: [AwsPinpointListTemplateVersionsOutputTemplateVersionsResponseItem]!
  Message: String
  NextToken: String
  RequestID: String
}

type AwsPinpointListTemplateVersionsOutputTemplateVersionsResponseItem {
  CreationDate: String!
  DefaultSubstitutions: String
  LastModifiedDate: String!
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  Version: String
}

input AwsPinpointListTemplateVersionsInput {
  NextToken: String
  PageSize: String
  TemplateName: String!
  TemplateType: String!
}

type AwsPinpointListTemplatesOutput {
  TemplatesResponse: AwsPinpointListTemplatesOutputTemplatesResponse!
}

type AwsPinpointListTemplatesOutputTemplatesResponse {
  Item: [AwsPinpointListTemplatesOutputTemplatesResponseItem]!
  NextToken: String
}

type AwsPinpointListTemplatesOutputTemplatesResponseItem {
  Arn: String
  CreationDate: String!
  DefaultSubstitutions: String
  LastModifiedDate: String!
  tags: JSON
  TemplateDescription: String
  TemplateName: String!
  TemplateType: String!
  Version: String
}

input AwsPinpointListTemplatesInput {
  NextToken: String
  PageSize: String
  Prefix: String
  TemplateType: String
}

type AwsPinpointPhoneNumberValidateOutput {
  NumberValidateResponse: AwsPinpointPhoneNumberValidateOutputNumberValidateResponse!
}

type AwsPinpointPhoneNumberValidateOutputNumberValidateResponse {
  Carrier: String
  City: String
  CleansedPhoneNumberE164: String
  CleansedPhoneNumberNational: String
  Country: String
  CountryCodeIso2: String
  CountryCodeNumeric: String
  County: String
  OriginalCountryCodeIso2: String
  OriginalPhoneNumber: String
  PhoneType: String
  PhoneTypeCode: Int
  Timezone: String
  ZipCode: String
}

input AwsPinpointPhoneNumberValidateInput {
  NumberValidateRequest: AwsPinpointPhoneNumberValidateNumberValidateRequestInput!
}

input AwsPinpointPhoneNumberValidateNumberValidateRequestInput {
  IsoCountryCode: String
  PhoneNumber: String
}

type AwsPinpointPutEventStreamOutput {
  EventStream: AwsPinpointS52!
}

input AwsPinpointPutEventStreamInput {
  ApplicationId: String!
  WriteEventStream: AwsPinpointPutEventStreamWriteEventStreamInput!
}

input AwsPinpointPutEventStreamWriteEventStreamInput {
  DestinationStreamArn: String!
  RoleArn: String!
}

type AwsPinpointPutEventsOutput {
  EventsResponse: AwsPinpointPutEventsOutputEventsResponse!
}

type AwsPinpointPutEventsOutputEventsResponse {
  Results: JSON
}

input AwsPinpointPutEventsInput {
  ApplicationId: String!
  EventsRequest: AwsPinpointPutEventsEventsRequestInput!
}

input AwsPinpointPutEventsEventsRequestInput {
  BatchItem: JSON!
}

type AwsPinpointRemoveAttributesOutput {
  AttributesResource: AwsPinpointRemoveAttributesOutputAttributesResource!
}

type AwsPinpointRemoveAttributesOutputAttributesResource {
  ApplicationId: String!
  AttributeType: String!
  Attributes: [String]
}

input AwsPinpointRemoveAttributesInput {
  ApplicationId: String!
  AttributeType: String!
  UpdateAttributesRequest: AwsPinpointRemoveAttributesUpdateAttributesRequestInput!
}

input AwsPinpointRemoveAttributesUpdateAttributesRequestInput {
  Blacklist: [String]
}

type AwsPinpointSendMessagesOutput {
  MessageResponse: AwsPinpointSendMessagesOutputMessageResponse!
}

type AwsPinpointSendMessagesOutputMessageResponse {
  ApplicationId: String!
  EndpointResult: JSON
  RequestId: String
  Result: JSON
}

input AwsPinpointSendMessagesInput {
  ApplicationId: String!
  MessageRequest: AwsPinpointSendMessagesMessageRequestInput!
}

input AwsPinpointSendMessagesMessageRequestInput {
  Addresses: JSON
  Context: JSON
  Endpoints: JSON
  MessageConfiguration: AwsPinpointSajInput!
  TemplateConfiguration: AwsPinpointS12Input
  TraceId: String
}

input AwsPinpointSajInput {
  ADMMessage: AwsPinpointSajADMMessageInput
  APNSMessage: AwsPinpointSajAPNSMessageInput
  BaiduMessage: AwsPinpointSajBaiduMessageInput
  DefaultMessage: AwsPinpointSajDefaultMessageInput
  DefaultPushNotificationMessage: AwsPinpointSajDefaultPushNotificationMessageInput
  EmailMessage: AwsPinpointSajEmailMessageInput
  GCMMessage: AwsPinpointSajGCMMessageInput
  SMSMessage: AwsPinpointSajSMSMessageInput
  VoiceMessage: AwsPinpointSajVoiceMessageInput
}

input AwsPinpointSajADMMessageInput {
  Action: String
  Body: String
  ConsolidationKey: String
  Data: JSON
  ExpiresAfter: String
  IconReference: String
  ImageIconUrl: String
  ImageUrl: String
  MD5: String
  RawContent: String
  SilentPush: Boolean
  SmallImageIconUrl: String
  Sound: String
  Substitutions: JSON
  Title: String
  Url: String
}

input AwsPinpointSajAPNSMessageInput {
  APNSPushType: String
  Action: String
  Badge: Int
  Body: String
  Category: String
  CollapseId: String
  Data: JSON
  MediaUrl: String
  PreferredAuthenticationMethod: String
  Priority: String
  RawContent: String
  SilentPush: Boolean
  Sound: String
  Substitutions: JSON
  ThreadId: String
  TimeToLive: Int
  Title: String
  Url: String
}

input AwsPinpointSajBaiduMessageInput {
  Action: String
  Body: String
  Data: JSON
  IconReference: String
  ImageIconUrl: String
  ImageUrl: String
  RawContent: String
  SilentPush: Boolean
  SmallImageIconUrl: String
  Sound: String
  Substitutions: JSON
  TimeToLive: Int
  Title: String
  Url: String
}

input AwsPinpointSajDefaultMessageInput {
  Body: String
  Substitutions: JSON
}

input AwsPinpointSajDefaultPushNotificationMessageInput {
  Action: String
  Body: String
  Data: JSON
  SilentPush: Boolean
  Substitutions: JSON
  Title: String
  Url: String
}

input AwsPinpointSajEmailMessageInput {
  Body: String
  FeedbackForwardingAddress: String
  FromAddress: String
  RawEmail: AwsPinpointSajEmailMessageRawEmailInput
  ReplyToAddresses: [String]
  SimpleEmail: AwsPinpointSajEmailMessageSimpleEmailInput
  Substitutions: JSON
}

input AwsPinpointSajEmailMessageRawEmailInput {
  Data: JSON
}

input AwsPinpointSajEmailMessageSimpleEmailInput {
  HtmlPart: AwsPinpointSatInput
  Subject: AwsPinpointSatInput
  TextPart: AwsPinpointSatInput
}

input AwsPinpointSatInput {
  Charset: String
  Data: String
}

input AwsPinpointSajGCMMessageInput {
  Action: String
  Body: String
  CollapseKey: String
  Data: JSON
  IconReference: String
  ImageIconUrl: String
  ImageUrl: String
  Priority: String
  RawContent: String
  RestrictedPackageName: String
  SilentPush: Boolean
  SmallImageIconUrl: String
  Sound: String
  Substitutions: JSON
  TimeToLive: Int
  Title: String
  Url: String
}

input AwsPinpointSajSMSMessageInput {
  Body: String
  Keyword: String
  MediaUrl: String
  MessageType: String
  OriginationNumber: String
  SenderId: String
  Substitutions: JSON
  EntityId: String
  TemplateId: String
}

input AwsPinpointSajVoiceMessageInput {
  Body: String
  LanguageCode: String
  OriginationNumber: String
  Substitutions: JSON
  VoiceId: String
}

type AwsPinpointSendUsersMessagesOutput {
  SendUsersMessageResponse: AwsPinpointSendUsersMessagesOutputSendUsersMessageResponse!
}

type AwsPinpointSendUsersMessagesOutputSendUsersMessageResponse {
  ApplicationId: String!
  RequestId: String
  Result: JSON
}

input AwsPinpointSendUsersMessagesInput {
  ApplicationId: String!
  SendUsersMessageRequest: AwsPinpointSendUsersMessagesSendUsersMessageRequestInput!
}

input AwsPinpointSendUsersMessagesSendUsersMessageRequestInput {
  Context: JSON
  MessageConfiguration: AwsPinpointSajInput!
  TemplateConfiguration: AwsPinpointS12Input
  TraceId: String
  Users: JSON!
}

input AwsPinpointTagResourceInput {
  ResourceArn: String!
  TagsModel: AwsPinpointS9cInput!
}

input AwsPinpointS9cInput {
  tags: JSON!
}

input AwsPinpointUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsPinpointUpdateAdmChannelOutput {
  ADMChannelResponse: AwsPinpointS41!
}

input AwsPinpointUpdateAdmChannelInput {
  ADMChannelRequest: AwsPinpointUpdateAdmChannelADMChannelRequestInput!
  ApplicationId: String!
}

input AwsPinpointUpdateAdmChannelADMChannelRequestInput {
  ClientId: String!
  ClientSecret: String!
  Enabled: Boolean
}

type AwsPinpointUpdateApnsChannelOutput {
  APNSChannelResponse: AwsPinpointS44!
}

input AwsPinpointUpdateApnsChannelInput {
  APNSChannelRequest: AwsPinpointUpdateApnsChannelAPNSChannelRequestInput!
  ApplicationId: String!
}

input AwsPinpointUpdateApnsChannelAPNSChannelRequestInput {
  BundleId: String
  Certificate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  PrivateKey: String
  TeamId: String
  TokenKey: String
  TokenKeyId: String
}

type AwsPinpointUpdateApnsSandboxChannelOutput {
  APNSSandboxChannelResponse: AwsPinpointS47!
}

input AwsPinpointUpdateApnsSandboxChannelInput {
  APNSSandboxChannelRequest: AwsPinpointUpdateApnsSandboxChannelAPNSSandboxChannelRequestInput!
  ApplicationId: String!
}

input AwsPinpointUpdateApnsSandboxChannelAPNSSandboxChannelRequestInput {
  BundleId: String
  Certificate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  PrivateKey: String
  TeamId: String
  TokenKey: String
  TokenKeyId: String
}

type AwsPinpointUpdateApnsVoipChannelOutput {
  APNSVoipChannelResponse: AwsPinpointS4a!
}

input AwsPinpointUpdateApnsVoipChannelInput {
  APNSVoipChannelRequest: AwsPinpointUpdateApnsVoipChannelAPNSVoipChannelRequestInput!
  ApplicationId: String!
}

input AwsPinpointUpdateApnsVoipChannelAPNSVoipChannelRequestInput {
  BundleId: String
  Certificate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  PrivateKey: String
  TeamId: String
  TokenKey: String
  TokenKeyId: String
}

type AwsPinpointUpdateApnsVoipSandboxChannelOutput {
  APNSVoipSandboxChannelResponse: AwsPinpointS4d!
}

input AwsPinpointUpdateApnsVoipSandboxChannelInput {
  APNSVoipSandboxChannelRequest: AwsPinpointUpdateApnsVoipSandboxChannelAPNSVoipSandboxChannelRequestInput!
  ApplicationId: String!
}

input AwsPinpointUpdateApnsVoipSandboxChannelAPNSVoipSandboxChannelRequestInput {
  BundleId: String
  Certificate: String
  DefaultAuthenticationMethod: String
  Enabled: Boolean
  PrivateKey: String
  TeamId: String
  TokenKey: String
  TokenKeyId: String
}

type AwsPinpointUpdateApplicationSettingsOutput {
  ApplicationSettingsResource: AwsPinpointS6e!
}

input AwsPinpointUpdateApplicationSettingsInput {
  ApplicationId: String!
  WriteApplicationSettingsRequest: AwsPinpointUpdateApplicationSettingsWriteApplicationSettingsRequestInput!
}

input AwsPinpointUpdateApplicationSettingsWriteApplicationSettingsRequestInput {
  CampaignHook: AwsPinpointS14Input
  CloudWatchMetricsEnabled: Boolean
  EventTaggingEnabled: Boolean
  Limits: AwsPinpointS16Input
  QuietTime: AwsPinpointS11Input
}

type AwsPinpointUpdateBaiduChannelOutput {
  BaiduChannelResponse: AwsPinpointS4i!
}

input AwsPinpointUpdateBaiduChannelInput {
  ApplicationId: String!
  BaiduChannelRequest: AwsPinpointUpdateBaiduChannelBaiduChannelRequestInput!
}

input AwsPinpointUpdateBaiduChannelBaiduChannelRequestInput {
  ApiKey: String!
  Enabled: Boolean
  SecretKey: String!
}

type AwsPinpointUpdateCampaignOutput {
  CampaignResponse: AwsPinpointS18!
}

input AwsPinpointUpdateCampaignInput {
  ApplicationId: String!
  CampaignId: String!
  WriteCampaignRequest: AwsPinpointS8Input!
}

type AwsPinpointUpdateEmailChannelOutput {
  EmailChannelResponse: AwsPinpointS4n!
}

input AwsPinpointUpdateEmailChannelInput {
  ApplicationId: String!
  EmailChannelRequest: AwsPinpointUpdateEmailChannelEmailChannelRequestInput!
}

input AwsPinpointUpdateEmailChannelEmailChannelRequestInput {
  ConfigurationSet: String
  Enabled: Boolean
  FromAddress: String!
  Identity: String!
  RoleArn: String
}

type AwsPinpointUpdateEmailTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateEmailTemplateInput {
  CreateNewVersion: Boolean
  EmailTemplateRequest: AwsPinpointS1eInput!
  TemplateName: String!
  Version: String
}

type AwsPinpointUpdateEndpointOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateEndpointInput {
  ApplicationId: String!
  EndpointId: String!
  EndpointRequest: AwsPinpointUpdateEndpointEndpointRequestInput!
}

input AwsPinpointUpdateEndpointEndpointRequestInput {
  Address: String
  Attributes: JSON
  ChannelType: String
  Demographic: AwsPinpointS4wInput
  EffectiveDate: String
  EndpointStatus: String
  Location: AwsPinpointS4xInput
  Metrics: JSON
  OptOut: String
  RequestId: String
  User: AwsPinpointS4zInput
}

input AwsPinpointS4wInput {
  AppVersion: String
  Locale: String
  Make: String
  Model: String
  ModelVersion: String
  Platform: String
  PlatformVersion: String
  Timezone: String
}

input AwsPinpointS4xInput {
  City: String
  Country: String
  Latitude: JSON
  Longitude: JSON
  PostalCode: String
  Region: String
}

input AwsPinpointS4zInput {
  UserAttributes: JSON
  UserId: String
}

type AwsPinpointUpdateEndpointsBatchOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateEndpointsBatchInput {
  ApplicationId: String!
  EndpointBatchRequest: AwsPinpointUpdateEndpointsBatchEndpointBatchRequestInput!
}

input AwsPinpointUpdateEndpointsBatchEndpointBatchRequestInput {
  Item: [AwsPinpointUpdateEndpointsBatchEndpointBatchRequestItemInput]!
}

input AwsPinpointUpdateEndpointsBatchEndpointBatchRequestItemInput {
  Address: String
  Attributes: JSON
  ChannelType: String
  Demographic: AwsPinpointS4wInput
  EffectiveDate: String
  EndpointStatus: String
  Id: String
  Location: AwsPinpointS4xInput
  Metrics: JSON
  OptOut: String
  RequestId: String
  User: AwsPinpointS4zInput
}

type AwsPinpointUpdateGcmChannelOutput {
  GCMChannelResponse: AwsPinpointS55!
}

input AwsPinpointUpdateGcmChannelInput {
  ApplicationId: String!
  GCMChannelRequest: AwsPinpointUpdateGcmChannelGCMChannelRequestInput!
}

input AwsPinpointUpdateGcmChannelGCMChannelRequestInput {
  ApiKey: String!
  Enabled: Boolean
}

type AwsPinpointUpdateJourneyOutput {
  JourneyResponse: AwsPinpointS32!
}

input AwsPinpointUpdateJourneyInput {
  ApplicationId: String!
  JourneyId: String!
  WriteJourneyRequest: AwsPinpointS1uInput!
}

type AwsPinpointUpdateJourneyStateOutput {
  JourneyResponse: AwsPinpointS32!
}

input AwsPinpointUpdateJourneyStateInput {
  ApplicationId: String!
  JourneyId: String!
  JourneyStateRequest: AwsPinpointUpdateJourneyStateJourneyStateRequestInput!
}

input AwsPinpointUpdateJourneyStateJourneyStateRequestInput {
  State: String
}

type AwsPinpointUpdatePushTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdatePushTemplateInput {
  CreateNewVersion: Boolean
  PushNotificationTemplateRequest: AwsPinpointS34Input!
  TemplateName: String!
  Version: String
}

type AwsPinpointUpdateRecommenderConfigurationOutput {
  RecommenderConfigurationResponse: AwsPinpointS3c!
}

input AwsPinpointUpdateRecommenderConfigurationInput {
  RecommenderId: String!
  UpdateRecommenderConfiguration: AwsPinpointUpdateRecommenderConfigurationUpdateRecommenderConfigurationInput!
}

input AwsPinpointUpdateRecommenderConfigurationUpdateRecommenderConfigurationInput {
  Attributes: JSON
  Description: String
  Name: String
  RecommendationProviderIdType: String
  RecommendationProviderRoleArn: String!
  RecommendationProviderUri: String!
  RecommendationTransformerUri: String
  RecommendationsDisplayName: String
  RecommendationsPerMessage: Int
}

type AwsPinpointUpdateSegmentOutput {
  SegmentResponse: AwsPinpointS3p!
}

input AwsPinpointUpdateSegmentInput {
  ApplicationId: String!
  SegmentId: String!
  WriteSegmentRequest: AwsPinpointS3eInput!
}

type AwsPinpointUpdateSmsChannelOutput {
  SMSChannelResponse: AwsPinpointS5g!
}

input AwsPinpointUpdateSmsChannelInput {
  ApplicationId: String!
  SMSChannelRequest: AwsPinpointUpdateSmsChannelSMSChannelRequestInput!
}

input AwsPinpointUpdateSmsChannelSMSChannelRequestInput {
  Enabled: Boolean
  SenderId: String
  ShortCode: String
}

type AwsPinpointUpdateSmsTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateSmsTemplateInput {
  CreateNewVersion: Boolean
  SMSTemplateRequest: AwsPinpointS3uInput!
  TemplateName: String!
  Version: String
}

type AwsPinpointUpdateTemplateActiveVersionOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateTemplateActiveVersionInput {
  TemplateActiveVersionRequest: AwsPinpointUpdateTemplateActiveVersionTemplateActiveVersionRequestInput!
  TemplateName: String!
  TemplateType: String!
}

input AwsPinpointUpdateTemplateActiveVersionTemplateActiveVersionRequestInput {
  Version: String
}

type AwsPinpointUpdateVoiceChannelOutput {
  VoiceChannelResponse: AwsPinpointS5p!
}

input AwsPinpointUpdateVoiceChannelInput {
  ApplicationId: String!
  VoiceChannelRequest: AwsPinpointUpdateVoiceChannelVoiceChannelRequestInput!
}

input AwsPinpointUpdateVoiceChannelVoiceChannelRequestInput {
  Enabled: Boolean
}

type AwsPinpointUpdateVoiceTemplateOutput {
  MessageBody: AwsPinpointS4q!
}

input AwsPinpointUpdateVoiceTemplateInput {
  CreateNewVersion: Boolean
  TemplateName: String!
  Version: String
  VoiceTemplateRequest: AwsPinpointS3xInput!
}

"""Amazon Pinpoint Email Service (2018-07-26)"""
type AwsPinpointEmail {
  createConfigurationSet(input: AwsPinpointEmailCreateConfigurationSetInput!, config: AwsConfig): JSON
  createConfigurationSetEventDestination(input: AwsPinpointEmailCreateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  createDedicatedIpPool(input: AwsPinpointEmailCreateDedicatedIpPoolInput!, config: AwsConfig): JSON
  createDeliverabilityTestReport(input: AwsPinpointEmailCreateDeliverabilityTestReportInput!, config: AwsConfig): AwsPinpointEmailCreateDeliverabilityTestReportOutput
  createEmailIdentity(input: AwsPinpointEmailCreateEmailIdentityInput!, config: AwsConfig): AwsPinpointEmailCreateEmailIdentityOutput
  deleteConfigurationSet(input: AwsPinpointEmailDeleteConfigurationSetInput!, config: AwsConfig): JSON
  deleteConfigurationSetEventDestination(input: AwsPinpointEmailDeleteConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  deleteDedicatedIpPool(input: AwsPinpointEmailDeleteDedicatedIpPoolInput!, config: AwsConfig): JSON
  deleteEmailIdentity(input: AwsPinpointEmailDeleteEmailIdentityInput!, config: AwsConfig): JSON
  getAccount(input: JSON, config: AwsConfig): AwsPinpointEmailGetAccountOutput
  getBlacklistReports(input: AwsPinpointEmailGetBlacklistReportsInput!, config: AwsConfig): AwsPinpointEmailGetBlacklistReportsOutput
  getConfigurationSet(input: AwsPinpointEmailGetConfigurationSetInput!, config: AwsConfig): AwsPinpointEmailGetConfigurationSetOutput
  getConfigurationSetEventDestinations(input: AwsPinpointEmailGetConfigurationSetEventDestinationsInput!, config: AwsConfig): AwsPinpointEmailGetConfigurationSetEventDestinationsOutput
  getDedicatedIp(input: AwsPinpointEmailGetDedicatedIpInput!, config: AwsConfig): AwsPinpointEmailGetDedicatedIpOutput
  getDedicatedIps(input: AwsPinpointEmailGetDedicatedIpsInput, config: AwsConfig): AwsPinpointEmailGetDedicatedIpsOutput
  getDeliverabilityDashboardOptions(input: JSON, config: AwsConfig): AwsPinpointEmailGetDeliverabilityDashboardOptionsOutput
  getDeliverabilityTestReport(input: AwsPinpointEmailGetDeliverabilityTestReportInput!, config: AwsConfig): AwsPinpointEmailGetDeliverabilityTestReportOutput
  getDomainDeliverabilityCampaign(input: AwsPinpointEmailGetDomainDeliverabilityCampaignInput!, config: AwsConfig): AwsPinpointEmailGetDomainDeliverabilityCampaignOutput
  getDomainStatisticsReport(input: AwsPinpointEmailGetDomainStatisticsReportInput!, config: AwsConfig): AwsPinpointEmailGetDomainStatisticsReportOutput
  getEmailIdentity(input: AwsPinpointEmailGetEmailIdentityInput!, config: AwsConfig): AwsPinpointEmailGetEmailIdentityOutput
  listConfigurationSets(input: AwsPinpointEmailListConfigurationSetsInput, config: AwsConfig): AwsPinpointEmailListConfigurationSetsOutput
  listDedicatedIpPools(input: AwsPinpointEmailListDedicatedIpPoolsInput, config: AwsConfig): AwsPinpointEmailListDedicatedIpPoolsOutput
  listDeliverabilityTestReports(input: AwsPinpointEmailListDeliverabilityTestReportsInput, config: AwsConfig): AwsPinpointEmailListDeliverabilityTestReportsOutput
  listDomainDeliverabilityCampaigns(input: AwsPinpointEmailListDomainDeliverabilityCampaignsInput!, config: AwsConfig): AwsPinpointEmailListDomainDeliverabilityCampaignsOutput
  listEmailIdentities(input: AwsPinpointEmailListEmailIdentitiesInput, config: AwsConfig): AwsPinpointEmailListEmailIdentitiesOutput
  listTagsForResource(input: AwsPinpointEmailListTagsForResourceInput!, config: AwsConfig): AwsPinpointEmailListTagsForResourceOutput
  putAccountDedicatedIpWarmupAttributes(input: AwsPinpointEmailPutAccountDedicatedIpWarmupAttributesInput, config: AwsConfig): JSON
  putAccountSendingAttributes(input: AwsPinpointEmailPutAccountSendingAttributesInput, config: AwsConfig): JSON
  putConfigurationSetDeliveryOptions(input: AwsPinpointEmailPutConfigurationSetDeliveryOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetReputationOptions(input: AwsPinpointEmailPutConfigurationSetReputationOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetSendingOptions(input: AwsPinpointEmailPutConfigurationSetSendingOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetTrackingOptions(input: AwsPinpointEmailPutConfigurationSetTrackingOptionsInput!, config: AwsConfig): JSON
  putDedicatedIpInPool(input: AwsPinpointEmailPutDedicatedIpInPoolInput!, config: AwsConfig): JSON
  putDedicatedIpWarmupAttributes(input: AwsPinpointEmailPutDedicatedIpWarmupAttributesInput!, config: AwsConfig): JSON
  putDeliverabilityDashboardOption(input: AwsPinpointEmailPutDeliverabilityDashboardOptionInput!, config: AwsConfig): JSON
  putEmailIdentityDkimAttributes(input: AwsPinpointEmailPutEmailIdentityDkimAttributesInput!, config: AwsConfig): JSON
  putEmailIdentityFeedbackAttributes(input: AwsPinpointEmailPutEmailIdentityFeedbackAttributesInput!, config: AwsConfig): JSON
  putEmailIdentityMailFromAttributes(input: AwsPinpointEmailPutEmailIdentityMailFromAttributesInput!, config: AwsConfig): JSON
  sendEmail(input: AwsPinpointEmailSendEmailInput!, config: AwsConfig): AwsPinpointEmailSendEmailOutput
  tagResource(input: AwsPinpointEmailTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsPinpointEmailUntagResourceInput!, config: AwsConfig): JSON
  updateConfigurationSetEventDestination(input: AwsPinpointEmailUpdateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
}

input AwsPinpointEmailCreateConfigurationSetInput {
  ConfigurationSetName: String!
  TrackingOptions: AwsPinpointEmailS3Input
  DeliveryOptions: AwsPinpointEmailS5Input
  ReputationOptions: AwsPinpointEmailS8Input
  SendingOptions: AwsPinpointEmailSbInput
  Tags: [AwsPinpointEmailScInput]
}

input AwsPinpointEmailS3Input {
  CustomRedirectDomain: String!
}

input AwsPinpointEmailS5Input {
  TlsPolicy: String
  SendingPoolName: String
}

input AwsPinpointEmailS8Input {
  ReputationMetricsEnabled: Boolean
  LastFreshStart: Date
}

input AwsPinpointEmailSbInput {
  SendingEnabled: Boolean
}

input AwsPinpointEmailScInput {
  Key: String!
  Value: String!
}

input AwsPinpointEmailCreateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
  EventDestination: AwsPinpointEmailSjInput!
}

input AwsPinpointEmailSjInput {
  Enabled: Boolean
  MatchingEventTypes: [String]
  KinesisFirehoseDestination: AwsPinpointEmailSmInput
  CloudWatchDestination: AwsPinpointEmailSoInput
  SnsDestination: AwsPinpointEmailSuInput
  PinpointDestination: AwsPinpointEmailSvInput
}

input AwsPinpointEmailSmInput {
  IamRoleArn: String!
  DeliveryStreamArn: String!
}

input AwsPinpointEmailSoInput {
  DimensionConfigurations: [AwsPinpointEmailSoDimensionConfigurationsInput]!
}

input AwsPinpointEmailSoDimensionConfigurationsInput {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

input AwsPinpointEmailSuInput {
  TopicArn: String!
}

input AwsPinpointEmailSvInput {
  ApplicationArn: String
}

input AwsPinpointEmailCreateDedicatedIpPoolInput {
  PoolName: String!
  Tags: [AwsPinpointEmailScInput]
}

type AwsPinpointEmailCreateDeliverabilityTestReportOutput {
  ReportId: String!
  DeliverabilityTestStatus: String!
}

input AwsPinpointEmailCreateDeliverabilityTestReportInput {
  ReportName: String
  FromEmailAddress: String!
  Content: AwsPinpointEmailS12Input!
  Tags: [AwsPinpointEmailScInput]
}

input AwsPinpointEmailS12Input {
  Simple: AwsPinpointEmailS12SimpleInput
  Raw: AwsPinpointEmailS12RawInput
  Template: AwsPinpointEmailS12TemplateInput
}

input AwsPinpointEmailS12SimpleInput {
  Subject: AwsPinpointEmailS14Input!
  Body: AwsPinpointEmailS12SimpleBodyInput!
}

input AwsPinpointEmailS14Input {
  Data: String!
  Charset: String
}

input AwsPinpointEmailS12SimpleBodyInput {
  Text: AwsPinpointEmailS14Input
  Html: AwsPinpointEmailS14Input
}

input AwsPinpointEmailS12RawInput {
  Data: JSON!
}

input AwsPinpointEmailS12TemplateInput {
  TemplateArn: String
  TemplateData: String
}

type AwsPinpointEmailCreateEmailIdentityOutput {
  IdentityType: String
  VerifiedForSendingStatus: Boolean
  DkimAttributes: AwsPinpointEmailS1k
}

type AwsPinpointEmailS1k {
  SigningEnabled: Boolean
  Status: String
  Tokens: [String]
}

input AwsPinpointEmailCreateEmailIdentityInput {
  EmailIdentity: String!
  Tags: [AwsPinpointEmailScInput]
}

input AwsPinpointEmailDeleteConfigurationSetInput {
  ConfigurationSetName: String!
}

input AwsPinpointEmailDeleteConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
}

input AwsPinpointEmailDeleteDedicatedIpPoolInput {
  PoolName: String!
}

input AwsPinpointEmailDeleteEmailIdentityInput {
  EmailIdentity: String!
}

type AwsPinpointEmailGetAccountOutput {
  SendQuota: AwsPinpointEmailGetAccountOutputSendQuota
  SendingEnabled: Boolean
  DedicatedIpAutoWarmupEnabled: Boolean
  EnforcementStatus: String
  ProductionAccessEnabled: Boolean
}

type AwsPinpointEmailGetAccountOutputSendQuota {
  Max24HourSend: JSON
  MaxSendRate: JSON
  SentLast24Hours: JSON
}

type AwsPinpointEmailGetBlacklistReportsOutput {
  BlacklistReport: JSON!
}

input AwsPinpointEmailGetBlacklistReportsInput {
  BlacklistItemNames: [String]!
}

type AwsPinpointEmailGetConfigurationSetOutput {
  ConfigurationSetName: String
  TrackingOptions: AwsPinpointEmailS3
  DeliveryOptions: AwsPinpointEmailS5
  ReputationOptions: AwsPinpointEmailS8
  SendingOptions: AwsPinpointEmailSb
  Tags: [AwsPinpointEmailSc]
}

type AwsPinpointEmailS3 {
  CustomRedirectDomain: String!
}

type AwsPinpointEmailS5 {
  TlsPolicy: String
  SendingPoolName: String
}

type AwsPinpointEmailS8 {
  ReputationMetricsEnabled: Boolean
  LastFreshStart: Date
}

type AwsPinpointEmailSb {
  SendingEnabled: Boolean
}

type AwsPinpointEmailSc {
  Key: String!
  Value: String!
}

input AwsPinpointEmailGetConfigurationSetInput {
  ConfigurationSetName: String!
}

type AwsPinpointEmailGetConfigurationSetEventDestinationsOutput {
  EventDestinations: [AwsPinpointEmailGetConfigurationSetEventDestinationsOutputEventDestinations]
}

type AwsPinpointEmailGetConfigurationSetEventDestinationsOutputEventDestinations {
  Name: String!
  Enabled: Boolean
  MatchingEventTypes: [String]!
  KinesisFirehoseDestination: AwsPinpointEmailSm
  CloudWatchDestination: AwsPinpointEmailSo
  SnsDestination: AwsPinpointEmailSu
  PinpointDestination: AwsPinpointEmailSv
}

type AwsPinpointEmailSm {
  IamRoleArn: String!
  DeliveryStreamArn: String!
}

type AwsPinpointEmailSo {
  DimensionConfigurations: [AwsPinpointEmailSoDimensionConfigurations]!
}

type AwsPinpointEmailSoDimensionConfigurations {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

type AwsPinpointEmailSu {
  TopicArn: String!
}

type AwsPinpointEmailSv {
  ApplicationArn: String
}

input AwsPinpointEmailGetConfigurationSetEventDestinationsInput {
  ConfigurationSetName: String!
}

type AwsPinpointEmailGetDedicatedIpOutput {
  DedicatedIp: AwsPinpointEmailS2m
}

type AwsPinpointEmailS2m {
  Ip: String!
  WarmupStatus: String!
  WarmupPercentage: Int!
  PoolName: String
}

input AwsPinpointEmailGetDedicatedIpInput {
  Ip: String!
}

type AwsPinpointEmailGetDedicatedIpsOutput {
  DedicatedIps: [AwsPinpointEmailS2m]
  NextToken: String
}

input AwsPinpointEmailGetDedicatedIpsInput {
  PoolName: String
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailGetDeliverabilityDashboardOptionsOutput {
  DashboardEnabled: Boolean!
  SubscriptionExpiryDate: Date
  AccountStatus: String
  ActiveSubscribedDomains: [AwsPinpointEmailS2x]
  PendingExpirationSubscribedDomains: [AwsPinpointEmailS2x]
}

type AwsPinpointEmailS2x {
  Domain: String
  SubscriptionStartDate: Date
  InboxPlacementTrackingOption: AwsPinpointEmailS2xInboxPlacementTrackingOption
}

type AwsPinpointEmailS2xInboxPlacementTrackingOption {
  Global: Boolean
  TrackedIsps: [String]
}

type AwsPinpointEmailGetDeliverabilityTestReportOutput {
  DeliverabilityTestReport: AwsPinpointEmailS35!
  OverallPlacement: AwsPinpointEmailS37!
  IspPlacements: [AwsPinpointEmailGetDeliverabilityTestReportOutputIspPlacements]!
  Message: String
  Tags: [AwsPinpointEmailSc]
}

type AwsPinpointEmailS35 {
  ReportId: String
  ReportName: String
  Subject: String
  FromEmailAddress: String
  CreateDate: Date
  DeliverabilityTestStatus: String
}

type AwsPinpointEmailS37 {
  InboxPercentage: JSON
  SpamPercentage: JSON
  MissingPercentage: JSON
  SpfPercentage: JSON
  DkimPercentage: JSON
}

type AwsPinpointEmailGetDeliverabilityTestReportOutputIspPlacements {
  IspName: String
  PlacementStatistics: AwsPinpointEmailS37
}

input AwsPinpointEmailGetDeliverabilityTestReportInput {
  ReportId: String!
}

type AwsPinpointEmailGetDomainDeliverabilityCampaignOutput {
  DomainDeliverabilityCampaign: AwsPinpointEmailS3f!
}

type AwsPinpointEmailS3f {
  CampaignId: String
  ImageUrl: String
  Subject: String
  FromAddress: String
  SendingIps: [String]
  FirstSeenDateTime: Date
  LastSeenDateTime: Date
  InboxCount: JSON
  SpamCount: JSON
  ReadRate: JSON
  DeleteRate: JSON
  ReadDeleteRate: JSON
  ProjectedVolume: JSON
  Esps: [String]
}

input AwsPinpointEmailGetDomainDeliverabilityCampaignInput {
  CampaignId: String!
}

type AwsPinpointEmailGetDomainStatisticsReportOutput {
  OverallVolume: AwsPinpointEmailGetDomainStatisticsReportOutputOverallVolume!
  DailyVolumes: [AwsPinpointEmailGetDomainStatisticsReportOutputDailyVolumes]!
}

type AwsPinpointEmailGetDomainStatisticsReportOutputOverallVolume {
  VolumeStatistics: AwsPinpointEmailS3p
  ReadRatePercent: JSON
  DomainIspPlacements: [AwsPinpointEmailS3q]
}

type AwsPinpointEmailS3p {
  InboxRawCount: JSON
  SpamRawCount: JSON
  ProjectedInbox: JSON
  ProjectedSpam: JSON
}

type AwsPinpointEmailS3q {
  IspName: String
  InboxRawCount: JSON
  SpamRawCount: JSON
  InboxPercentage: JSON
  SpamPercentage: JSON
}

type AwsPinpointEmailGetDomainStatisticsReportOutputDailyVolumes {
  StartDate: Date
  VolumeStatistics: AwsPinpointEmailS3p
  DomainIspPlacements: [AwsPinpointEmailS3q]
}

input AwsPinpointEmailGetDomainStatisticsReportInput {
  Domain: String!
  StartDate: Date!
  EndDate: Date!
}

type AwsPinpointEmailGetEmailIdentityOutput {
  IdentityType: String
  FeedbackForwardingStatus: Boolean
  VerifiedForSendingStatus: Boolean
  DkimAttributes: AwsPinpointEmailS1k
  MailFromAttributes: AwsPinpointEmailGetEmailIdentityOutputMailFromAttributes
  Tags: [AwsPinpointEmailSc]
}

type AwsPinpointEmailGetEmailIdentityOutputMailFromAttributes {
  MailFromDomain: String!
  MailFromDomainStatus: String!
  BehaviorOnMxFailure: String!
}

input AwsPinpointEmailGetEmailIdentityInput {
  EmailIdentity: String!
}

type AwsPinpointEmailListConfigurationSetsOutput {
  ConfigurationSets: [String]
  NextToken: String
}

input AwsPinpointEmailListConfigurationSetsInput {
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailListDedicatedIpPoolsOutput {
  DedicatedIpPools: [String]
  NextToken: String
}

input AwsPinpointEmailListDedicatedIpPoolsInput {
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailListDeliverabilityTestReportsOutput {
  DeliverabilityTestReports: [AwsPinpointEmailS35]!
  NextToken: String
}

input AwsPinpointEmailListDeliverabilityTestReportsInput {
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailListDomainDeliverabilityCampaignsOutput {
  DomainDeliverabilityCampaigns: [AwsPinpointEmailS3f]!
  NextToken: String
}

input AwsPinpointEmailListDomainDeliverabilityCampaignsInput {
  StartDate: Date!
  EndDate: Date!
  SubscribedDomain: String!
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailListEmailIdentitiesOutput {
  EmailIdentities: [AwsPinpointEmailListEmailIdentitiesOutputEmailIdentities]
  NextToken: String
}

type AwsPinpointEmailListEmailIdentitiesOutputEmailIdentities {
  IdentityType: String
  IdentityName: String
  SendingEnabled: Boolean
}

input AwsPinpointEmailListEmailIdentitiesInput {
  NextToken: String
  PageSize: Int
}

type AwsPinpointEmailListTagsForResourceOutput {
  Tags: [AwsPinpointEmailSc]!
}

input AwsPinpointEmailListTagsForResourceInput {
  ResourceArn: String!
}

input AwsPinpointEmailPutAccountDedicatedIpWarmupAttributesInput {
  AutoWarmupEnabled: Boolean
}

input AwsPinpointEmailPutAccountSendingAttributesInput {
  SendingEnabled: Boolean
}

input AwsPinpointEmailPutConfigurationSetDeliveryOptionsInput {
  ConfigurationSetName: String!
  TlsPolicy: String
  SendingPoolName: String
}

input AwsPinpointEmailPutConfigurationSetReputationOptionsInput {
  ConfigurationSetName: String!
  ReputationMetricsEnabled: Boolean
}

input AwsPinpointEmailPutConfigurationSetSendingOptionsInput {
  ConfigurationSetName: String!
  SendingEnabled: Boolean
}

input AwsPinpointEmailPutConfigurationSetTrackingOptionsInput {
  ConfigurationSetName: String!
  CustomRedirectDomain: String
}

input AwsPinpointEmailPutDedicatedIpInPoolInput {
  Ip: String!
  DestinationPoolName: String!
}

input AwsPinpointEmailPutDedicatedIpWarmupAttributesInput {
  Ip: String!
  WarmupPercentage: Int!
}

input AwsPinpointEmailPutDeliverabilityDashboardOptionInput {
  DashboardEnabled: Boolean!
  SubscribedDomains: [AwsPinpointEmailS2xInput]
}

input AwsPinpointEmailS2xInput {
  Domain: String
  SubscriptionStartDate: Date
  InboxPlacementTrackingOption: AwsPinpointEmailS2xInboxPlacementTrackingOptionInput
}

input AwsPinpointEmailS2xInboxPlacementTrackingOptionInput {
  Global: Boolean
  TrackedIsps: [String]
}

input AwsPinpointEmailPutEmailIdentityDkimAttributesInput {
  EmailIdentity: String!
  SigningEnabled: Boolean
}

input AwsPinpointEmailPutEmailIdentityFeedbackAttributesInput {
  EmailIdentity: String!
  EmailForwardingEnabled: Boolean
}

input AwsPinpointEmailPutEmailIdentityMailFromAttributesInput {
  EmailIdentity: String!
  MailFromDomain: String
  BehaviorOnMxFailure: String
}

type AwsPinpointEmailSendEmailOutput {
  MessageId: String
}

input AwsPinpointEmailSendEmailInput {
  FromEmailAddress: String
  Destination: AwsPinpointEmailSendEmailDestinationInput!
  ReplyToAddresses: [String]
  FeedbackForwardingEmailAddress: String
  Content: AwsPinpointEmailS12Input!
  EmailTags: [AwsPinpointEmailSendEmailEmailTagsInput]
  ConfigurationSetName: String
}

input AwsPinpointEmailSendEmailDestinationInput {
  ToAddresses: [String]
  CcAddresses: [String]
  BccAddresses: [String]
}

input AwsPinpointEmailSendEmailEmailTagsInput {
  Name: String!
  Value: String!
}

input AwsPinpointEmailTagResourceInput {
  ResourceArn: String!
  Tags: [AwsPinpointEmailScInput]!
}

input AwsPinpointEmailUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsPinpointEmailUpdateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
  EventDestination: AwsPinpointEmailSjInput!
}

"""Amazon Pinpoint SMS and Voice Service (2018-09-05)"""
type AwsPinpointSMSVoice {
  createConfigurationSet(input: AwsPinpointSMSVoiceCreateConfigurationSetInput, config: AwsConfig): JSON
  createConfigurationSetEventDestination(input: AwsPinpointSMSVoiceCreateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  deleteConfigurationSet(input: AwsPinpointSMSVoiceDeleteConfigurationSetInput!, config: AwsConfig): JSON
  deleteConfigurationSetEventDestination(input: AwsPinpointSMSVoiceDeleteConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  getConfigurationSetEventDestinations(input: AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsInput!, config: AwsConfig): AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsOutput
  listConfigurationSets(input: AwsPinpointSMSVoiceListConfigurationSetsInput, config: AwsConfig): AwsPinpointSMSVoiceListConfigurationSetsOutput
  sendVoiceMessage(input: AwsPinpointSMSVoiceSendVoiceMessageInput, config: AwsConfig): AwsPinpointSMSVoiceSendVoiceMessageOutput
  updateConfigurationSetEventDestination(input: AwsPinpointSMSVoiceUpdateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
}

input AwsPinpointSMSVoiceCreateConfigurationSetInput {
  ConfigurationSetName: String
}

input AwsPinpointSMSVoiceCreateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestination: AwsPinpointSMSVoiceS6Input
  EventDestinationName: String
}

input AwsPinpointSMSVoiceS6Input {
  CloudWatchLogsDestination: AwsPinpointSMSVoiceS7Input
  Enabled: Boolean
  KinesisFirehoseDestination: AwsPinpointSMSVoiceSaInput
  MatchingEventTypes: [String]
  SnsDestination: AwsPinpointSMSVoiceSdInput
}

input AwsPinpointSMSVoiceS7Input {
  IamRoleArn: String
  LogGroupArn: String
}

input AwsPinpointSMSVoiceSaInput {
  DeliveryStreamArn: String
  IamRoleArn: String
}

input AwsPinpointSMSVoiceSdInput {
  TopicArn: String
}

input AwsPinpointSMSVoiceDeleteConfigurationSetInput {
  ConfigurationSetName: String!
}

input AwsPinpointSMSVoiceDeleteConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
}

type AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsOutput {
  EventDestinations: [AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsOutputEventDestinations]
}

type AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsOutputEventDestinations {
  CloudWatchLogsDestination: AwsPinpointSMSVoiceS7
  Enabled: Boolean
  KinesisFirehoseDestination: AwsPinpointSMSVoiceSa
  MatchingEventTypes: [String]
  Name: String
  SnsDestination: AwsPinpointSMSVoiceSd
}

type AwsPinpointSMSVoiceS7 {
  IamRoleArn: String
  LogGroupArn: String
}

type AwsPinpointSMSVoiceSa {
  DeliveryStreamArn: String
  IamRoleArn: String
}

type AwsPinpointSMSVoiceSd {
  TopicArn: String
}

input AwsPinpointSMSVoiceGetConfigurationSetEventDestinationsInput {
  ConfigurationSetName: String!
}

type AwsPinpointSMSVoiceListConfigurationSetsOutput {
  ConfigurationSets: [String]
  NextToken: String
}

input AwsPinpointSMSVoiceListConfigurationSetsInput {
  NextToken: String
  PageSize: String
}

type AwsPinpointSMSVoiceSendVoiceMessageOutput {
  MessageId: String
}

input AwsPinpointSMSVoiceSendVoiceMessageInput {
  CallerId: String
  ConfigurationSetName: String
  Content: AwsPinpointSMSVoiceSendVoiceMessageContentInput
  DestinationPhoneNumber: String
  OriginationPhoneNumber: String
}

input AwsPinpointSMSVoiceSendVoiceMessageContentInput {
  CallInstructionsMessage: AwsPinpointSMSVoiceSendVoiceMessageContentCallInstructionsMessageInput
  PlainTextMessage: AwsPinpointSMSVoiceSendVoiceMessageContentPlainTextMessageInput
  SSMLMessage: AwsPinpointSMSVoiceSendVoiceMessageContentSSMLMessageInput
}

input AwsPinpointSMSVoiceSendVoiceMessageContentCallInstructionsMessageInput {
  Text: String
}

input AwsPinpointSMSVoiceSendVoiceMessageContentPlainTextMessageInput {
  LanguageCode: String
  Text: String
  VoiceId: String
}

input AwsPinpointSMSVoiceSendVoiceMessageContentSSMLMessageInput {
  LanguageCode: String
  Text: String
  VoiceId: String
}

input AwsPinpointSMSVoiceUpdateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestination: AwsPinpointSMSVoiceS6Input
  EventDestinationName: String!
}

"""Amazon Polly (2016-06-10)"""
type AwsPolly {
  deleteLexicon(input: AwsPollyDeleteLexiconInput!, config: AwsConfig): JSON
  describeVoices(input: AwsPollyDescribeVoicesInput, config: AwsConfig): AwsPollyDescribeVoicesOutput
  getLexicon(input: AwsPollyGetLexiconInput!, config: AwsConfig): AwsPollyGetLexiconOutput
  getSpeechSynthesisTask(input: AwsPollyGetSpeechSynthesisTaskInput!, config: AwsConfig): AwsPollyGetSpeechSynthesisTaskOutput
  listLexicons(input: AwsPollyListLexiconsInput, config: AwsConfig): AwsPollyListLexiconsOutput
  listSpeechSynthesisTasks(input: AwsPollyListSpeechSynthesisTasksInput, config: AwsConfig): AwsPollyListSpeechSynthesisTasksOutput
  putLexicon(input: AwsPollyPutLexiconInput!, config: AwsConfig): JSON
  startSpeechSynthesisTask(input: AwsPollyStartSpeechSynthesisTaskInput!, config: AwsConfig): AwsPollyStartSpeechSynthesisTaskOutput
  synthesizeSpeech(input: AwsPollySynthesizeSpeechInput!, config: AwsConfig): AwsPollySynthesizeSpeechOutput
}

input AwsPollyDeleteLexiconInput {
  Name: String!
}

type AwsPollyDescribeVoicesOutput {
  Voices: [AwsPollyDescribeVoicesOutputVoices]
  NextToken: String
}

type AwsPollyDescribeVoicesOutputVoices {
  Gender: String
  Id: String
  LanguageCode: String
  LanguageName: String
  Name: String
  AdditionalLanguageCodes: [String]
  SupportedEngines: [String]
}

input AwsPollyDescribeVoicesInput {
  Engine: String
  LanguageCode: String
  IncludeAdditionalLanguageCodes: Boolean
  NextToken: String
}

type AwsPollyGetLexiconOutput {
  Lexicon: AwsPollyGetLexiconOutputLexicon
  LexiconAttributes: AwsPollySm
}

type AwsPollyGetLexiconOutputLexicon {
  Content: String
  Name: String
}

type AwsPollySm {
  Alphabet: String
  LanguageCode: String
  LastModified: Date
  LexiconArn: String
  LexemesCount: Int
  Size: Int
}

input AwsPollyGetLexiconInput {
  Name: String!
}

type AwsPollyGetSpeechSynthesisTaskOutput {
  SynthesisTask: AwsPollySv
}

type AwsPollySv {
  Engine: String
  TaskId: String
  TaskStatus: String
  TaskStatusReason: String
  OutputUri: String
  CreationTime: Date
  RequestCharacters: Int
  SnsTopicArn: String
  LexiconNames: [String]
  OutputFormat: String
  SampleRate: String
  SpeechMarkTypes: [String]
  TextType: String
  VoiceId: String
  LanguageCode: String
}

input AwsPollyGetSpeechSynthesisTaskInput {
  TaskId: String!
}

type AwsPollyListLexiconsOutput {
  Lexicons: [AwsPollyListLexiconsOutputLexicons]
  NextToken: String
}

type AwsPollyListLexiconsOutputLexicons {
  Name: String
  Attributes: AwsPollySm
}

input AwsPollyListLexiconsInput {
  NextToken: String
}

type AwsPollyListSpeechSynthesisTasksOutput {
  NextToken: String
  SynthesisTasks: [AwsPollySv]
}

input AwsPollyListSpeechSynthesisTasksInput {
  MaxResults: Int
  NextToken: String
  Status: String
}

input AwsPollyPutLexiconInput {
  Name: String!
  Content: String!
}

type AwsPollyStartSpeechSynthesisTaskOutput {
  SynthesisTask: AwsPollySv
}

input AwsPollyStartSpeechSynthesisTaskInput {
  Engine: String
  LanguageCode: String
  LexiconNames: [String]
  OutputFormat: String!
  OutputS3BucketName: String!
  OutputS3KeyPrefix: String
  SampleRate: String
  SnsTopicArn: String
  SpeechMarkTypes: [String]
  Text: String!
  TextType: String
  VoiceId: String!
}

type AwsPollySynthesizeSpeechOutput {
  AudioStream: JSON
  ContentType: String
  RequestCharacters: Int
}

input AwsPollySynthesizeSpeechInput {
  Engine: String
  LanguageCode: String
  LexiconNames: [String]
  OutputFormat: String!
  SampleRate: String
  SpeechMarkTypes: [String]
  Text: String!
  TextType: String
  VoiceId: String!
}

"""AWS Price List Service (2017-10-15)"""
type AwsPricing {
  describeServices(input: AwsPricingDescribeServicesInput, config: AwsConfig): AwsPricingDescribeServicesOutput
  getAttributeValues(input: AwsPricingGetAttributeValuesInput!, config: AwsConfig): AwsPricingGetAttributeValuesOutput
  getProducts(input: AwsPricingGetProductsInput, config: AwsConfig): AwsPricingGetProductsOutput
}

type AwsPricingDescribeServicesOutput {
  Services: [AwsPricingDescribeServicesOutputServices]
  FormatVersion: String
  NextToken: String
}

type AwsPricingDescribeServicesOutputServices {
  ServiceCode: String
  AttributeNames: [String]
}

input AwsPricingDescribeServicesInput {
  ServiceCode: String
  FormatVersion: String
  NextToken: String
  MaxResults: Int
}

type AwsPricingGetAttributeValuesOutput {
  AttributeValues: [AwsPricingGetAttributeValuesOutputAttributeValues]
  NextToken: String
}

type AwsPricingGetAttributeValuesOutputAttributeValues {
  Value: String
}

input AwsPricingGetAttributeValuesInput {
  ServiceCode: String!
  AttributeName: String!
  NextToken: String
  MaxResults: Int
}

type AwsPricingGetProductsOutput {
  FormatVersion: String
  PriceList: [String]
  NextToken: String
}

input AwsPricingGetProductsInput {
  ServiceCode: String
  Filters: [AwsPricingGetProductsFiltersInput]
  FormatVersion: String
  NextToken: String
  MaxResults: Int
}

input AwsPricingGetProductsFiltersInput {
  Type: String!
  Field: String!
  Value: String!
}

"""AWS Proton (2020-07-20)"""
type AwsProton {
  acceptEnvironmentAccountConnection(input: AwsProtonAcceptEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonAcceptEnvironmentAccountConnectionOutput
  cancelEnvironmentDeployment(input: AwsProtonCancelEnvironmentDeploymentInput!, config: AwsConfig): AwsProtonCancelEnvironmentDeploymentOutput
  cancelServiceInstanceDeployment(input: AwsProtonCancelServiceInstanceDeploymentInput!, config: AwsConfig): AwsProtonCancelServiceInstanceDeploymentOutput
  cancelServicePipelineDeployment(input: AwsProtonCancelServicePipelineDeploymentInput!, config: AwsConfig): AwsProtonCancelServicePipelineDeploymentOutput
  createEnvironment(input: AwsProtonCreateEnvironmentInput!, config: AwsConfig): AwsProtonCreateEnvironmentOutput
  createEnvironmentAccountConnection(input: AwsProtonCreateEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonCreateEnvironmentAccountConnectionOutput
  createEnvironmentTemplate(input: AwsProtonCreateEnvironmentTemplateInput!, config: AwsConfig): AwsProtonCreateEnvironmentTemplateOutput
  createEnvironmentTemplateVersion(input: AwsProtonCreateEnvironmentTemplateVersionInput!, config: AwsConfig): AwsProtonCreateEnvironmentTemplateVersionOutput
  createService(input: AwsProtonCreateServiceInput!, config: AwsConfig): AwsProtonCreateServiceOutput
  createServiceTemplate(input: AwsProtonCreateServiceTemplateInput!, config: AwsConfig): AwsProtonCreateServiceTemplateOutput
  createServiceTemplateVersion(input: AwsProtonCreateServiceTemplateVersionInput!, config: AwsConfig): AwsProtonCreateServiceTemplateVersionOutput
  deleteEnvironment(input: AwsProtonDeleteEnvironmentInput!, config: AwsConfig): AwsProtonDeleteEnvironmentOutput
  deleteEnvironmentAccountConnection(input: AwsProtonDeleteEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonDeleteEnvironmentAccountConnectionOutput
  deleteEnvironmentTemplate(input: AwsProtonDeleteEnvironmentTemplateInput!, config: AwsConfig): AwsProtonDeleteEnvironmentTemplateOutput
  deleteEnvironmentTemplateVersion(input: AwsProtonDeleteEnvironmentTemplateVersionInput!, config: AwsConfig): AwsProtonDeleteEnvironmentTemplateVersionOutput
  deleteService(input: AwsProtonDeleteServiceInput!, config: AwsConfig): AwsProtonDeleteServiceOutput
  deleteServiceTemplate(input: AwsProtonDeleteServiceTemplateInput!, config: AwsConfig): AwsProtonDeleteServiceTemplateOutput
  deleteServiceTemplateVersion(input: AwsProtonDeleteServiceTemplateVersionInput!, config: AwsConfig): AwsProtonDeleteServiceTemplateVersionOutput
  getAccountSettings(input: JSON, config: AwsConfig): AwsProtonGetAccountSettingsOutput
  getEnvironment(input: AwsProtonGetEnvironmentInput!, config: AwsConfig): AwsProtonGetEnvironmentOutput
  getEnvironmentAccountConnection(input: AwsProtonGetEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonGetEnvironmentAccountConnectionOutput
  getEnvironmentTemplate(input: AwsProtonGetEnvironmentTemplateInput!, config: AwsConfig): AwsProtonGetEnvironmentTemplateOutput
  getEnvironmentTemplateVersion(input: AwsProtonGetEnvironmentTemplateVersionInput!, config: AwsConfig): AwsProtonGetEnvironmentTemplateVersionOutput
  getService(input: AwsProtonGetServiceInput!, config: AwsConfig): AwsProtonGetServiceOutput
  getServiceInstance(input: AwsProtonGetServiceInstanceInput!, config: AwsConfig): AwsProtonGetServiceInstanceOutput
  getServiceTemplate(input: AwsProtonGetServiceTemplateInput!, config: AwsConfig): AwsProtonGetServiceTemplateOutput
  getServiceTemplateVersion(input: AwsProtonGetServiceTemplateVersionInput!, config: AwsConfig): AwsProtonGetServiceTemplateVersionOutput
  listEnvironmentAccountConnections(input: AwsProtonListEnvironmentAccountConnectionsInput!, config: AwsConfig): AwsProtonListEnvironmentAccountConnectionsOutput
  listEnvironmentTemplateVersions(input: AwsProtonListEnvironmentTemplateVersionsInput!, config: AwsConfig): AwsProtonListEnvironmentTemplateVersionsOutput
  listEnvironmentTemplates(input: AwsProtonListEnvironmentTemplatesInput, config: AwsConfig): AwsProtonListEnvironmentTemplatesOutput
  listEnvironments(input: AwsProtonListEnvironmentsInput, config: AwsConfig): AwsProtonListEnvironmentsOutput
  listServiceInstances(input: AwsProtonListServiceInstancesInput, config: AwsConfig): AwsProtonListServiceInstancesOutput
  listServiceTemplateVersions(input: AwsProtonListServiceTemplateVersionsInput!, config: AwsConfig): AwsProtonListServiceTemplateVersionsOutput
  listServiceTemplates(input: AwsProtonListServiceTemplatesInput, config: AwsConfig): AwsProtonListServiceTemplatesOutput
  listServices(input: AwsProtonListServicesInput, config: AwsConfig): AwsProtonListServicesOutput
  listTagsForResource(input: AwsProtonListTagsForResourceInput!, config: AwsConfig): AwsProtonListTagsForResourceOutput
  rejectEnvironmentAccountConnection(input: AwsProtonRejectEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonRejectEnvironmentAccountConnectionOutput
  tagResource(input: AwsProtonTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsProtonUntagResourceInput!, config: AwsConfig): JSON
  updateAccountSettings(input: AwsProtonUpdateAccountSettingsInput, config: AwsConfig): AwsProtonUpdateAccountSettingsOutput
  updateEnvironment(input: AwsProtonUpdateEnvironmentInput!, config: AwsConfig): AwsProtonUpdateEnvironmentOutput
  updateEnvironmentAccountConnection(input: AwsProtonUpdateEnvironmentAccountConnectionInput!, config: AwsConfig): AwsProtonUpdateEnvironmentAccountConnectionOutput
  updateEnvironmentTemplate(input: AwsProtonUpdateEnvironmentTemplateInput!, config: AwsConfig): AwsProtonUpdateEnvironmentTemplateOutput
  updateEnvironmentTemplateVersion(input: AwsProtonUpdateEnvironmentTemplateVersionInput!, config: AwsConfig): AwsProtonUpdateEnvironmentTemplateVersionOutput
  updateService(input: AwsProtonUpdateServiceInput!, config: AwsConfig): AwsProtonUpdateServiceOutput
  updateServiceInstance(input: AwsProtonUpdateServiceInstanceInput!, config: AwsConfig): AwsProtonUpdateServiceInstanceOutput
  updateServicePipeline(input: AwsProtonUpdateServicePipelineInput!, config: AwsConfig): AwsProtonUpdateServicePipelineOutput
  updateServiceTemplate(input: AwsProtonUpdateServiceTemplateInput!, config: AwsConfig): AwsProtonUpdateServiceTemplateOutput
  updateServiceTemplateVersion(input: AwsProtonUpdateServiceTemplateVersionInput!, config: AwsConfig): AwsProtonUpdateServiceTemplateVersionOutput
}

type AwsProtonAcceptEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4!
}

type AwsProtonS4 {
  arn: String!
  environmentAccountId: String!
  environmentName: String!
  id: String!
  lastModifiedAt: Date!
  managementAccountId: String!
  requestedAt: Date!
  roleArn: String!
  status: String!
}

input AwsProtonAcceptEnvironmentAccountConnectionInput {
  id: String!
}

type AwsProtonCancelEnvironmentDeploymentOutput {
  environment: AwsProtonSd!
}

type AwsProtonSd {
  arn: String!
  createdAt: Date!
  deploymentStatus: String!
  deploymentStatusMessage: String
  description: String
  environmentAccountConnectionId: String
  environmentAccountId: String
  lastDeploymentAttemptedAt: Date!
  lastDeploymentSucceededAt: Date!
  name: String!
  protonServiceRoleArn: String
  provisioning: String
  spec: String
  templateMajorVersion: String!
  templateMinorVersion: String!
  templateName: String!
}

input AwsProtonCancelEnvironmentDeploymentInput {
  environmentName: String!
}

type AwsProtonCancelServiceInstanceDeploymentOutput {
  serviceInstance: AwsProtonSn!
}

type AwsProtonSn {
  arn: String!
  createdAt: Date!
  deploymentStatus: String!
  deploymentStatusMessage: String
  environmentName: String!
  lastDeploymentAttemptedAt: Date!
  lastDeploymentSucceededAt: Date!
  name: String!
  serviceName: String!
  spec: String
  templateMajorVersion: String!
  templateMinorVersion: String!
  templateName: String!
}

input AwsProtonCancelServiceInstanceDeploymentInput {
  serviceInstanceName: String!
  serviceName: String!
}

type AwsProtonCancelServicePipelineDeploymentOutput {
  pipeline: AwsProtonSr!
}

type AwsProtonSr {
  arn: String!
  createdAt: Date!
  deploymentStatus: String!
  deploymentStatusMessage: String
  lastDeploymentAttemptedAt: Date!
  lastDeploymentSucceededAt: Date!
  spec: String
  templateMajorVersion: String!
  templateMinorVersion: String!
  templateName: String!
}

input AwsProtonCancelServicePipelineDeploymentInput {
  serviceName: String!
}

type AwsProtonCreateEnvironmentOutput {
  environment: AwsProtonSd!
}

input AwsProtonCreateEnvironmentInput {
  description: String
  environmentAccountConnectionId: String
  name: String!
  protonServiceRoleArn: String
  spec: String!
  tags: [AwsProtonStInput]
  templateMajorVersion: String!
  templateMinorVersion: String
  templateName: String!
}

input AwsProtonStInput {
  key: String!
  value: String!
}

type AwsProtonCreateEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4!
}

input AwsProtonCreateEnvironmentAccountConnectionInput {
  clientToken: String
  environmentName: String!
  managementAccountId: String!
  roleArn: String!
}

type AwsProtonCreateEnvironmentTemplateOutput {
  environmentTemplate: AwsProtonS14!
}

type AwsProtonS14 {
  arn: String!
  createdAt: Date!
  description: String
  displayName: String
  encryptionKey: String
  lastModifiedAt: Date!
  name: String!
  provisioning: String
  recommendedVersion: String
}

input AwsProtonCreateEnvironmentTemplateInput {
  description: String
  displayName: String
  encryptionKey: String
  name: String!
  provisioning: String
  tags: [AwsProtonStInput]
}

type AwsProtonCreateEnvironmentTemplateVersionOutput {
  environmentTemplateVersion: AwsProtonS1d!
}

type AwsProtonS1d {
  arn: String!
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  majorVersion: String!
  minorVersion: String!
  recommendedMinorVersion: String
  schema: String
  status: String!
  statusMessage: String
  templateName: String!
}

input AwsProtonCreateEnvironmentTemplateVersionInput {
  clientToken: String
  description: String
  majorVersion: String
  source: AwsProtonS18Input!
  tags: [AwsProtonStInput]
  templateName: String!
}

input AwsProtonS18Input {
  s3: AwsProtonS18S3Input
}

input AwsProtonS18S3Input {
  bucket: String!
  key: String!
}

type AwsProtonCreateServiceOutput {
  service: AwsProtonS1l!
}

type AwsProtonS1l {
  arn: String!
  branchName: String
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  name: String!
  pipeline: AwsProtonSr
  repositoryConnectionArn: String
  repositoryId: String
  spec: String!
  status: String!
  statusMessage: String
  templateName: String!
}

input AwsProtonCreateServiceInput {
  branchName: String
  description: String
  name: String!
  repositoryConnectionArn: String
  repositoryId: String
  spec: String!
  tags: [AwsProtonStInput]
  templateMajorVersion: String!
  templateMinorVersion: String
  templateName: String!
}

type AwsProtonCreateServiceTemplateOutput {
  serviceTemplate: AwsProtonS1q!
}

type AwsProtonS1q {
  arn: String!
  createdAt: Date!
  description: String
  displayName: String
  encryptionKey: String
  lastModifiedAt: Date!
  name: String!
  pipelineProvisioning: String
  recommendedVersion: String
}

input AwsProtonCreateServiceTemplateInput {
  description: String
  displayName: String
  encryptionKey: String
  name: String!
  pipelineProvisioning: String
  tags: [AwsProtonStInput]
}

type AwsProtonCreateServiceTemplateVersionOutput {
  serviceTemplateVersion: AwsProtonS1w!
}

type AwsProtonS1w {
  arn: String!
  compatibleEnvironmentTemplates: [AwsProtonS1wCompatibleEnvironmentTemplates]!
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  majorVersion: String!
  minorVersion: String!
  recommendedMinorVersion: String
  schema: String
  status: String!
  statusMessage: String
  templateName: String!
}

type AwsProtonS1wCompatibleEnvironmentTemplates {
  majorVersion: String!
  templateName: String!
}

input AwsProtonCreateServiceTemplateVersionInput {
  clientToken: String
  compatibleEnvironmentTemplates: [AwsProtonS1tInput]!
  description: String
  majorVersion: String
  source: AwsProtonS18Input!
  tags: [AwsProtonStInput]
  templateName: String!
}

input AwsProtonS1tInput {
  majorVersion: String!
  templateName: String!
}

type AwsProtonDeleteEnvironmentOutput {
  environment: AwsProtonSd
}

input AwsProtonDeleteEnvironmentInput {
  name: String!
}

type AwsProtonDeleteEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4
}

input AwsProtonDeleteEnvironmentAccountConnectionInput {
  id: String!
}

type AwsProtonDeleteEnvironmentTemplateOutput {
  environmentTemplate: AwsProtonS14
}

input AwsProtonDeleteEnvironmentTemplateInput {
  name: String!
}

type AwsProtonDeleteEnvironmentTemplateVersionOutput {
  environmentTemplateVersion: AwsProtonS1d
}

input AwsProtonDeleteEnvironmentTemplateVersionInput {
  majorVersion: String!
  minorVersion: String!
  templateName: String!
}

type AwsProtonDeleteServiceOutput {
  service: AwsProtonS1l
}

input AwsProtonDeleteServiceInput {
  name: String!
}

type AwsProtonDeleteServiceTemplateOutput {
  serviceTemplate: AwsProtonS1q
}

input AwsProtonDeleteServiceTemplateInput {
  name: String!
}

type AwsProtonDeleteServiceTemplateVersionOutput {
  serviceTemplateVersion: AwsProtonS1w
}

input AwsProtonDeleteServiceTemplateVersionInput {
  majorVersion: String!
  minorVersion: String!
  templateName: String!
}

type AwsProtonGetAccountSettingsOutput {
  accountSettings: AwsProtonS2g
}

type AwsProtonS2g {
  pipelineServiceRoleArn: String
}

type AwsProtonGetEnvironmentOutput {
  environment: AwsProtonSd!
}

input AwsProtonGetEnvironmentInput {
  name: String!
}

type AwsProtonGetEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4!
}

input AwsProtonGetEnvironmentAccountConnectionInput {
  id: String!
}

type AwsProtonGetEnvironmentTemplateOutput {
  environmentTemplate: AwsProtonS14!
}

input AwsProtonGetEnvironmentTemplateInput {
  name: String!
}

type AwsProtonGetEnvironmentTemplateVersionOutput {
  environmentTemplateVersion: AwsProtonS1d!
}

input AwsProtonGetEnvironmentTemplateVersionInput {
  majorVersion: String!
  minorVersion: String!
  templateName: String!
}

type AwsProtonGetServiceOutput {
  service: AwsProtonS1l
}

input AwsProtonGetServiceInput {
  name: String!
}

type AwsProtonGetServiceInstanceOutput {
  serviceInstance: AwsProtonSn!
}

input AwsProtonGetServiceInstanceInput {
  name: String!
  serviceName: String!
}

type AwsProtonGetServiceTemplateOutput {
  serviceTemplate: AwsProtonS1q!
}

input AwsProtonGetServiceTemplateInput {
  name: String!
}

type AwsProtonGetServiceTemplateVersionOutput {
  serviceTemplateVersion: AwsProtonS1w!
}

input AwsProtonGetServiceTemplateVersionInput {
  majorVersion: String!
  minorVersion: String!
  templateName: String!
}

type AwsProtonListEnvironmentAccountConnectionsOutput {
  environmentAccountConnections: [AwsProtonListEnvironmentAccountConnectionsOutputEnvironmentAccountConnections]!
  nextToken: String
}

type AwsProtonListEnvironmentAccountConnectionsOutputEnvironmentAccountConnections {
  arn: String!
  environmentAccountId: String!
  environmentName: String!
  id: String!
  lastModifiedAt: Date!
  managementAccountId: String!
  requestedAt: Date!
  roleArn: String!
  status: String!
}

input AwsProtonListEnvironmentAccountConnectionsInput {
  environmentName: String
  maxResults: Int
  nextToken: String
  requestedBy: String!
  statuses: [String]
}

type AwsProtonListEnvironmentTemplateVersionsOutput {
  nextToken: String
  templateVersions: [AwsProtonListEnvironmentTemplateVersionsOutputTemplateVersions]!
}

type AwsProtonListEnvironmentTemplateVersionsOutputTemplateVersions {
  arn: String!
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  majorVersion: String!
  minorVersion: String!
  recommendedMinorVersion: String
  status: String!
  statusMessage: String
  templateName: String!
}

input AwsProtonListEnvironmentTemplateVersionsInput {
  majorVersion: String
  maxResults: Int
  nextToken: String
  templateName: String!
}

type AwsProtonListEnvironmentTemplatesOutput {
  nextToken: String
  templates: [AwsProtonListEnvironmentTemplatesOutputTemplates]!
}

type AwsProtonListEnvironmentTemplatesOutputTemplates {
  arn: String!
  createdAt: Date!
  description: String
  displayName: String
  lastModifiedAt: Date!
  name: String!
  provisioning: String
  recommendedVersion: String
}

input AwsProtonListEnvironmentTemplatesInput {
  maxResults: Int
  nextToken: String
}

type AwsProtonListEnvironmentsOutput {
  environments: [AwsProtonListEnvironmentsOutputEnvironments]!
  nextToken: String
}

type AwsProtonListEnvironmentsOutputEnvironments {
  arn: String!
  createdAt: Date!
  deploymentStatus: String!
  deploymentStatusMessage: String
  description: String
  environmentAccountConnectionId: String
  environmentAccountId: String
  lastDeploymentAttemptedAt: Date!
  lastDeploymentSucceededAt: Date!
  name: String!
  protonServiceRoleArn: String
  provisioning: String
  templateMajorVersion: String!
  templateMinorVersion: String!
  templateName: String!
}

input AwsProtonListEnvironmentsInput {
  environmentTemplates: [AwsProtonListEnvironmentsEnvironmentTemplatesInput]
  maxResults: Int
  nextToken: String
}

input AwsProtonListEnvironmentsEnvironmentTemplatesInput {
  majorVersion: String!
  templateName: String!
}

type AwsProtonListServiceInstancesOutput {
  nextToken: String
  serviceInstances: [AwsProtonListServiceInstancesOutputServiceInstances]!
}

type AwsProtonListServiceInstancesOutputServiceInstances {
  arn: String!
  createdAt: Date!
  deploymentStatus: String!
  deploymentStatusMessage: String
  environmentName: String!
  lastDeploymentAttemptedAt: Date!
  lastDeploymentSucceededAt: Date!
  name: String!
  serviceName: String!
  templateMajorVersion: String!
  templateMinorVersion: String!
  templateName: String!
}

input AwsProtonListServiceInstancesInput {
  maxResults: Int
  nextToken: String
  serviceName: String
}

type AwsProtonListServiceTemplateVersionsOutput {
  nextToken: String
  templateVersions: [AwsProtonListServiceTemplateVersionsOutputTemplateVersions]!
}

type AwsProtonListServiceTemplateVersionsOutputTemplateVersions {
  arn: String!
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  majorVersion: String!
  minorVersion: String!
  recommendedMinorVersion: String
  status: String!
  statusMessage: String
  templateName: String!
}

input AwsProtonListServiceTemplateVersionsInput {
  majorVersion: String
  maxResults: Int
  nextToken: String
  templateName: String!
}

type AwsProtonListServiceTemplatesOutput {
  nextToken: String
  templates: [AwsProtonListServiceTemplatesOutputTemplates]!
}

type AwsProtonListServiceTemplatesOutputTemplates {
  arn: String!
  createdAt: Date!
  description: String
  displayName: String
  lastModifiedAt: Date!
  name: String!
  pipelineProvisioning: String
  recommendedVersion: String
}

input AwsProtonListServiceTemplatesInput {
  maxResults: Int
  nextToken: String
}

type AwsProtonListServicesOutput {
  nextToken: String
  services: [AwsProtonListServicesOutputServices]!
}

type AwsProtonListServicesOutputServices {
  arn: String!
  createdAt: Date!
  description: String
  lastModifiedAt: Date!
  name: String!
  status: String!
  statusMessage: String
  templateName: String!
}

input AwsProtonListServicesInput {
  maxResults: Int
  nextToken: String
}

type AwsProtonListTagsForResourceOutput {
  nextToken: String
  tags: [AwsProtonSt]!
}

type AwsProtonSt {
  key: String!
  value: String!
}

input AwsProtonListTagsForResourceInput {
  maxResults: Int
  nextToken: String
  resourceArn: String!
}

type AwsProtonRejectEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4!
}

input AwsProtonRejectEnvironmentAccountConnectionInput {
  id: String!
}

input AwsProtonTagResourceInput {
  resourceArn: String!
  tags: [AwsProtonStInput]!
}

input AwsProtonUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsProtonUpdateAccountSettingsOutput {
  accountSettings: AwsProtonS2g!
}

input AwsProtonUpdateAccountSettingsInput {
  pipelineServiceRoleArn: String
}

type AwsProtonUpdateEnvironmentOutput {
  environment: AwsProtonSd!
}

input AwsProtonUpdateEnvironmentInput {
  deploymentType: String!
  description: String
  environmentAccountConnectionId: String
  name: String!
  protonServiceRoleArn: String
  spec: String
  templateMajorVersion: String
  templateMinorVersion: String
}

type AwsProtonUpdateEnvironmentAccountConnectionOutput {
  environmentAccountConnection: AwsProtonS4!
}

input AwsProtonUpdateEnvironmentAccountConnectionInput {
  id: String!
  roleArn: String!
}

type AwsProtonUpdateEnvironmentTemplateOutput {
  environmentTemplate: AwsProtonS14!
}

input AwsProtonUpdateEnvironmentTemplateInput {
  description: String
  displayName: String
  name: String!
}

type AwsProtonUpdateEnvironmentTemplateVersionOutput {
  environmentTemplateVersion: AwsProtonS1d!
}

input AwsProtonUpdateEnvironmentTemplateVersionInput {
  description: String
  majorVersion: String!
  minorVersion: String!
  status: String
  templateName: String!
}

type AwsProtonUpdateServiceOutput {
  service: AwsProtonS1l!
}

input AwsProtonUpdateServiceInput {
  description: String
  name: String!
  spec: String
}

type AwsProtonUpdateServiceInstanceOutput {
  serviceInstance: AwsProtonSn!
}

input AwsProtonUpdateServiceInstanceInput {
  deploymentType: String!
  name: String!
  serviceName: String!
  spec: String
  templateMajorVersion: String
  templateMinorVersion: String
}

type AwsProtonUpdateServicePipelineOutput {
  pipeline: AwsProtonSr!
}

input AwsProtonUpdateServicePipelineInput {
  deploymentType: String!
  serviceName: String!
  spec: String!
  templateMajorVersion: String
  templateMinorVersion: String
}

type AwsProtonUpdateServiceTemplateOutput {
  serviceTemplate: AwsProtonS1q!
}

input AwsProtonUpdateServiceTemplateInput {
  description: String
  displayName: String
  name: String!
}

type AwsProtonUpdateServiceTemplateVersionOutput {
  serviceTemplateVersion: AwsProtonS1w!
}

input AwsProtonUpdateServiceTemplateVersionInput {
  compatibleEnvironmentTemplates: [AwsProtonS1tInput]
  description: String
  majorVersion: String!
  minorVersion: String!
  status: String
  templateName: String!
}

"""Amazon QLDB (2019-01-02)"""
type AwsQLDB {
  cancelJournalKinesisStream(input: AwsQLDBCancelJournalKinesisStreamInput!, config: AwsConfig): AwsQLDBCancelJournalKinesisStreamOutput
  createLedger(input: AwsQLDBCreateLedgerInput!, config: AwsConfig): AwsQLDBCreateLedgerOutput
  deleteLedger(input: AwsQLDBDeleteLedgerInput!, config: AwsConfig): JSON
  describeJournalKinesisStream(input: AwsQLDBDescribeJournalKinesisStreamInput!, config: AwsConfig): AwsQLDBDescribeJournalKinesisStreamOutput
  describeJournalS3Export(input: AwsQLDBDescribeJournalS3ExportInput!, config: AwsConfig): AwsQLDBDescribeJournalS3ExportOutput
  describeLedger(input: AwsQLDBDescribeLedgerInput!, config: AwsConfig): AwsQLDBDescribeLedgerOutput
  exportJournalToS3(input: AwsQLDBExportJournalToS3Input!, config: AwsConfig): AwsQLDBExportJournalToS3Output
  getBlock(input: AwsQLDBGetBlockInput!, config: AwsConfig): AwsQLDBGetBlockOutput
  getDigest(input: AwsQLDBGetDigestInput!, config: AwsConfig): AwsQLDBGetDigestOutput
  getRevision(input: AwsQLDBGetRevisionInput!, config: AwsConfig): AwsQLDBGetRevisionOutput
  listJournalKinesisStreamsForLedger(input: AwsQLDBListJournalKinesisStreamsForLedgerInput!, config: AwsConfig): AwsQLDBListJournalKinesisStreamsForLedgerOutput
  listJournalS3Exports(input: AwsQLDBListJournalS3ExportsInput, config: AwsConfig): AwsQLDBListJournalS3ExportsOutput
  listJournalS3ExportsForLedger(input: AwsQLDBListJournalS3ExportsForLedgerInput!, config: AwsConfig): AwsQLDBListJournalS3ExportsForLedgerOutput
  listLedgers(input: AwsQLDBListLedgersInput, config: AwsConfig): AwsQLDBListLedgersOutput
  listTagsForResource(input: AwsQLDBListTagsForResourceInput!, config: AwsConfig): AwsQLDBListTagsForResourceOutput
  streamJournalToKinesis(input: AwsQLDBStreamJournalToKinesisInput!, config: AwsConfig): AwsQLDBStreamJournalToKinesisOutput
  tagResource(input: AwsQLDBTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsQLDBUntagResourceInput!, config: AwsConfig): JSON
  updateLedger(input: AwsQLDBUpdateLedgerInput!, config: AwsConfig): AwsQLDBUpdateLedgerOutput
  updateLedgerPermissionsMode(input: AwsQLDBUpdateLedgerPermissionsModeInput!, config: AwsConfig): AwsQLDBUpdateLedgerPermissionsModeOutput
}

type AwsQLDBCancelJournalKinesisStreamOutput {
  StreamId: String
}

input AwsQLDBCancelJournalKinesisStreamInput {
  LedgerName: String!
  StreamId: String!
}

type AwsQLDBCreateLedgerOutput {
  Name: String
  Arn: String
  State: String
  CreationDateTime: Date
  PermissionsMode: String
  DeletionProtection: Boolean
}

input AwsQLDBCreateLedgerInput {
  Name: String!
  Tags: JSON
  PermissionsMode: String!
  DeletionProtection: Boolean
}

input AwsQLDBDeleteLedgerInput {
  Name: String!
}

type AwsQLDBDescribeJournalKinesisStreamOutput {
  Stream: AwsQLDBSi
}

type AwsQLDBSi {
  LedgerName: String!
  CreationTime: Date
  InclusiveStartTime: Date
  ExclusiveEndTime: Date
  RoleArn: String!
  StreamId: String!
  Arn: String
  Status: String!
  KinesisConfiguration: AwsQLDBSk!
  ErrorCause: String
  StreamName: String!
}

type AwsQLDBSk {
  StreamArn: String!
  AggregationEnabled: Boolean
}

input AwsQLDBDescribeJournalKinesisStreamInput {
  LedgerName: String!
  StreamId: String!
}

type AwsQLDBDescribeJournalS3ExportOutput {
  ExportDescription: AwsQLDBSq!
}

type AwsQLDBSq {
  LedgerName: String!
  ExportId: String!
  ExportCreationTime: Date!
  Status: String!
  InclusiveStartTime: Date!
  ExclusiveEndTime: Date!
  S3ExportConfiguration: AwsQLDBSs!
  RoleArn: String!
}

type AwsQLDBSs {
  Bucket: String!
  Prefix: String!
  EncryptionConfiguration: AwsQLDBSsEncryptionConfiguration!
}

type AwsQLDBSsEncryptionConfiguration {
  ObjectEncryptionType: String!
  KmsKeyArn: String
}

input AwsQLDBDescribeJournalS3ExportInput {
  Name: String!
  ExportId: String!
}

type AwsQLDBDescribeLedgerOutput {
  Name: String
  Arn: String
  State: String
  CreationDateTime: Date
  PermissionsMode: String
  DeletionProtection: Boolean
}

input AwsQLDBDescribeLedgerInput {
  Name: String!
}

type AwsQLDBExportJournalToS3Output {
  ExportId: String!
}

input AwsQLDBExportJournalToS3Input {
  Name: String!
  InclusiveStartTime: Date!
  ExclusiveEndTime: Date!
  S3ExportConfiguration: AwsQLDBSsInput!
  RoleArn: String!
}

input AwsQLDBSsInput {
  Bucket: String!
  Prefix: String!
  EncryptionConfiguration: AwsQLDBSsEncryptionConfigurationInput!
}

input AwsQLDBSsEncryptionConfigurationInput {
  ObjectEncryptionType: String!
  KmsKeyArn: String
}

type AwsQLDBGetBlockOutput {
  Block: AwsQLDBS12!
  Proof: AwsQLDBS12
}

type AwsQLDBS12 {
  IonText: String
}

input AwsQLDBGetBlockInput {
  Name: String!
  BlockAddress: AwsQLDBS12Input!
  DigestTipAddress: AwsQLDBS12Input
}

input AwsQLDBS12Input {
  IonText: String
}

type AwsQLDBGetDigestOutput {
  Digest: JSON!
  DigestTipAddress: AwsQLDBS12!
}

input AwsQLDBGetDigestInput {
  Name: String!
}

type AwsQLDBGetRevisionOutput {
  Proof: AwsQLDBS12
  Revision: AwsQLDBS12!
}

input AwsQLDBGetRevisionInput {
  Name: String!
  BlockAddress: AwsQLDBS12Input!
  DocumentId: String!
  DigestTipAddress: AwsQLDBS12Input
}

type AwsQLDBListJournalKinesisStreamsForLedgerOutput {
  Streams: [AwsQLDBSi]
  NextToken: String
}

input AwsQLDBListJournalKinesisStreamsForLedgerInput {
  LedgerName: String!
  MaxResults: Int
  NextToken: String
}

type AwsQLDBListJournalS3ExportsOutput {
  JournalS3Exports: [AwsQLDBSq]
  NextToken: String
}

input AwsQLDBListJournalS3ExportsInput {
  MaxResults: Int
  NextToken: String
}

type AwsQLDBListJournalS3ExportsForLedgerOutput {
  JournalS3Exports: [AwsQLDBSq]
  NextToken: String
}

input AwsQLDBListJournalS3ExportsForLedgerInput {
  Name: String!
  MaxResults: Int
  NextToken: String
}

type AwsQLDBListLedgersOutput {
  Ledgers: [AwsQLDBListLedgersOutputLedgers]
  NextToken: String
}

type AwsQLDBListLedgersOutputLedgers {
  Name: String
  State: String
  CreationDateTime: Date
}

input AwsQLDBListLedgersInput {
  MaxResults: Int
  NextToken: String
}

type AwsQLDBListTagsForResourceOutput {
  Tags: JSON
}

input AwsQLDBListTagsForResourceInput {
  ResourceArn: String!
}

type AwsQLDBStreamJournalToKinesisOutput {
  StreamId: String
}

input AwsQLDBStreamJournalToKinesisInput {
  LedgerName: String!
  RoleArn: String!
  Tags: JSON
  InclusiveStartTime: Date!
  ExclusiveEndTime: Date
  KinesisConfiguration: AwsQLDBSkInput!
  StreamName: String!
}

input AwsQLDBSkInput {
  StreamArn: String!
  AggregationEnabled: Boolean
}

input AwsQLDBTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsQLDBUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsQLDBUpdateLedgerOutput {
  Name: String
  Arn: String
  State: String
  CreationDateTime: Date
  DeletionProtection: Boolean
}

input AwsQLDBUpdateLedgerInput {
  Name: String!
  DeletionProtection: Boolean
}

type AwsQLDBUpdateLedgerPermissionsModeOutput {
  Name: String
  Arn: String
  PermissionsMode: String
}

input AwsQLDBUpdateLedgerPermissionsModeInput {
  Name: String!
  PermissionsMode: String!
}

"""Amazon QLDB Session (2019-07-11)"""
type AwsQLDBSession {
  sendCommand(input: AwsQLDBSessionSendCommandInput, config: AwsConfig): AwsQLDBSessionSendCommandOutput
}

type AwsQLDBSessionSendCommandOutput {
  StartSession: AwsQLDBSessionSendCommandOutputStartSession
  StartTransaction: AwsQLDBSessionSendCommandOutputStartTransaction
  EndSession: AwsQLDBSessionSendCommandOutputEndSession
  CommitTransaction: AwsQLDBSessionSendCommandOutputCommitTransaction
  AbortTransaction: AwsQLDBSessionSendCommandOutputAbortTransaction
  ExecuteStatement: AwsQLDBSessionSendCommandOutputExecuteStatement
  FetchPage: AwsQLDBSessionSendCommandOutputFetchPage
}

type AwsQLDBSessionSendCommandOutputStartSession {
  SessionToken: String
  TimingInformation: AwsQLDBSessionSl
}

type AwsQLDBSessionSl {
  ProcessingTimeMilliseconds: JSON
}

type AwsQLDBSessionSendCommandOutputStartTransaction {
  TransactionId: String
  TimingInformation: AwsQLDBSessionSl
}

type AwsQLDBSessionSendCommandOutputEndSession {
  TimingInformation: AwsQLDBSessionSl
}

type AwsQLDBSessionSendCommandOutputCommitTransaction {
  TransactionId: String
  CommitDigest: JSON
  TimingInformation: AwsQLDBSessionSl
  ConsumedIOs: AwsQLDBSessionSq
}

type AwsQLDBSessionSq {
  ReadIOs: JSON
  WriteIOs: JSON
}

type AwsQLDBSessionSendCommandOutputAbortTransaction {
  TimingInformation: AwsQLDBSessionSl
}

type AwsQLDBSessionSendCommandOutputExecuteStatement {
  FirstPage: AwsQLDBSessionSv
  TimingInformation: AwsQLDBSessionSl
  ConsumedIOs: AwsQLDBSessionSq
}

type AwsQLDBSessionSv {
  Values: [AwsQLDBSessionSe]
  NextPageToken: String
}

type AwsQLDBSessionSe {
  IonBinary: JSON
  IonText: String
}

type AwsQLDBSessionSendCommandOutputFetchPage {
  Page: AwsQLDBSessionSv
  TimingInformation: AwsQLDBSessionSl
  ConsumedIOs: AwsQLDBSessionSq
}

input AwsQLDBSessionSendCommandInput {
  SessionToken: String
  StartSession: AwsQLDBSessionSendCommandStartSessionInput
  StartTransaction: JSON
  EndSession: JSON
  CommitTransaction: AwsQLDBSessionSendCommandCommitTransactionInput
  AbortTransaction: JSON
  ExecuteStatement: AwsQLDBSessionSendCommandExecuteStatementInput
  FetchPage: AwsQLDBSessionSendCommandFetchPageInput
}

input AwsQLDBSessionSendCommandStartSessionInput {
  LedgerName: String!
}

input AwsQLDBSessionSendCommandCommitTransactionInput {
  TransactionId: String!
  CommitDigest: JSON!
}

input AwsQLDBSessionSendCommandExecuteStatementInput {
  TransactionId: String!
  Statement: String!
  Parameters: [AwsQLDBSessionSeInput]
}

input AwsQLDBSessionSeInput {
  IonBinary: JSON
  IonText: String
}

input AwsQLDBSessionSendCommandFetchPageInput {
  TransactionId: String!
  NextPageToken: String!
}

"""Amazon QuickSight (2018-04-01)"""
type AwsQuickSight {
  cancelIngestion(input: AwsQuickSightCancelIngestionInput!, config: AwsConfig): AwsQuickSightCancelIngestionOutput
  createAccountCustomization(input: AwsQuickSightCreateAccountCustomizationInput!, config: AwsConfig): AwsQuickSightCreateAccountCustomizationOutput
  createAnalysis(input: AwsQuickSightCreateAnalysisInput!, config: AwsConfig): AwsQuickSightCreateAnalysisOutput
  createDashboard(input: AwsQuickSightCreateDashboardInput!, config: AwsConfig): AwsQuickSightCreateDashboardOutput
  createDataSet(input: AwsQuickSightCreateDataSetInput!, config: AwsConfig): AwsQuickSightCreateDataSetOutput
  createDataSource(input: AwsQuickSightCreateDataSourceInput!, config: AwsConfig): AwsQuickSightCreateDataSourceOutput
  createFolder(input: AwsQuickSightCreateFolderInput!, config: AwsConfig): AwsQuickSightCreateFolderOutput
  createFolderMembership(input: AwsQuickSightCreateFolderMembershipInput!, config: AwsConfig): AwsQuickSightCreateFolderMembershipOutput
  createGroup(input: AwsQuickSightCreateGroupInput!, config: AwsConfig): AwsQuickSightCreateGroupOutput
  createGroupMembership(input: AwsQuickSightCreateGroupMembershipInput!, config: AwsConfig): AwsQuickSightCreateGroupMembershipOutput
  createIAMPolicyAssignment(input: AwsQuickSightCreateIAMPolicyAssignmentInput!, config: AwsConfig): AwsQuickSightCreateIAMPolicyAssignmentOutput
  createIngestion(input: AwsQuickSightCreateIngestionInput!, config: AwsConfig): AwsQuickSightCreateIngestionOutput
  createNamespace(input: AwsQuickSightCreateNamespaceInput!, config: AwsConfig): AwsQuickSightCreateNamespaceOutput
  createTemplate(input: AwsQuickSightCreateTemplateInput!, config: AwsConfig): AwsQuickSightCreateTemplateOutput
  createTemplateAlias(input: AwsQuickSightCreateTemplateAliasInput!, config: AwsConfig): AwsQuickSightCreateTemplateAliasOutput
  createTheme(input: AwsQuickSightCreateThemeInput!, config: AwsConfig): AwsQuickSightCreateThemeOutput
  createThemeAlias(input: AwsQuickSightCreateThemeAliasInput!, config: AwsConfig): AwsQuickSightCreateThemeAliasOutput
  deleteAccountCustomization(input: AwsQuickSightDeleteAccountCustomizationInput!, config: AwsConfig): AwsQuickSightDeleteAccountCustomizationOutput
  deleteAnalysis(input: AwsQuickSightDeleteAnalysisInput!, config: AwsConfig): AwsQuickSightDeleteAnalysisOutput
  deleteDashboard(input: AwsQuickSightDeleteDashboardInput!, config: AwsConfig): AwsQuickSightDeleteDashboardOutput
  deleteDataSet(input: AwsQuickSightDeleteDataSetInput!, config: AwsConfig): AwsQuickSightDeleteDataSetOutput
  deleteDataSource(input: AwsQuickSightDeleteDataSourceInput!, config: AwsConfig): AwsQuickSightDeleteDataSourceOutput
  deleteFolder(input: AwsQuickSightDeleteFolderInput!, config: AwsConfig): AwsQuickSightDeleteFolderOutput
  deleteFolderMembership(input: AwsQuickSightDeleteFolderMembershipInput!, config: AwsConfig): AwsQuickSightDeleteFolderMembershipOutput
  deleteGroup(input: AwsQuickSightDeleteGroupInput!, config: AwsConfig): AwsQuickSightDeleteGroupOutput
  deleteGroupMembership(input: AwsQuickSightDeleteGroupMembershipInput!, config: AwsConfig): AwsQuickSightDeleteGroupMembershipOutput
  deleteIAMPolicyAssignment(input: AwsQuickSightDeleteIAMPolicyAssignmentInput!, config: AwsConfig): AwsQuickSightDeleteIAMPolicyAssignmentOutput
  deleteNamespace(input: AwsQuickSightDeleteNamespaceInput!, config: AwsConfig): AwsQuickSightDeleteNamespaceOutput
  deleteTemplate(input: AwsQuickSightDeleteTemplateInput!, config: AwsConfig): AwsQuickSightDeleteTemplateOutput
  deleteTemplateAlias(input: AwsQuickSightDeleteTemplateAliasInput!, config: AwsConfig): AwsQuickSightDeleteTemplateAliasOutput
  deleteTheme(input: AwsQuickSightDeleteThemeInput!, config: AwsConfig): AwsQuickSightDeleteThemeOutput
  deleteThemeAlias(input: AwsQuickSightDeleteThemeAliasInput!, config: AwsConfig): AwsQuickSightDeleteThemeAliasOutput
  deleteUser(input: AwsQuickSightDeleteUserInput!, config: AwsConfig): AwsQuickSightDeleteUserOutput
  deleteUserByPrincipalId(input: AwsQuickSightDeleteUserByPrincipalIdInput!, config: AwsConfig): AwsQuickSightDeleteUserByPrincipalIdOutput
  describeAccountCustomization(input: AwsQuickSightDescribeAccountCustomizationInput!, config: AwsConfig): AwsQuickSightDescribeAccountCustomizationOutput
  describeAccountSettings(input: AwsQuickSightDescribeAccountSettingsInput!, config: AwsConfig): AwsQuickSightDescribeAccountSettingsOutput
  describeAnalysis(input: AwsQuickSightDescribeAnalysisInput!, config: AwsConfig): AwsQuickSightDescribeAnalysisOutput
  describeAnalysisPermissions(input: AwsQuickSightDescribeAnalysisPermissionsInput!, config: AwsConfig): AwsQuickSightDescribeAnalysisPermissionsOutput
  describeDashboard(input: AwsQuickSightDescribeDashboardInput!, config: AwsConfig): AwsQuickSightDescribeDashboardOutput
  describeDashboardPermissions(input: AwsQuickSightDescribeDashboardPermissionsInput!, config: AwsConfig): AwsQuickSightDescribeDashboardPermissionsOutput
  describeDataSet(input: AwsQuickSightDescribeDataSetInput!, config: AwsConfig): AwsQuickSightDescribeDataSetOutput
  describeDataSetPermissions(input: AwsQuickSightDescribeDataSetPermissionsInput!, config: AwsConfig): AwsQuickSightDescribeDataSetPermissionsOutput
  describeDataSource(input: AwsQuickSightDescribeDataSourceInput!, config: AwsConfig): AwsQuickSightDescribeDataSourceOutput
  describeDataSourcePermissions(input: AwsQuickSightDescribeDataSourcePermissionsInput!, config: AwsConfig): AwsQuickSightDescribeDataSourcePermissionsOutput
  describeFolder(input: AwsQuickSightDescribeFolderInput!, config: AwsConfig): AwsQuickSightDescribeFolderOutput
  describeFolderPermissions(input: AwsQuickSightDescribeFolderPermissionsInput!, config: AwsConfig): AwsQuickSightDescribeFolderPermissionsOutput
  describeFolderResolvedPermissions(input: AwsQuickSightDescribeFolderResolvedPermissionsInput!, config: AwsConfig): AwsQuickSightDescribeFolderResolvedPermissionsOutput
  describeGroup(input: AwsQuickSightDescribeGroupInput!, config: AwsConfig): AwsQuickSightDescribeGroupOutput
  describeIAMPolicyAssignment(input: AwsQuickSightDescribeIAMPolicyAssignmentInput!, config: AwsConfig): AwsQuickSightDescribeIAMPolicyAssignmentOutput
  describeIngestion(input: AwsQuickSightDescribeIngestionInput!, config: AwsConfig): AwsQuickSightDescribeIngestionOutput
  describeNamespace(input: AwsQuickSightDescribeNamespaceInput!, config: AwsConfig): AwsQuickSightDescribeNamespaceOutput
  describeTemplate(input: AwsQuickSightDescribeTemplateInput!, config: AwsConfig): AwsQuickSightDescribeTemplateOutput
  describeTemplateAlias(input: AwsQuickSightDescribeTemplateAliasInput!, config: AwsConfig): AwsQuickSightDescribeTemplateAliasOutput
  describeTemplatePermissions(input: AwsQuickSightDescribeTemplatePermissionsInput!, config: AwsConfig): AwsQuickSightDescribeTemplatePermissionsOutput
  describeTheme(input: AwsQuickSightDescribeThemeInput!, config: AwsConfig): AwsQuickSightDescribeThemeOutput
  describeThemeAlias(input: AwsQuickSightDescribeThemeAliasInput!, config: AwsConfig): AwsQuickSightDescribeThemeAliasOutput
  describeThemePermissions(input: AwsQuickSightDescribeThemePermissionsInput!, config: AwsConfig): AwsQuickSightDescribeThemePermissionsOutput
  describeUser(input: AwsQuickSightDescribeUserInput!, config: AwsConfig): AwsQuickSightDescribeUserOutput
  getDashboardEmbedUrl(input: AwsQuickSightGetDashboardEmbedUrlInput!, config: AwsConfig): AwsQuickSightGetDashboardEmbedUrlOutput
  getSessionEmbedUrl(input: AwsQuickSightGetSessionEmbedUrlInput!, config: AwsConfig): AwsQuickSightGetSessionEmbedUrlOutput
  listAnalyses(input: AwsQuickSightListAnalysesInput!, config: AwsConfig): AwsQuickSightListAnalysesOutput
  listDashboardVersions(input: AwsQuickSightListDashboardVersionsInput!, config: AwsConfig): AwsQuickSightListDashboardVersionsOutput
  listDashboards(input: AwsQuickSightListDashboardsInput!, config: AwsConfig): AwsQuickSightListDashboardsOutput
  listDataSets(input: AwsQuickSightListDataSetsInput!, config: AwsConfig): AwsQuickSightListDataSetsOutput
  listDataSources(input: AwsQuickSightListDataSourcesInput!, config: AwsConfig): AwsQuickSightListDataSourcesOutput
  listFolderMembers(input: AwsQuickSightListFolderMembersInput!, config: AwsConfig): AwsQuickSightListFolderMembersOutput
  listFolders(input: AwsQuickSightListFoldersInput!, config: AwsConfig): AwsQuickSightListFoldersOutput
  listGroupMemberships(input: AwsQuickSightListGroupMembershipsInput!, config: AwsConfig): AwsQuickSightListGroupMembershipsOutput
  listGroups(input: AwsQuickSightListGroupsInput!, config: AwsConfig): AwsQuickSightListGroupsOutput
  listIAMPolicyAssignments(input: AwsQuickSightListIAMPolicyAssignmentsInput!, config: AwsConfig): AwsQuickSightListIAMPolicyAssignmentsOutput
  listIAMPolicyAssignmentsForUser(input: AwsQuickSightListIAMPolicyAssignmentsForUserInput!, config: AwsConfig): AwsQuickSightListIAMPolicyAssignmentsForUserOutput
  listIngestions(input: AwsQuickSightListIngestionsInput!, config: AwsConfig): AwsQuickSightListIngestionsOutput
  listNamespaces(input: AwsQuickSightListNamespacesInput!, config: AwsConfig): AwsQuickSightListNamespacesOutput
  listTagsForResource(input: AwsQuickSightListTagsForResourceInput!, config: AwsConfig): AwsQuickSightListTagsForResourceOutput
  listTemplateAliases(input: AwsQuickSightListTemplateAliasesInput!, config: AwsConfig): AwsQuickSightListTemplateAliasesOutput
  listTemplateVersions(input: AwsQuickSightListTemplateVersionsInput!, config: AwsConfig): AwsQuickSightListTemplateVersionsOutput
  listTemplates(input: AwsQuickSightListTemplatesInput!, config: AwsConfig): AwsQuickSightListTemplatesOutput
  listThemeAliases(input: AwsQuickSightListThemeAliasesInput!, config: AwsConfig): AwsQuickSightListThemeAliasesOutput
  listThemeVersions(input: AwsQuickSightListThemeVersionsInput!, config: AwsConfig): AwsQuickSightListThemeVersionsOutput
  listThemes(input: AwsQuickSightListThemesInput!, config: AwsConfig): AwsQuickSightListThemesOutput
  listUserGroups(input: AwsQuickSightListUserGroupsInput!, config: AwsConfig): AwsQuickSightListUserGroupsOutput
  listUsers(input: AwsQuickSightListUsersInput!, config: AwsConfig): AwsQuickSightListUsersOutput
  registerUser(input: AwsQuickSightRegisterUserInput!, config: AwsConfig): AwsQuickSightRegisterUserOutput
  restoreAnalysis(input: AwsQuickSightRestoreAnalysisInput!, config: AwsConfig): AwsQuickSightRestoreAnalysisOutput
  searchAnalyses(input: AwsQuickSightSearchAnalysesInput!, config: AwsConfig): AwsQuickSightSearchAnalysesOutput
  searchDashboards(input: AwsQuickSightSearchDashboardsInput!, config: AwsConfig): AwsQuickSightSearchDashboardsOutput
  searchFolders(input: AwsQuickSightSearchFoldersInput!, config: AwsConfig): AwsQuickSightSearchFoldersOutput
  tagResource(input: AwsQuickSightTagResourceInput!, config: AwsConfig): AwsQuickSightTagResourceOutput
  untagResource(input: AwsQuickSightUntagResourceInput!, config: AwsConfig): AwsQuickSightUntagResourceOutput
  updateAccountCustomization(input: AwsQuickSightUpdateAccountCustomizationInput!, config: AwsConfig): AwsQuickSightUpdateAccountCustomizationOutput
  updateAccountSettings(input: AwsQuickSightUpdateAccountSettingsInput!, config: AwsConfig): AwsQuickSightUpdateAccountSettingsOutput
  updateAnalysis(input: AwsQuickSightUpdateAnalysisInput!, config: AwsConfig): AwsQuickSightUpdateAnalysisOutput
  updateAnalysisPermissions(input: AwsQuickSightUpdateAnalysisPermissionsInput!, config: AwsConfig): AwsQuickSightUpdateAnalysisPermissionsOutput
  updateDashboard(input: AwsQuickSightUpdateDashboardInput!, config: AwsConfig): AwsQuickSightUpdateDashboardOutput
  updateDashboardPermissions(input: AwsQuickSightUpdateDashboardPermissionsInput!, config: AwsConfig): AwsQuickSightUpdateDashboardPermissionsOutput
  updateDashboardPublishedVersion(input: AwsQuickSightUpdateDashboardPublishedVersionInput!, config: AwsConfig): AwsQuickSightUpdateDashboardPublishedVersionOutput
  updateDataSet(input: AwsQuickSightUpdateDataSetInput!, config: AwsConfig): AwsQuickSightUpdateDataSetOutput
  updateDataSetPermissions(input: AwsQuickSightUpdateDataSetPermissionsInput!, config: AwsConfig): AwsQuickSightUpdateDataSetPermissionsOutput
  updateDataSource(input: AwsQuickSightUpdateDataSourceInput!, config: AwsConfig): AwsQuickSightUpdateDataSourceOutput
  updateDataSourcePermissions(input: AwsQuickSightUpdateDataSourcePermissionsInput!, config: AwsConfig): AwsQuickSightUpdateDataSourcePermissionsOutput
  updateFolder(input: AwsQuickSightUpdateFolderInput!, config: AwsConfig): AwsQuickSightUpdateFolderOutput
  updateFolderPermissions(input: AwsQuickSightUpdateFolderPermissionsInput!, config: AwsConfig): AwsQuickSightUpdateFolderPermissionsOutput
  updateGroup(input: AwsQuickSightUpdateGroupInput!, config: AwsConfig): AwsQuickSightUpdateGroupOutput
  updateIAMPolicyAssignment(input: AwsQuickSightUpdateIAMPolicyAssignmentInput!, config: AwsConfig): AwsQuickSightUpdateIAMPolicyAssignmentOutput
  updateTemplate(input: AwsQuickSightUpdateTemplateInput!, config: AwsConfig): AwsQuickSightUpdateTemplateOutput
  updateTemplateAlias(input: AwsQuickSightUpdateTemplateAliasInput!, config: AwsConfig): AwsQuickSightUpdateTemplateAliasOutput
  updateTemplatePermissions(input: AwsQuickSightUpdateTemplatePermissionsInput!, config: AwsConfig): AwsQuickSightUpdateTemplatePermissionsOutput
  updateTheme(input: AwsQuickSightUpdateThemeInput!, config: AwsConfig): AwsQuickSightUpdateThemeOutput
  updateThemeAlias(input: AwsQuickSightUpdateThemeAliasInput!, config: AwsConfig): AwsQuickSightUpdateThemeAliasOutput
  updateThemePermissions(input: AwsQuickSightUpdateThemePermissionsInput!, config: AwsConfig): AwsQuickSightUpdateThemePermissionsOutput
  updateUser(input: AwsQuickSightUpdateUserInput!, config: AwsConfig): AwsQuickSightUpdateUserOutput
}

type AwsQuickSightCancelIngestionOutput {
  Arn: String
  IngestionId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightCancelIngestionInput {
  AwsAccountId: String!
  DataSetId: String!
  IngestionId: String!
}

type AwsQuickSightCreateAccountCustomizationOutput {
  Arn: String
  AwsAccountId: String
  Namespace: String
  AccountCustomization: AwsQuickSightSa
  RequestId: String
  Status: Int
}

type AwsQuickSightSa {
  DefaultTheme: String
}

input AwsQuickSightCreateAccountCustomizationInput {
  AwsAccountId: String!
  Namespace: String
  AccountCustomization: AwsQuickSightSaInput!
  Tags: [AwsQuickSightSbInput]
}

input AwsQuickSightSaInput {
  DefaultTheme: String
}

input AwsQuickSightSbInput {
  Key: String!
  Value: String!
}

type AwsQuickSightCreateAnalysisOutput {
  Arn: String
  AnalysisId: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightCreateAnalysisInput {
  AwsAccountId: String!
  AnalysisId: String!
  Name: String!
  Parameters: AwsQuickSightSkInput
  Permissions: [AwsQuickSightS12Input]
  SourceEntity: AwsQuickSightS15Input!
  ThemeArn: String
  Tags: [AwsQuickSightSbInput]
}

input AwsQuickSightSkInput {
  StringParameters: [AwsQuickSightSkStringParametersInput]
  IntegerParameters: [AwsQuickSightSkIntegerParametersInput]
  DecimalParameters: [AwsQuickSightSkDecimalParametersInput]
  DateTimeParameters: [AwsQuickSightSkDateTimeParametersInput]
}

input AwsQuickSightSkStringParametersInput {
  Name: String!
  Values: [String]!
}

input AwsQuickSightSkIntegerParametersInput {
  Name: String!
  Values: [JSON]!
}

input AwsQuickSightSkDecimalParametersInput {
  Name: String!
  Values: [JSON]!
}

input AwsQuickSightSkDateTimeParametersInput {
  Name: String!
  Values: [Date]!
}

input AwsQuickSightS12Input {
  Principal: String!
  Actions: [String]!
}

input AwsQuickSightS15Input {
  SourceTemplate: AwsQuickSightS15SourceTemplateInput
}

input AwsQuickSightS15SourceTemplateInput {
  DataSetReferences: [AwsQuickSightS17Input]!
  Arn: String!
}

input AwsQuickSightS17Input {
  DataSetPlaceholder: String!
  DataSetArn: String!
}

type AwsQuickSightCreateDashboardOutput {
  Arn: String
  VersionArn: String
  DashboardId: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightCreateDashboardInput {
  AwsAccountId: String!
  DashboardId: String!
  Name: String!
  Parameters: AwsQuickSightSkInput
  Permissions: [AwsQuickSightS12Input]
  SourceEntity: AwsQuickSightS1dInput!
  Tags: [AwsQuickSightSbInput]
  VersionDescription: String
  DashboardPublishOptions: AwsQuickSightS1gInput
  ThemeArn: String
}

input AwsQuickSightS1dInput {
  SourceTemplate: AwsQuickSightS1dSourceTemplateInput
}

input AwsQuickSightS1dSourceTemplateInput {
  DataSetReferences: [AwsQuickSightS17Input]!
  Arn: String!
}

input AwsQuickSightS1gInput {
  AdHocFilteringOption: AwsQuickSightS1gAdHocFilteringOptionInput
  ExportToCSVOption: AwsQuickSightS1gExportToCSVOptionInput
  SheetControlsOption: AwsQuickSightS1gSheetControlsOptionInput
}

input AwsQuickSightS1gAdHocFilteringOptionInput {
  AvailabilityStatus: String
}

input AwsQuickSightS1gExportToCSVOptionInput {
  AvailabilityStatus: String
}

input AwsQuickSightS1gSheetControlsOptionInput {
  VisibilityState: String
}

type AwsQuickSightCreateDataSetOutput {
  Arn: String
  DataSetId: String
  IngestionArn: String
  IngestionId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightCreateDataSetInput {
  AwsAccountId: String!
  DataSetId: String!
  Name: String!
  PhysicalTableMap: JSON!
  LogicalTableMap: JSON
  ImportMode: String!
  ColumnGroups: [AwsQuickSightS35Input]
  FieldFolders: JSON
  Permissions: [AwsQuickSightS12Input]
  RowLevelPermissionDataSet: AwsQuickSightS3gInput
  ColumnLevelPermissionRules: [AwsQuickSightS3jInput]
  Tags: [AwsQuickSightSbInput]
}

input AwsQuickSightS35Input {
  GeoSpatialColumnGroup: AwsQuickSightS35GeoSpatialColumnGroupInput
}

input AwsQuickSightS35GeoSpatialColumnGroupInput {
  Name: String!
  CountryCode: String!
  Columns: [String]!
}

input AwsQuickSightS3gInput {
  Namespace: String
  Arn: String!
  PermissionPolicy: String!
  FormatVersion: String
}

input AwsQuickSightS3jInput {
  Principals: [String]
  ColumnNames: [String]
}

type AwsQuickSightCreateDataSourceOutput {
  Arn: String
  DataSourceId: String
  CreationStatus: String
  RequestId: String
  Status: Int
}

input AwsQuickSightCreateDataSourceInput {
  AwsAccountId: String!
  DataSourceId: String!
  Name: String!
  Type: String!
  DataSourceParameters: AwsQuickSightS3qInput
  Credentials: AwsQuickSightS4rInput
  Permissions: [AwsQuickSightS12Input]
  VpcConnectionProperties: AwsQuickSightS4xInput
  SslProperties: AwsQuickSightS4yInput
  Tags: [AwsQuickSightSbInput]
}

input AwsQuickSightS3qInput {
  AmazonElasticsearchParameters: AwsQuickSightS3qAmazonElasticsearchParametersInput
  AthenaParameters: AwsQuickSightS3qAthenaParametersInput
  AuroraParameters: AwsQuickSightS3qAuroraParametersInput
  AuroraPostgreSqlParameters: AwsQuickSightS3qAuroraPostgreSqlParametersInput
  AwsIotAnalyticsParameters: AwsQuickSightS3qAwsIotAnalyticsParametersInput
  JiraParameters: AwsQuickSightS3qJiraParametersInput
  MariaDbParameters: AwsQuickSightS3qMariaDbParametersInput
  MySqlParameters: AwsQuickSightS3qMySqlParametersInput
  OracleParameters: AwsQuickSightS3qOracleParametersInput
  PostgreSqlParameters: AwsQuickSightS3qPostgreSqlParametersInput
  PrestoParameters: AwsQuickSightS3qPrestoParametersInput
  RdsParameters: AwsQuickSightS3qRdsParametersInput
  RedshiftParameters: AwsQuickSightS3qRedshiftParametersInput
  S3Parameters: AwsQuickSightS3qS3ParametersInput
  ServiceNowParameters: AwsQuickSightS3qServiceNowParametersInput
  SnowflakeParameters: AwsQuickSightS3qSnowflakeParametersInput
  SparkParameters: AwsQuickSightS3qSparkParametersInput
  SqlServerParameters: AwsQuickSightS3qSqlServerParametersInput
  TeradataParameters: AwsQuickSightS3qTeradataParametersInput
  TwitterParameters: AwsQuickSightS3qTwitterParametersInput
}

input AwsQuickSightS3qAmazonElasticsearchParametersInput {
  Domain: String!
}

input AwsQuickSightS3qAthenaParametersInput {
  WorkGroup: String
}

input AwsQuickSightS3qAuroraParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qAuroraPostgreSqlParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qAwsIotAnalyticsParametersInput {
  DataSetName: String!
}

input AwsQuickSightS3qJiraParametersInput {
  SiteBaseUrl: String!
}

input AwsQuickSightS3qMariaDbParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qMySqlParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qOracleParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qPostgreSqlParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qPrestoParametersInput {
  Host: String!
  Port: Int!
  Catalog: String!
}

input AwsQuickSightS3qRdsParametersInput {
  InstanceId: String!
  Database: String!
}

input AwsQuickSightS3qRedshiftParametersInput {
  Host: String
  Port: Int
  Database: String!
  ClusterId: String
}

input AwsQuickSightS3qS3ParametersInput {
  ManifestFileLocation: AwsQuickSightS3qS3ParametersManifestFileLocationInput!
}

input AwsQuickSightS3qS3ParametersManifestFileLocationInput {
  Bucket: String!
  Key: String!
}

input AwsQuickSightS3qServiceNowParametersInput {
  SiteBaseUrl: String!
}

input AwsQuickSightS3qSnowflakeParametersInput {
  Host: String!
  Database: String!
  Warehouse: String!
}

input AwsQuickSightS3qSparkParametersInput {
  Host: String!
  Port: Int!
}

input AwsQuickSightS3qSqlServerParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qTeradataParametersInput {
  Host: String!
  Port: Int!
  Database: String!
}

input AwsQuickSightS3qTwitterParametersInput {
  Query: String!
  MaxRows: Int!
}

input AwsQuickSightS4rInput {
  CredentialPair: AwsQuickSightS4rCredentialPairInput
  CopySourceArn: String
}

input AwsQuickSightS4rCredentialPairInput {
  Username: String!
  Password: String!
  AlternateDataSourceParameters: [AwsQuickSightS3qInput]
}

input AwsQuickSightS4xInput {
  VpcConnectionArn: String!
}

input AwsQuickSightS4yInput {
  DisableSsl: Boolean
}

type AwsQuickSightCreateFolderOutput {
  Status: Int
  Arn: String
  FolderId: String
  RequestId: String
}

input AwsQuickSightCreateFolderInput {
  AwsAccountId: String!
  FolderId: String!
  Name: String
  FolderType: String
  ParentFolderArn: String
  Permissions: [AwsQuickSightS12Input]
  Tags: [AwsQuickSightSbInput]
}

type AwsQuickSightCreateFolderMembershipOutput {
  Status: Int
  FolderMember: AwsQuickSightCreateFolderMembershipOutputFolderMember
  RequestId: String
}

type AwsQuickSightCreateFolderMembershipOutputFolderMember {
  MemberId: String
  MemberType: String
}

input AwsQuickSightCreateFolderMembershipInput {
  AwsAccountId: String!
  FolderId: String!
  MemberId: String!
  MemberType: String!
}

type AwsQuickSightCreateGroupOutput {
  Group: AwsQuickSightS5c
  RequestId: String
  Status: Int
}

type AwsQuickSightS5c {
  Arn: String
  GroupName: String
  Description: String
  PrincipalId: String
}

input AwsQuickSightCreateGroupInput {
  GroupName: String!
  Description: String
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightCreateGroupMembershipOutput {
  GroupMember: AwsQuickSightS5g
  RequestId: String
  Status: Int
}

type AwsQuickSightS5g {
  Arn: String
  MemberName: String
}

input AwsQuickSightCreateGroupMembershipInput {
  MemberName: String!
  GroupName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightCreateIAMPolicyAssignmentOutput {
  AssignmentName: String
  AssignmentId: String
  AssignmentStatus: String
  PolicyArn: String
  Identities: JSON
  RequestId: String
  Status: Int
}

input AwsQuickSightCreateIAMPolicyAssignmentInput {
  AwsAccountId: String!
  AssignmentName: String!
  AssignmentStatus: String!
  PolicyArn: String
  Identities: JSON
  Namespace: String!
}

type AwsQuickSightCreateIngestionOutput {
  Arn: String
  IngestionId: String
  IngestionStatus: String
  RequestId: String
  Status: Int
}

input AwsQuickSightCreateIngestionInput {
  DataSetId: String!
  IngestionId: String!
  AwsAccountId: String!
}

type AwsQuickSightCreateNamespaceOutput {
  Arn: String
  Name: String
  CapacityRegion: String
  CreationStatus: String
  IdentityStore: String
  RequestId: String
  Status: Int
}

input AwsQuickSightCreateNamespaceInput {
  AwsAccountId: String!
  Namespace: String!
  IdentityStore: String!
  Tags: [AwsQuickSightSbInput]
}

type AwsQuickSightCreateTemplateOutput {
  Arn: String
  VersionArn: String
  TemplateId: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightCreateTemplateInput {
  AwsAccountId: String!
  TemplateId: String!
  Name: String
  Permissions: [AwsQuickSightS12Input]
  SourceEntity: AwsQuickSightS5xInput!
  Tags: [AwsQuickSightSbInput]
  VersionDescription: String
}

input AwsQuickSightS5xInput {
  SourceAnalysis: AwsQuickSightS5xSourceAnalysisInput
  SourceTemplate: AwsQuickSightS5xSourceTemplateInput
}

input AwsQuickSightS5xSourceAnalysisInput {
  Arn: String!
  DataSetReferences: [AwsQuickSightS17Input]!
}

input AwsQuickSightS5xSourceTemplateInput {
  Arn: String!
}

type AwsQuickSightCreateTemplateAliasOutput {
  TemplateAlias: AwsQuickSightS65
  Status: Int
  RequestId: String
}

type AwsQuickSightS65 {
  AliasName: String
  Arn: String
  TemplateVersionNumber: JSON
}

input AwsQuickSightCreateTemplateAliasInput {
  AwsAccountId: String!
  TemplateId: String!
  AliasName: String!
  TemplateVersionNumber: JSON!
}

type AwsQuickSightCreateThemeOutput {
  Arn: String
  VersionArn: String
  ThemeId: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightCreateThemeInput {
  AwsAccountId: String!
  ThemeId: String!
  Name: String!
  BaseThemeId: String!
  VersionDescription: String
  Configuration: AwsQuickSightS68Input!
  Permissions: [AwsQuickSightS12Input]
  Tags: [AwsQuickSightSbInput]
}

input AwsQuickSightS68Input {
  DataColorPalette: AwsQuickSightS68DataColorPaletteInput
  UIColorPalette: AwsQuickSightS68UIColorPaletteInput
  Sheet: AwsQuickSightS68SheetInput
}

input AwsQuickSightS68DataColorPaletteInput {
  Colors: [String]
  MinMaxGradient: [String]
  EmptyFillColor: String
}

input AwsQuickSightS68UIColorPaletteInput {
  PrimaryForeground: String
  PrimaryBackground: String
  SecondaryForeground: String
  SecondaryBackground: String
  Accent: String
  AccentForeground: String
  Danger: String
  DangerForeground: String
  Warning: String
  WarningForeground: String
  Success: String
  SuccessForeground: String
  Dimension: String
  DimensionForeground: String
  Measure: String
  MeasureForeground: String
}

input AwsQuickSightS68SheetInput {
  Tile: AwsQuickSightS68SheetTileInput
  TileLayout: AwsQuickSightS68SheetTileLayoutInput
}

input AwsQuickSightS68SheetTileInput {
  Border: AwsQuickSightS68SheetTileBorderInput
}

input AwsQuickSightS68SheetTileBorderInput {
  Show: Boolean
}

input AwsQuickSightS68SheetTileLayoutInput {
  Gutter: AwsQuickSightS68SheetTileLayoutGutterInput
  Margin: AwsQuickSightS68SheetTileLayoutMarginInput
}

input AwsQuickSightS68SheetTileLayoutGutterInput {
  Show: Boolean
}

input AwsQuickSightS68SheetTileLayoutMarginInput {
  Show: Boolean
}

type AwsQuickSightCreateThemeAliasOutput {
  ThemeAlias: AwsQuickSightS6n
  Status: Int
  RequestId: String
}

type AwsQuickSightS6n {
  Arn: String
  AliasName: String
  ThemeVersionNumber: JSON
}

input AwsQuickSightCreateThemeAliasInput {
  AwsAccountId: String!
  ThemeId: String!
  AliasName: String!
  ThemeVersionNumber: JSON!
}

type AwsQuickSightDeleteAccountCustomizationOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteAccountCustomizationInput {
  AwsAccountId: String!
  Namespace: String
}

type AwsQuickSightDeleteAnalysisOutput {
  Status: Int
  Arn: String
  AnalysisId: String
  DeletionTime: Date
  RequestId: String
}

input AwsQuickSightDeleteAnalysisInput {
  AwsAccountId: String!
  AnalysisId: String!
  RecoveryWindowInDays: JSON
  ForceDeleteWithoutRecovery: Boolean
}

type AwsQuickSightDeleteDashboardOutput {
  Status: Int
  Arn: String
  DashboardId: String
  RequestId: String
}

input AwsQuickSightDeleteDashboardInput {
  AwsAccountId: String!
  DashboardId: String!
  VersionNumber: JSON
}

type AwsQuickSightDeleteDataSetOutput {
  Arn: String
  DataSetId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteDataSetInput {
  AwsAccountId: String!
  DataSetId: String!
}

type AwsQuickSightDeleteDataSourceOutput {
  Arn: String
  DataSourceId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteDataSourceInput {
  AwsAccountId: String!
  DataSourceId: String!
}

type AwsQuickSightDeleteFolderOutput {
  Status: Int
  Arn: String
  FolderId: String
  RequestId: String
}

input AwsQuickSightDeleteFolderInput {
  AwsAccountId: String!
  FolderId: String!
}

type AwsQuickSightDeleteFolderMembershipOutput {
  Status: Int
  RequestId: String
}

input AwsQuickSightDeleteFolderMembershipInput {
  AwsAccountId: String!
  FolderId: String!
  MemberId: String!
  MemberType: String!
}

type AwsQuickSightDeleteGroupOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteGroupInput {
  GroupName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDeleteGroupMembershipOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteGroupMembershipInput {
  MemberName: String!
  GroupName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDeleteIAMPolicyAssignmentOutput {
  AssignmentName: String
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteIAMPolicyAssignmentInput {
  AwsAccountId: String!
  AssignmentName: String!
  Namespace: String!
}

type AwsQuickSightDeleteNamespaceOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteNamespaceInput {
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDeleteTemplateOutput {
  RequestId: String
  Arn: String
  TemplateId: String
  Status: Int
}

input AwsQuickSightDeleteTemplateInput {
  AwsAccountId: String!
  TemplateId: String!
  VersionNumber: JSON
}

type AwsQuickSightDeleteTemplateAliasOutput {
  Status: Int
  TemplateId: String
  AliasName: String
  Arn: String
  RequestId: String
}

input AwsQuickSightDeleteTemplateAliasInput {
  AwsAccountId: String!
  TemplateId: String!
  AliasName: String!
}

type AwsQuickSightDeleteThemeOutput {
  Arn: String
  RequestId: String
  Status: Int
  ThemeId: String
}

input AwsQuickSightDeleteThemeInput {
  AwsAccountId: String!
  ThemeId: String!
  VersionNumber: JSON
}

type AwsQuickSightDeleteThemeAliasOutput {
  AliasName: String
  Arn: String
  RequestId: String
  Status: Int
  ThemeId: String
}

input AwsQuickSightDeleteThemeAliasInput {
  AwsAccountId: String!
  ThemeId: String!
  AliasName: String!
}

type AwsQuickSightDeleteUserOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteUserInput {
  UserName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDeleteUserByPrincipalIdOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightDeleteUserByPrincipalIdInput {
  PrincipalId: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDescribeAccountCustomizationOutput {
  Arn: String
  AwsAccountId: String
  Namespace: String
  AccountCustomization: AwsQuickSightSa
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeAccountCustomizationInput {
  AwsAccountId: String!
  Namespace: String
  Resolved: Boolean
}

type AwsQuickSightDescribeAccountSettingsOutput {
  AccountSettings: AwsQuickSightDescribeAccountSettingsOutputAccountSettings
  RequestId: String
  Status: Int
}

type AwsQuickSightDescribeAccountSettingsOutputAccountSettings {
  AccountName: String
  Edition: String
  DefaultNamespace: String
  NotificationEmail: String
}

input AwsQuickSightDescribeAccountSettingsInput {
  AwsAccountId: String!
}

type AwsQuickSightDescribeAnalysisOutput {
  Analysis: AwsQuickSightDescribeAnalysisOutputAnalysis
  Status: Int
  RequestId: String
}

type AwsQuickSightDescribeAnalysisOutputAnalysis {
  AnalysisId: String
  Arn: String
  Name: String
  Status: String
  Errors: [AwsQuickSightDescribeAnalysisOutputAnalysisErrors]
  DataSetArns: [String]
  ThemeArn: String
  CreatedTime: Date
  LastUpdatedTime: Date
  Sheets: [AwsQuickSightS81]
}

type AwsQuickSightDescribeAnalysisOutputAnalysisErrors {
  Type: String
  Message: String
}

type AwsQuickSightS81 {
  SheetId: String
  Name: String
}

input AwsQuickSightDescribeAnalysisInput {
  AwsAccountId: String!
  AnalysisId: String!
}

type AwsQuickSightDescribeAnalysisPermissionsOutput {
  AnalysisId: String
  AnalysisArn: String
  Permissions: [AwsQuickSightS12]
  Status: Int
  RequestId: String
}

type AwsQuickSightS12 {
  Principal: String!
  Actions: [String]!
}

input AwsQuickSightDescribeAnalysisPermissionsInput {
  AwsAccountId: String!
  AnalysisId: String!
}

type AwsQuickSightDescribeDashboardOutput {
  Dashboard: AwsQuickSightDescribeDashboardOutputDashboard
  Status: Int
  RequestId: String
}

type AwsQuickSightDescribeDashboardOutputDashboard {
  DashboardId: String
  Arn: String
  Name: String
  Version: AwsQuickSightDescribeDashboardOutputDashboardVersion
  CreatedTime: Date
  LastPublishedTime: Date
  LastUpdatedTime: Date
}

type AwsQuickSightDescribeDashboardOutputDashboardVersion {
  CreatedTime: Date
  Errors: [AwsQuickSightDescribeDashboardOutputDashboardVersionErrors]
  VersionNumber: JSON
  Status: String
  Arn: String
  SourceEntityArn: String
  DataSetArns: [String]
  Description: String
  ThemeArn: String
  Sheets: [AwsQuickSightS81]
}

type AwsQuickSightDescribeDashboardOutputDashboardVersionErrors {
  Type: String
  Message: String
}

input AwsQuickSightDescribeDashboardInput {
  AwsAccountId: String!
  DashboardId: String!
  VersionNumber: JSON
  AliasName: String
}

type AwsQuickSightDescribeDashboardPermissionsOutput {
  DashboardId: String
  DashboardArn: String
  Permissions: [AwsQuickSightS12]
  Status: Int
  RequestId: String
}

input AwsQuickSightDescribeDashboardPermissionsInput {
  AwsAccountId: String!
  DashboardId: String!
}

type AwsQuickSightDescribeDataSetOutput {
  DataSet: AwsQuickSightDescribeDataSetOutputDataSet
  RequestId: String
  Status: Int
}

type AwsQuickSightDescribeDataSetOutputDataSet {
  Arn: String
  DataSetId: String
  Name: String
  CreatedTime: Date
  LastUpdatedTime: Date
  PhysicalTableMap: JSON
  LogicalTableMap: JSON
  OutputColumns: [AwsQuickSightDescribeDataSetOutputDataSetOutputColumns]
  ImportMode: String
  ConsumedSpiceCapacityInBytes: JSON
  ColumnGroups: [AwsQuickSightS35]
  FieldFolders: JSON
  RowLevelPermissionDataSet: AwsQuickSightS3g
  ColumnLevelPermissionRules: [AwsQuickSightS3j]
}

type AwsQuickSightDescribeDataSetOutputDataSetOutputColumns {
  Name: String
  Description: String
  Type: String
}

type AwsQuickSightS35 {
  GeoSpatialColumnGroup: AwsQuickSightS35GeoSpatialColumnGroup
}

type AwsQuickSightS35GeoSpatialColumnGroup {
  Name: String!
  CountryCode: String!
  Columns: [String]!
}

type AwsQuickSightS3g {
  Namespace: String
  Arn: String!
  PermissionPolicy: String!
  FormatVersion: String
}

type AwsQuickSightS3j {
  Principals: [String]
  ColumnNames: [String]
}

input AwsQuickSightDescribeDataSetInput {
  AwsAccountId: String!
  DataSetId: String!
}

type AwsQuickSightDescribeDataSetPermissionsOutput {
  DataSetArn: String
  DataSetId: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeDataSetPermissionsInput {
  AwsAccountId: String!
  DataSetId: String!
}

type AwsQuickSightDescribeDataSourceOutput {
  DataSource: AwsQuickSightS8n
  RequestId: String
  Status: Int
}

type AwsQuickSightS8n {
  Arn: String
  DataSourceId: String
  Name: String
  Type: String
  Status: String
  CreatedTime: Date
  LastUpdatedTime: Date
  DataSourceParameters: AwsQuickSightS3q
  AlternateDataSourceParameters: [AwsQuickSightS3q]
  VpcConnectionProperties: AwsQuickSightS4x
  SslProperties: AwsQuickSightS4y
  ErrorInfo: AwsQuickSightS8nErrorInfo
}

type AwsQuickSightS3q {
  AmazonElasticsearchParameters: AwsQuickSightS3qAmazonElasticsearchParameters
  AthenaParameters: AwsQuickSightS3qAthenaParameters
  AuroraParameters: AwsQuickSightS3qAuroraParameters
  AuroraPostgreSqlParameters: AwsQuickSightS3qAuroraPostgreSqlParameters
  AwsIotAnalyticsParameters: AwsQuickSightS3qAwsIotAnalyticsParameters
  JiraParameters: AwsQuickSightS3qJiraParameters
  MariaDbParameters: AwsQuickSightS3qMariaDbParameters
  MySqlParameters: AwsQuickSightS3qMySqlParameters
  OracleParameters: AwsQuickSightS3qOracleParameters
  PostgreSqlParameters: AwsQuickSightS3qPostgreSqlParameters
  PrestoParameters: AwsQuickSightS3qPrestoParameters
  RdsParameters: AwsQuickSightS3qRdsParameters
  RedshiftParameters: AwsQuickSightS3qRedshiftParameters
  S3Parameters: AwsQuickSightS3qS3Parameters
  ServiceNowParameters: AwsQuickSightS3qServiceNowParameters
  SnowflakeParameters: AwsQuickSightS3qSnowflakeParameters
  SparkParameters: AwsQuickSightS3qSparkParameters
  SqlServerParameters: AwsQuickSightS3qSqlServerParameters
  TeradataParameters: AwsQuickSightS3qTeradataParameters
  TwitterParameters: AwsQuickSightS3qTwitterParameters
}

type AwsQuickSightS3qAmazonElasticsearchParameters {
  Domain: String!
}

type AwsQuickSightS3qAthenaParameters {
  WorkGroup: String
}

type AwsQuickSightS3qAuroraParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qAuroraPostgreSqlParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qAwsIotAnalyticsParameters {
  DataSetName: String!
}

type AwsQuickSightS3qJiraParameters {
  SiteBaseUrl: String!
}

type AwsQuickSightS3qMariaDbParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qMySqlParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qOracleParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qPostgreSqlParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qPrestoParameters {
  Host: String!
  Port: Int!
  Catalog: String!
}

type AwsQuickSightS3qRdsParameters {
  InstanceId: String!
  Database: String!
}

type AwsQuickSightS3qRedshiftParameters {
  Host: String
  Port: Int
  Database: String!
  ClusterId: String
}

type AwsQuickSightS3qS3Parameters {
  ManifestFileLocation: AwsQuickSightS3qS3ParametersManifestFileLocation!
}

type AwsQuickSightS3qS3ParametersManifestFileLocation {
  Bucket: String!
  Key: String!
}

type AwsQuickSightS3qServiceNowParameters {
  SiteBaseUrl: String!
}

type AwsQuickSightS3qSnowflakeParameters {
  Host: String!
  Database: String!
  Warehouse: String!
}

type AwsQuickSightS3qSparkParameters {
  Host: String!
  Port: Int!
}

type AwsQuickSightS3qSqlServerParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qTeradataParameters {
  Host: String!
  Port: Int!
  Database: String!
}

type AwsQuickSightS3qTwitterParameters {
  Query: String!
  MaxRows: Int!
}

type AwsQuickSightS4x {
  VpcConnectionArn: String!
}

type AwsQuickSightS4y {
  DisableSsl: Boolean
}

type AwsQuickSightS8nErrorInfo {
  Type: String
  Message: String
}

input AwsQuickSightDescribeDataSourceInput {
  AwsAccountId: String!
  DataSourceId: String!
}

type AwsQuickSightDescribeDataSourcePermissionsOutput {
  DataSourceArn: String
  DataSourceId: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeDataSourcePermissionsInput {
  AwsAccountId: String!
  DataSourceId: String!
}

type AwsQuickSightDescribeFolderOutput {
  Status: Int
  Folder: AwsQuickSightDescribeFolderOutputFolder
  RequestId: String
}

type AwsQuickSightDescribeFolderOutputFolder {
  FolderId: String
  Arn: String
  Name: String
  FolderType: String
  FolderPath: [String]
  CreatedTime: Date
  LastUpdatedTime: Date
}

input AwsQuickSightDescribeFolderInput {
  AwsAccountId: String!
  FolderId: String!
}

type AwsQuickSightDescribeFolderPermissionsOutput {
  Status: Int
  FolderId: String
  Arn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
}

input AwsQuickSightDescribeFolderPermissionsInput {
  AwsAccountId: String!
  FolderId: String!
}

type AwsQuickSightDescribeFolderResolvedPermissionsOutput {
  Status: Int
  FolderId: String
  Arn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
}

input AwsQuickSightDescribeFolderResolvedPermissionsInput {
  AwsAccountId: String!
  FolderId: String!
}

type AwsQuickSightDescribeGroupOutput {
  Group: AwsQuickSightS5c
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeGroupInput {
  GroupName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDescribeIAMPolicyAssignmentOutput {
  IAMPolicyAssignment: AwsQuickSightDescribeIAMPolicyAssignmentOutputIAMPolicyAssignment
  RequestId: String
  Status: Int
}

type AwsQuickSightDescribeIAMPolicyAssignmentOutputIAMPolicyAssignment {
  AwsAccountId: String
  AssignmentId: String
  AssignmentName: String
  PolicyArn: String
  Identities: JSON
  AssignmentStatus: String
}

input AwsQuickSightDescribeIAMPolicyAssignmentInput {
  AwsAccountId: String!
  AssignmentName: String!
  Namespace: String!
}

type AwsQuickSightDescribeIngestionOutput {
  Ingestion: AwsQuickSightS97
  RequestId: String
  Status: Int
}

type AwsQuickSightS97 {
  Arn: String!
  IngestionId: String
  IngestionStatus: String!
  ErrorInfo: AwsQuickSightS97ErrorInfo
  RowInfo: AwsQuickSightS97RowInfo
  QueueInfo: AwsQuickSightS97QueueInfo
  CreatedTime: Date!
  IngestionTimeInSeconds: JSON
  IngestionSizeInBytes: JSON
  RequestSource: String
  RequestType: String
}

type AwsQuickSightS97ErrorInfo {
  Type: String
  Message: String
}

type AwsQuickSightS97RowInfo {
  RowsIngested: JSON
  RowsDropped: JSON
}

type AwsQuickSightS97QueueInfo {
  WaitingOnIngestion: String!
  QueuedIngestion: String!
}

input AwsQuickSightDescribeIngestionInput {
  AwsAccountId: String!
  DataSetId: String!
  IngestionId: String!
}

type AwsQuickSightDescribeNamespaceOutput {
  Namespace: AwsQuickSightS9i
  RequestId: String
  Status: Int
}

type AwsQuickSightS9i {
  Name: String
  Arn: String
  CapacityRegion: String
  CreationStatus: String
  IdentityStore: String
  NamespaceError: AwsQuickSightS9iNamespaceError
}

type AwsQuickSightS9iNamespaceError {
  Type: String
  Message: String
}

input AwsQuickSightDescribeNamespaceInput {
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightDescribeTemplateOutput {
  Template: AwsQuickSightDescribeTemplateOutputTemplate
  Status: Int
  RequestId: String
}

type AwsQuickSightDescribeTemplateOutputTemplate {
  Arn: String
  Name: String
  Version: AwsQuickSightDescribeTemplateOutputTemplateVersion
  TemplateId: String
  LastUpdatedTime: Date
  CreatedTime: Date
}

type AwsQuickSightDescribeTemplateOutputTemplateVersion {
  CreatedTime: Date
  Errors: [AwsQuickSightDescribeTemplateOutputTemplateVersionErrors]
  VersionNumber: JSON
  Status: String
  DataSetConfigurations: [AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurations]
  Description: String
  SourceEntityArn: String
  ThemeArn: String
  Sheets: [AwsQuickSightS81]
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionErrors {
  Type: String
  Message: String
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurations {
  Placeholder: String
  DataSetSchema: AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsDataSetSchema
  ColumnGroupSchemaList: [AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsColumnGroupSchemaList]
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsDataSetSchema {
  ColumnSchemaList: [AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsDataSetSchemaColumnSchemaList]
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsDataSetSchemaColumnSchemaList {
  Name: String
  DataType: String
  GeographicRole: String
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsColumnGroupSchemaList {
  Name: String
  ColumnGroupColumnSchemaList: [AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsColumnGroupSchemaListColumnGroupColumnSchemaList]
}

type AwsQuickSightDescribeTemplateOutputTemplateVersionDataSetConfigurationsColumnGroupSchemaListColumnGroupColumnSchemaList {
  Name: String
}

input AwsQuickSightDescribeTemplateInput {
  AwsAccountId: String!
  TemplateId: String!
  VersionNumber: JSON
  AliasName: String
}

type AwsQuickSightDescribeTemplateAliasOutput {
  TemplateAlias: AwsQuickSightS65
  Status: Int
  RequestId: String
}

input AwsQuickSightDescribeTemplateAliasInput {
  AwsAccountId: String!
  TemplateId: String!
  AliasName: String!
}

type AwsQuickSightDescribeTemplatePermissionsOutput {
  TemplateId: String
  TemplateArn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeTemplatePermissionsInput {
  AwsAccountId: String!
  TemplateId: String!
}

type AwsQuickSightDescribeThemeOutput {
  Theme: AwsQuickSightDescribeThemeOutputTheme
  Status: Int
  RequestId: String
}

type AwsQuickSightDescribeThemeOutputTheme {
  Arn: String
  Name: String
  ThemeId: String
  Version: AwsQuickSightDescribeThemeOutputThemeVersion
  CreatedTime: Date
  LastUpdatedTime: Date
  Type: String
}

type AwsQuickSightDescribeThemeOutputThemeVersion {
  VersionNumber: JSON
  Arn: String
  Description: String
  BaseThemeId: String
  CreatedTime: Date
  Configuration: AwsQuickSightS68
  Errors: [AwsQuickSightDescribeThemeOutputThemeVersionErrors]
  Status: String
}

type AwsQuickSightS68 {
  DataColorPalette: AwsQuickSightS68DataColorPalette
  UIColorPalette: AwsQuickSightS68UIColorPalette
  Sheet: AwsQuickSightS68Sheet
}

type AwsQuickSightS68DataColorPalette {
  Colors: [String]
  MinMaxGradient: [String]
  EmptyFillColor: String
}

type AwsQuickSightS68UIColorPalette {
  PrimaryForeground: String
  PrimaryBackground: String
  SecondaryForeground: String
  SecondaryBackground: String
  Accent: String
  AccentForeground: String
  Danger: String
  DangerForeground: String
  Warning: String
  WarningForeground: String
  Success: String
  SuccessForeground: String
  Dimension: String
  DimensionForeground: String
  Measure: String
  MeasureForeground: String
}

type AwsQuickSightS68Sheet {
  Tile: AwsQuickSightS68SheetTile
  TileLayout: AwsQuickSightS68SheetTileLayout
}

type AwsQuickSightS68SheetTile {
  Border: AwsQuickSightS68SheetTileBorder
}

type AwsQuickSightS68SheetTileBorder {
  Show: Boolean
}

type AwsQuickSightS68SheetTileLayout {
  Gutter: AwsQuickSightS68SheetTileLayoutGutter
  Margin: AwsQuickSightS68SheetTileLayoutMargin
}

type AwsQuickSightS68SheetTileLayoutGutter {
  Show: Boolean
}

type AwsQuickSightS68SheetTileLayoutMargin {
  Show: Boolean
}

type AwsQuickSightDescribeThemeOutputThemeVersionErrors {
  Type: String
  Message: String
}

input AwsQuickSightDescribeThemeInput {
  AwsAccountId: String!
  ThemeId: String!
  VersionNumber: JSON
  AliasName: String
}

type AwsQuickSightDescribeThemeAliasOutput {
  ThemeAlias: AwsQuickSightS6n
  Status: Int
  RequestId: String
}

input AwsQuickSightDescribeThemeAliasInput {
  AwsAccountId: String!
  ThemeId: String!
  AliasName: String!
}

type AwsQuickSightDescribeThemePermissionsOutput {
  ThemeId: String
  ThemeArn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightDescribeThemePermissionsInput {
  AwsAccountId: String!
  ThemeId: String!
}

type AwsQuickSightDescribeUserOutput {
  User: AwsQuickSightSak
  RequestId: String
  Status: Int
}

type AwsQuickSightSak {
  Arn: String
  UserName: String
  Email: String
  Role: String
  IdentityType: String
  Active: Boolean
  PrincipalId: String
  CustomPermissionsName: String
  ExternalLoginFederationProviderType: String
  ExternalLoginFederationProviderUrl: String
  ExternalLoginId: String
}

input AwsQuickSightDescribeUserInput {
  UserName: String!
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightGetDashboardEmbedUrlOutput {
  EmbedUrl: String
  Status: Int
  RequestId: String
}

input AwsQuickSightGetDashboardEmbedUrlInput {
  AwsAccountId: String!
  DashboardId: String!
  IdentityType: String!
  SessionLifetimeInMinutes: JSON
  UndoRedoDisabled: Boolean
  ResetDisabled: Boolean
  StatePersistenceEnabled: Boolean
  UserArn: String
  Namespace: String
  AdditionalDashboardIds: [String]
}

type AwsQuickSightGetSessionEmbedUrlOutput {
  EmbedUrl: String
  Status: Int
  RequestId: String
}

input AwsQuickSightGetSessionEmbedUrlInput {
  AwsAccountId: String!
  EntryPoint: String
  SessionLifetimeInMinutes: JSON
  UserArn: String
}

type AwsQuickSightListAnalysesOutput {
  AnalysisSummaryList: [AwsQuickSightSb0]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightSb0 {
  Arn: String
  AnalysisId: String
  Name: String
  Status: String
  CreatedTime: Date
  LastUpdatedTime: Date
}

input AwsQuickSightListAnalysesInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListDashboardVersionsOutput {
  DashboardVersionSummaryList: [AwsQuickSightListDashboardVersionsOutputDashboardVersionSummaryList]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightListDashboardVersionsOutputDashboardVersionSummaryList {
  Arn: String
  CreatedTime: Date
  VersionNumber: JSON
  Status: String
  SourceEntityArn: String
  Description: String
}

input AwsQuickSightListDashboardVersionsInput {
  AwsAccountId: String!
  DashboardId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListDashboardsOutput {
  DashboardSummaryList: [AwsQuickSightSb8]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightSb8 {
  Arn: String
  DashboardId: String
  Name: String
  CreatedTime: Date
  LastUpdatedTime: Date
  PublishedVersionNumber: JSON
  LastPublishedTime: Date
}

input AwsQuickSightListDashboardsInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListDataSetsOutput {
  DataSetSummaries: [AwsQuickSightListDataSetsOutputDataSetSummaries]
  NextToken: String
  RequestId: String
  Status: Int
}

type AwsQuickSightListDataSetsOutputDataSetSummaries {
  Arn: String
  DataSetId: String
  Name: String
  CreatedTime: Date
  LastUpdatedTime: Date
  ImportMode: String
  RowLevelPermissionDataSet: AwsQuickSightS3g
  ColumnLevelPermissionRulesApplied: Boolean
}

input AwsQuickSightListDataSetsInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListDataSourcesOutput {
  DataSources: [AwsQuickSightS8n]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListDataSourcesInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListFolderMembersOutput {
  Status: Int
  FolderMemberList: [AwsQuickSightListFolderMembersOutputFolderMemberList]
  NextToken: String
  RequestId: String
}

type AwsQuickSightListFolderMembersOutputFolderMemberList {
  MemberId: String
  MemberArn: String
}

input AwsQuickSightListFolderMembersInput {
  AwsAccountId: String!
  FolderId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListFoldersOutput {
  Status: Int
  FolderSummaryList: [AwsQuickSightSbn]
  NextToken: String
  RequestId: String
}

type AwsQuickSightSbn {
  Arn: String
  FolderId: String
  Name: String
  FolderType: String
  CreatedTime: Date
  LastUpdatedTime: Date
}

input AwsQuickSightListFoldersInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListGroupMembershipsOutput {
  GroupMemberList: [AwsQuickSightS5g]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListGroupMembershipsInput {
  GroupName: String!
  NextToken: String
  MaxResults: Int
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightListGroupsOutput {
  GroupList: [AwsQuickSightS5c]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListGroupsInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
  Namespace: String!
}

type AwsQuickSightListIAMPolicyAssignmentsOutput {
  IAMPolicyAssignments: [AwsQuickSightListIAMPolicyAssignmentsOutputIAMPolicyAssignments]
  NextToken: String
  RequestId: String
  Status: Int
}

type AwsQuickSightListIAMPolicyAssignmentsOutputIAMPolicyAssignments {
  AssignmentName: String
  AssignmentStatus: String
}

input AwsQuickSightListIAMPolicyAssignmentsInput {
  AwsAccountId: String!
  AssignmentStatus: String
  Namespace: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListIAMPolicyAssignmentsForUserOutput {
  ActiveAssignments: [AwsQuickSightListIAMPolicyAssignmentsForUserOutputActiveAssignments]
  RequestId: String
  NextToken: String
  Status: Int
}

type AwsQuickSightListIAMPolicyAssignmentsForUserOutputActiveAssignments {
  AssignmentName: String
  PolicyArn: String
}

input AwsQuickSightListIAMPolicyAssignmentsForUserInput {
  AwsAccountId: String!
  UserName: String!
  NextToken: String
  MaxResults: Int
  Namespace: String!
}

type AwsQuickSightListIngestionsOutput {
  Ingestions: [AwsQuickSightS97]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListIngestionsInput {
  DataSetId: String!
  NextToken: String
  AwsAccountId: String!
  MaxResults: Int
}

type AwsQuickSightListNamespacesOutput {
  Namespaces: [AwsQuickSightS9i]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListNamespacesInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListTagsForResourceOutput {
  Tags: [AwsQuickSightSb]
  RequestId: String
  Status: Int
}

type AwsQuickSightSb {
  Key: String!
  Value: String!
}

input AwsQuickSightListTagsForResourceInput {
  ResourceArn: String!
}

type AwsQuickSightListTemplateAliasesOutput {
  TemplateAliasList: [AwsQuickSightS65]
  Status: Int
  RequestId: String
  NextToken: String
}

input AwsQuickSightListTemplateAliasesInput {
  AwsAccountId: String!
  TemplateId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListTemplateVersionsOutput {
  TemplateVersionSummaryList: [AwsQuickSightListTemplateVersionsOutputTemplateVersionSummaryList]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightListTemplateVersionsOutputTemplateVersionSummaryList {
  Arn: String
  VersionNumber: JSON
  CreatedTime: Date
  Status: String
  Description: String
}

input AwsQuickSightListTemplateVersionsInput {
  AwsAccountId: String!
  TemplateId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListTemplatesOutput {
  TemplateSummaryList: [AwsQuickSightListTemplatesOutputTemplateSummaryList]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightListTemplatesOutputTemplateSummaryList {
  Arn: String
  TemplateId: String
  Name: String
  LatestVersionNumber: JSON
  CreatedTime: Date
  LastUpdatedTime: Date
}

input AwsQuickSightListTemplatesInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListThemeAliasesOutput {
  ThemeAliasList: [AwsQuickSightS6n]
  Status: Int
  RequestId: String
  NextToken: String
}

input AwsQuickSightListThemeAliasesInput {
  AwsAccountId: String!
  ThemeId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListThemeVersionsOutput {
  ThemeVersionSummaryList: [AwsQuickSightListThemeVersionsOutputThemeVersionSummaryList]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightListThemeVersionsOutputThemeVersionSummaryList {
  VersionNumber: JSON
  Arn: String
  Description: String
  CreatedTime: Date
  Status: String
}

input AwsQuickSightListThemeVersionsInput {
  AwsAccountId: String!
  ThemeId: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListThemesOutput {
  ThemeSummaryList: [AwsQuickSightListThemesOutputThemeSummaryList]
  NextToken: String
  Status: Int
  RequestId: String
}

type AwsQuickSightListThemesOutputThemeSummaryList {
  Arn: String
  Name: String
  ThemeId: String
  LatestVersionNumber: JSON
  CreatedTime: Date
  LastUpdatedTime: Date
}

input AwsQuickSightListThemesInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
  Type: String
}

type AwsQuickSightListUserGroupsOutput {
  GroupList: [AwsQuickSightS5c]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListUserGroupsInput {
  UserName: String!
  AwsAccountId: String!
  Namespace: String!
  NextToken: String
  MaxResults: Int
}

type AwsQuickSightListUsersOutput {
  UserList: [AwsQuickSightSak]
  NextToken: String
  RequestId: String
  Status: Int
}

input AwsQuickSightListUsersInput {
  AwsAccountId: String!
  NextToken: String
  MaxResults: Int
  Namespace: String!
}

type AwsQuickSightRegisterUserOutput {
  User: AwsQuickSightSak
  UserInvitationUrl: String
  RequestId: String
  Status: Int
}

input AwsQuickSightRegisterUserInput {
  IdentityType: String!
  Email: String!
  UserRole: String!
  IamArn: String
  SessionName: String
  AwsAccountId: String!
  Namespace: String!
  UserName: String
  CustomPermissionsName: String
  ExternalLoginFederationProviderType: String
  CustomFederationProviderUrl: String
  ExternalLoginId: String
}

type AwsQuickSightRestoreAnalysisOutput {
  Status: Int
  Arn: String
  AnalysisId: String
  RequestId: String
}

input AwsQuickSightRestoreAnalysisInput {
  AwsAccountId: String!
  AnalysisId: String!
}

type AwsQuickSightSearchAnalysesOutput {
  AnalysisSummaryList: [AwsQuickSightSb0]
  NextToken: String
  Status: Int
  RequestId: String
}

input AwsQuickSightSearchAnalysesInput {
  AwsAccountId: String!
  Filters: [AwsQuickSightSearchAnalysesFiltersInput]!
  NextToken: String
  MaxResults: Int
}

input AwsQuickSightSearchAnalysesFiltersInput {
  Operator: String
  Name: String
  Value: String
}

type AwsQuickSightSearchDashboardsOutput {
  DashboardSummaryList: [AwsQuickSightSb8]
  NextToken: String
  Status: Int
  RequestId: String
}

input AwsQuickSightSearchDashboardsInput {
  AwsAccountId: String!
  Filters: [AwsQuickSightSearchDashboardsFiltersInput]!
  NextToken: String
  MaxResults: Int
}

input AwsQuickSightSearchDashboardsFiltersInput {
  Operator: String!
  Name: String
  Value: String
}

type AwsQuickSightSearchFoldersOutput {
  Status: Int
  FolderSummaryList: [AwsQuickSightSbn]
  NextToken: String
  RequestId: String
}

input AwsQuickSightSearchFoldersInput {
  AwsAccountId: String!
  Filters: [AwsQuickSightSearchFoldersFiltersInput]!
  NextToken: String
  MaxResults: Int
}

input AwsQuickSightSearchFoldersFiltersInput {
  Operator: String
  Name: String
  Value: String
}

type AwsQuickSightTagResourceOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightTagResourceInput {
  ResourceArn: String!
  Tags: [AwsQuickSightSbInput]!
}

type AwsQuickSightUntagResourceOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsQuickSightUpdateAccountCustomizationOutput {
  Arn: String
  AwsAccountId: String
  Namespace: String
  AccountCustomization: AwsQuickSightSa
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateAccountCustomizationInput {
  AwsAccountId: String!
  Namespace: String
  AccountCustomization: AwsQuickSightSaInput!
}

type AwsQuickSightUpdateAccountSettingsOutput {
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateAccountSettingsInput {
  AwsAccountId: String!
  DefaultNamespace: String!
  NotificationEmail: String
}

type AwsQuickSightUpdateAnalysisOutput {
  Arn: String
  AnalysisId: String
  UpdateStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateAnalysisInput {
  AwsAccountId: String!
  AnalysisId: String!
  Name: String!
  Parameters: AwsQuickSightSkInput
  SourceEntity: AwsQuickSightS15Input!
  ThemeArn: String
}

type AwsQuickSightUpdateAnalysisPermissionsOutput {
  AnalysisArn: String
  AnalysisId: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateAnalysisPermissionsInput {
  AwsAccountId: String!
  AnalysisId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateDashboardOutput {
  Arn: String
  VersionArn: String
  DashboardId: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateDashboardInput {
  AwsAccountId: String!
  DashboardId: String!
  Name: String!
  SourceEntity: AwsQuickSightS1dInput!
  Parameters: AwsQuickSightSkInput
  VersionDescription: String
  DashboardPublishOptions: AwsQuickSightS1gInput
  ThemeArn: String
}

type AwsQuickSightUpdateDashboardPermissionsOutput {
  DashboardArn: String
  DashboardId: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateDashboardPermissionsInput {
  AwsAccountId: String!
  DashboardId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateDashboardPublishedVersionOutput {
  DashboardId: String
  DashboardArn: String
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateDashboardPublishedVersionInput {
  AwsAccountId: String!
  DashboardId: String!
  VersionNumber: JSON!
}

type AwsQuickSightUpdateDataSetOutput {
  Arn: String
  DataSetId: String
  IngestionArn: String
  IngestionId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateDataSetInput {
  AwsAccountId: String!
  DataSetId: String!
  Name: String!
  PhysicalTableMap: JSON!
  LogicalTableMap: JSON
  ImportMode: String!
  ColumnGroups: [AwsQuickSightS35Input]
  FieldFolders: JSON
  RowLevelPermissionDataSet: AwsQuickSightS3gInput
  ColumnLevelPermissionRules: [AwsQuickSightS3jInput]
}

type AwsQuickSightUpdateDataSetPermissionsOutput {
  DataSetArn: String
  DataSetId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateDataSetPermissionsInput {
  AwsAccountId: String!
  DataSetId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateDataSourceOutput {
  Arn: String
  DataSourceId: String
  UpdateStatus: String
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateDataSourceInput {
  AwsAccountId: String!
  DataSourceId: String!
  Name: String!
  DataSourceParameters: AwsQuickSightS3qInput
  Credentials: AwsQuickSightS4rInput
  VpcConnectionProperties: AwsQuickSightS4xInput
  SslProperties: AwsQuickSightS4yInput
}

type AwsQuickSightUpdateDataSourcePermissionsOutput {
  DataSourceArn: String
  DataSourceId: String
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateDataSourcePermissionsInput {
  AwsAccountId: String!
  DataSourceId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateFolderOutput {
  Status: Int
  Arn: String
  FolderId: String
  RequestId: String
}

input AwsQuickSightUpdateFolderInput {
  AwsAccountId: String!
  FolderId: String!
  Name: String!
}

type AwsQuickSightUpdateFolderPermissionsOutput {
  Status: Int
  Arn: String
  FolderId: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
}

input AwsQuickSightUpdateFolderPermissionsInput {
  AwsAccountId: String!
  FolderId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateGroupOutput {
  Group: AwsQuickSightS5c
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateGroupInput {
  GroupName: String!
  Description: String
  AwsAccountId: String!
  Namespace: String!
}

type AwsQuickSightUpdateIAMPolicyAssignmentOutput {
  AssignmentName: String
  AssignmentId: String
  PolicyArn: String
  Identities: JSON
  AssignmentStatus: String
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateIAMPolicyAssignmentInput {
  AwsAccountId: String!
  AssignmentName: String!
  Namespace: String!
  AssignmentStatus: String
  PolicyArn: String
  Identities: JSON
}

type AwsQuickSightUpdateTemplateOutput {
  TemplateId: String
  Arn: String
  VersionArn: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateTemplateInput {
  AwsAccountId: String!
  TemplateId: String!
  SourceEntity: AwsQuickSightS5xInput!
  VersionDescription: String
  Name: String
}

type AwsQuickSightUpdateTemplateAliasOutput {
  TemplateAlias: AwsQuickSightS65
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateTemplateAliasInput {
  AwsAccountId: String!
  TemplateId: String!
  AliasName: String!
  TemplateVersionNumber: JSON!
}

type AwsQuickSightUpdateTemplatePermissionsOutput {
  TemplateId: String
  TemplateArn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateTemplatePermissionsInput {
  AwsAccountId: String!
  TemplateId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateThemeOutput {
  ThemeId: String
  Arn: String
  VersionArn: String
  CreationStatus: String
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateThemeInput {
  AwsAccountId: String!
  ThemeId: String!
  Name: String
  BaseThemeId: String!
  VersionDescription: String
  Configuration: AwsQuickSightS68Input
}

type AwsQuickSightUpdateThemeAliasOutput {
  ThemeAlias: AwsQuickSightS6n
  Status: Int
  RequestId: String
}

input AwsQuickSightUpdateThemeAliasInput {
  AwsAccountId: String!
  ThemeId: String!
  AliasName: String!
  ThemeVersionNumber: JSON!
}

type AwsQuickSightUpdateThemePermissionsOutput {
  ThemeId: String
  ThemeArn: String
  Permissions: [AwsQuickSightS12]
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateThemePermissionsInput {
  AwsAccountId: String!
  ThemeId: String!
  GrantPermissions: [AwsQuickSightS12Input]
  RevokePermissions: [AwsQuickSightS12Input]
}

type AwsQuickSightUpdateUserOutput {
  User: AwsQuickSightSak
  RequestId: String
  Status: Int
}

input AwsQuickSightUpdateUserInput {
  UserName: String!
  AwsAccountId: String!
  Namespace: String!
  Email: String!
  Role: String!
  CustomPermissionsName: String
  UnapplyCustomPermissions: Boolean
  ExternalLoginFederationProviderType: String
  CustomFederationProviderUrl: String
  ExternalLoginId: String
}

"""AWS Resource Access Manager (2018-01-04)"""
type AwsRAM {
  acceptResourceShareInvitation(input: AwsRAMAcceptResourceShareInvitationInput!, config: AwsConfig): AwsRAMAcceptResourceShareInvitationOutput
  associateResourceShare(input: AwsRAMAssociateResourceShareInput!, config: AwsConfig): AwsRAMAssociateResourceShareOutput
  associateResourceSharePermission(input: AwsRAMAssociateResourceSharePermissionInput!, config: AwsConfig): AwsRAMAssociateResourceSharePermissionOutput
  createResourceShare(input: AwsRAMCreateResourceShareInput!, config: AwsConfig): AwsRAMCreateResourceShareOutput
  deleteResourceShare(input: AwsRAMDeleteResourceShareInput!, config: AwsConfig): AwsRAMDeleteResourceShareOutput
  disassociateResourceShare(input: AwsRAMDisassociateResourceShareInput!, config: AwsConfig): AwsRAMDisassociateResourceShareOutput
  disassociateResourceSharePermission(input: AwsRAMDisassociateResourceSharePermissionInput!, config: AwsConfig): AwsRAMDisassociateResourceSharePermissionOutput
  enableSharingWithAwsOrganization(input: JSON, config: AwsConfig): AwsRAMEnableSharingWithAwsOrganizationOutput
  getPermission(input: AwsRAMGetPermissionInput!, config: AwsConfig): AwsRAMGetPermissionOutput
  getResourcePolicies(input: AwsRAMGetResourcePoliciesInput!, config: AwsConfig): AwsRAMGetResourcePoliciesOutput
  getResourceShareAssociations(input: AwsRAMGetResourceShareAssociationsInput!, config: AwsConfig): AwsRAMGetResourceShareAssociationsOutput
  getResourceShareInvitations(input: AwsRAMGetResourceShareInvitationsInput, config: AwsConfig): AwsRAMGetResourceShareInvitationsOutput
  getResourceShares(input: AwsRAMGetResourceSharesInput!, config: AwsConfig): AwsRAMGetResourceSharesOutput
  listPendingInvitationResources(input: AwsRAMListPendingInvitationResourcesInput!, config: AwsConfig): AwsRAMListPendingInvitationResourcesOutput
  listPermissions(input: AwsRAMListPermissionsInput, config: AwsConfig): AwsRAMListPermissionsOutput
  listPrincipals(input: AwsRAMListPrincipalsInput!, config: AwsConfig): AwsRAMListPrincipalsOutput
  listResourceSharePermissions(input: AwsRAMListResourceSharePermissionsInput!, config: AwsConfig): AwsRAMListResourceSharePermissionsOutput
  listResourceTypes(input: AwsRAMListResourceTypesInput, config: AwsConfig): AwsRAMListResourceTypesOutput
  listResources(input: AwsRAMListResourcesInput!, config: AwsConfig): AwsRAMListResourcesOutput
  promoteResourceShareCreatedFromPolicy(input: AwsRAMPromoteResourceShareCreatedFromPolicyInput!, config: AwsConfig): AwsRAMPromoteResourceShareCreatedFromPolicyOutput
  rejectResourceShareInvitation(input: AwsRAMRejectResourceShareInvitationInput!, config: AwsConfig): AwsRAMRejectResourceShareInvitationOutput
  tagResource(input: AwsRAMTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsRAMUntagResourceInput!, config: AwsConfig): JSON
  updateResourceShare(input: AwsRAMUpdateResourceShareInput!, config: AwsConfig): AwsRAMUpdateResourceShareOutput
}

type AwsRAMAcceptResourceShareInvitationOutput {
  resourceShareInvitation: AwsRAMS4
  clientToken: String
}

type AwsRAMS4 {
  resourceShareInvitationArn: String
  resourceShareName: String
  resourceShareArn: String
  senderAccountId: String
  receiverAccountId: String
  invitationTimestamp: Date
  status: String
  resourceShareAssociations: [AwsRAMS7]
  receiverArn: String
}

type AwsRAMS7 {
  resourceShareArn: String
  resourceShareName: String
  associatedEntity: String
  associationType: String
  status: String
  statusMessage: String
  creationTime: Date
  lastUpdatedTime: Date
  external: Boolean
}

input AwsRAMAcceptResourceShareInvitationInput {
  resourceShareInvitationArn: String!
  clientToken: String
}

type AwsRAMAssociateResourceShareOutput {
  resourceShareAssociations: [AwsRAMS7]
  clientToken: String
}

input AwsRAMAssociateResourceShareInput {
  resourceShareArn: String!
  resourceArns: [String]
  principals: [String]
  clientToken: String
}

type AwsRAMAssociateResourceSharePermissionOutput {
  returnValue: Boolean
  clientToken: String
}

input AwsRAMAssociateResourceSharePermissionInput {
  resourceShareArn: String!
  permissionArn: String!
  replace: Boolean
  clientToken: String
  permissionVersion: Int
}

type AwsRAMCreateResourceShareOutput {
  resourceShare: AwsRAMSq
  clientToken: String
}

type AwsRAMSq {
  resourceShareArn: String
  name: String
  owningAccountId: String
  allowExternalPrincipals: Boolean
  status: String
  statusMessage: String
  tags: [AwsRAMSk]
  creationTime: Date
  lastUpdatedTime: Date
  featureSet: String
}

type AwsRAMSk {
  key: String
  value: String
}

input AwsRAMCreateResourceShareInput {
  name: String!
  resourceArns: [String]
  principals: [String]
  tags: [AwsRAMSkInput]
  allowExternalPrincipals: Boolean
  clientToken: String
  permissionArns: [String]
}

input AwsRAMSkInput {
  key: String
  value: String
}

type AwsRAMDeleteResourceShareOutput {
  returnValue: Boolean
  clientToken: String
}

input AwsRAMDeleteResourceShareInput {
  resourceShareArn: String!
  clientToken: String
}

type AwsRAMDisassociateResourceShareOutput {
  resourceShareAssociations: [AwsRAMS7]
  clientToken: String
}

input AwsRAMDisassociateResourceShareInput {
  resourceShareArn: String!
  resourceArns: [String]
  principals: [String]
  clientToken: String
}

type AwsRAMDisassociateResourceSharePermissionOutput {
  returnValue: Boolean
  clientToken: String
}

input AwsRAMDisassociateResourceSharePermissionInput {
  resourceShareArn: String!
  permissionArn: String!
  clientToken: String
}

type AwsRAMEnableSharingWithAwsOrganizationOutput {
  returnValue: Boolean
}

type AwsRAMGetPermissionOutput {
  permission: AwsRAMGetPermissionOutputPermission
}

type AwsRAMGetPermissionOutputPermission {
  arn: String
  version: String
  defaultVersion: Boolean
  name: String
  resourceType: String
  permission: String
  creationTime: Date
  lastUpdatedTime: Date
  isResourceTypeDefault: Boolean
}

input AwsRAMGetPermissionInput {
  permissionArn: String!
  permissionVersion: Int
}

type AwsRAMGetResourcePoliciesOutput {
  policies: [String]
  nextToken: String
}

input AwsRAMGetResourcePoliciesInput {
  resourceArns: [String]!
  principal: String
  nextToken: String
  maxResults: Int
}

type AwsRAMGetResourceShareAssociationsOutput {
  resourceShareAssociations: [AwsRAMS7]
  nextToken: String
}

input AwsRAMGetResourceShareAssociationsInput {
  associationType: String!
  resourceShareArns: [String]
  resourceArn: String
  principal: String
  associationStatus: String
  nextToken: String
  maxResults: Int
}

type AwsRAMGetResourceShareInvitationsOutput {
  resourceShareInvitations: [AwsRAMS4]
  nextToken: String
}

input AwsRAMGetResourceShareInvitationsInput {
  resourceShareInvitationArns: [String]
  resourceShareArns: [String]
  nextToken: String
  maxResults: Int
}

type AwsRAMGetResourceSharesOutput {
  resourceShares: [AwsRAMSq]
  nextToken: String
}

input AwsRAMGetResourceSharesInput {
  resourceShareArns: [String]
  resourceShareStatus: String
  resourceOwner: String!
  name: String
  tagFilters: [AwsRAMGetResourceSharesTagFiltersInput]
  nextToken: String
  maxResults: Int
  permissionArn: String
}

input AwsRAMGetResourceSharesTagFiltersInput {
  tagKey: String
  tagValues: [String]
}

type AwsRAMListPendingInvitationResourcesOutput {
  resources: [AwsRAMS1p]
  nextToken: String
}

type AwsRAMS1p {
  arn: String
  type: String
  resourceShareArn: String
  resourceGroupArn: String
  status: String
  statusMessage: String
  creationTime: Date
  lastUpdatedTime: Date
}

input AwsRAMListPendingInvitationResourcesInput {
  resourceShareInvitationArn: String!
  nextToken: String
  maxResults: Int
}

type AwsRAMListPermissionsOutput {
  permissions: [AwsRAMS1u]
  nextToken: String
}

type AwsRAMS1u {
  arn: String
  version: String
  defaultVersion: Boolean
  name: String
  resourceType: String
  status: String
  creationTime: Date
  lastUpdatedTime: Date
  isResourceTypeDefault: Boolean
}

input AwsRAMListPermissionsInput {
  resourceType: String
  nextToken: String
  maxResults: Int
}

type AwsRAMListPrincipalsOutput {
  principals: [AwsRAMListPrincipalsOutputPrincipals]
  nextToken: String
}

type AwsRAMListPrincipalsOutputPrincipals {
  id: String
  resourceShareArn: String
  creationTime: Date
  lastUpdatedTime: Date
  external: Boolean
}

input AwsRAMListPrincipalsInput {
  resourceOwner: String!
  resourceArn: String
  principals: [String]
  resourceType: String
  resourceShareArns: [String]
  nextToken: String
  maxResults: Int
}

type AwsRAMListResourceSharePermissionsOutput {
  permissions: [AwsRAMS1u]
  nextToken: String
}

input AwsRAMListResourceSharePermissionsInput {
  resourceShareArn: String!
  nextToken: String
  maxResults: Int
}

type AwsRAMListResourceTypesOutput {
  resourceTypes: [AwsRAMListResourceTypesOutputResourceTypes]
  nextToken: String
}

type AwsRAMListResourceTypesOutputResourceTypes {
  resourceType: String
  serviceName: String
}

input AwsRAMListResourceTypesInput {
  nextToken: String
  maxResults: Int
}

type AwsRAMListResourcesOutput {
  resources: [AwsRAMS1p]
  nextToken: String
}

input AwsRAMListResourcesInput {
  resourceOwner: String!
  principal: String
  resourceType: String
  resourceArns: [String]
  resourceShareArns: [String]
  nextToken: String
  maxResults: Int
}

type AwsRAMPromoteResourceShareCreatedFromPolicyOutput {
  returnValue: Boolean
}

input AwsRAMPromoteResourceShareCreatedFromPolicyInput {
  resourceShareArn: String!
}

type AwsRAMRejectResourceShareInvitationOutput {
  resourceShareInvitation: AwsRAMS4
  clientToken: String
}

input AwsRAMRejectResourceShareInvitationInput {
  resourceShareInvitationArn: String!
  clientToken: String
}

input AwsRAMTagResourceInput {
  resourceShareArn: String!
  tags: [AwsRAMSkInput]!
}

input AwsRAMUntagResourceInput {
  resourceShareArn: String!
  tagKeys: [String]!
}

type AwsRAMUpdateResourceShareOutput {
  resourceShare: AwsRAMSq
  clientToken: String
}

input AwsRAMUpdateResourceShareInput {
  resourceShareArn: String!
  name: String
  allowExternalPrincipals: Boolean
  clientToken: String
}

"""Amazon Relational Database Service (2014-10-31)"""
type AwsRDS {
  addRoleToDBCluster(input: AwsRDSAddRoleToDBClusterInput!, config: AwsConfig): JSON
  addRoleToDBInstance(input: AwsRDSAddRoleToDBInstanceInput!, config: AwsConfig): JSON
  addSourceIdentifierToSubscription(input: AwsRDSAddSourceIdentifierToSubscriptionInput!, config: AwsConfig): AwsRDSAddSourceIdentifierToSubscriptionOutput
  addTagsToResource(input: AwsRDSAddTagsToResourceInput!, config: AwsConfig): JSON
  applyPendingMaintenanceAction(input: AwsRDSApplyPendingMaintenanceActionInput!, config: AwsConfig): AwsRDSApplyPendingMaintenanceActionOutput
  authorizeDBSecurityGroupIngress(input: AwsRDSAuthorizeDBSecurityGroupIngressInput!, config: AwsConfig): AwsRDSAuthorizeDBSecurityGroupIngressOutput
  backtrackDBCluster(input: AwsRDSBacktrackDBClusterInput!, config: AwsConfig): JSON
  cancelExportTask(input: AwsRDSCancelExportTaskInput!, config: AwsConfig): JSON
  copyDBClusterParameterGroup(input: AwsRDSCopyDBClusterParameterGroupInput!, config: AwsConfig): AwsRDSCopyDBClusterParameterGroupOutput
  copyDBClusterSnapshot(input: AwsRDSCopyDBClusterSnapshotInput!, config: AwsConfig): AwsRDSCopyDBClusterSnapshotOutput
  copyDBParameterGroup(input: AwsRDSCopyDBParameterGroupInput!, config: AwsConfig): AwsRDSCopyDBParameterGroupOutput
  copyDBSnapshot(input: AwsRDSCopyDBSnapshotInput!, config: AwsConfig): AwsRDSCopyDBSnapshotOutput
  copyOptionGroup(input: AwsRDSCopyOptionGroupInput!, config: AwsConfig): AwsRDSCopyOptionGroupOutput
  createCustomAvailabilityZone(input: AwsRDSCreateCustomAvailabilityZoneInput!, config: AwsConfig): AwsRDSCreateCustomAvailabilityZoneOutput
  createDBCluster(input: AwsRDSCreateDBClusterInput!, config: AwsConfig): AwsRDSCreateDBClusterOutput
  createDBClusterEndpoint(input: AwsRDSCreateDBClusterEndpointInput!, config: AwsConfig): JSON
  createDBClusterParameterGroup(input: AwsRDSCreateDBClusterParameterGroupInput!, config: AwsConfig): AwsRDSCreateDBClusterParameterGroupOutput
  createDBClusterSnapshot(input: AwsRDSCreateDBClusterSnapshotInput!, config: AwsConfig): AwsRDSCreateDBClusterSnapshotOutput
  createDBInstance(input: AwsRDSCreateDBInstanceInput!, config: AwsConfig): AwsRDSCreateDBInstanceOutput
  createDBInstanceReadReplica(input: AwsRDSCreateDBInstanceReadReplicaInput!, config: AwsConfig): AwsRDSCreateDBInstanceReadReplicaOutput
  createDBParameterGroup(input: AwsRDSCreateDBParameterGroupInput!, config: AwsConfig): AwsRDSCreateDBParameterGroupOutput
  createDBProxy(input: AwsRDSCreateDBProxyInput!, config: AwsConfig): AwsRDSCreateDBProxyOutput
  createDBProxyEndpoint(input: AwsRDSCreateDBProxyEndpointInput!, config: AwsConfig): AwsRDSCreateDBProxyEndpointOutput
  createDBSecurityGroup(input: AwsRDSCreateDBSecurityGroupInput!, config: AwsConfig): AwsRDSCreateDBSecurityGroupOutput
  createDBSnapshot(input: AwsRDSCreateDBSnapshotInput!, config: AwsConfig): AwsRDSCreateDBSnapshotOutput
  createDBSubnetGroup(input: AwsRDSCreateDBSubnetGroupInput!, config: AwsConfig): AwsRDSCreateDBSubnetGroupOutput
  createEventSubscription(input: AwsRDSCreateEventSubscriptionInput!, config: AwsConfig): AwsRDSCreateEventSubscriptionOutput
  createGlobalCluster(input: AwsRDSCreateGlobalClusterInput, config: AwsConfig): AwsRDSCreateGlobalClusterOutput
  createOptionGroup(input: AwsRDSCreateOptionGroupInput!, config: AwsConfig): AwsRDSCreateOptionGroupOutput
  deleteCustomAvailabilityZone(input: AwsRDSDeleteCustomAvailabilityZoneInput!, config: AwsConfig): AwsRDSDeleteCustomAvailabilityZoneOutput
  deleteDBCluster(input: AwsRDSDeleteDBClusterInput!, config: AwsConfig): AwsRDSDeleteDBClusterOutput
  deleteDBClusterEndpoint(input: AwsRDSDeleteDBClusterEndpointInput!, config: AwsConfig): JSON
  deleteDBClusterParameterGroup(input: AwsRDSDeleteDBClusterParameterGroupInput!, config: AwsConfig): JSON
  deleteDBClusterSnapshot(input: AwsRDSDeleteDBClusterSnapshotInput!, config: AwsConfig): AwsRDSDeleteDBClusterSnapshotOutput
  deleteDBInstance(input: AwsRDSDeleteDBInstanceInput!, config: AwsConfig): AwsRDSDeleteDBInstanceOutput
  deleteDBInstanceAutomatedBackup(input: AwsRDSDeleteDBInstanceAutomatedBackupInput, config: AwsConfig): AwsRDSDeleteDBInstanceAutomatedBackupOutput
  deleteDBParameterGroup(input: AwsRDSDeleteDBParameterGroupInput!, config: AwsConfig): JSON
  deleteDBProxy(input: AwsRDSDeleteDBProxyInput!, config: AwsConfig): AwsRDSDeleteDBProxyOutput
  deleteDBProxyEndpoint(input: AwsRDSDeleteDBProxyEndpointInput!, config: AwsConfig): AwsRDSDeleteDBProxyEndpointOutput
  deleteDBSecurityGroup(input: AwsRDSDeleteDBSecurityGroupInput!, config: AwsConfig): JSON
  deleteDBSnapshot(input: AwsRDSDeleteDBSnapshotInput!, config: AwsConfig): AwsRDSDeleteDBSnapshotOutput
  deleteDBSubnetGroup(input: AwsRDSDeleteDBSubnetGroupInput!, config: AwsConfig): JSON
  deleteEventSubscription(input: AwsRDSDeleteEventSubscriptionInput!, config: AwsConfig): AwsRDSDeleteEventSubscriptionOutput
  deleteGlobalCluster(input: AwsRDSDeleteGlobalClusterInput!, config: AwsConfig): AwsRDSDeleteGlobalClusterOutput
  deleteInstallationMedia(input: AwsRDSDeleteInstallationMediaInput!, config: AwsConfig): JSON
  deleteOptionGroup(input: AwsRDSDeleteOptionGroupInput!, config: AwsConfig): JSON
  deregisterDBProxyTargets(input: AwsRDSDeregisterDBProxyTargetsInput!, config: AwsConfig): JSON
  describeAccountAttributes(input: JSON, config: AwsConfig): AwsRDSDescribeAccountAttributesOutput
  describeCertificates(input: AwsRDSDescribeCertificatesInput, config: AwsConfig): AwsRDSDescribeCertificatesOutput
  describeCustomAvailabilityZones(input: AwsRDSDescribeCustomAvailabilityZonesInput, config: AwsConfig): AwsRDSDescribeCustomAvailabilityZonesOutput
  describeDBClusterBacktracks(input: AwsRDSDescribeDBClusterBacktracksInput!, config: AwsConfig): AwsRDSDescribeDBClusterBacktracksOutput
  describeDBClusterEndpoints(input: AwsRDSDescribeDBClusterEndpointsInput, config: AwsConfig): AwsRDSDescribeDBClusterEndpointsOutput
  describeDBClusterParameterGroups(input: AwsRDSDescribeDBClusterParameterGroupsInput, config: AwsConfig): AwsRDSDescribeDBClusterParameterGroupsOutput
  describeDBClusterParameters(input: AwsRDSDescribeDBClusterParametersInput!, config: AwsConfig): AwsRDSDescribeDBClusterParametersOutput
  describeDBClusterSnapshotAttributes(input: AwsRDSDescribeDBClusterSnapshotAttributesInput!, config: AwsConfig): AwsRDSDescribeDBClusterSnapshotAttributesOutput
  describeDBClusterSnapshots(input: AwsRDSDescribeDBClusterSnapshotsInput, config: AwsConfig): AwsRDSDescribeDBClusterSnapshotsOutput
  describeDBClusters(input: AwsRDSDescribeDBClustersInput, config: AwsConfig): AwsRDSDescribeDBClustersOutput
  describeDBEngineVersions(input: AwsRDSDescribeDBEngineVersionsInput, config: AwsConfig): AwsRDSDescribeDBEngineVersionsOutput
  describeDBInstanceAutomatedBackups(input: AwsRDSDescribeDBInstanceAutomatedBackupsInput, config: AwsConfig): AwsRDSDescribeDBInstanceAutomatedBackupsOutput
  describeDBInstances(input: AwsRDSDescribeDBInstancesInput, config: AwsConfig): AwsRDSDescribeDBInstancesOutput
  describeDBLogFiles(input: AwsRDSDescribeDBLogFilesInput!, config: AwsConfig): AwsRDSDescribeDBLogFilesOutput
  describeDBParameterGroups(input: AwsRDSDescribeDBParameterGroupsInput, config: AwsConfig): AwsRDSDescribeDBParameterGroupsOutput
  describeDBParameters(input: AwsRDSDescribeDBParametersInput!, config: AwsConfig): AwsRDSDescribeDBParametersOutput
  describeDBProxies(input: AwsRDSDescribeDBProxiesInput, config: AwsConfig): AwsRDSDescribeDBProxiesOutput
  describeDBProxyEndpoints(input: AwsRDSDescribeDBProxyEndpointsInput, config: AwsConfig): AwsRDSDescribeDBProxyEndpointsOutput
  describeDBProxyTargetGroups(input: AwsRDSDescribeDBProxyTargetGroupsInput!, config: AwsConfig): AwsRDSDescribeDBProxyTargetGroupsOutput
  describeDBProxyTargets(input: AwsRDSDescribeDBProxyTargetsInput!, config: AwsConfig): AwsRDSDescribeDBProxyTargetsOutput
  describeDBSecurityGroups(input: AwsRDSDescribeDBSecurityGroupsInput, config: AwsConfig): AwsRDSDescribeDBSecurityGroupsOutput
  describeDBSnapshotAttributes(input: AwsRDSDescribeDBSnapshotAttributesInput!, config: AwsConfig): AwsRDSDescribeDBSnapshotAttributesOutput
  describeDBSnapshots(input: AwsRDSDescribeDBSnapshotsInput, config: AwsConfig): AwsRDSDescribeDBSnapshotsOutput
  describeDBSubnetGroups(input: AwsRDSDescribeDBSubnetGroupsInput, config: AwsConfig): AwsRDSDescribeDBSubnetGroupsOutput
  describeEngineDefaultClusterParameters(input: AwsRDSDescribeEngineDefaultClusterParametersInput!, config: AwsConfig): AwsRDSDescribeEngineDefaultClusterParametersOutput
  describeEngineDefaultParameters(input: AwsRDSDescribeEngineDefaultParametersInput!, config: AwsConfig): AwsRDSDescribeEngineDefaultParametersOutput
  describeEventCategories(input: AwsRDSDescribeEventCategoriesInput, config: AwsConfig): AwsRDSDescribeEventCategoriesOutput
  describeEventSubscriptions(input: AwsRDSDescribeEventSubscriptionsInput, config: AwsConfig): AwsRDSDescribeEventSubscriptionsOutput
  describeEvents(input: AwsRDSDescribeEventsInput, config: AwsConfig): AwsRDSDescribeEventsOutput
  describeExportTasks(input: AwsRDSDescribeExportTasksInput, config: AwsConfig): AwsRDSDescribeExportTasksOutput
  describeGlobalClusters(input: AwsRDSDescribeGlobalClustersInput, config: AwsConfig): AwsRDSDescribeGlobalClustersOutput
  describeInstallationMedia(input: AwsRDSDescribeInstallationMediaInput, config: AwsConfig): AwsRDSDescribeInstallationMediaOutput
  describeOptionGroupOptions(input: AwsRDSDescribeOptionGroupOptionsInput!, config: AwsConfig): AwsRDSDescribeOptionGroupOptionsOutput
  describeOptionGroups(input: AwsRDSDescribeOptionGroupsInput, config: AwsConfig): AwsRDSDescribeOptionGroupsOutput
  describeOrderableDBInstanceOptions(input: AwsRDSDescribeOrderableDBInstanceOptionsInput!, config: AwsConfig): AwsRDSDescribeOrderableDBInstanceOptionsOutput
  describePendingMaintenanceActions(input: AwsRDSDescribePendingMaintenanceActionsInput, config: AwsConfig): AwsRDSDescribePendingMaintenanceActionsOutput
  describeReservedDBInstances(input: AwsRDSDescribeReservedDBInstancesInput, config: AwsConfig): AwsRDSDescribeReservedDBInstancesOutput
  describeReservedDBInstancesOfferings(input: AwsRDSDescribeReservedDBInstancesOfferingsInput, config: AwsConfig): AwsRDSDescribeReservedDBInstancesOfferingsOutput
  describeSourceRegions(input: AwsRDSDescribeSourceRegionsInput, config: AwsConfig): AwsRDSDescribeSourceRegionsOutput
  describeValidDBInstanceModifications(input: AwsRDSDescribeValidDBInstanceModificationsInput!, config: AwsConfig): AwsRDSDescribeValidDBInstanceModificationsOutput
  downloadDBLogFilePortion(input: AwsRDSDownloadDBLogFilePortionInput!, config: AwsConfig): AwsRDSDownloadDBLogFilePortionOutput
  failoverDBCluster(input: AwsRDSFailoverDBClusterInput!, config: AwsConfig): AwsRDSFailoverDBClusterOutput
  failoverGlobalCluster(input: AwsRDSFailoverGlobalClusterInput!, config: AwsConfig): AwsRDSFailoverGlobalClusterOutput
  importInstallationMedia(input: AwsRDSImportInstallationMediaInput!, config: AwsConfig): JSON
  listTagsForResource(input: AwsRDSListTagsForResourceInput!, config: AwsConfig): AwsRDSListTagsForResourceOutput
  modifyCertificates(input: AwsRDSModifyCertificatesInput, config: AwsConfig): AwsRDSModifyCertificatesOutput
  modifyCurrentDBClusterCapacity(input: AwsRDSModifyCurrentDBClusterCapacityInput!, config: AwsConfig): AwsRDSModifyCurrentDBClusterCapacityOutput
  modifyDBCluster(input: AwsRDSModifyDBClusterInput!, config: AwsConfig): AwsRDSModifyDBClusterOutput
  modifyDBClusterEndpoint(input: AwsRDSModifyDBClusterEndpointInput!, config: AwsConfig): JSON
  modifyDBClusterParameterGroup(input: AwsRDSModifyDBClusterParameterGroupInput!, config: AwsConfig): JSON
  modifyDBClusterSnapshotAttribute(input: AwsRDSModifyDBClusterSnapshotAttributeInput!, config: AwsConfig): AwsRDSModifyDBClusterSnapshotAttributeOutput
  modifyDBInstance(input: AwsRDSModifyDBInstanceInput!, config: AwsConfig): AwsRDSModifyDBInstanceOutput
  modifyDBParameterGroup(input: AwsRDSModifyDBParameterGroupInput!, config: AwsConfig): JSON
  modifyDBProxy(input: AwsRDSModifyDBProxyInput!, config: AwsConfig): AwsRDSModifyDBProxyOutput
  modifyDBProxyEndpoint(input: AwsRDSModifyDBProxyEndpointInput!, config: AwsConfig): AwsRDSModifyDBProxyEndpointOutput
  modifyDBProxyTargetGroup(input: AwsRDSModifyDBProxyTargetGroupInput!, config: AwsConfig): AwsRDSModifyDBProxyTargetGroupOutput
  modifyDBSnapshot(input: AwsRDSModifyDBSnapshotInput!, config: AwsConfig): AwsRDSModifyDBSnapshotOutput
  modifyDBSnapshotAttribute(input: AwsRDSModifyDBSnapshotAttributeInput!, config: AwsConfig): AwsRDSModifyDBSnapshotAttributeOutput
  modifyDBSubnetGroup(input: AwsRDSModifyDBSubnetGroupInput!, config: AwsConfig): AwsRDSModifyDBSubnetGroupOutput
  modifyEventSubscription(input: AwsRDSModifyEventSubscriptionInput!, config: AwsConfig): AwsRDSModifyEventSubscriptionOutput
  modifyGlobalCluster(input: AwsRDSModifyGlobalClusterInput, config: AwsConfig): AwsRDSModifyGlobalClusterOutput
  modifyOptionGroup(input: AwsRDSModifyOptionGroupInput!, config: AwsConfig): AwsRDSModifyOptionGroupOutput
  promoteReadReplica(input: AwsRDSPromoteReadReplicaInput!, config: AwsConfig): AwsRDSPromoteReadReplicaOutput
  promoteReadReplicaDBCluster(input: AwsRDSPromoteReadReplicaDBClusterInput!, config: AwsConfig): AwsRDSPromoteReadReplicaDBClusterOutput
  purchaseReservedDBInstancesOffering(input: AwsRDSPurchaseReservedDBInstancesOfferingInput!, config: AwsConfig): AwsRDSPurchaseReservedDBInstancesOfferingOutput
  rebootDBInstance(input: AwsRDSRebootDBInstanceInput!, config: AwsConfig): AwsRDSRebootDBInstanceOutput
  registerDBProxyTargets(input: AwsRDSRegisterDBProxyTargetsInput!, config: AwsConfig): AwsRDSRegisterDBProxyTargetsOutput
  removeFromGlobalCluster(input: AwsRDSRemoveFromGlobalClusterInput, config: AwsConfig): AwsRDSRemoveFromGlobalClusterOutput
  removeRoleFromDBCluster(input: AwsRDSRemoveRoleFromDBClusterInput!, config: AwsConfig): JSON
  removeRoleFromDBInstance(input: AwsRDSRemoveRoleFromDBInstanceInput!, config: AwsConfig): JSON
  removeSourceIdentifierFromSubscription(input: AwsRDSRemoveSourceIdentifierFromSubscriptionInput!, config: AwsConfig): AwsRDSRemoveSourceIdentifierFromSubscriptionOutput
  removeTagsFromResource(input: AwsRDSRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetDBClusterParameterGroup(input: AwsRDSResetDBClusterParameterGroupInput!, config: AwsConfig): JSON
  resetDBParameterGroup(input: AwsRDSResetDBParameterGroupInput!, config: AwsConfig): JSON
  restoreDBClusterFromS3(input: AwsRDSRestoreDBClusterFromS3Input!, config: AwsConfig): AwsRDSRestoreDBClusterFromS3Output
  restoreDBClusterFromSnapshot(input: AwsRDSRestoreDBClusterFromSnapshotInput!, config: AwsConfig): AwsRDSRestoreDBClusterFromSnapshotOutput
  restoreDBClusterToPointInTime(input: AwsRDSRestoreDBClusterToPointInTimeInput!, config: AwsConfig): AwsRDSRestoreDBClusterToPointInTimeOutput
  restoreDBInstanceFromDBSnapshot(input: AwsRDSRestoreDBInstanceFromDBSnapshotInput!, config: AwsConfig): AwsRDSRestoreDBInstanceFromDBSnapshotOutput
  restoreDBInstanceFromS3(input: AwsRDSRestoreDBInstanceFromS3Input!, config: AwsConfig): AwsRDSRestoreDBInstanceFromS3Output
  restoreDBInstanceToPointInTime(input: AwsRDSRestoreDBInstanceToPointInTimeInput!, config: AwsConfig): AwsRDSRestoreDBInstanceToPointInTimeOutput
  revokeDBSecurityGroupIngress(input: AwsRDSRevokeDBSecurityGroupIngressInput!, config: AwsConfig): AwsRDSRevokeDBSecurityGroupIngressOutput
  startActivityStream(input: AwsRDSStartActivityStreamInput!, config: AwsConfig): AwsRDSStartActivityStreamOutput
  startDBCluster(input: AwsRDSStartDBClusterInput!, config: AwsConfig): AwsRDSStartDBClusterOutput
  startDBInstance(input: AwsRDSStartDBInstanceInput!, config: AwsConfig): AwsRDSStartDBInstanceOutput
  startDBInstanceAutomatedBackupsReplication(input: AwsRDSStartDBInstanceAutomatedBackupsReplicationInput!, config: AwsConfig): AwsRDSStartDBInstanceAutomatedBackupsReplicationOutput
  startExportTask(input: AwsRDSStartExportTaskInput!, config: AwsConfig): JSON
  stopActivityStream(input: AwsRDSStopActivityStreamInput!, config: AwsConfig): AwsRDSStopActivityStreamOutput
  stopDBCluster(input: AwsRDSStopDBClusterInput!, config: AwsConfig): AwsRDSStopDBClusterOutput
  stopDBInstance(input: AwsRDSStopDBInstanceInput!, config: AwsConfig): AwsRDSStopDBInstanceOutput
  stopDBInstanceAutomatedBackupsReplication(input: AwsRDSStopDBInstanceAutomatedBackupsReplicationInput!, config: AwsConfig): AwsRDSStopDBInstanceAutomatedBackupsReplicationOutput
}

input AwsRDSAddRoleToDBClusterInput {
  DBClusterIdentifier: String!
  RoleArn: String!
  FeatureName: String
}

input AwsRDSAddRoleToDBInstanceInput {
  DBInstanceIdentifier: String!
  RoleArn: String!
  FeatureName: String!
}

type AwsRDSAddSourceIdentifierToSubscriptionOutput {
  EventSubscription: AwsRDSS6
}

type AwsRDSS6 {
  CustomerAwsId: String
  CustSubscriptionId: String
  SnsTopicArn: String
  Status: String
  SubscriptionCreationTime: String
  SourceType: String
  SourceIdsList: [String]
  EventCategoriesList: [String]
  Enabled: Boolean
  EventSubscriptionArn: String
}

input AwsRDSAddSourceIdentifierToSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsRDSAddTagsToResourceInput {
  ResourceName: String!
  Tags: [AwsRDSSbInput]!
}

input AwsRDSSbInput {
  Key: String
  Value: String
}

type AwsRDSApplyPendingMaintenanceActionOutput {
  ResourcePendingMaintenanceActions: AwsRDSSf
}

type AwsRDSSf {
  ResourceIdentifier: String
  PendingMaintenanceActionDetails: [AwsRDSSfPendingMaintenanceActionDetails]
}

type AwsRDSSfPendingMaintenanceActionDetails {
  Action: String
  AutoAppliedAfterDate: Date
  ForcedApplyDate: Date
  OptInStatus: String
  CurrentApplyDate: Date
  Description: String
}

input AwsRDSApplyPendingMaintenanceActionInput {
  ResourceIdentifier: String!
  ApplyAction: String!
  OptInType: String!
}

type AwsRDSAuthorizeDBSecurityGroupIngressOutput {
  DBSecurityGroup: AwsRDSSl
}

type AwsRDSSl {
  OwnerId: String
  DBSecurityGroupName: String
  DBSecurityGroupDescription: String
  VpcId: String
  EC2SecurityGroups: [AwsRDSSlEC2SecurityGroups]
  IPRanges: [AwsRDSSlIPRanges]
  DBSecurityGroupArn: String
}

type AwsRDSSlEC2SecurityGroups {
  Status: String
  EC2SecurityGroupName: String
  EC2SecurityGroupId: String
  EC2SecurityGroupOwnerId: String
}

type AwsRDSSlIPRanges {
  Status: String
  CIDRIP: String
}

input AwsRDSAuthorizeDBSecurityGroupIngressInput {
  DBSecurityGroupName: String!
  CIDRIP: String
  EC2SecurityGroupName: String
  EC2SecurityGroupId: String
  EC2SecurityGroupOwnerId: String
}

input AwsRDSBacktrackDBClusterInput {
  DBClusterIdentifier: String!
  BacktrackTo: Date!
  Force: Boolean
  UseEarliestTimeOnPointInTimeUnavailable: Boolean
}

input AwsRDSCancelExportTaskInput {
  ExportTaskIdentifier: String!
}

type AwsRDSCopyDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsRDSSz
}

type AwsRDSSz {
  DBClusterParameterGroupName: String
  DBParameterGroupFamily: String
  Description: String
  DBClusterParameterGroupArn: String
}

input AwsRDSCopyDBClusterParameterGroupInput {
  SourceDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupIdentifier: String!
  TargetDBClusterParameterGroupDescription: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCopyDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsRDSS12
}

type AwsRDSS12 {
  AvailabilityZones: [String]
  DBClusterSnapshotIdentifier: String
  DBClusterIdentifier: String
  SnapshotCreateTime: Date
  Engine: String
  EngineMode: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  VpcId: String
  ClusterCreateTime: Date
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  PercentProgress: Int
  StorageEncrypted: Boolean
  KmsKeyId: String
  DBClusterSnapshotArn: String
  SourceDBClusterSnapshotArn: String
  IAMDatabaseAuthenticationEnabled: Boolean
  TagList: [AwsRDSSb]
}

type AwsRDSSb {
  Key: String
  Value: String
}

input AwsRDSCopyDBClusterSnapshotInput {
  SourceDBClusterSnapshotIdentifier: String!
  TargetDBClusterSnapshotIdentifier: String!
  KmsKeyId: String
  PreSignedUrl: String
  CopyTags: Boolean
  Tags: [AwsRDSSbInput]
  SourceRegion: String
}

type AwsRDSCopyDBParameterGroupOutput {
  DBParameterGroup: AwsRDSS16
}

type AwsRDSS16 {
  DBParameterGroupName: String
  DBParameterGroupFamily: String
  Description: String
  DBParameterGroupArn: String
}

input AwsRDSCopyDBParameterGroupInput {
  SourceDBParameterGroupIdentifier: String!
  TargetDBParameterGroupIdentifier: String!
  TargetDBParameterGroupDescription: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCopyDBSnapshotOutput {
  DBSnapshot: AwsRDSS19
}

type AwsRDSS19 {
  DBSnapshotIdentifier: String
  DBInstanceIdentifier: String
  SnapshotCreateTime: Date
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  AvailabilityZone: String
  VpcId: String
  InstanceCreateTime: Date
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  Iops: Int
  OptionGroupName: String
  PercentProgress: Int
  SourceRegion: String
  SourceDBSnapshotIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  Encrypted: Boolean
  KmsKeyId: String
  DBSnapshotArn: String
  Timezone: String
  IAMDatabaseAuthenticationEnabled: Boolean
  ProcessorFeatures: [AwsRDSS1b]
  DbiResourceId: String
  TagList: [AwsRDSSb]
}

type AwsRDSS1b {
  Name: String
  Value: String
}

input AwsRDSCopyDBSnapshotInput {
  SourceDBSnapshotIdentifier: String!
  TargetDBSnapshotIdentifier: String!
  KmsKeyId: String
  Tags: [AwsRDSSbInput]
  CopyTags: Boolean
  PreSignedUrl: String
  OptionGroupName: String
  TargetCustomAvailabilityZone: String
  SourceRegion: String
}

type AwsRDSCopyOptionGroupOutput {
  OptionGroup: AwsRDSS1f
}

type AwsRDSS1f {
  OptionGroupName: String
  OptionGroupDescription: String
  EngineName: String
  MajorEngineVersion: String
  Options: [AwsRDSS1fOptions]
  AllowsVpcAndNonVpcInstanceMemberships: Boolean
  VpcId: String
  OptionGroupArn: String
}

type AwsRDSS1fOptions {
  OptionName: String
  OptionDescription: String
  Persistent: Boolean
  Permanent: Boolean
  Port: Int
  OptionVersion: String
  OptionSettings: [AwsRDSS1j]
  DBSecurityGroupMemberships: [AwsRDSS1k]
  VpcSecurityGroupMemberships: [AwsRDSS1m]
}

type AwsRDSS1j {
  Name: String
  Value: String
  DefaultValue: String
  Description: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  IsCollection: Boolean
}

type AwsRDSS1k {
  DBSecurityGroupName: String
  Status: String
}

type AwsRDSS1m {
  VpcSecurityGroupId: String
  Status: String
}

input AwsRDSCopyOptionGroupInput {
  SourceOptionGroupIdentifier: String!
  TargetOptionGroupIdentifier: String!
  TargetOptionGroupDescription: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateCustomAvailabilityZoneOutput {
  CustomAvailabilityZone: AwsRDSS1q
}

type AwsRDSS1q {
  CustomAvailabilityZoneId: String
  CustomAvailabilityZoneName: String
  CustomAvailabilityZoneStatus: String
  VpnDetails: AwsRDSS1qVpnDetails
}

type AwsRDSS1qVpnDetails {
  VpnId: String
  VpnTunnelOriginatorIP: String
  VpnGatewayIp: String
  VpnPSK: String
  VpnName: String
  VpnState: String
}

input AwsRDSCreateCustomAvailabilityZoneInput {
  CustomAvailabilityZoneName: String!
  ExistingVpnId: String
  NewVpnTunnelName: String
  VpnTunnelOriginatorIP: String
}

type AwsRDSCreateDBClusterOutput {
  DBCluster: AwsRDSS1z
}

type AwsRDSS1z {
  AllocatedStorage: Int
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  CharacterSetName: String
  DatabaseName: String
  DBClusterIdentifier: String
  DBClusterParameterGroup: String
  DBSubnetGroup: String
  Status: String
  PercentProgress: String
  EarliestRestorableTime: Date
  Endpoint: String
  ReaderEndpoint: String
  CustomEndpoints: [String]
  MultiAZ: Boolean
  Engine: String
  EngineVersion: String
  LatestRestorableTime: Date
  Port: Int
  MasterUsername: String
  DBClusterOptionGroupMemberships: [AwsRDSS1zDBClusterOptionGroupMemberships]
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReplicationSourceIdentifier: String
  ReadReplicaIdentifiers: [String]
  DBClusterMembers: [AwsRDSS1zDBClusterMembers]
  VpcSecurityGroups: [AwsRDSS1m]
  HostedZoneId: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterResourceId: String
  DBClusterArn: String
  AssociatedRoles: [AwsRDSS1zAssociatedRoles]
  IAMDatabaseAuthenticationEnabled: Boolean
  CloneGroupId: String
  ClusterCreateTime: Date
  EarliestBacktrackTime: Date
  BacktrackWindow: JSON
  BacktrackConsumedChangeRecords: JSON
  EnabledCloudwatchLogsExports: [String]
  Capacity: Int
  EngineMode: String
  ScalingConfigurationInfo: AwsRDSS1zScalingConfigurationInfo
  DeletionProtection: Boolean
  HttpEndpointEnabled: Boolean
  ActivityStreamMode: String
  ActivityStreamStatus: String
  ActivityStreamKmsKeyId: String
  ActivityStreamKinesisStreamName: String
  CopyTagsToSnapshot: Boolean
  CrossAccountClone: Boolean
  DomainMemberships: [AwsRDSS2a]
  TagList: [AwsRDSSb]
  GlobalWriteForwardingStatus: String
  GlobalWriteForwardingRequested: Boolean
  PendingModifiedValues: AwsRDSS1zPendingModifiedValues
}

type AwsRDSS1zDBClusterOptionGroupMemberships {
  DBClusterOptionGroupName: String
  Status: String
}

type AwsRDSS1zDBClusterMembers {
  DBInstanceIdentifier: String
  IsClusterWriter: Boolean
  DBClusterParameterGroupStatus: String
  PromotionTier: Int
}

type AwsRDSS1zAssociatedRoles {
  RoleArn: String
  Status: String
  FeatureName: String
}

type AwsRDSS1zScalingConfigurationInfo {
  MinCapacity: Int
  MaxCapacity: Int
  AutoPause: Boolean
  SecondsUntilAutoPause: Int
  TimeoutAction: String
}

type AwsRDSS2a {
  Domain: String
  Status: String
  FQDN: String
  IAMRoleName: String
}

type AwsRDSS1zPendingModifiedValues {
  PendingCloudwatchLogsExports: AwsRDSS2e
  DBClusterIdentifier: String
  MasterUserPassword: String
  IAMDatabaseAuthenticationEnabled: Boolean
  EngineVersion: String
}

type AwsRDSS2e {
  LogTypesToEnable: [String]
  LogTypesToDisable: [String]
}

input AwsRDSCreateDBClusterInput {
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  CharacterSetName: String
  DatabaseName: String
  DBClusterIdentifier: String!
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  DBSubnetGroupName: String
  Engine: String!
  EngineVersion: String
  Port: Int
  MasterUsername: String
  MasterUserPassword: String
  OptionGroupName: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReplicationSourceIdentifier: String
  Tags: [AwsRDSSbInput]
  StorageEncrypted: Boolean
  KmsKeyId: String
  PreSignedUrl: String
  EnableIAMDatabaseAuthentication: Boolean
  BacktrackWindow: JSON
  EnableCloudwatchLogsExports: [String]
  EngineMode: String
  ScalingConfiguration: AwsRDSS1xInput
  DeletionProtection: Boolean
  GlobalClusterIdentifier: String
  EnableHttpEndpoint: Boolean
  CopyTagsToSnapshot: Boolean
  Domain: String
  DomainIAMRoleName: String
  EnableGlobalWriteForwarding: Boolean
  SourceRegion: String
}

input AwsRDSS1xInput {
  MinCapacity: Int
  MaxCapacity: Int
  AutoPause: Boolean
  SecondsUntilAutoPause: Int
  TimeoutAction: String
}

input AwsRDSCreateDBClusterEndpointInput {
  DBClusterIdentifier: String!
  DBClusterEndpointIdentifier: String!
  EndpointType: String!
  StaticMembers: [String]
  ExcludedMembers: [String]
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBClusterParameterGroupOutput {
  DBClusterParameterGroup: AwsRDSSz
}

input AwsRDSCreateDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  DBParameterGroupFamily: String!
  Description: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsRDSS12
}

input AwsRDSCreateDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
  DBClusterIdentifier: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

type AwsRDSS2o {
  DBInstanceIdentifier: String
  DBInstanceClass: String
  Engine: String
  DBInstanceStatus: String
  MasterUsername: String
  DBName: String
  Endpoint: AwsRDSS2p
  AllocatedStorage: Int
  InstanceCreateTime: Date
  PreferredBackupWindow: String
  BackupRetentionPeriod: Int
  DBSecurityGroups: [AwsRDSS1k]
  VpcSecurityGroups: [AwsRDSS1m]
  DBParameterGroups: [AwsRDSS2oDBParameterGroups]
  AvailabilityZone: String
  DBSubnetGroup: AwsRDSS2s
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsRDSS2oPendingModifiedValues
  LatestRestorableTime: Date
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  ReadReplicaSourceDBInstanceIdentifier: String
  ReadReplicaDBInstanceIdentifiers: [String]
  ReadReplicaDBClusterIdentifiers: [String]
  ReplicaMode: String
  LicenseModel: String
  Iops: Int
  OptionGroupMemberships: [AwsRDSS2oOptionGroupMemberships]
  CharacterSetName: String
  NcharCharacterSetName: String
  SecondaryAvailabilityZone: String
  PubliclyAccessible: Boolean
  StatusInfos: [AwsRDSS2oStatusInfos]
  StorageType: String
  TdeCredentialArn: String
  DbInstancePort: Int
  DBClusterIdentifier: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbiResourceId: String
  CACertificateIdentifier: String
  DomainMemberships: [AwsRDSS2a]
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  EnhancedMonitoringResourceArn: String
  MonitoringRoleArn: String
  PromotionTier: Int
  DBInstanceArn: String
  Timezone: String
  IAMDatabaseAuthenticationEnabled: Boolean
  PerformanceInsightsEnabled: Boolean
  PerformanceInsightsKMSKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnabledCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1b]
  DeletionProtection: Boolean
  AssociatedRoles: [AwsRDSS2oAssociatedRoles]
  ListenerEndpoint: AwsRDSS2p
  MaxAllocatedStorage: Int
  TagList: [AwsRDSSb]
  DBInstanceAutomatedBackupsReplications: [AwsRDSS37]
  CustomerOwnedIpEnabled: Boolean
  AwsBackupRecoveryPointArn: String
  ActivityStreamStatus: String
  ActivityStreamKmsKeyId: String
  ActivityStreamKinesisStreamName: String
  ActivityStreamMode: String
  ActivityStreamEngineNativeAuditFieldsIncluded: Boolean
}

type AwsRDSS2p {
  Address: String
  Port: Int
  HostedZoneId: String
}

type AwsRDSS2oDBParameterGroups {
  DBParameterGroupName: String
  ParameterApplyStatus: String
}

type AwsRDSS2s {
  DBSubnetGroupName: String
  DBSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsRDSS2sSubnets]
  DBSubnetGroupArn: String
}

type AwsRDSS2sSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsRDSS2v
  SubnetOutpost: AwsRDSS2sSubnetsSubnetOutpost
  SubnetStatus: String
}

type AwsRDSS2v {
  Name: String
}

type AwsRDSS2sSubnetsSubnetOutpost {
  Arn: String
}

type AwsRDSS2oPendingModifiedValues {
  DBInstanceClass: String
  AllocatedStorage: Int
  MasterUserPassword: String
  Port: Int
  BackupRetentionPeriod: Int
  MultiAZ: Boolean
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  DBInstanceIdentifier: String
  StorageType: String
  CACertificateIdentifier: String
  DBSubnetGroupName: String
  PendingCloudwatchLogsExports: AwsRDSS2e
  ProcessorFeatures: [AwsRDSS1b]
  IAMDatabaseAuthenticationEnabled: Boolean
}

type AwsRDSS2oOptionGroupMemberships {
  OptionGroupName: String
  Status: String
}

type AwsRDSS2oStatusInfos {
  StatusType: String
  Normal: Boolean
  Status: String
  Message: String
}

type AwsRDSS2oAssociatedRoles {
  RoleArn: String
  FeatureName: String
  Status: String
}

type AwsRDSS37 {
  DBInstanceAutomatedBackupsArn: String
}

input AwsRDSCreateDBInstanceInput {
  DBName: String
  DBInstanceIdentifier: String!
  AllocatedStorage: Int
  DBInstanceClass: String!
  Engine: String!
  MasterUsername: String
  MasterUserPassword: String
  DBSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  AvailabilityZone: String
  DBSubnetGroupName: String
  PreferredMaintenanceWindow: String
  DBParameterGroupName: String
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
  Port: Int
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  CharacterSetName: String
  NcharCharacterSetName: String
  PubliclyAccessible: Boolean
  Tags: [AwsRDSSbInput]
  DBClusterIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  Domain: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  DomainIAMRoleName: String
  PromotionTier: Int
  Timezone: String
  EnableIAMDatabaseAuthentication: Boolean
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnableCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1bInput]
  DeletionProtection: Boolean
  MaxAllocatedStorage: Int
  EnableCustomerOwnedIp: Boolean
}

input AwsRDSS1bInput {
  Name: String
  Value: String
}

type AwsRDSCreateDBInstanceReadReplicaOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSCreateDBInstanceReadReplicaInput {
  DBInstanceIdentifier: String!
  SourceDBInstanceIdentifier: String!
  DBInstanceClass: String
  AvailabilityZone: String
  Port: Int
  MultiAZ: Boolean
  AutoMinorVersionUpgrade: Boolean
  Iops: Int
  OptionGroupName: String
  DBParameterGroupName: String
  PubliclyAccessible: Boolean
  Tags: [AwsRDSSbInput]
  DBSubnetGroupName: String
  VpcSecurityGroupIds: [String]
  StorageType: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  KmsKeyId: String
  PreSignedUrl: String
  EnableIAMDatabaseAuthentication: Boolean
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnableCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1bInput]
  UseDefaultProcessorFeatures: Boolean
  DeletionProtection: Boolean
  Domain: String
  DomainIAMRoleName: String
  ReplicaMode: String
  MaxAllocatedStorage: Int
  SourceRegion: String
}

type AwsRDSCreateDBParameterGroupOutput {
  DBParameterGroup: AwsRDSS16
}

input AwsRDSCreateDBParameterGroupInput {
  DBParameterGroupName: String!
  DBParameterGroupFamily: String!
  Description: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBProxyOutput {
  DBProxy: AwsRDSS3k
}

type AwsRDSS3k {
  DBProxyName: String
  DBProxyArn: String
  Status: String
  EngineFamily: String
  VpcId: String
  VpcSecurityGroupIds: [String]
  VpcSubnetIds: [String]
  Auth: [AwsRDSS3kAuth]
  RoleArn: String
  Endpoint: String
  RequireTLS: Boolean
  IdleClientTimeout: Int
  DebugLogging: Boolean
  CreatedDate: Date
  UpdatedDate: Date
}

type AwsRDSS3kAuth {
  Description: String
  UserName: String
  AuthScheme: String
  SecretArn: String
  IAMAuth: String
}

input AwsRDSCreateDBProxyInput {
  DBProxyName: String!
  EngineFamily: String!
  Auth: [AwsRDSS3fInput]!
  RoleArn: String!
  VpcSubnetIds: [String]!
  VpcSecurityGroupIds: [String]
  RequireTLS: Boolean
  IdleClientTimeout: Int
  DebugLogging: Boolean
  Tags: [AwsRDSSbInput]
}

input AwsRDSS3fInput {
  Description: String
  UserName: String
  AuthScheme: String
  SecretArn: String
  IAMAuth: String
}

type AwsRDSCreateDBProxyEndpointOutput {
  DBProxyEndpoint: AwsRDSS3t
}

type AwsRDSS3t {
  DBProxyEndpointName: String
  DBProxyEndpointArn: String
  DBProxyName: String
  Status: String
  VpcId: String
  VpcSecurityGroupIds: [String]
  VpcSubnetIds: [String]
  Endpoint: String
  CreatedDate: Date
  TargetRole: String
  IsDefault: Boolean
}

input AwsRDSCreateDBProxyEndpointInput {
  DBProxyName: String!
  DBProxyEndpointName: String!
  VpcSubnetIds: [String]!
  VpcSecurityGroupIds: [String]
  TargetRole: String
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBSecurityGroupOutput {
  DBSecurityGroup: AwsRDSSl
}

input AwsRDSCreateDBSecurityGroupInput {
  DBSecurityGroupName: String!
  DBSecurityGroupDescription: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBSnapshotOutput {
  DBSnapshot: AwsRDSS19
}

input AwsRDSCreateDBSnapshotInput {
  DBSnapshotIdentifier: String!
  DBInstanceIdentifier: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateDBSubnetGroupOutput {
  DBSubnetGroup: AwsRDSS2s
}

input AwsRDSCreateDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String!
  SubnetIds: [String]!
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateEventSubscriptionOutput {
  EventSubscription: AwsRDSS6
}

input AwsRDSCreateEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String!
  SourceType: String
  EventCategories: [String]
  SourceIds: [String]
  Enabled: Boolean
  Tags: [AwsRDSSbInput]
}

type AwsRDSCreateGlobalClusterOutput {
  GlobalCluster: AwsRDSS46
}

type AwsRDSS46 {
  GlobalClusterIdentifier: String
  GlobalClusterResourceId: String
  GlobalClusterArn: String
  Status: String
  Engine: String
  EngineVersion: String
  DatabaseName: String
  StorageEncrypted: Boolean
  DeletionProtection: Boolean
  GlobalClusterMembers: [AwsRDSS46GlobalClusterMembers]
  FailoverState: AwsRDSS46FailoverState
}

type AwsRDSS46GlobalClusterMembers {
  DBClusterArn: String
  Readers: [String]
  IsWriter: Boolean
  GlobalWriteForwardingStatus: String
}

type AwsRDSS46FailoverState {
  Status: String
  FromDbClusterArn: String
  ToDbClusterArn: String
}

input AwsRDSCreateGlobalClusterInput {
  GlobalClusterIdentifier: String
  SourceDBClusterIdentifier: String
  Engine: String
  EngineVersion: String
  DeletionProtection: Boolean
  DatabaseName: String
  StorageEncrypted: Boolean
}

type AwsRDSCreateOptionGroupOutput {
  OptionGroup: AwsRDSS1f
}

input AwsRDSCreateOptionGroupInput {
  OptionGroupName: String!
  EngineName: String!
  MajorEngineVersion: String!
  OptionGroupDescription: String!
  Tags: [AwsRDSSbInput]
}

type AwsRDSDeleteCustomAvailabilityZoneOutput {
  CustomAvailabilityZone: AwsRDSS1q
}

input AwsRDSDeleteCustomAvailabilityZoneInput {
  CustomAvailabilityZoneId: String!
}

type AwsRDSDeleteDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSDeleteDBClusterInput {
  DBClusterIdentifier: String!
  SkipFinalSnapshot: Boolean
  FinalDBSnapshotIdentifier: String
}

input AwsRDSDeleteDBClusterEndpointInput {
  DBClusterEndpointIdentifier: String!
}

input AwsRDSDeleteDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
}

type AwsRDSDeleteDBClusterSnapshotOutput {
  DBClusterSnapshot: AwsRDSS12
}

input AwsRDSDeleteDBClusterSnapshotInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsRDSDeleteDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSDeleteDBInstanceInput {
  DBInstanceIdentifier: String!
  SkipFinalSnapshot: Boolean
  FinalDBSnapshotIdentifier: String
  DeleteAutomatedBackups: Boolean
}

type AwsRDSDeleteDBInstanceAutomatedBackupOutput {
  DBInstanceAutomatedBackup: AwsRDSS4q
}

type AwsRDSS4q {
  DBInstanceArn: String
  DbiResourceId: String
  Region: String
  DBInstanceIdentifier: String
  RestoreWindow: AwsRDSS4qRestoreWindow
  AllocatedStorage: Int
  Status: String
  Port: Int
  AvailabilityZone: String
  VpcId: String
  InstanceCreateTime: Date
  MasterUsername: String
  Engine: String
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  TdeCredentialArn: String
  Encrypted: Boolean
  StorageType: String
  KmsKeyId: String
  Timezone: String
  IAMDatabaseAuthenticationEnabled: Boolean
  BackupRetentionPeriod: Int
  DBInstanceAutomatedBackupsArn: String
  DBInstanceAutomatedBackupsReplications: [AwsRDSS37]
}

type AwsRDSS4qRestoreWindow {
  EarliestTime: Date
  LatestTime: Date
}

input AwsRDSDeleteDBInstanceAutomatedBackupInput {
  DbiResourceId: String
  DBInstanceAutomatedBackupsArn: String
}

input AwsRDSDeleteDBParameterGroupInput {
  DBParameterGroupName: String!
}

type AwsRDSDeleteDBProxyOutput {
  DBProxy: AwsRDSS3k
}

input AwsRDSDeleteDBProxyInput {
  DBProxyName: String!
}

type AwsRDSDeleteDBProxyEndpointOutput {
  DBProxyEndpoint: AwsRDSS3t
}

input AwsRDSDeleteDBProxyEndpointInput {
  DBProxyEndpointName: String!
}

input AwsRDSDeleteDBSecurityGroupInput {
  DBSecurityGroupName: String!
}

type AwsRDSDeleteDBSnapshotOutput {
  DBSnapshot: AwsRDSS19
}

input AwsRDSDeleteDBSnapshotInput {
  DBSnapshotIdentifier: String!
}

input AwsRDSDeleteDBSubnetGroupInput {
  DBSubnetGroupName: String!
}

type AwsRDSDeleteEventSubscriptionOutput {
  EventSubscription: AwsRDSS6
}

input AwsRDSDeleteEventSubscriptionInput {
  SubscriptionName: String!
}

type AwsRDSDeleteGlobalClusterOutput {
  GlobalCluster: AwsRDSS46
}

input AwsRDSDeleteGlobalClusterInput {
  GlobalClusterIdentifier: String!
}

input AwsRDSDeleteInstallationMediaInput {
  InstallationMediaId: String!
}

input AwsRDSDeleteOptionGroupInput {
  OptionGroupName: String!
}

input AwsRDSDeregisterDBProxyTargetsInput {
  DBProxyName: String!
  TargetGroupName: String
  DBInstanceIdentifiers: [String]
  DBClusterIdentifiers: [String]
}

type AwsRDSDescribeAccountAttributesOutput {
  AccountQuotas: [AwsRDSDescribeAccountAttributesOutputAccountQuotas]
}

type AwsRDSDescribeAccountAttributesOutputAccountQuotas {
  AccountQuotaName: String
  Used: JSON
  Max: JSON
}

type AwsRDSDescribeCertificatesOutput {
  Certificates: [AwsRDSS5m]
  Marker: String
}

type AwsRDSS5m {
  CertificateIdentifier: String
  CertificateType: String
  Thumbprint: String
  ValidFrom: Date
  ValidTill: Date
  CertificateArn: String
  CustomerOverride: Boolean
  CustomerOverrideValidTill: Date
}

input AwsRDSDescribeCertificatesInput {
  CertificateIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

input AwsRDSS5hInput {
  Name: String!
  Values: [String]!
}

type AwsRDSDescribeCustomAvailabilityZonesOutput {
  Marker: String
  CustomAvailabilityZones: [AwsRDSS1q]
}

input AwsRDSDescribeCustomAvailabilityZonesInput {
  CustomAvailabilityZoneId: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBClusterBacktracksOutput {
  Marker: String
  DBClusterBacktracks: [AwsRDSSs]
}

type AwsRDSSs {
  DBClusterIdentifier: String
  BacktrackIdentifier: String
  BacktrackTo: Date
  BacktrackedFrom: Date
  BacktrackRequestCreationTime: Date
  Status: String
}

input AwsRDSDescribeDBClusterBacktracksInput {
  DBClusterIdentifier: String!
  BacktrackIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBClusterEndpointsOutput {
  Marker: String
  DBClusterEndpoints: [AwsRDSS2g]
}

type AwsRDSS2g {
  DBClusterEndpointIdentifier: String
  DBClusterIdentifier: String
  DBClusterEndpointResourceIdentifier: String
  Endpoint: String
  Status: String
  EndpointType: String
  CustomEndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
  DBClusterEndpointArn: String
}

input AwsRDSDescribeDBClusterEndpointsInput {
  DBClusterIdentifier: String
  DBClusterEndpointIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBClusterParameterGroupsOutput {
  Marker: String
  DBClusterParameterGroups: [AwsRDSSz]
}

input AwsRDSDescribeDBClusterParameterGroupsInput {
  DBClusterParameterGroupName: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBClusterParametersOutput {
  Parameters: [AwsRDSS61]
  Marker: String
}

type AwsRDSS61 {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
  SupportedEngineModes: [String]
}

input AwsRDSDescribeDBClusterParametersInput {
  DBClusterParameterGroupName: String!
  Source: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBClusterSnapshotAttributesOutput {
  DBClusterSnapshotAttributesResult: AwsRDSS67
}

type AwsRDSS67 {
  DBClusterSnapshotIdentifier: String
  DBClusterSnapshotAttributes: [AwsRDSS67DBClusterSnapshotAttributes]
}

type AwsRDSS67DBClusterSnapshotAttributes {
  AttributeName: String
  AttributeValues: [String]
}

input AwsRDSDescribeDBClusterSnapshotAttributesInput {
  DBClusterSnapshotIdentifier: String!
}

type AwsRDSDescribeDBClusterSnapshotsOutput {
  Marker: String
  DBClusterSnapshots: [AwsRDSS12]
}

input AwsRDSDescribeDBClusterSnapshotsInput {
  DBClusterIdentifier: String
  DBClusterSnapshotIdentifier: String
  SnapshotType: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
  IncludeShared: Boolean
  IncludePublic: Boolean
}

type AwsRDSDescribeDBClustersOutput {
  Marker: String
  DBClusters: [AwsRDSS1z]
}

input AwsRDSDescribeDBClustersInput {
  DBClusterIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
  IncludeShared: Boolean
}

type AwsRDSDescribeDBEngineVersionsOutput {
  Marker: String
  DBEngineVersions: [AwsRDSDescribeDBEngineVersionsOutputDBEngineVersions]
}

type AwsRDSDescribeDBEngineVersionsOutputDBEngineVersions {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  DBEngineDescription: String
  DBEngineVersionDescription: String
  DefaultCharacterSet: AwsRDSS6l
  SupportedCharacterSets: [AwsRDSS6l]
  SupportedNcharCharacterSets: [AwsRDSS6l]
  ValidUpgradeTarget: [AwsRDSDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget]
  SupportedTimezones: [AwsRDSDescribeDBEngineVersionsOutputDBEngineVersionsSupportedTimezones]
  ExportableLogTypes: [String]
  SupportsLogExportsToCloudwatchLogs: Boolean
  SupportsReadReplica: Boolean
  SupportedEngineModes: [String]
  SupportedFeatureNames: [String]
  Status: String
  SupportsParallelQuery: Boolean
  SupportsGlobalDatabases: Boolean
}

type AwsRDSS6l {
  CharacterSetName: String
  CharacterSetDescription: String
}

type AwsRDSDescribeDBEngineVersionsOutputDBEngineVersionsValidUpgradeTarget {
  Engine: String
  EngineVersion: String
  Description: String
  AutoUpgrade: Boolean
  IsMajorVersionUpgrade: Boolean
  SupportedEngineModes: [String]
  SupportsParallelQuery: Boolean
  SupportsGlobalDatabases: Boolean
}

type AwsRDSDescribeDBEngineVersionsOutputDBEngineVersionsSupportedTimezones {
  TimezoneName: String
}

input AwsRDSDescribeDBEngineVersionsInput {
  Engine: String
  EngineVersion: String
  DBParameterGroupFamily: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
  DefaultOnly: Boolean
  ListSupportedCharacterSets: Boolean
  ListSupportedTimezones: Boolean
  IncludeAll: Boolean
}

type AwsRDSDescribeDBInstanceAutomatedBackupsOutput {
  Marker: String
  DBInstanceAutomatedBackups: [AwsRDSS4q]
}

input AwsRDSDescribeDBInstanceAutomatedBackupsInput {
  DbiResourceId: String
  DBInstanceIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
  DBInstanceAutomatedBackupsArn: String
}

type AwsRDSDescribeDBInstancesOutput {
  Marker: String
  DBInstances: [AwsRDSS2o]
}

input AwsRDSDescribeDBInstancesInput {
  DBInstanceIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBLogFilesOutput {
  DescribeDBLogFiles: [AwsRDSDescribeDBLogFilesOutputDescribeDBLogFiles]
  Marker: String
}

type AwsRDSDescribeDBLogFilesOutputDescribeDBLogFiles {
  LogFileName: String
  LastWritten: JSON
  Size: JSON
}

input AwsRDSDescribeDBLogFilesInput {
  DBInstanceIdentifier: String!
  FilenameContains: String
  FileLastWritten: JSON
  FileSize: JSON
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBParameterGroupsOutput {
  Marker: String
  DBParameterGroups: [AwsRDSS16]
}

input AwsRDSDescribeDBParameterGroupsInput {
  DBParameterGroupName: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBParametersOutput {
  Parameters: [AwsRDSS61]
  Marker: String
}

input AwsRDSDescribeDBParametersInput {
  DBParameterGroupName: String!
  Source: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBProxiesOutput {
  DBProxies: [AwsRDSS3k]
  Marker: String
}

input AwsRDSDescribeDBProxiesInput {
  DBProxyName: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeDBProxyEndpointsOutput {
  DBProxyEndpoints: [AwsRDSS3t]
  Marker: String
}

input AwsRDSDescribeDBProxyEndpointsInput {
  DBProxyName: String
  DBProxyEndpointName: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeDBProxyTargetGroupsOutput {
  TargetGroups: [AwsRDSS7h]
  Marker: String
}

type AwsRDSS7h {
  DBProxyName: String
  TargetGroupName: String
  TargetGroupArn: String
  IsDefault: Boolean
  Status: String
  ConnectionPoolConfig: AwsRDSS7hConnectionPoolConfig
  CreatedDate: Date
  UpdatedDate: Date
}

type AwsRDSS7hConnectionPoolConfig {
  MaxConnectionsPercent: Int
  MaxIdleConnectionsPercent: Int
  ConnectionBorrowTimeout: Int
  SessionPinningFilters: [String]
  InitQuery: String
}

input AwsRDSDescribeDBProxyTargetGroupsInput {
  DBProxyName: String!
  TargetGroupName: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeDBProxyTargetsOutput {
  Targets: [AwsRDSS7l]
  Marker: String
}

type AwsRDSS7l {
  TargetArn: String
  Endpoint: String
  TrackedClusterId: String
  RdsResourceId: String
  Port: Int
  Type: String
  Role: String
  TargetHealth: AwsRDSS7lTargetHealth
}

type AwsRDSS7lTargetHealth {
  State: String
  Reason: String
  Description: String
}

input AwsRDSDescribeDBProxyTargetsInput {
  DBProxyName: String!
  TargetGroupName: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeDBSecurityGroupsOutput {
  Marker: String
  DBSecurityGroups: [AwsRDSSl]
}

input AwsRDSDescribeDBSecurityGroupsInput {
  DBSecurityGroupName: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeDBSnapshotAttributesOutput {
  DBSnapshotAttributesResult: AwsRDSS7x
}

type AwsRDSS7x {
  DBSnapshotIdentifier: String
  DBSnapshotAttributes: [AwsRDSS7xDBSnapshotAttributes]
}

type AwsRDSS7xDBSnapshotAttributes {
  AttributeName: String
  AttributeValues: [String]
}

input AwsRDSDescribeDBSnapshotAttributesInput {
  DBSnapshotIdentifier: String!
}

type AwsRDSDescribeDBSnapshotsOutput {
  Marker: String
  DBSnapshots: [AwsRDSS19]
}

input AwsRDSDescribeDBSnapshotsInput {
  DBInstanceIdentifier: String
  DBSnapshotIdentifier: String
  SnapshotType: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
  IncludeShared: Boolean
  IncludePublic: Boolean
  DbiResourceId: String
}

type AwsRDSDescribeDBSubnetGroupsOutput {
  Marker: String
  DBSubnetGroups: [AwsRDSS2s]
}

input AwsRDSDescribeDBSubnetGroupsInput {
  DBSubnetGroupName: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeEngineDefaultClusterParametersOutput {
  EngineDefaults: AwsRDSS88
}

type AwsRDSS88 {
  DBParameterGroupFamily: String
  Marker: String
  Parameters: [AwsRDSS61]
}

input AwsRDSDescribeEngineDefaultClusterParametersInput {
  DBParameterGroupFamily: String!
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeEngineDefaultParametersOutput {
  EngineDefaults: AwsRDSS88
}

input AwsRDSDescribeEngineDefaultParametersInput {
  DBParameterGroupFamily: String!
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeEventCategoriesOutput {
  EventCategoriesMapList: [AwsRDSDescribeEventCategoriesOutputEventCategoriesMapList]
}

type AwsRDSDescribeEventCategoriesOutputEventCategoriesMapList {
  SourceType: String
  EventCategories: [String]
}

input AwsRDSDescribeEventCategoriesInput {
  SourceType: String
  Filters: [AwsRDSS5hInput]
}

type AwsRDSDescribeEventSubscriptionsOutput {
  Marker: String
  EventSubscriptionsList: [AwsRDSS6]
}

input AwsRDSDescribeEventSubscriptionsInput {
  SubscriptionName: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeEventsOutput {
  Marker: String
  Events: [AwsRDSDescribeEventsOutputEvents]
}

type AwsRDSDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  EventCategories: [String]
  Date: Date
  SourceArn: String
}

input AwsRDSDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  EventCategories: [String]
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeExportTasksOutput {
  Marker: String
  ExportTasks: [AwsRDSSu]
}

type AwsRDSSu {
  ExportTaskIdentifier: String
  SourceArn: String
  ExportOnly: [String]
  SnapshotTime: Date
  TaskStartTime: Date
  TaskEndTime: Date
  S3Bucket: String
  S3Prefix: String
  IamRoleArn: String
  KmsKeyId: String
  Status: String
  PercentProgress: Int
  TotalExtractedDataInGB: Int
  FailureCause: String
  WarningMessage: String
}

input AwsRDSDescribeExportTasksInput {
  ExportTaskIdentifier: String
  SourceArn: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeGlobalClustersOutput {
  Marker: String
  GlobalClusters: [AwsRDSS46]
}

input AwsRDSDescribeGlobalClustersInput {
  GlobalClusterIdentifier: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeInstallationMediaOutput {
  Marker: String
  InstallationMedia: [AwsRDSS56]
}

type AwsRDSS56 {
  InstallationMediaId: String
  CustomAvailabilityZoneId: String
  Engine: String
  EngineVersion: String
  EngineInstallationMediaPath: String
  OSInstallationMediaPath: String
  Status: String
  FailureCause: AwsRDSS56FailureCause
}

type AwsRDSS56FailureCause {
  Message: String
}

input AwsRDSDescribeInstallationMediaInput {
  InstallationMediaId: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeOptionGroupOptionsOutput {
  OptionGroupOptions: [AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptions]
  Marker: String
}

type AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptions {
  Name: String
  Description: String
  EngineName: String
  MajorEngineVersion: String
  MinimumRequiredMinorEngineVersion: String
  PortRequired: Boolean
  DefaultPort: Int
  OptionsDependedOn: [String]
  OptionsConflictsWith: [String]
  Persistent: Boolean
  Permanent: Boolean
  RequiresAutoMinorEngineVersionUpgrade: Boolean
  VpcOnly: Boolean
  SupportsOptionVersionDowngrade: Boolean
  OptionGroupOptionSettings: [AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionSettings]
  OptionGroupOptionVersions: [AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionVersions]
}

type AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionSettings {
  SettingName: String
  SettingDescription: String
  DefaultValue: String
  ApplyType: String
  AllowedValues: String
  IsModifiable: Boolean
  IsRequired: Boolean
  MinimumEngineVersionPerAllowedValue: [AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionSettingsMinimumEngineVersionPerAllowedValue]
}

type AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionSettingsMinimumEngineVersionPerAllowedValue {
  AllowedValue: String
  MinimumEngineVersion: String
}

type AwsRDSDescribeOptionGroupOptionsOutputOptionGroupOptionsOptionGroupOptionVersions {
  Version: String
  IsDefault: Boolean
}

input AwsRDSDescribeOptionGroupOptionsInput {
  EngineName: String!
  MajorEngineVersion: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeOptionGroupsOutput {
  OptionGroupsList: [AwsRDSS1f]
  Marker: String
}

input AwsRDSDescribeOptionGroupsInput {
  OptionGroupName: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
  EngineName: String
  MajorEngineVersion: String
}

type AwsRDSDescribeOrderableDBInstanceOptionsOutput {
  OrderableDBInstanceOptions: [AwsRDSDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions]
  Marker: String
}

type AwsRDSDescribeOrderableDBInstanceOptionsOutputOrderableDBInstanceOptions {
  Engine: String
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  AvailabilityZoneGroup: String
  AvailabilityZones: [AwsRDSS2v]
  MultiAZCapable: Boolean
  ReadReplicaCapable: Boolean
  Vpc: Boolean
  SupportsStorageEncryption: Boolean
  StorageType: String
  SupportsIops: Boolean
  SupportsEnhancedMonitoring: Boolean
  SupportsIAMDatabaseAuthentication: Boolean
  SupportsPerformanceInsights: Boolean
  MinStorageSize: Int
  MaxStorageSize: Int
  MinIopsPerDbInstance: Int
  MaxIopsPerDbInstance: Int
  MinIopsPerGib: JSON
  MaxIopsPerGib: JSON
  AvailableProcessorFeatures: [AwsRDSS9h]
  SupportedEngineModes: [String]
  SupportsStorageAutoscaling: Boolean
  SupportsKerberosAuthentication: Boolean
  OutpostCapable: Boolean
  SupportedActivityStreamModes: [String]
  SupportsGlobalDatabases: Boolean
}

type AwsRDSS9h {
  Name: String
  DefaultValue: String
  AllowedValues: String
}

input AwsRDSDescribeOrderableDBInstanceOptionsInput {
  Engine: String!
  EngineVersion: String
  DBInstanceClass: String
  LicenseModel: String
  AvailabilityZoneGroup: String
  Vpc: Boolean
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribePendingMaintenanceActionsOutput {
  PendingMaintenanceActions: [AwsRDSSf]
  Marker: String
}

input AwsRDSDescribePendingMaintenanceActionsInput {
  ResourceIdentifier: String
  Filters: [AwsRDSS5hInput]
  Marker: String
  MaxRecords: Int
}

type AwsRDSDescribeReservedDBInstancesOutput {
  Marker: String
  ReservedDBInstances: [AwsRDSS9q]
}

type AwsRDSS9q {
  ReservedDBInstanceId: String
  ReservedDBInstancesOfferingId: String
  DBInstanceClass: String
  StartTime: Date
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  DBInstanceCount: Int
  ProductDescription: String
  OfferingType: String
  MultiAZ: Boolean
  State: String
  RecurringCharges: [AwsRDSS9s]
  ReservedDBInstanceArn: String
  LeaseId: String
}

type AwsRDSS9s {
  RecurringChargeAmount: JSON
  RecurringChargeFrequency: String
}

input AwsRDSDescribeReservedDBInstancesInput {
  ReservedDBInstanceId: String
  ReservedDBInstancesOfferingId: String
  DBInstanceClass: String
  Duration: String
  ProductDescription: String
  OfferingType: String
  MultiAZ: Boolean
  LeaseId: String
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeReservedDBInstancesOfferingsOutput {
  Marker: String
  ReservedDBInstancesOfferings: [AwsRDSDescribeReservedDBInstancesOfferingsOutputReservedDBInstancesOfferings]
}

type AwsRDSDescribeReservedDBInstancesOfferingsOutputReservedDBInstancesOfferings {
  ReservedDBInstancesOfferingId: String
  DBInstanceClass: String
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  ProductDescription: String
  OfferingType: String
  MultiAZ: Boolean
  RecurringCharges: [AwsRDSS9s]
}

input AwsRDSDescribeReservedDBInstancesOfferingsInput {
  ReservedDBInstancesOfferingId: String
  DBInstanceClass: String
  Duration: String
  ProductDescription: String
  OfferingType: String
  MultiAZ: Boolean
  Filters: [AwsRDSS5hInput]
  MaxRecords: Int
  Marker: String
}

type AwsRDSDescribeSourceRegionsOutput {
  Marker: String
  SourceRegions: [AwsRDSDescribeSourceRegionsOutputSourceRegions]
}

type AwsRDSDescribeSourceRegionsOutputSourceRegions {
  RegionName: String
  Endpoint: String
  Status: String
  SupportsDBInstanceAutomatedBackupsReplication: Boolean
}

input AwsRDSDescribeSourceRegionsInput {
  RegionName: String
  MaxRecords: Int
  Marker: String
  Filters: [AwsRDSS5hInput]
}

type AwsRDSDescribeValidDBInstanceModificationsOutput {
  ValidDBInstanceModificationsMessage: AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessage
}

type AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessage {
  Storage: [AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorage]
  ValidProcessorFeatures: [AwsRDSS9h]
}

type AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorage {
  StorageType: String
  StorageSize: [AwsRDSSa7]
  ProvisionedIops: [AwsRDSSa7]
  IopsToStorageRatio: [AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorageIopsToStorageRatio]
  SupportsStorageAutoscaling: Boolean
}

type AwsRDSSa7 {
  From: Int
  To: Int
  Step: Int
}

type AwsRDSDescribeValidDBInstanceModificationsOutputValidDBInstanceModificationsMessageStorageIopsToStorageRatio {
  From: JSON
  To: JSON
}

input AwsRDSDescribeValidDBInstanceModificationsInput {
  DBInstanceIdentifier: String!
}

type AwsRDSDownloadDBLogFilePortionOutput {
  LogFileData: String
  Marker: String
  AdditionalDataPending: Boolean
}

input AwsRDSDownloadDBLogFilePortionInput {
  DBInstanceIdentifier: String!
  LogFileName: String!
  Marker: String
  NumberOfLines: Int
}

type AwsRDSFailoverDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSFailoverDBClusterInput {
  DBClusterIdentifier: String!
  TargetDBInstanceIdentifier: String
}

type AwsRDSFailoverGlobalClusterOutput {
  GlobalCluster: AwsRDSS46
}

input AwsRDSFailoverGlobalClusterInput {
  GlobalClusterIdentifier: String!
  TargetDbClusterIdentifier: String!
}

input AwsRDSImportInstallationMediaInput {
  CustomAvailabilityZoneId: String!
  Engine: String!
  EngineVersion: String!
  EngineInstallationMediaPath: String!
  OSInstallationMediaPath: String!
}

type AwsRDSListTagsForResourceOutput {
  TagList: [AwsRDSSb]
}

input AwsRDSListTagsForResourceInput {
  ResourceName: String!
  Filters: [AwsRDSS5hInput]
}

type AwsRDSModifyCertificatesOutput {
  Certificate: AwsRDSS5m
}

input AwsRDSModifyCertificatesInput {
  CertificateIdentifier: String
  RemoveCustomerOverride: Boolean
}

type AwsRDSModifyCurrentDBClusterCapacityOutput {
  DBClusterIdentifier: String
  PendingCapacity: Int
  CurrentCapacity: Int
  SecondsBeforeTimeout: Int
  TimeoutAction: String
}

input AwsRDSModifyCurrentDBClusterCapacityInput {
  DBClusterIdentifier: String!
  Capacity: Int
  SecondsBeforeTimeout: Int
  TimeoutAction: String
}

type AwsRDSModifyDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSModifyDBClusterInput {
  DBClusterIdentifier: String!
  NewDBClusterIdentifier: String
  ApplyImmediately: Boolean
  BackupRetentionPeriod: Int
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  Port: Int
  MasterUserPassword: String
  OptionGroupName: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  EnableIAMDatabaseAuthentication: Boolean
  BacktrackWindow: JSON
  CloudwatchLogsExportConfiguration: AwsRDSSarInput
  EngineVersion: String
  AllowMajorVersionUpgrade: Boolean
  DBInstanceParameterGroupName: String
  Domain: String
  DomainIAMRoleName: String
  ScalingConfiguration: AwsRDSS1xInput
  DeletionProtection: Boolean
  EnableHttpEndpoint: Boolean
  CopyTagsToSnapshot: Boolean
  EnableGlobalWriteForwarding: Boolean
}

input AwsRDSSarInput {
  EnableLogTypes: [String]
  DisableLogTypes: [String]
}

input AwsRDSModifyDBClusterEndpointInput {
  DBClusterEndpointIdentifier: String!
  EndpointType: String
  StaticMembers: [String]
  ExcludedMembers: [String]
}

input AwsRDSModifyDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  Parameters: [AwsRDSS61Input]!
}

input AwsRDSS61Input {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
  ApplyMethod: String
  SupportedEngineModes: [String]
}

type AwsRDSModifyDBClusterSnapshotAttributeOutput {
  DBClusterSnapshotAttributesResult: AwsRDSS67
}

input AwsRDSModifyDBClusterSnapshotAttributeInput {
  DBClusterSnapshotIdentifier: String!
  AttributeName: String!
  ValuesToAdd: [String]
  ValuesToRemove: [String]
}

type AwsRDSModifyDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSModifyDBInstanceInput {
  DBInstanceIdentifier: String!
  AllocatedStorage: Int
  DBInstanceClass: String
  DBSubnetGroupName: String
  DBSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  ApplyImmediately: Boolean
  MasterUserPassword: String
  DBParameterGroupName: String
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  MultiAZ: Boolean
  EngineVersion: String
  AllowMajorVersionUpgrade: Boolean
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  NewDBInstanceIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  CACertificateIdentifier: String
  Domain: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  DBPortNumber: Int
  PubliclyAccessible: Boolean
  MonitoringRoleArn: String
  DomainIAMRoleName: String
  PromotionTier: Int
  EnableIAMDatabaseAuthentication: Boolean
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  CloudwatchLogsExportConfiguration: AwsRDSSarInput
  ProcessorFeatures: [AwsRDSS1bInput]
  UseDefaultProcessorFeatures: Boolean
  DeletionProtection: Boolean
  MaxAllocatedStorage: Int
  CertificateRotationRestart: Boolean
  ReplicaMode: String
  EnableCustomerOwnedIp: Boolean
  AwsBackupRecoveryPointArn: String
}

input AwsRDSModifyDBParameterGroupInput {
  DBParameterGroupName: String!
  Parameters: [AwsRDSS61Input]!
}

type AwsRDSModifyDBProxyOutput {
  DBProxy: AwsRDSS3k
}

input AwsRDSModifyDBProxyInput {
  DBProxyName: String!
  NewDBProxyName: String
  Auth: [AwsRDSS3fInput]
  RequireTLS: Boolean
  IdleClientTimeout: Int
  DebugLogging: Boolean
  RoleArn: String
  SecurityGroups: [String]
}

type AwsRDSModifyDBProxyEndpointOutput {
  DBProxyEndpoint: AwsRDSS3t
}

input AwsRDSModifyDBProxyEndpointInput {
  DBProxyEndpointName: String!
  NewDBProxyEndpointName: String
  VpcSecurityGroupIds: [String]
}

type AwsRDSModifyDBProxyTargetGroupOutput {
  DBProxyTargetGroup: AwsRDSS7h
}

input AwsRDSModifyDBProxyTargetGroupInput {
  TargetGroupName: String!
  DBProxyName: String!
  ConnectionPoolConfig: AwsRDSModifyDBProxyTargetGroupConnectionPoolConfigInput
  NewName: String
}

input AwsRDSModifyDBProxyTargetGroupConnectionPoolConfigInput {
  MaxConnectionsPercent: Int
  MaxIdleConnectionsPercent: Int
  ConnectionBorrowTimeout: Int
  SessionPinningFilters: [String]
  InitQuery: String
}

type AwsRDSModifyDBSnapshotOutput {
  DBSnapshot: AwsRDSS19
}

input AwsRDSModifyDBSnapshotInput {
  DBSnapshotIdentifier: String!
  EngineVersion: String
  OptionGroupName: String
}

type AwsRDSModifyDBSnapshotAttributeOutput {
  DBSnapshotAttributesResult: AwsRDSS7x
}

input AwsRDSModifyDBSnapshotAttributeInput {
  DBSnapshotIdentifier: String!
  AttributeName: String!
  ValuesToAdd: [String]
  ValuesToRemove: [String]
}

type AwsRDSModifyDBSubnetGroupOutput {
  DBSubnetGroup: AwsRDSS2s
}

input AwsRDSModifyDBSubnetGroupInput {
  DBSubnetGroupName: String!
  DBSubnetGroupDescription: String
  SubnetIds: [String]!
}

type AwsRDSModifyEventSubscriptionOutput {
  EventSubscription: AwsRDSS6
}

input AwsRDSModifyEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String
  SourceType: String
  EventCategories: [String]
  Enabled: Boolean
}

type AwsRDSModifyGlobalClusterOutput {
  GlobalCluster: AwsRDSS46
}

input AwsRDSModifyGlobalClusterInput {
  GlobalClusterIdentifier: String
  NewGlobalClusterIdentifier: String
  DeletionProtection: Boolean
  EngineVersion: String
  AllowMajorVersionUpgrade: Boolean
}

type AwsRDSModifyOptionGroupOutput {
  OptionGroup: AwsRDSS1f
}

input AwsRDSModifyOptionGroupInput {
  OptionGroupName: String!
  OptionsToInclude: [AwsRDSModifyOptionGroupOptionsToIncludeInput]
  OptionsToRemove: [String]
  ApplyImmediately: Boolean
}

input AwsRDSModifyOptionGroupOptionsToIncludeInput {
  OptionName: String!
  Port: Int
  OptionVersion: String
  DBSecurityGroupMemberships: [String]
  VpcSecurityGroupMemberships: [String]
  OptionSettings: [AwsRDSS1jInput]
}

input AwsRDSS1jInput {
  Name: String
  Value: String
  DefaultValue: String
  Description: String
  ApplyType: String
  DataType: String
  AllowedValues: String
  IsModifiable: Boolean
  IsCollection: Boolean
}

type AwsRDSPromoteReadReplicaOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSPromoteReadReplicaInput {
  DBInstanceIdentifier: String!
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
}

type AwsRDSPromoteReadReplicaDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSPromoteReadReplicaDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsRDSPurchaseReservedDBInstancesOfferingOutput {
  ReservedDBInstance: AwsRDSS9q
}

input AwsRDSPurchaseReservedDBInstancesOfferingInput {
  ReservedDBInstancesOfferingId: String!
  ReservedDBInstanceId: String
  DBInstanceCount: Int
  Tags: [AwsRDSSbInput]
}

type AwsRDSRebootDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSRebootDBInstanceInput {
  DBInstanceIdentifier: String!
  ForceFailover: Boolean
}

type AwsRDSRegisterDBProxyTargetsOutput {
  DBProxyTargets: [AwsRDSS7l]
}

input AwsRDSRegisterDBProxyTargetsInput {
  DBProxyName: String!
  TargetGroupName: String
  DBInstanceIdentifiers: [String]
  DBClusterIdentifiers: [String]
}

type AwsRDSRemoveFromGlobalClusterOutput {
  GlobalCluster: AwsRDSS46
}

input AwsRDSRemoveFromGlobalClusterInput {
  GlobalClusterIdentifier: String
  DbClusterIdentifier: String
}

input AwsRDSRemoveRoleFromDBClusterInput {
  DBClusterIdentifier: String!
  RoleArn: String!
  FeatureName: String
}

input AwsRDSRemoveRoleFromDBInstanceInput {
  DBInstanceIdentifier: String!
  RoleArn: String!
  FeatureName: String!
}

type AwsRDSRemoveSourceIdentifierFromSubscriptionOutput {
  EventSubscription: AwsRDSS6
}

input AwsRDSRemoveSourceIdentifierFromSubscriptionInput {
  SubscriptionName: String!
  SourceIdentifier: String!
}

input AwsRDSRemoveTagsFromResourceInput {
  ResourceName: String!
  TagKeys: [String]!
}

input AwsRDSResetDBClusterParameterGroupInput {
  DBClusterParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsRDSS61Input]
}

input AwsRDSResetDBParameterGroupInput {
  DBParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsRDSS61Input]
}

type AwsRDSRestoreDBClusterFromS3Output {
  DBCluster: AwsRDSS1z
}

input AwsRDSRestoreDBClusterFromS3Input {
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  CharacterSetName: String
  DatabaseName: String
  DBClusterIdentifier: String!
  DBClusterParameterGroupName: String
  VpcSecurityGroupIds: [String]
  DBSubnetGroupName: String
  Engine: String!
  EngineVersion: String
  Port: Int
  MasterUsername: String!
  MasterUserPassword: String!
  OptionGroupName: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  Tags: [AwsRDSSbInput]
  StorageEncrypted: Boolean
  KmsKeyId: String
  EnableIAMDatabaseAuthentication: Boolean
  SourceEngine: String!
  SourceEngineVersion: String!
  S3BucketName: String!
  S3Prefix: String
  S3IngestionRoleArn: String!
  BacktrackWindow: JSON
  EnableCloudwatchLogsExports: [String]
  DeletionProtection: Boolean
  CopyTagsToSnapshot: Boolean
  Domain: String
  DomainIAMRoleName: String
}

type AwsRDSRestoreDBClusterFromSnapshotOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSRestoreDBClusterFromSnapshotInput {
  AvailabilityZones: [String]
  DBClusterIdentifier: String!
  SnapshotIdentifier: String!
  Engine: String!
  EngineVersion: String
  Port: Int
  DBSubnetGroupName: String
  DatabaseName: String
  OptionGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsRDSSbInput]
  KmsKeyId: String
  EnableIAMDatabaseAuthentication: Boolean
  BacktrackWindow: JSON
  EnableCloudwatchLogsExports: [String]
  EngineMode: String
  ScalingConfiguration: AwsRDSS1xInput
  DBClusterParameterGroupName: String
  DeletionProtection: Boolean
  CopyTagsToSnapshot: Boolean
  Domain: String
  DomainIAMRoleName: String
}

type AwsRDSRestoreDBClusterToPointInTimeOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSRestoreDBClusterToPointInTimeInput {
  DBClusterIdentifier: String!
  RestoreType: String
  SourceDBClusterIdentifier: String!
  RestoreToTime: Date
  UseLatestRestorableTime: Boolean
  Port: Int
  DBSubnetGroupName: String
  OptionGroupName: String
  VpcSecurityGroupIds: [String]
  Tags: [AwsRDSSbInput]
  KmsKeyId: String
  EnableIAMDatabaseAuthentication: Boolean
  BacktrackWindow: JSON
  EnableCloudwatchLogsExports: [String]
  DBClusterParameterGroupName: String
  DeletionProtection: Boolean
  CopyTagsToSnapshot: Boolean
  Domain: String
  DomainIAMRoleName: String
  ScalingConfiguration: AwsRDSS1xInput
  EngineMode: String
}

type AwsRDSRestoreDBInstanceFromDBSnapshotOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSRestoreDBInstanceFromDBSnapshotInput {
  DBInstanceIdentifier: String!
  DBSnapshotIdentifier: String!
  DBInstanceClass: String
  Port: Int
  AvailabilityZone: String
  DBSubnetGroupName: String
  MultiAZ: Boolean
  PubliclyAccessible: Boolean
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  DBName: String
  Engine: String
  Iops: Int
  OptionGroupName: String
  Tags: [AwsRDSSbInput]
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  VpcSecurityGroupIds: [String]
  Domain: String
  CopyTagsToSnapshot: Boolean
  DomainIAMRoleName: String
  EnableIAMDatabaseAuthentication: Boolean
  EnableCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1bInput]
  UseDefaultProcessorFeatures: Boolean
  DBParameterGroupName: String
  DeletionProtection: Boolean
  EnableCustomerOwnedIp: Boolean
}

type AwsRDSRestoreDBInstanceFromS3Output {
  DBInstance: AwsRDSS2o
}

input AwsRDSRestoreDBInstanceFromS3Input {
  DBName: String
  DBInstanceIdentifier: String!
  AllocatedStorage: Int
  DBInstanceClass: String!
  Engine: String!
  MasterUsername: String
  MasterUserPassword: String
  DBSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  AvailabilityZone: String
  DBSubnetGroupName: String
  PreferredMaintenanceWindow: String
  DBParameterGroupName: String
  BackupRetentionPeriod: Int
  PreferredBackupWindow: String
  Port: Int
  MultiAZ: Boolean
  EngineVersion: String
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  Iops: Int
  OptionGroupName: String
  PubliclyAccessible: Boolean
  Tags: [AwsRDSSbInput]
  StorageType: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  EnableIAMDatabaseAuthentication: Boolean
  SourceEngine: String!
  SourceEngineVersion: String!
  S3BucketName: String!
  S3Prefix: String
  S3IngestionRoleArn: String!
  EnablePerformanceInsights: Boolean
  PerformanceInsightsKMSKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnableCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1bInput]
  UseDefaultProcessorFeatures: Boolean
  DeletionProtection: Boolean
  MaxAllocatedStorage: Int
}

type AwsRDSRestoreDBInstanceToPointInTimeOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSRestoreDBInstanceToPointInTimeInput {
  SourceDBInstanceIdentifier: String
  TargetDBInstanceIdentifier: String!
  RestoreTime: Date
  UseLatestRestorableTime: Boolean
  DBInstanceClass: String
  Port: Int
  AvailabilityZone: String
  DBSubnetGroupName: String
  MultiAZ: Boolean
  PubliclyAccessible: Boolean
  AutoMinorVersionUpgrade: Boolean
  LicenseModel: String
  DBName: String
  Engine: String
  Iops: Int
  OptionGroupName: String
  CopyTagsToSnapshot: Boolean
  Tags: [AwsRDSSbInput]
  StorageType: String
  TdeCredentialArn: String
  TdeCredentialPassword: String
  VpcSecurityGroupIds: [String]
  Domain: String
  DomainIAMRoleName: String
  EnableIAMDatabaseAuthentication: Boolean
  EnableCloudwatchLogsExports: [String]
  ProcessorFeatures: [AwsRDSS1bInput]
  UseDefaultProcessorFeatures: Boolean
  DBParameterGroupName: String
  DeletionProtection: Boolean
  SourceDbiResourceId: String
  MaxAllocatedStorage: Int
  SourceDBInstanceAutomatedBackupsArn: String
  EnableCustomerOwnedIp: Boolean
}

type AwsRDSRevokeDBSecurityGroupIngressOutput {
  DBSecurityGroup: AwsRDSSl
}

input AwsRDSRevokeDBSecurityGroupIngressInput {
  DBSecurityGroupName: String!
  CIDRIP: String
  EC2SecurityGroupName: String
  EC2SecurityGroupId: String
  EC2SecurityGroupOwnerId: String
}

type AwsRDSStartActivityStreamOutput {
  KmsKeyId: String
  KinesisStreamName: String
  Status: String
  Mode: String
  ApplyImmediately: Boolean
  EngineNativeAuditFieldsIncluded: Boolean
}

input AwsRDSStartActivityStreamInput {
  ResourceArn: String!
  Mode: String!
  KmsKeyId: String!
  ApplyImmediately: Boolean
  EngineNativeAuditFieldsIncluded: Boolean
}

type AwsRDSStartDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSStartDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsRDSStartDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSStartDBInstanceInput {
  DBInstanceIdentifier: String!
}

type AwsRDSStartDBInstanceAutomatedBackupsReplicationOutput {
  DBInstanceAutomatedBackup: AwsRDSS4q
}

input AwsRDSStartDBInstanceAutomatedBackupsReplicationInput {
  SourceDBInstanceArn: String!
  BackupRetentionPeriod: Int
  KmsKeyId: String
  PreSignedUrl: String
}

input AwsRDSStartExportTaskInput {
  ExportTaskIdentifier: String!
  SourceArn: String!
  S3BucketName: String!
  IamRoleArn: String!
  KmsKeyId: String!
  S3Prefix: String
  ExportOnly: [String]
}

type AwsRDSStopActivityStreamOutput {
  KmsKeyId: String
  KinesisStreamName: String
  Status: String
}

input AwsRDSStopActivityStreamInput {
  ResourceArn: String!
  ApplyImmediately: Boolean
}

type AwsRDSStopDBClusterOutput {
  DBCluster: AwsRDSS1z
}

input AwsRDSStopDBClusterInput {
  DBClusterIdentifier: String!
}

type AwsRDSStopDBInstanceOutput {
  DBInstance: AwsRDSS2o
}

input AwsRDSStopDBInstanceInput {
  DBInstanceIdentifier: String!
  DBSnapshotIdentifier: String
}

type AwsRDSStopDBInstanceAutomatedBackupsReplicationOutput {
  DBInstanceAutomatedBackup: AwsRDSS4q
}

input AwsRDSStopDBInstanceAutomatedBackupsReplicationInput {
  SourceDBInstanceArn: String!
}

"""AWS RDS DataService (2018-08-01)"""
type AwsRDSDataService {
  batchExecuteStatement(input: AwsRDSDataServiceBatchExecuteStatementInput!, config: AwsConfig): AwsRDSDataServiceBatchExecuteStatementOutput
  beginTransaction(input: AwsRDSDataServiceBeginTransactionInput!, config: AwsConfig): AwsRDSDataServiceBeginTransactionOutput
  commitTransaction(input: AwsRDSDataServiceCommitTransactionInput!, config: AwsConfig): AwsRDSDataServiceCommitTransactionOutput
  executeSql(input: AwsRDSDataServiceExecuteSqlInput!, config: AwsConfig): AwsRDSDataServiceExecuteSqlOutput
  executeStatement(input: AwsRDSDataServiceExecuteStatementInput!, config: AwsConfig): AwsRDSDataServiceExecuteStatementOutput
  rollbackTransaction(input: AwsRDSDataServiceRollbackTransactionInput!, config: AwsConfig): AwsRDSDataServiceRollbackTransactionOutput
}

type AwsRDSDataServiceBatchExecuteStatementOutput {
  updateResults: [AwsRDSDataServiceBatchExecuteStatementOutputUpdateResults]
}

type AwsRDSDataServiceBatchExecuteStatementOutputUpdateResults {
  generatedFields: [AwsRDSDataServiceS8]
}

type AwsRDSDataServiceS8 {
  arrayValue: AwsRDSDataServiceS9
  blobValue: JSON
  booleanValue: Boolean
  doubleValue: JSON
  isNull: Boolean
  longValue: JSON
  stringValue: String
}

type AwsRDSDataServiceS9 {
  arrayValues: [JSON]
  booleanValues: [Boolean]
  doubleValues: [JSON]
  longValues: [JSON]
  stringValues: [String]
}

input AwsRDSDataServiceBatchExecuteStatementInput {
  database: String
  parameterSets: [[AwsRDSDataServiceS4Input]]
  resourceArn: String!
  schema: String
  secretArn: String!
  sql: String!
  transactionId: String
}

input AwsRDSDataServiceS4Input {
  name: String
  typeHint: String
  value: AwsRDSDataServiceS8Input
}

input AwsRDSDataServiceS8Input {
  arrayValue: AwsRDSDataServiceS9Input
  blobValue: JSON
  booleanValue: Boolean
  doubleValue: JSON
  isNull: Boolean
  longValue: JSON
  stringValue: String
}

input AwsRDSDataServiceS9Input {
  arrayValues: [JSON]
  booleanValues: [Boolean]
  doubleValues: [JSON]
  longValues: [JSON]
  stringValues: [String]
}

type AwsRDSDataServiceBeginTransactionOutput {
  transactionId: String
}

input AwsRDSDataServiceBeginTransactionInput {
  database: String
  resourceArn: String!
  schema: String
  secretArn: String!
}

type AwsRDSDataServiceCommitTransactionOutput {
  transactionStatus: String
}

input AwsRDSDataServiceCommitTransactionInput {
  resourceArn: String!
  secretArn: String!
  transactionId: String!
}

type AwsRDSDataServiceExecuteSqlOutput {
  sqlStatementResults: [AwsRDSDataServiceExecuteSqlOutputSqlStatementResults]
}

type AwsRDSDataServiceExecuteSqlOutputSqlStatementResults {
  numberOfRecordsUpdated: JSON
  resultFrame: AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrame
}

type AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrame {
  records: [AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrameRecords]
  resultSetMetadata: AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrameResultSetMetadata
}

type AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrameRecords {
  values: [AwsRDSDataServiceS15]
}

type AwsRDSDataServiceS15 {
  arrayValues: [JSON]
  bigIntValue: JSON
  bitValue: Boolean
  blobValue: JSON
  doubleValue: JSON
  intValue: Int
  isNull: Boolean
  realValue: Float
  stringValue: String
  structValue: AwsRDSDataServiceS15StructValue
}

type AwsRDSDataServiceS15StructValue {
  attributes: [JSON]
}

type AwsRDSDataServiceExecuteSqlOutputSqlStatementResultsResultFrameResultSetMetadata {
  columnCount: JSON
  columnMetadata: [AwsRDSDataServiceS1c]
}

type AwsRDSDataServiceS1c {
  arrayBaseColumnType: Int
  isAutoIncrement: Boolean
  isCaseSensitive: Boolean
  isCurrency: Boolean
  isSigned: Boolean
  label: String
  name: String
  nullable: Int
  precision: Int
  scale: Int
  schemaName: String
  tableName: String
  type: Int
  typeName: String
}

input AwsRDSDataServiceExecuteSqlInput {
  awsSecretStoreArn: String!
  database: String
  dbClusterOrInstanceArn: String!
  schema: String
  sqlStatements: String!
}

type AwsRDSDataServiceExecuteStatementOutput {
  columnMetadata: [AwsRDSDataServiceS1c]
  generatedFields: [AwsRDSDataServiceS8]
  numberOfRecordsUpdated: JSON
  records: [[AwsRDSDataServiceS8]]
}

input AwsRDSDataServiceExecuteStatementInput {
  continueAfterTimeout: Boolean
  database: String
  includeResultMetadata: Boolean
  parameters: [AwsRDSDataServiceS4Input]
  resourceArn: String!
  resultSetOptions: AwsRDSDataServiceExecuteStatementResultSetOptionsInput
  schema: String
  secretArn: String!
  sql: String!
  transactionId: String
}

input AwsRDSDataServiceExecuteStatementResultSetOptionsInput {
  decimalReturnType: String
}

type AwsRDSDataServiceRollbackTransactionOutput {
  transactionStatus: String
}

input AwsRDSDataServiceRollbackTransactionInput {
  resourceArn: String!
  secretArn: String!
  transactionId: String!
}

"""Amazon Redshift (2012-12-01)"""
type AwsRedshift {
  acceptReservedNodeExchange(input: AwsRedshiftAcceptReservedNodeExchangeInput!, config: AwsConfig): AwsRedshiftAcceptReservedNodeExchangeOutput
  addPartner(input: JSON, config: AwsConfig): JSON
  authorizeClusterSecurityGroupIngress(input: AwsRedshiftAuthorizeClusterSecurityGroupIngressInput!, config: AwsConfig): AwsRedshiftAuthorizeClusterSecurityGroupIngressOutput
  authorizeEndpointAccess(input: AwsRedshiftAuthorizeEndpointAccessInput!, config: AwsConfig): JSON
  authorizeSnapshotAccess(input: AwsRedshiftAuthorizeSnapshotAccessInput!, config: AwsConfig): AwsRedshiftAuthorizeSnapshotAccessOutput
  batchDeleteClusterSnapshots(input: AwsRedshiftBatchDeleteClusterSnapshotsInput!, config: AwsConfig): AwsRedshiftBatchDeleteClusterSnapshotsOutput
  batchModifyClusterSnapshots(input: AwsRedshiftBatchModifyClusterSnapshotsInput!, config: AwsConfig): AwsRedshiftBatchModifyClusterSnapshotsOutput
  cancelResize(input: AwsRedshiftCancelResizeInput!, config: AwsConfig): JSON
  copyClusterSnapshot(input: AwsRedshiftCopyClusterSnapshotInput!, config: AwsConfig): AwsRedshiftCopyClusterSnapshotOutput
  createCluster(input: AwsRedshiftCreateClusterInput!, config: AwsConfig): AwsRedshiftCreateClusterOutput
  createClusterParameterGroup(input: AwsRedshiftCreateClusterParameterGroupInput!, config: AwsConfig): AwsRedshiftCreateClusterParameterGroupOutput
  createClusterSecurityGroup(input: AwsRedshiftCreateClusterSecurityGroupInput!, config: AwsConfig): AwsRedshiftCreateClusterSecurityGroupOutput
  createClusterSnapshot(input: AwsRedshiftCreateClusterSnapshotInput!, config: AwsConfig): AwsRedshiftCreateClusterSnapshotOutput
  createClusterSubnetGroup(input: AwsRedshiftCreateClusterSubnetGroupInput!, config: AwsConfig): AwsRedshiftCreateClusterSubnetGroupOutput
  createEndpointAccess(input: AwsRedshiftCreateEndpointAccessInput!, config: AwsConfig): JSON
  createEventSubscription(input: AwsRedshiftCreateEventSubscriptionInput!, config: AwsConfig): AwsRedshiftCreateEventSubscriptionOutput
  createHsmClientCertificate(input: AwsRedshiftCreateHsmClientCertificateInput!, config: AwsConfig): AwsRedshiftCreateHsmClientCertificateOutput
  createHsmConfiguration(input: AwsRedshiftCreateHsmConfigurationInput!, config: AwsConfig): AwsRedshiftCreateHsmConfigurationOutput
  createScheduledAction(input: AwsRedshiftCreateScheduledActionInput!, config: AwsConfig): JSON
  createSnapshotCopyGrant(input: AwsRedshiftCreateSnapshotCopyGrantInput!, config: AwsConfig): AwsRedshiftCreateSnapshotCopyGrantOutput
  createSnapshotSchedule(input: AwsRedshiftCreateSnapshotScheduleInput, config: AwsConfig): JSON
  createTags(input: AwsRedshiftCreateTagsInput!, config: AwsConfig): JSON
  createUsageLimit(input: AwsRedshiftCreateUsageLimitInput!, config: AwsConfig): JSON
  deleteCluster(input: AwsRedshiftDeleteClusterInput!, config: AwsConfig): AwsRedshiftDeleteClusterOutput
  deleteClusterParameterGroup(input: AwsRedshiftDeleteClusterParameterGroupInput!, config: AwsConfig): JSON
  deleteClusterSecurityGroup(input: AwsRedshiftDeleteClusterSecurityGroupInput!, config: AwsConfig): JSON
  deleteClusterSnapshot(input: JSON, config: AwsConfig): AwsRedshiftDeleteClusterSnapshotOutput
  deleteClusterSubnetGroup(input: AwsRedshiftDeleteClusterSubnetGroupInput!, config: AwsConfig): JSON
  deleteEndpointAccess(input: AwsRedshiftDeleteEndpointAccessInput!, config: AwsConfig): JSON
  deleteEventSubscription(input: AwsRedshiftDeleteEventSubscriptionInput!, config: AwsConfig): JSON
  deleteHsmClientCertificate(input: AwsRedshiftDeleteHsmClientCertificateInput!, config: AwsConfig): JSON
  deleteHsmConfiguration(input: AwsRedshiftDeleteHsmConfigurationInput!, config: AwsConfig): JSON
  deletePartner(input: JSON, config: AwsConfig): JSON
  deleteScheduledAction(input: AwsRedshiftDeleteScheduledActionInput!, config: AwsConfig): JSON
  deleteSnapshotCopyGrant(input: AwsRedshiftDeleteSnapshotCopyGrantInput!, config: AwsConfig): JSON
  deleteSnapshotSchedule(input: AwsRedshiftDeleteSnapshotScheduleInput!, config: AwsConfig): JSON
  deleteTags(input: AwsRedshiftDeleteTagsInput!, config: AwsConfig): JSON
  deleteUsageLimit(input: AwsRedshiftDeleteUsageLimitInput!, config: AwsConfig): JSON
  describeAccountAttributes(input: AwsRedshiftDescribeAccountAttributesInput, config: AwsConfig): AwsRedshiftDescribeAccountAttributesOutput
  describeClusterDbRevisions(input: AwsRedshiftDescribeClusterDbRevisionsInput, config: AwsConfig): AwsRedshiftDescribeClusterDbRevisionsOutput
  describeClusterParameterGroups(input: AwsRedshiftDescribeClusterParameterGroupsInput, config: AwsConfig): AwsRedshiftDescribeClusterParameterGroupsOutput
  describeClusterParameters(input: AwsRedshiftDescribeClusterParametersInput!, config: AwsConfig): AwsRedshiftDescribeClusterParametersOutput
  describeClusterSecurityGroups(input: AwsRedshiftDescribeClusterSecurityGroupsInput, config: AwsConfig): AwsRedshiftDescribeClusterSecurityGroupsOutput
  describeClusterSnapshots(input: AwsRedshiftDescribeClusterSnapshotsInput, config: AwsConfig): AwsRedshiftDescribeClusterSnapshotsOutput
  describeClusterSubnetGroups(input: AwsRedshiftDescribeClusterSubnetGroupsInput, config: AwsConfig): AwsRedshiftDescribeClusterSubnetGroupsOutput
  describeClusterTracks(input: AwsRedshiftDescribeClusterTracksInput, config: AwsConfig): AwsRedshiftDescribeClusterTracksOutput
  describeClusterVersions(input: AwsRedshiftDescribeClusterVersionsInput, config: AwsConfig): AwsRedshiftDescribeClusterVersionsOutput
  describeClusters(input: AwsRedshiftDescribeClustersInput, config: AwsConfig): AwsRedshiftDescribeClustersOutput
  describeDefaultClusterParameters(input: AwsRedshiftDescribeDefaultClusterParametersInput!, config: AwsConfig): AwsRedshiftDescribeDefaultClusterParametersOutput
  describeEndpointAccess(input: AwsRedshiftDescribeEndpointAccessInput, config: AwsConfig): AwsRedshiftDescribeEndpointAccessOutput
  describeEndpointAuthorization(input: AwsRedshiftDescribeEndpointAuthorizationInput, config: AwsConfig): AwsRedshiftDescribeEndpointAuthorizationOutput
  describeEventCategories(input: AwsRedshiftDescribeEventCategoriesInput, config: AwsConfig): AwsRedshiftDescribeEventCategoriesOutput
  describeEventSubscriptions(input: AwsRedshiftDescribeEventSubscriptionsInput, config: AwsConfig): AwsRedshiftDescribeEventSubscriptionsOutput
  describeEvents(input: AwsRedshiftDescribeEventsInput, config: AwsConfig): AwsRedshiftDescribeEventsOutput
  describeHsmClientCertificates(input: AwsRedshiftDescribeHsmClientCertificatesInput, config: AwsConfig): AwsRedshiftDescribeHsmClientCertificatesOutput
  describeHsmConfigurations(input: AwsRedshiftDescribeHsmConfigurationsInput, config: AwsConfig): AwsRedshiftDescribeHsmConfigurationsOutput
  describeLoggingStatus(input: AwsRedshiftDescribeLoggingStatusInput!, config: AwsConfig): JSON
  describeNodeConfigurationOptions(input: AwsRedshiftDescribeNodeConfigurationOptionsInput!, config: AwsConfig): AwsRedshiftDescribeNodeConfigurationOptionsOutput
  describeOrderableClusterOptions(input: AwsRedshiftDescribeOrderableClusterOptionsInput, config: AwsConfig): AwsRedshiftDescribeOrderableClusterOptionsOutput
  describePartners(input: AwsRedshiftDescribePartnersInput!, config: AwsConfig): AwsRedshiftDescribePartnersOutput
  describeReservedNodeOfferings(input: AwsRedshiftDescribeReservedNodeOfferingsInput, config: AwsConfig): AwsRedshiftDescribeReservedNodeOfferingsOutput
  describeReservedNodes(input: AwsRedshiftDescribeReservedNodesInput, config: AwsConfig): AwsRedshiftDescribeReservedNodesOutput
  describeResize(input: AwsRedshiftDescribeResizeInput!, config: AwsConfig): JSON
  describeScheduledActions(input: AwsRedshiftDescribeScheduledActionsInput, config: AwsConfig): AwsRedshiftDescribeScheduledActionsOutput
  describeSnapshotCopyGrants(input: AwsRedshiftDescribeSnapshotCopyGrantsInput, config: AwsConfig): AwsRedshiftDescribeSnapshotCopyGrantsOutput
  describeSnapshotSchedules(input: AwsRedshiftDescribeSnapshotSchedulesInput, config: AwsConfig): AwsRedshiftDescribeSnapshotSchedulesOutput
  describeStorage(config: AwsConfig): AwsRedshiftDescribeStorageOutput
  describeTableRestoreStatus(input: AwsRedshiftDescribeTableRestoreStatusInput, config: AwsConfig): AwsRedshiftDescribeTableRestoreStatusOutput
  describeTags(input: AwsRedshiftDescribeTagsInput, config: AwsConfig): AwsRedshiftDescribeTagsOutput
  describeUsageLimits(input: AwsRedshiftDescribeUsageLimitsInput, config: AwsConfig): AwsRedshiftDescribeUsageLimitsOutput
  disableLogging(input: AwsRedshiftDisableLoggingInput!, config: AwsConfig): JSON
  disableSnapshotCopy(input: AwsRedshiftDisableSnapshotCopyInput!, config: AwsConfig): AwsRedshiftDisableSnapshotCopyOutput
  enableLogging(input: AwsRedshiftEnableLoggingInput!, config: AwsConfig): JSON
  enableSnapshotCopy(input: AwsRedshiftEnableSnapshotCopyInput!, config: AwsConfig): AwsRedshiftEnableSnapshotCopyOutput
  getClusterCredentials(input: AwsRedshiftGetClusterCredentialsInput!, config: AwsConfig): AwsRedshiftGetClusterCredentialsOutput
  getReservedNodeExchangeOfferings(input: AwsRedshiftGetReservedNodeExchangeOfferingsInput!, config: AwsConfig): AwsRedshiftGetReservedNodeExchangeOfferingsOutput
  modifyAquaConfiguration(input: AwsRedshiftModifyAquaConfigurationInput!, config: AwsConfig): AwsRedshiftModifyAquaConfigurationOutput
  modifyCluster(input: AwsRedshiftModifyClusterInput!, config: AwsConfig): AwsRedshiftModifyClusterOutput
  modifyClusterDbRevision(input: AwsRedshiftModifyClusterDbRevisionInput!, config: AwsConfig): AwsRedshiftModifyClusterDbRevisionOutput
  modifyClusterIamRoles(input: AwsRedshiftModifyClusterIamRolesInput!, config: AwsConfig): AwsRedshiftModifyClusterIamRolesOutput
  modifyClusterMaintenance(input: AwsRedshiftModifyClusterMaintenanceInput!, config: AwsConfig): AwsRedshiftModifyClusterMaintenanceOutput
  modifyClusterParameterGroup(input: AwsRedshiftModifyClusterParameterGroupInput!, config: AwsConfig): JSON
  modifyClusterSnapshot(input: AwsRedshiftModifyClusterSnapshotInput!, config: AwsConfig): AwsRedshiftModifyClusterSnapshotOutput
  modifyClusterSnapshotSchedule(input: AwsRedshiftModifyClusterSnapshotScheduleInput!, config: AwsConfig): JSON
  modifyClusterSubnetGroup(input: AwsRedshiftModifyClusterSubnetGroupInput!, config: AwsConfig): AwsRedshiftModifyClusterSubnetGroupOutput
  modifyEndpointAccess(input: AwsRedshiftModifyEndpointAccessInput!, config: AwsConfig): JSON
  modifyEventSubscription(input: AwsRedshiftModifyEventSubscriptionInput!, config: AwsConfig): AwsRedshiftModifyEventSubscriptionOutput
  modifyScheduledAction(input: AwsRedshiftModifyScheduledActionInput!, config: AwsConfig): JSON
  modifySnapshotCopyRetentionPeriod(input: AwsRedshiftModifySnapshotCopyRetentionPeriodInput!, config: AwsConfig): AwsRedshiftModifySnapshotCopyRetentionPeriodOutput
  modifySnapshotSchedule(input: AwsRedshiftModifySnapshotScheduleInput!, config: AwsConfig): JSON
  modifyUsageLimit(input: AwsRedshiftModifyUsageLimitInput!, config: AwsConfig): JSON
  pauseCluster(input: JSON, config: AwsConfig): AwsRedshiftPauseClusterOutput
  purchaseReservedNodeOffering(input: AwsRedshiftPurchaseReservedNodeOfferingInput!, config: AwsConfig): AwsRedshiftPurchaseReservedNodeOfferingOutput
  rebootCluster(input: AwsRedshiftRebootClusterInput!, config: AwsConfig): AwsRedshiftRebootClusterOutput
  resetClusterParameterGroup(input: AwsRedshiftResetClusterParameterGroupInput!, config: AwsConfig): JSON
  resizeCluster(input: JSON, config: AwsConfig): AwsRedshiftResizeClusterOutput
  restoreFromClusterSnapshot(input: AwsRedshiftRestoreFromClusterSnapshotInput!, config: AwsConfig): AwsRedshiftRestoreFromClusterSnapshotOutput
  restoreTableFromClusterSnapshot(input: AwsRedshiftRestoreTableFromClusterSnapshotInput!, config: AwsConfig): AwsRedshiftRestoreTableFromClusterSnapshotOutput
  resumeCluster(input: JSON, config: AwsConfig): AwsRedshiftResumeClusterOutput
  revokeClusterSecurityGroupIngress(input: AwsRedshiftRevokeClusterSecurityGroupIngressInput!, config: AwsConfig): AwsRedshiftRevokeClusterSecurityGroupIngressOutput
  revokeEndpointAccess(input: AwsRedshiftRevokeEndpointAccessInput, config: AwsConfig): JSON
  revokeSnapshotAccess(input: AwsRedshiftRevokeSnapshotAccessInput!, config: AwsConfig): AwsRedshiftRevokeSnapshotAccessOutput
  rotateEncryptionKey(input: AwsRedshiftRotateEncryptionKeyInput!, config: AwsConfig): AwsRedshiftRotateEncryptionKeyOutput
  updatePartnerStatus(input: AwsRedshiftUpdatePartnerStatusInput!, config: AwsConfig): JSON
}

type AwsRedshiftAcceptReservedNodeExchangeOutput {
  ExchangedReservedNode: AwsRedshiftS4
}

type AwsRedshiftS4 {
  ReservedNodeId: String
  ReservedNodeOfferingId: String
  NodeType: String
  StartTime: Date
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  NodeCount: Int
  State: String
  OfferingType: String
  RecurringCharges: [AwsRedshiftS8]
  ReservedNodeOfferingType: String
}

type AwsRedshiftS8 {
  RecurringChargeAmount: JSON
  RecurringChargeFrequency: String
}

input AwsRedshiftAcceptReservedNodeExchangeInput {
  ReservedNodeId: String!
  TargetReservedNodeOfferingId: String!
}

type AwsRedshiftAuthorizeClusterSecurityGroupIngressOutput {
  ClusterSecurityGroup: AwsRedshiftSj
}

type AwsRedshiftSj {
  ClusterSecurityGroupName: String
  Description: String
  EC2SecurityGroups: [AwsRedshiftSjEC2SecurityGroups]
  IPRanges: [AwsRedshiftSjIPRanges]
  Tags: [AwsRedshiftSn]
}

type AwsRedshiftSjEC2SecurityGroups {
  Status: String
  EC2SecurityGroupName: String
  EC2SecurityGroupOwnerId: String
  Tags: [AwsRedshiftSn]
}

type AwsRedshiftSn {
  Key: String
  Value: String
}

type AwsRedshiftSjIPRanges {
  Status: String
  CIDRIP: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftAuthorizeClusterSecurityGroupIngressInput {
  ClusterSecurityGroupName: String!
  CIDRIP: String
  EC2SecurityGroupName: String
  EC2SecurityGroupOwnerId: String
}

input AwsRedshiftAuthorizeEndpointAccessInput {
  ClusterIdentifier: String
  Account: String!
  VpcIds: [String]
}

type AwsRedshiftAuthorizeSnapshotAccessOutput {
  Snapshot: AwsRedshiftSx
}

type AwsRedshiftSx {
  SnapshotIdentifier: String
  ClusterIdentifier: String
  SnapshotCreateTime: Date
  Status: String
  Port: Int
  AvailabilityZone: String
  ClusterCreateTime: Date
  MasterUsername: String
  ClusterVersion: String
  EngineFullVersion: String
  SnapshotType: String
  NodeType: String
  NumberOfNodes: Int
  DBName: String
  VpcId: String
  Encrypted: Boolean
  KmsKeyId: String
  EncryptedWithHSM: Boolean
  AccountsWithRestoreAccess: [AwsRedshiftSxAccountsWithRestoreAccess]
  OwnerAccount: String
  TotalBackupSizeInMegaBytes: JSON
  ActualIncrementalBackupSizeInMegaBytes: JSON
  BackupProgressInMegaBytes: JSON
  CurrentBackupRateInMegaBytesPerSecond: JSON
  EstimatedSecondsToCompletion: JSON
  ElapsedTimeInSeconds: JSON
  SourceRegion: String
  Tags: [AwsRedshiftSn]
  RestorableNodeTypes: [String]
  EnhancedVpcRouting: Boolean
  MaintenanceTrackName: String
  ManualSnapshotRetentionPeriod: Int
  ManualSnapshotRemainingDays: Int
  SnapshotRetentionStartTime: Date
}

type AwsRedshiftSxAccountsWithRestoreAccess {
  AccountId: String
  AccountAlias: String
}

input AwsRedshiftAuthorizeSnapshotAccessInput {
  SnapshotIdentifier: String!
  SnapshotClusterIdentifier: String
  AccountWithRestoreAccess: String!
}

type AwsRedshiftBatchDeleteClusterSnapshotsOutput {
  Resources: [String]
  Errors: [AwsRedshiftS19]
}

type AwsRedshiftS19 {
  SnapshotIdentifier: String
  SnapshotClusterIdentifier: String
  FailureCode: String
  FailureReason: String
}

input AwsRedshiftBatchDeleteClusterSnapshotsInput {
  Identifiers: [AwsRedshiftS15Input]!
}

input AwsRedshiftS15Input {
  SnapshotIdentifier: String!
  SnapshotClusterIdentifier: String
}

type AwsRedshiftBatchModifyClusterSnapshotsOutput {
  Resources: [String]
  Errors: [AwsRedshiftS19]
}

input AwsRedshiftBatchModifyClusterSnapshotsInput {
  SnapshotIdentifierList: [String]!
  ManualSnapshotRetentionPeriod: Int
  Force: Boolean
}

input AwsRedshiftCancelResizeInput {
  ClusterIdentifier: String!
}

type AwsRedshiftCopyClusterSnapshotOutput {
  Snapshot: AwsRedshiftSx
}

input AwsRedshiftCopyClusterSnapshotInput {
  SourceSnapshotIdentifier: String!
  SourceSnapshotClusterIdentifier: String
  TargetSnapshotIdentifier: String!
  ManualSnapshotRetentionPeriod: Int
}

type AwsRedshiftCreateClusterOutput {
  Cluster: AwsRedshiftS1t
}

type AwsRedshiftS1t {
  ClusterIdentifier: String
  NodeType: String
  ClusterStatus: String
  ClusterAvailabilityStatus: String
  ModifyStatus: String
  MasterUsername: String
  DBName: String
  Endpoint: AwsRedshiftS1tEndpoint
  ClusterCreateTime: Date
  AutomatedSnapshotRetentionPeriod: Int
  ManualSnapshotRetentionPeriod: Int
  ClusterSecurityGroups: [AwsRedshiftS1tClusterSecurityGroups]
  VpcSecurityGroups: [AwsRedshiftS21]
  ClusterParameterGroups: [AwsRedshiftS1tClusterParameterGroups]
  ClusterSubnetGroupName: String
  VpcId: String
  AvailabilityZone: String
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsRedshiftS1tPendingModifiedValues
  ClusterVersion: String
  AllowVersionUpgrade: Boolean
  NumberOfNodes: Int
  PubliclyAccessible: Boolean
  Encrypted: Boolean
  RestoreStatus: AwsRedshiftS1tRestoreStatus
  DataTransferProgress: AwsRedshiftS1tDataTransferProgress
  HsmStatus: AwsRedshiftS1tHsmStatus
  ClusterSnapshotCopyStatus: AwsRedshiftS1tClusterSnapshotCopyStatus
  ClusterPublicKey: String
  ClusterNodes: [AwsRedshiftS1tClusterNodes]
  ElasticIpStatus: AwsRedshiftS1tElasticIpStatus
  ClusterRevisionNumber: String
  Tags: [AwsRedshiftSn]
  KmsKeyId: String
  EnhancedVpcRouting: Boolean
  IamRoles: [AwsRedshiftS1tIamRoles]
  PendingActions: [String]
  MaintenanceTrackName: String
  ElasticResizeNumberOfNodeOptions: String
  DeferredMaintenanceWindows: [AwsRedshiftS1tDeferredMaintenanceWindows]
  SnapshotScheduleIdentifier: String
  SnapshotScheduleState: String
  ExpectedNextSnapshotScheduleTime: Date
  ExpectedNextSnapshotScheduleTimeStatus: String
  NextMaintenanceWindowStartTime: Date
  ResizeInfo: AwsRedshiftS1tResizeInfo
  AvailabilityZoneRelocationStatus: String
  ClusterNamespaceArn: String
  TotalStorageCapacityInMegaBytes: JSON
  AquaConfiguration: AwsRedshiftS2m
}

type AwsRedshiftS1tEndpoint {
  Address: String
  Port: Int
  VpcEndpoints: [AwsRedshiftS1w]
}

type AwsRedshiftS1w {
  VpcEndpointId: String
  VpcId: String
  NetworkInterfaces: [AwsRedshiftS1wNetworkInterfaces]
}

type AwsRedshiftS1wNetworkInterfaces {
  NetworkInterfaceId: String
  SubnetId: String
  PrivateIpAddress: String
  AvailabilityZone: String
}

type AwsRedshiftS1tClusterSecurityGroups {
  ClusterSecurityGroupName: String
  Status: String
}

type AwsRedshiftS21 {
  VpcSecurityGroupId: String
  Status: String
}

type AwsRedshiftS1tClusterParameterGroups {
  ParameterGroupName: String
  ParameterApplyStatus: String
  ClusterParameterStatusList: [AwsRedshiftS1tClusterParameterGroupsClusterParameterStatusList]
}

type AwsRedshiftS1tClusterParameterGroupsClusterParameterStatusList {
  ParameterName: String
  ParameterApplyStatus: String
  ParameterApplyErrorDescription: String
}

type AwsRedshiftS1tPendingModifiedValues {
  MasterUserPassword: String
  NodeType: String
  NumberOfNodes: Int
  ClusterType: String
  ClusterVersion: String
  AutomatedSnapshotRetentionPeriod: Int
  ClusterIdentifier: String
  PubliclyAccessible: Boolean
  EnhancedVpcRouting: Boolean
  MaintenanceTrackName: String
  EncryptionType: String
}

type AwsRedshiftS1tRestoreStatus {
  Status: String
  CurrentRestoreRateInMegaBytesPerSecond: JSON
  SnapshotSizeInMegaBytes: JSON
  ProgressInMegaBytes: JSON
  ElapsedTimeInSeconds: JSON
  EstimatedTimeToCompletionInSeconds: JSON
}

type AwsRedshiftS1tDataTransferProgress {
  Status: String
  CurrentRateInMegaBytesPerSecond: JSON
  TotalDataInMegaBytes: JSON
  DataTransferredInMegaBytes: JSON
  EstimatedTimeToCompletionInSeconds: JSON
  ElapsedTimeInSeconds: JSON
}

type AwsRedshiftS1tHsmStatus {
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  Status: String
}

type AwsRedshiftS1tClusterSnapshotCopyStatus {
  DestinationRegion: String
  RetentionPeriod: JSON
  ManualSnapshotRetentionPeriod: Int
  SnapshotCopyGrantName: String
}

type AwsRedshiftS1tClusterNodes {
  NodeRole: String
  PrivateIPAddress: String
  PublicIPAddress: String
}

type AwsRedshiftS1tElasticIpStatus {
  ElasticIp: String
  Status: String
}

type AwsRedshiftS1tIamRoles {
  IamRoleArn: String
  ApplyStatus: String
}

type AwsRedshiftS1tDeferredMaintenanceWindows {
  DeferMaintenanceIdentifier: String
  DeferMaintenanceStartTime: Date
  DeferMaintenanceEndTime: Date
}

type AwsRedshiftS1tResizeInfo {
  ResizeType: String
  AllowCancelResize: Boolean
}

type AwsRedshiftS2m {
  AquaStatus: String
  AquaConfigurationStatus: String
}

input AwsRedshiftCreateClusterInput {
  DBName: String
  ClusterIdentifier: String!
  ClusterType: String
  NodeType: String!
  MasterUsername: String!
  MasterUserPassword: String!
  ClusterSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  ClusterSubnetGroupName: String
  AvailabilityZone: String
  PreferredMaintenanceWindow: String
  ClusterParameterGroupName: String
  AutomatedSnapshotRetentionPeriod: Int
  ManualSnapshotRetentionPeriod: Int
  Port: Int
  ClusterVersion: String
  AllowVersionUpgrade: Boolean
  NumberOfNodes: Int
  PubliclyAccessible: Boolean
  Encrypted: Boolean
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  ElasticIp: String
  Tags: [AwsRedshiftSnInput]
  KmsKeyId: String
  EnhancedVpcRouting: Boolean
  AdditionalInfo: String
  IamRoles: [String]
  MaintenanceTrackName: String
  SnapshotScheduleIdentifier: String
  AvailabilityZoneRelocation: Boolean
  AquaConfigurationStatus: String
}

input AwsRedshiftSnInput {
  Key: String
  Value: String
}

type AwsRedshiftCreateClusterParameterGroupOutput {
  ClusterParameterGroup: AwsRedshiftS2q
}

type AwsRedshiftS2q {
  ParameterGroupName: String
  ParameterGroupFamily: String
  Description: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftCreateClusterParameterGroupInput {
  ParameterGroupName: String!
  ParameterGroupFamily: String!
  Description: String!
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftCreateClusterSecurityGroupOutput {
  ClusterSecurityGroup: AwsRedshiftSj
}

input AwsRedshiftCreateClusterSecurityGroupInput {
  ClusterSecurityGroupName: String!
  Description: String!
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftCreateClusterSnapshotOutput {
  Snapshot: AwsRedshiftSx
}

input AwsRedshiftCreateClusterSnapshotInput {
  SnapshotIdentifier: String!
  ClusterIdentifier: String!
  ManualSnapshotRetentionPeriod: Int
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftCreateClusterSubnetGroupOutput {
  ClusterSubnetGroup: AwsRedshiftS2y
}

type AwsRedshiftS2y {
  ClusterSubnetGroupName: String
  Description: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsRedshiftS2ySubnets]
  Tags: [AwsRedshiftSn]
}

type AwsRedshiftS2ySubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsRedshiftS31
  SubnetStatus: String
}

type AwsRedshiftS31 {
  Name: String
  SupportedPlatforms: [AwsRedshiftS31SupportedPlatforms]
}

type AwsRedshiftS31SupportedPlatforms {
  Name: String
}

input AwsRedshiftCreateClusterSubnetGroupInput {
  ClusterSubnetGroupName: String!
  Description: String!
  SubnetIds: [String]!
  Tags: [AwsRedshiftSnInput]
}

input AwsRedshiftCreateEndpointAccessInput {
  ClusterIdentifier: String
  ResourceOwner: String
  EndpointName: String!
  SubnetGroupName: String!
  VpcSecurityGroupIds: [String]
}

type AwsRedshiftCreateEventSubscriptionOutput {
  EventSubscription: AwsRedshiftS3a
}

type AwsRedshiftS3a {
  CustomerAwsId: String
  CustSubscriptionId: String
  SnsTopicArn: String
  Status: String
  SubscriptionCreationTime: Date
  SourceType: String
  SourceIdsList: [String]
  EventCategoriesList: [String]
  Severity: String
  Enabled: Boolean
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftCreateEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String!
  SourceType: String
  SourceIds: [String]
  EventCategories: [String]
  Severity: String
  Enabled: Boolean
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftCreateHsmClientCertificateOutput {
  HsmClientCertificate: AwsRedshiftS3d
}

type AwsRedshiftS3d {
  HsmClientCertificateIdentifier: String
  HsmClientCertificatePublicKey: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftCreateHsmClientCertificateInput {
  HsmClientCertificateIdentifier: String!
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftCreateHsmConfigurationOutput {
  HsmConfiguration: AwsRedshiftS3g
}

type AwsRedshiftS3g {
  HsmConfigurationIdentifier: String
  Description: String
  HsmIpAddress: String
  HsmPartitionName: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftCreateHsmConfigurationInput {
  HsmConfigurationIdentifier: String!
  Description: String!
  HsmIpAddress: String!
  HsmPartitionName: String!
  HsmPartitionPassword: String!
  HsmServerPublicCertificate: String!
  Tags: [AwsRedshiftSnInput]
}

input AwsRedshiftCreateScheduledActionInput {
  ScheduledActionName: String!
  TargetAction: AwsRedshiftS3iInput!
  Schedule: String!
  IamRole: String!
  ScheduledActionDescription: String
  StartTime: Date
  EndTime: Date
  Enable: Boolean
}

input AwsRedshiftS3iInput {
  ResizeCluster: AwsRedshiftS3jInput
  PauseCluster: AwsRedshiftS3kInput
  ResumeCluster: AwsRedshiftS3lInput
}

input AwsRedshiftS3jInput {
  ClusterIdentifier: String!
  ClusterType: String
  NodeType: String
  NumberOfNodes: Int
  Classic: Boolean
}

input AwsRedshiftS3kInput {
  ClusterIdentifier: String!
}

input AwsRedshiftS3lInput {
  ClusterIdentifier: String!
}

type AwsRedshiftCreateSnapshotCopyGrantOutput {
  SnapshotCopyGrant: AwsRedshiftS3r
}

type AwsRedshiftS3r {
  SnapshotCopyGrantName: String
  KmsKeyId: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftCreateSnapshotCopyGrantInput {
  SnapshotCopyGrantName: String!
  KmsKeyId: String
  Tags: [AwsRedshiftSnInput]
}

input AwsRedshiftCreateSnapshotScheduleInput {
  ScheduleDefinitions: [String]
  ScheduleIdentifier: String
  ScheduleDescription: String
  Tags: [AwsRedshiftSnInput]
  DryRun: Boolean
  NextInvocations: Int
}

input AwsRedshiftCreateTagsInput {
  ResourceName: String!
  Tags: [AwsRedshiftSnInput]!
}

input AwsRedshiftCreateUsageLimitInput {
  ClusterIdentifier: String!
  FeatureType: String!
  LimitType: String!
  Amount: JSON!
  Period: String
  BreachAction: String
  Tags: [AwsRedshiftSnInput]
}

type AwsRedshiftDeleteClusterOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftDeleteClusterInput {
  ClusterIdentifier: String!
  SkipFinalClusterSnapshot: Boolean
  FinalClusterSnapshotIdentifier: String
  FinalClusterSnapshotRetentionPeriod: Int
}

input AwsRedshiftDeleteClusterParameterGroupInput {
  ParameterGroupName: String!
}

input AwsRedshiftDeleteClusterSecurityGroupInput {
  ClusterSecurityGroupName: String!
}

type AwsRedshiftDeleteClusterSnapshotOutput {
  Snapshot: AwsRedshiftSx
}

input AwsRedshiftDeleteClusterSubnetGroupInput {
  ClusterSubnetGroupName: String!
}

input AwsRedshiftDeleteEndpointAccessInput {
  EndpointName: String!
}

input AwsRedshiftDeleteEventSubscriptionInput {
  SubscriptionName: String!
}

input AwsRedshiftDeleteHsmClientCertificateInput {
  HsmClientCertificateIdentifier: String!
}

input AwsRedshiftDeleteHsmConfigurationInput {
  HsmConfigurationIdentifier: String!
}

input AwsRedshiftDeleteScheduledActionInput {
  ScheduledActionName: String!
}

input AwsRedshiftDeleteSnapshotCopyGrantInput {
  SnapshotCopyGrantName: String!
}

input AwsRedshiftDeleteSnapshotScheduleInput {
  ScheduleIdentifier: String!
}

input AwsRedshiftDeleteTagsInput {
  ResourceName: String!
  TagKeys: [String]!
}

input AwsRedshiftDeleteUsageLimitInput {
  UsageLimitId: String!
}

type AwsRedshiftDescribeAccountAttributesOutput {
  AccountAttributes: [AwsRedshiftDescribeAccountAttributesOutputAccountAttributes]
}

type AwsRedshiftDescribeAccountAttributesOutputAccountAttributes {
  AttributeName: String
  AttributeValues: [AwsRedshiftDescribeAccountAttributesOutputAccountAttributesAttributeValues]
}

type AwsRedshiftDescribeAccountAttributesOutputAccountAttributesAttributeValues {
  AttributeValue: String
}

input AwsRedshiftDescribeAccountAttributesInput {
  AttributeNames: [String]
}

type AwsRedshiftDescribeClusterDbRevisionsOutput {
  Marker: String
  ClusterDbRevisions: [AwsRedshiftDescribeClusterDbRevisionsOutputClusterDbRevisions]
}

type AwsRedshiftDescribeClusterDbRevisionsOutputClusterDbRevisions {
  ClusterIdentifier: String
  CurrentDatabaseRevision: String
  DatabaseRevisionReleaseDate: Date
  RevisionTargets: [AwsRedshiftDescribeClusterDbRevisionsOutputClusterDbRevisionsRevisionTargets]
}

type AwsRedshiftDescribeClusterDbRevisionsOutputClusterDbRevisionsRevisionTargets {
  DatabaseRevision: String
  Description: String
  DatabaseRevisionReleaseDate: Date
}

input AwsRedshiftDescribeClusterDbRevisionsInput {
  ClusterIdentifier: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeClusterParameterGroupsOutput {
  Marker: String
  ParameterGroups: [AwsRedshiftS2q]
}

input AwsRedshiftDescribeClusterParameterGroupsInput {
  ParameterGroupName: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeClusterParametersOutput {
  Parameters: [AwsRedshiftS54]
  Marker: String
}

type AwsRedshiftS54 {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  DataType: String
  AllowedValues: String
  ApplyType: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
}

input AwsRedshiftDescribeClusterParametersInput {
  ParameterGroupName: String!
  Source: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeClusterSecurityGroupsOutput {
  Marker: String
  ClusterSecurityGroups: [AwsRedshiftSj]
}

input AwsRedshiftDescribeClusterSecurityGroupsInput {
  ClusterSecurityGroupName: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeClusterSnapshotsOutput {
  Marker: String
  Snapshots: [AwsRedshiftSx]
}

input AwsRedshiftDescribeClusterSnapshotsInput {
  ClusterIdentifier: String
  SnapshotIdentifier: String
  SnapshotType: String
  StartTime: Date
  EndTime: Date
  MaxRecords: Int
  Marker: String
  OwnerAccount: String
  TagKeys: [String]
  TagValues: [String]
  ClusterExists: Boolean
  SortingEntities: [AwsRedshiftDescribeClusterSnapshotsSortingEntitiesInput]
}

input AwsRedshiftDescribeClusterSnapshotsSortingEntitiesInput {
  Attribute: String!
  SortOrder: String
}

type AwsRedshiftDescribeClusterSubnetGroupsOutput {
  Marker: String
  ClusterSubnetGroups: [AwsRedshiftS2y]
}

input AwsRedshiftDescribeClusterSubnetGroupsInput {
  ClusterSubnetGroupName: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeClusterTracksOutput {
  MaintenanceTracks: [AwsRedshiftDescribeClusterTracksOutputMaintenanceTracks]
  Marker: String
}

type AwsRedshiftDescribeClusterTracksOutputMaintenanceTracks {
  MaintenanceTrackName: String
  DatabaseVersion: String
  UpdateTargets: [AwsRedshiftDescribeClusterTracksOutputMaintenanceTracksUpdateTargets]
}

type AwsRedshiftDescribeClusterTracksOutputMaintenanceTracksUpdateTargets {
  MaintenanceTrackName: String
  DatabaseVersion: String
  SupportedOperations: [AwsRedshiftDescribeClusterTracksOutputMaintenanceTracksUpdateTargetsSupportedOperations]
}

type AwsRedshiftDescribeClusterTracksOutputMaintenanceTracksUpdateTargetsSupportedOperations {
  OperationName: String
}

input AwsRedshiftDescribeClusterTracksInput {
  MaintenanceTrackName: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeClusterVersionsOutput {
  Marker: String
  ClusterVersions: [AwsRedshiftDescribeClusterVersionsOutputClusterVersions]
}

type AwsRedshiftDescribeClusterVersionsOutputClusterVersions {
  ClusterVersion: String
  ClusterParameterGroupFamily: String
  Description: String
}

input AwsRedshiftDescribeClusterVersionsInput {
  ClusterVersion: String
  ClusterParameterGroupFamily: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeClustersOutput {
  Marker: String
  Clusters: [AwsRedshiftS1t]
}

input AwsRedshiftDescribeClustersInput {
  ClusterIdentifier: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeDefaultClusterParametersOutput {
  DefaultClusterParameters: AwsRedshiftDescribeDefaultClusterParametersOutputDefaultClusterParameters
}

type AwsRedshiftDescribeDefaultClusterParametersOutputDefaultClusterParameters {
  ParameterGroupFamily: String
  Marker: String
  Parameters: [AwsRedshiftS54]
}

input AwsRedshiftDescribeDefaultClusterParametersInput {
  ParameterGroupFamily: String!
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeEndpointAccessOutput {
  EndpointAccessList: [AwsRedshiftS35]
  Marker: String
}

type AwsRedshiftS35 {
  ClusterIdentifier: String
  ResourceOwner: String
  SubnetGroupName: String
  EndpointStatus: String
  EndpointName: String
  EndpointCreateTime: Date
  Port: Int
  Address: String
  VpcSecurityGroups: [AwsRedshiftS21]
  VpcEndpoint: AwsRedshiftS1w
}

input AwsRedshiftDescribeEndpointAccessInput {
  ClusterIdentifier: String
  ResourceOwner: String
  EndpointName: String
  VpcId: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeEndpointAuthorizationOutput {
  EndpointAuthorizationList: [AwsRedshiftSs]
  Marker: String
}

type AwsRedshiftSs {
  Grantor: String
  Grantee: String
  ClusterIdentifier: String
  AuthorizeTime: Date
  ClusterStatus: String
  Status: String
  AllowedAllVPCs: Boolean
  AllowedVPCs: [String]
  EndpointCount: Int
}

input AwsRedshiftDescribeEndpointAuthorizationInput {
  ClusterIdentifier: String
  Account: String
  Grantee: Boolean
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeEventCategoriesOutput {
  EventCategoriesMapList: [AwsRedshiftDescribeEventCategoriesOutputEventCategoriesMapList]
}

type AwsRedshiftDescribeEventCategoriesOutputEventCategoriesMapList {
  SourceType: String
  Events: [AwsRedshiftDescribeEventCategoriesOutputEventCategoriesMapListEvents]
}

type AwsRedshiftDescribeEventCategoriesOutputEventCategoriesMapListEvents {
  EventId: String
  EventCategories: [String]
  EventDescription: String
  Severity: String
}

input AwsRedshiftDescribeEventCategoriesInput {
  SourceType: String
}

type AwsRedshiftDescribeEventSubscriptionsOutput {
  Marker: String
  EventSubscriptionsList: [AwsRedshiftS3a]
}

input AwsRedshiftDescribeEventSubscriptionsInput {
  SubscriptionName: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeEventsOutput {
  Marker: String
  Events: [AwsRedshiftDescribeEventsOutputEvents]
}

type AwsRedshiftDescribeEventsOutputEvents {
  SourceIdentifier: String
  SourceType: String
  Message: String
  EventCategories: [String]
  Severity: String
  Date: Date
  EventId: String
}

input AwsRedshiftDescribeEventsInput {
  SourceIdentifier: String
  SourceType: String
  StartTime: Date
  EndTime: Date
  Duration: Int
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeHsmClientCertificatesOutput {
  Marker: String
  HsmClientCertificates: [AwsRedshiftS3d]
}

input AwsRedshiftDescribeHsmClientCertificatesInput {
  HsmClientCertificateIdentifier: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeHsmConfigurationsOutput {
  Marker: String
  HsmConfigurations: [AwsRedshiftS3g]
}

input AwsRedshiftDescribeHsmConfigurationsInput {
  HsmConfigurationIdentifier: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

input AwsRedshiftDescribeLoggingStatusInput {
  ClusterIdentifier: String!
}

type AwsRedshiftDescribeNodeConfigurationOptionsOutput {
  NodeConfigurationOptionList: [AwsRedshiftDescribeNodeConfigurationOptionsOutputNodeConfigurationOptionList]
  Marker: String
}

type AwsRedshiftDescribeNodeConfigurationOptionsOutputNodeConfigurationOptionList {
  NodeType: String
  NumberOfNodes: Int
  EstimatedDiskUtilizationPercent: JSON
  Mode: String
}

input AwsRedshiftDescribeNodeConfigurationOptionsInput {
  ActionType: String!
  ClusterIdentifier: String
  SnapshotIdentifier: String
  OwnerAccount: String
  Filters: [AwsRedshiftDescribeNodeConfigurationOptionsFiltersInput]
  Marker: String
  MaxRecords: Int
}

input AwsRedshiftDescribeNodeConfigurationOptionsFiltersInput {
  Name: String
  Operator: String
  Values: [String]
}

type AwsRedshiftDescribeOrderableClusterOptionsOutput {
  OrderableClusterOptions: [AwsRedshiftDescribeOrderableClusterOptionsOutputOrderableClusterOptions]
  Marker: String
}

type AwsRedshiftDescribeOrderableClusterOptionsOutputOrderableClusterOptions {
  ClusterVersion: String
  ClusterType: String
  NodeType: String
  AvailabilityZones: [AwsRedshiftS31]
}

input AwsRedshiftDescribeOrderableClusterOptionsInput {
  ClusterVersion: String
  NodeType: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribePartnersOutput {
  PartnerIntegrationInfoList: [AwsRedshiftDescribePartnersOutputPartnerIntegrationInfoList]
}

type AwsRedshiftDescribePartnersOutputPartnerIntegrationInfoList {
  DatabaseName: String
  PartnerName: String
  Status: String
  StatusMessage: String
  CreatedAt: Date
  UpdatedAt: Date
}

input AwsRedshiftDescribePartnersInput {
  AccountId: String!
  ClusterIdentifier: String!
  DatabaseName: String
  PartnerName: String
}

type AwsRedshiftDescribeReservedNodeOfferingsOutput {
  Marker: String
  ReservedNodeOfferings: [AwsRedshiftS7i]
}

type AwsRedshiftS7i {
  ReservedNodeOfferingId: String
  NodeType: String
  Duration: Int
  FixedPrice: JSON
  UsagePrice: JSON
  CurrencyCode: String
  OfferingType: String
  RecurringCharges: [AwsRedshiftS8]
  ReservedNodeOfferingType: String
}

input AwsRedshiftDescribeReservedNodeOfferingsInput {
  ReservedNodeOfferingId: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeReservedNodesOutput {
  Marker: String
  ReservedNodes: [AwsRedshiftS4]
}

input AwsRedshiftDescribeReservedNodesInput {
  ReservedNodeId: String
  MaxRecords: Int
  Marker: String
}

input AwsRedshiftDescribeResizeInput {
  ClusterIdentifier: String!
}

type AwsRedshiftDescribeScheduledActionsOutput {
  Marker: String
  ScheduledActions: [AwsRedshiftS3m]
}

type AwsRedshiftS3m {
  ScheduledActionName: String
  TargetAction: AwsRedshiftS3i
  Schedule: String
  IamRole: String
  ScheduledActionDescription: String
  State: String
  NextInvocations: [Date]
  StartTime: Date
  EndTime: Date
}

type AwsRedshiftS3i {
  ResizeCluster: AwsRedshiftS3j
  PauseCluster: AwsRedshiftS3k
  ResumeCluster: AwsRedshiftS3l
}

type AwsRedshiftS3j {
  ClusterIdentifier: String!
  ClusterType: String
  NodeType: String
  NumberOfNodes: Int
  Classic: Boolean
}

type AwsRedshiftS3k {
  ClusterIdentifier: String!
}

type AwsRedshiftS3l {
  ClusterIdentifier: String!
}

input AwsRedshiftDescribeScheduledActionsInput {
  ScheduledActionName: String
  TargetActionType: String
  StartTime: Date
  EndTime: Date
  Active: Boolean
  Filters: [AwsRedshiftDescribeScheduledActionsFiltersInput]
  Marker: String
  MaxRecords: Int
}

input AwsRedshiftDescribeScheduledActionsFiltersInput {
  Name: String!
  Values: [String]!
}

type AwsRedshiftDescribeSnapshotCopyGrantsOutput {
  Marker: String
  SnapshotCopyGrants: [AwsRedshiftS3r]
}

input AwsRedshiftDescribeSnapshotCopyGrantsInput {
  SnapshotCopyGrantName: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeSnapshotSchedulesOutput {
  SnapshotSchedules: [AwsRedshiftS3u]
  Marker: String
}

type AwsRedshiftS3u {
  ScheduleDefinitions: [String]
  ScheduleIdentifier: String
  ScheduleDescription: String
  Tags: [AwsRedshiftSn]
  NextInvocations: [Date]
  AssociatedClusterCount: Int
  AssociatedClusters: [AwsRedshiftS3uAssociatedClusters]
}

type AwsRedshiftS3uAssociatedClusters {
  ClusterIdentifier: String
  ScheduleAssociationState: String
}

input AwsRedshiftDescribeSnapshotSchedulesInput {
  ClusterIdentifier: String
  ScheduleIdentifier: String
  TagKeys: [String]
  TagValues: [String]
  Marker: String
  MaxRecords: Int
}

type AwsRedshiftDescribeStorageOutput {
  TotalBackupSizeInMegaBytes: JSON
  TotalProvisionedStorageInMegaBytes: JSON
}

type AwsRedshiftDescribeTableRestoreStatusOutput {
  TableRestoreStatusDetails: [AwsRedshiftS85]
  Marker: String
}

type AwsRedshiftS85 {
  TableRestoreRequestId: String
  Status: String
  Message: String
  RequestTime: Date
  ProgressInMegaBytes: JSON
  TotalDataInMegaBytes: JSON
  ClusterIdentifier: String
  SnapshotIdentifier: String
  SourceDatabaseName: String
  SourceSchemaName: String
  SourceTableName: String
  TargetDatabaseName: String
  TargetSchemaName: String
  NewTableName: String
}

input AwsRedshiftDescribeTableRestoreStatusInput {
  ClusterIdentifier: String
  TableRestoreRequestId: String
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftDescribeTagsOutput {
  TaggedResources: [AwsRedshiftDescribeTagsOutputTaggedResources]
  Marker: String
}

type AwsRedshiftDescribeTagsOutputTaggedResources {
  Tag: AwsRedshiftSn
  ResourceName: String
  ResourceType: String
}

input AwsRedshiftDescribeTagsInput {
  ResourceName: String
  ResourceType: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

type AwsRedshiftDescribeUsageLimitsOutput {
  UsageLimits: [AwsRedshiftS44]
  Marker: String
}

type AwsRedshiftS44 {
  UsageLimitId: String
  ClusterIdentifier: String
  FeatureType: String
  LimitType: String
  Amount: JSON
  Period: String
  BreachAction: String
  Tags: [AwsRedshiftSn]
}

input AwsRedshiftDescribeUsageLimitsInput {
  UsageLimitId: String
  ClusterIdentifier: String
  FeatureType: String
  MaxRecords: Int
  Marker: String
  TagKeys: [String]
  TagValues: [String]
}

input AwsRedshiftDisableLoggingInput {
  ClusterIdentifier: String!
}

type AwsRedshiftDisableSnapshotCopyOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftDisableSnapshotCopyInput {
  ClusterIdentifier: String!
}

input AwsRedshiftEnableLoggingInput {
  ClusterIdentifier: String!
  BucketName: String!
  S3KeyPrefix: String
}

type AwsRedshiftEnableSnapshotCopyOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftEnableSnapshotCopyInput {
  ClusterIdentifier: String!
  DestinationRegion: String!
  RetentionPeriod: Int
  SnapshotCopyGrantName: String
  ManualSnapshotRetentionPeriod: Int
}

type AwsRedshiftGetClusterCredentialsOutput {
  DbUser: String
  DbPassword: String
  Expiration: Date
}

input AwsRedshiftGetClusterCredentialsInput {
  DbUser: String!
  DbName: String
  ClusterIdentifier: String!
  DurationSeconds: Int
  AutoCreate: Boolean
  DbGroups: [String]
}

type AwsRedshiftGetReservedNodeExchangeOfferingsOutput {
  Marker: String
  ReservedNodeOfferings: [AwsRedshiftS7i]
}

input AwsRedshiftGetReservedNodeExchangeOfferingsInput {
  ReservedNodeId: String!
  MaxRecords: Int
  Marker: String
}

type AwsRedshiftModifyAquaConfigurationOutput {
  AquaConfiguration: AwsRedshiftS2m
}

input AwsRedshiftModifyAquaConfigurationInput {
  ClusterIdentifier: String!
  AquaConfigurationStatus: String
}

type AwsRedshiftModifyClusterOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftModifyClusterInput {
  ClusterIdentifier: String!
  ClusterType: String
  NodeType: String
  NumberOfNodes: Int
  ClusterSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  MasterUserPassword: String
  ClusterParameterGroupName: String
  AutomatedSnapshotRetentionPeriod: Int
  ManualSnapshotRetentionPeriod: Int
  PreferredMaintenanceWindow: String
  ClusterVersion: String
  AllowVersionUpgrade: Boolean
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  NewClusterIdentifier: String
  PubliclyAccessible: Boolean
  ElasticIp: String
  EnhancedVpcRouting: Boolean
  MaintenanceTrackName: String
  Encrypted: Boolean
  KmsKeyId: String
  AvailabilityZoneRelocation: Boolean
  AvailabilityZone: String
  Port: Int
}

type AwsRedshiftModifyClusterDbRevisionOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftModifyClusterDbRevisionInput {
  ClusterIdentifier: String!
  RevisionTarget: String!
}

type AwsRedshiftModifyClusterIamRolesOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftModifyClusterIamRolesInput {
  ClusterIdentifier: String!
  AddIamRoles: [String]
  RemoveIamRoles: [String]
}

type AwsRedshiftModifyClusterMaintenanceOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftModifyClusterMaintenanceInput {
  ClusterIdentifier: String!
  DeferMaintenance: Boolean
  DeferMaintenanceIdentifier: String
  DeferMaintenanceStartTime: Date
  DeferMaintenanceEndTime: Date
  DeferMaintenanceDuration: Int
}

input AwsRedshiftModifyClusterParameterGroupInput {
  ParameterGroupName: String!
  Parameters: [AwsRedshiftS54Input]!
}

input AwsRedshiftS54Input {
  ParameterName: String
  ParameterValue: String
  Description: String
  Source: String
  DataType: String
  AllowedValues: String
  ApplyType: String
  IsModifiable: Boolean
  MinimumEngineVersion: String
}

type AwsRedshiftModifyClusterSnapshotOutput {
  Snapshot: AwsRedshiftSx
}

input AwsRedshiftModifyClusterSnapshotInput {
  SnapshotIdentifier: String!
  ManualSnapshotRetentionPeriod: Int
  Force: Boolean
}

input AwsRedshiftModifyClusterSnapshotScheduleInput {
  ClusterIdentifier: String!
  ScheduleIdentifier: String
  DisassociateSchedule: Boolean
}

type AwsRedshiftModifyClusterSubnetGroupOutput {
  ClusterSubnetGroup: AwsRedshiftS2y
}

input AwsRedshiftModifyClusterSubnetGroupInput {
  ClusterSubnetGroupName: String!
  Description: String
  SubnetIds: [String]!
}

input AwsRedshiftModifyEndpointAccessInput {
  EndpointName: String!
  VpcSecurityGroupIds: [String]
}

type AwsRedshiftModifyEventSubscriptionOutput {
  EventSubscription: AwsRedshiftS3a
}

input AwsRedshiftModifyEventSubscriptionInput {
  SubscriptionName: String!
  SnsTopicArn: String
  SourceType: String
  SourceIds: [String]
  EventCategories: [String]
  Severity: String
  Enabled: Boolean
}

input AwsRedshiftModifyScheduledActionInput {
  ScheduledActionName: String!
  TargetAction: AwsRedshiftS3iInput
  Schedule: String
  IamRole: String
  ScheduledActionDescription: String
  StartTime: Date
  EndTime: Date
  Enable: Boolean
}

type AwsRedshiftModifySnapshotCopyRetentionPeriodOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftModifySnapshotCopyRetentionPeriodInput {
  ClusterIdentifier: String!
  RetentionPeriod: Int!
  Manual: Boolean
}

input AwsRedshiftModifySnapshotScheduleInput {
  ScheduleIdentifier: String!
  ScheduleDefinitions: [String]!
}

input AwsRedshiftModifyUsageLimitInput {
  UsageLimitId: String!
  Amount: JSON
  BreachAction: String
}

type AwsRedshiftPauseClusterOutput {
  Cluster: AwsRedshiftS1t
}

type AwsRedshiftPurchaseReservedNodeOfferingOutput {
  ReservedNode: AwsRedshiftS4
}

input AwsRedshiftPurchaseReservedNodeOfferingInput {
  ReservedNodeOfferingId: String!
  NodeCount: Int
}

type AwsRedshiftRebootClusterOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftRebootClusterInput {
  ClusterIdentifier: String!
}

input AwsRedshiftResetClusterParameterGroupInput {
  ParameterGroupName: String!
  ResetAllParameters: Boolean
  Parameters: [AwsRedshiftS54Input]
}

type AwsRedshiftResizeClusterOutput {
  Cluster: AwsRedshiftS1t
}

type AwsRedshiftRestoreFromClusterSnapshotOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftRestoreFromClusterSnapshotInput {
  ClusterIdentifier: String!
  SnapshotIdentifier: String!
  SnapshotClusterIdentifier: String
  Port: Int
  AvailabilityZone: String
  AllowVersionUpgrade: Boolean
  ClusterSubnetGroupName: String
  PubliclyAccessible: Boolean
  OwnerAccount: String
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  ElasticIp: String
  ClusterParameterGroupName: String
  ClusterSecurityGroups: [String]
  VpcSecurityGroupIds: [String]
  PreferredMaintenanceWindow: String
  AutomatedSnapshotRetentionPeriod: Int
  ManualSnapshotRetentionPeriod: Int
  KmsKeyId: String
  NodeType: String
  EnhancedVpcRouting: Boolean
  AdditionalInfo: String
  IamRoles: [String]
  MaintenanceTrackName: String
  SnapshotScheduleIdentifier: String
  NumberOfNodes: Int
  AvailabilityZoneRelocation: Boolean
  AquaConfigurationStatus: String
}

type AwsRedshiftRestoreTableFromClusterSnapshotOutput {
  TableRestoreStatus: AwsRedshiftS85
}

input AwsRedshiftRestoreTableFromClusterSnapshotInput {
  ClusterIdentifier: String!
  SnapshotIdentifier: String!
  SourceDatabaseName: String!
  SourceSchemaName: String
  SourceTableName: String!
  TargetDatabaseName: String
  TargetSchemaName: String
  NewTableName: String!
  EnableCaseSensitiveIdentifier: Boolean
}

type AwsRedshiftResumeClusterOutput {
  Cluster: AwsRedshiftS1t
}

type AwsRedshiftRevokeClusterSecurityGroupIngressOutput {
  ClusterSecurityGroup: AwsRedshiftSj
}

input AwsRedshiftRevokeClusterSecurityGroupIngressInput {
  ClusterSecurityGroupName: String!
  CIDRIP: String
  EC2SecurityGroupName: String
  EC2SecurityGroupOwnerId: String
}

input AwsRedshiftRevokeEndpointAccessInput {
  ClusterIdentifier: String
  Account: String
  VpcIds: [String]
  Force: Boolean
}

type AwsRedshiftRevokeSnapshotAccessOutput {
  Snapshot: AwsRedshiftSx
}

input AwsRedshiftRevokeSnapshotAccessInput {
  SnapshotIdentifier: String!
  SnapshotClusterIdentifier: String
  AccountWithRestoreAccess: String!
}

type AwsRedshiftRotateEncryptionKeyOutput {
  Cluster: AwsRedshiftS1t
}

input AwsRedshiftRotateEncryptionKeyInput {
  ClusterIdentifier: String!
}

input AwsRedshiftUpdatePartnerStatusInput {
  AccountId: String!
  ClusterIdentifier: String!
  DatabaseName: String!
  PartnerName: String!
  Status: String!
  StatusMessage: String
}

"""Redshift Data API Service (2019-12-20)"""
type AwsRedshiftData {
  cancelStatement(input: AwsRedshiftDataCancelStatementInput!, config: AwsConfig): AwsRedshiftDataCancelStatementOutput
  describeStatement(input: AwsRedshiftDataDescribeStatementInput!, config: AwsConfig): AwsRedshiftDataDescribeStatementOutput
  describeTable(input: AwsRedshiftDataDescribeTableInput!, config: AwsConfig): AwsRedshiftDataDescribeTableOutput
  executeStatement(input: AwsRedshiftDataExecuteStatementInput!, config: AwsConfig): AwsRedshiftDataExecuteStatementOutput
  getStatementResult(input: AwsRedshiftDataGetStatementResultInput!, config: AwsConfig): AwsRedshiftDataGetStatementResultOutput
  listDatabases(input: AwsRedshiftDataListDatabasesInput!, config: AwsConfig): AwsRedshiftDataListDatabasesOutput
  listSchemas(input: AwsRedshiftDataListSchemasInput!, config: AwsConfig): AwsRedshiftDataListSchemasOutput
  listStatements(input: AwsRedshiftDataListStatementsInput, config: AwsConfig): AwsRedshiftDataListStatementsOutput
  listTables(input: AwsRedshiftDataListTablesInput!, config: AwsConfig): AwsRedshiftDataListTablesOutput
}

type AwsRedshiftDataCancelStatementOutput {
  Status: Boolean
}

input AwsRedshiftDataCancelStatementInput {
  Id: String!
}

type AwsRedshiftDataDescribeStatementOutput {
  ClusterIdentifier: String
  CreatedAt: Date
  Database: String
  DbUser: String
  Duration: JSON
  Error: String
  HasResultSet: Boolean
  Id: String!
  QueryParameters: [AwsRedshiftDataSa]
  QueryString: String
  RedshiftPid: JSON
  RedshiftQueryId: JSON
  ResultRows: JSON
  ResultSize: JSON
  SecretArn: String
  Status: String
  UpdatedAt: Date
}

type AwsRedshiftDataSa {
  name: String!
  value: String!
}

input AwsRedshiftDataDescribeStatementInput {
  Id: String!
}

type AwsRedshiftDataDescribeTableOutput {
  ColumnList: [AwsRedshiftDataSm]
  NextToken: String
  TableName: String
}

type AwsRedshiftDataSm {
  columnDefault: String
  isCaseSensitive: Boolean
  isCurrency: Boolean
  isSigned: Boolean
  label: String
  length: Int
  name: String
  nullable: Int
  precision: Int
  scale: Int
  schemaName: String
  tableName: String
  typeName: String
}

input AwsRedshiftDataDescribeTableInput {
  ClusterIdentifier: String!
  ConnectedDatabase: String
  Database: String!
  DbUser: String
  MaxResults: Int
  NextToken: String
  Schema: String
  SecretArn: String
  Table: String
}

type AwsRedshiftDataExecuteStatementOutput {
  ClusterIdentifier: String
  CreatedAt: Date
  Database: String
  DbUser: String
  Id: String
  SecretArn: String
}

input AwsRedshiftDataExecuteStatementInput {
  ClusterIdentifier: String!
  Database: String
  DbUser: String
  Parameters: [AwsRedshiftDataSaInput]
  SecretArn: String
  Sql: String!
  StatementName: String
  WithEvent: Boolean
}

input AwsRedshiftDataSaInput {
  name: String!
  value: String!
}

type AwsRedshiftDataGetStatementResultOutput {
  ColumnMetadata: [AwsRedshiftDataSm]
  NextToken: String
  Records: [[AwsRedshiftDataGetStatementResultOutputRecords]]!
  TotalNumRows: JSON
}

type AwsRedshiftDataGetStatementResultOutputRecords {
  blobValue: JSON
  booleanValue: Boolean
  doubleValue: JSON
  isNull: Boolean
  longValue: JSON
  stringValue: String
}

input AwsRedshiftDataGetStatementResultInput {
  Id: String!
  NextToken: String
}

type AwsRedshiftDataListDatabasesOutput {
  Databases: [String]
  NextToken: String
}

input AwsRedshiftDataListDatabasesInput {
  ClusterIdentifier: String!
  Database: String
  DbUser: String
  MaxResults: Int
  NextToken: String
  SecretArn: String
}

type AwsRedshiftDataListSchemasOutput {
  NextToken: String
  Schemas: [String]
}

input AwsRedshiftDataListSchemasInput {
  ClusterIdentifier: String!
  ConnectedDatabase: String
  Database: String!
  DbUser: String
  MaxResults: Int
  NextToken: String
  SchemaPattern: String
  SecretArn: String
}

type AwsRedshiftDataListStatementsOutput {
  NextToken: String
  Statements: [AwsRedshiftDataListStatementsOutputStatements]!
}

type AwsRedshiftDataListStatementsOutputStatements {
  CreatedAt: Date
  Id: String!
  QueryParameters: [AwsRedshiftDataSa]
  QueryString: String
  SecretArn: String
  StatementName: String
  Status: String
  UpdatedAt: Date
}

input AwsRedshiftDataListStatementsInput {
  MaxResults: Int
  NextToken: String
  RoleLevel: Boolean
  StatementName: String
  Status: String
}

type AwsRedshiftDataListTablesOutput {
  NextToken: String
  Tables: [AwsRedshiftDataListTablesOutputTables]
}

type AwsRedshiftDataListTablesOutputTables {
  name: String
  schema: String
  type: String
}

input AwsRedshiftDataListTablesInput {
  ClusterIdentifier: String!
  ConnectedDatabase: String
  Database: String!
  DbUser: String
  MaxResults: Int
  NextToken: String
  SchemaPattern: String
  SecretArn: String
  TablePattern: String
}

"""Amazon Rekognition (2016-06-27)"""
type AwsRekognition {
  compareFaces(input: AwsRekognitionCompareFacesInput!, config: AwsConfig): AwsRekognitionCompareFacesOutput
  createCollection(input: AwsRekognitionCreateCollectionInput!, config: AwsConfig): AwsRekognitionCreateCollectionOutput
  createProject(input: AwsRekognitionCreateProjectInput!, config: AwsConfig): AwsRekognitionCreateProjectOutput
  createProjectVersion(input: AwsRekognitionCreateProjectVersionInput!, config: AwsConfig): AwsRekognitionCreateProjectVersionOutput
  createStreamProcessor(input: AwsRekognitionCreateStreamProcessorInput!, config: AwsConfig): AwsRekognitionCreateStreamProcessorOutput
  deleteCollection(input: AwsRekognitionDeleteCollectionInput!, config: AwsConfig): AwsRekognitionDeleteCollectionOutput
  deleteFaces(input: AwsRekognitionDeleteFacesInput!, config: AwsConfig): AwsRekognitionDeleteFacesOutput
  deleteProject(input: AwsRekognitionDeleteProjectInput!, config: AwsConfig): AwsRekognitionDeleteProjectOutput
  deleteProjectVersion(input: AwsRekognitionDeleteProjectVersionInput!, config: AwsConfig): AwsRekognitionDeleteProjectVersionOutput
  deleteStreamProcessor(input: AwsRekognitionDeleteStreamProcessorInput!, config: AwsConfig): JSON
  describeCollection(input: AwsRekognitionDescribeCollectionInput!, config: AwsConfig): AwsRekognitionDescribeCollectionOutput
  describeProjectVersions(input: AwsRekognitionDescribeProjectVersionsInput!, config: AwsConfig): AwsRekognitionDescribeProjectVersionsOutput
  describeProjects(input: AwsRekognitionDescribeProjectsInput, config: AwsConfig): AwsRekognitionDescribeProjectsOutput
  describeStreamProcessor(input: AwsRekognitionDescribeStreamProcessorInput!, config: AwsConfig): AwsRekognitionDescribeStreamProcessorOutput
  detectCustomLabels(input: AwsRekognitionDetectCustomLabelsInput!, config: AwsConfig): AwsRekognitionDetectCustomLabelsOutput
  detectFaces(input: AwsRekognitionDetectFacesInput!, config: AwsConfig): AwsRekognitionDetectFacesOutput
  detectLabels(input: AwsRekognitionDetectLabelsInput!, config: AwsConfig): AwsRekognitionDetectLabelsOutput
  detectModerationLabels(input: AwsRekognitionDetectModerationLabelsInput!, config: AwsConfig): AwsRekognitionDetectModerationLabelsOutput
  detectProtectiveEquipment(input: AwsRekognitionDetectProtectiveEquipmentInput!, config: AwsConfig): AwsRekognitionDetectProtectiveEquipmentOutput
  detectText(input: AwsRekognitionDetectTextInput!, config: AwsConfig): AwsRekognitionDetectTextOutput
  getCelebrityInfo(input: AwsRekognitionGetCelebrityInfoInput!, config: AwsConfig): AwsRekognitionGetCelebrityInfoOutput
  getCelebrityRecognition(input: AwsRekognitionGetCelebrityRecognitionInput!, config: AwsConfig): AwsRekognitionGetCelebrityRecognitionOutput
  getContentModeration(input: AwsRekognitionGetContentModerationInput!, config: AwsConfig): AwsRekognitionGetContentModerationOutput
  getFaceDetection(input: AwsRekognitionGetFaceDetectionInput!, config: AwsConfig): AwsRekognitionGetFaceDetectionOutput
  getFaceSearch(input: AwsRekognitionGetFaceSearchInput!, config: AwsConfig): AwsRekognitionGetFaceSearchOutput
  getLabelDetection(input: AwsRekognitionGetLabelDetectionInput!, config: AwsConfig): AwsRekognitionGetLabelDetectionOutput
  getPersonTracking(input: AwsRekognitionGetPersonTrackingInput!, config: AwsConfig): AwsRekognitionGetPersonTrackingOutput
  getSegmentDetection(input: AwsRekognitionGetSegmentDetectionInput!, config: AwsConfig): AwsRekognitionGetSegmentDetectionOutput
  getTextDetection(input: AwsRekognitionGetTextDetectionInput!, config: AwsConfig): AwsRekognitionGetTextDetectionOutput
  indexFaces(input: AwsRekognitionIndexFacesInput!, config: AwsConfig): AwsRekognitionIndexFacesOutput
  listCollections(input: AwsRekognitionListCollectionsInput, config: AwsConfig): AwsRekognitionListCollectionsOutput
  listFaces(input: AwsRekognitionListFacesInput!, config: AwsConfig): AwsRekognitionListFacesOutput
  listStreamProcessors(input: AwsRekognitionListStreamProcessorsInput, config: AwsConfig): AwsRekognitionListStreamProcessorsOutput
  listTagsForResource(input: AwsRekognitionListTagsForResourceInput!, config: AwsConfig): AwsRekognitionListTagsForResourceOutput
  recognizeCelebrities(input: AwsRekognitionRecognizeCelebritiesInput!, config: AwsConfig): AwsRekognitionRecognizeCelebritiesOutput
  searchFaces(input: AwsRekognitionSearchFacesInput!, config: AwsConfig): AwsRekognitionSearchFacesOutput
  searchFacesByImage(input: AwsRekognitionSearchFacesByImageInput!, config: AwsConfig): AwsRekognitionSearchFacesByImageOutput
  startCelebrityRecognition(input: AwsRekognitionStartCelebrityRecognitionInput!, config: AwsConfig): AwsRekognitionStartCelebrityRecognitionOutput
  startContentModeration(input: AwsRekognitionStartContentModerationInput!, config: AwsConfig): AwsRekognitionStartContentModerationOutput
  startFaceDetection(input: AwsRekognitionStartFaceDetectionInput!, config: AwsConfig): AwsRekognitionStartFaceDetectionOutput
  startFaceSearch(input: AwsRekognitionStartFaceSearchInput!, config: AwsConfig): AwsRekognitionStartFaceSearchOutput
  startLabelDetection(input: AwsRekognitionStartLabelDetectionInput!, config: AwsConfig): AwsRekognitionStartLabelDetectionOutput
  startPersonTracking(input: AwsRekognitionStartPersonTrackingInput!, config: AwsConfig): AwsRekognitionStartPersonTrackingOutput
  startProjectVersion(input: AwsRekognitionStartProjectVersionInput!, config: AwsConfig): AwsRekognitionStartProjectVersionOutput
  startSegmentDetection(input: AwsRekognitionStartSegmentDetectionInput!, config: AwsConfig): AwsRekognitionStartSegmentDetectionOutput
  startStreamProcessor(input: AwsRekognitionStartStreamProcessorInput!, config: AwsConfig): JSON
  startTextDetection(input: AwsRekognitionStartTextDetectionInput!, config: AwsConfig): AwsRekognitionStartTextDetectionOutput
  stopProjectVersion(input: AwsRekognitionStopProjectVersionInput!, config: AwsConfig): AwsRekognitionStopProjectVersionOutput
  stopStreamProcessor(input: AwsRekognitionStopStreamProcessorInput!, config: AwsConfig): JSON
  tagResource(input: AwsRekognitionTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsRekognitionUntagResourceInput!, config: AwsConfig): JSON
}

type AwsRekognitionCompareFacesOutput {
  SourceImageFace: AwsRekognitionCompareFacesOutputSourceImageFace
  FaceMatches: [AwsRekognitionCompareFacesOutputFaceMatches]
  UnmatchedFaces: [AwsRekognitionSg]
  SourceImageOrientationCorrection: String
  TargetImageOrientationCorrection: String
}

type AwsRekognitionCompareFacesOutputSourceImageFace {
  BoundingBox: AwsRekognitionSc
  Confidence: Float
}

type AwsRekognitionSc {
  Width: Float
  Height: Float
  Left: Float
  Top: Float
}

type AwsRekognitionCompareFacesOutputFaceMatches {
  Similarity: Float
  Face: AwsRekognitionSg
}

type AwsRekognitionSg {
  BoundingBox: AwsRekognitionSc
  Confidence: Float
  Landmarks: [AwsRekognitionSh]
  Pose: AwsRekognitionSk
  Quality: AwsRekognitionSm
}

type AwsRekognitionSh {
  Type: String
  X: Float
  Y: Float
}

type AwsRekognitionSk {
  Roll: Float
  Yaw: Float
  Pitch: Float
}

type AwsRekognitionSm {
  Brightness: Float
  Sharpness: Float
}

input AwsRekognitionCompareFacesInput {
  SourceImage: AwsRekognitionS2Input!
  TargetImage: AwsRekognitionS2Input!
  SimilarityThreshold: Float
  QualityFilter: String
}

input AwsRekognitionS2Input {
  Bytes: JSON
  S3Object: AwsRekognitionS4Input
}

input AwsRekognitionS4Input {
  Bucket: String
  Name: String
  Version: String
}

type AwsRekognitionCreateCollectionOutput {
  StatusCode: Int
  CollectionArn: String
  FaceModelVersion: String
}

input AwsRekognitionCreateCollectionInput {
  CollectionId: String!
  Tags: JSON
}

type AwsRekognitionCreateProjectOutput {
  ProjectArn: String
}

input AwsRekognitionCreateProjectInput {
  ProjectName: String!
}

type AwsRekognitionCreateProjectVersionOutput {
  ProjectVersionArn: String
}

input AwsRekognitionCreateProjectVersionInput {
  ProjectArn: String!
  VersionName: String!
  OutputConfig: AwsRekognitionS13Input!
  TrainingData: AwsRekognitionS15Input!
  TestingData: AwsRekognitionS19Input!
  Tags: JSON
  KmsKeyId: String
}

input AwsRekognitionS13Input {
  S3Bucket: String
  S3KeyPrefix: String
}

input AwsRekognitionS15Input {
  Assets: [AwsRekognitionS16Input]
}

input AwsRekognitionS16Input {
  GroundTruthManifest: AwsRekognitionS18Input
}

input AwsRekognitionS18Input {
  S3Object: AwsRekognitionS4Input
}

input AwsRekognitionS19Input {
  Assets: [AwsRekognitionS16Input]
  AutoCreate: Boolean
}

type AwsRekognitionCreateStreamProcessorOutput {
  StreamProcessorArn: String
}

input AwsRekognitionCreateStreamProcessorInput {
  Input: AwsRekognitionS1fInput!
  Output: AwsRekognitionS1iInput!
  Name: String!
  Settings: AwsRekognitionS1mInput!
  RoleArn: String!
  Tags: JSON
}

input AwsRekognitionS1fInput {
  KinesisVideoStream: AwsRekognitionS1fKinesisVideoStreamInput
}

input AwsRekognitionS1fKinesisVideoStreamInput {
  Arn: String
}

input AwsRekognitionS1iInput {
  KinesisDataStream: AwsRekognitionS1iKinesisDataStreamInput
}

input AwsRekognitionS1iKinesisDataStreamInput {
  Arn: String
}

input AwsRekognitionS1mInput {
  FaceSearch: AwsRekognitionS1mFaceSearchInput
}

input AwsRekognitionS1mFaceSearchInput {
  CollectionId: String
  FaceMatchThreshold: Float
}

type AwsRekognitionDeleteCollectionOutput {
  StatusCode: Int
}

input AwsRekognitionDeleteCollectionInput {
  CollectionId: String!
}

type AwsRekognitionDeleteFacesOutput {
  DeletedFaces: [String]
}

input AwsRekognitionDeleteFacesInput {
  CollectionId: String!
  FaceIds: [String]!
}

type AwsRekognitionDeleteProjectOutput {
  Status: String
}

input AwsRekognitionDeleteProjectInput {
  ProjectArn: String!
}

type AwsRekognitionDeleteProjectVersionOutput {
  Status: String
}

input AwsRekognitionDeleteProjectVersionInput {
  ProjectVersionArn: String!
}

input AwsRekognitionDeleteStreamProcessorInput {
  Name: String!
}

type AwsRekognitionDescribeCollectionOutput {
  FaceCount: JSON
  FaceModelVersion: String
  CollectionARN: String
  CreationTimestamp: Date
}

input AwsRekognitionDescribeCollectionInput {
  CollectionId: String!
}

type AwsRekognitionDescribeProjectVersionsOutput {
  ProjectVersionDescriptions: [AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptions]
  NextToken: String
}

type AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptions {
  ProjectVersionArn: String
  CreationTimestamp: Date
  MinInferenceUnits: Int
  Status: String
  StatusMessage: String
  BillableTrainingTimeInSeconds: JSON
  TrainingEndTimestamp: Date
  OutputConfig: AwsRekognitionS13
  TrainingDataResult: AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsTrainingDataResult
  TestingDataResult: AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsTestingDataResult
  EvaluationResult: AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsEvaluationResult
  ManifestSummary: AwsRekognitionS18
  KmsKeyId: String
}

type AwsRekognitionS13 {
  S3Bucket: String
  S3KeyPrefix: String
}

type AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsTrainingDataResult {
  Input: AwsRekognitionS15
  Output: AwsRekognitionS15
  Validation: AwsRekognitionS2j
}

type AwsRekognitionS15 {
  Assets: [AwsRekognitionS16]
}

type AwsRekognitionS16 {
  GroundTruthManifest: AwsRekognitionS18
}

type AwsRekognitionS18 {
  S3Object: AwsRekognitionS4
}

type AwsRekognitionS4 {
  Bucket: String
  Name: String
  Version: String
}

type AwsRekognitionS2j {
  Assets: [AwsRekognitionS16]
}

type AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsTestingDataResult {
  Input: AwsRekognitionS19
  Output: AwsRekognitionS19
  Validation: AwsRekognitionS2j
}

type AwsRekognitionS19 {
  Assets: [AwsRekognitionS16]
  AutoCreate: Boolean
}

type AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsEvaluationResult {
  F1Score: Float
  Summary: AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsEvaluationResultSummary
}

type AwsRekognitionDescribeProjectVersionsOutputProjectVersionDescriptionsEvaluationResultSummary {
  S3Object: AwsRekognitionS4
}

input AwsRekognitionDescribeProjectVersionsInput {
  ProjectArn: String!
  VersionNames: [String]
  NextToken: String
  MaxResults: Int
}

type AwsRekognitionDescribeProjectsOutput {
  ProjectDescriptions: [AwsRekognitionDescribeProjectsOutputProjectDescriptions]
  NextToken: String
}

type AwsRekognitionDescribeProjectsOutputProjectDescriptions {
  ProjectArn: String
  CreationTimestamp: Date
  Status: String
}

input AwsRekognitionDescribeProjectsInput {
  NextToken: String
  MaxResults: Int
}

type AwsRekognitionDescribeStreamProcessorOutput {
  Name: String
  StreamProcessorArn: String
  Status: String
  StatusMessage: String
  CreationTimestamp: Date
  LastUpdateTimestamp: Date
  Input: AwsRekognitionS1f
  Output: AwsRekognitionS1i
  RoleArn: String
  Settings: AwsRekognitionS1m
}

type AwsRekognitionS1f {
  KinesisVideoStream: AwsRekognitionS1fKinesisVideoStream
}

type AwsRekognitionS1fKinesisVideoStream {
  Arn: String
}

type AwsRekognitionS1i {
  KinesisDataStream: AwsRekognitionS1iKinesisDataStream
}

type AwsRekognitionS1iKinesisDataStream {
  Arn: String
}

type AwsRekognitionS1m {
  FaceSearch: AwsRekognitionS1mFaceSearch
}

type AwsRekognitionS1mFaceSearch {
  CollectionId: String
  FaceMatchThreshold: Float
}

input AwsRekognitionDescribeStreamProcessorInput {
  Name: String!
}

type AwsRekognitionDetectCustomLabelsOutput {
  CustomLabels: [AwsRekognitionDetectCustomLabelsOutputCustomLabels]
}

type AwsRekognitionDetectCustomLabelsOutputCustomLabels {
  Name: String
  Confidence: Float
  Geometry: AwsRekognitionS2z
}

type AwsRekognitionS2z {
  BoundingBox: AwsRekognitionSc
  Polygon: [AwsRekognitionS2zPolygon]
}

type AwsRekognitionS2zPolygon {
  X: Float
  Y: Float
}

input AwsRekognitionDetectCustomLabelsInput {
  ProjectVersionArn: String!
  Image: AwsRekognitionS2Input!
  MaxResults: Int
  MinConfidence: Float
}

type AwsRekognitionDetectFacesOutput {
  FaceDetails: [AwsRekognitionS37]
  OrientationCorrection: String
}

type AwsRekognitionS37 {
  BoundingBox: AwsRekognitionSc
  AgeRange: AwsRekognitionS37AgeRange
  Smile: AwsRekognitionS37Smile
  Eyeglasses: AwsRekognitionS37Eyeglasses
  Sunglasses: AwsRekognitionS37Sunglasses
  Gender: AwsRekognitionS37Gender
  Beard: AwsRekognitionS37Beard
  Mustache: AwsRekognitionS37Mustache
  EyesOpen: AwsRekognitionS37EyesOpen
  MouthOpen: AwsRekognitionS37MouthOpen
  Emotions: [AwsRekognitionS37Emotions]
  Landmarks: [AwsRekognitionSh]
  Pose: AwsRekognitionSk
  Quality: AwsRekognitionSm
  Confidence: Float
}

type AwsRekognitionS37AgeRange {
  Low: Int
  High: Int
}

type AwsRekognitionS37Smile {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37Eyeglasses {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37Sunglasses {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37Gender {
  Value: String
  Confidence: Float
}

type AwsRekognitionS37Beard {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37Mustache {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37EyesOpen {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37MouthOpen {
  Value: Boolean
  Confidence: Float
}

type AwsRekognitionS37Emotions {
  Type: String
  Confidence: Float
}

input AwsRekognitionDetectFacesInput {
  Image: AwsRekognitionS2Input!
  Attributes: [String]
}

type AwsRekognitionDetectLabelsOutput {
  Labels: [AwsRekognitionS3o]
  OrientationCorrection: String
  LabelModelVersion: String
}

type AwsRekognitionS3o {
  Name: String
  Confidence: Float
  Instances: [AwsRekognitionS3oInstances]
  Parents: [AwsRekognitionS3oParents]
}

type AwsRekognitionS3oInstances {
  BoundingBox: AwsRekognitionSc
  Confidence: Float
}

type AwsRekognitionS3oParents {
  Name: String
}

input AwsRekognitionDetectLabelsInput {
  Image: AwsRekognitionS2Input!
  MaxLabels: Int
  MinConfidence: Float
}

type AwsRekognitionDetectModerationLabelsOutput {
  ModerationLabels: [AwsRekognitionS42]
  ModerationModelVersion: String
  HumanLoopActivationOutput: AwsRekognitionDetectModerationLabelsOutputHumanLoopActivationOutput
}

type AwsRekognitionS42 {
  Confidence: Float
  Name: String
  ParentName: String
}

type AwsRekognitionDetectModerationLabelsOutputHumanLoopActivationOutput {
  HumanLoopArn: String
  HumanLoopActivationReasons: [String]
  HumanLoopActivationConditionsEvaluationResults: String
}

input AwsRekognitionDetectModerationLabelsInput {
  Image: AwsRekognitionS2Input!
  MinConfidence: Float
  HumanLoopConfig: AwsRekognitionDetectModerationLabelsHumanLoopConfigInput
}

input AwsRekognitionDetectModerationLabelsHumanLoopConfigInput {
  HumanLoopName: String!
  FlowDefinitionArn: String!
  DataAttributes: AwsRekognitionDetectModerationLabelsHumanLoopConfigDataAttributesInput
}

input AwsRekognitionDetectModerationLabelsHumanLoopConfigDataAttributesInput {
  ContentClassifiers: [String]
}

type AwsRekognitionDetectProtectiveEquipmentOutput {
  ProtectiveEquipmentModelVersion: String
  Persons: [AwsRekognitionDetectProtectiveEquipmentOutputPersons]
  Summary: AwsRekognitionDetectProtectiveEquipmentOutputSummary
}

type AwsRekognitionDetectProtectiveEquipmentOutputPersons {
  BodyParts: [AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyParts]
  BoundingBox: AwsRekognitionSc
  Confidence: Float
  Id: Int
}

type AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyParts {
  Name: String
  Confidence: Float
  EquipmentDetections: [AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyPartsEquipmentDetections]
}

type AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyPartsEquipmentDetections {
  BoundingBox: AwsRekognitionSc
  Confidence: Float
  Type: String
  CoversBodyPart: AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyPartsEquipmentDetectionsCoversBodyPart
}

type AwsRekognitionDetectProtectiveEquipmentOutputPersonsBodyPartsEquipmentDetectionsCoversBodyPart {
  Confidence: Float
  Value: Boolean
}

type AwsRekognitionDetectProtectiveEquipmentOutputSummary {
  PersonsWithRequiredEquipment: [Int]
  PersonsWithoutRequiredEquipment: [Int]
  PersonsIndeterminate: [Int]
}

input AwsRekognitionDetectProtectiveEquipmentInput {
  Image: AwsRekognitionS2Input!
  SummarizationAttributes: AwsRekognitionDetectProtectiveEquipmentSummarizationAttributesInput
}

input AwsRekognitionDetectProtectiveEquipmentSummarizationAttributesInput {
  MinConfidence: Float!
  RequiredEquipmentTypes: [String]!
}

type AwsRekognitionDetectTextOutput {
  TextDetections: [AwsRekognitionS4w]
  TextModelVersion: String
}

type AwsRekognitionS4w {
  DetectedText: String
  Type: String
  Id: Int
  ParentId: Int
  Confidence: Float
  Geometry: AwsRekognitionS2z
}

input AwsRekognitionDetectTextInput {
  Image: AwsRekognitionS2Input!
  Filters: AwsRekognitionDetectTextFiltersInput
}

input AwsRekognitionDetectTextFiltersInput {
  WordFilter: AwsRekognitionS4pInput
  RegionsOfInterest: [AwsRekognitionS4sInput]
}

input AwsRekognitionS4pInput {
  MinConfidence: Float
  MinBoundingBoxHeight: Float
  MinBoundingBoxWidth: Float
}

input AwsRekognitionS4sInput {
  BoundingBox: AwsRekognitionScInput
}

input AwsRekognitionScInput {
  Width: Float
  Height: Float
  Left: Float
  Top: Float
}

type AwsRekognitionGetCelebrityInfoOutput {
  Urls: [String]
  Name: String
}

input AwsRekognitionGetCelebrityInfoInput {
  Id: String!
}

type AwsRekognitionGetCelebrityRecognitionOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  NextToken: String
  Celebrities: [AwsRekognitionGetCelebrityRecognitionOutputCelebrities]
}

type AwsRekognitionS5a {
  Codec: String
  DurationMillis: JSON
  Format: String
  FrameRate: Float
  FrameHeight: JSON
  FrameWidth: JSON
}

type AwsRekognitionGetCelebrityRecognitionOutputCelebrities {
  Timestamp: JSON
  Celebrity: AwsRekognitionGetCelebrityRecognitionOutputCelebritiesCelebrity
}

type AwsRekognitionGetCelebrityRecognitionOutputCelebritiesCelebrity {
  Urls: [String]
  Name: String
  Id: String
  Confidence: Float
  BoundingBox: AwsRekognitionSc
  Face: AwsRekognitionS37
}

input AwsRekognitionGetCelebrityRecognitionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
  SortBy: String
}

type AwsRekognitionGetContentModerationOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  ModerationLabels: [AwsRekognitionGetContentModerationOutputModerationLabels]
  NextToken: String
  ModerationModelVersion: String
}

type AwsRekognitionGetContentModerationOutputModerationLabels {
  Timestamp: JSON
  ModerationLabel: AwsRekognitionS42
}

input AwsRekognitionGetContentModerationInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
  SortBy: String
}

type AwsRekognitionGetFaceDetectionOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  NextToken: String
  Faces: [AwsRekognitionGetFaceDetectionOutputFaces]
}

type AwsRekognitionGetFaceDetectionOutputFaces {
  Timestamp: JSON
  Face: AwsRekognitionS37
}

input AwsRekognitionGetFaceDetectionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
}

type AwsRekognitionGetFaceSearchOutput {
  JobStatus: String
  StatusMessage: String
  NextToken: String
  VideoMetadata: AwsRekognitionS5a
  Persons: [AwsRekognitionGetFaceSearchOutputPersons]
}

type AwsRekognitionGetFaceSearchOutputPersons {
  Timestamp: JSON
  Person: AwsRekognitionS5t
  FaceMatches: [AwsRekognitionS5v]
}

type AwsRekognitionS5t {
  Index: JSON
  BoundingBox: AwsRekognitionSc
  Face: AwsRekognitionS37
}

type AwsRekognitionS5v {
  Similarity: Float
  Face: AwsRekognitionS5x
}

type AwsRekognitionS5x {
  FaceId: String
  BoundingBox: AwsRekognitionSc
  ImageId: String
  ExternalImageId: String
  Confidence: Float
}

input AwsRekognitionGetFaceSearchInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
  SortBy: String
}

type AwsRekognitionGetLabelDetectionOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  NextToken: String
  Labels: [AwsRekognitionGetLabelDetectionOutputLabels]
  LabelModelVersion: String
}

type AwsRekognitionGetLabelDetectionOutputLabels {
  Timestamp: JSON
  Label: AwsRekognitionS3o
}

input AwsRekognitionGetLabelDetectionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
  SortBy: String
}

type AwsRekognitionGetPersonTrackingOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  NextToken: String
  Persons: [AwsRekognitionGetPersonTrackingOutputPersons]
}

type AwsRekognitionGetPersonTrackingOutputPersons {
  Timestamp: JSON
  Person: AwsRekognitionS5t
}

input AwsRekognitionGetPersonTrackingInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
  SortBy: String
}

type AwsRekognitionGetSegmentDetectionOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: [AwsRekognitionS5a]
  AudioMetadata: [AwsRekognitionGetSegmentDetectionOutputAudioMetadata]
  NextToken: String
  Segments: [AwsRekognitionGetSegmentDetectionOutputSegments]
  SelectedSegmentTypes: [AwsRekognitionGetSegmentDetectionOutputSelectedSegmentTypes]
}

type AwsRekognitionGetSegmentDetectionOutputAudioMetadata {
  Codec: String
  DurationMillis: JSON
  SampleRate: JSON
  NumberOfChannels: JSON
}

type AwsRekognitionGetSegmentDetectionOutputSegments {
  Type: String
  StartTimestampMillis: JSON
  EndTimestampMillis: JSON
  DurationMillis: JSON
  StartTimecodeSMPTE: String
  EndTimecodeSMPTE: String
  DurationSMPTE: String
  TechnicalCueSegment: AwsRekognitionGetSegmentDetectionOutputSegmentsTechnicalCueSegment
  ShotSegment: AwsRekognitionGetSegmentDetectionOutputSegmentsShotSegment
}

type AwsRekognitionGetSegmentDetectionOutputSegmentsTechnicalCueSegment {
  Type: String
  Confidence: Float
}

type AwsRekognitionGetSegmentDetectionOutputSegmentsShotSegment {
  Index: JSON
  Confidence: Float
}

type AwsRekognitionGetSegmentDetectionOutputSelectedSegmentTypes {
  Type: String
  ModelVersion: String
}

input AwsRekognitionGetSegmentDetectionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
}

type AwsRekognitionGetTextDetectionOutput {
  JobStatus: String
  StatusMessage: String
  VideoMetadata: AwsRekognitionS5a
  TextDetections: [AwsRekognitionGetTextDetectionOutputTextDetections]
  NextToken: String
  TextModelVersion: String
}

type AwsRekognitionGetTextDetectionOutputTextDetections {
  Timestamp: JSON
  TextDetection: AwsRekognitionS4w
}

input AwsRekognitionGetTextDetectionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
}

type AwsRekognitionIndexFacesOutput {
  FaceRecords: [AwsRekognitionIndexFacesOutputFaceRecords]
  OrientationCorrection: String
  FaceModelVersion: String
  UnindexedFaces: [AwsRekognitionIndexFacesOutputUnindexedFaces]
}

type AwsRekognitionIndexFacesOutputFaceRecords {
  Face: AwsRekognitionS5x
  FaceDetail: AwsRekognitionS37
}

type AwsRekognitionIndexFacesOutputUnindexedFaces {
  Reasons: [String]
  FaceDetail: AwsRekognitionS37
}

input AwsRekognitionIndexFacesInput {
  CollectionId: String!
  Image: AwsRekognitionS2Input!
  ExternalImageId: String
  DetectionAttributes: [String]
  MaxFaces: Int
  QualityFilter: String
}

type AwsRekognitionListCollectionsOutput {
  CollectionIds: [String]
  NextToken: String
  FaceModelVersions: [String]
}

input AwsRekognitionListCollectionsInput {
  NextToken: String
  MaxResults: Int
}

type AwsRekognitionListFacesOutput {
  Faces: [AwsRekognitionS5x]
  NextToken: String
  FaceModelVersion: String
}

input AwsRekognitionListFacesInput {
  CollectionId: String!
  NextToken: String
  MaxResults: Int
}

type AwsRekognitionListStreamProcessorsOutput {
  NextToken: String
  StreamProcessors: [AwsRekognitionListStreamProcessorsOutputStreamProcessors]
}

type AwsRekognitionListStreamProcessorsOutputStreamProcessors {
  Name: String
  Status: String
}

input AwsRekognitionListStreamProcessorsInput {
  NextToken: String
  MaxResults: Int
}

type AwsRekognitionListTagsForResourceOutput {
  Tags: JSON
}

input AwsRekognitionListTagsForResourceInput {
  ResourceArn: String!
}

type AwsRekognitionRecognizeCelebritiesOutput {
  CelebrityFaces: [AwsRekognitionRecognizeCelebritiesOutputCelebrityFaces]
  UnrecognizedFaces: [AwsRekognitionSg]
  OrientationCorrection: String
}

type AwsRekognitionRecognizeCelebritiesOutputCelebrityFaces {
  Urls: [String]
  Name: String
  Id: String
  Face: AwsRekognitionSg
  MatchConfidence: Float
}

input AwsRekognitionRecognizeCelebritiesInput {
  Image: AwsRekognitionS2Input!
}

type AwsRekognitionSearchFacesOutput {
  SearchedFaceId: String
  FaceMatches: [AwsRekognitionS5v]
  FaceModelVersion: String
}

input AwsRekognitionSearchFacesInput {
  CollectionId: String!
  FaceId: String!
  MaxFaces: Int
  FaceMatchThreshold: Float
}

type AwsRekognitionSearchFacesByImageOutput {
  SearchedFaceBoundingBox: AwsRekognitionSc
  SearchedFaceConfidence: Float
  FaceMatches: [AwsRekognitionS5v]
  FaceModelVersion: String
}

input AwsRekognitionSearchFacesByImageInput {
  CollectionId: String!
  Image: AwsRekognitionS2Input!
  MaxFaces: Int
  FaceMatchThreshold: Float
  QualityFilter: String
}

type AwsRekognitionStartCelebrityRecognitionOutput {
  JobId: String
}

input AwsRekognitionStartCelebrityRecognitionInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
}

input AwsRekognitionS7sInput {
  S3Object: AwsRekognitionS4Input
}

input AwsRekognitionS7uInput {
  SNSTopicArn: String!
  RoleArn: String!
}

type AwsRekognitionStartContentModerationOutput {
  JobId: String
}

input AwsRekognitionStartContentModerationInput {
  Video: AwsRekognitionS7sInput!
  MinConfidence: Float
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
}

type AwsRekognitionStartFaceDetectionOutput {
  JobId: String
}

input AwsRekognitionStartFaceDetectionInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  FaceAttributes: String
  JobTag: String
}

type AwsRekognitionStartFaceSearchOutput {
  JobId: String
}

input AwsRekognitionStartFaceSearchInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  FaceMatchThreshold: Float
  CollectionId: String!
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
}

type AwsRekognitionStartLabelDetectionOutput {
  JobId: String
}

input AwsRekognitionStartLabelDetectionInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  MinConfidence: Float
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
}

type AwsRekognitionStartPersonTrackingOutput {
  JobId: String
}

input AwsRekognitionStartPersonTrackingInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
}

type AwsRekognitionStartProjectVersionOutput {
  Status: String
}

input AwsRekognitionStartProjectVersionInput {
  ProjectVersionArn: String!
  MinInferenceUnits: Int!
}

type AwsRekognitionStartSegmentDetectionOutput {
  JobId: String
}

input AwsRekognitionStartSegmentDetectionInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
  Filters: AwsRekognitionStartSegmentDetectionFiltersInput
  SegmentTypes: [String]!
}

input AwsRekognitionStartSegmentDetectionFiltersInput {
  TechnicalCueFilter: AwsRekognitionStartSegmentDetectionFiltersTechnicalCueFilterInput
  ShotFilter: AwsRekognitionStartSegmentDetectionFiltersShotFilterInput
}

input AwsRekognitionStartSegmentDetectionFiltersTechnicalCueFilterInput {
  MinSegmentConfidence: Float
}

input AwsRekognitionStartSegmentDetectionFiltersShotFilterInput {
  MinSegmentConfidence: Float
}

input AwsRekognitionStartStreamProcessorInput {
  Name: String!
}

type AwsRekognitionStartTextDetectionOutput {
  JobId: String
}

input AwsRekognitionStartTextDetectionInput {
  Video: AwsRekognitionS7sInput!
  ClientRequestToken: String
  NotificationChannel: AwsRekognitionS7uInput
  JobTag: String
  Filters: AwsRekognitionStartTextDetectionFiltersInput
}

input AwsRekognitionStartTextDetectionFiltersInput {
  WordFilter: AwsRekognitionS4pInput
  RegionsOfInterest: [AwsRekognitionS4sInput]
}

type AwsRekognitionStopProjectVersionOutput {
  Status: String
}

input AwsRekognitionStopProjectVersionInput {
  ProjectVersionArn: String!
}

input AwsRekognitionStopStreamProcessorInput {
  Name: String!
}

input AwsRekognitionTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsRekognitionUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

"""AWS Resource Groups (2017-11-27)"""
type AwsResourceGroups {
  createGroup(input: AwsResourceGroupsCreateGroupInput!, config: AwsConfig): AwsResourceGroupsCreateGroupOutput
  deleteGroup(input: AwsResourceGroupsDeleteGroupInput, config: AwsConfig): AwsResourceGroupsDeleteGroupOutput
  getGroup(input: AwsResourceGroupsGetGroupInput, config: AwsConfig): AwsResourceGroupsGetGroupOutput
  getGroupConfiguration(input: AwsResourceGroupsGetGroupConfigurationInput, config: AwsConfig): AwsResourceGroupsGetGroupConfigurationOutput
  getGroupQuery(input: AwsResourceGroupsGetGroupQueryInput, config: AwsConfig): AwsResourceGroupsGetGroupQueryOutput
  getTags(input: AwsResourceGroupsGetTagsInput!, config: AwsConfig): AwsResourceGroupsGetTagsOutput
  groupResources(input: AwsResourceGroupsGroupResourcesInput!, config: AwsConfig): AwsResourceGroupsGroupResourcesOutput
  listGroupResources(input: AwsResourceGroupsListGroupResourcesInput, config: AwsConfig): AwsResourceGroupsListGroupResourcesOutput
  listGroups(input: AwsResourceGroupsListGroupsInput, config: AwsConfig): AwsResourceGroupsListGroupsOutput
  putGroupConfiguration(input: AwsResourceGroupsPutGroupConfigurationInput, config: AwsConfig): JSON
  searchResources(input: AwsResourceGroupsSearchResourcesInput!, config: AwsConfig): AwsResourceGroupsSearchResourcesOutput
  tag(input: AwsResourceGroupsTagInput!, config: AwsConfig): AwsResourceGroupsTagOutput
  ungroupResources(input: AwsResourceGroupsUngroupResourcesInput!, config: AwsConfig): AwsResourceGroupsUngroupResourcesOutput
  untag(input: AwsResourceGroupsUntagInput!, config: AwsConfig): AwsResourceGroupsUntagOutput
  updateGroup(input: AwsResourceGroupsUpdateGroupInput, config: AwsConfig): AwsResourceGroupsUpdateGroupOutput
  updateGroupQuery(input: AwsResourceGroupsUpdateGroupQueryInput!, config: AwsConfig): AwsResourceGroupsUpdateGroupQueryOutput
}

type AwsResourceGroupsCreateGroupOutput {
  Group: AwsResourceGroupsSj
  ResourceQuery: AwsResourceGroupsS4
  Tags: JSON
  GroupConfiguration: AwsResourceGroupsSl
}

type AwsResourceGroupsSj {
  GroupArn: String!
  Name: String!
  Description: String
}

type AwsResourceGroupsS4 {
  Type: String!
  Query: String!
}

type AwsResourceGroupsSl {
  Configuration: [AwsResourceGroupsSa]
  ProposedConfiguration: [AwsResourceGroupsSa]
  Status: String
  FailureReason: String
}

type AwsResourceGroupsSa {
  Type: String!
  Parameters: [AwsResourceGroupsSaParameters]
}

type AwsResourceGroupsSaParameters {
  Name: String!
  Values: [String]
}

input AwsResourceGroupsCreateGroupInput {
  Name: String!
  Description: String
  ResourceQuery: AwsResourceGroupsS4Input
  Tags: JSON
  Configuration: [AwsResourceGroupsSaInput]
}

input AwsResourceGroupsS4Input {
  Type: String!
  Query: String!
}

input AwsResourceGroupsSaInput {
  Type: String!
  Parameters: [AwsResourceGroupsSaParametersInput]
}

input AwsResourceGroupsSaParametersInput {
  Name: String!
  Values: [String]
}

type AwsResourceGroupsDeleteGroupOutput {
  Group: AwsResourceGroupsSj
}

input AwsResourceGroupsDeleteGroupInput {
  GroupName: String
  Group: String
}

type AwsResourceGroupsGetGroupOutput {
  Group: AwsResourceGroupsSj
}

input AwsResourceGroupsGetGroupInput {
  GroupName: String
  Group: String
}

type AwsResourceGroupsGetGroupConfigurationOutput {
  GroupConfiguration: AwsResourceGroupsSl
}

input AwsResourceGroupsGetGroupConfigurationInput {
  Group: String
}

type AwsResourceGroupsGetGroupQueryOutput {
  GroupQuery: AwsResourceGroupsSx
}

type AwsResourceGroupsSx {
  GroupName: String!
  ResourceQuery: AwsResourceGroupsS4!
}

input AwsResourceGroupsGetGroupQueryInput {
  GroupName: String
  Group: String
}

type AwsResourceGroupsGetTagsOutput {
  Arn: String
  Tags: JSON
}

input AwsResourceGroupsGetTagsInput {
  Arn: String!
}

type AwsResourceGroupsGroupResourcesOutput {
  Succeeded: [String]
  Failed: [AwsResourceGroupsS14]
  Pending: [AwsResourceGroupsS18]
}

type AwsResourceGroupsS14 {
  ResourceArn: String
  ErrorMessage: String
  ErrorCode: String
}

type AwsResourceGroupsS18 {
  ResourceArn: String
}

input AwsResourceGroupsGroupResourcesInput {
  Group: String!
  ResourceArns: [String]!
}

type AwsResourceGroupsListGroupResourcesOutput {
  Resources: [AwsResourceGroupsListGroupResourcesOutputResources]
  ResourceIdentifiers: [AwsResourceGroupsS1l]
  NextToken: String
  QueryErrors: [AwsResourceGroupsS1q]
}

type AwsResourceGroupsListGroupResourcesOutputResources {
  Identifier: AwsResourceGroupsS1l
  Status: AwsResourceGroupsListGroupResourcesOutputResourcesStatus
}

type AwsResourceGroupsS1l {
  ResourceArn: String
  ResourceType: String
}

type AwsResourceGroupsListGroupResourcesOutputResourcesStatus {
  Name: String
}

type AwsResourceGroupsS1q {
  ErrorCode: String
  Message: String
}

input AwsResourceGroupsListGroupResourcesInput {
  GroupName: String
  Group: String
  Filters: [AwsResourceGroupsListGroupResourcesFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsResourceGroupsListGroupResourcesFiltersInput {
  Name: String!
  Values: [String]!
}

type AwsResourceGroupsListGroupsOutput {
  GroupIdentifiers: [AwsResourceGroupsListGroupsOutputGroupIdentifiers]
  Groups: [AwsResourceGroupsSj]
  NextToken: String
}

type AwsResourceGroupsListGroupsOutputGroupIdentifiers {
  GroupName: String
  GroupArn: String
}

input AwsResourceGroupsListGroupsInput {
  Filters: [AwsResourceGroupsListGroupsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsResourceGroupsListGroupsFiltersInput {
  Name: String!
  Values: [String]!
}

input AwsResourceGroupsPutGroupConfigurationInput {
  Group: String
  Configuration: [AwsResourceGroupsSaInput]
}

type AwsResourceGroupsSearchResourcesOutput {
  ResourceIdentifiers: [AwsResourceGroupsS1l]
  NextToken: String
  QueryErrors: [AwsResourceGroupsS1q]
}

input AwsResourceGroupsSearchResourcesInput {
  ResourceQuery: AwsResourceGroupsS4Input!
  MaxResults: Int
  NextToken: String
}

type AwsResourceGroupsTagOutput {
  Arn: String
  Tags: JSON
}

input AwsResourceGroupsTagInput {
  Arn: String!
  Tags: JSON!
}

type AwsResourceGroupsUngroupResourcesOutput {
  Succeeded: [String]
  Failed: [AwsResourceGroupsS14]
  Pending: [AwsResourceGroupsS18]
}

input AwsResourceGroupsUngroupResourcesInput {
  Group: String!
  ResourceArns: [String]!
}

type AwsResourceGroupsUntagOutput {
  Arn: String
  Keys: [String]
}

input AwsResourceGroupsUntagInput {
  Arn: String!
  Keys: [String]!
}

type AwsResourceGroupsUpdateGroupOutput {
  Group: AwsResourceGroupsSj
}

input AwsResourceGroupsUpdateGroupInput {
  GroupName: String
  Group: String
  Description: String
}

type AwsResourceGroupsUpdateGroupQueryOutput {
  GroupQuery: AwsResourceGroupsSx
}

input AwsResourceGroupsUpdateGroupQueryInput {
  GroupName: String
  Group: String
  ResourceQuery: AwsResourceGroupsS4Input!
}

"""AWS Resource Groups Tagging API (2017-01-26)"""
type AwsResourceGroupsTaggingAPI {
  describeReportCreation(input: JSON, config: AwsConfig): AwsResourceGroupsTaggingAPIDescribeReportCreationOutput
  getComplianceSummary(input: AwsResourceGroupsTaggingAPIGetComplianceSummaryInput, config: AwsConfig): AwsResourceGroupsTaggingAPIGetComplianceSummaryOutput
  getResources(input: AwsResourceGroupsTaggingAPIGetResourcesInput, config: AwsConfig): AwsResourceGroupsTaggingAPIGetResourcesOutput
  getTagKeys(input: AwsResourceGroupsTaggingAPIGetTagKeysInput, config: AwsConfig): AwsResourceGroupsTaggingAPIGetTagKeysOutput
  getTagValues(input: AwsResourceGroupsTaggingAPIGetTagValuesInput!, config: AwsConfig): AwsResourceGroupsTaggingAPIGetTagValuesOutput
  startReportCreation(input: AwsResourceGroupsTaggingAPIStartReportCreationInput!, config: AwsConfig): JSON
  tagResources(input: AwsResourceGroupsTaggingAPITagResourcesInput!, config: AwsConfig): AwsResourceGroupsTaggingAPITagResourcesOutput
  untagResources(input: AwsResourceGroupsTaggingAPIUntagResourcesInput!, config: AwsConfig): AwsResourceGroupsTaggingAPIUntagResourcesOutput
}

type AwsResourceGroupsTaggingAPIDescribeReportCreationOutput {
  Status: String
  S3Location: String
  ErrorMessage: String
}

type AwsResourceGroupsTaggingAPIGetComplianceSummaryOutput {
  SummaryList: [AwsResourceGroupsTaggingAPIGetComplianceSummaryOutputSummaryList]
  PaginationToken: String
}

type AwsResourceGroupsTaggingAPIGetComplianceSummaryOutputSummaryList {
  LastUpdated: String
  TargetId: String
  TargetIdType: String
  Region: String
  ResourceType: String
  NonCompliantResources: JSON
}

input AwsResourceGroupsTaggingAPIGetComplianceSummaryInput {
  TargetIdFilters: [String]
  RegionFilters: [String]
  ResourceTypeFilters: [String]
  TagKeyFilters: [String]
  GroupBy: [String]
  MaxResults: Int
  PaginationToken: String
}

type AwsResourceGroupsTaggingAPIGetResourcesOutput {
  PaginationToken: String
  ResourceTagMappingList: [AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingList]
}

type AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingList {
  ResourceARN: String
  Tags: [AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingListTags]
  ComplianceDetails: AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingListComplianceDetails
}

type AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingListTags {
  Key: String!
  Value: String!
}

type AwsResourceGroupsTaggingAPIGetResourcesOutputResourceTagMappingListComplianceDetails {
  NoncompliantKeys: [String]
  KeysWithNoncompliantValues: [String]
  ComplianceStatus: Boolean
}

input AwsResourceGroupsTaggingAPIGetResourcesInput {
  PaginationToken: String
  TagFilters: [AwsResourceGroupsTaggingAPIGetResourcesTagFiltersInput]
  ResourcesPerPage: Int
  TagsPerPage: Int
  ResourceTypeFilters: [String]
  IncludeComplianceDetails: Boolean
  ExcludeCompliantResources: Boolean
  ResourceARNList: [String]
}

input AwsResourceGroupsTaggingAPIGetResourcesTagFiltersInput {
  Key: String
  Values: [String]
}

type AwsResourceGroupsTaggingAPIGetTagKeysOutput {
  PaginationToken: String
  TagKeys: [String]
}

input AwsResourceGroupsTaggingAPIGetTagKeysInput {
  PaginationToken: String
}

type AwsResourceGroupsTaggingAPIGetTagValuesOutput {
  PaginationToken: String
  TagValues: [String]
}

input AwsResourceGroupsTaggingAPIGetTagValuesInput {
  PaginationToken: String
  Key: String!
}

input AwsResourceGroupsTaggingAPIStartReportCreationInput {
  S3Bucket: String!
}

type AwsResourceGroupsTaggingAPITagResourcesOutput {
  FailedResourcesMap: JSON
}

input AwsResourceGroupsTaggingAPITagResourcesInput {
  ResourceARNList: [String]!
  Tags: JSON!
}

type AwsResourceGroupsTaggingAPIUntagResourcesOutput {
  FailedResourcesMap: JSON
}

input AwsResourceGroupsTaggingAPIUntagResourcesInput {
  ResourceARNList: [String]!
  TagKeys: [String]!
}

"""AWS RoboMaker (2018-06-29)"""
type AwsRoboMaker {
  batchDeleteWorlds(input: AwsRoboMakerBatchDeleteWorldsInput!, config: AwsConfig): AwsRoboMakerBatchDeleteWorldsOutput
  batchDescribeSimulationJob(input: AwsRoboMakerBatchDescribeSimulationJobInput!, config: AwsConfig): AwsRoboMakerBatchDescribeSimulationJobOutput
  cancelDeploymentJob(input: AwsRoboMakerCancelDeploymentJobInput!, config: AwsConfig): JSON
  cancelSimulationJob(input: AwsRoboMakerCancelSimulationJobInput!, config: AwsConfig): JSON
  cancelSimulationJobBatch(input: AwsRoboMakerCancelSimulationJobBatchInput!, config: AwsConfig): JSON
  cancelWorldExportJob(input: AwsRoboMakerCancelWorldExportJobInput!, config: AwsConfig): JSON
  cancelWorldGenerationJob(input: AwsRoboMakerCancelWorldGenerationJobInput!, config: AwsConfig): JSON
  createDeploymentJob(input: AwsRoboMakerCreateDeploymentJobInput!, config: AwsConfig): AwsRoboMakerCreateDeploymentJobOutput
  createFleet(input: AwsRoboMakerCreateFleetInput!, config: AwsConfig): AwsRoboMakerCreateFleetOutput
  createRobot(input: AwsRoboMakerCreateRobotInput!, config: AwsConfig): AwsRoboMakerCreateRobotOutput
  createRobotApplication(input: AwsRoboMakerCreateRobotApplicationInput!, config: AwsConfig): AwsRoboMakerCreateRobotApplicationOutput
  createRobotApplicationVersion(input: AwsRoboMakerCreateRobotApplicationVersionInput!, config: AwsConfig): AwsRoboMakerCreateRobotApplicationVersionOutput
  createSimulationApplication(input: AwsRoboMakerCreateSimulationApplicationInput!, config: AwsConfig): AwsRoboMakerCreateSimulationApplicationOutput
  createSimulationApplicationVersion(input: AwsRoboMakerCreateSimulationApplicationVersionInput!, config: AwsConfig): AwsRoboMakerCreateSimulationApplicationVersionOutput
  createSimulationJob(input: AwsRoboMakerCreateSimulationJobInput!, config: AwsConfig): AwsRoboMakerCreateSimulationJobOutput
  createWorldExportJob(input: AwsRoboMakerCreateWorldExportJobInput!, config: AwsConfig): AwsRoboMakerCreateWorldExportJobOutput
  createWorldGenerationJob(input: AwsRoboMakerCreateWorldGenerationJobInput!, config: AwsConfig): AwsRoboMakerCreateWorldGenerationJobOutput
  createWorldTemplate(input: AwsRoboMakerCreateWorldTemplateInput, config: AwsConfig): AwsRoboMakerCreateWorldTemplateOutput
  deleteFleet(input: AwsRoboMakerDeleteFleetInput!, config: AwsConfig): JSON
  deleteRobot(input: AwsRoboMakerDeleteRobotInput!, config: AwsConfig): JSON
  deleteRobotApplication(input: AwsRoboMakerDeleteRobotApplicationInput!, config: AwsConfig): JSON
  deleteSimulationApplication(input: AwsRoboMakerDeleteSimulationApplicationInput!, config: AwsConfig): JSON
  deleteWorldTemplate(input: AwsRoboMakerDeleteWorldTemplateInput!, config: AwsConfig): JSON
  deregisterRobot(input: AwsRoboMakerDeregisterRobotInput!, config: AwsConfig): AwsRoboMakerDeregisterRobotOutput
  describeDeploymentJob(input: AwsRoboMakerDescribeDeploymentJobInput!, config: AwsConfig): AwsRoboMakerDescribeDeploymentJobOutput
  describeFleet(input: AwsRoboMakerDescribeFleetInput!, config: AwsConfig): AwsRoboMakerDescribeFleetOutput
  describeRobot(input: AwsRoboMakerDescribeRobotInput!, config: AwsConfig): AwsRoboMakerDescribeRobotOutput
  describeRobotApplication(input: AwsRoboMakerDescribeRobotApplicationInput!, config: AwsConfig): AwsRoboMakerDescribeRobotApplicationOutput
  describeSimulationApplication(input: AwsRoboMakerDescribeSimulationApplicationInput!, config: AwsConfig): AwsRoboMakerDescribeSimulationApplicationOutput
  describeSimulationJob(input: AwsRoboMakerDescribeSimulationJobInput!, config: AwsConfig): AwsRoboMakerDescribeSimulationJobOutput
  describeSimulationJobBatch(input: AwsRoboMakerDescribeSimulationJobBatchInput!, config: AwsConfig): AwsRoboMakerDescribeSimulationJobBatchOutput
  describeWorld(input: AwsRoboMakerDescribeWorldInput!, config: AwsConfig): AwsRoboMakerDescribeWorldOutput
  describeWorldExportJob(input: AwsRoboMakerDescribeWorldExportJobInput!, config: AwsConfig): AwsRoboMakerDescribeWorldExportJobOutput
  describeWorldGenerationJob(input: AwsRoboMakerDescribeWorldGenerationJobInput!, config: AwsConfig): AwsRoboMakerDescribeWorldGenerationJobOutput
  describeWorldTemplate(input: AwsRoboMakerDescribeWorldTemplateInput!, config: AwsConfig): AwsRoboMakerDescribeWorldTemplateOutput
  getWorldTemplateBody(input: AwsRoboMakerGetWorldTemplateBodyInput, config: AwsConfig): AwsRoboMakerGetWorldTemplateBodyOutput
  listDeploymentJobs(input: AwsRoboMakerListDeploymentJobsInput, config: AwsConfig): AwsRoboMakerListDeploymentJobsOutput
  listFleets(input: AwsRoboMakerListFleetsInput, config: AwsConfig): AwsRoboMakerListFleetsOutput
  listRobotApplications(input: AwsRoboMakerListRobotApplicationsInput, config: AwsConfig): AwsRoboMakerListRobotApplicationsOutput
  listRobots(input: AwsRoboMakerListRobotsInput, config: AwsConfig): AwsRoboMakerListRobotsOutput
  listSimulationApplications(input: AwsRoboMakerListSimulationApplicationsInput, config: AwsConfig): AwsRoboMakerListSimulationApplicationsOutput
  listSimulationJobBatches(input: AwsRoboMakerListSimulationJobBatchesInput, config: AwsConfig): AwsRoboMakerListSimulationJobBatchesOutput
  listSimulationJobs(input: AwsRoboMakerListSimulationJobsInput, config: AwsConfig): AwsRoboMakerListSimulationJobsOutput
  listTagsForResource(input: AwsRoboMakerListTagsForResourceInput!, config: AwsConfig): AwsRoboMakerListTagsForResourceOutput
  listWorldExportJobs(input: AwsRoboMakerListWorldExportJobsInput, config: AwsConfig): AwsRoboMakerListWorldExportJobsOutput
  listWorldGenerationJobs(input: AwsRoboMakerListWorldGenerationJobsInput, config: AwsConfig): AwsRoboMakerListWorldGenerationJobsOutput
  listWorldTemplates(input: AwsRoboMakerListWorldTemplatesInput, config: AwsConfig): AwsRoboMakerListWorldTemplatesOutput
  listWorlds(input: AwsRoboMakerListWorldsInput, config: AwsConfig): AwsRoboMakerListWorldsOutput
  registerRobot(input: AwsRoboMakerRegisterRobotInput!, config: AwsConfig): AwsRoboMakerRegisterRobotOutput
  restartSimulationJob(input: AwsRoboMakerRestartSimulationJobInput!, config: AwsConfig): JSON
  startSimulationJobBatch(input: AwsRoboMakerStartSimulationJobBatchInput!, config: AwsConfig): AwsRoboMakerStartSimulationJobBatchOutput
  syncDeploymentJob(input: AwsRoboMakerSyncDeploymentJobInput!, config: AwsConfig): AwsRoboMakerSyncDeploymentJobOutput
  tagResource(input: AwsRoboMakerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsRoboMakerUntagResourceInput!, config: AwsConfig): JSON
  updateRobotApplication(input: AwsRoboMakerUpdateRobotApplicationInput!, config: AwsConfig): AwsRoboMakerUpdateRobotApplicationOutput
  updateSimulationApplication(input: AwsRoboMakerUpdateSimulationApplicationInput!, config: AwsConfig): AwsRoboMakerUpdateSimulationApplicationOutput
  updateWorldTemplate(input: AwsRoboMakerUpdateWorldTemplateInput!, config: AwsConfig): AwsRoboMakerUpdateWorldTemplateOutput
}

type AwsRoboMakerBatchDeleteWorldsOutput {
  unprocessedWorlds: [String]
}

input AwsRoboMakerBatchDeleteWorldsInput {
  worlds: [String]!
}

type AwsRoboMakerBatchDescribeSimulationJobOutput {
  jobs: [AwsRoboMakerBatchDescribeSimulationJobOutputJobs]
  unprocessedJobs: [String]
}

type AwsRoboMakerBatchDescribeSimulationJobOutputJobs {
  arn: String
  name: String
  status: String
  lastStartedAt: Date
  lastUpdatedAt: Date
  failureBehavior: String
  failureCode: String
  failureReason: String
  clientRequestToken: String
  outputLocation: AwsRoboMakerSh
  loggingConfig: AwsRoboMakerSk
  maxJobDurationInSeconds: JSON
  simulationTimeMillis: JSON
  iamRole: String
  robotApplications: [AwsRoboMakerSp]
  simulationApplications: [AwsRoboMakerS1b]
  dataSources: [AwsRoboMakerS1f]
  tags: JSON
  vpcConfig: AwsRoboMakerS1n
  networkInterface: AwsRoboMakerS1r
  compute: AwsRoboMakerS1s
}

type AwsRoboMakerSh {
  s3Bucket: String
  s3Prefix: String
}

type AwsRoboMakerSk {
  recordAllRosTopics: Boolean!
}

type AwsRoboMakerSp {
  application: String!
  applicationVersion: String
  launchConfig: AwsRoboMakerSs!
  uploadConfigurations: [AwsRoboMakerS13]
  useDefaultUploadConfigurations: Boolean
  tools: [AwsRoboMakerS17]
  useDefaultTools: Boolean
}

type AwsRoboMakerSs {
  packageName: String!
  launchFile: String!
  environmentVariables: JSON
  portForwardingConfig: AwsRoboMakerSsPortForwardingConfig
  streamUI: Boolean
}

type AwsRoboMakerSsPortForwardingConfig {
  portMappings: [AwsRoboMakerSsPortForwardingConfigPortMappings]
}

type AwsRoboMakerSsPortForwardingConfigPortMappings {
  jobPort: Int!
  applicationPort: Int!
  enableOnPublicIp: Boolean
}

type AwsRoboMakerS13 {
  name: String!
  path: String!
  uploadBehavior: String!
}

type AwsRoboMakerS17 {
  streamUI: Boolean
  name: String!
  command: String!
  streamOutputToCloudWatch: Boolean
  exitBehavior: String
}

type AwsRoboMakerS1b {
  application: String!
  applicationVersion: String
  launchConfig: AwsRoboMakerSs!
  uploadConfigurations: [AwsRoboMakerS13]
  worldConfigs: [AwsRoboMakerS1bWorldConfigs]
  useDefaultUploadConfigurations: Boolean
  tools: [AwsRoboMakerS17]
  useDefaultTools: Boolean
}

type AwsRoboMakerS1bWorldConfigs {
  world: String
}

type AwsRoboMakerS1f {
  name: String
  s3Bucket: String
  s3Keys: [AwsRoboMakerS1fS3Keys]
}

type AwsRoboMakerS1fS3Keys {
  s3Key: String
  etag: String
}

type AwsRoboMakerS1n {
  subnets: [String]
  securityGroups: [String]
  vpcId: String
  assignPublicIp: Boolean
}

type AwsRoboMakerS1r {
  networkInterfaceId: String
  privateIpAddress: String
  publicIpAddress: String
}

type AwsRoboMakerS1s {
  simulationUnitLimit: Int
}

input AwsRoboMakerBatchDescribeSimulationJobInput {
  jobs: [String]!
}

input AwsRoboMakerCancelDeploymentJobInput {
  job: String!
}

input AwsRoboMakerCancelSimulationJobInput {
  job: String!
}

input AwsRoboMakerCancelSimulationJobBatchInput {
  batch: String!
}

input AwsRoboMakerCancelWorldExportJobInput {
  job: String!
}

input AwsRoboMakerCancelWorldGenerationJobInput {
  job: String!
}

type AwsRoboMakerCreateDeploymentJobOutput {
  arn: String
  fleet: String
  status: String
  deploymentApplicationConfigs: [AwsRoboMakerS29]
  failureReason: String
  failureCode: String
  createdAt: Date
  deploymentConfig: AwsRoboMakerS25
  tags: JSON
}

type AwsRoboMakerS29 {
  application: String!
  applicationVersion: String!
  launchConfig: AwsRoboMakerS29LaunchConfig!
}

type AwsRoboMakerS29LaunchConfig {
  packageName: String!
  preLaunchFile: String
  launchFile: String!
  postLaunchFile: String
  environmentVariables: JSON
}

type AwsRoboMakerS25 {
  concurrentDeploymentPercentage: Int
  failureThresholdPercentage: Int
  robotDeploymentTimeoutInSeconds: JSON
  downloadConditionFile: AwsRoboMakerS25DownloadConditionFile
}

type AwsRoboMakerS25DownloadConditionFile {
  bucket: String!
  key: String!
  etag: String
}

input AwsRoboMakerCreateDeploymentJobInput {
  deploymentConfig: AwsRoboMakerS25Input
  clientRequestToken: String!
  fleet: String!
  deploymentApplicationConfigs: [AwsRoboMakerS29Input]!
  tags: JSON
}

input AwsRoboMakerS25Input {
  concurrentDeploymentPercentage: Int
  failureThresholdPercentage: Int
  robotDeploymentTimeoutInSeconds: JSON
  downloadConditionFile: AwsRoboMakerS25DownloadConditionFileInput
}

input AwsRoboMakerS25DownloadConditionFileInput {
  bucket: String!
  key: String!
  etag: String
}

input AwsRoboMakerS29Input {
  application: String!
  applicationVersion: String!
  launchConfig: AwsRoboMakerS29LaunchConfigInput!
}

input AwsRoboMakerS29LaunchConfigInput {
  packageName: String!
  preLaunchFile: String
  launchFile: String!
  postLaunchFile: String
  environmentVariables: JSON
}

type AwsRoboMakerCreateFleetOutput {
  arn: String
  name: String
  createdAt: Date
  tags: JSON
}

input AwsRoboMakerCreateFleetInput {
  name: String!
  tags: JSON
}

type AwsRoboMakerCreateRobotOutput {
  arn: String
  name: String
  createdAt: Date
  greengrassGroupId: String
  architecture: String
  tags: JSON
}

input AwsRoboMakerCreateRobotInput {
  name: String!
  architecture: String!
  greengrassGroupId: String!
  tags: JSON
}

type AwsRoboMakerCreateRobotApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  robotSoftwareSuite: AwsRoboMakerS2q
  lastUpdatedAt: Date
  revisionId: String
  tags: JSON
}

type AwsRoboMakerS2u {
  s3Bucket: String
  s3Key: String
  etag: String
  architecture: String
}

type AwsRoboMakerS2q {
  name: String
  version: String
}

input AwsRoboMakerCreateRobotApplicationInput {
  name: String!
  sources: [AwsRoboMakerS2oInput]!
  robotSoftwareSuite: AwsRoboMakerS2qInput!
  tags: JSON
}

input AwsRoboMakerS2oInput {
  s3Bucket: String
  s3Key: String
  architecture: String
}

input AwsRoboMakerS2qInput {
  name: String
  version: String
}

type AwsRoboMakerCreateRobotApplicationVersionOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  robotSoftwareSuite: AwsRoboMakerS2q
  lastUpdatedAt: Date
  revisionId: String
}

input AwsRoboMakerCreateRobotApplicationVersionInput {
  application: String!
  currentRevisionId: String
}

type AwsRoboMakerCreateSimulationApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  simulationSoftwareSuite: AwsRoboMakerS30
  robotSoftwareSuite: AwsRoboMakerS2q
  renderingEngine: AwsRoboMakerS33
  lastUpdatedAt: Date
  revisionId: String
  tags: JSON
}

type AwsRoboMakerS30 {
  name: String
  version: String
}

type AwsRoboMakerS33 {
  name: String
  version: String
}

input AwsRoboMakerCreateSimulationApplicationInput {
  name: String!
  sources: [AwsRoboMakerS2oInput]!
  simulationSoftwareSuite: AwsRoboMakerS30Input!
  robotSoftwareSuite: AwsRoboMakerS2qInput!
  renderingEngine: AwsRoboMakerS33Input
  tags: JSON
}

input AwsRoboMakerS30Input {
  name: String
  version: String
}

input AwsRoboMakerS33Input {
  name: String
  version: String
}

type AwsRoboMakerCreateSimulationApplicationVersionOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  simulationSoftwareSuite: AwsRoboMakerS30
  robotSoftwareSuite: AwsRoboMakerS2q
  renderingEngine: AwsRoboMakerS33
  lastUpdatedAt: Date
  revisionId: String
}

input AwsRoboMakerCreateSimulationApplicationVersionInput {
  application: String!
  currentRevisionId: String
}

type AwsRoboMakerCreateSimulationJobOutput {
  arn: String
  status: String
  lastStartedAt: Date
  lastUpdatedAt: Date
  failureBehavior: String
  failureCode: String
  clientRequestToken: String
  outputLocation: AwsRoboMakerSh
  loggingConfig: AwsRoboMakerSk
  maxJobDurationInSeconds: JSON
  simulationTimeMillis: JSON
  iamRole: String
  robotApplications: [AwsRoboMakerSp]
  simulationApplications: [AwsRoboMakerS1b]
  dataSources: [AwsRoboMakerS1f]
  tags: JSON
  vpcConfig: AwsRoboMakerS1n
  compute: AwsRoboMakerS1s
}

input AwsRoboMakerCreateSimulationJobInput {
  clientRequestToken: String
  outputLocation: AwsRoboMakerShInput
  loggingConfig: AwsRoboMakerSkInput
  maxJobDurationInSeconds: JSON!
  iamRole: String!
  failureBehavior: String
  robotApplications: [AwsRoboMakerSpInput]
  simulationApplications: [AwsRoboMakerS1bInput]
  dataSources: [AwsRoboMakerS3aInput]
  tags: JSON
  vpcConfig: AwsRoboMakerS3dInput
  compute: AwsRoboMakerS3eInput
}

input AwsRoboMakerShInput {
  s3Bucket: String
  s3Prefix: String
}

input AwsRoboMakerSkInput {
  recordAllRosTopics: Boolean!
}

input AwsRoboMakerSpInput {
  application: String!
  applicationVersion: String
  launchConfig: AwsRoboMakerSsInput!
  uploadConfigurations: [AwsRoboMakerS13Input]
  useDefaultUploadConfigurations: Boolean
  tools: [AwsRoboMakerS17Input]
  useDefaultTools: Boolean
}

input AwsRoboMakerSsInput {
  packageName: String!
  launchFile: String!
  environmentVariables: JSON
  portForwardingConfig: AwsRoboMakerSsPortForwardingConfigInput
  streamUI: Boolean
}

input AwsRoboMakerSsPortForwardingConfigInput {
  portMappings: [AwsRoboMakerSsPortForwardingConfigPortMappingsInput]
}

input AwsRoboMakerSsPortForwardingConfigPortMappingsInput {
  jobPort: Int!
  applicationPort: Int!
  enableOnPublicIp: Boolean
}

input AwsRoboMakerS13Input {
  name: String!
  path: String!
  uploadBehavior: String!
}

input AwsRoboMakerS17Input {
  streamUI: Boolean
  name: String!
  command: String!
  streamOutputToCloudWatch: Boolean
  exitBehavior: String
}

input AwsRoboMakerS1bInput {
  application: String!
  applicationVersion: String
  launchConfig: AwsRoboMakerSsInput!
  uploadConfigurations: [AwsRoboMakerS13Input]
  worldConfigs: [AwsRoboMakerS1bWorldConfigsInput]
  useDefaultUploadConfigurations: Boolean
  tools: [AwsRoboMakerS17Input]
  useDefaultTools: Boolean
}

input AwsRoboMakerS1bWorldConfigsInput {
  world: String
}

input AwsRoboMakerS3aInput {
  name: String!
  s3Bucket: String!
  s3Keys: [String]!
}

input AwsRoboMakerS3dInput {
  subnets: [String]!
  securityGroups: [String]
  assignPublicIp: Boolean
}

input AwsRoboMakerS3eInput {
  simulationUnitLimit: Int
}

type AwsRoboMakerCreateWorldExportJobOutput {
  arn: String
  status: String
  createdAt: Date
  failureCode: String
  clientRequestToken: String
  outputLocation: AwsRoboMakerSh
  iamRole: String
  tags: JSON
}

input AwsRoboMakerCreateWorldExportJobInput {
  clientRequestToken: String
  worlds: [String]!
  outputLocation: AwsRoboMakerShInput!
  iamRole: String!
  tags: JSON
}

type AwsRoboMakerCreateWorldGenerationJobOutput {
  arn: String
  status: String
  createdAt: Date
  failureCode: String
  clientRequestToken: String
  template: String
  worldCount: AwsRoboMakerS3l
  tags: JSON
  worldTags: JSON
}

type AwsRoboMakerS3l {
  floorplanCount: Int
  interiorCountPerFloorplan: Int
}

input AwsRoboMakerCreateWorldGenerationJobInput {
  clientRequestToken: String
  template: String!
  worldCount: AwsRoboMakerS3lInput!
  tags: JSON
  worldTags: JSON
}

input AwsRoboMakerS3lInput {
  floorplanCount: Int
  interiorCountPerFloorplan: Int
}

type AwsRoboMakerCreateWorldTemplateOutput {
  arn: String
  clientRequestToken: String
  createdAt: Date
  name: String
  tags: JSON
}

input AwsRoboMakerCreateWorldTemplateInput {
  clientRequestToken: String
  name: String
  templateBody: String
  templateLocation: AwsRoboMakerS3uInput
  tags: JSON
}

input AwsRoboMakerS3uInput {
  s3Bucket: String!
  s3Key: String!
}

input AwsRoboMakerDeleteFleetInput {
  fleet: String!
}

input AwsRoboMakerDeleteRobotInput {
  robot: String!
}

input AwsRoboMakerDeleteRobotApplicationInput {
  application: String!
  applicationVersion: String
}

input AwsRoboMakerDeleteSimulationApplicationInput {
  application: String!
  applicationVersion: String
}

input AwsRoboMakerDeleteWorldTemplateInput {
  template: String!
}

type AwsRoboMakerDeregisterRobotOutput {
  fleet: String
  robot: String
}

input AwsRoboMakerDeregisterRobotInput {
  fleet: String!
  robot: String!
}

type AwsRoboMakerDescribeDeploymentJobOutput {
  arn: String
  fleet: String
  status: String
  deploymentConfig: AwsRoboMakerS25
  deploymentApplicationConfigs: [AwsRoboMakerS29]
  failureReason: String
  failureCode: String
  createdAt: Date
  robotDeploymentSummary: [AwsRoboMakerDescribeDeploymentJobOutputRobotDeploymentSummary]
  tags: JSON
}

type AwsRoboMakerDescribeDeploymentJobOutputRobotDeploymentSummary {
  arn: String
  deploymentStartTime: Date
  deploymentFinishTime: Date
  status: String
  progressDetail: AwsRoboMakerDescribeDeploymentJobOutputRobotDeploymentSummaryProgressDetail
  failureReason: String
  failureCode: String
}

type AwsRoboMakerDescribeDeploymentJobOutputRobotDeploymentSummaryProgressDetail {
  currentProgress: String
  percentDone: Float
  estimatedTimeRemainingSeconds: Int
  targetResource: String
}

input AwsRoboMakerDescribeDeploymentJobInput {
  job: String!
}

type AwsRoboMakerDescribeFleetOutput {
  name: String
  arn: String
  robots: [AwsRoboMakerS4j]
  createdAt: Date
  lastDeploymentStatus: String
  lastDeploymentJob: String
  lastDeploymentTime: Date
  tags: JSON
}

type AwsRoboMakerS4j {
  arn: String
  name: String
  fleetArn: String
  status: String
  greenGrassGroupId: String
  createdAt: Date
  architecture: String
  lastDeploymentJob: String
  lastDeploymentTime: Date
}

input AwsRoboMakerDescribeFleetInput {
  fleet: String!
}

type AwsRoboMakerDescribeRobotOutput {
  arn: String
  name: String
  fleetArn: String
  status: String
  greengrassGroupId: String
  createdAt: Date
  architecture: String
  lastDeploymentJob: String
  lastDeploymentTime: Date
  tags: JSON
}

input AwsRoboMakerDescribeRobotInput {
  robot: String!
}

type AwsRoboMakerDescribeRobotApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  robotSoftwareSuite: AwsRoboMakerS2q
  revisionId: String
  lastUpdatedAt: Date
  tags: JSON
}

input AwsRoboMakerDescribeRobotApplicationInput {
  application: String!
  applicationVersion: String
}

type AwsRoboMakerDescribeSimulationApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  simulationSoftwareSuite: AwsRoboMakerS30
  robotSoftwareSuite: AwsRoboMakerS2q
  renderingEngine: AwsRoboMakerS33
  revisionId: String
  lastUpdatedAt: Date
  tags: JSON
}

input AwsRoboMakerDescribeSimulationApplicationInput {
  application: String!
  applicationVersion: String
}

type AwsRoboMakerDescribeSimulationJobOutput {
  arn: String
  name: String
  status: String
  lastStartedAt: Date
  lastUpdatedAt: Date
  failureBehavior: String
  failureCode: String
  failureReason: String
  clientRequestToken: String
  outputLocation: AwsRoboMakerSh
  loggingConfig: AwsRoboMakerSk
  maxJobDurationInSeconds: JSON
  simulationTimeMillis: JSON
  iamRole: String
  robotApplications: [AwsRoboMakerSp]
  simulationApplications: [AwsRoboMakerS1b]
  dataSources: [AwsRoboMakerS1f]
  tags: JSON
  vpcConfig: AwsRoboMakerS1n
  networkInterface: AwsRoboMakerS1r
  compute: AwsRoboMakerS1s
}

input AwsRoboMakerDescribeSimulationJobInput {
  job: String!
}

type AwsRoboMakerDescribeSimulationJobBatchOutput {
  arn: String
  status: String
  lastUpdatedAt: Date
  createdAt: Date
  clientRequestToken: String
  batchPolicy: AwsRoboMakerS4w
  failureCode: String
  failureReason: String
  failedRequests: [AwsRoboMakerS50]
  pendingRequests: [AwsRoboMakerS52]
  createdRequests: [AwsRoboMakerS55]
  tags: JSON
}

type AwsRoboMakerS4w {
  timeoutInSeconds: JSON
  maxConcurrency: Int
}

type AwsRoboMakerS50 {
  request: AwsRoboMakerS52
  failureReason: String
  failureCode: String
  failedAt: Date
}

type AwsRoboMakerS52 {
  outputLocation: AwsRoboMakerSh
  loggingConfig: AwsRoboMakerSk
  maxJobDurationInSeconds: JSON!
  iamRole: String
  failureBehavior: String
  useDefaultApplications: Boolean
  robotApplications: [AwsRoboMakerSp]
  simulationApplications: [AwsRoboMakerS1b]
  dataSources: [AwsRoboMakerS3a]
  vpcConfig: AwsRoboMakerS3d
  compute: AwsRoboMakerS3e
  tags: JSON
}

type AwsRoboMakerS3a {
  name: String!
  s3Bucket: String!
  s3Keys: [String]!
}

type AwsRoboMakerS3d {
  subnets: [String]!
  securityGroups: [String]
  assignPublicIp: Boolean
}

type AwsRoboMakerS3e {
  simulationUnitLimit: Int
}

type AwsRoboMakerS55 {
  arn: String
  lastUpdatedAt: Date
  name: String
  status: String
  simulationApplicationNames: [String]
  robotApplicationNames: [String]
  dataSourceNames: [String]
}

input AwsRoboMakerDescribeSimulationJobBatchInput {
  batch: String!
}

type AwsRoboMakerDescribeWorldOutput {
  arn: String
  generationJob: String
  template: String
  createdAt: Date
  tags: JSON
}

input AwsRoboMakerDescribeWorldInput {
  world: String!
}

type AwsRoboMakerDescribeWorldExportJobOutput {
  arn: String
  status: String
  createdAt: Date
  failureCode: String
  failureReason: String
  clientRequestToken: String
  worlds: [String]
  outputLocation: AwsRoboMakerSh
  iamRole: String
  tags: JSON
}

input AwsRoboMakerDescribeWorldExportJobInput {
  job: String!
}

type AwsRoboMakerDescribeWorldGenerationJobOutput {
  arn: String
  status: String
  createdAt: Date
  failureCode: String
  failureReason: String
  clientRequestToken: String
  template: String
  worldCount: AwsRoboMakerS3l
  finishedWorldsSummary: AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummary
  tags: JSON
  worldTags: JSON
}

type AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummary {
  finishedCount: Int
  succeededWorlds: [String]
  failureSummary: AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummaryFailureSummary
}

type AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummaryFailureSummary {
  totalFailureCount: Int
  failures: [AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummaryFailureSummaryFailures]
}

type AwsRoboMakerDescribeWorldGenerationJobOutputFinishedWorldsSummaryFailureSummaryFailures {
  failureCode: String
  sampleFailureReason: String
  failureCount: Int
}

input AwsRoboMakerDescribeWorldGenerationJobInput {
  job: String!
}

type AwsRoboMakerDescribeWorldTemplateOutput {
  arn: String
  clientRequestToken: String
  name: String
  createdAt: Date
  lastUpdatedAt: Date
  tags: JSON
}

input AwsRoboMakerDescribeWorldTemplateInput {
  template: String!
}

type AwsRoboMakerGetWorldTemplateBodyOutput {
  templateBody: String
}

input AwsRoboMakerGetWorldTemplateBodyInput {
  template: String
  generationJob: String
}

type AwsRoboMakerListDeploymentJobsOutput {
  deploymentJobs: [AwsRoboMakerListDeploymentJobsOutputDeploymentJobs]
  nextToken: String
}

type AwsRoboMakerListDeploymentJobsOutputDeploymentJobs {
  arn: String
  fleet: String
  status: String
  deploymentApplicationConfigs: [AwsRoboMakerS29]
  deploymentConfig: AwsRoboMakerS25
  failureReason: String
  failureCode: String
  createdAt: Date
}

input AwsRoboMakerListDeploymentJobsInput {
  filters: [AwsRoboMakerS5qInput]
  nextToken: String
  maxResults: Int
}

input AwsRoboMakerS5qInput {
  name: String
  values: [String]
}

type AwsRoboMakerListFleetsOutput {
  fleetDetails: [AwsRoboMakerListFleetsOutputFleetDetails]
  nextToken: String
}

type AwsRoboMakerListFleetsOutputFleetDetails {
  name: String
  arn: String
  createdAt: Date
  lastDeploymentStatus: String
  lastDeploymentJob: String
  lastDeploymentTime: Date
}

input AwsRoboMakerListFleetsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListRobotApplicationsOutput {
  robotApplicationSummaries: [AwsRoboMakerListRobotApplicationsOutputRobotApplicationSummaries]
  nextToken: String
}

type AwsRoboMakerListRobotApplicationsOutputRobotApplicationSummaries {
  name: String
  arn: String
  version: String
  lastUpdatedAt: Date
  robotSoftwareSuite: AwsRoboMakerS2q
}

input AwsRoboMakerListRobotApplicationsInput {
  versionQualifier: String
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListRobotsOutput {
  robots: [AwsRoboMakerS4j]
  nextToken: String
}

input AwsRoboMakerListRobotsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListSimulationApplicationsOutput {
  simulationApplicationSummaries: [AwsRoboMakerListSimulationApplicationsOutputSimulationApplicationSummaries]
  nextToken: String
}

type AwsRoboMakerListSimulationApplicationsOutputSimulationApplicationSummaries {
  name: String
  arn: String
  version: String
  lastUpdatedAt: Date
  robotSoftwareSuite: AwsRoboMakerS2q
  simulationSoftwareSuite: AwsRoboMakerS30
}

input AwsRoboMakerListSimulationApplicationsInput {
  versionQualifier: String
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListSimulationJobBatchesOutput {
  simulationJobBatchSummaries: [AwsRoboMakerListSimulationJobBatchesOutputSimulationJobBatchSummaries]
  nextToken: String
}

type AwsRoboMakerListSimulationJobBatchesOutputSimulationJobBatchSummaries {
  arn: String
  lastUpdatedAt: Date
  createdAt: Date
  status: String
  failedRequestCount: Int
  pendingRequestCount: Int
  createdRequestCount: Int
}

input AwsRoboMakerListSimulationJobBatchesInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListSimulationJobsOutput {
  simulationJobSummaries: [AwsRoboMakerS55]!
  nextToken: String
}

input AwsRoboMakerListSimulationJobsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListTagsForResourceOutput {
  tags: JSON
}

input AwsRoboMakerListTagsForResourceInput {
  resourceArn: String!
}

type AwsRoboMakerListWorldExportJobsOutput {
  worldExportJobSummaries: [AwsRoboMakerListWorldExportJobsOutputWorldExportJobSummaries]!
  nextToken: String
}

type AwsRoboMakerListWorldExportJobsOutputWorldExportJobSummaries {
  arn: String
  status: String
  createdAt: Date
  worlds: [String]
}

input AwsRoboMakerListWorldExportJobsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListWorldGenerationJobsOutput {
  worldGenerationJobSummaries: [AwsRoboMakerListWorldGenerationJobsOutputWorldGenerationJobSummaries]!
  nextToken: String
}

type AwsRoboMakerListWorldGenerationJobsOutputWorldGenerationJobSummaries {
  arn: String
  template: String
  createdAt: Date
  status: String
  worldCount: AwsRoboMakerS3l
  succeededWorldCount: Int
  failedWorldCount: Int
}

input AwsRoboMakerListWorldGenerationJobsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerListWorldTemplatesOutput {
  templateSummaries: [AwsRoboMakerListWorldTemplatesOutputTemplateSummaries]
  nextToken: String
}

type AwsRoboMakerListWorldTemplatesOutputTemplateSummaries {
  arn: String
  createdAt: Date
  lastUpdatedAt: Date
  name: String
}

input AwsRoboMakerListWorldTemplatesInput {
  nextToken: String
  maxResults: Int
}

type AwsRoboMakerListWorldsOutput {
  worldSummaries: [AwsRoboMakerListWorldsOutputWorldSummaries]
  nextToken: String
}

type AwsRoboMakerListWorldsOutputWorldSummaries {
  arn: String
  createdAt: Date
  generationJob: String
  template: String
}

input AwsRoboMakerListWorldsInput {
  nextToken: String
  maxResults: Int
  filters: [AwsRoboMakerS5qInput]
}

type AwsRoboMakerRegisterRobotOutput {
  fleet: String
  robot: String
}

input AwsRoboMakerRegisterRobotInput {
  fleet: String!
  robot: String!
}

input AwsRoboMakerRestartSimulationJobInput {
  job: String!
}

type AwsRoboMakerStartSimulationJobBatchOutput {
  arn: String
  status: String
  createdAt: Date
  clientRequestToken: String
  batchPolicy: AwsRoboMakerS4w
  failureCode: String
  failureReason: String
  failedRequests: [AwsRoboMakerS50]
  pendingRequests: [AwsRoboMakerS52]
  createdRequests: [AwsRoboMakerS55]
  tags: JSON
}

input AwsRoboMakerStartSimulationJobBatchInput {
  clientRequestToken: String
  batchPolicy: AwsRoboMakerS4wInput
  createSimulationJobRequests: [AwsRoboMakerS52Input]!
  tags: JSON
}

input AwsRoboMakerS4wInput {
  timeoutInSeconds: JSON
  maxConcurrency: Int
}

input AwsRoboMakerS52Input {
  outputLocation: AwsRoboMakerShInput
  loggingConfig: AwsRoboMakerSkInput
  maxJobDurationInSeconds: JSON!
  iamRole: String
  failureBehavior: String
  useDefaultApplications: Boolean
  robotApplications: [AwsRoboMakerSpInput]
  simulationApplications: [AwsRoboMakerS1bInput]
  dataSources: [AwsRoboMakerS3aInput]
  vpcConfig: AwsRoboMakerS3dInput
  compute: AwsRoboMakerS3eInput
  tags: JSON
}

type AwsRoboMakerSyncDeploymentJobOutput {
  arn: String
  fleet: String
  status: String
  deploymentConfig: AwsRoboMakerS25
  deploymentApplicationConfigs: [AwsRoboMakerS29]
  failureReason: String
  failureCode: String
  createdAt: Date
}

input AwsRoboMakerSyncDeploymentJobInput {
  clientRequestToken: String!
  fleet: String!
}

input AwsRoboMakerTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsRoboMakerUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsRoboMakerUpdateRobotApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  robotSoftwareSuite: AwsRoboMakerS2q
  lastUpdatedAt: Date
  revisionId: String
}

input AwsRoboMakerUpdateRobotApplicationInput {
  application: String!
  sources: [AwsRoboMakerS2oInput]!
  robotSoftwareSuite: AwsRoboMakerS2qInput!
  currentRevisionId: String
}

type AwsRoboMakerUpdateSimulationApplicationOutput {
  arn: String
  name: String
  version: String
  sources: [AwsRoboMakerS2u]
  simulationSoftwareSuite: AwsRoboMakerS30
  robotSoftwareSuite: AwsRoboMakerS2q
  renderingEngine: AwsRoboMakerS33
  lastUpdatedAt: Date
  revisionId: String
}

input AwsRoboMakerUpdateSimulationApplicationInput {
  application: String!
  sources: [AwsRoboMakerS2oInput]!
  simulationSoftwareSuite: AwsRoboMakerS30Input!
  robotSoftwareSuite: AwsRoboMakerS2qInput!
  renderingEngine: AwsRoboMakerS33Input
  currentRevisionId: String
}

type AwsRoboMakerUpdateWorldTemplateOutput {
  arn: String
  name: String
  createdAt: Date
  lastUpdatedAt: Date
}

input AwsRoboMakerUpdateWorldTemplateInput {
  template: String!
  name: String
  templateBody: String
  templateLocation: AwsRoboMakerS3uInput
}

"""Amazon Route 53 (2013-04-01)"""
type AwsRoute53 {
  activateKeySigningKey(input: AwsRoute53ActivateKeySigningKeyInput!, config: AwsConfig): AwsRoute53ActivateKeySigningKeyOutput
  associateVPCWithHostedZone(input: AwsRoute53AssociateVPCWithHostedZoneInput!, config: AwsConfig): AwsRoute53AssociateVPCWithHostedZoneOutput
  changeResourceRecordSets(input: AwsRoute53ChangeResourceRecordSetsInput!, config: AwsConfig): AwsRoute53ChangeResourceRecordSetsOutput
  changeTagsForResource(input: AwsRoute53ChangeTagsForResourceInput!, config: AwsConfig): JSON
  createHealthCheck(input: AwsRoute53CreateHealthCheckInput!, config: AwsConfig): AwsRoute53CreateHealthCheckOutput
  createHostedZone(input: AwsRoute53CreateHostedZoneInput!, config: AwsConfig): AwsRoute53CreateHostedZoneOutput
  createKeySigningKey(input: AwsRoute53CreateKeySigningKeyInput!, config: AwsConfig): AwsRoute53CreateKeySigningKeyOutput
  createQueryLoggingConfig(input: AwsRoute53CreateQueryLoggingConfigInput!, config: AwsConfig): AwsRoute53CreateQueryLoggingConfigOutput
  createReusableDelegationSet(input: AwsRoute53CreateReusableDelegationSetInput!, config: AwsConfig): AwsRoute53CreateReusableDelegationSetOutput
  createTrafficPolicy(input: AwsRoute53CreateTrafficPolicyInput!, config: AwsConfig): AwsRoute53CreateTrafficPolicyOutput
  createTrafficPolicyInstance(input: AwsRoute53CreateTrafficPolicyInstanceInput!, config: AwsConfig): AwsRoute53CreateTrafficPolicyInstanceOutput
  createTrafficPolicyVersion(input: AwsRoute53CreateTrafficPolicyVersionInput!, config: AwsConfig): AwsRoute53CreateTrafficPolicyVersionOutput
  createVPCAssociationAuthorization(input: AwsRoute53CreateVPCAssociationAuthorizationInput!, config: AwsConfig): AwsRoute53CreateVPCAssociationAuthorizationOutput
  deactivateKeySigningKey(input: AwsRoute53DeactivateKeySigningKeyInput!, config: AwsConfig): AwsRoute53DeactivateKeySigningKeyOutput
  deleteHealthCheck(input: AwsRoute53DeleteHealthCheckInput!, config: AwsConfig): JSON
  deleteHostedZone(input: AwsRoute53DeleteHostedZoneInput!, config: AwsConfig): AwsRoute53DeleteHostedZoneOutput
  deleteKeySigningKey(input: AwsRoute53DeleteKeySigningKeyInput!, config: AwsConfig): AwsRoute53DeleteKeySigningKeyOutput
  deleteQueryLoggingConfig(input: AwsRoute53DeleteQueryLoggingConfigInput!, config: AwsConfig): JSON
  deleteReusableDelegationSet(input: AwsRoute53DeleteReusableDelegationSetInput!, config: AwsConfig): JSON
  deleteTrafficPolicy(input: AwsRoute53DeleteTrafficPolicyInput!, config: AwsConfig): JSON
  deleteTrafficPolicyInstance(input: AwsRoute53DeleteTrafficPolicyInstanceInput!, config: AwsConfig): JSON
  deleteVPCAssociationAuthorization(input: AwsRoute53DeleteVPCAssociationAuthorizationInput!, config: AwsConfig): JSON
  disableHostedZoneDNSSEC(input: AwsRoute53DisableHostedZoneDNSSECInput!, config: AwsConfig): AwsRoute53DisableHostedZoneDNSSECOutput
  disassociateVPCFromHostedZone(input: AwsRoute53DisassociateVPCFromHostedZoneInput!, config: AwsConfig): AwsRoute53DisassociateVPCFromHostedZoneOutput
  enableHostedZoneDNSSEC(input: AwsRoute53EnableHostedZoneDNSSECInput!, config: AwsConfig): AwsRoute53EnableHostedZoneDNSSECOutput
  getAccountLimit(input: AwsRoute53GetAccountLimitInput!, config: AwsConfig): AwsRoute53GetAccountLimitOutput
  getChange(input: AwsRoute53GetChangeInput!, config: AwsConfig): AwsRoute53GetChangeOutput
  getCheckerIpRanges(input: JSON, config: AwsConfig): AwsRoute53GetCheckerIpRangesOutput
  getDNSSEC(input: AwsRoute53GetDNSSECInput!, config: AwsConfig): AwsRoute53GetDNSSECOutput
  getGeoLocation(input: AwsRoute53GetGeoLocationInput, config: AwsConfig): AwsRoute53GetGeoLocationOutput
  getHealthCheck(input: AwsRoute53GetHealthCheckInput!, config: AwsConfig): AwsRoute53GetHealthCheckOutput
  getHealthCheckCount(input: JSON, config: AwsConfig): AwsRoute53GetHealthCheckCountOutput
  getHealthCheckLastFailureReason(input: AwsRoute53GetHealthCheckLastFailureReasonInput!, config: AwsConfig): AwsRoute53GetHealthCheckLastFailureReasonOutput
  getHealthCheckStatus(input: AwsRoute53GetHealthCheckStatusInput!, config: AwsConfig): AwsRoute53GetHealthCheckStatusOutput
  getHostedZone(input: AwsRoute53GetHostedZoneInput!, config: AwsConfig): AwsRoute53GetHostedZoneOutput
  getHostedZoneCount(input: JSON, config: AwsConfig): AwsRoute53GetHostedZoneCountOutput
  getHostedZoneLimit(input: AwsRoute53GetHostedZoneLimitInput!, config: AwsConfig): AwsRoute53GetHostedZoneLimitOutput
  getQueryLoggingConfig(input: AwsRoute53GetQueryLoggingConfigInput!, config: AwsConfig): AwsRoute53GetQueryLoggingConfigOutput
  getReusableDelegationSet(input: AwsRoute53GetReusableDelegationSetInput!, config: AwsConfig): AwsRoute53GetReusableDelegationSetOutput
  getReusableDelegationSetLimit(input: AwsRoute53GetReusableDelegationSetLimitInput!, config: AwsConfig): AwsRoute53GetReusableDelegationSetLimitOutput
  getTrafficPolicy(input: AwsRoute53GetTrafficPolicyInput!, config: AwsConfig): AwsRoute53GetTrafficPolicyOutput
  getTrafficPolicyInstance(input: AwsRoute53GetTrafficPolicyInstanceInput!, config: AwsConfig): AwsRoute53GetTrafficPolicyInstanceOutput
  getTrafficPolicyInstanceCount(input: JSON, config: AwsConfig): AwsRoute53GetTrafficPolicyInstanceCountOutput
  listGeoLocations(input: AwsRoute53ListGeoLocationsInput, config: AwsConfig): AwsRoute53ListGeoLocationsOutput
  listHealthChecks(input: AwsRoute53ListHealthChecksInput, config: AwsConfig): AwsRoute53ListHealthChecksOutput
  listHostedZones(input: AwsRoute53ListHostedZonesInput, config: AwsConfig): AwsRoute53ListHostedZonesOutput
  listHostedZonesByName(input: AwsRoute53ListHostedZonesByNameInput, config: AwsConfig): AwsRoute53ListHostedZonesByNameOutput
  listHostedZonesByVPC(input: AwsRoute53ListHostedZonesByVPCInput!, config: AwsConfig): AwsRoute53ListHostedZonesByVPCOutput
  listQueryLoggingConfigs(input: AwsRoute53ListQueryLoggingConfigsInput, config: AwsConfig): AwsRoute53ListQueryLoggingConfigsOutput
  listResourceRecordSets(input: AwsRoute53ListResourceRecordSetsInput!, config: AwsConfig): AwsRoute53ListResourceRecordSetsOutput
  listReusableDelegationSets(input: AwsRoute53ListReusableDelegationSetsInput, config: AwsConfig): AwsRoute53ListReusableDelegationSetsOutput
  listTagsForResource(input: AwsRoute53ListTagsForResourceInput!, config: AwsConfig): AwsRoute53ListTagsForResourceOutput
  listTagsForResources(input: AwsRoute53ListTagsForResourcesInput!, config: AwsConfig): AwsRoute53ListTagsForResourcesOutput
  listTrafficPolicies(input: AwsRoute53ListTrafficPoliciesInput, config: AwsConfig): AwsRoute53ListTrafficPoliciesOutput
  listTrafficPolicyInstances(input: AwsRoute53ListTrafficPolicyInstancesInput, config: AwsConfig): AwsRoute53ListTrafficPolicyInstancesOutput
  listTrafficPolicyInstancesByHostedZone(input: AwsRoute53ListTrafficPolicyInstancesByHostedZoneInput!, config: AwsConfig): AwsRoute53ListTrafficPolicyInstancesByHostedZoneOutput
  listTrafficPolicyInstancesByPolicy(input: AwsRoute53ListTrafficPolicyInstancesByPolicyInput!, config: AwsConfig): AwsRoute53ListTrafficPolicyInstancesByPolicyOutput
  listTrafficPolicyVersions(input: AwsRoute53ListTrafficPolicyVersionsInput!, config: AwsConfig): AwsRoute53ListTrafficPolicyVersionsOutput
  listVPCAssociationAuthorizations(input: AwsRoute53ListVPCAssociationAuthorizationsInput!, config: AwsConfig): AwsRoute53ListVPCAssociationAuthorizationsOutput
  testDNSAnswer(input: AwsRoute53TestDNSAnswerInput!, config: AwsConfig): AwsRoute53TestDNSAnswerOutput
  updateHealthCheck(input: AwsRoute53UpdateHealthCheckInput!, config: AwsConfig): AwsRoute53UpdateHealthCheckOutput
  updateHostedZoneComment(input: AwsRoute53UpdateHostedZoneCommentInput!, config: AwsConfig): AwsRoute53UpdateHostedZoneCommentOutput
  updateTrafficPolicyComment(input: AwsRoute53UpdateTrafficPolicyCommentInput!, config: AwsConfig): AwsRoute53UpdateTrafficPolicyCommentOutput
  updateTrafficPolicyInstance(input: AwsRoute53UpdateTrafficPolicyInstanceInput!, config: AwsConfig): AwsRoute53UpdateTrafficPolicyInstanceOutput
}

type AwsRoute53ActivateKeySigningKeyOutput {
  ChangeInfo: AwsRoute53S5!
}

type AwsRoute53S5 {
  Id: String!
  Status: String!
  SubmittedAt: Date!
  Comment: String
}

input AwsRoute53ActivateKeySigningKeyInput {
  HostedZoneId: String!
  Name: String!
}

type AwsRoute53AssociateVPCWithHostedZoneOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53AssociateVPCWithHostedZoneInput {
  HostedZoneId: String!
  VPC: AwsRoute53SaInput!
  Comment: String
}

input AwsRoute53SaInput {
  VPCRegion: String
  VPCId: String
}

type AwsRoute53ChangeResourceRecordSetsOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53ChangeResourceRecordSetsInput {
  HostedZoneId: String!
  ChangeBatch: AwsRoute53ChangeResourceRecordSetsChangeBatchInput!
}

input AwsRoute53ChangeResourceRecordSetsChangeBatchInput {
  Comment: String
  Changes: [AwsRoute53ChangeResourceRecordSetsChangeBatchChangesInput]!
}

input AwsRoute53ChangeResourceRecordSetsChangeBatchChangesInput {
  Action: String!
  ResourceRecordSet: AwsRoute53SkInput!
}

input AwsRoute53SkInput {
  Name: String!
  Type: String!
  SetIdentifier: String
  Weight: JSON
  Region: String
  GeoLocation: AwsRoute53SkGeoLocationInput
  Failover: String
  MultiValueAnswer: Boolean
  TTL: JSON
  ResourceRecords: [AwsRoute53SkResourceRecordsInput]
  AliasTarget: AwsRoute53SkAliasTargetInput
  HealthCheckId: String
  TrafficPolicyInstanceId: String
}

input AwsRoute53SkGeoLocationInput {
  ContinentCode: String
  CountryCode: String
  SubdivisionCode: String
}

input AwsRoute53SkResourceRecordsInput {
  Value: String!
}

input AwsRoute53SkAliasTargetInput {
  HostedZoneId: String!
  DNSName: String!
  EvaluateTargetHealth: Boolean!
}

input AwsRoute53ChangeTagsForResourceInput {
  ResourceType: String!
  ResourceId: String!
  AddTags: [AwsRoute53S18Input]
  RemoveTagKeys: [String]
}

input AwsRoute53S18Input {
  Key: String
  Value: String
}

type AwsRoute53CreateHealthCheckOutput {
  HealthCheck: AwsRoute53S22!
  Location: String!
}

type AwsRoute53S22 {
  Id: String!
  CallerReference: String!
  LinkedService: AwsRoute53S23
  HealthCheckConfig: AwsRoute53S1g!
  HealthCheckVersion: JSON!
  CloudWatchAlarmConfiguration: AwsRoute53S22CloudWatchAlarmConfiguration
}

type AwsRoute53S23 {
  ServicePrincipal: String
  Description: String
}

type AwsRoute53S1g {
  IPAddress: String
  Port: Int
  Type: String!
  ResourcePath: String
  FullyQualifiedDomainName: String
  SearchString: String
  RequestInterval: Int
  FailureThreshold: Int
  MeasureLatency: Boolean
  Inverted: Boolean
  Disabled: Boolean
  HealthThreshold: Int
  ChildHealthChecks: [String]
  EnableSNI: Boolean
  Regions: [String]
  AlarmIdentifier: AwsRoute53S1x
  InsufficientDataHealthStatus: String
}

type AwsRoute53S1x {
  Region: String!
  Name: String!
}

type AwsRoute53S22CloudWatchAlarmConfiguration {
  EvaluationPeriods: Int!
  Threshold: JSON!
  ComparisonOperator: String!
  Period: Int!
  MetricName: String!
  Namespace: String!
  Statistic: String!
  Dimensions: [AwsRoute53S22CloudWatchAlarmConfigurationDimensions]
}

type AwsRoute53S22CloudWatchAlarmConfigurationDimensions {
  Name: String!
  Value: String!
}

input AwsRoute53CreateHealthCheckInput {
  CallerReference: String!
  HealthCheckConfig: AwsRoute53S1gInput!
}

input AwsRoute53S1gInput {
  IPAddress: String
  Port: Int
  Type: String!
  ResourcePath: String
  FullyQualifiedDomainName: String
  SearchString: String
  RequestInterval: Int
  FailureThreshold: Int
  MeasureLatency: Boolean
  Inverted: Boolean
  Disabled: Boolean
  HealthThreshold: Int
  ChildHealthChecks: [String]
  EnableSNI: Boolean
  Regions: [String]
  AlarmIdentifier: AwsRoute53S1xInput
  InsufficientDataHealthStatus: String
}

input AwsRoute53S1xInput {
  Region: String!
  Name: String!
}

type AwsRoute53CreateHostedZoneOutput {
  HostedZone: AwsRoute53S2n!
  ChangeInfo: AwsRoute53S5!
  DelegationSet: AwsRoute53S2p!
  VPC: AwsRoute53Sa
  Location: String!
}

type AwsRoute53S2n {
  Id: String!
  Name: String!
  CallerReference: String!
  Config: AwsRoute53S2k
  ResourceRecordSetCount: JSON
  LinkedService: AwsRoute53S23
}

type AwsRoute53S2k {
  Comment: String
  PrivateZone: Boolean
}

type AwsRoute53S2p {
  Id: String
  CallerReference: String
  NameServers: [String]!
}

type AwsRoute53Sa {
  VPCRegion: String
  VPCId: String
}

input AwsRoute53CreateHostedZoneInput {
  Name: String!
  VPC: AwsRoute53SaInput
  CallerReference: String!
  HostedZoneConfig: AwsRoute53S2kInput
  DelegationSetId: String
}

input AwsRoute53S2kInput {
  Comment: String
  PrivateZone: Boolean
}

type AwsRoute53CreateKeySigningKeyOutput {
  ChangeInfo: AwsRoute53S5!
  KeySigningKey: AwsRoute53S2v!
  Location: String!
}

type AwsRoute53S2v {
  Name: String
  KmsArn: String
  Flag: Int
  SigningAlgorithmMnemonic: String
  SigningAlgorithmType: Int
  DigestAlgorithmMnemonic: String
  DigestAlgorithmType: Int
  KeyTag: Int
  DigestValue: String
  PublicKey: String
  DSRecord: String
  DNSKEYRecord: String
  Status: String
  StatusMessage: String
  CreatedDate: Date
  LastModifiedDate: Date
}

input AwsRoute53CreateKeySigningKeyInput {
  CallerReference: String!
  HostedZoneId: String!
  KeyManagementServiceArn: String!
  Name: String!
  Status: String!
}

type AwsRoute53CreateQueryLoggingConfigOutput {
  QueryLoggingConfig: AwsRoute53S32!
  Location: String!
}

type AwsRoute53S32 {
  Id: String!
  HostedZoneId: String!
  CloudWatchLogsLogGroupArn: String!
}

input AwsRoute53CreateQueryLoggingConfigInput {
  HostedZoneId: String!
  CloudWatchLogsLogGroupArn: String!
}

type AwsRoute53CreateReusableDelegationSetOutput {
  DelegationSet: AwsRoute53S2p!
  Location: String!
}

input AwsRoute53CreateReusableDelegationSetInput {
  CallerReference: String!
  HostedZoneId: String
}

type AwsRoute53CreateTrafficPolicyOutput {
  TrafficPolicy: AwsRoute53S3b!
  Location: String!
}

type AwsRoute53S3b {
  Id: String!
  Version: Int!
  Name: String!
  Type: String!
  Document: String!
  Comment: String
}

input AwsRoute53CreateTrafficPolicyInput {
  Name: String!
  Document: String!
  Comment: String
}

type AwsRoute53CreateTrafficPolicyInstanceOutput {
  TrafficPolicyInstance: AwsRoute53S3g!
  Location: String!
}

type AwsRoute53S3g {
  Id: String!
  HostedZoneId: String!
  Name: String!
  TTL: JSON!
  State: String!
  Message: String!
  TrafficPolicyId: String!
  TrafficPolicyVersion: Int!
  TrafficPolicyType: String!
}

input AwsRoute53CreateTrafficPolicyInstanceInput {
  HostedZoneId: String!
  Name: String!
  TTL: JSON!
  TrafficPolicyId: String!
  TrafficPolicyVersion: Int!
}

type AwsRoute53CreateTrafficPolicyVersionOutput {
  TrafficPolicy: AwsRoute53S3b!
  Location: String!
}

input AwsRoute53CreateTrafficPolicyVersionInput {
  Id: String!
  Document: String!
  Comment: String
}

type AwsRoute53CreateVPCAssociationAuthorizationOutput {
  HostedZoneId: String!
  VPC: AwsRoute53Sa!
}

input AwsRoute53CreateVPCAssociationAuthorizationInput {
  HostedZoneId: String!
  VPC: AwsRoute53SaInput!
}

type AwsRoute53DeactivateKeySigningKeyOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53DeactivateKeySigningKeyInput {
  HostedZoneId: String!
  Name: String!
}

input AwsRoute53DeleteHealthCheckInput {
  HealthCheckId: String!
}

type AwsRoute53DeleteHostedZoneOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53DeleteHostedZoneInput {
  Id: String!
}

type AwsRoute53DeleteKeySigningKeyOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53DeleteKeySigningKeyInput {
  HostedZoneId: String!
  Name: String!
}

input AwsRoute53DeleteQueryLoggingConfigInput {
  Id: String!
}

input AwsRoute53DeleteReusableDelegationSetInput {
  Id: String!
}

input AwsRoute53DeleteTrafficPolicyInput {
  Id: String!
  Version: Int!
}

input AwsRoute53DeleteTrafficPolicyInstanceInput {
  Id: String!
}

input AwsRoute53DeleteVPCAssociationAuthorizationInput {
  HostedZoneId: String!
  VPC: AwsRoute53SaInput!
}

type AwsRoute53DisableHostedZoneDNSSECOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53DisableHostedZoneDNSSECInput {
  HostedZoneId: String!
}

type AwsRoute53DisassociateVPCFromHostedZoneOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53DisassociateVPCFromHostedZoneInput {
  HostedZoneId: String!
  VPC: AwsRoute53SaInput!
  Comment: String
}

type AwsRoute53EnableHostedZoneDNSSECOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53EnableHostedZoneDNSSECInput {
  HostedZoneId: String!
}

type AwsRoute53GetAccountLimitOutput {
  Limit: AwsRoute53GetAccountLimitOutputLimit!
  Count: JSON!
}

type AwsRoute53GetAccountLimitOutputLimit {
  Type: String!
  Value: JSON!
}

input AwsRoute53GetAccountLimitInput {
  Type: String!
}

type AwsRoute53GetChangeOutput {
  ChangeInfo: AwsRoute53S5!
}

input AwsRoute53GetChangeInput {
  Id: String!
}

type AwsRoute53GetCheckerIpRangesOutput {
  CheckerIpRanges: [String]!
}

type AwsRoute53GetDNSSECOutput {
  Status: AwsRoute53GetDNSSECOutputStatus!
  KeySigningKeys: [AwsRoute53S2v]!
}

type AwsRoute53GetDNSSECOutputStatus {
  ServeSignature: String
  StatusMessage: String
}

input AwsRoute53GetDNSSECInput {
  HostedZoneId: String!
}

type AwsRoute53GetGeoLocationOutput {
  GeoLocationDetails: AwsRoute53S4v!
}

type AwsRoute53S4v {
  ContinentCode: String
  ContinentName: String
  CountryCode: String
  CountryName: String
  SubdivisionCode: String
  SubdivisionName: String
}

input AwsRoute53GetGeoLocationInput {
  ContinentCode: String
  CountryCode: String
  SubdivisionCode: String
}

type AwsRoute53GetHealthCheckOutput {
  HealthCheck: AwsRoute53S22!
}

input AwsRoute53GetHealthCheckInput {
  HealthCheckId: String!
}

type AwsRoute53GetHealthCheckCountOutput {
  HealthCheckCount: JSON!
}

type AwsRoute53GetHealthCheckLastFailureReasonOutput {
  HealthCheckObservations: [AwsRoute53S56]!
}

type AwsRoute53S56 {
  Region: String
  IPAddress: String
  StatusReport: AwsRoute53S56StatusReport
}

type AwsRoute53S56StatusReport {
  Status: String
  CheckedTime: Date
}

input AwsRoute53GetHealthCheckLastFailureReasonInput {
  HealthCheckId: String!
}

type AwsRoute53GetHealthCheckStatusOutput {
  HealthCheckObservations: [AwsRoute53S56]!
}

input AwsRoute53GetHealthCheckStatusInput {
  HealthCheckId: String!
}

type AwsRoute53GetHostedZoneOutput {
  HostedZone: AwsRoute53S2n!
  DelegationSet: AwsRoute53S2p
  VPCs: [AwsRoute53Sa]
}

input AwsRoute53GetHostedZoneInput {
  Id: String!
}

type AwsRoute53GetHostedZoneCountOutput {
  HostedZoneCount: JSON!
}

type AwsRoute53GetHostedZoneLimitOutput {
  Limit: AwsRoute53GetHostedZoneLimitOutputLimit!
  Count: JSON!
}

type AwsRoute53GetHostedZoneLimitOutputLimit {
  Type: String!
  Value: JSON!
}

input AwsRoute53GetHostedZoneLimitInput {
  Type: String!
  HostedZoneId: String!
}

type AwsRoute53GetQueryLoggingConfigOutput {
  QueryLoggingConfig: AwsRoute53S32!
}

input AwsRoute53GetQueryLoggingConfigInput {
  Id: String!
}

type AwsRoute53GetReusableDelegationSetOutput {
  DelegationSet: AwsRoute53S2p!
}

input AwsRoute53GetReusableDelegationSetInput {
  Id: String!
}

type AwsRoute53GetReusableDelegationSetLimitOutput {
  Limit: AwsRoute53GetReusableDelegationSetLimitOutputLimit!
  Count: JSON!
}

type AwsRoute53GetReusableDelegationSetLimitOutputLimit {
  Type: String!
  Value: JSON!
}

input AwsRoute53GetReusableDelegationSetLimitInput {
  Type: String!
  DelegationSetId: String!
}

type AwsRoute53GetTrafficPolicyOutput {
  TrafficPolicy: AwsRoute53S3b!
}

input AwsRoute53GetTrafficPolicyInput {
  Id: String!
  Version: Int!
}

type AwsRoute53GetTrafficPolicyInstanceOutput {
  TrafficPolicyInstance: AwsRoute53S3g!
}

input AwsRoute53GetTrafficPolicyInstanceInput {
  Id: String!
}

type AwsRoute53GetTrafficPolicyInstanceCountOutput {
  TrafficPolicyInstanceCount: Int!
}

type AwsRoute53ListGeoLocationsOutput {
  GeoLocationDetailsList: [AwsRoute53S4v]!
  IsTruncated: Boolean!
  NextContinentCode: String
  NextCountryCode: String
  NextSubdivisionCode: String
  MaxItems: String!
}

input AwsRoute53ListGeoLocationsInput {
  StartContinentCode: String
  StartCountryCode: String
  StartSubdivisionCode: String
  MaxItems: String
}

type AwsRoute53ListHealthChecksOutput {
  HealthChecks: [AwsRoute53S22]!
  Marker: String!
  IsTruncated: Boolean!
  NextMarker: String
  MaxItems: String!
}

input AwsRoute53ListHealthChecksInput {
  Marker: String
  MaxItems: String
}

type AwsRoute53ListHostedZonesOutput {
  HostedZones: [AwsRoute53S2n]!
  Marker: String!
  IsTruncated: Boolean!
  NextMarker: String
  MaxItems: String!
}

input AwsRoute53ListHostedZonesInput {
  Marker: String
  MaxItems: String
  DelegationSetId: String
}

type AwsRoute53ListHostedZonesByNameOutput {
  HostedZones: [AwsRoute53S2n]!
  DNSName: String
  HostedZoneId: String
  IsTruncated: Boolean!
  NextDNSName: String
  NextHostedZoneId: String
  MaxItems: String!
}

input AwsRoute53ListHostedZonesByNameInput {
  DNSName: String
  HostedZoneId: String
  MaxItems: String
}

type AwsRoute53ListHostedZonesByVPCOutput {
  HostedZoneSummaries: [AwsRoute53ListHostedZonesByVPCOutputHostedZoneSummaries]!
  MaxItems: String!
  NextToken: String
}

type AwsRoute53ListHostedZonesByVPCOutputHostedZoneSummaries {
  HostedZoneId: String!
  Name: String!
  Owner: AwsRoute53ListHostedZonesByVPCOutputHostedZoneSummariesOwner!
}

type AwsRoute53ListHostedZonesByVPCOutputHostedZoneSummariesOwner {
  OwningAccount: String
  OwningService: String
}

input AwsRoute53ListHostedZonesByVPCInput {
  VPCId: String!
  VPCRegion: String!
  MaxItems: String
  NextToken: String
}

type AwsRoute53ListQueryLoggingConfigsOutput {
  QueryLoggingConfigs: [AwsRoute53S32]!
  NextToken: String
}

input AwsRoute53ListQueryLoggingConfigsInput {
  HostedZoneId: String
  NextToken: String
  MaxResults: String
}

type AwsRoute53ListResourceRecordSetsOutput {
  ResourceRecordSets: [AwsRoute53Sk]!
  IsTruncated: Boolean!
  NextRecordName: String
  NextRecordType: String
  NextRecordIdentifier: String
  MaxItems: String!
}

type AwsRoute53Sk {
  Name: String!
  Type: String!
  SetIdentifier: String
  Weight: JSON
  Region: String
  GeoLocation: AwsRoute53SkGeoLocation
  Failover: String
  MultiValueAnswer: Boolean
  TTL: JSON
  ResourceRecords: [AwsRoute53SkResourceRecords]
  AliasTarget: AwsRoute53SkAliasTarget
  HealthCheckId: String
  TrafficPolicyInstanceId: String
}

type AwsRoute53SkGeoLocation {
  ContinentCode: String
  CountryCode: String
  SubdivisionCode: String
}

type AwsRoute53SkResourceRecords {
  Value: String!
}

type AwsRoute53SkAliasTarget {
  HostedZoneId: String!
  DNSName: String!
  EvaluateTargetHealth: Boolean!
}

input AwsRoute53ListResourceRecordSetsInput {
  HostedZoneId: String!
  StartRecordName: String
  StartRecordType: String
  StartRecordIdentifier: String
  MaxItems: String
}

type AwsRoute53ListReusableDelegationSetsOutput {
  DelegationSets: [AwsRoute53S2p]!
  Marker: String!
  IsTruncated: Boolean!
  NextMarker: String
  MaxItems: String!
}

input AwsRoute53ListReusableDelegationSetsInput {
  Marker: String
  MaxItems: String
}

type AwsRoute53ListTagsForResourceOutput {
  ResourceTagSet: AwsRoute53S6z!
}

type AwsRoute53S6z {
  ResourceType: String
  ResourceId: String
  Tags: [AwsRoute53S18]
}

type AwsRoute53S18 {
  Key: String
  Value: String
}

input AwsRoute53ListTagsForResourceInput {
  ResourceType: String!
  ResourceId: String!
}

type AwsRoute53ListTagsForResourcesOutput {
  ResourceTagSets: [AwsRoute53S6z]!
}

input AwsRoute53ListTagsForResourcesInput {
  ResourceType: String!
  ResourceIds: [String]!
}

type AwsRoute53ListTrafficPoliciesOutput {
  TrafficPolicySummaries: [AwsRoute53ListTrafficPoliciesOutputTrafficPolicySummaries]!
  IsTruncated: Boolean!
  TrafficPolicyIdMarker: String!
  MaxItems: String!
}

type AwsRoute53ListTrafficPoliciesOutputTrafficPolicySummaries {
  Id: String!
  Name: String!
  Type: String!
  LatestVersion: Int!
  TrafficPolicyCount: Int!
}

input AwsRoute53ListTrafficPoliciesInput {
  TrafficPolicyIdMarker: String
  MaxItems: String
}

type AwsRoute53ListTrafficPolicyInstancesOutput {
  TrafficPolicyInstances: [AwsRoute53S3g]!
  HostedZoneIdMarker: String
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  IsTruncated: Boolean!
  MaxItems: String!
}

input AwsRoute53ListTrafficPolicyInstancesInput {
  HostedZoneIdMarker: String
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  MaxItems: String
}

type AwsRoute53ListTrafficPolicyInstancesByHostedZoneOutput {
  TrafficPolicyInstances: [AwsRoute53S3g]!
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  IsTruncated: Boolean!
  MaxItems: String!
}

input AwsRoute53ListTrafficPolicyInstancesByHostedZoneInput {
  HostedZoneId: String!
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  MaxItems: String
}

type AwsRoute53ListTrafficPolicyInstancesByPolicyOutput {
  TrafficPolicyInstances: [AwsRoute53S3g]!
  HostedZoneIdMarker: String
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  IsTruncated: Boolean!
  MaxItems: String!
}

input AwsRoute53ListTrafficPolicyInstancesByPolicyInput {
  TrafficPolicyId: String!
  TrafficPolicyVersion: Int!
  HostedZoneIdMarker: String
  TrafficPolicyInstanceNameMarker: String
  TrafficPolicyInstanceTypeMarker: String
  MaxItems: String
}

type AwsRoute53ListTrafficPolicyVersionsOutput {
  TrafficPolicies: [AwsRoute53S3b]!
  IsTruncated: Boolean!
  TrafficPolicyVersionMarker: String!
  MaxItems: String!
}

input AwsRoute53ListTrafficPolicyVersionsInput {
  Id: String!
  TrafficPolicyVersionMarker: String
  MaxItems: String
}

type AwsRoute53ListVPCAssociationAuthorizationsOutput {
  HostedZoneId: String!
  NextToken: String
  VPCs: [AwsRoute53Sa]!
}

input AwsRoute53ListVPCAssociationAuthorizationsInput {
  HostedZoneId: String!
  NextToken: String
  MaxResults: String
}

type AwsRoute53TestDNSAnswerOutput {
  Nameserver: String!
  RecordName: String!
  RecordType: String!
  RecordData: [String]!
  ResponseCode: String!
  Protocol: String!
}

input AwsRoute53TestDNSAnswerInput {
  HostedZoneId: String!
  RecordName: String!
  RecordType: String!
  ResolverIP: String
  EDNS0ClientSubnetIP: String
  EDNS0ClientSubnetMask: String
}

type AwsRoute53UpdateHealthCheckOutput {
  HealthCheck: AwsRoute53S22!
}

input AwsRoute53UpdateHealthCheckInput {
  HealthCheckId: String!
  HealthCheckVersion: JSON
  IPAddress: String
  Port: Int
  ResourcePath: String
  FullyQualifiedDomainName: String
  SearchString: String
  FailureThreshold: Int
  Inverted: Boolean
  Disabled: Boolean
  HealthThreshold: Int
  ChildHealthChecks: [String]
  EnableSNI: Boolean
  Regions: [String]
  AlarmIdentifier: AwsRoute53S1xInput
  InsufficientDataHealthStatus: String
  ResetElements: [String]
}

type AwsRoute53UpdateHostedZoneCommentOutput {
  HostedZone: AwsRoute53S2n!
}

input AwsRoute53UpdateHostedZoneCommentInput {
  Id: String!
  Comment: String
}

type AwsRoute53UpdateTrafficPolicyCommentOutput {
  TrafficPolicy: AwsRoute53S3b!
}

input AwsRoute53UpdateTrafficPolicyCommentInput {
  Id: String!
  Version: Int!
  Comment: String!
}

type AwsRoute53UpdateTrafficPolicyInstanceOutput {
  TrafficPolicyInstance: AwsRoute53S3g!
}

input AwsRoute53UpdateTrafficPolicyInstanceInput {
  Id: String!
  TTL: JSON!
  TrafficPolicyId: String!
  TrafficPolicyVersion: Int!
}

"""Amazon Route 53 Domains (2014-05-15)"""
type AwsRoute53Domains {
  acceptDomainTransferFromAnotherAwsAccount(input: AwsRoute53DomainsAcceptDomainTransferFromAnotherAwsAccountInput!, config: AwsConfig): AwsRoute53DomainsAcceptDomainTransferFromAnotherAwsAccountOutput
  cancelDomainTransferToAnotherAwsAccount(input: AwsRoute53DomainsCancelDomainTransferToAnotherAwsAccountInput!, config: AwsConfig): AwsRoute53DomainsCancelDomainTransferToAnotherAwsAccountOutput
  checkDomainAvailability(input: AwsRoute53DomainsCheckDomainAvailabilityInput!, config: AwsConfig): AwsRoute53DomainsCheckDomainAvailabilityOutput
  checkDomainTransferability(input: AwsRoute53DomainsCheckDomainTransferabilityInput!, config: AwsConfig): AwsRoute53DomainsCheckDomainTransferabilityOutput
  deleteTagsForDomain(input: AwsRoute53DomainsDeleteTagsForDomainInput!, config: AwsConfig): JSON
  disableDomainAutoRenew(input: AwsRoute53DomainsDisableDomainAutoRenewInput!, config: AwsConfig): JSON
  disableDomainTransferLock(input: AwsRoute53DomainsDisableDomainTransferLockInput!, config: AwsConfig): AwsRoute53DomainsDisableDomainTransferLockOutput
  enableDomainAutoRenew(input: AwsRoute53DomainsEnableDomainAutoRenewInput!, config: AwsConfig): JSON
  enableDomainTransferLock(input: AwsRoute53DomainsEnableDomainTransferLockInput!, config: AwsConfig): AwsRoute53DomainsEnableDomainTransferLockOutput
  getContactReachabilityStatus(input: AwsRoute53DomainsGetContactReachabilityStatusInput, config: AwsConfig): AwsRoute53DomainsGetContactReachabilityStatusOutput
  getDomainDetail(input: AwsRoute53DomainsGetDomainDetailInput!, config: AwsConfig): AwsRoute53DomainsGetDomainDetailOutput
  getDomainSuggestions(input: AwsRoute53DomainsGetDomainSuggestionsInput!, config: AwsConfig): AwsRoute53DomainsGetDomainSuggestionsOutput
  getOperationDetail(input: AwsRoute53DomainsGetOperationDetailInput!, config: AwsConfig): AwsRoute53DomainsGetOperationDetailOutput
  listDomains(input: AwsRoute53DomainsListDomainsInput, config: AwsConfig): AwsRoute53DomainsListDomainsOutput
  listOperations(input: AwsRoute53DomainsListOperationsInput, config: AwsConfig): AwsRoute53DomainsListOperationsOutput
  listTagsForDomain(input: AwsRoute53DomainsListTagsForDomainInput!, config: AwsConfig): AwsRoute53DomainsListTagsForDomainOutput
  registerDomain(input: AwsRoute53DomainsRegisterDomainInput!, config: AwsConfig): AwsRoute53DomainsRegisterDomainOutput
  rejectDomainTransferFromAnotherAwsAccount(input: AwsRoute53DomainsRejectDomainTransferFromAnotherAwsAccountInput!, config: AwsConfig): AwsRoute53DomainsRejectDomainTransferFromAnotherAwsAccountOutput
  renewDomain(input: AwsRoute53DomainsRenewDomainInput!, config: AwsConfig): AwsRoute53DomainsRenewDomainOutput
  resendContactReachabilityEmail(input: AwsRoute53DomainsResendContactReachabilityEmailInput, config: AwsConfig): AwsRoute53DomainsResendContactReachabilityEmailOutput
  retrieveDomainAuthCode(input: AwsRoute53DomainsRetrieveDomainAuthCodeInput!, config: AwsConfig): AwsRoute53DomainsRetrieveDomainAuthCodeOutput
  transferDomain(input: AwsRoute53DomainsTransferDomainInput!, config: AwsConfig): AwsRoute53DomainsTransferDomainOutput
  transferDomainToAnotherAwsAccount(input: AwsRoute53DomainsTransferDomainToAnotherAwsAccountInput!, config: AwsConfig): AwsRoute53DomainsTransferDomainToAnotherAwsAccountOutput
  updateDomainContact(input: AwsRoute53DomainsUpdateDomainContactInput!, config: AwsConfig): AwsRoute53DomainsUpdateDomainContactOutput
  updateDomainContactPrivacy(input: AwsRoute53DomainsUpdateDomainContactPrivacyInput!, config: AwsConfig): AwsRoute53DomainsUpdateDomainContactPrivacyOutput
  updateDomainNameservers(input: AwsRoute53DomainsUpdateDomainNameserversInput!, config: AwsConfig): AwsRoute53DomainsUpdateDomainNameserversOutput
  updateTagsForDomain(input: AwsRoute53DomainsUpdateTagsForDomainInput!, config: AwsConfig): JSON
  viewBilling(input: AwsRoute53DomainsViewBillingInput, config: AwsConfig): AwsRoute53DomainsViewBillingOutput
}

type AwsRoute53DomainsAcceptDomainTransferFromAnotherAwsAccountOutput {
  OperationId: String
}

input AwsRoute53DomainsAcceptDomainTransferFromAnotherAwsAccountInput {
  DomainName: String!
  Password: String!
}

type AwsRoute53DomainsCancelDomainTransferToAnotherAwsAccountOutput {
  OperationId: String
}

input AwsRoute53DomainsCancelDomainTransferToAnotherAwsAccountInput {
  DomainName: String!
}

type AwsRoute53DomainsCheckDomainAvailabilityOutput {
  Availability: String!
}

input AwsRoute53DomainsCheckDomainAvailabilityInput {
  DomainName: String!
  IdnLangCode: String
}

type AwsRoute53DomainsCheckDomainTransferabilityOutput {
  Transferability: AwsRoute53DomainsCheckDomainTransferabilityOutputTransferability!
}

type AwsRoute53DomainsCheckDomainTransferabilityOutputTransferability {
  Transferable: String
}

input AwsRoute53DomainsCheckDomainTransferabilityInput {
  DomainName: String!
  AuthCode: String
}

input AwsRoute53DomainsDeleteTagsForDomainInput {
  DomainName: String!
  TagsToDelete: [String]!
}

input AwsRoute53DomainsDisableDomainAutoRenewInput {
  DomainName: String!
}

type AwsRoute53DomainsDisableDomainTransferLockOutput {
  OperationId: String!
}

input AwsRoute53DomainsDisableDomainTransferLockInput {
  DomainName: String!
}

input AwsRoute53DomainsEnableDomainAutoRenewInput {
  DomainName: String!
}

type AwsRoute53DomainsEnableDomainTransferLockOutput {
  OperationId: String!
}

input AwsRoute53DomainsEnableDomainTransferLockInput {
  DomainName: String!
}

type AwsRoute53DomainsGetContactReachabilityStatusOutput {
  domainName: String
  status: String
}

input AwsRoute53DomainsGetContactReachabilityStatusInput {
  domainName: String
}

type AwsRoute53DomainsGetDomainDetailOutput {
  DomainName: String!
  Nameservers: [AwsRoute53DomainsSy]!
  AutoRenew: Boolean
  AdminContact: AwsRoute53DomainsS14!
  RegistrantContact: AwsRoute53DomainsS14!
  TechContact: AwsRoute53DomainsS14!
  AdminPrivacy: Boolean
  RegistrantPrivacy: Boolean
  TechPrivacy: Boolean
  RegistrarName: String
  WhoIsServer: String
  RegistrarUrl: String
  AbuseContactEmail: String
  AbuseContactPhone: String
  RegistryDomainId: String
  CreationDate: Date
  UpdatedDate: Date
  ExpirationDate: Date
  Reseller: String
  DnsSec: String
  StatusList: [String]
}

type AwsRoute53DomainsSy {
  Name: String!
  GlueIps: [String]
}

type AwsRoute53DomainsS14 {
  FirstName: String
  LastName: String
  ContactType: String
  OrganizationName: String
  AddressLine1: String
  AddressLine2: String
  City: String
  State: String
  CountryCode: String
  ZipCode: String
  PhoneNumber: String
  Email: String
  Fax: String
  ExtraParams: [AwsRoute53DomainsS14ExtraParams]
}

type AwsRoute53DomainsS14ExtraParams {
  Name: String!
  Value: String!
}

input AwsRoute53DomainsGetDomainDetailInput {
  DomainName: String!
}

type AwsRoute53DomainsGetDomainSuggestionsOutput {
  SuggestionsList: [AwsRoute53DomainsGetDomainSuggestionsOutputSuggestionsList]
}

type AwsRoute53DomainsGetDomainSuggestionsOutputSuggestionsList {
  DomainName: String
  Availability: String
}

input AwsRoute53DomainsGetDomainSuggestionsInput {
  DomainName: String!
  SuggestionCount: Int!
  OnlyAvailable: Boolean!
}

type AwsRoute53DomainsGetOperationDetailOutput {
  OperationId: String
  Status: String
  Message: String
  DomainName: String
  Type: String
  SubmittedDate: Date
}

input AwsRoute53DomainsGetOperationDetailInput {
  OperationId: String!
}

type AwsRoute53DomainsListDomainsOutput {
  Domains: [AwsRoute53DomainsListDomainsOutputDomains]!
  NextPageMarker: String
}

type AwsRoute53DomainsListDomainsOutputDomains {
  DomainName: String!
  AutoRenew: Boolean
  TransferLock: Boolean
  Expiry: Date
}

input AwsRoute53DomainsListDomainsInput {
  Marker: String
  MaxItems: Int
}

type AwsRoute53DomainsListOperationsOutput {
  Operations: [AwsRoute53DomainsListOperationsOutputOperations]!
  NextPageMarker: String
}

type AwsRoute53DomainsListOperationsOutputOperations {
  OperationId: String!
  Status: String!
  Type: String!
  SubmittedDate: Date!
}

input AwsRoute53DomainsListOperationsInput {
  SubmittedSince: Date
  Marker: String
  MaxItems: Int
}

type AwsRoute53DomainsListTagsForDomainOutput {
  TagList: [AwsRoute53DomainsS2d]!
}

type AwsRoute53DomainsS2d {
  Key: String
  Value: String
}

input AwsRoute53DomainsListTagsForDomainInput {
  DomainName: String!
}

type AwsRoute53DomainsRegisterDomainOutput {
  OperationId: String!
}

input AwsRoute53DomainsRegisterDomainInput {
  DomainName: String!
  IdnLangCode: String
  DurationInYears: Int!
  AutoRenew: Boolean
  AdminContact: AwsRoute53DomainsS14Input!
  RegistrantContact: AwsRoute53DomainsS14Input!
  TechContact: AwsRoute53DomainsS14Input!
  PrivacyProtectAdminContact: Boolean
  PrivacyProtectRegistrantContact: Boolean
  PrivacyProtectTechContact: Boolean
}

input AwsRoute53DomainsS14Input {
  FirstName: String
  LastName: String
  ContactType: String
  OrganizationName: String
  AddressLine1: String
  AddressLine2: String
  City: String
  State: String
  CountryCode: String
  ZipCode: String
  PhoneNumber: String
  Email: String
  Fax: String
  ExtraParams: [AwsRoute53DomainsS14ExtraParamsInput]
}

input AwsRoute53DomainsS14ExtraParamsInput {
  Name: String!
  Value: String!
}

type AwsRoute53DomainsRejectDomainTransferFromAnotherAwsAccountOutput {
  OperationId: String
}

input AwsRoute53DomainsRejectDomainTransferFromAnotherAwsAccountInput {
  DomainName: String!
}

type AwsRoute53DomainsRenewDomainOutput {
  OperationId: String!
}

input AwsRoute53DomainsRenewDomainInput {
  DomainName: String!
  DurationInYears: Int
  CurrentExpiryYear: Int!
}

type AwsRoute53DomainsResendContactReachabilityEmailOutput {
  domainName: String
  emailAddress: String
  isAlreadyVerified: Boolean
}

input AwsRoute53DomainsResendContactReachabilityEmailInput {
  domainName: String
}

type AwsRoute53DomainsRetrieveDomainAuthCodeOutput {
  AuthCode: String!
}

input AwsRoute53DomainsRetrieveDomainAuthCodeInput {
  DomainName: String!
}

type AwsRoute53DomainsTransferDomainOutput {
  OperationId: String!
}

input AwsRoute53DomainsTransferDomainInput {
  DomainName: String!
  IdnLangCode: String
  DurationInYears: Int!
  Nameservers: [AwsRoute53DomainsSyInput]
  AuthCode: String
  AutoRenew: Boolean
  AdminContact: AwsRoute53DomainsS14Input!
  RegistrantContact: AwsRoute53DomainsS14Input!
  TechContact: AwsRoute53DomainsS14Input!
  PrivacyProtectAdminContact: Boolean
  PrivacyProtectRegistrantContact: Boolean
  PrivacyProtectTechContact: Boolean
}

input AwsRoute53DomainsSyInput {
  Name: String!
  GlueIps: [String]
}

type AwsRoute53DomainsTransferDomainToAnotherAwsAccountOutput {
  OperationId: String
  Password: String
}

input AwsRoute53DomainsTransferDomainToAnotherAwsAccountInput {
  DomainName: String!
  AccountId: String!
}

type AwsRoute53DomainsUpdateDomainContactOutput {
  OperationId: String!
}

input AwsRoute53DomainsUpdateDomainContactInput {
  DomainName: String!
  AdminContact: AwsRoute53DomainsS14Input
  RegistrantContact: AwsRoute53DomainsS14Input
  TechContact: AwsRoute53DomainsS14Input
}

type AwsRoute53DomainsUpdateDomainContactPrivacyOutput {
  OperationId: String!
}

input AwsRoute53DomainsUpdateDomainContactPrivacyInput {
  DomainName: String!
  AdminPrivacy: Boolean
  RegistrantPrivacy: Boolean
  TechPrivacy: Boolean
}

type AwsRoute53DomainsUpdateDomainNameserversOutput {
  OperationId: String!
}

input AwsRoute53DomainsUpdateDomainNameserversInput {
  DomainName: String!
  FIAuthKey: String
  Nameservers: [AwsRoute53DomainsSyInput]!
}

input AwsRoute53DomainsUpdateTagsForDomainInput {
  DomainName: String!
  TagsToUpdate: [AwsRoute53DomainsS2dInput]
}

input AwsRoute53DomainsS2dInput {
  Key: String
  Value: String
}

type AwsRoute53DomainsViewBillingOutput {
  NextPageMarker: String
  BillingRecords: [AwsRoute53DomainsViewBillingOutputBillingRecords]
}

type AwsRoute53DomainsViewBillingOutputBillingRecords {
  DomainName: String
  Operation: String
  InvoiceId: String
  BillDate: Date
  Price: JSON
}

input AwsRoute53DomainsViewBillingInput {
  Start: Date
  End: Date
  Marker: String
  MaxItems: Int
}

"""Amazon Route 53 Resolver (2018-04-01)"""
type AwsRoute53Resolver {
  associateFirewallRuleGroup(input: AwsRoute53ResolverAssociateFirewallRuleGroupInput!, config: AwsConfig): AwsRoute53ResolverAssociateFirewallRuleGroupOutput
  associateResolverEndpointIpAddress(input: AwsRoute53ResolverAssociateResolverEndpointIpAddressInput!, config: AwsConfig): AwsRoute53ResolverAssociateResolverEndpointIpAddressOutput
  associateResolverQueryLogConfig(input: AwsRoute53ResolverAssociateResolverQueryLogConfigInput!, config: AwsConfig): AwsRoute53ResolverAssociateResolverQueryLogConfigOutput
  associateResolverRule(input: AwsRoute53ResolverAssociateResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverAssociateResolverRuleOutput
  createFirewallDomainList(input: AwsRoute53ResolverCreateFirewallDomainListInput!, config: AwsConfig): AwsRoute53ResolverCreateFirewallDomainListOutput
  createFirewallRule(input: AwsRoute53ResolverCreateFirewallRuleInput!, config: AwsConfig): AwsRoute53ResolverCreateFirewallRuleOutput
  createFirewallRuleGroup(input: AwsRoute53ResolverCreateFirewallRuleGroupInput!, config: AwsConfig): AwsRoute53ResolverCreateFirewallRuleGroupOutput
  createResolverEndpoint(input: AwsRoute53ResolverCreateResolverEndpointInput!, config: AwsConfig): AwsRoute53ResolverCreateResolverEndpointOutput
  createResolverQueryLogConfig(input: AwsRoute53ResolverCreateResolverQueryLogConfigInput!, config: AwsConfig): AwsRoute53ResolverCreateResolverQueryLogConfigOutput
  createResolverRule(input: AwsRoute53ResolverCreateResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverCreateResolverRuleOutput
  deleteFirewallDomainList(input: AwsRoute53ResolverDeleteFirewallDomainListInput!, config: AwsConfig): AwsRoute53ResolverDeleteFirewallDomainListOutput
  deleteFirewallRule(input: AwsRoute53ResolverDeleteFirewallRuleInput!, config: AwsConfig): AwsRoute53ResolverDeleteFirewallRuleOutput
  deleteFirewallRuleGroup(input: AwsRoute53ResolverDeleteFirewallRuleGroupInput!, config: AwsConfig): AwsRoute53ResolverDeleteFirewallRuleGroupOutput
  deleteResolverEndpoint(input: AwsRoute53ResolverDeleteResolverEndpointInput!, config: AwsConfig): AwsRoute53ResolverDeleteResolverEndpointOutput
  deleteResolverQueryLogConfig(input: AwsRoute53ResolverDeleteResolverQueryLogConfigInput!, config: AwsConfig): AwsRoute53ResolverDeleteResolverQueryLogConfigOutput
  deleteResolverRule(input: AwsRoute53ResolverDeleteResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverDeleteResolverRuleOutput
  disassociateFirewallRuleGroup(input: AwsRoute53ResolverDisassociateFirewallRuleGroupInput!, config: AwsConfig): AwsRoute53ResolverDisassociateFirewallRuleGroupOutput
  disassociateResolverEndpointIpAddress(input: AwsRoute53ResolverDisassociateResolverEndpointIpAddressInput!, config: AwsConfig): AwsRoute53ResolverDisassociateResolverEndpointIpAddressOutput
  disassociateResolverQueryLogConfig(input: AwsRoute53ResolverDisassociateResolverQueryLogConfigInput!, config: AwsConfig): AwsRoute53ResolverDisassociateResolverQueryLogConfigOutput
  disassociateResolverRule(input: AwsRoute53ResolverDisassociateResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverDisassociateResolverRuleOutput
  getFirewallConfig(input: AwsRoute53ResolverGetFirewallConfigInput!, config: AwsConfig): AwsRoute53ResolverGetFirewallConfigOutput
  getFirewallDomainList(input: AwsRoute53ResolverGetFirewallDomainListInput!, config: AwsConfig): AwsRoute53ResolverGetFirewallDomainListOutput
  getFirewallRuleGroup(input: AwsRoute53ResolverGetFirewallRuleGroupInput!, config: AwsConfig): AwsRoute53ResolverGetFirewallRuleGroupOutput
  getFirewallRuleGroupAssociation(input: AwsRoute53ResolverGetFirewallRuleGroupAssociationInput!, config: AwsConfig): AwsRoute53ResolverGetFirewallRuleGroupAssociationOutput
  getFirewallRuleGroupPolicy(input: AwsRoute53ResolverGetFirewallRuleGroupPolicyInput!, config: AwsConfig): AwsRoute53ResolverGetFirewallRuleGroupPolicyOutput
  getResolverDnssecConfig(input: AwsRoute53ResolverGetResolverDnssecConfigInput!, config: AwsConfig): AwsRoute53ResolverGetResolverDnssecConfigOutput
  getResolverEndpoint(input: AwsRoute53ResolverGetResolverEndpointInput!, config: AwsConfig): AwsRoute53ResolverGetResolverEndpointOutput
  getResolverQueryLogConfig(input: AwsRoute53ResolverGetResolverQueryLogConfigInput!, config: AwsConfig): AwsRoute53ResolverGetResolverQueryLogConfigOutput
  getResolverQueryLogConfigAssociation(input: AwsRoute53ResolverGetResolverQueryLogConfigAssociationInput!, config: AwsConfig): AwsRoute53ResolverGetResolverQueryLogConfigAssociationOutput
  getResolverQueryLogConfigPolicy(input: AwsRoute53ResolverGetResolverQueryLogConfigPolicyInput!, config: AwsConfig): AwsRoute53ResolverGetResolverQueryLogConfigPolicyOutput
  getResolverRule(input: AwsRoute53ResolverGetResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverGetResolverRuleOutput
  getResolverRuleAssociation(input: AwsRoute53ResolverGetResolverRuleAssociationInput!, config: AwsConfig): AwsRoute53ResolverGetResolverRuleAssociationOutput
  getResolverRulePolicy(input: AwsRoute53ResolverGetResolverRulePolicyInput!, config: AwsConfig): AwsRoute53ResolverGetResolverRulePolicyOutput
  importFirewallDomains(input: AwsRoute53ResolverImportFirewallDomainsInput!, config: AwsConfig): AwsRoute53ResolverImportFirewallDomainsOutput
  listFirewallConfigs(input: AwsRoute53ResolverListFirewallConfigsInput, config: AwsConfig): AwsRoute53ResolverListFirewallConfigsOutput
  listFirewallDomainLists(input: AwsRoute53ResolverListFirewallDomainListsInput, config: AwsConfig): AwsRoute53ResolverListFirewallDomainListsOutput
  listFirewallDomains(input: AwsRoute53ResolverListFirewallDomainsInput!, config: AwsConfig): AwsRoute53ResolverListFirewallDomainsOutput
  listFirewallRuleGroupAssociations(input: AwsRoute53ResolverListFirewallRuleGroupAssociationsInput, config: AwsConfig): AwsRoute53ResolverListFirewallRuleGroupAssociationsOutput
  listFirewallRuleGroups(input: AwsRoute53ResolverListFirewallRuleGroupsInput, config: AwsConfig): AwsRoute53ResolverListFirewallRuleGroupsOutput
  listFirewallRules(input: AwsRoute53ResolverListFirewallRulesInput!, config: AwsConfig): AwsRoute53ResolverListFirewallRulesOutput
  listResolverDnssecConfigs(input: AwsRoute53ResolverListResolverDnssecConfigsInput, config: AwsConfig): AwsRoute53ResolverListResolverDnssecConfigsOutput
  listResolverEndpointIpAddresses(input: AwsRoute53ResolverListResolverEndpointIpAddressesInput!, config: AwsConfig): AwsRoute53ResolverListResolverEndpointIpAddressesOutput
  listResolverEndpoints(input: AwsRoute53ResolverListResolverEndpointsInput, config: AwsConfig): AwsRoute53ResolverListResolverEndpointsOutput
  listResolverQueryLogConfigAssociations(input: AwsRoute53ResolverListResolverQueryLogConfigAssociationsInput, config: AwsConfig): AwsRoute53ResolverListResolverQueryLogConfigAssociationsOutput
  listResolverQueryLogConfigs(input: AwsRoute53ResolverListResolverQueryLogConfigsInput, config: AwsConfig): AwsRoute53ResolverListResolverQueryLogConfigsOutput
  listResolverRuleAssociations(input: AwsRoute53ResolverListResolverRuleAssociationsInput, config: AwsConfig): AwsRoute53ResolverListResolverRuleAssociationsOutput
  listResolverRules(input: AwsRoute53ResolverListResolverRulesInput, config: AwsConfig): AwsRoute53ResolverListResolverRulesOutput
  listTagsForResource(input: AwsRoute53ResolverListTagsForResourceInput!, config: AwsConfig): AwsRoute53ResolverListTagsForResourceOutput
  putFirewallRuleGroupPolicy(input: AwsRoute53ResolverPutFirewallRuleGroupPolicyInput!, config: AwsConfig): AwsRoute53ResolverPutFirewallRuleGroupPolicyOutput
  putResolverQueryLogConfigPolicy(input: AwsRoute53ResolverPutResolverQueryLogConfigPolicyInput!, config: AwsConfig): AwsRoute53ResolverPutResolverQueryLogConfigPolicyOutput
  putResolverRulePolicy(input: AwsRoute53ResolverPutResolverRulePolicyInput!, config: AwsConfig): AwsRoute53ResolverPutResolverRulePolicyOutput
  tagResource(input: AwsRoute53ResolverTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsRoute53ResolverUntagResourceInput!, config: AwsConfig): JSON
  updateFirewallConfig(input: AwsRoute53ResolverUpdateFirewallConfigInput!, config: AwsConfig): AwsRoute53ResolverUpdateFirewallConfigOutput
  updateFirewallDomains(input: AwsRoute53ResolverUpdateFirewallDomainsInput!, config: AwsConfig): AwsRoute53ResolverUpdateFirewallDomainsOutput
  updateFirewallRule(input: AwsRoute53ResolverUpdateFirewallRuleInput!, config: AwsConfig): AwsRoute53ResolverUpdateFirewallRuleOutput
  updateFirewallRuleGroupAssociation(input: AwsRoute53ResolverUpdateFirewallRuleGroupAssociationInput!, config: AwsConfig): AwsRoute53ResolverUpdateFirewallRuleGroupAssociationOutput
  updateResolverDnssecConfig(input: AwsRoute53ResolverUpdateResolverDnssecConfigInput!, config: AwsConfig): AwsRoute53ResolverUpdateResolverDnssecConfigOutput
  updateResolverEndpoint(input: AwsRoute53ResolverUpdateResolverEndpointInput!, config: AwsConfig): AwsRoute53ResolverUpdateResolverEndpointOutput
  updateResolverRule(input: AwsRoute53ResolverUpdateResolverRuleInput!, config: AwsConfig): AwsRoute53ResolverUpdateResolverRuleOutput
}

type AwsRoute53ResolverAssociateFirewallRuleGroupOutput {
  FirewallRuleGroupAssociation: AwsRoute53ResolverSc
}

type AwsRoute53ResolverSc {
  Id: String
  Arn: String
  FirewallRuleGroupId: String
  VpcId: String
  Name: String
  Priority: Int
  MutationProtection: String
  ManagedOwnerName: String
  Status: String
  StatusMessage: String
  CreatorRequestId: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverAssociateFirewallRuleGroupInput {
  CreatorRequestId: String!
  FirewallRuleGroupId: String!
  VpcId: String!
  Priority: Int!
  Name: String!
  MutationProtection: String
  Tags: [AwsRoute53ResolverS7Input]
}

input AwsRoute53ResolverS7Input {
  Key: String!
  Value: String!
}

type AwsRoute53ResolverAssociateResolverEndpointIpAddressOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

type AwsRoute53ResolverSn {
  Id: String
  CreatorRequestId: String
  Arn: String
  Name: String
  SecurityGroupIds: [String]
  Direction: String
  IpAddressCount: Int
  HostVPCId: String
  Status: String
  StatusMessage: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverAssociateResolverEndpointIpAddressInput {
  ResolverEndpointId: String!
  IpAddress: AwsRoute53ResolverSjInput!
}

input AwsRoute53ResolverSjInput {
  IpId: String
  SubnetId: String
  Ip: String
}

type AwsRoute53ResolverAssociateResolverQueryLogConfigOutput {
  ResolverQueryLogConfigAssociation: AwsRoute53ResolverSu
}

type AwsRoute53ResolverSu {
  Id: String
  ResolverQueryLogConfigId: String
  ResourceId: String
  Status: String
  Error: String
  ErrorMessage: String
  CreationTime: String
}

input AwsRoute53ResolverAssociateResolverQueryLogConfigInput {
  ResolverQueryLogConfigId: String!
  ResourceId: String!
}

type AwsRoute53ResolverAssociateResolverRuleOutput {
  ResolverRuleAssociation: AwsRoute53ResolverS10
}

type AwsRoute53ResolverS10 {
  Id: String
  ResolverRuleId: String
  Name: String
  VPCId: String
  Status: String
  StatusMessage: String
}

input AwsRoute53ResolverAssociateResolverRuleInput {
  ResolverRuleId: String!
  Name: String
  VPCId: String!
}

type AwsRoute53ResolverCreateFirewallDomainListOutput {
  FirewallDomainList: AwsRoute53ResolverS14
}

type AwsRoute53ResolverS14 {
  Id: String
  Arn: String
  Name: String
  DomainCount: Int
  Status: String
  StatusMessage: String
  ManagedOwnerName: String
  CreatorRequestId: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverCreateFirewallDomainListInput {
  CreatorRequestId: String!
  Name: String!
  Tags: [AwsRoute53ResolverS7Input]
}

type AwsRoute53ResolverCreateFirewallRuleOutput {
  FirewallRule: AwsRoute53ResolverS1e
}

type AwsRoute53ResolverS1e {
  FirewallRuleGroupId: String
  FirewallDomainListId: String
  Name: String
  Priority: Int
  Action: String
  BlockResponse: String
  BlockOverrideDomain: String
  BlockOverrideDnsType: String
  BlockOverrideTtl: Int
  CreatorRequestId: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverCreateFirewallRuleInput {
  CreatorRequestId: String!
  FirewallRuleGroupId: String!
  FirewallDomainListId: String!
  Priority: Int!
  Action: String!
  BlockResponse: String
  BlockOverrideDomain: String
  BlockOverrideDnsType: String
  BlockOverrideTtl: Int
  Name: String!
}

type AwsRoute53ResolverCreateFirewallRuleGroupOutput {
  FirewallRuleGroup: AwsRoute53ResolverS1h
}

type AwsRoute53ResolverS1h {
  Id: String
  Arn: String
  Name: String
  RuleCount: Int
  Status: String
  StatusMessage: String
  OwnerId: String
  CreatorRequestId: String
  ShareStatus: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverCreateFirewallRuleGroupInput {
  CreatorRequestId: String!
  Name: String!
  Tags: [AwsRoute53ResolverS7Input]
}

type AwsRoute53ResolverCreateResolverEndpointOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

input AwsRoute53ResolverCreateResolverEndpointInput {
  CreatorRequestId: String!
  Name: String
  SecurityGroupIds: [String]!
  Direction: String!
  IpAddresses: [AwsRoute53ResolverCreateResolverEndpointIpAddressesInput]!
  Tags: [AwsRoute53ResolverS7Input]
}

input AwsRoute53ResolverCreateResolverEndpointIpAddressesInput {
  SubnetId: String!
  Ip: String
}

type AwsRoute53ResolverCreateResolverQueryLogConfigOutput {
  ResolverQueryLogConfig: AwsRoute53ResolverS1t
}

type AwsRoute53ResolverS1t {
  Id: String
  OwnerId: String
  Status: String
  ShareStatus: String
  AssociationCount: Int
  Arn: String
  Name: String
  DestinationArn: String
  CreatorRequestId: String
  CreationTime: String
}

input AwsRoute53ResolverCreateResolverQueryLogConfigInput {
  Name: String!
  DestinationArn: String!
  CreatorRequestId: String!
  Tags: [AwsRoute53ResolverS7Input]
}

type AwsRoute53ResolverCreateResolverRuleOutput {
  ResolverRule: AwsRoute53ResolverS23
}

type AwsRoute53ResolverS23 {
  Id: String
  CreatorRequestId: String
  Arn: String
  DomainName: String
  Status: String
  StatusMessage: String
  RuleType: String
  Name: String
  TargetIps: [AwsRoute53ResolverS1z]
  ResolverEndpointId: String
  OwnerId: String
  ShareStatus: String
  CreationTime: String
  ModificationTime: String
}

type AwsRoute53ResolverS1z {
  Ip: String!
  Port: Int
}

input AwsRoute53ResolverCreateResolverRuleInput {
  CreatorRequestId: String!
  Name: String
  RuleType: String!
  DomainName: String!
  TargetIps: [AwsRoute53ResolverS1zInput]
  ResolverEndpointId: String
  Tags: [AwsRoute53ResolverS7Input]
}

input AwsRoute53ResolverS1zInput {
  Ip: String!
  Port: Int
}

type AwsRoute53ResolverDeleteFirewallDomainListOutput {
  FirewallDomainList: AwsRoute53ResolverS14
}

input AwsRoute53ResolverDeleteFirewallDomainListInput {
  FirewallDomainListId: String!
}

type AwsRoute53ResolverDeleteFirewallRuleOutput {
  FirewallRule: AwsRoute53ResolverS1e
}

input AwsRoute53ResolverDeleteFirewallRuleInput {
  FirewallRuleGroupId: String!
  FirewallDomainListId: String!
}

type AwsRoute53ResolverDeleteFirewallRuleGroupOutput {
  FirewallRuleGroup: AwsRoute53ResolverS1h
}

input AwsRoute53ResolverDeleteFirewallRuleGroupInput {
  FirewallRuleGroupId: String!
}

type AwsRoute53ResolverDeleteResolverEndpointOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

input AwsRoute53ResolverDeleteResolverEndpointInput {
  ResolverEndpointId: String!
}

type AwsRoute53ResolverDeleteResolverQueryLogConfigOutput {
  ResolverQueryLogConfig: AwsRoute53ResolverS1t
}

input AwsRoute53ResolverDeleteResolverQueryLogConfigInput {
  ResolverQueryLogConfigId: String!
}

type AwsRoute53ResolverDeleteResolverRuleOutput {
  ResolverRule: AwsRoute53ResolverS23
}

input AwsRoute53ResolverDeleteResolverRuleInput {
  ResolverRuleId: String!
}

type AwsRoute53ResolverDisassociateFirewallRuleGroupOutput {
  FirewallRuleGroupAssociation: AwsRoute53ResolverSc
}

input AwsRoute53ResolverDisassociateFirewallRuleGroupInput {
  FirewallRuleGroupAssociationId: String!
}

type AwsRoute53ResolverDisassociateResolverEndpointIpAddressOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

input AwsRoute53ResolverDisassociateResolverEndpointIpAddressInput {
  ResolverEndpointId: String!
  IpAddress: AwsRoute53ResolverSjInput!
}

type AwsRoute53ResolverDisassociateResolverQueryLogConfigOutput {
  ResolverQueryLogConfigAssociation: AwsRoute53ResolverSu
}

input AwsRoute53ResolverDisassociateResolverQueryLogConfigInput {
  ResolverQueryLogConfigId: String!
  ResourceId: String!
}

type AwsRoute53ResolverDisassociateResolverRuleOutput {
  ResolverRuleAssociation: AwsRoute53ResolverS10
}

input AwsRoute53ResolverDisassociateResolverRuleInput {
  VPCId: String!
  ResolverRuleId: String!
}

type AwsRoute53ResolverGetFirewallConfigOutput {
  FirewallConfig: AwsRoute53ResolverS2r
}

type AwsRoute53ResolverS2r {
  Id: String
  ResourceId: String
  OwnerId: String
  FirewallFailOpen: String
}

input AwsRoute53ResolverGetFirewallConfigInput {
  ResourceId: String!
}

type AwsRoute53ResolverGetFirewallDomainListOutput {
  FirewallDomainList: AwsRoute53ResolverS14
}

input AwsRoute53ResolverGetFirewallDomainListInput {
  FirewallDomainListId: String!
}

type AwsRoute53ResolverGetFirewallRuleGroupOutput {
  FirewallRuleGroup: AwsRoute53ResolverS1h
}

input AwsRoute53ResolverGetFirewallRuleGroupInput {
  FirewallRuleGroupId: String!
}

type AwsRoute53ResolverGetFirewallRuleGroupAssociationOutput {
  FirewallRuleGroupAssociation: AwsRoute53ResolverSc
}

input AwsRoute53ResolverGetFirewallRuleGroupAssociationInput {
  FirewallRuleGroupAssociationId: String!
}

type AwsRoute53ResolverGetFirewallRuleGroupPolicyOutput {
  FirewallRuleGroupPolicy: String
}

input AwsRoute53ResolverGetFirewallRuleGroupPolicyInput {
  Arn: String!
}

type AwsRoute53ResolverGetResolverDnssecConfigOutput {
  ResolverDNSSECConfig: AwsRoute53ResolverS34
}

type AwsRoute53ResolverS34 {
  Id: String
  OwnerId: String
  ResourceId: String
  ValidationStatus: String
}

input AwsRoute53ResolverGetResolverDnssecConfigInput {
  ResourceId: String!
}

type AwsRoute53ResolverGetResolverEndpointOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

input AwsRoute53ResolverGetResolverEndpointInput {
  ResolverEndpointId: String!
}

type AwsRoute53ResolverGetResolverQueryLogConfigOutput {
  ResolverQueryLogConfig: AwsRoute53ResolverS1t
}

input AwsRoute53ResolverGetResolverQueryLogConfigInput {
  ResolverQueryLogConfigId: String!
}

type AwsRoute53ResolverGetResolverQueryLogConfigAssociationOutput {
  ResolverQueryLogConfigAssociation: AwsRoute53ResolverSu
}

input AwsRoute53ResolverGetResolverQueryLogConfigAssociationInput {
  ResolverQueryLogConfigAssociationId: String!
}

type AwsRoute53ResolverGetResolverQueryLogConfigPolicyOutput {
  ResolverQueryLogConfigPolicy: String
}

input AwsRoute53ResolverGetResolverQueryLogConfigPolicyInput {
  Arn: String!
}

type AwsRoute53ResolverGetResolverRuleOutput {
  ResolverRule: AwsRoute53ResolverS23
}

input AwsRoute53ResolverGetResolverRuleInput {
  ResolverRuleId: String!
}

type AwsRoute53ResolverGetResolverRuleAssociationOutput {
  ResolverRuleAssociation: AwsRoute53ResolverS10
}

input AwsRoute53ResolverGetResolverRuleAssociationInput {
  ResolverRuleAssociationId: String!
}

type AwsRoute53ResolverGetResolverRulePolicyOutput {
  ResolverRulePolicy: String
}

input AwsRoute53ResolverGetResolverRulePolicyInput {
  Arn: String!
}

type AwsRoute53ResolverImportFirewallDomainsOutput {
  Id: String
  Name: String
  Status: String
  StatusMessage: String
}

input AwsRoute53ResolverImportFirewallDomainsInput {
  FirewallDomainListId: String!
  Operation: String!
  DomainFileUrl: String!
}

type AwsRoute53ResolverListFirewallConfigsOutput {
  NextToken: String
  FirewallConfigs: [AwsRoute53ResolverS2r]
}

input AwsRoute53ResolverListFirewallConfigsInput {
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListFirewallDomainListsOutput {
  NextToken: String
  FirewallDomainLists: [AwsRoute53ResolverListFirewallDomainListsOutputFirewallDomainLists]
}

type AwsRoute53ResolverListFirewallDomainListsOutputFirewallDomainLists {
  Id: String
  Arn: String
  Name: String
  CreatorRequestId: String
  ManagedOwnerName: String
}

input AwsRoute53ResolverListFirewallDomainListsInput {
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListFirewallDomainsOutput {
  NextToken: String
  Domains: [String]
}

input AwsRoute53ResolverListFirewallDomainsInput {
  FirewallDomainListId: String!
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListFirewallRuleGroupAssociationsOutput {
  NextToken: String
  FirewallRuleGroupAssociations: [AwsRoute53ResolverSc]
}

input AwsRoute53ResolverListFirewallRuleGroupAssociationsInput {
  FirewallRuleGroupId: String
  VpcId: String
  Priority: Int
  Status: String
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListFirewallRuleGroupsOutput {
  NextToken: String
  FirewallRuleGroups: [AwsRoute53ResolverListFirewallRuleGroupsOutputFirewallRuleGroups]
}

type AwsRoute53ResolverListFirewallRuleGroupsOutputFirewallRuleGroups {
  Id: String
  Arn: String
  Name: String
  OwnerId: String
  CreatorRequestId: String
  ShareStatus: String
}

input AwsRoute53ResolverListFirewallRuleGroupsInput {
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListFirewallRulesOutput {
  NextToken: String
  FirewallRules: [AwsRoute53ResolverS1e]
}

input AwsRoute53ResolverListFirewallRulesInput {
  FirewallRuleGroupId: String!
  Priority: Int
  Action: String
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListResolverDnssecConfigsOutput {
  NextToken: String
  ResolverDnssecConfigs: [AwsRoute53ResolverS34]
}

input AwsRoute53ResolverListResolverDnssecConfigsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
}

input AwsRoute53ResolverS4gInput {
  Name: String
  Values: [String]
}

type AwsRoute53ResolverListResolverEndpointIpAddressesOutput {
  NextToken: String
  MaxResults: Int
  IpAddresses: [AwsRoute53ResolverListResolverEndpointIpAddressesOutputIpAddresses]
}

type AwsRoute53ResolverListResolverEndpointIpAddressesOutputIpAddresses {
  IpId: String
  SubnetId: String
  Ip: String
  Status: String
  StatusMessage: String
  CreationTime: String
  ModificationTime: String
}

input AwsRoute53ResolverListResolverEndpointIpAddressesInput {
  ResolverEndpointId: String!
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverListResolverEndpointsOutput {
  NextToken: String
  MaxResults: Int
  ResolverEndpoints: [AwsRoute53ResolverSn]
}

input AwsRoute53ResolverListResolverEndpointsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
}

type AwsRoute53ResolverListResolverQueryLogConfigAssociationsOutput {
  NextToken: String
  TotalCount: Int
  TotalFilteredCount: Int
  ResolverQueryLogConfigAssociations: [AwsRoute53ResolverSu]
}

input AwsRoute53ResolverListResolverQueryLogConfigAssociationsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
  SortBy: String
  SortOrder: String
}

type AwsRoute53ResolverListResolverQueryLogConfigsOutput {
  NextToken: String
  TotalCount: Int
  TotalFilteredCount: Int
  ResolverQueryLogConfigs: [AwsRoute53ResolverS1t]
}

input AwsRoute53ResolverListResolverQueryLogConfigsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
  SortBy: String
  SortOrder: String
}

type AwsRoute53ResolverListResolverRuleAssociationsOutput {
  NextToken: String
  MaxResults: Int
  ResolverRuleAssociations: [AwsRoute53ResolverS10]
}

input AwsRoute53ResolverListResolverRuleAssociationsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
}

type AwsRoute53ResolverListResolverRulesOutput {
  NextToken: String
  MaxResults: Int
  ResolverRules: [AwsRoute53ResolverS23]
}

input AwsRoute53ResolverListResolverRulesInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsRoute53ResolverS4gInput]
}

type AwsRoute53ResolverListTagsForResourceOutput {
  Tags: [AwsRoute53ResolverS7]
  NextToken: String
}

type AwsRoute53ResolverS7 {
  Key: String!
  Value: String!
}

input AwsRoute53ResolverListTagsForResourceInput {
  ResourceArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsRoute53ResolverPutFirewallRuleGroupPolicyOutput {
  ReturnValue: Boolean
}

input AwsRoute53ResolverPutFirewallRuleGroupPolicyInput {
  Arn: String!
  FirewallRuleGroupPolicy: String!
}

type AwsRoute53ResolverPutResolverQueryLogConfigPolicyOutput {
  ReturnValue: Boolean
}

input AwsRoute53ResolverPutResolverQueryLogConfigPolicyInput {
  Arn: String!
  ResolverQueryLogConfigPolicy: String!
}

type AwsRoute53ResolverPutResolverRulePolicyOutput {
  ReturnValue: Boolean
}

input AwsRoute53ResolverPutResolverRulePolicyInput {
  Arn: String!
  ResolverRulePolicy: String!
}

input AwsRoute53ResolverTagResourceInput {
  ResourceArn: String!
  Tags: [AwsRoute53ResolverS7Input]!
}

input AwsRoute53ResolverUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsRoute53ResolverUpdateFirewallConfigOutput {
  FirewallConfig: AwsRoute53ResolverS2r
}

input AwsRoute53ResolverUpdateFirewallConfigInput {
  ResourceId: String!
  FirewallFailOpen: String!
}

type AwsRoute53ResolverUpdateFirewallDomainsOutput {
  Id: String
  Name: String
  Status: String
  StatusMessage: String
}

input AwsRoute53ResolverUpdateFirewallDomainsInput {
  FirewallDomainListId: String!
  Operation: String!
  Domains: [String]!
}

type AwsRoute53ResolverUpdateFirewallRuleOutput {
  FirewallRule: AwsRoute53ResolverS1e
}

input AwsRoute53ResolverUpdateFirewallRuleInput {
  FirewallRuleGroupId: String!
  FirewallDomainListId: String!
  Priority: Int
  Action: String
  BlockResponse: String
  BlockOverrideDomain: String
  BlockOverrideDnsType: String
  BlockOverrideTtl: Int
  Name: String
}

type AwsRoute53ResolverUpdateFirewallRuleGroupAssociationOutput {
  FirewallRuleGroupAssociation: AwsRoute53ResolverSc
}

input AwsRoute53ResolverUpdateFirewallRuleGroupAssociationInput {
  FirewallRuleGroupAssociationId: String!
  Priority: Int
  MutationProtection: String
  Name: String
}

type AwsRoute53ResolverUpdateResolverDnssecConfigOutput {
  ResolverDNSSECConfig: AwsRoute53ResolverS34
}

input AwsRoute53ResolverUpdateResolverDnssecConfigInput {
  ResourceId: String!
  Validation: String!
}

type AwsRoute53ResolverUpdateResolverEndpointOutput {
  ResolverEndpoint: AwsRoute53ResolverSn
}

input AwsRoute53ResolverUpdateResolverEndpointInput {
  ResolverEndpointId: String!
  Name: String
}

type AwsRoute53ResolverUpdateResolverRuleOutput {
  ResolverRule: AwsRoute53ResolverS23
}

input AwsRoute53ResolverUpdateResolverRuleInput {
  ResolverRuleId: String!
  Config: AwsRoute53ResolverUpdateResolverRuleConfigInput!
}

input AwsRoute53ResolverUpdateResolverRuleConfigInput {
  Name: String
  TargetIps: [AwsRoute53ResolverS1zInput]
  ResolverEndpointId: String
}

"""Amazon Simple Storage Service (2006-03-01)"""
type AwsS3 {
  abortMultipartUpload(input: AwsS3AbortMultipartUploadInput!, config: AwsConfig): AwsS3AbortMultipartUploadOutput
  completeMultipartUpload(input: AwsS3CompleteMultipartUploadInput!, config: AwsConfig): AwsS3CompleteMultipartUploadOutput
  copyObject(input: AwsS3CopyObjectInput!, config: AwsConfig): AwsS3CopyObjectOutput
  createBucket(input: AwsS3CreateBucketInput!, config: AwsConfig): AwsS3CreateBucketOutput
  createMultipartUpload(input: AwsS3CreateMultipartUploadInput!, config: AwsConfig): AwsS3CreateMultipartUploadOutput
  deleteBucket(input: AwsS3DeleteBucketInput!, config: AwsConfig): JSON
  deleteBucketAnalyticsConfiguration(input: AwsS3DeleteBucketAnalyticsConfigurationInput!, config: AwsConfig): JSON
  deleteBucketCors(input: AwsS3DeleteBucketCorsInput!, config: AwsConfig): JSON
  deleteBucketEncryption(input: AwsS3DeleteBucketEncryptionInput!, config: AwsConfig): JSON
  deleteBucketIntelligentTieringConfiguration(input: AwsS3DeleteBucketIntelligentTieringConfigurationInput!, config: AwsConfig): JSON
  deleteBucketInventoryConfiguration(input: AwsS3DeleteBucketInventoryConfigurationInput!, config: AwsConfig): JSON
  deleteBucketLifecycle(input: AwsS3DeleteBucketLifecycleInput!, config: AwsConfig): JSON
  deleteBucketMetricsConfiguration(input: AwsS3DeleteBucketMetricsConfigurationInput!, config: AwsConfig): JSON
  deleteBucketOwnershipControls(input: AwsS3DeleteBucketOwnershipControlsInput!, config: AwsConfig): JSON
  deleteBucketPolicy(input: AwsS3DeleteBucketPolicyInput!, config: AwsConfig): JSON
  deleteBucketReplication(input: AwsS3DeleteBucketReplicationInput!, config: AwsConfig): JSON
  deleteBucketTagging(input: AwsS3DeleteBucketTaggingInput!, config: AwsConfig): JSON
  deleteBucketWebsite(input: AwsS3DeleteBucketWebsiteInput!, config: AwsConfig): JSON
  deleteObject(input: AwsS3DeleteObjectInput!, config: AwsConfig): AwsS3DeleteObjectOutput
  deleteObjectTagging(input: AwsS3DeleteObjectTaggingInput!, config: AwsConfig): AwsS3DeleteObjectTaggingOutput
  deleteObjects(input: AwsS3DeleteObjectsInput!, config: AwsConfig): AwsS3DeleteObjectsOutput
  deletePublicAccessBlock(input: AwsS3DeletePublicAccessBlockInput!, config: AwsConfig): JSON
  getBucketAccelerateConfiguration(input: AwsS3GetBucketAccelerateConfigurationInput!, config: AwsConfig): AwsS3GetBucketAccelerateConfigurationOutput
  getBucketAcl(input: AwsS3GetBucketAclInput!, config: AwsConfig): AwsS3GetBucketAclOutput
  getBucketAnalyticsConfiguration(input: AwsS3GetBucketAnalyticsConfigurationInput!, config: AwsConfig): AwsS3GetBucketAnalyticsConfigurationOutput
  getBucketCors(input: AwsS3GetBucketCorsInput!, config: AwsConfig): AwsS3GetBucketCorsOutput
  getBucketEncryption(input: AwsS3GetBucketEncryptionInput!, config: AwsConfig): AwsS3GetBucketEncryptionOutput
  getBucketIntelligentTieringConfiguration(input: AwsS3GetBucketIntelligentTieringConfigurationInput!, config: AwsConfig): AwsS3GetBucketIntelligentTieringConfigurationOutput
  getBucketInventoryConfiguration(input: AwsS3GetBucketInventoryConfigurationInput!, config: AwsConfig): AwsS3GetBucketInventoryConfigurationOutput
  getBucketLifecycle(input: AwsS3GetBucketLifecycleInput!, config: AwsConfig): AwsS3GetBucketLifecycleOutput
  getBucketLifecycleConfiguration(input: AwsS3GetBucketLifecycleConfigurationInput!, config: AwsConfig): AwsS3GetBucketLifecycleConfigurationOutput
  getBucketLocation(input: AwsS3GetBucketLocationInput!, config: AwsConfig): AwsS3GetBucketLocationOutput
  getBucketLogging(input: AwsS3GetBucketLoggingInput!, config: AwsConfig): AwsS3GetBucketLoggingOutput
  getBucketMetricsConfiguration(input: AwsS3GetBucketMetricsConfigurationInput!, config: AwsConfig): AwsS3GetBucketMetricsConfigurationOutput
  getBucketNotification(input: JSON, config: AwsConfig): JSON
  getBucketNotificationConfiguration(input: JSON, config: AwsConfig): JSON
  getBucketOwnershipControls(input: AwsS3GetBucketOwnershipControlsInput!, config: AwsConfig): AwsS3GetBucketOwnershipControlsOutput
  getBucketPolicy(input: AwsS3GetBucketPolicyInput!, config: AwsConfig): AwsS3GetBucketPolicyOutput
  getBucketPolicyStatus(input: AwsS3GetBucketPolicyStatusInput!, config: AwsConfig): AwsS3GetBucketPolicyStatusOutput
  getBucketReplication(input: AwsS3GetBucketReplicationInput!, config: AwsConfig): AwsS3GetBucketReplicationOutput
  getBucketRequestPayment(input: AwsS3GetBucketRequestPaymentInput!, config: AwsConfig): AwsS3GetBucketRequestPaymentOutput
  getBucketTagging(input: AwsS3GetBucketTaggingInput!, config: AwsConfig): AwsS3GetBucketTaggingOutput
  getBucketVersioning(input: AwsS3GetBucketVersioningInput!, config: AwsConfig): AwsS3GetBucketVersioningOutput
  getBucketWebsite(input: AwsS3GetBucketWebsiteInput!, config: AwsConfig): AwsS3GetBucketWebsiteOutput
  getObject(input: AwsS3GetObjectInput!, config: AwsConfig): AwsS3GetObjectOutput
  getObjectAcl(input: AwsS3GetObjectAclInput!, config: AwsConfig): AwsS3GetObjectAclOutput
  getObjectLegalHold(input: AwsS3GetObjectLegalHoldInput!, config: AwsConfig): AwsS3GetObjectLegalHoldOutput
  getObjectLockConfiguration(input: AwsS3GetObjectLockConfigurationInput!, config: AwsConfig): AwsS3GetObjectLockConfigurationOutput
  getObjectRetention(input: AwsS3GetObjectRetentionInput!, config: AwsConfig): AwsS3GetObjectRetentionOutput
  getObjectTagging(input: AwsS3GetObjectTaggingInput!, config: AwsConfig): AwsS3GetObjectTaggingOutput
  getObjectTorrent(input: AwsS3GetObjectTorrentInput!, config: AwsConfig): AwsS3GetObjectTorrentOutput
  getPublicAccessBlock(input: AwsS3GetPublicAccessBlockInput!, config: AwsConfig): AwsS3GetPublicAccessBlockOutput
  headBucket(input: AwsS3HeadBucketInput!, config: AwsConfig): JSON
  headObject(input: AwsS3HeadObjectInput!, config: AwsConfig): AwsS3HeadObjectOutput
  listBucketAnalyticsConfigurations(input: AwsS3ListBucketAnalyticsConfigurationsInput!, config: AwsConfig): AwsS3ListBucketAnalyticsConfigurationsOutput
  listBucketIntelligentTieringConfigurations(input: AwsS3ListBucketIntelligentTieringConfigurationsInput!, config: AwsConfig): AwsS3ListBucketIntelligentTieringConfigurationsOutput
  listBucketInventoryConfigurations(input: AwsS3ListBucketInventoryConfigurationsInput!, config: AwsConfig): AwsS3ListBucketInventoryConfigurationsOutput
  listBucketMetricsConfigurations(input: AwsS3ListBucketMetricsConfigurationsInput!, config: AwsConfig): AwsS3ListBucketMetricsConfigurationsOutput
  listBuckets(config: AwsConfig): AwsS3ListBucketsOutput
  listMultipartUploads(input: AwsS3ListMultipartUploadsInput!, config: AwsConfig): AwsS3ListMultipartUploadsOutput
  listObjectVersions(input: AwsS3ListObjectVersionsInput!, config: AwsConfig): AwsS3ListObjectVersionsOutput
  listObjects(input: AwsS3ListObjectsInput!, config: AwsConfig): AwsS3ListObjectsOutput
  listObjectsV2(input: AwsS3ListObjectsV2Input!, config: AwsConfig): AwsS3ListObjectsV2Output
  listParts(input: AwsS3ListPartsInput!, config: AwsConfig): AwsS3ListPartsOutput
  putBucketAccelerateConfiguration(input: AwsS3PutBucketAccelerateConfigurationInput!, config: AwsConfig): JSON
  putBucketAcl(input: AwsS3PutBucketAclInput!, config: AwsConfig): JSON
  putBucketAnalyticsConfiguration(input: AwsS3PutBucketAnalyticsConfigurationInput!, config: AwsConfig): JSON
  putBucketCors(input: AwsS3PutBucketCorsInput!, config: AwsConfig): JSON
  putBucketEncryption(input: AwsS3PutBucketEncryptionInput!, config: AwsConfig): JSON
  putBucketIntelligentTieringConfiguration(input: AwsS3PutBucketIntelligentTieringConfigurationInput!, config: AwsConfig): JSON
  putBucketInventoryConfiguration(input: AwsS3PutBucketInventoryConfigurationInput!, config: AwsConfig): JSON
  putBucketLifecycle(input: AwsS3PutBucketLifecycleInput!, config: AwsConfig): JSON
  putBucketLifecycleConfiguration(input: AwsS3PutBucketLifecycleConfigurationInput!, config: AwsConfig): JSON
  putBucketLogging(input: AwsS3PutBucketLoggingInput!, config: AwsConfig): JSON
  putBucketMetricsConfiguration(input: AwsS3PutBucketMetricsConfigurationInput!, config: AwsConfig): JSON
  putBucketNotification(input: AwsS3PutBucketNotificationInput!, config: AwsConfig): JSON
  putBucketNotificationConfiguration(input: AwsS3PutBucketNotificationConfigurationInput!, config: AwsConfig): JSON
  putBucketOwnershipControls(input: AwsS3PutBucketOwnershipControlsInput!, config: AwsConfig): JSON
  putBucketPolicy(input: AwsS3PutBucketPolicyInput!, config: AwsConfig): JSON
  putBucketReplication(input: AwsS3PutBucketReplicationInput!, config: AwsConfig): JSON
  putBucketRequestPayment(input: AwsS3PutBucketRequestPaymentInput!, config: AwsConfig): JSON
  putBucketTagging(input: AwsS3PutBucketTaggingInput!, config: AwsConfig): JSON
  putBucketVersioning(input: AwsS3PutBucketVersioningInput!, config: AwsConfig): JSON
  putBucketWebsite(input: AwsS3PutBucketWebsiteInput!, config: AwsConfig): JSON
  putObject(input: AwsS3PutObjectInput!, config: AwsConfig): AwsS3PutObjectOutput
  putObjectAcl(input: AwsS3PutObjectAclInput!, config: AwsConfig): AwsS3PutObjectAclOutput
  putObjectLegalHold(input: AwsS3PutObjectLegalHoldInput!, config: AwsConfig): AwsS3PutObjectLegalHoldOutput
  putObjectLockConfiguration(input: AwsS3PutObjectLockConfigurationInput!, config: AwsConfig): AwsS3PutObjectLockConfigurationOutput
  putObjectRetention(input: AwsS3PutObjectRetentionInput!, config: AwsConfig): AwsS3PutObjectRetentionOutput
  putObjectTagging(input: AwsS3PutObjectTaggingInput!, config: AwsConfig): AwsS3PutObjectTaggingOutput
  putPublicAccessBlock(input: AwsS3PutPublicAccessBlockInput!, config: AwsConfig): JSON
  restoreObject(input: AwsS3RestoreObjectInput!, config: AwsConfig): AwsS3RestoreObjectOutput
  selectObjectContent(input: AwsS3SelectObjectContentInput!, config: AwsConfig): AwsS3SelectObjectContentOutput
  uploadPart(input: AwsS3UploadPartInput!, config: AwsConfig): AwsS3UploadPartOutput
  uploadPartCopy(input: AwsS3UploadPartCopyInput!, config: AwsConfig): AwsS3UploadPartCopyOutput
  writeGetObjectResponse(input: AwsS3WriteGetObjectResponseInput!, config: AwsConfig): JSON
}

type AwsS3AbortMultipartUploadOutput {
  RequestCharged: String
}

input AwsS3AbortMultipartUploadInput {
  Bucket: String!
  Key: String!
  UploadId: String!
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3CompleteMultipartUploadOutput {
  Location: String
  Bucket: String
  Key: String
  Expiration: String
  ETag: String
  ServerSideEncryption: String
  VersionId: String
  SSEKMSKeyId: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

input AwsS3CompleteMultipartUploadInput {
  Bucket: String!
  Key: String!
  MultipartUpload: AwsS3CompleteMultipartUploadMultipartUploadInput
  UploadId: String!
  RequestPayer: String
  ExpectedBucketOwner: String
}

input AwsS3CompleteMultipartUploadMultipartUploadInput {
  Parts: [AwsS3CompleteMultipartUploadMultipartUploadPartsInput]
}

input AwsS3CompleteMultipartUploadMultipartUploadPartsInput {
  ETag: String
  PartNumber: Int
}

type AwsS3CopyObjectOutput {
  CopyObjectResult: AwsS3CopyObjectOutputCopyObjectResult
  Expiration: String
  CopySourceVersionId: String
  VersionId: String
  ServerSideEncryption: String
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

type AwsS3CopyObjectOutputCopyObjectResult {
  ETag: String
  LastModified: Date
}

input AwsS3CopyObjectInput {
  ACL: String
  Bucket: String!
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentType: String
  CopySource: String!
  CopySourceIfMatch: String
  CopySourceIfModifiedSince: Date
  CopySourceIfNoneMatch: String
  CopySourceIfUnmodifiedSince: Date
  Expires: Date
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWriteACP: String
  Key: String!
  Metadata: JSON
  MetadataDirective: String
  TaggingDirective: String
  ServerSideEncryption: String
  StorageClass: String
  WebsiteRedirectLocation: String
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  CopySourceSSECustomerAlgorithm: String
  CopySourceSSECustomerKey: JSON
  CopySourceSSECustomerKeyMD5: String
  RequestPayer: String
  Tagging: String
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  ObjectLockLegalHoldStatus: String
  ExpectedBucketOwner: String
  ExpectedSourceBucketOwner: String
}

type AwsS3CreateBucketOutput {
  Location: String
}

input AwsS3CreateBucketInput {
  ACL: String
  Bucket: String!
  CreateBucketConfiguration: AwsS3CreateBucketCreateBucketConfigurationInput
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWrite: String
  GrantWriteACP: String
  ObjectLockEnabledForBucket: Boolean
}

input AwsS3CreateBucketCreateBucketConfigurationInput {
  LocationConstraint: String
}

type AwsS3CreateMultipartUploadOutput {
  AbortDate: Date
  AbortRuleId: String
  Bucket: String
  Key: String
  UploadId: String
  ServerSideEncryption: String
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

input AwsS3CreateMultipartUploadInput {
  ACL: String
  Bucket: String!
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentType: String
  Expires: Date
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWriteACP: String
  Key: String!
  Metadata: JSON
  ServerSideEncryption: String
  StorageClass: String
  WebsiteRedirectLocation: String
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  RequestPayer: String
  Tagging: String
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  ObjectLockLegalHoldStatus: String
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketAnalyticsConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketCorsInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketEncryptionInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketIntelligentTieringConfigurationInput {
  Bucket: String!
  Id: String!
}

input AwsS3DeleteBucketInventoryConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketLifecycleInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketMetricsConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketOwnershipControlsInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketPolicyInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketReplicationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketTaggingInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3DeleteBucketWebsiteInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3DeleteObjectOutput {
  DeleteMarker: Boolean
  VersionId: String
  RequestCharged: String
}

input AwsS3DeleteObjectInput {
  Bucket: String!
  Key: String!
  MFA: String
  VersionId: String
  RequestPayer: String
  BypassGovernanceRetention: Boolean
  ExpectedBucketOwner: String
}

type AwsS3DeleteObjectTaggingOutput {
  VersionId: String
}

input AwsS3DeleteObjectTaggingInput {
  Bucket: String!
  Key: String!
  VersionId: String
  ExpectedBucketOwner: String
}

type AwsS3DeleteObjectsOutput {
  Deleted: [AwsS3DeleteObjectsOutputDeleted]
  RequestCharged: String
  Errors: [AwsS3DeleteObjectsOutputErrors]
}

type AwsS3DeleteObjectsOutputDeleted {
  Key: String
  VersionId: String
  DeleteMarker: Boolean
  DeleteMarkerVersionId: String
}

type AwsS3DeleteObjectsOutputErrors {
  Key: String
  VersionId: String
  Code: String
  Message: String
}

input AwsS3DeleteObjectsInput {
  Bucket: String!
  Delete: AwsS3DeleteObjectsDeleteInput!
  MFA: String
  RequestPayer: String
  BypassGovernanceRetention: Boolean
  ExpectedBucketOwner: String
}

input AwsS3DeleteObjectsDeleteInput {
  Objects: [AwsS3DeleteObjectsDeleteObjectsInput]!
  Quiet: Boolean
}

input AwsS3DeleteObjectsDeleteObjectsInput {
  Key: String!
  VersionId: String
}

input AwsS3DeletePublicAccessBlockInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketAccelerateConfigurationOutput {
  Status: String
}

input AwsS3GetBucketAccelerateConfigurationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketAclOutput {
  Owner: AwsS3S37
  Grants: [AwsS3S3a]
}

type AwsS3S37 {
  DisplayName: String
  ID: String
}

type AwsS3S3a {
  Grantee: AwsS3S3c
  Permission: String
}

type AwsS3S3c {
  DisplayName: String
  EmailAddress: String
  ID: String
  Type: String!
  URI: String
}

input AwsS3GetBucketAclInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketAnalyticsConfigurationOutput {
  AnalyticsConfiguration: AwsS3S3j
}

type AwsS3S3j {
  Id: String!
  Filter: AwsS3S3jFilter
  StorageClassAnalysis: AwsS3S3jStorageClassAnalysis!
}

type AwsS3S3jFilter {
  Prefix: String
  Tag: AwsS3S3m
  And: AwsS3S3jFilterAnd
}

type AwsS3S3m {
  Key: String!
  Value: String!
}

type AwsS3S3jFilterAnd {
  Prefix: String
  Tags: [AwsS3S3m]
}

type AwsS3S3jStorageClassAnalysis {
  DataExport: AwsS3S3jStorageClassAnalysisDataExport
}

type AwsS3S3jStorageClassAnalysisDataExport {
  OutputSchemaVersion: String!
  Destination: AwsS3S3jStorageClassAnalysisDataExportDestination!
}

type AwsS3S3jStorageClassAnalysisDataExportDestination {
  S3BucketDestination: AwsS3S3jStorageClassAnalysisDataExportDestinationS3BucketDestination!
}

type AwsS3S3jStorageClassAnalysisDataExportDestinationS3BucketDestination {
  Format: String!
  BucketAccountId: String
  Bucket: String!
  Prefix: String
}

input AwsS3GetBucketAnalyticsConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketCorsOutput {
  CORSRules: [AwsS3S3y]
}

type AwsS3S3y {
  ID: String
  AllowedHeaders: [String]
  AllowedMethods: [String]!
  AllowedOrigins: [String]!
  ExposeHeaders: [String]
  MaxAgeSeconds: Int
}

input AwsS3GetBucketCorsInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketEncryptionOutput {
  ServerSideEncryptionConfiguration: AwsS3S4b
}

type AwsS3S4b {
  Rules: [AwsS3S4bRules]!
}

type AwsS3S4bRules {
  ApplyServerSideEncryptionByDefault: AwsS3S4bRulesApplyServerSideEncryptionByDefault
  BucketKeyEnabled: Boolean
}

type AwsS3S4bRulesApplyServerSideEncryptionByDefault {
  SSEAlgorithm: String!
  KMSMasterKeyID: String
}

input AwsS3GetBucketEncryptionInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketIntelligentTieringConfigurationOutput {
  IntelligentTieringConfiguration: AwsS3S4h
}

type AwsS3S4h {
  Id: String!
  Filter: AwsS3S4hFilter
  Status: String!
  Tierings: [AwsS3S4hTierings]!
}

type AwsS3S4hFilter {
  Prefix: String
  Tag: AwsS3S3m
  And: AwsS3S4hFilterAnd
}

type AwsS3S4hFilterAnd {
  Prefix: String
  Tags: [AwsS3S3m]
}

type AwsS3S4hTierings {
  Days: Int!
  AccessTier: String!
}

input AwsS3GetBucketIntelligentTieringConfigurationInput {
  Bucket: String!
  Id: String!
}

type AwsS3GetBucketInventoryConfigurationOutput {
  InventoryConfiguration: AwsS3S4r
}

type AwsS3S4r {
  Destination: AwsS3S4rDestination!
  IsEnabled: Boolean!
  Filter: AwsS3S4rFilter
  Id: String!
  IncludedObjectVersions: String!
  OptionalFields: [String]
  Schedule: AwsS3S4rSchedule!
}

type AwsS3S4rDestination {
  S3BucketDestination: AwsS3S4rDestinationS3BucketDestination!
}

type AwsS3S4rDestinationS3BucketDestination {
  AccountId: String
  Bucket: String!
  Format: String!
  Prefix: String
  Encryption: AwsS3S4rDestinationS3BucketDestinationEncryption
}

type AwsS3S4rDestinationS3BucketDestinationEncryption {
  SSES3: JSON
  SSEKMS: AwsS3S4rDestinationS3BucketDestinationEncryptionSSEKMS
}

type AwsS3S4rDestinationS3BucketDestinationEncryptionSSEKMS {
  KeyId: String!
}

type AwsS3S4rFilter {
  Prefix: String!
}

type AwsS3S4rSchedule {
  Frequency: String!
}

input AwsS3GetBucketInventoryConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketLifecycleOutput {
  Rules: [AwsS3S57]
}

type AwsS3S57 {
  Expiration: AwsS3S59
  ID: String
  Prefix: String!
  Status: String!
  Transition: AwsS3S5e
  NoncurrentVersionTransition: AwsS3S5g
  NoncurrentVersionExpiration: AwsS3S5h
  AbortIncompleteMultipartUpload: AwsS3S5i
}

type AwsS3S59 {
  Date: Date
  Days: Int
  ExpiredObjectDeleteMarker: Boolean
}

type AwsS3S5e {
  Date: Date
  Days: Int
  StorageClass: String
}

type AwsS3S5g {
  NoncurrentDays: Int
  StorageClass: String
}

type AwsS3S5h {
  NoncurrentDays: Int
}

type AwsS3S5i {
  DaysAfterInitiation: Int
}

input AwsS3GetBucketLifecycleInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketLifecycleConfigurationOutput {
  Rules: [AwsS3S5m]
}

type AwsS3S5m {
  Expiration: AwsS3S59
  ID: String
  Prefix: String
  Filter: AwsS3S5mFilter
  Status: String!
  Transitions: [AwsS3S5e]
  NoncurrentVersionTransitions: [AwsS3S5g]
  NoncurrentVersionExpiration: AwsS3S5h
  AbortIncompleteMultipartUpload: AwsS3S5i
}

type AwsS3S5mFilter {
  Prefix: String
  Tag: AwsS3S3m
  And: AwsS3S5mFilterAnd
}

type AwsS3S5mFilterAnd {
  Prefix: String
  Tags: [AwsS3S3m]
}

input AwsS3GetBucketLifecycleConfigurationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketLocationOutput {
  LocationConstraint: String
}

input AwsS3GetBucketLocationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketLoggingOutput {
  LoggingEnabled: AwsS3S5w
}

type AwsS3S5w {
  TargetBucket: String!
  TargetGrants: [AwsS3S5wTargetGrants]
  TargetPrefix: String!
}

type AwsS3S5wTargetGrants {
  Grantee: AwsS3S3c
  Permission: String
}

input AwsS3GetBucketLoggingInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketMetricsConfigurationOutput {
  MetricsConfiguration: AwsS3S64
}

type AwsS3S64 {
  Id: String!
  Filter: AwsS3S64Filter
}

type AwsS3S64Filter {
  Prefix: String
  Tag: AwsS3S3m
  And: AwsS3S64FilterAnd
}

type AwsS3S64FilterAnd {
  Prefix: String
  Tags: [AwsS3S3m]
}

input AwsS3GetBucketMetricsConfigurationInput {
  Bucket: String!
  Id: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketOwnershipControlsOutput {
  OwnershipControls: AwsS3S6z
}

type AwsS3S6z {
  Rules: [AwsS3S6zRules]!
}

type AwsS3S6zRules {
  ObjectOwnership: String!
}

input AwsS3GetBucketOwnershipControlsInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketPolicyOutput {
  Policy: String
}

input AwsS3GetBucketPolicyInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketPolicyStatusOutput {
  PolicyStatus: AwsS3GetBucketPolicyStatusOutputPolicyStatus
}

type AwsS3GetBucketPolicyStatusOutputPolicyStatus {
  IsPublic: Boolean
}

input AwsS3GetBucketPolicyStatusInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketReplicationOutput {
  ReplicationConfiguration: AwsS3S7c
}

type AwsS3S7c {
  Role: String!
  Rules: [AwsS3S7cRules]!
}

type AwsS3S7cRules {
  ID: String
  Priority: Int
  Prefix: String
  Filter: AwsS3S7cRulesFilter
  Status: String!
  SourceSelectionCriteria: AwsS3S7cRulesSourceSelectionCriteria
  ExistingObjectReplication: AwsS3S7cRulesExistingObjectReplication
  Destination: AwsS3S7cRulesDestination!
  DeleteMarkerReplication: AwsS3S7cRulesDeleteMarkerReplication
}

type AwsS3S7cRulesFilter {
  Prefix: String
  Tag: AwsS3S3m
  And: AwsS3S7cRulesFilterAnd
}

type AwsS3S7cRulesFilterAnd {
  Prefix: String
  Tags: [AwsS3S3m]
}

type AwsS3S7cRulesSourceSelectionCriteria {
  SseKmsEncryptedObjects: AwsS3S7cRulesSourceSelectionCriteriaSseKmsEncryptedObjects
  ReplicaModifications: AwsS3S7cRulesSourceSelectionCriteriaReplicaModifications
}

type AwsS3S7cRulesSourceSelectionCriteriaSseKmsEncryptedObjects {
  Status: String!
}

type AwsS3S7cRulesSourceSelectionCriteriaReplicaModifications {
  Status: String!
}

type AwsS3S7cRulesExistingObjectReplication {
  Status: String!
}

type AwsS3S7cRulesDestination {
  Bucket: String!
  Account: String
  StorageClass: String
  AccessControlTranslation: AwsS3S7cRulesDestinationAccessControlTranslation
  EncryptionConfiguration: AwsS3S7cRulesDestinationEncryptionConfiguration
  ReplicationTime: AwsS3S7cRulesDestinationReplicationTime
  Metrics: AwsS3S7cRulesDestinationMetrics
}

type AwsS3S7cRulesDestinationAccessControlTranslation {
  Owner: String!
}

type AwsS3S7cRulesDestinationEncryptionConfiguration {
  ReplicaKmsKeyID: String
}

type AwsS3S7cRulesDestinationReplicationTime {
  Status: String!
  Time: AwsS3S7y!
}

type AwsS3S7y {
  Minutes: Int
}

type AwsS3S7cRulesDestinationMetrics {
  Status: String!
  EventThreshold: AwsS3S7y
}

type AwsS3S7cRulesDeleteMarkerReplication {
  Status: String
}

input AwsS3GetBucketReplicationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketRequestPaymentOutput {
  Payer: String
}

input AwsS3GetBucketRequestPaymentInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketTaggingOutput {
  TagSet: [AwsS3S3m]!
}

input AwsS3GetBucketTaggingInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketVersioningOutput {
  Status: String
  MFADelete: String
}

input AwsS3GetBucketVersioningInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetBucketWebsiteOutput {
  RedirectAllRequestsTo: AwsS3S8f
  IndexDocument: AwsS3S8i
  ErrorDocument: AwsS3S8k
  RoutingRules: [AwsS3S8l]
}

type AwsS3S8f {
  HostName: String!
  Protocol: String
}

type AwsS3S8i {
  Suffix: String!
}

type AwsS3S8k {
  Key: String!
}

type AwsS3S8l {
  Condition: AwsS3S8lCondition
  Redirect: AwsS3S8lRedirect!
}

type AwsS3S8lCondition {
  HttpErrorCodeReturnedEquals: String
  KeyPrefixEquals: String
}

type AwsS3S8lRedirect {
  HostName: String
  HttpRedirectCode: String
  Protocol: String
  ReplaceKeyPrefixWith: String
  ReplaceKeyWith: String
}

input AwsS3GetBucketWebsiteInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetObjectOutput {
  Body: JSON
  DeleteMarker: Boolean
  AcceptRanges: String
  Expiration: String
  Restore: String
  LastModified: Date
  ContentLength: JSON
  ETag: String
  MissingMeta: Int
  VersionId: String
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentRange: String
  ContentType: String
  Expires: Date
  WebsiteRedirectLocation: String
  ServerSideEncryption: String
  Metadata: JSON
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  BucketKeyEnabled: Boolean
  StorageClass: String
  RequestCharged: String
  ReplicationStatus: String
  PartsCount: Int
  TagCount: Int
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  ObjectLockLegalHoldStatus: String
}

input AwsS3GetObjectInput {
  Bucket: String!
  IfMatch: String
  IfModifiedSince: Date
  IfNoneMatch: String
  IfUnmodifiedSince: Date
  Key: String!
  Range: String
  ResponseCacheControl: String
  ResponseContentDisposition: String
  ResponseContentEncoding: String
  ResponseContentLanguage: String
  ResponseContentType: String
  ResponseExpires: Date
  VersionId: String
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  RequestPayer: String
  PartNumber: Int
  ExpectedBucketOwner: String
}

type AwsS3GetObjectAclOutput {
  Owner: AwsS3S37
  Grants: [AwsS3S3a]
  RequestCharged: String
}

input AwsS3GetObjectAclInput {
  Bucket: String!
  Key: String!
  VersionId: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3GetObjectLegalHoldOutput {
  LegalHold: AwsS3S9k
}

type AwsS3S9k {
  Status: String
}

input AwsS3GetObjectLegalHoldInput {
  Bucket: String!
  Key: String!
  VersionId: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3GetObjectLockConfigurationOutput {
  ObjectLockConfiguration: AwsS3S9n
}

type AwsS3S9n {
  ObjectLockEnabled: String
  Rule: AwsS3S9nRule
}

type AwsS3S9nRule {
  DefaultRetention: AwsS3S9nRuleDefaultRetention
}

type AwsS3S9nRuleDefaultRetention {
  Mode: String
  Days: Int
  Years: Int
}

input AwsS3GetObjectLockConfigurationInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3GetObjectRetentionOutput {
  Retention: AwsS3S9v
}

type AwsS3S9v {
  Mode: String
  RetainUntilDate: Date
}

input AwsS3GetObjectRetentionInput {
  Bucket: String!
  Key: String!
  VersionId: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3GetObjectTaggingOutput {
  VersionId: String
  TagSet: [AwsS3S3m]!
}

input AwsS3GetObjectTaggingInput {
  Bucket: String!
  Key: String!
  VersionId: String
  ExpectedBucketOwner: String
  RequestPayer: String
}

type AwsS3GetObjectTorrentOutput {
  Body: JSON
  RequestCharged: String
}

input AwsS3GetObjectTorrentInput {
  Bucket: String!
  Key: String!
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3GetPublicAccessBlockOutput {
  PublicAccessBlockConfiguration: AwsS3Sa2
}

type AwsS3Sa2 {
  BlockPublicAcls: Boolean
  IgnorePublicAcls: Boolean
  BlockPublicPolicy: Boolean
  RestrictPublicBuckets: Boolean
}

input AwsS3GetPublicAccessBlockInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

input AwsS3HeadBucketInput {
  Bucket: String!
  ExpectedBucketOwner: String
}

type AwsS3HeadObjectOutput {
  DeleteMarker: Boolean
  AcceptRanges: String
  Expiration: String
  Restore: String
  ArchiveStatus: String
  LastModified: Date
  ContentLength: JSON
  ETag: String
  MissingMeta: Int
  VersionId: String
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentType: String
  Expires: Date
  WebsiteRedirectLocation: String
  ServerSideEncryption: String
  Metadata: JSON
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  BucketKeyEnabled: Boolean
  StorageClass: String
  RequestCharged: String
  ReplicationStatus: String
  PartsCount: Int
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  ObjectLockLegalHoldStatus: String
}

input AwsS3HeadObjectInput {
  Bucket: String!
  IfMatch: String
  IfModifiedSince: Date
  IfNoneMatch: String
  IfUnmodifiedSince: Date
  Key: String!
  Range: String
  VersionId: String
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  RequestPayer: String
  PartNumber: Int
  ExpectedBucketOwner: String
}

type AwsS3ListBucketAnalyticsConfigurationsOutput {
  IsTruncated: Boolean
  ContinuationToken: String
  NextContinuationToken: String
  AnalyticsConfigurationList: [AwsS3S3j]
}

input AwsS3ListBucketAnalyticsConfigurationsInput {
  Bucket: String!
  ContinuationToken: String
  ExpectedBucketOwner: String
}

type AwsS3ListBucketIntelligentTieringConfigurationsOutput {
  IsTruncated: Boolean
  ContinuationToken: String
  NextContinuationToken: String
  IntelligentTieringConfigurationList: [AwsS3S4h]
}

input AwsS3ListBucketIntelligentTieringConfigurationsInput {
  Bucket: String!
  ContinuationToken: String
}

type AwsS3ListBucketInventoryConfigurationsOutput {
  ContinuationToken: String
  InventoryConfigurationList: [AwsS3S4r]
  IsTruncated: Boolean
  NextContinuationToken: String
}

input AwsS3ListBucketInventoryConfigurationsInput {
  Bucket: String!
  ContinuationToken: String
  ExpectedBucketOwner: String
}

type AwsS3ListBucketMetricsConfigurationsOutput {
  IsTruncated: Boolean
  ContinuationToken: String
  NextContinuationToken: String
  MetricsConfigurationList: [AwsS3S64]
}

input AwsS3ListBucketMetricsConfigurationsInput {
  Bucket: String!
  ContinuationToken: String
  ExpectedBucketOwner: String
}

type AwsS3ListBucketsOutput {
  Buckets: [AwsS3ListBucketsOutputBuckets]
  Owner: AwsS3S37
}

type AwsS3ListBucketsOutputBuckets {
  Name: String
  CreationDate: Date
}

type AwsS3ListMultipartUploadsOutput {
  Bucket: String
  KeyMarker: String
  UploadIdMarker: String
  NextKeyMarker: String
  Prefix: String
  Delimiter: String
  NextUploadIdMarker: String
  MaxUploads: Int
  IsTruncated: Boolean
  Uploads: [AwsS3ListMultipartUploadsOutputUploads]
  CommonPrefixes: [AwsS3Sb4]
  EncodingType: String
}

type AwsS3ListMultipartUploadsOutputUploads {
  UploadId: String
  Key: String
  Initiated: Date
  StorageClass: String
  Owner: AwsS3S37
  Initiator: AwsS3Sb3
}

type AwsS3Sb3 {
  ID: String
  DisplayName: String
}

type AwsS3Sb4 {
  Prefix: String
}

input AwsS3ListMultipartUploadsInput {
  Bucket: String!
  Delimiter: String
  EncodingType: String
  KeyMarker: String
  MaxUploads: Int
  Prefix: String
  UploadIdMarker: String
  ExpectedBucketOwner: String
}

type AwsS3ListObjectVersionsOutput {
  IsTruncated: Boolean
  KeyMarker: String
  VersionIdMarker: String
  NextKeyMarker: String
  NextVersionIdMarker: String
  Versions: [AwsS3ListObjectVersionsOutputVersions]
  DeleteMarkers: [AwsS3ListObjectVersionsOutputDeleteMarkers]
  Name: String
  Prefix: String
  Delimiter: String
  MaxKeys: Int
  CommonPrefixes: [AwsS3Sb4]
  EncodingType: String
}

type AwsS3ListObjectVersionsOutputVersions {
  ETag: String
  Size: Int
  StorageClass: String
  Key: String
  VersionId: String
  IsLatest: Boolean
  LastModified: Date
  Owner: AwsS3S37
}

type AwsS3ListObjectVersionsOutputDeleteMarkers {
  Owner: AwsS3S37
  Key: String
  VersionId: String
  IsLatest: Boolean
  LastModified: Date
}

input AwsS3ListObjectVersionsInput {
  Bucket: String!
  Delimiter: String
  EncodingType: String
  KeyMarker: String
  MaxKeys: Int
  Prefix: String
  VersionIdMarker: String
  ExpectedBucketOwner: String
}

type AwsS3ListObjectsOutput {
  IsTruncated: Boolean
  Marker: String
  NextMarker: String
  Contents: [AwsS3Sbm]
  Name: String
  Prefix: String
  Delimiter: String
  MaxKeys: Int
  CommonPrefixes: [AwsS3Sb4]
  EncodingType: String
}

type AwsS3Sbm {
  Key: String
  LastModified: Date
  ETag: String
  Size: Int
  StorageClass: String
  Owner: AwsS3S37
}

input AwsS3ListObjectsInput {
  Bucket: String!
  Delimiter: String
  EncodingType: String
  Marker: String
  MaxKeys: Int
  Prefix: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3ListObjectsV2Output {
  IsTruncated: Boolean
  Contents: [AwsS3Sbm]
  Name: String
  Prefix: String
  Delimiter: String
  MaxKeys: Int
  CommonPrefixes: [AwsS3Sb4]
  EncodingType: String
  KeyCount: Int
  ContinuationToken: String
  NextContinuationToken: String
  StartAfter: String
}

input AwsS3ListObjectsV2Input {
  Bucket: String!
  Delimiter: String
  EncodingType: String
  MaxKeys: Int
  Prefix: String
  ContinuationToken: String
  FetchOwner: Boolean
  StartAfter: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3ListPartsOutput {
  AbortDate: Date
  AbortRuleId: String
  Bucket: String
  Key: String
  UploadId: String
  PartNumberMarker: Int
  NextPartNumberMarker: Int
  MaxParts: Int
  IsTruncated: Boolean
  Parts: [AwsS3ListPartsOutputParts]
  Initiator: AwsS3Sb3
  Owner: AwsS3S37
  StorageClass: String
  RequestCharged: String
}

type AwsS3ListPartsOutputParts {
  PartNumber: Int
  LastModified: Date
  ETag: String
  Size: Int
}

input AwsS3ListPartsInput {
  Bucket: String!
  Key: String!
  MaxParts: Int
  PartNumberMarker: Int
  UploadId: String!
  RequestPayer: String
  ExpectedBucketOwner: String
}

input AwsS3PutBucketAccelerateConfigurationInput {
  Bucket: String!
  AccelerateConfiguration: AwsS3PutBucketAccelerateConfigurationAccelerateConfigurationInput!
  ExpectedBucketOwner: String
}

input AwsS3PutBucketAccelerateConfigurationAccelerateConfigurationInput {
  Status: String
}

input AwsS3PutBucketAclInput {
  ACL: String
  AccessControlPolicy: AwsS3Sc4Input
  Bucket: String!
  ContentMD5: String
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWrite: String
  GrantWriteACP: String
  ExpectedBucketOwner: String
}

input AwsS3Sc4Input {
  Grants: [AwsS3S3aInput]
  Owner: AwsS3S37Input
}

input AwsS3S3aInput {
  Grantee: AwsS3S3cInput
  Permission: String
}

input AwsS3S3cInput {
  DisplayName: String
  EmailAddress: String
  ID: String
  Type: String!
  URI: String
}

input AwsS3S37Input {
  DisplayName: String
  ID: String
}

input AwsS3PutBucketAnalyticsConfigurationInput {
  Bucket: String!
  Id: String!
  AnalyticsConfiguration: AwsS3S3jInput!
  ExpectedBucketOwner: String
}

input AwsS3S3jInput {
  Id: String!
  Filter: AwsS3S3jFilterInput
  StorageClassAnalysis: AwsS3S3jStorageClassAnalysisInput!
}

input AwsS3S3jFilterInput {
  Prefix: String
  Tag: AwsS3S3mInput
  And: AwsS3S3jFilterAndInput
}

input AwsS3S3mInput {
  Key: String!
  Value: String!
}

input AwsS3S3jFilterAndInput {
  Prefix: String
  Tags: [AwsS3S3mInput]
}

input AwsS3S3jStorageClassAnalysisInput {
  DataExport: AwsS3S3jStorageClassAnalysisDataExportInput
}

input AwsS3S3jStorageClassAnalysisDataExportInput {
  OutputSchemaVersion: String!
  Destination: AwsS3S3jStorageClassAnalysisDataExportDestinationInput!
}

input AwsS3S3jStorageClassAnalysisDataExportDestinationInput {
  S3BucketDestination: AwsS3S3jStorageClassAnalysisDataExportDestinationS3BucketDestinationInput!
}

input AwsS3S3jStorageClassAnalysisDataExportDestinationS3BucketDestinationInput {
  Format: String!
  BucketAccountId: String
  Bucket: String!
  Prefix: String
}

input AwsS3PutBucketCorsInput {
  Bucket: String!
  CORSConfiguration: AwsS3PutBucketCorsCORSConfigurationInput!
  ContentMD5: String
  ExpectedBucketOwner: String
}

input AwsS3PutBucketCorsCORSConfigurationInput {
  CORSRules: [AwsS3S3yInput]!
}

input AwsS3S3yInput {
  ID: String
  AllowedHeaders: [String]
  AllowedMethods: [String]!
  AllowedOrigins: [String]!
  ExposeHeaders: [String]
  MaxAgeSeconds: Int
}

input AwsS3PutBucketEncryptionInput {
  Bucket: String!
  ContentMD5: String
  ServerSideEncryptionConfiguration: AwsS3S4bInput!
  ExpectedBucketOwner: String
}

input AwsS3S4bInput {
  Rules: [AwsS3S4bRulesInput]!
}

input AwsS3S4bRulesInput {
  ApplyServerSideEncryptionByDefault: AwsS3S4bRulesApplyServerSideEncryptionByDefaultInput
  BucketKeyEnabled: Boolean
}

input AwsS3S4bRulesApplyServerSideEncryptionByDefaultInput {
  SSEAlgorithm: String!
  KMSMasterKeyID: String
}

input AwsS3PutBucketIntelligentTieringConfigurationInput {
  Bucket: String!
  Id: String!
  IntelligentTieringConfiguration: AwsS3S4hInput!
}

input AwsS3S4hInput {
  Id: String!
  Filter: AwsS3S4hFilterInput
  Status: String!
  Tierings: [AwsS3S4hTieringsInput]!
}

input AwsS3S4hFilterInput {
  Prefix: String
  Tag: AwsS3S3mInput
  And: AwsS3S4hFilterAndInput
}

input AwsS3S4hFilterAndInput {
  Prefix: String
  Tags: [AwsS3S3mInput]
}

input AwsS3S4hTieringsInput {
  Days: Int!
  AccessTier: String!
}

input AwsS3PutBucketInventoryConfigurationInput {
  Bucket: String!
  Id: String!
  InventoryConfiguration: AwsS3S4rInput!
  ExpectedBucketOwner: String
}

input AwsS3S4rInput {
  Destination: AwsS3S4rDestinationInput!
  IsEnabled: Boolean!
  Filter: AwsS3S4rFilterInput
  Id: String!
  IncludedObjectVersions: String!
  OptionalFields: [String]
  Schedule: AwsS3S4rScheduleInput!
}

input AwsS3S4rDestinationInput {
  S3BucketDestination: AwsS3S4rDestinationS3BucketDestinationInput!
}

input AwsS3S4rDestinationS3BucketDestinationInput {
  AccountId: String
  Bucket: String!
  Format: String!
  Prefix: String
  Encryption: AwsS3S4rDestinationS3BucketDestinationEncryptionInput
}

input AwsS3S4rDestinationS3BucketDestinationEncryptionInput {
  SSES3: JSON
  SSEKMS: AwsS3S4rDestinationS3BucketDestinationEncryptionSSEKMSInput
}

input AwsS3S4rDestinationS3BucketDestinationEncryptionSSEKMSInput {
  KeyId: String!
}

input AwsS3S4rFilterInput {
  Prefix: String!
}

input AwsS3S4rScheduleInput {
  Frequency: String!
}

input AwsS3PutBucketLifecycleInput {
  Bucket: String!
  ContentMD5: String
  LifecycleConfiguration: AwsS3PutBucketLifecycleLifecycleConfigurationInput
  ExpectedBucketOwner: String
}

input AwsS3PutBucketLifecycleLifecycleConfigurationInput {
  Rules: [AwsS3S57Input]!
}

input AwsS3S57Input {
  Expiration: AwsS3S59Input
  ID: String
  Prefix: String!
  Status: String!
  Transition: AwsS3S5eInput
  NoncurrentVersionTransition: AwsS3S5gInput
  NoncurrentVersionExpiration: AwsS3S5hInput
  AbortIncompleteMultipartUpload: AwsS3S5iInput
}

input AwsS3S59Input {
  Date: Date
  Days: Int
  ExpiredObjectDeleteMarker: Boolean
}

input AwsS3S5eInput {
  Date: Date
  Days: Int
  StorageClass: String
}

input AwsS3S5gInput {
  NoncurrentDays: Int
  StorageClass: String
}

input AwsS3S5hInput {
  NoncurrentDays: Int
}

input AwsS3S5iInput {
  DaysAfterInitiation: Int
}

input AwsS3PutBucketLifecycleConfigurationInput {
  Bucket: String!
  LifecycleConfiguration: AwsS3PutBucketLifecycleConfigurationLifecycleConfigurationInput
  ExpectedBucketOwner: String
}

input AwsS3PutBucketLifecycleConfigurationLifecycleConfigurationInput {
  Rules: [AwsS3S5mInput]!
}

input AwsS3S5mInput {
  Expiration: AwsS3S59Input
  ID: String
  Prefix: String
  Filter: AwsS3S5mFilterInput
  Status: String!
  Transitions: [AwsS3S5eInput]
  NoncurrentVersionTransitions: [AwsS3S5gInput]
  NoncurrentVersionExpiration: AwsS3S5hInput
  AbortIncompleteMultipartUpload: AwsS3S5iInput
}

input AwsS3S5mFilterInput {
  Prefix: String
  Tag: AwsS3S3mInput
  And: AwsS3S5mFilterAndInput
}

input AwsS3S5mFilterAndInput {
  Prefix: String
  Tags: [AwsS3S3mInput]
}

input AwsS3PutBucketLoggingInput {
  Bucket: String!
  BucketLoggingStatus: AwsS3PutBucketLoggingBucketLoggingStatusInput!
  ContentMD5: String
  ExpectedBucketOwner: String
}

input AwsS3PutBucketLoggingBucketLoggingStatusInput {
  LoggingEnabled: AwsS3S5wInput
}

input AwsS3S5wInput {
  TargetBucket: String!
  TargetGrants: [AwsS3S5wTargetGrantsInput]
  TargetPrefix: String!
}

input AwsS3S5wTargetGrantsInput {
  Grantee: AwsS3S3cInput
  Permission: String
}

input AwsS3PutBucketMetricsConfigurationInput {
  Bucket: String!
  Id: String!
  MetricsConfiguration: AwsS3S64Input!
  ExpectedBucketOwner: String
}

input AwsS3S64Input {
  Id: String!
  Filter: AwsS3S64FilterInput
}

input AwsS3S64FilterInput {
  Prefix: String
  Tag: AwsS3S3mInput
  And: AwsS3S64FilterAndInput
}

input AwsS3S64FilterAndInput {
  Prefix: String
  Tags: [AwsS3S3mInput]
}

input AwsS3PutBucketNotificationInput {
  Bucket: String!
  ContentMD5: String
  NotificationConfiguration: AwsS3S68Input!
  ExpectedBucketOwner: String
}

input AwsS3S68Input {
  TopicConfiguration: AwsS3S68TopicConfigurationInput
  QueueConfiguration: AwsS3S68QueueConfigurationInput
  CloudFunctionConfiguration: AwsS3S68CloudFunctionConfigurationInput
}

input AwsS3S68TopicConfigurationInput {
  Id: String
  Events: [String]
  Event: String
  Topic: String
}

input AwsS3S68QueueConfigurationInput {
  Id: String
  Event: String
  Events: [String]
  Queue: String
}

input AwsS3S68CloudFunctionConfigurationInput {
  Id: String
  Event: String
  Events: [String]
  CloudFunction: String
  InvocationRole: String
}

input AwsS3PutBucketNotificationConfigurationInput {
  Bucket: String!
  NotificationConfiguration: AwsS3S6jInput!
  ExpectedBucketOwner: String
}

input AwsS3S6jInput {
  TopicConfigurations: [AwsS3S6jTopicConfigurationsInput]
  QueueConfigurations: [AwsS3S6jQueueConfigurationsInput]
  LambdaFunctionConfigurations: [AwsS3S6jLambdaFunctionConfigurationsInput]
}

input AwsS3S6jTopicConfigurationsInput {
  Id: String
  TopicArn: String!
  Events: [String]!
  Filter: AwsS3S6mInput
}

input AwsS3S6mInput {
  Key: AwsS3S6mKeyInput
}

input AwsS3S6mKeyInput {
  FilterRules: [AwsS3S6mKeyFilterRulesInput]
}

input AwsS3S6mKeyFilterRulesInput {
  Name: String
  Value: String
}

input AwsS3S6jQueueConfigurationsInput {
  Id: String
  QueueArn: String!
  Events: [String]!
  Filter: AwsS3S6mInput
}

input AwsS3S6jLambdaFunctionConfigurationsInput {
  Id: String
  LambdaFunctionArn: String!
  Events: [String]!
  Filter: AwsS3S6mInput
}

input AwsS3PutBucketOwnershipControlsInput {
  Bucket: String!
  ContentMD5: String
  ExpectedBucketOwner: String
  OwnershipControls: AwsS3S6zInput!
}

input AwsS3S6zInput {
  Rules: [AwsS3S6zRulesInput]!
}

input AwsS3S6zRulesInput {
  ObjectOwnership: String!
}

input AwsS3PutBucketPolicyInput {
  Bucket: String!
  ContentMD5: String
  ConfirmRemoveSelfBucketAccess: Boolean
  Policy: String!
  ExpectedBucketOwner: String
}

input AwsS3PutBucketReplicationInput {
  Bucket: String!
  ContentMD5: String
  ReplicationConfiguration: AwsS3S7cInput!
  Token: String
  ExpectedBucketOwner: String
}

input AwsS3S7cInput {
  Role: String!
  Rules: [AwsS3S7cRulesInput]!
}

input AwsS3S7cRulesInput {
  ID: String
  Priority: Int
  Prefix: String
  Filter: AwsS3S7cRulesFilterInput
  Status: String!
  SourceSelectionCriteria: AwsS3S7cRulesSourceSelectionCriteriaInput
  ExistingObjectReplication: AwsS3S7cRulesExistingObjectReplicationInput
  Destination: AwsS3S7cRulesDestinationInput!
  DeleteMarkerReplication: AwsS3S7cRulesDeleteMarkerReplicationInput
}

input AwsS3S7cRulesFilterInput {
  Prefix: String
  Tag: AwsS3S3mInput
  And: AwsS3S7cRulesFilterAndInput
}

input AwsS3S7cRulesFilterAndInput {
  Prefix: String
  Tags: [AwsS3S3mInput]
}

input AwsS3S7cRulesSourceSelectionCriteriaInput {
  SseKmsEncryptedObjects: AwsS3S7cRulesSourceSelectionCriteriaSseKmsEncryptedObjectsInput
  ReplicaModifications: AwsS3S7cRulesSourceSelectionCriteriaReplicaModificationsInput
}

input AwsS3S7cRulesSourceSelectionCriteriaSseKmsEncryptedObjectsInput {
  Status: String!
}

input AwsS3S7cRulesSourceSelectionCriteriaReplicaModificationsInput {
  Status: String!
}

input AwsS3S7cRulesExistingObjectReplicationInput {
  Status: String!
}

input AwsS3S7cRulesDestinationInput {
  Bucket: String!
  Account: String
  StorageClass: String
  AccessControlTranslation: AwsS3S7cRulesDestinationAccessControlTranslationInput
  EncryptionConfiguration: AwsS3S7cRulesDestinationEncryptionConfigurationInput
  ReplicationTime: AwsS3S7cRulesDestinationReplicationTimeInput
  Metrics: AwsS3S7cRulesDestinationMetricsInput
}

input AwsS3S7cRulesDestinationAccessControlTranslationInput {
  Owner: String!
}

input AwsS3S7cRulesDestinationEncryptionConfigurationInput {
  ReplicaKmsKeyID: String
}

input AwsS3S7cRulesDestinationReplicationTimeInput {
  Status: String!
  Time: AwsS3S7yInput!
}

input AwsS3S7yInput {
  Minutes: Int
}

input AwsS3S7cRulesDestinationMetricsInput {
  Status: String!
  EventThreshold: AwsS3S7yInput
}

input AwsS3S7cRulesDeleteMarkerReplicationInput {
  Status: String
}

input AwsS3PutBucketRequestPaymentInput {
  Bucket: String!
  ContentMD5: String
  RequestPaymentConfiguration: AwsS3PutBucketRequestPaymentRequestPaymentConfigurationInput!
  ExpectedBucketOwner: String
}

input AwsS3PutBucketRequestPaymentRequestPaymentConfigurationInput {
  Payer: String!
}

input AwsS3PutBucketTaggingInput {
  Bucket: String!
  ContentMD5: String
  Tagging: AwsS3SctInput!
  ExpectedBucketOwner: String
}

input AwsS3SctInput {
  TagSet: [AwsS3S3mInput]!
}

input AwsS3PutBucketVersioningInput {
  Bucket: String!
  ContentMD5: String
  MFA: String
  VersioningConfiguration: AwsS3PutBucketVersioningVersioningConfigurationInput!
  ExpectedBucketOwner: String
}

input AwsS3PutBucketVersioningVersioningConfigurationInput {
  MFADelete: String
  Status: String
}

input AwsS3PutBucketWebsiteInput {
  Bucket: String!
  ContentMD5: String
  WebsiteConfiguration: AwsS3PutBucketWebsiteWebsiteConfigurationInput!
  ExpectedBucketOwner: String
}

input AwsS3PutBucketWebsiteWebsiteConfigurationInput {
  ErrorDocument: AwsS3S8kInput
  IndexDocument: AwsS3S8iInput
  RedirectAllRequestsTo: AwsS3S8fInput
  RoutingRules: [AwsS3S8lInput]
}

input AwsS3S8kInput {
  Key: String!
}

input AwsS3S8iInput {
  Suffix: String!
}

input AwsS3S8fInput {
  HostName: String!
  Protocol: String
}

input AwsS3S8lInput {
  Condition: AwsS3S8lConditionInput
  Redirect: AwsS3S8lRedirectInput!
}

input AwsS3S8lConditionInput {
  HttpErrorCodeReturnedEquals: String
  KeyPrefixEquals: String
}

input AwsS3S8lRedirectInput {
  HostName: String
  HttpRedirectCode: String
  Protocol: String
  ReplaceKeyPrefixWith: String
  ReplaceKeyWith: String
}

type AwsS3PutObjectOutput {
  Expiration: String
  ETag: String
  ServerSideEncryption: String
  VersionId: String
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

input AwsS3PutObjectInput {
  ACL: String
  Body: JSON
  Bucket: String!
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentLength: JSON
  ContentMD5: String
  ContentType: String
  Expires: Date
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWriteACP: String
  Key: String!
  Metadata: JSON
  ServerSideEncryption: String
  StorageClass: String
  WebsiteRedirectLocation: String
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  SSEKMSEncryptionContext: String
  BucketKeyEnabled: Boolean
  RequestPayer: String
  Tagging: String
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  ObjectLockLegalHoldStatus: String
  ExpectedBucketOwner: String
}

type AwsS3PutObjectAclOutput {
  RequestCharged: String
}

input AwsS3PutObjectAclInput {
  ACL: String
  AccessControlPolicy: AwsS3Sc4Input
  Bucket: String!
  ContentMD5: String
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWrite: String
  GrantWriteACP: String
  Key: String!
  RequestPayer: String
  VersionId: String
  ExpectedBucketOwner: String
}

type AwsS3PutObjectLegalHoldOutput {
  RequestCharged: String
}

input AwsS3PutObjectLegalHoldInput {
  Bucket: String!
  Key: String!
  LegalHold: AwsS3S9kInput
  RequestPayer: String
  VersionId: String
  ContentMD5: String
  ExpectedBucketOwner: String
}

input AwsS3S9kInput {
  Status: String
}

type AwsS3PutObjectLockConfigurationOutput {
  RequestCharged: String
}

input AwsS3PutObjectLockConfigurationInput {
  Bucket: String!
  ObjectLockConfiguration: AwsS3S9nInput
  RequestPayer: String
  Token: String
  ContentMD5: String
  ExpectedBucketOwner: String
}

input AwsS3S9nInput {
  ObjectLockEnabled: String
  Rule: AwsS3S9nRuleInput
}

input AwsS3S9nRuleInput {
  DefaultRetention: AwsS3S9nRuleDefaultRetentionInput
}

input AwsS3S9nRuleDefaultRetentionInput {
  Mode: String
  Days: Int
  Years: Int
}

type AwsS3PutObjectRetentionOutput {
  RequestCharged: String
}

input AwsS3PutObjectRetentionInput {
  Bucket: String!
  Key: String!
  Retention: AwsS3S9vInput
  RequestPayer: String
  VersionId: String
  BypassGovernanceRetention: Boolean
  ContentMD5: String
  ExpectedBucketOwner: String
}

input AwsS3S9vInput {
  Mode: String
  RetainUntilDate: Date
}

type AwsS3PutObjectTaggingOutput {
  VersionId: String
}

input AwsS3PutObjectTaggingInput {
  Bucket: String!
  Key: String!
  VersionId: String
  ContentMD5: String
  Tagging: AwsS3SctInput!
  ExpectedBucketOwner: String
  RequestPayer: String
}

input AwsS3PutPublicAccessBlockInput {
  Bucket: String!
  ContentMD5: String
  PublicAccessBlockConfiguration: AwsS3Sa2Input!
  ExpectedBucketOwner: String
}

input AwsS3Sa2Input {
  BlockPublicAcls: Boolean
  IgnorePublicAcls: Boolean
  BlockPublicPolicy: Boolean
  RestrictPublicBuckets: Boolean
}

type AwsS3RestoreObjectOutput {
  RequestCharged: String
  RestoreOutputPath: String
}

input AwsS3RestoreObjectInput {
  Bucket: String!
  Key: String!
  VersionId: String
  RestoreRequest: AwsS3RestoreObjectRestoreRequestInput
  RequestPayer: String
  ExpectedBucketOwner: String
}

input AwsS3RestoreObjectRestoreRequestInput {
  Days: Int
  GlacierJobParameters: AwsS3RestoreObjectRestoreRequestGlacierJobParametersInput
  Type: String
  Tier: String
  Description: String
  SelectParameters: AwsS3RestoreObjectRestoreRequestSelectParametersInput
  OutputLocation: AwsS3RestoreObjectRestoreRequestOutputLocationInput
}

input AwsS3RestoreObjectRestoreRequestGlacierJobParametersInput {
  Tier: String!
}

input AwsS3RestoreObjectRestoreRequestSelectParametersInput {
  InputSerialization: AwsS3SdjInput!
  ExpressionType: String!
  Expression: String!
  OutputSerialization: AwsS3SdyInput!
}

input AwsS3SdjInput {
  CSV: AwsS3SdjCSVInput
  CompressionType: String
  JSON: AwsS3SdjJSONInput
  Parquet: JSON
}

input AwsS3SdjCSVInput {
  FileHeaderInfo: String
  Comments: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
  AllowQuotedRecordDelimiter: Boolean
}

input AwsS3SdjJSONInput {
  Type: String
}

input AwsS3SdyInput {
  CSV: AwsS3SdyCSVInput
  JSON: AwsS3SdyJSONInput
}

input AwsS3SdyCSVInput {
  QuoteFields: String
  QuoteEscapeCharacter: String
  RecordDelimiter: String
  FieldDelimiter: String
  QuoteCharacter: String
}

input AwsS3SdyJSONInput {
  RecordDelimiter: String
}

input AwsS3RestoreObjectRestoreRequestOutputLocationInput {
  S3: AwsS3RestoreObjectRestoreRequestOutputLocationS3Input
}

input AwsS3RestoreObjectRestoreRequestOutputLocationS3Input {
  BucketName: String!
  Prefix: String!
  Encryption: AwsS3RestoreObjectRestoreRequestOutputLocationS3EncryptionInput
  CannedACL: String
  AccessControlList: [AwsS3S3aInput]
  Tagging: AwsS3SctInput
  UserMetadata: [AwsS3RestoreObjectRestoreRequestOutputLocationS3UserMetadataInput]
  StorageClass: String
}

input AwsS3RestoreObjectRestoreRequestOutputLocationS3EncryptionInput {
  EncryptionType: String!
  KMSKeyId: String
  KMSContext: String
}

input AwsS3RestoreObjectRestoreRequestOutputLocationS3UserMetadataInput {
  Name: String
  Value: String
}

type AwsS3SelectObjectContentOutput {
  Payload: AwsS3SelectObjectContentOutputPayload
}

type AwsS3SelectObjectContentOutputPayload {
  Records: AwsS3SelectObjectContentOutputPayloadRecords
  Stats: AwsS3SelectObjectContentOutputPayloadStats
  Progress: AwsS3SelectObjectContentOutputPayloadProgress
  Cont: JSON
  End: JSON
}

type AwsS3SelectObjectContentOutputPayloadRecords {
  Payload: JSON
}

type AwsS3SelectObjectContentOutputPayloadStats {
  Details: AwsS3SelectObjectContentOutputPayloadStatsDetails
}

type AwsS3SelectObjectContentOutputPayloadStatsDetails {
  BytesScanned: JSON
  BytesProcessed: JSON
  BytesReturned: JSON
}

type AwsS3SelectObjectContentOutputPayloadProgress {
  Details: AwsS3SelectObjectContentOutputPayloadProgressDetails
}

type AwsS3SelectObjectContentOutputPayloadProgressDetails {
  BytesScanned: JSON
  BytesProcessed: JSON
  BytesReturned: JSON
}

input AwsS3SelectObjectContentInput {
  Bucket: String!
  Key: String!
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  Expression: String!
  ExpressionType: String!
  RequestProgress: AwsS3SelectObjectContentRequestProgressInput
  InputSerialization: AwsS3SdjInput!
  OutputSerialization: AwsS3SdyInput!
  ScanRange: AwsS3SelectObjectContentScanRangeInput
  ExpectedBucketOwner: String
}

input AwsS3SelectObjectContentRequestProgressInput {
  Enabled: Boolean
}

input AwsS3SelectObjectContentScanRangeInput {
  Start: JSON
  End: JSON
}

type AwsS3UploadPartOutput {
  ServerSideEncryption: String
  ETag: String
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

input AwsS3UploadPartInput {
  Body: JSON
  Bucket: String!
  ContentLength: JSON
  ContentMD5: String
  Key: String!
  PartNumber: Int!
  UploadId: String!
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  RequestPayer: String
  ExpectedBucketOwner: String
}

type AwsS3UploadPartCopyOutput {
  CopySourceVersionId: String
  CopyPartResult: AwsS3UploadPartCopyOutputCopyPartResult
  ServerSideEncryption: String
  SSECustomerAlgorithm: String
  SSECustomerKeyMD5: String
  SSEKMSKeyId: String
  BucketKeyEnabled: Boolean
  RequestCharged: String
}

type AwsS3UploadPartCopyOutputCopyPartResult {
  ETag: String
  LastModified: Date
}

input AwsS3UploadPartCopyInput {
  Bucket: String!
  CopySource: String!
  CopySourceIfMatch: String
  CopySourceIfModifiedSince: Date
  CopySourceIfNoneMatch: String
  CopySourceIfUnmodifiedSince: Date
  CopySourceRange: String
  Key: String!
  PartNumber: Int!
  UploadId: String!
  SSECustomerAlgorithm: String
  SSECustomerKey: JSON
  SSECustomerKeyMD5: String
  CopySourceSSECustomerAlgorithm: String
  CopySourceSSECustomerKey: JSON
  CopySourceSSECustomerKeyMD5: String
  RequestPayer: String
  ExpectedBucketOwner: String
  ExpectedSourceBucketOwner: String
}

input AwsS3WriteGetObjectResponseInput {
  RequestRoute: String!
  RequestToken: String!
  Body: JSON
  StatusCode: Int
  ErrorCode: String
  ErrorMessage: String
  AcceptRanges: String
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  ContentLength: JSON
  ContentRange: String
  ContentType: String
  DeleteMarker: Boolean
  ETag: String
  Expires: Date
  Expiration: String
  LastModified: Date
  MissingMeta: Int
  Metadata: JSON
  ObjectLockMode: String
  ObjectLockLegalHoldStatus: String
  ObjectLockRetainUntilDate: Date
  PartsCount: Int
  ReplicationStatus: String
  RequestCharged: String
  Restore: String
  ServerSideEncryption: String
  SSECustomerAlgorithm: String
  SSEKMSKeyId: String
  SSECustomerKeyMD5: String
  StorageClass: String
  TagCount: Int
  VersionId: String
  BucketKeyEnabled: Boolean
}

"""AWS S3 Control (2018-08-20)"""
type AwsS3Control {
  createAccessPoint(input: AwsS3ControlCreateAccessPointInput!, config: AwsConfig): AwsS3ControlCreateAccessPointOutput
  createAccessPointForObjectLambda(input: AwsS3ControlCreateAccessPointForObjectLambdaInput!, config: AwsConfig): AwsS3ControlCreateAccessPointForObjectLambdaOutput
  createBucket(input: AwsS3ControlCreateBucketInput!, config: AwsConfig): AwsS3ControlCreateBucketOutput
  createJob(input: AwsS3ControlCreateJobInput!, config: AwsConfig): AwsS3ControlCreateJobOutput
  deleteAccessPoint(input: AwsS3ControlDeleteAccessPointInput!, config: AwsConfig): JSON
  deleteAccessPointForObjectLambda(input: AwsS3ControlDeleteAccessPointForObjectLambdaInput!, config: AwsConfig): JSON
  deleteAccessPointPolicy(input: AwsS3ControlDeleteAccessPointPolicyInput!, config: AwsConfig): JSON
  deleteAccessPointPolicyForObjectLambda(input: AwsS3ControlDeleteAccessPointPolicyForObjectLambdaInput!, config: AwsConfig): JSON
  deleteBucket(input: AwsS3ControlDeleteBucketInput!, config: AwsConfig): JSON
  deleteBucketLifecycleConfiguration(input: AwsS3ControlDeleteBucketLifecycleConfigurationInput!, config: AwsConfig): JSON
  deleteBucketPolicy(input: AwsS3ControlDeleteBucketPolicyInput!, config: AwsConfig): JSON
  deleteBucketTagging(input: AwsS3ControlDeleteBucketTaggingInput!, config: AwsConfig): JSON
  deleteJobTagging(input: AwsS3ControlDeleteJobTaggingInput!, config: AwsConfig): JSON
  deletePublicAccessBlock(input: AwsS3ControlDeletePublicAccessBlockInput!, config: AwsConfig): JSON
  deleteStorageLensConfiguration(input: AwsS3ControlDeleteStorageLensConfigurationInput!, config: AwsConfig): JSON
  deleteStorageLensConfigurationTagging(input: AwsS3ControlDeleteStorageLensConfigurationTaggingInput!, config: AwsConfig): JSON
  describeJob(input: AwsS3ControlDescribeJobInput!, config: AwsConfig): AwsS3ControlDescribeJobOutput
  getAccessPoint(input: AwsS3ControlGetAccessPointInput!, config: AwsConfig): AwsS3ControlGetAccessPointOutput
  getAccessPointConfigurationForObjectLambda(input: AwsS3ControlGetAccessPointConfigurationForObjectLambdaInput!, config: AwsConfig): AwsS3ControlGetAccessPointConfigurationForObjectLambdaOutput
  getAccessPointForObjectLambda(input: AwsS3ControlGetAccessPointForObjectLambdaInput!, config: AwsConfig): AwsS3ControlGetAccessPointForObjectLambdaOutput
  getAccessPointPolicy(input: AwsS3ControlGetAccessPointPolicyInput!, config: AwsConfig): AwsS3ControlGetAccessPointPolicyOutput
  getAccessPointPolicyForObjectLambda(input: AwsS3ControlGetAccessPointPolicyForObjectLambdaInput!, config: AwsConfig): AwsS3ControlGetAccessPointPolicyForObjectLambdaOutput
  getAccessPointPolicyStatus(input: AwsS3ControlGetAccessPointPolicyStatusInput!, config: AwsConfig): AwsS3ControlGetAccessPointPolicyStatusOutput
  getAccessPointPolicyStatusForObjectLambda(input: AwsS3ControlGetAccessPointPolicyStatusForObjectLambdaInput!, config: AwsConfig): AwsS3ControlGetAccessPointPolicyStatusForObjectLambdaOutput
  getBucket(input: AwsS3ControlGetBucketInput!, config: AwsConfig): AwsS3ControlGetBucketOutput
  getBucketLifecycleConfiguration(input: AwsS3ControlGetBucketLifecycleConfigurationInput!, config: AwsConfig): AwsS3ControlGetBucketLifecycleConfigurationOutput
  getBucketPolicy(input: AwsS3ControlGetBucketPolicyInput!, config: AwsConfig): AwsS3ControlGetBucketPolicyOutput
  getBucketTagging(input: AwsS3ControlGetBucketTaggingInput!, config: AwsConfig): AwsS3ControlGetBucketTaggingOutput
  getJobTagging(input: AwsS3ControlGetJobTaggingInput!, config: AwsConfig): AwsS3ControlGetJobTaggingOutput
  getPublicAccessBlock(input: AwsS3ControlGetPublicAccessBlockInput!, config: AwsConfig): AwsS3ControlGetPublicAccessBlockOutput
  getStorageLensConfiguration(input: AwsS3ControlGetStorageLensConfigurationInput!, config: AwsConfig): AwsS3ControlGetStorageLensConfigurationOutput
  getStorageLensConfigurationTagging(input: AwsS3ControlGetStorageLensConfigurationTaggingInput!, config: AwsConfig): AwsS3ControlGetStorageLensConfigurationTaggingOutput
  listAccessPoints(input: AwsS3ControlListAccessPointsInput!, config: AwsConfig): AwsS3ControlListAccessPointsOutput
  listAccessPointsForObjectLambda(input: AwsS3ControlListAccessPointsForObjectLambdaInput!, config: AwsConfig): AwsS3ControlListAccessPointsForObjectLambdaOutput
  listJobs(input: AwsS3ControlListJobsInput!, config: AwsConfig): AwsS3ControlListJobsOutput
  listRegionalBuckets(input: AwsS3ControlListRegionalBucketsInput!, config: AwsConfig): AwsS3ControlListRegionalBucketsOutput
  listStorageLensConfigurations(input: AwsS3ControlListStorageLensConfigurationsInput!, config: AwsConfig): AwsS3ControlListStorageLensConfigurationsOutput
  putAccessPointConfigurationForObjectLambda(input: AwsS3ControlPutAccessPointConfigurationForObjectLambdaInput!, config: AwsConfig): JSON
  putAccessPointPolicy(input: AwsS3ControlPutAccessPointPolicyInput!, config: AwsConfig): JSON
  putAccessPointPolicyForObjectLambda(input: AwsS3ControlPutAccessPointPolicyForObjectLambdaInput!, config: AwsConfig): JSON
  putBucketLifecycleConfiguration(input: AwsS3ControlPutBucketLifecycleConfigurationInput!, config: AwsConfig): JSON
  putBucketPolicy(input: AwsS3ControlPutBucketPolicyInput!, config: AwsConfig): JSON
  putBucketTagging(input: AwsS3ControlPutBucketTaggingInput!, config: AwsConfig): JSON
  putJobTagging(input: AwsS3ControlPutJobTaggingInput!, config: AwsConfig): JSON
  putPublicAccessBlock(input: AwsS3ControlPutPublicAccessBlockInput!, config: AwsConfig): JSON
  putStorageLensConfiguration(input: AwsS3ControlPutStorageLensConfigurationInput!, config: AwsConfig): JSON
  putStorageLensConfigurationTagging(input: AwsS3ControlPutStorageLensConfigurationTaggingInput!, config: AwsConfig): JSON
  updateJobPriority(input: AwsS3ControlUpdateJobPriorityInput!, config: AwsConfig): AwsS3ControlUpdateJobPriorityOutput
  updateJobStatus(input: AwsS3ControlUpdateJobStatusInput!, config: AwsConfig): AwsS3ControlUpdateJobStatusOutput
}

type AwsS3ControlCreateAccessPointOutput {
  AccessPointArn: String
}

input AwsS3ControlCreateAccessPointInput {
  AccountId: String!
  Name: String!
  Bucket: String!
  VpcConfiguration: AwsS3ControlS5Input
  PublicAccessBlockConfiguration: AwsS3ControlS7Input
}

input AwsS3ControlS5Input {
  VpcId: String!
}

input AwsS3ControlS7Input {
  BlockPublicAcls: Boolean
  IgnorePublicAcls: Boolean
  BlockPublicPolicy: Boolean
  RestrictPublicBuckets: Boolean
}

type AwsS3ControlCreateAccessPointForObjectLambdaOutput {
  ObjectLambdaAccessPointArn: String
}

input AwsS3ControlCreateAccessPointForObjectLambdaInput {
  AccountId: String!
  Name: String!
  Configuration: AwsS3ControlSdInput!
}

input AwsS3ControlSdInput {
  SupportingAccessPoint: String!
  CloudWatchMetricsEnabled: Boolean
  AllowedFeatures: [String]
  TransformationConfigurations: [AwsS3ControlSdTransformationConfigurationsInput]!
}

input AwsS3ControlSdTransformationConfigurationsInput {
  Actions: [String]!
  ContentTransformation: AwsS3ControlSdTransformationConfigurationsContentTransformationInput!
}

input AwsS3ControlSdTransformationConfigurationsContentTransformationInput {
  AwsLambda: AwsS3ControlSdTransformationConfigurationsContentTransformationAwsLambdaInput
}

input AwsS3ControlSdTransformationConfigurationsContentTransformationAwsLambdaInput {
  FunctionArn: String!
  FunctionPayload: String
}

type AwsS3ControlCreateBucketOutput {
  Location: String
  BucketArn: String
}

input AwsS3ControlCreateBucketInput {
  ACL: String
  Bucket: String!
  CreateBucketConfiguration: AwsS3ControlCreateBucketCreateBucketConfigurationInput
  GrantFullControl: String
  GrantRead: String
  GrantReadACP: String
  GrantWrite: String
  GrantWriteACP: String
  ObjectLockEnabledForBucket: Boolean
  OutpostId: String
}

input AwsS3ControlCreateBucketCreateBucketConfigurationInput {
  LocationConstraint: String
}

type AwsS3ControlCreateJobOutput {
  JobId: String
}

input AwsS3ControlCreateJobInput {
  AccountId: String!
  ConfirmationRequired: Boolean
  Operation: AwsS3ControlS18Input!
  Report: AwsS3ControlS2dInput!
  ClientRequestToken: String!
  Manifest: AwsS3ControlS2hInput!
  Description: String
  Priority: Int!
  RoleArn: String!
  Tags: [AwsS3ControlS1rInput]
}

input AwsS3ControlS18Input {
  LambdaInvoke: AwsS3ControlS18LambdaInvokeInput
  S3PutObjectCopy: AwsS3ControlS18S3PutObjectCopyInput
  S3PutObjectAcl: AwsS3ControlS18S3PutObjectAclInput
  S3PutObjectTagging: AwsS3ControlS18S3PutObjectTaggingInput
  S3DeleteObjectTagging: JSON
  S3InitiateRestoreObject: AwsS3ControlS18S3InitiateRestoreObjectInput
  S3PutObjectLegalHold: AwsS3ControlS18S3PutObjectLegalHoldInput
  S3PutObjectRetention: AwsS3ControlS18S3PutObjectRetentionInput
}

input AwsS3ControlS18LambdaInvokeInput {
  FunctionArn: String
}

input AwsS3ControlS18S3PutObjectCopyInput {
  TargetResource: String
  CannedAccessControlList: String
  AccessControlGrants: [AwsS3ControlS1dInput]
  MetadataDirective: String
  ModifiedSinceConstraint: Date
  NewObjectMetadata: AwsS3ControlS18S3PutObjectCopyNewObjectMetadataInput
  NewObjectTagging: [AwsS3ControlS1rInput]
  RedirectLocation: String
  RequesterPays: Boolean
  StorageClass: String
  UnModifiedSinceConstraint: Date
  SSEAwsKmsKeyId: String
  TargetKeyPrefix: String
  ObjectLockLegalHoldStatus: String
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  BucketKeyEnabled: Boolean
}

input AwsS3ControlS1dInput {
  Grantee: AwsS3ControlS1dGranteeInput
  Permission: String
}

input AwsS3ControlS1dGranteeInput {
  TypeIdentifier: String
  Identifier: String
  DisplayName: String
}

input AwsS3ControlS18S3PutObjectCopyNewObjectMetadataInput {
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  UserMetadata: JSON
  ContentLength: JSON
  ContentMD5: String
  ContentType: String
  HttpExpiresDate: Date
  RequesterCharged: Boolean
  SSEAlgorithm: String
}

input AwsS3ControlS1rInput {
  Key: String!
  Value: String!
}

input AwsS3ControlS18S3PutObjectAclInput {
  AccessControlPolicy: AwsS3ControlS18S3PutObjectAclAccessControlPolicyInput
}

input AwsS3ControlS18S3PutObjectAclAccessControlPolicyInput {
  AccessControlList: AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListInput
  CannedAccessControlList: String
}

input AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListInput {
  Owner: AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListOwnerInput!
  Grants: [AwsS3ControlS1dInput]
}

input AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListOwnerInput {
  ID: String
  DisplayName: String
}

input AwsS3ControlS18S3PutObjectTaggingInput {
  TagSet: [AwsS3ControlS1rInput]
}

input AwsS3ControlS18S3InitiateRestoreObjectInput {
  ExpirationInDays: Int
  GlacierJobTier: String
}

input AwsS3ControlS18S3PutObjectLegalHoldInput {
  LegalHold: AwsS3ControlS18S3PutObjectLegalHoldLegalHoldInput!
}

input AwsS3ControlS18S3PutObjectLegalHoldLegalHoldInput {
  Status: String!
}

input AwsS3ControlS18S3PutObjectRetentionInput {
  BypassGovernanceRetention: Boolean
  Retention: AwsS3ControlS18S3PutObjectRetentionRetentionInput!
}

input AwsS3ControlS18S3PutObjectRetentionRetentionInput {
  RetainUntilDate: Date
  Mode: String
}

input AwsS3ControlS2dInput {
  Bucket: String
  Format: String
  Enabled: Boolean!
  Prefix: String
  ReportScope: String
}

input AwsS3ControlS2hInput {
  Spec: AwsS3ControlS2hSpecInput!
  Location: AwsS3ControlS2hLocationInput!
}

input AwsS3ControlS2hSpecInput {
  Format: String!
  Fields: [String]
}

input AwsS3ControlS2hLocationInput {
  ObjectArn: String!
  ObjectVersionId: String
  ETag: String!
}

input AwsS3ControlDeleteAccessPointInput {
  AccountId: String!
  Name: String!
}

input AwsS3ControlDeleteAccessPointForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

input AwsS3ControlDeleteAccessPointPolicyInput {
  AccountId: String!
  Name: String!
}

input AwsS3ControlDeleteAccessPointPolicyForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

input AwsS3ControlDeleteBucketInput {
  AccountId: String!
  Bucket: String!
}

input AwsS3ControlDeleteBucketLifecycleConfigurationInput {
  AccountId: String!
  Bucket: String!
}

input AwsS3ControlDeleteBucketPolicyInput {
  AccountId: String!
  Bucket: String!
}

input AwsS3ControlDeleteBucketTaggingInput {
  AccountId: String!
  Bucket: String!
}

input AwsS3ControlDeleteJobTaggingInput {
  AccountId: String!
  JobId: String!
}

input AwsS3ControlDeletePublicAccessBlockInput {
  AccountId: String!
}

input AwsS3ControlDeleteStorageLensConfigurationInput {
  ConfigId: String!
  AccountId: String!
}

input AwsS3ControlDeleteStorageLensConfigurationTaggingInput {
  ConfigId: String!
  AccountId: String!
}

type AwsS3ControlDescribeJobOutput {
  Job: AwsS3ControlDescribeJobOutputJob
}

type AwsS3ControlDescribeJobOutputJob {
  JobId: String
  ConfirmationRequired: Boolean
  Description: String
  JobArn: String
  Status: String
  Manifest: AwsS3ControlS2h
  Operation: AwsS3ControlS18
  Priority: Int
  ProgressSummary: AwsS3ControlS3e
  StatusUpdateReason: String
  FailureReasons: [AwsS3ControlDescribeJobOutputJobFailureReasons]
  Report: AwsS3ControlS2d
  CreationTime: Date
  TerminationDate: Date
  RoleArn: String
  SuspendedDate: Date
  SuspendedCause: String
}

type AwsS3ControlS2h {
  Spec: AwsS3ControlS2hSpec!
  Location: AwsS3ControlS2hLocation!
}

type AwsS3ControlS2hSpec {
  Format: String!
  Fields: [String]
}

type AwsS3ControlS2hLocation {
  ObjectArn: String!
  ObjectVersionId: String
  ETag: String!
}

type AwsS3ControlS18 {
  LambdaInvoke: AwsS3ControlS18LambdaInvoke
  S3PutObjectCopy: AwsS3ControlS18S3PutObjectCopy
  S3PutObjectAcl: AwsS3ControlS18S3PutObjectAcl
  S3PutObjectTagging: AwsS3ControlS18S3PutObjectTagging
  S3DeleteObjectTagging: JSON
  S3InitiateRestoreObject: AwsS3ControlS18S3InitiateRestoreObject
  S3PutObjectLegalHold: AwsS3ControlS18S3PutObjectLegalHold
  S3PutObjectRetention: AwsS3ControlS18S3PutObjectRetention
}

type AwsS3ControlS18LambdaInvoke {
  FunctionArn: String
}

type AwsS3ControlS18S3PutObjectCopy {
  TargetResource: String
  CannedAccessControlList: String
  AccessControlGrants: [AwsS3ControlS1d]
  MetadataDirective: String
  ModifiedSinceConstraint: Date
  NewObjectMetadata: AwsS3ControlS18S3PutObjectCopyNewObjectMetadata
  NewObjectTagging: [AwsS3ControlS1r]
  RedirectLocation: String
  RequesterPays: Boolean
  StorageClass: String
  UnModifiedSinceConstraint: Date
  SSEAwsKmsKeyId: String
  TargetKeyPrefix: String
  ObjectLockLegalHoldStatus: String
  ObjectLockMode: String
  ObjectLockRetainUntilDate: Date
  BucketKeyEnabled: Boolean
}

type AwsS3ControlS1d {
  Grantee: AwsS3ControlS1dGrantee
  Permission: String
}

type AwsS3ControlS1dGrantee {
  TypeIdentifier: String
  Identifier: String
  DisplayName: String
}

type AwsS3ControlS18S3PutObjectCopyNewObjectMetadata {
  CacheControl: String
  ContentDisposition: String
  ContentEncoding: String
  ContentLanguage: String
  UserMetadata: JSON
  ContentLength: JSON
  ContentMD5: String
  ContentType: String
  HttpExpiresDate: Date
  RequesterCharged: Boolean
  SSEAlgorithm: String
}

type AwsS3ControlS1r {
  Key: String!
  Value: String!
}

type AwsS3ControlS18S3PutObjectAcl {
  AccessControlPolicy: AwsS3ControlS18S3PutObjectAclAccessControlPolicy
}

type AwsS3ControlS18S3PutObjectAclAccessControlPolicy {
  AccessControlList: AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlList
  CannedAccessControlList: String
}

type AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlList {
  Owner: AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListOwner!
  Grants: [AwsS3ControlS1d]
}

type AwsS3ControlS18S3PutObjectAclAccessControlPolicyAccessControlListOwner {
  ID: String
  DisplayName: String
}

type AwsS3ControlS18S3PutObjectTagging {
  TagSet: [AwsS3ControlS1r]
}

type AwsS3ControlS18S3InitiateRestoreObject {
  ExpirationInDays: Int
  GlacierJobTier: String
}

type AwsS3ControlS18S3PutObjectLegalHold {
  LegalHold: AwsS3ControlS18S3PutObjectLegalHoldLegalHold!
}

type AwsS3ControlS18S3PutObjectLegalHoldLegalHold {
  Status: String!
}

type AwsS3ControlS18S3PutObjectRetention {
  BypassGovernanceRetention: Boolean
  Retention: AwsS3ControlS18S3PutObjectRetentionRetention!
}

type AwsS3ControlS18S3PutObjectRetentionRetention {
  RetainUntilDate: Date
  Mode: String
}

type AwsS3ControlS3e {
  TotalNumberOfTasks: JSON
  NumberOfTasksSucceeded: JSON
  NumberOfTasksFailed: JSON
}

type AwsS3ControlDescribeJobOutputJobFailureReasons {
  FailureCode: String
  FailureReason: String
}

type AwsS3ControlS2d {
  Bucket: String
  Format: String
  Enabled: Boolean!
  Prefix: String
  ReportScope: String
}

input AwsS3ControlDescribeJobInput {
  AccountId: String!
  JobId: String!
}

type AwsS3ControlGetAccessPointOutput {
  Name: String
  Bucket: String
  NetworkOrigin: String
  VpcConfiguration: AwsS3ControlS5
  PublicAccessBlockConfiguration: AwsS3ControlS7
  CreationDate: Date
}

type AwsS3ControlS5 {
  VpcId: String!
}

type AwsS3ControlS7 {
  BlockPublicAcls: Boolean
  IgnorePublicAcls: Boolean
  BlockPublicPolicy: Boolean
  RestrictPublicBuckets: Boolean
}

input AwsS3ControlGetAccessPointInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointConfigurationForObjectLambdaOutput {
  Configuration: AwsS3ControlSd
}

type AwsS3ControlSd {
  SupportingAccessPoint: String!
  CloudWatchMetricsEnabled: Boolean
  AllowedFeatures: [String]
  TransformationConfigurations: [AwsS3ControlSdTransformationConfigurations]!
}

type AwsS3ControlSdTransformationConfigurations {
  Actions: [String]!
  ContentTransformation: AwsS3ControlSdTransformationConfigurationsContentTransformation!
}

type AwsS3ControlSdTransformationConfigurationsContentTransformation {
  AwsLambda: AwsS3ControlSdTransformationConfigurationsContentTransformationAwsLambda
}

type AwsS3ControlSdTransformationConfigurationsContentTransformationAwsLambda {
  FunctionArn: String!
  FunctionPayload: String
}

input AwsS3ControlGetAccessPointConfigurationForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointForObjectLambdaOutput {
  Name: String
  PublicAccessBlockConfiguration: AwsS3ControlS7
  CreationDate: Date
}

input AwsS3ControlGetAccessPointForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointPolicyOutput {
  Policy: String
}

input AwsS3ControlGetAccessPointPolicyInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointPolicyForObjectLambdaOutput {
  Policy: String
}

input AwsS3ControlGetAccessPointPolicyForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointPolicyStatusOutput {
  PolicyStatus: AwsS3ControlS47
}

type AwsS3ControlS47 {
  IsPublic: Boolean
}

input AwsS3ControlGetAccessPointPolicyStatusInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetAccessPointPolicyStatusForObjectLambdaOutput {
  PolicyStatus: AwsS3ControlS47
}

input AwsS3ControlGetAccessPointPolicyStatusForObjectLambdaInput {
  AccountId: String!
  Name: String!
}

type AwsS3ControlGetBucketOutput {
  Bucket: String
  PublicAccessBlockEnabled: Boolean
  CreationDate: Date
}

input AwsS3ControlGetBucketInput {
  AccountId: String!
  Bucket: String!
}

type AwsS3ControlGetBucketLifecycleConfigurationOutput {
  Rules: [AwsS3ControlS4g]
}

type AwsS3ControlS4g {
  Expiration: AwsS3ControlS4gExpiration
  ID: String
  Filter: AwsS3ControlS4gFilter
  Status: String!
  Transitions: [AwsS3ControlS4gTransitions]
  NoncurrentVersionTransitions: [AwsS3ControlS4gNoncurrentVersionTransitions]
  NoncurrentVersionExpiration: AwsS3ControlS4gNoncurrentVersionExpiration
  AbortIncompleteMultipartUpload: AwsS3ControlS4gAbortIncompleteMultipartUpload
}

type AwsS3ControlS4gExpiration {
  Date: Date
  Days: Int
  ExpiredObjectDeleteMarker: Boolean
}

type AwsS3ControlS4gFilter {
  Prefix: String
  Tag: AwsS3ControlS1r
  And: AwsS3ControlS4gFilterAnd
}

type AwsS3ControlS4gFilterAnd {
  Prefix: String
  Tags: [AwsS3ControlS1r]
}

type AwsS3ControlS4gTransitions {
  Date: Date
  Days: Int
  StorageClass: String
}

type AwsS3ControlS4gNoncurrentVersionTransitions {
  NoncurrentDays: Int
  StorageClass: String
}

type AwsS3ControlS4gNoncurrentVersionExpiration {
  NoncurrentDays: Int
}

type AwsS3ControlS4gAbortIncompleteMultipartUpload {
  DaysAfterInitiation: Int
}

input AwsS3ControlGetBucketLifecycleConfigurationInput {
  AccountId: String!
  Bucket: String!
}

type AwsS3ControlGetBucketPolicyOutput {
  Policy: String
}

input AwsS3ControlGetBucketPolicyInput {
  AccountId: String!
  Bucket: String!
}

type AwsS3ControlGetBucketTaggingOutput {
  TagSet: [AwsS3ControlS1r]!
}

input AwsS3ControlGetBucketTaggingInput {
  AccountId: String!
  Bucket: String!
}

type AwsS3ControlGetJobTaggingOutput {
  Tags: [AwsS3ControlS1r]
}

input AwsS3ControlGetJobTaggingInput {
  AccountId: String!
  JobId: String!
}

type AwsS3ControlGetPublicAccessBlockOutput {
  PublicAccessBlockConfiguration: AwsS3ControlS7
}

input AwsS3ControlGetPublicAccessBlockInput {
  AccountId: String!
}

type AwsS3ControlGetStorageLensConfigurationOutput {
  StorageLensConfiguration: AwsS3ControlS59
}

type AwsS3ControlS59 {
  Id: String!
  AccountLevel: AwsS3ControlS59AccountLevel!
  Include: AwsS3ControlS59Include
  Exclude: AwsS3ControlS59Exclude
  DataExport: AwsS3ControlS59DataExport
  IsEnabled: Boolean!
  AwsOrg: AwsS3ControlS59AwsOrg
  StorageLensArn: String
}

type AwsS3ControlS59AccountLevel {
  ActivityMetrics: AwsS3ControlS5b
  BucketLevel: AwsS3ControlS59AccountLevelBucketLevel!
}

type AwsS3ControlS5b {
  IsEnabled: Boolean
}

type AwsS3ControlS59AccountLevelBucketLevel {
  ActivityMetrics: AwsS3ControlS5b
  PrefixLevel: AwsS3ControlS59AccountLevelBucketLevelPrefixLevel
}

type AwsS3ControlS59AccountLevelBucketLevelPrefixLevel {
  StorageMetrics: AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetrics!
}

type AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetrics {
  IsEnabled: Boolean
  SelectionCriteria: AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria
}

type AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria {
  Delimiter: String
  MaxDepth: Int
  MinStorageBytesPercentage: JSON
}

type AwsS3ControlS59Include {
  Buckets: [String]
  Regions: [String]
}

type AwsS3ControlS59Exclude {
  Buckets: [String]
  Regions: [String]
}

type AwsS3ControlS59DataExport {
  S3BucketDestination: AwsS3ControlS59DataExportS3BucketDestination!
}

type AwsS3ControlS59DataExportS3BucketDestination {
  Format: String!
  OutputSchemaVersion: String!
  AccountId: String!
  Arn: String!
  Prefix: String
  Encryption: AwsS3ControlS59DataExportS3BucketDestinationEncryption
}

type AwsS3ControlS59DataExportS3BucketDestinationEncryption {
  SSES3: JSON
  SSEKMS: AwsS3ControlS59DataExportS3BucketDestinationEncryptionSSEKMS
}

type AwsS3ControlS59DataExportS3BucketDestinationEncryptionSSEKMS {
  KeyId: String!
}

type AwsS3ControlS59AwsOrg {
  Arn: String!
}

input AwsS3ControlGetStorageLensConfigurationInput {
  ConfigId: String!
  AccountId: String!
}

type AwsS3ControlGetStorageLensConfigurationTaggingOutput {
  Tags: [AwsS3ControlS62]
}

type AwsS3ControlS62 {
  Key: String!
  Value: String!
}

input AwsS3ControlGetStorageLensConfigurationTaggingInput {
  ConfigId: String!
  AccountId: String!
}

type AwsS3ControlListAccessPointsOutput {
  AccessPointList: [AwsS3ControlListAccessPointsOutputAccessPointList]
  NextToken: String
}

type AwsS3ControlListAccessPointsOutputAccessPointList {
  Name: String!
  NetworkOrigin: String!
  VpcConfiguration: AwsS3ControlS5
  Bucket: String!
  AccessPointArn: String
}

input AwsS3ControlListAccessPointsInput {
  AccountId: String!
  Bucket: String
  NextToken: String
  MaxResults: Int
}

type AwsS3ControlListAccessPointsForObjectLambdaOutput {
  ObjectLambdaAccessPointList: [AwsS3ControlListAccessPointsForObjectLambdaOutputObjectLambdaAccessPointList]
  NextToken: String
}

type AwsS3ControlListAccessPointsForObjectLambdaOutputObjectLambdaAccessPointList {
  Name: String!
  ObjectLambdaAccessPointArn: String
}

input AwsS3ControlListAccessPointsForObjectLambdaInput {
  AccountId: String!
  NextToken: String
  MaxResults: Int
}

type AwsS3ControlListJobsOutput {
  NextToken: String
  Jobs: [AwsS3ControlListJobsOutputJobs]
}

type AwsS3ControlListJobsOutputJobs {
  JobId: String
  Description: String
  Operation: String
  Priority: Int
  Status: String
  CreationTime: Date
  TerminationDate: Date
  ProgressSummary: AwsS3ControlS3e
}

input AwsS3ControlListJobsInput {
  AccountId: String!
  JobStatuses: [String]
  NextToken: String
  MaxResults: Int
}

type AwsS3ControlListRegionalBucketsOutput {
  RegionalBucketList: [AwsS3ControlListRegionalBucketsOutputRegionalBucketList]
  NextToken: String
}

type AwsS3ControlListRegionalBucketsOutputRegionalBucketList {
  Bucket: String!
  BucketArn: String
  PublicAccessBlockEnabled: Boolean!
  CreationDate: Date!
  OutpostId: String
}

input AwsS3ControlListRegionalBucketsInput {
  AccountId: String!
  NextToken: String
  MaxResults: Int
  OutpostId: String
}

type AwsS3ControlListStorageLensConfigurationsOutput {
  NextToken: String
  StorageLensConfigurationList: [AwsS3ControlListStorageLensConfigurationsOutputStorageLensConfigurationList]
}

type AwsS3ControlListStorageLensConfigurationsOutputStorageLensConfigurationList {
  Id: String!
  StorageLensArn: String!
  HomeRegion: String!
  IsEnabled: Boolean
}

input AwsS3ControlListStorageLensConfigurationsInput {
  AccountId: String!
  NextToken: String
}

input AwsS3ControlPutAccessPointConfigurationForObjectLambdaInput {
  AccountId: String!
  Name: String!
  Configuration: AwsS3ControlSdInput!
}

input AwsS3ControlPutAccessPointPolicyInput {
  AccountId: String!
  Name: String!
  Policy: String!
}

input AwsS3ControlPutAccessPointPolicyForObjectLambdaInput {
  AccountId: String!
  Name: String!
  Policy: String!
}

input AwsS3ControlPutBucketLifecycleConfigurationInput {
  AccountId: String!
  Bucket: String!
  LifecycleConfiguration: AwsS3ControlPutBucketLifecycleConfigurationLifecycleConfigurationInput
}

input AwsS3ControlPutBucketLifecycleConfigurationLifecycleConfigurationInput {
  Rules: [AwsS3ControlS4gInput]
}

input AwsS3ControlS4gInput {
  Expiration: AwsS3ControlS4gExpirationInput
  ID: String
  Filter: AwsS3ControlS4gFilterInput
  Status: String!
  Transitions: [AwsS3ControlS4gTransitionsInput]
  NoncurrentVersionTransitions: [AwsS3ControlS4gNoncurrentVersionTransitionsInput]
  NoncurrentVersionExpiration: AwsS3ControlS4gNoncurrentVersionExpirationInput
  AbortIncompleteMultipartUpload: AwsS3ControlS4gAbortIncompleteMultipartUploadInput
}

input AwsS3ControlS4gExpirationInput {
  Date: Date
  Days: Int
  ExpiredObjectDeleteMarker: Boolean
}

input AwsS3ControlS4gFilterInput {
  Prefix: String
  Tag: AwsS3ControlS1rInput
  And: AwsS3ControlS4gFilterAndInput
}

input AwsS3ControlS4gFilterAndInput {
  Prefix: String
  Tags: [AwsS3ControlS1rInput]
}

input AwsS3ControlS4gTransitionsInput {
  Date: Date
  Days: Int
  StorageClass: String
}

input AwsS3ControlS4gNoncurrentVersionTransitionsInput {
  NoncurrentDays: Int
  StorageClass: String
}

input AwsS3ControlS4gNoncurrentVersionExpirationInput {
  NoncurrentDays: Int
}

input AwsS3ControlS4gAbortIncompleteMultipartUploadInput {
  DaysAfterInitiation: Int
}

input AwsS3ControlPutBucketPolicyInput {
  AccountId: String!
  Bucket: String!
  ConfirmRemoveSelfBucketAccess: Boolean
  Policy: String!
}

input AwsS3ControlPutBucketTaggingInput {
  AccountId: String!
  Bucket: String!
  Tagging: AwsS3ControlPutBucketTaggingTaggingInput!
}

input AwsS3ControlPutBucketTaggingTaggingInput {
  TagSet: [AwsS3ControlS1rInput]!
}

input AwsS3ControlPutJobTaggingInput {
  AccountId: String!
  JobId: String!
  Tags: [AwsS3ControlS1rInput]!
}

input AwsS3ControlPutPublicAccessBlockInput {
  PublicAccessBlockConfiguration: AwsS3ControlS7Input!
  AccountId: String!
}

input AwsS3ControlPutStorageLensConfigurationInput {
  ConfigId: String!
  AccountId: String!
  StorageLensConfiguration: AwsS3ControlS59Input!
  Tags: [AwsS3ControlS62Input]
}

input AwsS3ControlS59Input {
  Id: String!
  AccountLevel: AwsS3ControlS59AccountLevelInput!
  Include: AwsS3ControlS59IncludeInput
  Exclude: AwsS3ControlS59ExcludeInput
  DataExport: AwsS3ControlS59DataExportInput
  IsEnabled: Boolean!
  AwsOrg: AwsS3ControlS59AwsOrgInput
  StorageLensArn: String
}

input AwsS3ControlS59AccountLevelInput {
  ActivityMetrics: AwsS3ControlS5bInput
  BucketLevel: AwsS3ControlS59AccountLevelBucketLevelInput!
}

input AwsS3ControlS5bInput {
  IsEnabled: Boolean
}

input AwsS3ControlS59AccountLevelBucketLevelInput {
  ActivityMetrics: AwsS3ControlS5bInput
  PrefixLevel: AwsS3ControlS59AccountLevelBucketLevelPrefixLevelInput
}

input AwsS3ControlS59AccountLevelBucketLevelPrefixLevelInput {
  StorageMetrics: AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsInput!
}

input AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsInput {
  IsEnabled: Boolean
  SelectionCriteria: AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaInput
}

input AwsS3ControlS59AccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteriaInput {
  Delimiter: String
  MaxDepth: Int
  MinStorageBytesPercentage: JSON
}

input AwsS3ControlS59IncludeInput {
  Buckets: [String]
  Regions: [String]
}

input AwsS3ControlS59ExcludeInput {
  Buckets: [String]
  Regions: [String]
}

input AwsS3ControlS59DataExportInput {
  S3BucketDestination: AwsS3ControlS59DataExportS3BucketDestinationInput!
}

input AwsS3ControlS59DataExportS3BucketDestinationInput {
  Format: String!
  OutputSchemaVersion: String!
  AccountId: String!
  Arn: String!
  Prefix: String
  Encryption: AwsS3ControlS59DataExportS3BucketDestinationEncryptionInput
}

input AwsS3ControlS59DataExportS3BucketDestinationEncryptionInput {
  SSES3: JSON
  SSEKMS: AwsS3ControlS59DataExportS3BucketDestinationEncryptionSSEKMSInput
}

input AwsS3ControlS59DataExportS3BucketDestinationEncryptionSSEKMSInput {
  KeyId: String!
}

input AwsS3ControlS59AwsOrgInput {
  Arn: String!
}

input AwsS3ControlS62Input {
  Key: String!
  Value: String!
}

input AwsS3ControlPutStorageLensConfigurationTaggingInput {
  ConfigId: String!
  AccountId: String!
  Tags: [AwsS3ControlS62Input]!
}

type AwsS3ControlUpdateJobPriorityOutput {
  JobId: String!
  Priority: Int!
}

input AwsS3ControlUpdateJobPriorityInput {
  AccountId: String!
  JobId: String!
  Priority: Int!
}

type AwsS3ControlUpdateJobStatusOutput {
  JobId: String
  Status: String
  StatusUpdateReason: String
}

input AwsS3ControlUpdateJobStatusInput {
  AccountId: String!
  JobId: String!
  RequestedJobStatus: String!
  StatusUpdateReason: String
}

"""Amazon S3 on Outposts (2017-07-25)"""
type AwsS3Outposts {
  createEndpoint(input: AwsS3OutpostsCreateEndpointInput!, config: AwsConfig): AwsS3OutpostsCreateEndpointOutput
  deleteEndpoint(input: AwsS3OutpostsDeleteEndpointInput!, config: AwsConfig): JSON
  listEndpoints(input: AwsS3OutpostsListEndpointsInput, config: AwsConfig): AwsS3OutpostsListEndpointsOutput
}

type AwsS3OutpostsCreateEndpointOutput {
  EndpointArn: String
}

input AwsS3OutpostsCreateEndpointInput {
  OutpostId: String!
  SubnetId: String!
  SecurityGroupId: String!
}

input AwsS3OutpostsDeleteEndpointInput {
  EndpointId: String!
  OutpostId: String!
}

type AwsS3OutpostsListEndpointsOutput {
  Endpoints: [AwsS3OutpostsListEndpointsOutputEndpoints]
  NextToken: String
}

type AwsS3OutpostsListEndpointsOutputEndpoints {
  EndpointArn: String
  OutpostsId: String
  CidrBlock: String
  Status: String
  CreationTime: Date
  NetworkInterfaces: [AwsS3OutpostsListEndpointsOutputEndpointsNetworkInterfaces]
}

type AwsS3OutpostsListEndpointsOutputEndpointsNetworkInterfaces {
  NetworkInterfaceId: String
}

input AwsS3OutpostsListEndpointsInput {
  NextToken: String
  MaxResults: Int
}

"""Amazon Simple Email Service (2010-12-01)"""
type AwsSES {
  cloneReceiptRuleSet(input: AwsSESCloneReceiptRuleSetInput!, config: AwsConfig): JSON
  createConfigurationSet(input: AwsSESCreateConfigurationSetInput!, config: AwsConfig): JSON
  createConfigurationSetEventDestination(input: AwsSESCreateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  createConfigurationSetTrackingOptions(input: AwsSESCreateConfigurationSetTrackingOptionsInput!, config: AwsConfig): JSON
  createCustomVerificationEmailTemplate(input: AwsSESCreateCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  createReceiptFilter(input: AwsSESCreateReceiptFilterInput!, config: AwsConfig): JSON
  createReceiptRule(input: AwsSESCreateReceiptRuleInput!, config: AwsConfig): JSON
  createReceiptRuleSet(input: AwsSESCreateReceiptRuleSetInput!, config: AwsConfig): JSON
  createTemplate(input: AwsSESCreateTemplateInput!, config: AwsConfig): JSON
  deleteConfigurationSet(input: AwsSESDeleteConfigurationSetInput!, config: AwsConfig): JSON
  deleteConfigurationSetEventDestination(input: AwsSESDeleteConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  deleteConfigurationSetTrackingOptions(input: AwsSESDeleteConfigurationSetTrackingOptionsInput!, config: AwsConfig): JSON
  deleteCustomVerificationEmailTemplate(input: AwsSESDeleteCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  deleteIdentity(input: AwsSESDeleteIdentityInput!, config: AwsConfig): JSON
  deleteIdentityPolicy(input: AwsSESDeleteIdentityPolicyInput!, config: AwsConfig): JSON
  deleteReceiptFilter(input: AwsSESDeleteReceiptFilterInput!, config: AwsConfig): JSON
  deleteReceiptRule(input: AwsSESDeleteReceiptRuleInput!, config: AwsConfig): JSON
  deleteReceiptRuleSet(input: AwsSESDeleteReceiptRuleSetInput!, config: AwsConfig): JSON
  deleteTemplate(input: AwsSESDeleteTemplateInput!, config: AwsConfig): JSON
  deleteVerifiedEmailAddress(input: AwsSESDeleteVerifiedEmailAddressInput!, config: AwsConfig): JSON
  describeActiveReceiptRuleSet(input: JSON, config: AwsConfig): AwsSESDescribeActiveReceiptRuleSetOutput
  describeConfigurationSet(input: AwsSESDescribeConfigurationSetInput!, config: AwsConfig): AwsSESDescribeConfigurationSetOutput
  describeReceiptRule(input: AwsSESDescribeReceiptRuleInput!, config: AwsConfig): AwsSESDescribeReceiptRuleOutput
  describeReceiptRuleSet(input: AwsSESDescribeReceiptRuleSetInput!, config: AwsConfig): AwsSESDescribeReceiptRuleSetOutput
  getAccountSendingEnabled(config: AwsConfig): AwsSESGetAccountSendingEnabledOutput
  getCustomVerificationEmailTemplate(input: AwsSESGetCustomVerificationEmailTemplateInput!, config: AwsConfig): AwsSESGetCustomVerificationEmailTemplateOutput
  getIdentityDkimAttributes(input: AwsSESGetIdentityDkimAttributesInput!, config: AwsConfig): AwsSESGetIdentityDkimAttributesOutput
  getIdentityMailFromDomainAttributes(input: AwsSESGetIdentityMailFromDomainAttributesInput!, config: AwsConfig): AwsSESGetIdentityMailFromDomainAttributesOutput
  getIdentityNotificationAttributes(input: AwsSESGetIdentityNotificationAttributesInput!, config: AwsConfig): AwsSESGetIdentityNotificationAttributesOutput
  getIdentityPolicies(input: AwsSESGetIdentityPoliciesInput!, config: AwsConfig): AwsSESGetIdentityPoliciesOutput
  getIdentityVerificationAttributes(input: AwsSESGetIdentityVerificationAttributesInput!, config: AwsConfig): AwsSESGetIdentityVerificationAttributesOutput
  getSendQuota(config: AwsConfig): AwsSESGetSendQuotaOutput
  getSendStatistics(config: AwsConfig): AwsSESGetSendStatisticsOutput
  getTemplate(input: AwsSESGetTemplateInput!, config: AwsConfig): AwsSESGetTemplateOutput
  listConfigurationSets(input: AwsSESListConfigurationSetsInput, config: AwsConfig): AwsSESListConfigurationSetsOutput
  listCustomVerificationEmailTemplates(input: AwsSESListCustomVerificationEmailTemplatesInput, config: AwsConfig): AwsSESListCustomVerificationEmailTemplatesOutput
  listIdentities(input: AwsSESListIdentitiesInput, config: AwsConfig): AwsSESListIdentitiesOutput
  listIdentityPolicies(input: AwsSESListIdentityPoliciesInput!, config: AwsConfig): AwsSESListIdentityPoliciesOutput
  listReceiptFilters(input: JSON, config: AwsConfig): AwsSESListReceiptFiltersOutput
  listReceiptRuleSets(input: AwsSESListReceiptRuleSetsInput, config: AwsConfig): AwsSESListReceiptRuleSetsOutput
  listTemplates(input: AwsSESListTemplatesInput, config: AwsConfig): AwsSESListTemplatesOutput
  listVerifiedEmailAddresses(config: AwsConfig): AwsSESListVerifiedEmailAddressesOutput
  putConfigurationSetDeliveryOptions(input: AwsSESPutConfigurationSetDeliveryOptionsInput!, config: AwsConfig): JSON
  putIdentityPolicy(input: AwsSESPutIdentityPolicyInput!, config: AwsConfig): JSON
  reorderReceiptRuleSet(input: AwsSESReorderReceiptRuleSetInput!, config: AwsConfig): JSON
  sendBounce(input: AwsSESSendBounceInput!, config: AwsConfig): AwsSESSendBounceOutput
  sendBulkTemplatedEmail(input: AwsSESSendBulkTemplatedEmailInput!, config: AwsConfig): AwsSESSendBulkTemplatedEmailOutput
  sendCustomVerificationEmail(input: AwsSESSendCustomVerificationEmailInput!, config: AwsConfig): AwsSESSendCustomVerificationEmailOutput
  sendEmail(input: AwsSESSendEmailInput!, config: AwsConfig): AwsSESSendEmailOutput
  sendRawEmail(input: AwsSESSendRawEmailInput!, config: AwsConfig): AwsSESSendRawEmailOutput
  sendTemplatedEmail(input: AwsSESSendTemplatedEmailInput!, config: AwsConfig): AwsSESSendTemplatedEmailOutput
  setActiveReceiptRuleSet(input: AwsSESSetActiveReceiptRuleSetInput, config: AwsConfig): JSON
  setIdentityDkimEnabled(input: AwsSESSetIdentityDkimEnabledInput!, config: AwsConfig): JSON
  setIdentityFeedbackForwardingEnabled(input: AwsSESSetIdentityFeedbackForwardingEnabledInput!, config: AwsConfig): JSON
  setIdentityHeadersInNotificationsEnabled(input: AwsSESSetIdentityHeadersInNotificationsEnabledInput!, config: AwsConfig): JSON
  setIdentityMailFromDomain(input: AwsSESSetIdentityMailFromDomainInput!, config: AwsConfig): JSON
  setIdentityNotificationTopic(input: AwsSESSetIdentityNotificationTopicInput!, config: AwsConfig): JSON
  setReceiptRulePosition(input: AwsSESSetReceiptRulePositionInput!, config: AwsConfig): JSON
  testRenderTemplate(input: AwsSESTestRenderTemplateInput!, config: AwsConfig): AwsSESTestRenderTemplateOutput
  updateAccountSendingEnabled(input: AwsSESUpdateAccountSendingEnabledInput, config: AwsConfig): JSON
  updateConfigurationSetEventDestination(input: AwsSESUpdateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  updateConfigurationSetReputationMetricsEnabled(input: AwsSESUpdateConfigurationSetReputationMetricsEnabledInput!, config: AwsConfig): JSON
  updateConfigurationSetSendingEnabled(input: AwsSESUpdateConfigurationSetSendingEnabledInput!, config: AwsConfig): JSON
  updateConfigurationSetTrackingOptions(input: AwsSESUpdateConfigurationSetTrackingOptionsInput!, config: AwsConfig): JSON
  updateCustomVerificationEmailTemplate(input: AwsSESUpdateCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  updateReceiptRule(input: AwsSESUpdateReceiptRuleInput!, config: AwsConfig): JSON
  updateTemplate(input: AwsSESUpdateTemplateInput!, config: AwsConfig): JSON
  verifyDomainDkim(input: AwsSESVerifyDomainDkimInput!, config: AwsConfig): AwsSESVerifyDomainDkimOutput
  verifyDomainIdentity(input: AwsSESVerifyDomainIdentityInput!, config: AwsConfig): AwsSESVerifyDomainIdentityOutput
  verifyEmailAddress(input: AwsSESVerifyEmailAddressInput!, config: AwsConfig): JSON
  verifyEmailIdentity(input: AwsSESVerifyEmailIdentityInput!, config: AwsConfig): JSON
}

input AwsSESCloneReceiptRuleSetInput {
  RuleSetName: String!
  OriginalRuleSetName: String!
}

input AwsSESCreateConfigurationSetInput {
  ConfigurationSet: AwsSESS5Input!
}

input AwsSESS5Input {
  Name: String!
}

input AwsSESCreateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestination: AwsSESS9Input!
}

input AwsSESS9Input {
  Name: String!
  Enabled: Boolean
  MatchingEventTypes: [String]!
  KinesisFirehoseDestination: AwsSESS9KinesisFirehoseDestinationInput
  CloudWatchDestination: AwsSESS9CloudWatchDestinationInput
  SNSDestination: AwsSESS9SNSDestinationInput
}

input AwsSESS9KinesisFirehoseDestinationInput {
  IAMRoleARN: String!
  DeliveryStreamARN: String!
}

input AwsSESS9CloudWatchDestinationInput {
  DimensionConfigurations: [AwsSESS9CloudWatchDestinationDimensionConfigurationsInput]!
}

input AwsSESS9CloudWatchDestinationDimensionConfigurationsInput {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

input AwsSESS9SNSDestinationInput {
  TopicARN: String!
}

input AwsSESCreateConfigurationSetTrackingOptionsInput {
  ConfigurationSetName: String!
  TrackingOptions: AwsSESSpInput!
}

input AwsSESSpInput {
  CustomRedirectDomain: String
}

input AwsSESCreateCustomVerificationEmailTemplateInput {
  TemplateName: String!
  FromEmailAddress: String!
  TemplateSubject: String!
  TemplateContent: String!
  SuccessRedirectionURL: String!
  FailureRedirectionURL: String!
}

input AwsSESCreateReceiptFilterInput {
  Filter: AwsSESS10Input!
}

input AwsSESS10Input {
  Name: String!
  IpFilter: AwsSESS10IpFilterInput!
}

input AwsSESS10IpFilterInput {
  Policy: String!
  Cidr: String!
}

input AwsSESCreateReceiptRuleInput {
  RuleSetName: String!
  After: String
  Rule: AwsSESS18Input!
}

input AwsSESS18Input {
  Name: String!
  Enabled: Boolean
  TlsPolicy: String
  Recipients: [String]
  Actions: [AwsSESS18ActionsInput]
  ScanEnabled: Boolean
}

input AwsSESS18ActionsInput {
  S3Action: AwsSESS18ActionsS3ActionInput
  BounceAction: AwsSESS18ActionsBounceActionInput
  WorkmailAction: AwsSESS18ActionsWorkmailActionInput
  LambdaAction: AwsSESS18ActionsLambdaActionInput
  StopAction: AwsSESS18ActionsStopActionInput
  AddHeaderAction: AwsSESS18ActionsAddHeaderActionInput
  SNSAction: AwsSESS18ActionsSNSActionInput
}

input AwsSESS18ActionsS3ActionInput {
  TopicArn: String
  BucketName: String!
  ObjectKeyPrefix: String
  KmsKeyArn: String
}

input AwsSESS18ActionsBounceActionInput {
  TopicArn: String
  SmtpReplyCode: String!
  StatusCode: String
  Message: String!
  Sender: String!
}

input AwsSESS18ActionsWorkmailActionInput {
  TopicArn: String
  OrganizationArn: String!
}

input AwsSESS18ActionsLambdaActionInput {
  TopicArn: String
  FunctionArn: String!
  InvocationType: String
}

input AwsSESS18ActionsStopActionInput {
  Scope: String!
  TopicArn: String
}

input AwsSESS18ActionsAddHeaderActionInput {
  HeaderName: String!
  HeaderValue: String!
}

input AwsSESS18ActionsSNSActionInput {
  TopicArn: String!
  Encoding: String
}

input AwsSESCreateReceiptRuleSetInput {
  RuleSetName: String!
}

input AwsSESCreateTemplateInput {
  Template: AwsSESS20Input!
}

input AwsSESS20Input {
  TemplateName: String!
  SubjectPart: String
  TextPart: String
  HtmlPart: String
}

input AwsSESDeleteConfigurationSetInput {
  ConfigurationSetName: String!
}

input AwsSESDeleteConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
}

input AwsSESDeleteConfigurationSetTrackingOptionsInput {
  ConfigurationSetName: String!
}

input AwsSESDeleteCustomVerificationEmailTemplateInput {
  TemplateName: String!
}

input AwsSESDeleteIdentityInput {
  Identity: String!
}

input AwsSESDeleteIdentityPolicyInput {
  Identity: String!
  PolicyName: String!
}

input AwsSESDeleteReceiptFilterInput {
  FilterName: String!
}

input AwsSESDeleteReceiptRuleInput {
  RuleSetName: String!
  RuleName: String!
}

input AwsSESDeleteReceiptRuleSetInput {
  RuleSetName: String!
}

input AwsSESDeleteTemplateInput {
  TemplateName: String!
}

input AwsSESDeleteVerifiedEmailAddressInput {
  EmailAddress: String!
}

type AwsSESDescribeActiveReceiptRuleSetOutput {
  Metadata: AwsSESS2t
  Rules: [AwsSESS18]
}

type AwsSESS2t {
  Name: String
  CreatedTimestamp: Date
}

type AwsSESS18 {
  Name: String!
  Enabled: Boolean
  TlsPolicy: String
  Recipients: [String]
  Actions: [AwsSESS18Actions]
  ScanEnabled: Boolean
}

type AwsSESS18Actions {
  S3Action: AwsSESS18ActionsS3Action
  BounceAction: AwsSESS18ActionsBounceAction
  WorkmailAction: AwsSESS18ActionsWorkmailAction
  LambdaAction: AwsSESS18ActionsLambdaAction
  StopAction: AwsSESS18ActionsStopAction
  AddHeaderAction: AwsSESS18ActionsAddHeaderAction
  SNSAction: AwsSESS18ActionsSNSAction
}

type AwsSESS18ActionsS3Action {
  TopicArn: String
  BucketName: String!
  ObjectKeyPrefix: String
  KmsKeyArn: String
}

type AwsSESS18ActionsBounceAction {
  TopicArn: String
  SmtpReplyCode: String!
  StatusCode: String
  Message: String!
  Sender: String!
}

type AwsSESS18ActionsWorkmailAction {
  TopicArn: String
  OrganizationArn: String!
}

type AwsSESS18ActionsLambdaAction {
  TopicArn: String
  FunctionArn: String!
  InvocationType: String
}

type AwsSESS18ActionsStopAction {
  Scope: String!
  TopicArn: String
}

type AwsSESS18ActionsAddHeaderAction {
  HeaderName: String!
  HeaderValue: String!
}

type AwsSESS18ActionsSNSAction {
  TopicArn: String!
  Encoding: String
}

type AwsSESDescribeConfigurationSetOutput {
  ConfigurationSet: AwsSESS5
  EventDestinations: [AwsSESS9]
  TrackingOptions: AwsSESSp
  DeliveryOptions: AwsSESS31
  ReputationOptions: AwsSESDescribeConfigurationSetOutputReputationOptions
}

type AwsSESS5 {
  Name: String!
}

type AwsSESS9 {
  Name: String!
  Enabled: Boolean
  MatchingEventTypes: [String]!
  KinesisFirehoseDestination: AwsSESS9KinesisFirehoseDestination
  CloudWatchDestination: AwsSESS9CloudWatchDestination
  SNSDestination: AwsSESS9SNSDestination
}

type AwsSESS9KinesisFirehoseDestination {
  IAMRoleARN: String!
  DeliveryStreamARN: String!
}

type AwsSESS9CloudWatchDestination {
  DimensionConfigurations: [AwsSESS9CloudWatchDestinationDimensionConfigurations]!
}

type AwsSESS9CloudWatchDestinationDimensionConfigurations {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

type AwsSESS9SNSDestination {
  TopicARN: String!
}

type AwsSESSp {
  CustomRedirectDomain: String
}

type AwsSESS31 {
  TlsPolicy: String
}

type AwsSESDescribeConfigurationSetOutputReputationOptions {
  SendingEnabled: Boolean
  ReputationMetricsEnabled: Boolean
  LastFreshStart: Date
}

input AwsSESDescribeConfigurationSetInput {
  ConfigurationSetName: String!
  ConfigurationSetAttributeNames: [String]
}

type AwsSESDescribeReceiptRuleOutput {
  Rule: AwsSESS18
}

input AwsSESDescribeReceiptRuleInput {
  RuleSetName: String!
  RuleName: String!
}

type AwsSESDescribeReceiptRuleSetOutput {
  Metadata: AwsSESS2t
  Rules: [AwsSESS18]
}

input AwsSESDescribeReceiptRuleSetInput {
  RuleSetName: String!
}

type AwsSESGetAccountSendingEnabledOutput {
  Enabled: Boolean
}

type AwsSESGetCustomVerificationEmailTemplateOutput {
  TemplateName: String
  FromEmailAddress: String
  TemplateSubject: String
  TemplateContent: String
  SuccessRedirectionURL: String
  FailureRedirectionURL: String
}

input AwsSESGetCustomVerificationEmailTemplateInput {
  TemplateName: String!
}

type AwsSESGetIdentityDkimAttributesOutput {
  DkimAttributes: JSON!
}

input AwsSESGetIdentityDkimAttributesInput {
  Identities: [String]!
}

type AwsSESGetIdentityMailFromDomainAttributesOutput {
  MailFromDomainAttributes: JSON!
}

input AwsSESGetIdentityMailFromDomainAttributesInput {
  Identities: [String]!
}

type AwsSESGetIdentityNotificationAttributesOutput {
  NotificationAttributes: JSON!
}

input AwsSESGetIdentityNotificationAttributesInput {
  Identities: [String]!
}

type AwsSESGetIdentityPoliciesOutput {
  Policies: JSON!
}

input AwsSESGetIdentityPoliciesInput {
  Identity: String!
  PolicyNames: [String]!
}

type AwsSESGetIdentityVerificationAttributesOutput {
  VerificationAttributes: JSON!
}

input AwsSESGetIdentityVerificationAttributesInput {
  Identities: [String]!
}

type AwsSESGetSendQuotaOutput {
  Max24HourSend: JSON
  MaxSendRate: JSON
  SentLast24Hours: JSON
}

type AwsSESGetSendStatisticsOutput {
  SendDataPoints: [AwsSESGetSendStatisticsOutputSendDataPoints]
}

type AwsSESGetSendStatisticsOutputSendDataPoints {
  Timestamp: Date
  DeliveryAttempts: JSON
  Bounces: JSON
  Complaints: JSON
  Rejects: JSON
}

type AwsSESGetTemplateOutput {
  Template: AwsSESS20
}

type AwsSESS20 {
  TemplateName: String!
  SubjectPart: String
  TextPart: String
  HtmlPart: String
}

input AwsSESGetTemplateInput {
  TemplateName: String!
}

type AwsSESListConfigurationSetsOutput {
  ConfigurationSets: [AwsSESS5]
  NextToken: String
}

input AwsSESListConfigurationSetsInput {
  NextToken: String
  MaxItems: Int
}

type AwsSESListCustomVerificationEmailTemplatesOutput {
  CustomVerificationEmailTemplates: [AwsSESListCustomVerificationEmailTemplatesOutputCustomVerificationEmailTemplates]
  NextToken: String
}

type AwsSESListCustomVerificationEmailTemplatesOutputCustomVerificationEmailTemplates {
  TemplateName: String
  FromEmailAddress: String
  TemplateSubject: String
  SuccessRedirectionURL: String
  FailureRedirectionURL: String
}

input AwsSESListCustomVerificationEmailTemplatesInput {
  NextToken: String
  MaxResults: Int
}

type AwsSESListIdentitiesOutput {
  Identities: [String]!
  NextToken: String
}

input AwsSESListIdentitiesInput {
  IdentityType: String
  NextToken: String
  MaxItems: Int
}

type AwsSESListIdentityPoliciesOutput {
  PolicyNames: [String]!
}

input AwsSESListIdentityPoliciesInput {
  Identity: String!
}

type AwsSESListReceiptFiltersOutput {
  Filters: [AwsSESS10]
}

type AwsSESS10 {
  Name: String!
  IpFilter: AwsSESS10IpFilter!
}

type AwsSESS10IpFilter {
  Policy: String!
  Cidr: String!
}

type AwsSESListReceiptRuleSetsOutput {
  RuleSets: [AwsSESS2t]
  NextToken: String
}

input AwsSESListReceiptRuleSetsInput {
  NextToken: String
}

type AwsSESListTemplatesOutput {
  TemplatesMetadata: [AwsSESListTemplatesOutputTemplatesMetadata]
  NextToken: String
}

type AwsSESListTemplatesOutputTemplatesMetadata {
  Name: String
  CreatedTimestamp: Date
}

input AwsSESListTemplatesInput {
  NextToken: String
  MaxItems: Int
}

type AwsSESListVerifiedEmailAddressesOutput {
  VerifiedEmailAddresses: [String]
}

input AwsSESPutConfigurationSetDeliveryOptionsInput {
  ConfigurationSetName: String!
  DeliveryOptions: AwsSESS31Input
}

input AwsSESS31Input {
  TlsPolicy: String
}

input AwsSESPutIdentityPolicyInput {
  Identity: String!
  PolicyName: String!
  Policy: String!
}

input AwsSESReorderReceiptRuleSetInput {
  RuleSetName: String!
  RuleNames: [String]!
}

type AwsSESSendBounceOutput {
  MessageId: String
}

input AwsSESSendBounceInput {
  OriginalMessageId: String!
  BounceSender: String!
  Explanation: String
  MessageDsn: AwsSESSendBounceMessageDsnInput
  BouncedRecipientInfoList: [AwsSESSendBounceBouncedRecipientInfoListInput]!
  BounceSenderArn: String
}

input AwsSESSendBounceMessageDsnInput {
  ReportingMta: String!
  ArrivalDate: Date
  ExtensionFields: [AwsSESS5iInput]
}

input AwsSESS5iInput {
  Name: String!
  Value: String!
}

input AwsSESSendBounceBouncedRecipientInfoListInput {
  Recipient: String!
  RecipientArn: String
  BounceType: String
  RecipientDsnFields: AwsSESSendBounceBouncedRecipientInfoListRecipientDsnFieldsInput
}

input AwsSESSendBounceBouncedRecipientInfoListRecipientDsnFieldsInput {
  FinalRecipient: String
  Action: String!
  RemoteMta: String
  Status: String!
  DiagnosticCode: String
  LastAttemptDate: Date
  ExtensionFields: [AwsSESS5iInput]
}

type AwsSESSendBulkTemplatedEmailOutput {
  Status: [AwsSESSendBulkTemplatedEmailOutputStatus]!
}

type AwsSESSendBulkTemplatedEmailOutputStatus {
  Status: String
  Error: String
  MessageId: String
}

input AwsSESSendBulkTemplatedEmailInput {
  Source: String!
  SourceArn: String
  ReplyToAddresses: [String]
  ReturnPath: String
  ReturnPathArn: String
  ConfigurationSetName: String
  DefaultTags: [AwsSESS5xInput]
  Template: String!
  TemplateArn: String
  DefaultTemplateData: String
  Destinations: [AwsSESSendBulkTemplatedEmailDestinationsInput]!
}

input AwsSESS5xInput {
  Name: String!
  Value: String!
}

input AwsSESSendBulkTemplatedEmailDestinationsInput {
  Destination: AwsSESS64Input!
  ReplacementTags: [AwsSESS5xInput]
  ReplacementTemplateData: String
}

input AwsSESS64Input {
  ToAddresses: [String]
  CcAddresses: [String]
  BccAddresses: [String]
}

type AwsSESSendCustomVerificationEmailOutput {
  MessageId: String
}

input AwsSESSendCustomVerificationEmailInput {
  EmailAddress: String!
  TemplateName: String!
  ConfigurationSetName: String
}

type AwsSESSendEmailOutput {
  MessageId: String!
}

input AwsSESSendEmailInput {
  Source: String!
  Destination: AwsSESS64Input!
  Message: AwsSESSendEmailMessageInput!
  ReplyToAddresses: [String]
  ReturnPath: String
  SourceArn: String
  ReturnPathArn: String
  Tags: [AwsSESS5xInput]
  ConfigurationSetName: String
}

input AwsSESSendEmailMessageInput {
  Subject: AwsSESS6eInput!
  Body: AwsSESSendEmailMessageBodyInput!
}

input AwsSESS6eInput {
  Data: String!
  Charset: String
}

input AwsSESSendEmailMessageBodyInput {
  Text: AwsSESS6eInput
  Html: AwsSESS6eInput
}

type AwsSESSendRawEmailOutput {
  MessageId: String!
}

input AwsSESSendRawEmailInput {
  Source: String
  Destinations: [String]
  RawMessage: AwsSESSendRawEmailRawMessageInput!
  FromArn: String
  SourceArn: String
  ReturnPathArn: String
  Tags: [AwsSESS5xInput]
  ConfigurationSetName: String
}

input AwsSESSendRawEmailRawMessageInput {
  Data: JSON!
}

type AwsSESSendTemplatedEmailOutput {
  MessageId: String!
}

input AwsSESSendTemplatedEmailInput {
  Source: String!
  Destination: AwsSESS64Input!
  ReplyToAddresses: [String]
  ReturnPath: String
  SourceArn: String
  ReturnPathArn: String
  Tags: [AwsSESS5xInput]
  ConfigurationSetName: String
  Template: String!
  TemplateArn: String
  TemplateData: String!
}

input AwsSESSetActiveReceiptRuleSetInput {
  RuleSetName: String
}

input AwsSESSetIdentityDkimEnabledInput {
  Identity: String!
  DkimEnabled: Boolean!
}

input AwsSESSetIdentityFeedbackForwardingEnabledInput {
  Identity: String!
  ForwardingEnabled: Boolean!
}

input AwsSESSetIdentityHeadersInNotificationsEnabledInput {
  Identity: String!
  NotificationType: String!
  Enabled: Boolean!
}

input AwsSESSetIdentityMailFromDomainInput {
  Identity: String!
  MailFromDomain: String
  BehaviorOnMXFailure: String
}

input AwsSESSetIdentityNotificationTopicInput {
  Identity: String!
  NotificationType: String!
  SnsTopic: String
}

input AwsSESSetReceiptRulePositionInput {
  RuleSetName: String!
  RuleName: String!
  After: String
}

type AwsSESTestRenderTemplateOutput {
  RenderedTemplate: String
}

input AwsSESTestRenderTemplateInput {
  TemplateName: String!
  TemplateData: String!
}

input AwsSESUpdateAccountSendingEnabledInput {
  Enabled: Boolean
}

input AwsSESUpdateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestination: AwsSESS9Input!
}

input AwsSESUpdateConfigurationSetReputationMetricsEnabledInput {
  ConfigurationSetName: String!
  Enabled: Boolean!
}

input AwsSESUpdateConfigurationSetSendingEnabledInput {
  ConfigurationSetName: String!
  Enabled: Boolean!
}

input AwsSESUpdateConfigurationSetTrackingOptionsInput {
  ConfigurationSetName: String!
  TrackingOptions: AwsSESSpInput!
}

input AwsSESUpdateCustomVerificationEmailTemplateInput {
  TemplateName: String!
  FromEmailAddress: String
  TemplateSubject: String
  TemplateContent: String
  SuccessRedirectionURL: String
  FailureRedirectionURL: String
}

input AwsSESUpdateReceiptRuleInput {
  RuleSetName: String!
  Rule: AwsSESS18Input!
}

input AwsSESUpdateTemplateInput {
  Template: AwsSESS20Input!
}

type AwsSESVerifyDomainDkimOutput {
  DkimTokens: [String]!
}

input AwsSESVerifyDomainDkimInput {
  Domain: String!
}

type AwsSESVerifyDomainIdentityOutput {
  VerificationToken: String!
}

input AwsSESVerifyDomainIdentityInput {
  Domain: String!
}

input AwsSESVerifyEmailAddressInput {
  EmailAddress: String!
}

input AwsSESVerifyEmailIdentityInput {
  EmailAddress: String!
}

"""Amazon Simple Email Service (2019-09-27)"""
type AwsSESV2 {
  createConfigurationSet(input: AwsSESV2CreateConfigurationSetInput!, config: AwsConfig): JSON
  createConfigurationSetEventDestination(input: AwsSESV2CreateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  createContact(input: AwsSESV2CreateContactInput!, config: AwsConfig): JSON
  createContactList(input: AwsSESV2CreateContactListInput!, config: AwsConfig): JSON
  createCustomVerificationEmailTemplate(input: AwsSESV2CreateCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  createDedicatedIpPool(input: AwsSESV2CreateDedicatedIpPoolInput!, config: AwsConfig): JSON
  createDeliverabilityTestReport(input: AwsSESV2CreateDeliverabilityTestReportInput!, config: AwsConfig): AwsSESV2CreateDeliverabilityTestReportOutput
  createEmailIdentity(input: AwsSESV2CreateEmailIdentityInput!, config: AwsConfig): AwsSESV2CreateEmailIdentityOutput
  createEmailIdentityPolicy(input: AwsSESV2CreateEmailIdentityPolicyInput!, config: AwsConfig): JSON
  createEmailTemplate(input: AwsSESV2CreateEmailTemplateInput!, config: AwsConfig): JSON
  createImportJob(input: AwsSESV2CreateImportJobInput!, config: AwsConfig): AwsSESV2CreateImportJobOutput
  deleteConfigurationSet(input: AwsSESV2DeleteConfigurationSetInput!, config: AwsConfig): JSON
  deleteConfigurationSetEventDestination(input: AwsSESV2DeleteConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  deleteContact(input: AwsSESV2DeleteContactInput!, config: AwsConfig): JSON
  deleteContactList(input: AwsSESV2DeleteContactListInput!, config: AwsConfig): JSON
  deleteCustomVerificationEmailTemplate(input: AwsSESV2DeleteCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  deleteDedicatedIpPool(input: AwsSESV2DeleteDedicatedIpPoolInput!, config: AwsConfig): JSON
  deleteEmailIdentity(input: AwsSESV2DeleteEmailIdentityInput!, config: AwsConfig): JSON
  deleteEmailIdentityPolicy(input: AwsSESV2DeleteEmailIdentityPolicyInput!, config: AwsConfig): JSON
  deleteEmailTemplate(input: AwsSESV2DeleteEmailTemplateInput!, config: AwsConfig): JSON
  deleteSuppressedDestination(input: AwsSESV2DeleteSuppressedDestinationInput!, config: AwsConfig): JSON
  getAccount(input: JSON, config: AwsConfig): AwsSESV2GetAccountOutput
  getBlacklistReports(input: AwsSESV2GetBlacklistReportsInput!, config: AwsConfig): AwsSESV2GetBlacklistReportsOutput
  getConfigurationSet(input: AwsSESV2GetConfigurationSetInput!, config: AwsConfig): AwsSESV2GetConfigurationSetOutput
  getConfigurationSetEventDestinations(input: AwsSESV2GetConfigurationSetEventDestinationsInput!, config: AwsConfig): AwsSESV2GetConfigurationSetEventDestinationsOutput
  getContact(input: AwsSESV2GetContactInput!, config: AwsConfig): AwsSESV2GetContactOutput
  getContactList(input: AwsSESV2GetContactListInput!, config: AwsConfig): AwsSESV2GetContactListOutput
  getCustomVerificationEmailTemplate(input: AwsSESV2GetCustomVerificationEmailTemplateInput!, config: AwsConfig): AwsSESV2GetCustomVerificationEmailTemplateOutput
  getDedicatedIp(input: AwsSESV2GetDedicatedIpInput!, config: AwsConfig): AwsSESV2GetDedicatedIpOutput
  getDedicatedIps(input: AwsSESV2GetDedicatedIpsInput, config: AwsConfig): AwsSESV2GetDedicatedIpsOutput
  getDeliverabilityDashboardOptions(input: JSON, config: AwsConfig): AwsSESV2GetDeliverabilityDashboardOptionsOutput
  getDeliverabilityTestReport(input: AwsSESV2GetDeliverabilityTestReportInput!, config: AwsConfig): AwsSESV2GetDeliverabilityTestReportOutput
  getDomainDeliverabilityCampaign(input: AwsSESV2GetDomainDeliverabilityCampaignInput!, config: AwsConfig): AwsSESV2GetDomainDeliverabilityCampaignOutput
  getDomainStatisticsReport(input: AwsSESV2GetDomainStatisticsReportInput!, config: AwsConfig): AwsSESV2GetDomainStatisticsReportOutput
  getEmailIdentity(input: AwsSESV2GetEmailIdentityInput!, config: AwsConfig): AwsSESV2GetEmailIdentityOutput
  getEmailIdentityPolicies(input: AwsSESV2GetEmailIdentityPoliciesInput!, config: AwsConfig): AwsSESV2GetEmailIdentityPoliciesOutput
  getEmailTemplate(input: AwsSESV2GetEmailTemplateInput!, config: AwsConfig): AwsSESV2GetEmailTemplateOutput
  getImportJob(input: AwsSESV2GetImportJobInput!, config: AwsConfig): AwsSESV2GetImportJobOutput
  getSuppressedDestination(input: AwsSESV2GetSuppressedDestinationInput!, config: AwsConfig): AwsSESV2GetSuppressedDestinationOutput
  listConfigurationSets(input: AwsSESV2ListConfigurationSetsInput, config: AwsConfig): AwsSESV2ListConfigurationSetsOutput
  listContactLists(input: AwsSESV2ListContactListsInput, config: AwsConfig): AwsSESV2ListContactListsOutput
  listContacts(input: AwsSESV2ListContactsInput!, config: AwsConfig): AwsSESV2ListContactsOutput
  listCustomVerificationEmailTemplates(input: AwsSESV2ListCustomVerificationEmailTemplatesInput, config: AwsConfig): AwsSESV2ListCustomVerificationEmailTemplatesOutput
  listDedicatedIpPools(input: AwsSESV2ListDedicatedIpPoolsInput, config: AwsConfig): AwsSESV2ListDedicatedIpPoolsOutput
  listDeliverabilityTestReports(input: AwsSESV2ListDeliverabilityTestReportsInput, config: AwsConfig): AwsSESV2ListDeliverabilityTestReportsOutput
  listDomainDeliverabilityCampaigns(input: AwsSESV2ListDomainDeliverabilityCampaignsInput!, config: AwsConfig): AwsSESV2ListDomainDeliverabilityCampaignsOutput
  listEmailIdentities(input: AwsSESV2ListEmailIdentitiesInput, config: AwsConfig): AwsSESV2ListEmailIdentitiesOutput
  listEmailTemplates(input: AwsSESV2ListEmailTemplatesInput, config: AwsConfig): AwsSESV2ListEmailTemplatesOutput
  listImportJobs(input: AwsSESV2ListImportJobsInput, config: AwsConfig): AwsSESV2ListImportJobsOutput
  listSuppressedDestinations(input: AwsSESV2ListSuppressedDestinationsInput, config: AwsConfig): AwsSESV2ListSuppressedDestinationsOutput
  listTagsForResource(input: AwsSESV2ListTagsForResourceInput!, config: AwsConfig): AwsSESV2ListTagsForResourceOutput
  putAccountDedicatedIpWarmupAttributes(input: AwsSESV2PutAccountDedicatedIpWarmupAttributesInput, config: AwsConfig): JSON
  putAccountDetails(input: AwsSESV2PutAccountDetailsInput!, config: AwsConfig): JSON
  putAccountSendingAttributes(input: AwsSESV2PutAccountSendingAttributesInput, config: AwsConfig): JSON
  putAccountSuppressionAttributes(input: AwsSESV2PutAccountSuppressionAttributesInput, config: AwsConfig): JSON
  putConfigurationSetDeliveryOptions(input: AwsSESV2PutConfigurationSetDeliveryOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetReputationOptions(input: AwsSESV2PutConfigurationSetReputationOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetSendingOptions(input: AwsSESV2PutConfigurationSetSendingOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetSuppressionOptions(input: AwsSESV2PutConfigurationSetSuppressionOptionsInput!, config: AwsConfig): JSON
  putConfigurationSetTrackingOptions(input: AwsSESV2PutConfigurationSetTrackingOptionsInput!, config: AwsConfig): JSON
  putDedicatedIpInPool(input: AwsSESV2PutDedicatedIpInPoolInput!, config: AwsConfig): JSON
  putDedicatedIpWarmupAttributes(input: AwsSESV2PutDedicatedIpWarmupAttributesInput!, config: AwsConfig): JSON
  putDeliverabilityDashboardOption(input: AwsSESV2PutDeliverabilityDashboardOptionInput!, config: AwsConfig): JSON
  putEmailIdentityConfigurationSetAttributes(input: AwsSESV2PutEmailIdentityConfigurationSetAttributesInput!, config: AwsConfig): JSON
  putEmailIdentityDkimAttributes(input: AwsSESV2PutEmailIdentityDkimAttributesInput!, config: AwsConfig): JSON
  putEmailIdentityDkimSigningAttributes(input: AwsSESV2PutEmailIdentityDkimSigningAttributesInput!, config: AwsConfig): AwsSESV2PutEmailIdentityDkimSigningAttributesOutput
  putEmailIdentityFeedbackAttributes(input: AwsSESV2PutEmailIdentityFeedbackAttributesInput!, config: AwsConfig): JSON
  putEmailIdentityMailFromAttributes(input: AwsSESV2PutEmailIdentityMailFromAttributesInput!, config: AwsConfig): JSON
  putSuppressedDestination(input: AwsSESV2PutSuppressedDestinationInput!, config: AwsConfig): JSON
  sendBulkEmail(input: AwsSESV2SendBulkEmailInput!, config: AwsConfig): AwsSESV2SendBulkEmailOutput
  sendCustomVerificationEmail(input: AwsSESV2SendCustomVerificationEmailInput!, config: AwsConfig): AwsSESV2SendCustomVerificationEmailOutput
  sendEmail(input: AwsSESV2SendEmailInput!, config: AwsConfig): AwsSESV2SendEmailOutput
  tagResource(input: AwsSESV2TagResourceInput!, config: AwsConfig): JSON
  testRenderEmailTemplate(input: AwsSESV2TestRenderEmailTemplateInput!, config: AwsConfig): AwsSESV2TestRenderEmailTemplateOutput
  untagResource(input: AwsSESV2UntagResourceInput!, config: AwsConfig): JSON
  updateConfigurationSetEventDestination(input: AwsSESV2UpdateConfigurationSetEventDestinationInput!, config: AwsConfig): JSON
  updateContact(input: AwsSESV2UpdateContactInput!, config: AwsConfig): JSON
  updateContactList(input: AwsSESV2UpdateContactListInput!, config: AwsConfig): JSON
  updateCustomVerificationEmailTemplate(input: AwsSESV2UpdateCustomVerificationEmailTemplateInput!, config: AwsConfig): JSON
  updateEmailIdentityPolicy(input: AwsSESV2UpdateEmailIdentityPolicyInput!, config: AwsConfig): JSON
  updateEmailTemplate(input: AwsSESV2UpdateEmailTemplateInput!, config: AwsConfig): JSON
}

input AwsSESV2CreateConfigurationSetInput {
  ConfigurationSetName: String!
  TrackingOptions: AwsSESV2S3Input
  DeliveryOptions: AwsSESV2S5Input
  ReputationOptions: AwsSESV2S8Input
  SendingOptions: AwsSESV2SbInput
  Tags: [AwsSESV2ScInput]
  SuppressionOptions: AwsSESV2SgInput
}

input AwsSESV2S3Input {
  CustomRedirectDomain: String!
}

input AwsSESV2S5Input {
  TlsPolicy: String
  SendingPoolName: String
}

input AwsSESV2S8Input {
  ReputationMetricsEnabled: Boolean
  LastFreshStart: Date
}

input AwsSESV2SbInput {
  SendingEnabled: Boolean
}

input AwsSESV2ScInput {
  Key: String!
  Value: String!
}

input AwsSESV2SgInput {
  SuppressedReasons: [String]
}

input AwsSESV2CreateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
  EventDestination: AwsSESV2SmInput!
}

input AwsSESV2SmInput {
  Enabled: Boolean
  MatchingEventTypes: [String]
  KinesisFirehoseDestination: AwsSESV2SpInput
  CloudWatchDestination: AwsSESV2SrInput
  SnsDestination: AwsSESV2SxInput
  PinpointDestination: AwsSESV2SyInput
}

input AwsSESV2SpInput {
  IamRoleArn: String!
  DeliveryStreamArn: String!
}

input AwsSESV2SrInput {
  DimensionConfigurations: [AwsSESV2SrDimensionConfigurationsInput]!
}

input AwsSESV2SrDimensionConfigurationsInput {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

input AwsSESV2SxInput {
  TopicArn: String!
}

input AwsSESV2SyInput {
  ApplicationArn: String
}

input AwsSESV2CreateContactInput {
  ContactListName: String!
  EmailAddress: String!
  TopicPreferences: [AwsSESV2S13Input]
  UnsubscribeAll: Boolean
  AttributesData: String
}

input AwsSESV2S13Input {
  TopicName: String!
  SubscriptionStatus: String!
}

input AwsSESV2CreateContactListInput {
  ContactListName: String!
  Topics: [AwsSESV2S1bInput]
  Description: String
  Tags: [AwsSESV2ScInput]
}

input AwsSESV2S1bInput {
  TopicName: String!
  DisplayName: String!
  Description: String
  DefaultSubscriptionStatus: String!
}

input AwsSESV2CreateCustomVerificationEmailTemplateInput {
  TemplateName: String!
  FromEmailAddress: String!
  TemplateSubject: String!
  TemplateContent: String!
  SuccessRedirectionURL: String!
  FailureRedirectionURL: String!
}

input AwsSESV2CreateDedicatedIpPoolInput {
  PoolName: String!
  Tags: [AwsSESV2ScInput]
}

type AwsSESV2CreateDeliverabilityTestReportOutput {
  ReportId: String!
  DeliverabilityTestStatus: String!
}

input AwsSESV2CreateDeliverabilityTestReportInput {
  ReportName: String
  FromEmailAddress: String!
  Content: AwsSESV2S1rInput!
  Tags: [AwsSESV2ScInput]
}

input AwsSESV2S1rInput {
  Simple: AwsSESV2S1rSimpleInput
  Raw: AwsSESV2S1rRawInput
  Template: AwsSESV2S1zInput
}

input AwsSESV2S1rSimpleInput {
  Subject: AwsSESV2S1tInput!
  Body: AwsSESV2S1rSimpleBodyInput!
}

input AwsSESV2S1tInput {
  Data: String!
  Charset: String
}

input AwsSESV2S1rSimpleBodyInput {
  Text: AwsSESV2S1tInput
  Html: AwsSESV2S1tInput
}

input AwsSESV2S1rRawInput {
  Data: JSON!
}

input AwsSESV2S1zInput {
  TemplateName: String
  TemplateArn: String
  TemplateData: String
}

type AwsSESV2CreateEmailIdentityOutput {
  IdentityType: String
  VerifiedForSendingStatus: Boolean
  DkimAttributes: AwsSESV2S2b
}

type AwsSESV2S2b {
  SigningEnabled: Boolean
  Status: String
  Tokens: [String]
  SigningAttributesOrigin: String
}

input AwsSESV2CreateEmailIdentityInput {
  EmailIdentity: String!
  Tags: [AwsSESV2ScInput]
  DkimSigningAttributes: AwsSESV2S26Input
  ConfigurationSetName: String
}

input AwsSESV2S26Input {
  DomainSigningSelector: String!
  DomainSigningPrivateKey: String!
}

input AwsSESV2CreateEmailIdentityPolicyInput {
  EmailIdentity: String!
  PolicyName: String!
  Policy: String!
}

input AwsSESV2CreateEmailTemplateInput {
  TemplateName: String!
  TemplateContent: AwsSESV2S2lInput!
}

input AwsSESV2S2lInput {
  Subject: String
  Text: String
  Html: String
}

type AwsSESV2CreateImportJobOutput {
  JobId: String
}

input AwsSESV2CreateImportJobInput {
  ImportDestination: AwsSESV2S2qInput!
  ImportDataSource: AwsSESV2S2vInput!
}

input AwsSESV2S2qInput {
  SuppressionListDestination: AwsSESV2S2qSuppressionListDestinationInput
  ContactListDestination: AwsSESV2S2qContactListDestinationInput
}

input AwsSESV2S2qSuppressionListDestinationInput {
  SuppressionListImportAction: String!
}

input AwsSESV2S2qContactListDestinationInput {
  ContactListName: String!
  ContactListImportAction: String!
}

input AwsSESV2S2vInput {
  S3Url: String!
  DataFormat: String!
}

input AwsSESV2DeleteConfigurationSetInput {
  ConfigurationSetName: String!
}

input AwsSESV2DeleteConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
}

input AwsSESV2DeleteContactInput {
  ContactListName: String!
  EmailAddress: String!
}

input AwsSESV2DeleteContactListInput {
  ContactListName: String!
}

input AwsSESV2DeleteCustomVerificationEmailTemplateInput {
  TemplateName: String!
}

input AwsSESV2DeleteDedicatedIpPoolInput {
  PoolName: String!
}

input AwsSESV2DeleteEmailIdentityInput {
  EmailIdentity: String!
}

input AwsSESV2DeleteEmailIdentityPolicyInput {
  EmailIdentity: String!
  PolicyName: String!
}

input AwsSESV2DeleteEmailTemplateInput {
  TemplateName: String!
}

input AwsSESV2DeleteSuppressedDestinationInput {
  EmailAddress: String!
}

type AwsSESV2GetAccountOutput {
  DedicatedIpAutoWarmupEnabled: Boolean
  EnforcementStatus: String
  ProductionAccessEnabled: Boolean
  SendQuota: AwsSESV2GetAccountOutputSendQuota
  SendingEnabled: Boolean
  SuppressionAttributes: AwsSESV2GetAccountOutputSuppressionAttributes
  Details: AwsSESV2GetAccountOutputDetails
}

type AwsSESV2GetAccountOutputSendQuota {
  Max24HourSend: JSON
  MaxSendRate: JSON
  SentLast24Hours: JSON
}

type AwsSESV2GetAccountOutputSuppressionAttributes {
  SuppressedReasons: [String]
}

type AwsSESV2GetAccountOutputDetails {
  MailType: String
  WebsiteURL: String
  ContactLanguage: String
  UseCaseDescription: String
  AdditionalContactEmailAddresses: [String]
  ReviewDetails: AwsSESV2GetAccountOutputDetailsReviewDetails
}

type AwsSESV2GetAccountOutputDetailsReviewDetails {
  Status: String
  CaseId: String
}

type AwsSESV2GetBlacklistReportsOutput {
  BlacklistReport: JSON!
}

input AwsSESV2GetBlacklistReportsInput {
  BlacklistItemNames: [String]!
}

type AwsSESV2GetConfigurationSetOutput {
  ConfigurationSetName: String
  TrackingOptions: AwsSESV2S3
  DeliveryOptions: AwsSESV2S5
  ReputationOptions: AwsSESV2S8
  SendingOptions: AwsSESV2Sb
  Tags: [AwsSESV2Sc]
  SuppressionOptions: AwsSESV2Sg
}

type AwsSESV2S3 {
  CustomRedirectDomain: String!
}

type AwsSESV2S5 {
  TlsPolicy: String
  SendingPoolName: String
}

type AwsSESV2S8 {
  ReputationMetricsEnabled: Boolean
  LastFreshStart: Date
}

type AwsSESV2Sb {
  SendingEnabled: Boolean
}

type AwsSESV2Sc {
  Key: String!
  Value: String!
}

type AwsSESV2Sg {
  SuppressedReasons: [String]
}

input AwsSESV2GetConfigurationSetInput {
  ConfigurationSetName: String!
}

type AwsSESV2GetConfigurationSetEventDestinationsOutput {
  EventDestinations: [AwsSESV2GetConfigurationSetEventDestinationsOutputEventDestinations]
}

type AwsSESV2GetConfigurationSetEventDestinationsOutputEventDestinations {
  Name: String!
  Enabled: Boolean
  MatchingEventTypes: [String]!
  KinesisFirehoseDestination: AwsSESV2Sp
  CloudWatchDestination: AwsSESV2Sr
  SnsDestination: AwsSESV2Sx
  PinpointDestination: AwsSESV2Sy
}

type AwsSESV2Sp {
  IamRoleArn: String!
  DeliveryStreamArn: String!
}

type AwsSESV2Sr {
  DimensionConfigurations: [AwsSESV2SrDimensionConfigurations]!
}

type AwsSESV2SrDimensionConfigurations {
  DimensionName: String!
  DimensionValueSource: String!
  DefaultDimensionValue: String!
}

type AwsSESV2Sx {
  TopicArn: String!
}

type AwsSESV2Sy {
  ApplicationArn: String
}

input AwsSESV2GetConfigurationSetEventDestinationsInput {
  ConfigurationSetName: String!
}

type AwsSESV2GetContactOutput {
  ContactListName: String
  EmailAddress: String
  TopicPreferences: [AwsSESV2S13]
  TopicDefaultPreferences: [AwsSESV2S13]
  UnsubscribeAll: Boolean
  AttributesData: String
  CreatedTimestamp: Date
  LastUpdatedTimestamp: Date
}

type AwsSESV2S13 {
  TopicName: String!
  SubscriptionStatus: String!
}

input AwsSESV2GetContactInput {
  ContactListName: String!
  EmailAddress: String!
}

type AwsSESV2GetContactListOutput {
  ContactListName: String
  Topics: [AwsSESV2S1b]
  Description: String
  CreatedTimestamp: Date
  LastUpdatedTimestamp: Date
  Tags: [AwsSESV2Sc]
}

type AwsSESV2S1b {
  TopicName: String!
  DisplayName: String!
  Description: String
  DefaultSubscriptionStatus: String!
}

input AwsSESV2GetContactListInput {
  ContactListName: String!
}

type AwsSESV2GetCustomVerificationEmailTemplateOutput {
  TemplateName: String
  FromEmailAddress: String
  TemplateSubject: String
  TemplateContent: String
  SuccessRedirectionURL: String
  FailureRedirectionURL: String
}

input AwsSESV2GetCustomVerificationEmailTemplateInput {
  TemplateName: String!
}

type AwsSESV2GetDedicatedIpOutput {
  DedicatedIp: AwsSESV2S4r
}

type AwsSESV2S4r {
  Ip: String!
  WarmupStatus: String!
  WarmupPercentage: Int!
  PoolName: String
}

input AwsSESV2GetDedicatedIpInput {
  Ip: String!
}

type AwsSESV2GetDedicatedIpsOutput {
  DedicatedIps: [AwsSESV2S4r]
  NextToken: String
}

input AwsSESV2GetDedicatedIpsInput {
  PoolName: String
  NextToken: String
  PageSize: Int
}

type AwsSESV2GetDeliverabilityDashboardOptionsOutput {
  DashboardEnabled: Boolean!
  SubscriptionExpiryDate: Date
  AccountStatus: String
  ActiveSubscribedDomains: [AwsSESV2S52]
  PendingExpirationSubscribedDomains: [AwsSESV2S52]
}

type AwsSESV2S52 {
  Domain: String
  SubscriptionStartDate: Date
  InboxPlacementTrackingOption: AwsSESV2S52InboxPlacementTrackingOption
}

type AwsSESV2S52InboxPlacementTrackingOption {
  Global: Boolean
  TrackedIsps: [String]
}

type AwsSESV2GetDeliverabilityTestReportOutput {
  DeliverabilityTestReport: AwsSESV2S5a!
  OverallPlacement: AwsSESV2S5c!
  IspPlacements: [AwsSESV2GetDeliverabilityTestReportOutputIspPlacements]!
  Message: String
  Tags: [AwsSESV2Sc]
}

type AwsSESV2S5a {
  ReportId: String
  ReportName: String
  Subject: String
  FromEmailAddress: String
  CreateDate: Date
  DeliverabilityTestStatus: String
}

type AwsSESV2S5c {
  InboxPercentage: JSON
  SpamPercentage: JSON
  MissingPercentage: JSON
  SpfPercentage: JSON
  DkimPercentage: JSON
}

type AwsSESV2GetDeliverabilityTestReportOutputIspPlacements {
  IspName: String
  PlacementStatistics: AwsSESV2S5c
}

input AwsSESV2GetDeliverabilityTestReportInput {
  ReportId: String!
}

type AwsSESV2GetDomainDeliverabilityCampaignOutput {
  DomainDeliverabilityCampaign: AwsSESV2S5k!
}

type AwsSESV2S5k {
  CampaignId: String
  ImageUrl: String
  Subject: String
  FromAddress: String
  SendingIps: [String]
  FirstSeenDateTime: Date
  LastSeenDateTime: Date
  InboxCount: JSON
  SpamCount: JSON
  ReadRate: JSON
  DeleteRate: JSON
  ReadDeleteRate: JSON
  ProjectedVolume: JSON
  Esps: [String]
}

input AwsSESV2GetDomainDeliverabilityCampaignInput {
  CampaignId: String!
}

type AwsSESV2GetDomainStatisticsReportOutput {
  OverallVolume: AwsSESV2GetDomainStatisticsReportOutputOverallVolume!
  DailyVolumes: [AwsSESV2GetDomainStatisticsReportOutputDailyVolumes]!
}

type AwsSESV2GetDomainStatisticsReportOutputOverallVolume {
  VolumeStatistics: AwsSESV2S5u
  ReadRatePercent: JSON
  DomainIspPlacements: [AwsSESV2S5v]
}

type AwsSESV2S5u {
  InboxRawCount: JSON
  SpamRawCount: JSON
  ProjectedInbox: JSON
  ProjectedSpam: JSON
}

type AwsSESV2S5v {
  IspName: String
  InboxRawCount: JSON
  SpamRawCount: JSON
  InboxPercentage: JSON
  SpamPercentage: JSON
}

type AwsSESV2GetDomainStatisticsReportOutputDailyVolumes {
  StartDate: Date
  VolumeStatistics: AwsSESV2S5u
  DomainIspPlacements: [AwsSESV2S5v]
}

input AwsSESV2GetDomainStatisticsReportInput {
  Domain: String!
  StartDate: Date!
  EndDate: Date!
}

type AwsSESV2GetEmailIdentityOutput {
  IdentityType: String
  FeedbackForwardingStatus: Boolean
  VerifiedForSendingStatus: Boolean
  DkimAttributes: AwsSESV2S2b
  MailFromAttributes: AwsSESV2GetEmailIdentityOutputMailFromAttributes
  Policies: JSON
  Tags: [AwsSESV2Sc]
  ConfigurationSetName: String
}

type AwsSESV2GetEmailIdentityOutputMailFromAttributes {
  MailFromDomain: String!
  MailFromDomainStatus: String!
  BehaviorOnMxFailure: String!
}

input AwsSESV2GetEmailIdentityInput {
  EmailIdentity: String!
}

type AwsSESV2GetEmailIdentityPoliciesOutput {
  Policies: JSON
}

input AwsSESV2GetEmailIdentityPoliciesInput {
  EmailIdentity: String!
}

type AwsSESV2GetEmailTemplateOutput {
  TemplateName: String!
  TemplateContent: AwsSESV2S2l!
}

type AwsSESV2S2l {
  Subject: String
  Text: String
  Html: String
}

input AwsSESV2GetEmailTemplateInput {
  TemplateName: String!
}

type AwsSESV2GetImportJobOutput {
  JobId: String
  ImportDestination: AwsSESV2S2q
  ImportDataSource: AwsSESV2S2v
  FailureInfo: AwsSESV2GetImportJobOutputFailureInfo
  JobStatus: String
  CreatedTimestamp: Date
  CompletedTimestamp: Date
  ProcessedRecordsCount: Int
  FailedRecordsCount: Int
}

type AwsSESV2S2q {
  SuppressionListDestination: AwsSESV2S2qSuppressionListDestination
  ContactListDestination: AwsSESV2S2qContactListDestination
}

type AwsSESV2S2qSuppressionListDestination {
  SuppressionListImportAction: String!
}

type AwsSESV2S2qContactListDestination {
  ContactListName: String!
  ContactListImportAction: String!
}

type AwsSESV2S2v {
  S3Url: String!
  DataFormat: String!
}

type AwsSESV2GetImportJobOutputFailureInfo {
  FailedRecordsS3Url: String
  ErrorMessage: String
}

input AwsSESV2GetImportJobInput {
  JobId: String!
}

type AwsSESV2GetSuppressedDestinationOutput {
  SuppressedDestination: AwsSESV2GetSuppressedDestinationOutputSuppressedDestination!
}

type AwsSESV2GetSuppressedDestinationOutputSuppressedDestination {
  EmailAddress: String!
  Reason: String!
  LastUpdateTime: Date!
  Attributes: AwsSESV2GetSuppressedDestinationOutputSuppressedDestinationAttributes
}

type AwsSESV2GetSuppressedDestinationOutputSuppressedDestinationAttributes {
  MessageId: String
  FeedbackId: String
}

input AwsSESV2GetSuppressedDestinationInput {
  EmailAddress: String!
}

type AwsSESV2ListConfigurationSetsOutput {
  ConfigurationSets: [String]
  NextToken: String
}

input AwsSESV2ListConfigurationSetsInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListContactListsOutput {
  ContactLists: [AwsSESV2ListContactListsOutputContactLists]
  NextToken: String
}

type AwsSESV2ListContactListsOutputContactLists {
  ContactListName: String
  LastUpdatedTimestamp: Date
}

input AwsSESV2ListContactListsInput {
  PageSize: Int
  NextToken: String
}

type AwsSESV2ListContactsOutput {
  Contacts: [AwsSESV2ListContactsOutputContacts]
  NextToken: String
}

type AwsSESV2ListContactsOutputContacts {
  EmailAddress: String
  TopicPreferences: [AwsSESV2S13]
  TopicDefaultPreferences: [AwsSESV2S13]
  UnsubscribeAll: Boolean
  LastUpdatedTimestamp: Date
}

input AwsSESV2ListContactsInput {
  ContactListName: String!
  Filter: AwsSESV2ListContactsFilterInput
  PageSize: Int
  NextToken: String
}

input AwsSESV2ListContactsFilterInput {
  FilteredStatus: String
  TopicFilter: AwsSESV2ListContactsFilterTopicFilterInput
}

input AwsSESV2ListContactsFilterTopicFilterInput {
  TopicName: String
  UseDefaultIfPreferenceUnavailable: Boolean
}

type AwsSESV2ListCustomVerificationEmailTemplatesOutput {
  CustomVerificationEmailTemplates: [AwsSESV2ListCustomVerificationEmailTemplatesOutputCustomVerificationEmailTemplates]
  NextToken: String
}

type AwsSESV2ListCustomVerificationEmailTemplatesOutputCustomVerificationEmailTemplates {
  TemplateName: String
  FromEmailAddress: String
  TemplateSubject: String
  SuccessRedirectionURL: String
  FailureRedirectionURL: String
}

input AwsSESV2ListCustomVerificationEmailTemplatesInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListDedicatedIpPoolsOutput {
  DedicatedIpPools: [String]
  NextToken: String
}

input AwsSESV2ListDedicatedIpPoolsInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListDeliverabilityTestReportsOutput {
  DeliverabilityTestReports: [AwsSESV2S5a]!
  NextToken: String
}

input AwsSESV2ListDeliverabilityTestReportsInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListDomainDeliverabilityCampaignsOutput {
  DomainDeliverabilityCampaigns: [AwsSESV2S5k]!
  NextToken: String
}

input AwsSESV2ListDomainDeliverabilityCampaignsInput {
  StartDate: Date!
  EndDate: Date!
  SubscribedDomain: String!
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListEmailIdentitiesOutput {
  EmailIdentities: [AwsSESV2ListEmailIdentitiesOutputEmailIdentities]
  NextToken: String
}

type AwsSESV2ListEmailIdentitiesOutputEmailIdentities {
  IdentityType: String
  IdentityName: String
  SendingEnabled: Boolean
}

input AwsSESV2ListEmailIdentitiesInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListEmailTemplatesOutput {
  TemplatesMetadata: [AwsSESV2ListEmailTemplatesOutputTemplatesMetadata]
  NextToken: String
}

type AwsSESV2ListEmailTemplatesOutputTemplatesMetadata {
  TemplateName: String
  CreatedTimestamp: Date
}

input AwsSESV2ListEmailTemplatesInput {
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListImportJobsOutput {
  ImportJobs: [AwsSESV2ListImportJobsOutputImportJobs]
  NextToken: String
}

type AwsSESV2ListImportJobsOutputImportJobs {
  JobId: String
  ImportDestination: AwsSESV2S2q
  JobStatus: String
  CreatedTimestamp: Date
}

input AwsSESV2ListImportJobsInput {
  ImportDestinationType: String
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListSuppressedDestinationsOutput {
  SuppressedDestinationSummaries: [AwsSESV2ListSuppressedDestinationsOutputSuppressedDestinationSummaries]
  NextToken: String
}

type AwsSESV2ListSuppressedDestinationsOutputSuppressedDestinationSummaries {
  EmailAddress: String!
  Reason: String!
  LastUpdateTime: Date!
}

input AwsSESV2ListSuppressedDestinationsInput {
  Reasons: [String]
  StartDate: Date
  EndDate: Date
  NextToken: String
  PageSize: Int
}

type AwsSESV2ListTagsForResourceOutput {
  Tags: [AwsSESV2Sc]!
}

input AwsSESV2ListTagsForResourceInput {
  ResourceArn: String!
}

input AwsSESV2PutAccountDedicatedIpWarmupAttributesInput {
  AutoWarmupEnabled: Boolean
}

input AwsSESV2PutAccountDetailsInput {
  MailType: String!
  WebsiteURL: String!
  ContactLanguage: String
  UseCaseDescription: String!
  AdditionalContactEmailAddresses: [String]
  ProductionAccessEnabled: Boolean
}

input AwsSESV2PutAccountSendingAttributesInput {
  SendingEnabled: Boolean
}

input AwsSESV2PutAccountSuppressionAttributesInput {
  SuppressedReasons: [String]
}

input AwsSESV2PutConfigurationSetDeliveryOptionsInput {
  ConfigurationSetName: String!
  TlsPolicy: String
  SendingPoolName: String
}

input AwsSESV2PutConfigurationSetReputationOptionsInput {
  ConfigurationSetName: String!
  ReputationMetricsEnabled: Boolean
}

input AwsSESV2PutConfigurationSetSendingOptionsInput {
  ConfigurationSetName: String!
  SendingEnabled: Boolean
}

input AwsSESV2PutConfigurationSetSuppressionOptionsInput {
  ConfigurationSetName: String!
  SuppressedReasons: [String]
}

input AwsSESV2PutConfigurationSetTrackingOptionsInput {
  ConfigurationSetName: String!
  CustomRedirectDomain: String
}

input AwsSESV2PutDedicatedIpInPoolInput {
  Ip: String!
  DestinationPoolName: String!
}

input AwsSESV2PutDedicatedIpWarmupAttributesInput {
  Ip: String!
  WarmupPercentage: Int!
}

input AwsSESV2PutDeliverabilityDashboardOptionInput {
  DashboardEnabled: Boolean!
  SubscribedDomains: [AwsSESV2S52Input]
}

input AwsSESV2S52Input {
  Domain: String
  SubscriptionStartDate: Date
  InboxPlacementTrackingOption: AwsSESV2S52InboxPlacementTrackingOptionInput
}

input AwsSESV2S52InboxPlacementTrackingOptionInput {
  Global: Boolean
  TrackedIsps: [String]
}

input AwsSESV2PutEmailIdentityConfigurationSetAttributesInput {
  EmailIdentity: String!
  ConfigurationSetName: String
}

input AwsSESV2PutEmailIdentityDkimAttributesInput {
  EmailIdentity: String!
  SigningEnabled: Boolean
}

type AwsSESV2PutEmailIdentityDkimSigningAttributesOutput {
  DkimStatus: String
  DkimTokens: [String]
}

input AwsSESV2PutEmailIdentityDkimSigningAttributesInput {
  EmailIdentity: String!
  SigningAttributesOrigin: String!
  SigningAttributes: AwsSESV2S26Input
}

input AwsSESV2PutEmailIdentityFeedbackAttributesInput {
  EmailIdentity: String!
  EmailForwardingEnabled: Boolean
}

input AwsSESV2PutEmailIdentityMailFromAttributesInput {
  EmailIdentity: String!
  MailFromDomain: String
  BehaviorOnMxFailure: String
}

input AwsSESV2PutSuppressedDestinationInput {
  EmailAddress: String!
  Reason: String!
}

type AwsSESV2SendBulkEmailOutput {
  BulkEmailEntryResults: [AwsSESV2SendBulkEmailOutputBulkEmailEntryResults]!
}

type AwsSESV2SendBulkEmailOutputBulkEmailEntryResults {
  Status: String
  Error: String
  MessageId: String
}

input AwsSESV2SendBulkEmailInput {
  FromEmailAddress: String
  FromEmailAddressIdentityArn: String
  ReplyToAddresses: [String]
  FeedbackForwardingEmailAddress: String
  FeedbackForwardingEmailAddressIdentityArn: String
  DefaultEmailTags: [AwsSESV2S92Input]
  DefaultContent: AwsSESV2SendBulkEmailDefaultContentInput!
  BulkEmailEntries: [AwsSESV2SendBulkEmailBulkEmailEntriesInput]!
  ConfigurationSetName: String
}

input AwsSESV2S92Input {
  Name: String!
  Value: String!
}

input AwsSESV2SendBulkEmailDefaultContentInput {
  Template: AwsSESV2S1zInput
}

input AwsSESV2SendBulkEmailBulkEmailEntriesInput {
  Destination: AwsSESV2S99Input!
  ReplacementTags: [AwsSESV2S92Input]
  ReplacementEmailContent: AwsSESV2SendBulkEmailBulkEmailEntriesReplacementEmailContentInput
}

input AwsSESV2S99Input {
  ToAddresses: [String]
  CcAddresses: [String]
  BccAddresses: [String]
}

input AwsSESV2SendBulkEmailBulkEmailEntriesReplacementEmailContentInput {
  ReplacementTemplate: AwsSESV2SendBulkEmailBulkEmailEntriesReplacementEmailContentReplacementTemplateInput
}

input AwsSESV2SendBulkEmailBulkEmailEntriesReplacementEmailContentReplacementTemplateInput {
  ReplacementTemplateData: String
}

type AwsSESV2SendCustomVerificationEmailOutput {
  MessageId: String
}

input AwsSESV2SendCustomVerificationEmailInput {
  EmailAddress: String!
  TemplateName: String!
  ConfigurationSetName: String
}

type AwsSESV2SendEmailOutput {
  MessageId: String
}

input AwsSESV2SendEmailInput {
  FromEmailAddress: String
  FromEmailAddressIdentityArn: String
  Destination: AwsSESV2S99Input
  ReplyToAddresses: [String]
  FeedbackForwardingEmailAddress: String
  FeedbackForwardingEmailAddressIdentityArn: String
  Content: AwsSESV2S1rInput!
  EmailTags: [AwsSESV2S92Input]
  ConfigurationSetName: String
  ListManagementOptions: AwsSESV2SendEmailListManagementOptionsInput
}

input AwsSESV2SendEmailListManagementOptionsInput {
  ContactListName: String!
  TopicName: String
}

input AwsSESV2TagResourceInput {
  ResourceArn: String!
  Tags: [AwsSESV2ScInput]!
}

type AwsSESV2TestRenderEmailTemplateOutput {
  RenderedTemplate: String!
}

input AwsSESV2TestRenderEmailTemplateInput {
  TemplateName: String!
  TemplateData: String!
}

input AwsSESV2UntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsSESV2UpdateConfigurationSetEventDestinationInput {
  ConfigurationSetName: String!
  EventDestinationName: String!
  EventDestination: AwsSESV2SmInput!
}

input AwsSESV2UpdateContactInput {
  ContactListName: String!
  EmailAddress: String!
  TopicPreferences: [AwsSESV2S13Input]
  UnsubscribeAll: Boolean
  AttributesData: String
}

input AwsSESV2UpdateContactListInput {
  ContactListName: String!
  Topics: [AwsSESV2S1bInput]
  Description: String
}

input AwsSESV2UpdateCustomVerificationEmailTemplateInput {
  TemplateName: String!
  FromEmailAddress: String!
  TemplateSubject: String!
  TemplateContent: String!
  SuccessRedirectionURL: String!
  FailureRedirectionURL: String!
}

input AwsSESV2UpdateEmailIdentityPolicyInput {
  EmailIdentity: String!
  PolicyName: String!
  Policy: String!
}

input AwsSESV2UpdateEmailTemplateInput {
  TemplateName: String!
  TemplateContent: AwsSESV2S2lInput!
}

"""AWS Server Migration Service (2016-10-24)"""
type AwsSMS {
  createApp(input: AwsSMSCreateAppInput, config: AwsConfig): AwsSMSCreateAppOutput
  createReplicationJob(input: AwsSMSCreateReplicationJobInput!, config: AwsConfig): AwsSMSCreateReplicationJobOutput
  deleteApp(input: AwsSMSDeleteAppInput, config: AwsConfig): JSON
  deleteAppLaunchConfiguration(input: AwsSMSDeleteAppLaunchConfigurationInput, config: AwsConfig): JSON
  deleteAppReplicationConfiguration(input: AwsSMSDeleteAppReplicationConfigurationInput, config: AwsConfig): JSON
  deleteAppValidationConfiguration(input: AwsSMSDeleteAppValidationConfigurationInput!, config: AwsConfig): JSON
  deleteReplicationJob(input: AwsSMSDeleteReplicationJobInput!, config: AwsConfig): JSON
  deleteServerCatalog(input: JSON, config: AwsConfig): JSON
  disassociateConnector(input: AwsSMSDisassociateConnectorInput!, config: AwsConfig): JSON
  generateChangeSet(input: AwsSMSGenerateChangeSetInput, config: AwsConfig): AwsSMSGenerateChangeSetOutput
  generateTemplate(input: AwsSMSGenerateTemplateInput, config: AwsConfig): AwsSMSGenerateTemplateOutput
  getApp(input: AwsSMSGetAppInput, config: AwsConfig): AwsSMSGetAppOutput
  getAppLaunchConfiguration(input: AwsSMSGetAppLaunchConfigurationInput, config: AwsConfig): AwsSMSGetAppLaunchConfigurationOutput
  getAppReplicationConfiguration(input: AwsSMSGetAppReplicationConfigurationInput, config: AwsConfig): AwsSMSGetAppReplicationConfigurationOutput
  getAppValidationConfiguration(input: AwsSMSGetAppValidationConfigurationInput!, config: AwsConfig): AwsSMSGetAppValidationConfigurationOutput
  getAppValidationOutput(input: AwsSMSGetAppValidationOutputInput!, config: AwsConfig): AwsSMSGetAppValidationOutputOutput
  getConnectors(input: AwsSMSGetConnectorsInput, config: AwsConfig): AwsSMSGetConnectorsOutput
  getReplicationJobs(input: AwsSMSGetReplicationJobsInput, config: AwsConfig): AwsSMSGetReplicationJobsOutput
  getReplicationRuns(input: AwsSMSGetReplicationRunsInput!, config: AwsConfig): AwsSMSGetReplicationRunsOutput
  getServers(input: AwsSMSGetServersInput, config: AwsConfig): AwsSMSGetServersOutput
  importAppCatalog(input: AwsSMSImportAppCatalogInput, config: AwsConfig): JSON
  importServerCatalog(input: JSON, config: AwsConfig): JSON
  launchApp(input: AwsSMSLaunchAppInput, config: AwsConfig): JSON
  listApps(input: AwsSMSListAppsInput, config: AwsConfig): AwsSMSListAppsOutput
  notifyAppValidationOutput(input: AwsSMSNotifyAppValidationOutputInput!, config: AwsConfig): JSON
  putAppLaunchConfiguration(input: AwsSMSPutAppLaunchConfigurationInput, config: AwsConfig): JSON
  putAppReplicationConfiguration(input: AwsSMSPutAppReplicationConfigurationInput, config: AwsConfig): JSON
  putAppValidationConfiguration(input: AwsSMSPutAppValidationConfigurationInput!, config: AwsConfig): JSON
  startAppReplication(input: AwsSMSStartAppReplicationInput, config: AwsConfig): JSON
  startOnDemandAppReplication(input: AwsSMSStartOnDemandAppReplicationInput!, config: AwsConfig): JSON
  startOnDemandReplicationRun(input: AwsSMSStartOnDemandReplicationRunInput!, config: AwsConfig): AwsSMSStartOnDemandReplicationRunOutput
  stopAppReplication(input: AwsSMSStopAppReplicationInput, config: AwsConfig): JSON
  terminateApp(input: AwsSMSTerminateAppInput, config: AwsConfig): JSON
  updateApp(input: AwsSMSUpdateAppInput, config: AwsConfig): AwsSMSUpdateAppOutput
  updateReplicationJob(input: AwsSMSUpdateReplicationJobInput!, config: AwsConfig): JSON
}

type AwsSMSCreateAppOutput {
  appSummary: AwsSMSSt
  serverGroups: [AwsSMSS6]
  tags: [AwsSMSSo]
}

type AwsSMSSt {
  appId: String
  importedAppId: String
  name: String
  description: String
  status: String
  statusMessage: String
  replicationConfigurationStatus: String
  replicationStatus: String
  replicationStatusMessage: String
  latestReplicationTime: Date
  launchConfigurationStatus: String
  launchStatus: String
  launchStatusMessage: String
  launchDetails: AwsSMSStLaunchDetails
  creationTime: Date
  lastModified: Date
  roleName: String
  totalServerGroups: Int
  totalServers: Int
}

type AwsSMSStLaunchDetails {
  latestLaunchTime: Date
  stackName: String
  stackId: String
}

type AwsSMSS6 {
  serverGroupId: String
  name: String
  serverList: [AwsSMSSb]
}

type AwsSMSSb {
  serverId: String
  serverType: String
  vmServer: AwsSMSSe
  replicationJobId: String
  replicationJobTerminated: Boolean
}

type AwsSMSSe {
  vmServerAddress: AwsSMSSf
  vmName: String
  vmManagerName: String
  vmManagerType: String
  vmPath: String
}

type AwsSMSSf {
  vmManagerId: String
  vmId: String
}

type AwsSMSSo {
  key: String
  value: String
}

input AwsSMSCreateAppInput {
  name: String
  description: String
  roleName: String
  clientToken: String
  serverGroups: [AwsSMSS6Input]
  tags: [AwsSMSSoInput]
}

input AwsSMSS6Input {
  serverGroupId: String
  name: String
  serverList: [AwsSMSSbInput]
}

input AwsSMSSbInput {
  serverId: String
  serverType: String
  vmServer: AwsSMSSeInput
  replicationJobId: String
  replicationJobTerminated: Boolean
}

input AwsSMSSeInput {
  vmServerAddress: AwsSMSSfInput
  vmName: String
  vmManagerName: String
  vmManagerType: String
  vmPath: String
}

input AwsSMSSfInput {
  vmManagerId: String
  vmId: String
}

input AwsSMSSoInput {
  key: String
  value: String
}

type AwsSMSCreateReplicationJobOutput {
  replicationJobId: String
}

input AwsSMSCreateReplicationJobInput {
  serverId: String!
  seedReplicationTime: Date!
  frequency: Int
  runOnce: Boolean
  licenseType: String
  roleName: String
  description: String
  numberOfRecentAmisToKeep: Int
  encrypted: Boolean
  kmsKeyId: String
}

input AwsSMSDeleteAppInput {
  appId: String
  forceStopAppReplication: Boolean
  forceTerminateApp: Boolean
}

input AwsSMSDeleteAppLaunchConfigurationInput {
  appId: String
}

input AwsSMSDeleteAppReplicationConfigurationInput {
  appId: String
}

input AwsSMSDeleteAppValidationConfigurationInput {
  appId: String!
}

input AwsSMSDeleteReplicationJobInput {
  replicationJobId: String!
}

input AwsSMSDisassociateConnectorInput {
  connectorId: String!
}

type AwsSMSGenerateChangeSetOutput {
  s3Location: AwsSMSS24
}

type AwsSMSS24 {
  bucket: String
  key: String
}

input AwsSMSGenerateChangeSetInput {
  appId: String
  changesetFormat: String
}

type AwsSMSGenerateTemplateOutput {
  s3Location: AwsSMSS24
}

input AwsSMSGenerateTemplateInput {
  appId: String
  templateFormat: String
}

type AwsSMSGetAppOutput {
  appSummary: AwsSMSSt
  serverGroups: [AwsSMSS6]
  tags: [AwsSMSSo]
}

input AwsSMSGetAppInput {
  appId: String
}

type AwsSMSGetAppLaunchConfigurationOutput {
  appId: String
  roleName: String
  autoLaunch: Boolean
  serverGroupLaunchConfigurations: [AwsSMSS2e]
}

type AwsSMSS2e {
  serverGroupId: String
  launchOrder: Int
  serverLaunchConfigurations: [AwsSMSS2eServerLaunchConfigurations]
}

type AwsSMSS2eServerLaunchConfigurations {
  server: AwsSMSSb
  logicalId: String
  vpc: String
  subnet: String
  securityGroup: String
  ec2KeyName: String
  userData: AwsSMSS2eServerLaunchConfigurationsUserData
  instanceType: String
  associatePublicIpAddress: Boolean
  iamInstanceProfileName: String
  configureScript: AwsSMSS24
  configureScriptType: String
}

type AwsSMSS2eServerLaunchConfigurationsUserData {
  s3Location: AwsSMSS24
}

input AwsSMSGetAppLaunchConfigurationInput {
  appId: String
}

type AwsSMSGetAppReplicationConfigurationOutput {
  serverGroupReplicationConfigurations: [AwsSMSS2u]
}

type AwsSMSS2u {
  serverGroupId: String
  serverReplicationConfigurations: [AwsSMSS2uServerReplicationConfigurations]
}

type AwsSMSS2uServerReplicationConfigurations {
  server: AwsSMSSb
  serverReplicationParameters: AwsSMSS2uServerReplicationConfigurationsServerReplicationParameters
}

type AwsSMSS2uServerReplicationConfigurationsServerReplicationParameters {
  seedTime: Date
  frequency: Int
  runOnce: Boolean
  licenseType: String
  numberOfRecentAmisToKeep: Int
  encrypted: Boolean
  kmsKeyId: String
}

input AwsSMSGetAppReplicationConfigurationInput {
  appId: String
}

type AwsSMSGetAppValidationConfigurationOutput {
  appValidationConfigurations: [AwsSMSS31]
  serverGroupValidationConfigurations: [AwsSMSS3c]
}

type AwsSMSS31 {
  validationId: String
  name: String
  appValidationStrategy: String
  ssmValidationParameters: AwsSMSS31SsmValidationParameters
}

type AwsSMSS31SsmValidationParameters {
  source: AwsSMSS37
  instanceId: String
  scriptType: String
  command: String
  executionTimeoutSeconds: Int
  outputS3BucketName: String
}

type AwsSMSS37 {
  s3Location: AwsSMSS24
}

type AwsSMSS3c {
  serverGroupId: String
  serverValidationConfigurations: [AwsSMSS3cServerValidationConfigurations]
}

type AwsSMSS3cServerValidationConfigurations {
  server: AwsSMSSb
  validationId: String
  name: String
  serverValidationStrategy: String
  userDataValidationParameters: AwsSMSS3cServerValidationConfigurationsUserDataValidationParameters
}

type AwsSMSS3cServerValidationConfigurationsUserDataValidationParameters {
  source: AwsSMSS37
  scriptType: String
}

input AwsSMSGetAppValidationConfigurationInput {
  appId: String!
}

type AwsSMSGetAppValidationOutputOutput {
  validationOutputList: [AwsSMSGetAppValidationOutputOutputValidationOutputList]
}

type AwsSMSGetAppValidationOutputOutputValidationOutputList {
  validationId: String
  name: String
  status: String
  statusMessage: String
  latestValidationTime: Date
  appValidationOutput: AwsSMSGetAppValidationOutputOutputValidationOutputListAppValidationOutput
  serverValidationOutput: AwsSMSGetAppValidationOutputOutputValidationOutputListServerValidationOutput
}

type AwsSMSGetAppValidationOutputOutputValidationOutputListAppValidationOutput {
  ssmOutput: AwsSMSGetAppValidationOutputOutputValidationOutputListAppValidationOutputSsmOutput
}

type AwsSMSGetAppValidationOutputOutputValidationOutputListAppValidationOutputSsmOutput {
  s3Location: AwsSMSS24
}

type AwsSMSGetAppValidationOutputOutputValidationOutputListServerValidationOutput {
  server: AwsSMSSb
}

input AwsSMSGetAppValidationOutputInput {
  appId: String!
}

type AwsSMSGetConnectorsOutput {
  connectorList: [AwsSMSGetConnectorsOutputConnectorList]
  nextToken: String
}

type AwsSMSGetConnectorsOutputConnectorList {
  connectorId: String
  version: String
  status: String
  capabilityList: [String]
  vmManagerName: String
  vmManagerType: String
  vmManagerId: String
  ipAddress: String
  macAddress: String
  associatedOn: Date
}

input AwsSMSGetConnectorsInput {
  nextToken: String
  maxResults: Int
}

type AwsSMSGetReplicationJobsOutput {
  replicationJobList: [AwsSMSS46]
  nextToken: String
}

type AwsSMSS46 {
  replicationJobId: String
  serverId: String
  serverType: String
  vmServer: AwsSMSSe
  seedReplicationTime: Date
  frequency: Int
  runOnce: Boolean
  nextReplicationRunStartTime: Date
  licenseType: String
  roleName: String
  latestAmiId: String
  state: String
  statusMessage: String
  description: String
  numberOfRecentAmisToKeep: Int
  encrypted: Boolean
  kmsKeyId: String
  replicationRunList: [AwsSMSS4a]
}

type AwsSMSS4a {
  replicationRunId: String
  state: String
  type: String
  stageDetails: AwsSMSS4aStageDetails
  statusMessage: String
  amiId: String
  scheduledStartTime: Date
  completedTime: Date
  description: String
  encrypted: Boolean
  kmsKeyId: String
}

type AwsSMSS4aStageDetails {
  stage: String
  stageProgress: String
}

input AwsSMSGetReplicationJobsInput {
  replicationJobId: String
  nextToken: String
  maxResults: Int
}

type AwsSMSGetReplicationRunsOutput {
  replicationJob: AwsSMSS46
  replicationRunList: [AwsSMSS4a]
  nextToken: String
}

input AwsSMSGetReplicationRunsInput {
  replicationJobId: String!
  nextToken: String
  maxResults: Int
}

type AwsSMSGetServersOutput {
  lastModifiedOn: Date
  serverCatalogStatus: String
  serverList: [AwsSMSSb]
  nextToken: String
}

input AwsSMSGetServersInput {
  nextToken: String
  maxResults: Int
  vmServerAddressList: [AwsSMSSfInput]
}

input AwsSMSImportAppCatalogInput {
  roleName: String
}

input AwsSMSLaunchAppInput {
  appId: String
}

type AwsSMSListAppsOutput {
  apps: [AwsSMSSt]
  nextToken: String
}

input AwsSMSListAppsInput {
  appIds: [String]
  nextToken: String
  maxResults: Int
}

input AwsSMSNotifyAppValidationOutputInput {
  appId: String!
  notificationContext: AwsSMSNotifyAppValidationOutputNotificationContextInput
}

input AwsSMSNotifyAppValidationOutputNotificationContextInput {
  validationId: String
  status: String
  statusMessage: String
}

input AwsSMSPutAppLaunchConfigurationInput {
  appId: String
  roleName: String
  autoLaunch: Boolean
  serverGroupLaunchConfigurations: [AwsSMSS2eInput]
}

input AwsSMSS2eInput {
  serverGroupId: String
  launchOrder: Int
  serverLaunchConfigurations: [AwsSMSS2eServerLaunchConfigurationsInput]
}

input AwsSMSS2eServerLaunchConfigurationsInput {
  server: AwsSMSSbInput
  logicalId: String
  vpc: String
  subnet: String
  securityGroup: String
  ec2KeyName: String
  userData: AwsSMSS2eServerLaunchConfigurationsUserDataInput
  instanceType: String
  associatePublicIpAddress: Boolean
  iamInstanceProfileName: String
  configureScript: AwsSMSS24Input
  configureScriptType: String
}

input AwsSMSS2eServerLaunchConfigurationsUserDataInput {
  s3Location: AwsSMSS24Input
}

input AwsSMSS24Input {
  bucket: String
  key: String
}

input AwsSMSPutAppReplicationConfigurationInput {
  appId: String
  serverGroupReplicationConfigurations: [AwsSMSS2uInput]
}

input AwsSMSS2uInput {
  serverGroupId: String
  serverReplicationConfigurations: [AwsSMSS2uServerReplicationConfigurationsInput]
}

input AwsSMSS2uServerReplicationConfigurationsInput {
  server: AwsSMSSbInput
  serverReplicationParameters: AwsSMSS2uServerReplicationConfigurationsServerReplicationParametersInput
}

input AwsSMSS2uServerReplicationConfigurationsServerReplicationParametersInput {
  seedTime: Date
  frequency: Int
  runOnce: Boolean
  licenseType: String
  numberOfRecentAmisToKeep: Int
  encrypted: Boolean
  kmsKeyId: String
}

input AwsSMSPutAppValidationConfigurationInput {
  appId: String!
  appValidationConfigurations: [AwsSMSS31Input]
  serverGroupValidationConfigurations: [AwsSMSS3cInput]
}

input AwsSMSS31Input {
  validationId: String
  name: String
  appValidationStrategy: String
  ssmValidationParameters: AwsSMSS31SsmValidationParametersInput
}

input AwsSMSS31SsmValidationParametersInput {
  source: AwsSMSS37Input
  instanceId: String
  scriptType: String
  command: String
  executionTimeoutSeconds: Int
  outputS3BucketName: String
}

input AwsSMSS37Input {
  s3Location: AwsSMSS24Input
}

input AwsSMSS3cInput {
  serverGroupId: String
  serverValidationConfigurations: [AwsSMSS3cServerValidationConfigurationsInput]
}

input AwsSMSS3cServerValidationConfigurationsInput {
  server: AwsSMSSbInput
  validationId: String
  name: String
  serverValidationStrategy: String
  userDataValidationParameters: AwsSMSS3cServerValidationConfigurationsUserDataValidationParametersInput
}

input AwsSMSS3cServerValidationConfigurationsUserDataValidationParametersInput {
  source: AwsSMSS37Input
  scriptType: String
}

input AwsSMSStartAppReplicationInput {
  appId: String
}

input AwsSMSStartOnDemandAppReplicationInput {
  appId: String!
  description: String
}

type AwsSMSStartOnDemandReplicationRunOutput {
  replicationRunId: String
}

input AwsSMSStartOnDemandReplicationRunInput {
  replicationJobId: String!
  description: String
}

input AwsSMSStopAppReplicationInput {
  appId: String
}

input AwsSMSTerminateAppInput {
  appId: String
}

type AwsSMSUpdateAppOutput {
  appSummary: AwsSMSSt
  serverGroups: [AwsSMSS6]
  tags: [AwsSMSSo]
}

input AwsSMSUpdateAppInput {
  appId: String
  name: String
  description: String
  roleName: String
  serverGroups: [AwsSMSS6Input]
  tags: [AwsSMSSoInput]
}

input AwsSMSUpdateReplicationJobInput {
  replicationJobId: String!
  frequency: Int
  nextReplicationRunStartTime: Date
  licenseType: String
  roleName: String
  description: String
  numberOfRecentAmisToKeep: Int
  encrypted: Boolean
  kmsKeyId: String
}

"""Amazon Simple Notification Service (2010-03-31)"""
type AwsSNS {
  addPermission(input: AwsSNSAddPermissionInput!, config: AwsConfig): JSON
  checkIfPhoneNumberIsOptedOut(input: AwsSNSCheckIfPhoneNumberIsOptedOutInput!, config: AwsConfig): AwsSNSCheckIfPhoneNumberIsOptedOutOutput
  confirmSubscription(input: AwsSNSConfirmSubscriptionInput!, config: AwsConfig): AwsSNSConfirmSubscriptionOutput
  createPlatformApplication(input: AwsSNSCreatePlatformApplicationInput!, config: AwsConfig): AwsSNSCreatePlatformApplicationOutput
  createPlatformEndpoint(input: AwsSNSCreatePlatformEndpointInput!, config: AwsConfig): AwsSNSCreatePlatformEndpointOutput
  createSMSSandboxPhoneNumber(input: AwsSNSCreateSMSSandboxPhoneNumberInput!, config: AwsConfig): JSON
  createTopic(input: AwsSNSCreateTopicInput!, config: AwsConfig): AwsSNSCreateTopicOutput
  deleteEndpoint(input: AwsSNSDeleteEndpointInput!, config: AwsConfig): JSON
  deletePlatformApplication(input: AwsSNSDeletePlatformApplicationInput!, config: AwsConfig): JSON
  deleteSMSSandboxPhoneNumber(input: AwsSNSDeleteSMSSandboxPhoneNumberInput!, config: AwsConfig): JSON
  deleteTopic(input: AwsSNSDeleteTopicInput!, config: AwsConfig): JSON
  getEndpointAttributes(input: AwsSNSGetEndpointAttributesInput!, config: AwsConfig): AwsSNSGetEndpointAttributesOutput
  getPlatformApplicationAttributes(input: AwsSNSGetPlatformApplicationAttributesInput!, config: AwsConfig): AwsSNSGetPlatformApplicationAttributesOutput
  getSMSAttributes(input: AwsSNSGetSMSAttributesInput, config: AwsConfig): AwsSNSGetSMSAttributesOutput
  getSMSSandboxAccountStatus(input: JSON, config: AwsConfig): AwsSNSGetSMSSandboxAccountStatusOutput
  getSubscriptionAttributes(input: AwsSNSGetSubscriptionAttributesInput!, config: AwsConfig): AwsSNSGetSubscriptionAttributesOutput
  getTopicAttributes(input: AwsSNSGetTopicAttributesInput!, config: AwsConfig): AwsSNSGetTopicAttributesOutput
  listEndpointsByPlatformApplication(input: AwsSNSListEndpointsByPlatformApplicationInput!, config: AwsConfig): AwsSNSListEndpointsByPlatformApplicationOutput
  listOriginationNumbers(input: AwsSNSListOriginationNumbersInput, config: AwsConfig): AwsSNSListOriginationNumbersOutput
  listPhoneNumbersOptedOut(input: AwsSNSListPhoneNumbersOptedOutInput, config: AwsConfig): AwsSNSListPhoneNumbersOptedOutOutput
  listPlatformApplications(input: AwsSNSListPlatformApplicationsInput, config: AwsConfig): AwsSNSListPlatformApplicationsOutput
  listSMSSandboxPhoneNumbers(input: AwsSNSListSMSSandboxPhoneNumbersInput, config: AwsConfig): AwsSNSListSMSSandboxPhoneNumbersOutput
  listSubscriptions(input: AwsSNSListSubscriptionsInput, config: AwsConfig): AwsSNSListSubscriptionsOutput
  listSubscriptionsByTopic(input: AwsSNSListSubscriptionsByTopicInput!, config: AwsConfig): AwsSNSListSubscriptionsByTopicOutput
  listTagsForResource(input: AwsSNSListTagsForResourceInput!, config: AwsConfig): AwsSNSListTagsForResourceOutput
  listTopics(input: AwsSNSListTopicsInput, config: AwsConfig): AwsSNSListTopicsOutput
  optInPhoneNumber(input: AwsSNSOptInPhoneNumberInput!, config: AwsConfig): JSON
  publish(input: AwsSNSPublishInput!, config: AwsConfig): AwsSNSPublishOutput
  removePermission(input: AwsSNSRemovePermissionInput!, config: AwsConfig): JSON
  setEndpointAttributes(input: AwsSNSSetEndpointAttributesInput!, config: AwsConfig): JSON
  setPlatformApplicationAttributes(input: AwsSNSSetPlatformApplicationAttributesInput!, config: AwsConfig): JSON
  setSMSAttributes(input: AwsSNSSetSMSAttributesInput!, config: AwsConfig): JSON
  setSubscriptionAttributes(input: AwsSNSSetSubscriptionAttributesInput!, config: AwsConfig): JSON
  setTopicAttributes(input: AwsSNSSetTopicAttributesInput!, config: AwsConfig): JSON
  subscribe(input: AwsSNSSubscribeInput!, config: AwsConfig): AwsSNSSubscribeOutput
  tagResource(input: AwsSNSTagResourceInput!, config: AwsConfig): JSON
  unsubscribe(input: AwsSNSUnsubscribeInput!, config: AwsConfig): JSON
  untagResource(input: AwsSNSUntagResourceInput!, config: AwsConfig): JSON
  verifySMSSandboxPhoneNumber(input: AwsSNSVerifySMSSandboxPhoneNumberInput!, config: AwsConfig): JSON
}

input AwsSNSAddPermissionInput {
  TopicArn: String!
  Label: String!
  AWSAccountId: [String]!
  ActionName: [String]!
}

type AwsSNSCheckIfPhoneNumberIsOptedOutOutput {
  isOptedOut: Boolean
}

input AwsSNSCheckIfPhoneNumberIsOptedOutInput {
  phoneNumber: String!
}

type AwsSNSConfirmSubscriptionOutput {
  SubscriptionArn: String
}

input AwsSNSConfirmSubscriptionInput {
  TopicArn: String!
  Token: String!
  AuthenticateOnUnsubscribe: String
}

type AwsSNSCreatePlatformApplicationOutput {
  PlatformApplicationArn: String
}

input AwsSNSCreatePlatformApplicationInput {
  Name: String!
  Platform: String!
  Attributes: JSON!
}

type AwsSNSCreatePlatformEndpointOutput {
  EndpointArn: String
}

input AwsSNSCreatePlatformEndpointInput {
  PlatformApplicationArn: String!
  Token: String!
  CustomUserData: String
  Attributes: JSON
}

input AwsSNSCreateSMSSandboxPhoneNumberInput {
  PhoneNumber: String!
  LanguageCode: String
}

type AwsSNSCreateTopicOutput {
  TopicArn: String
}

input AwsSNSCreateTopicInput {
  Name: String!
  Attributes: JSON
  Tags: [AwsSNSSwInput]
}

input AwsSNSSwInput {
  Key: String!
  Value: String!
}

input AwsSNSDeleteEndpointInput {
  EndpointArn: String!
}

input AwsSNSDeletePlatformApplicationInput {
  PlatformApplicationArn: String!
}

input AwsSNSDeleteSMSSandboxPhoneNumberInput {
  PhoneNumber: String!
}

input AwsSNSDeleteTopicInput {
  TopicArn: String!
}

type AwsSNSGetEndpointAttributesOutput {
  Attributes: JSON
}

input AwsSNSGetEndpointAttributesInput {
  EndpointArn: String!
}

type AwsSNSGetPlatformApplicationAttributesOutput {
  Attributes: JSON
}

input AwsSNSGetPlatformApplicationAttributesInput {
  PlatformApplicationArn: String!
}

type AwsSNSGetSMSAttributesOutput {
  attributes: JSON
}

input AwsSNSGetSMSAttributesInput {
  attributes: [String]
}

type AwsSNSGetSMSSandboxAccountStatusOutput {
  IsInSandbox: Boolean!
}

type AwsSNSGetSubscriptionAttributesOutput {
  Attributes: JSON
}

input AwsSNSGetSubscriptionAttributesInput {
  SubscriptionArn: String!
}

type AwsSNSGetTopicAttributesOutput {
  Attributes: JSON
}

input AwsSNSGetTopicAttributesInput {
  TopicArn: String!
}

type AwsSNSListEndpointsByPlatformApplicationOutput {
  Endpoints: [AwsSNSListEndpointsByPlatformApplicationOutputEndpoints]
  NextToken: String
}

type AwsSNSListEndpointsByPlatformApplicationOutputEndpoints {
  EndpointArn: String
  Attributes: JSON
}

input AwsSNSListEndpointsByPlatformApplicationInput {
  PlatformApplicationArn: String!
  NextToken: String
}

type AwsSNSListOriginationNumbersOutput {
  NextToken: String
  PhoneNumbers: [AwsSNSListOriginationNumbersOutputPhoneNumbers]
}

type AwsSNSListOriginationNumbersOutputPhoneNumbers {
  CreatedAt: Date
  PhoneNumber: String
  Status: String
  Iso2CountryCode: String
  RouteType: String
  NumberCapabilities: [String]
}

input AwsSNSListOriginationNumbersInput {
  NextToken: String
  MaxResults: Int
}

type AwsSNSListPhoneNumbersOptedOutOutput {
  phoneNumbers: [String]
  nextToken: String
}

input AwsSNSListPhoneNumbersOptedOutInput {
  nextToken: String
}

type AwsSNSListPlatformApplicationsOutput {
  PlatformApplications: [AwsSNSListPlatformApplicationsOutputPlatformApplications]
  NextToken: String
}

type AwsSNSListPlatformApplicationsOutputPlatformApplications {
  PlatformApplicationArn: String
  Attributes: JSON
}

input AwsSNSListPlatformApplicationsInput {
  NextToken: String
}

type AwsSNSListSMSSandboxPhoneNumbersOutput {
  PhoneNumbers: [AwsSNSListSMSSandboxPhoneNumbersOutputPhoneNumbers]!
  NextToken: String
}

type AwsSNSListSMSSandboxPhoneNumbersOutputPhoneNumbers {
  PhoneNumber: String
  Status: String
}

input AwsSNSListSMSSandboxPhoneNumbersInput {
  NextToken: String
  MaxResults: Int
}

type AwsSNSListSubscriptionsOutput {
  Subscriptions: [AwsSNSS2f]
  NextToken: String
}

type AwsSNSS2f {
  SubscriptionArn: String
  Owner: String
  Protocol: String
  Endpoint: String
  TopicArn: String
}

input AwsSNSListSubscriptionsInput {
  NextToken: String
}

type AwsSNSListSubscriptionsByTopicOutput {
  Subscriptions: [AwsSNSS2f]
  NextToken: String
}

input AwsSNSListSubscriptionsByTopicInput {
  TopicArn: String!
  NextToken: String
}

type AwsSNSListTagsForResourceOutput {
  Tags: [AwsSNSSw]
}

type AwsSNSSw {
  Key: String!
  Value: String!
}

input AwsSNSListTagsForResourceInput {
  ResourceArn: String!
}

type AwsSNSListTopicsOutput {
  Topics: [AwsSNSListTopicsOutputTopics]
  NextToken: String
}

type AwsSNSListTopicsOutputTopics {
  TopicArn: String
}

input AwsSNSListTopicsInput {
  NextToken: String
}

input AwsSNSOptInPhoneNumberInput {
  phoneNumber: String!
}

type AwsSNSPublishOutput {
  MessageId: String
  SequenceNumber: String
}

input AwsSNSPublishInput {
  TopicArn: String
  TargetArn: String
  PhoneNumber: String
  Message: String!
  Subject: String
  MessageStructure: String
  MessageAttributes: JSON
  MessageDeduplicationId: String
  MessageGroupId: String
}

input AwsSNSRemovePermissionInput {
  TopicArn: String!
  Label: String!
}

input AwsSNSSetEndpointAttributesInput {
  EndpointArn: String!
  Attributes: JSON!
}

input AwsSNSSetPlatformApplicationAttributesInput {
  PlatformApplicationArn: String!
  Attributes: JSON!
}

input AwsSNSSetSMSAttributesInput {
  attributes: JSON!
}

input AwsSNSSetSubscriptionAttributesInput {
  SubscriptionArn: String!
  AttributeName: String!
  AttributeValue: String
}

input AwsSNSSetTopicAttributesInput {
  TopicArn: String!
  AttributeName: String!
  AttributeValue: String
}

type AwsSNSSubscribeOutput {
  SubscriptionArn: String
}

input AwsSNSSubscribeInput {
  TopicArn: String!
  Protocol: String!
  Endpoint: String
  Attributes: JSON
  ReturnSubscriptionArn: Boolean
}

input AwsSNSTagResourceInput {
  ResourceArn: String!
  Tags: [AwsSNSSwInput]!
}

input AwsSNSUnsubscribeInput {
  SubscriptionArn: String!
}

input AwsSNSUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsSNSVerifySMSSandboxPhoneNumberInput {
  PhoneNumber: String!
  OneTimePassword: String!
}

"""Amazon Simple Queue Service (2012-11-05)"""
type AwsSQS {
  addPermission(input: AwsSQSAddPermissionInput!, config: AwsConfig): JSON
  changeMessageVisibility(input: AwsSQSChangeMessageVisibilityInput!, config: AwsConfig): JSON
  changeMessageVisibilityBatch(input: AwsSQSChangeMessageVisibilityBatchInput!, config: AwsConfig): AwsSQSChangeMessageVisibilityBatchOutput
  createQueue(input: AwsSQSCreateQueueInput!, config: AwsConfig): AwsSQSCreateQueueOutput
  deleteMessage(input: AwsSQSDeleteMessageInput!, config: AwsConfig): JSON
  deleteMessageBatch(input: AwsSQSDeleteMessageBatchInput!, config: AwsConfig): AwsSQSDeleteMessageBatchOutput
  deleteQueue(input: AwsSQSDeleteQueueInput!, config: AwsConfig): JSON
  getQueueAttributes(input: AwsSQSGetQueueAttributesInput!, config: AwsConfig): AwsSQSGetQueueAttributesOutput
  getQueueUrl(input: AwsSQSGetQueueUrlInput!, config: AwsConfig): AwsSQSGetQueueUrlOutput
  listDeadLetterSourceQueues(input: AwsSQSListDeadLetterSourceQueuesInput!, config: AwsConfig): AwsSQSListDeadLetterSourceQueuesOutput
  listQueueTags(input: AwsSQSListQueueTagsInput!, config: AwsConfig): AwsSQSListQueueTagsOutput
  listQueues(input: AwsSQSListQueuesInput, config: AwsConfig): AwsSQSListQueuesOutput
  purgeQueue(input: AwsSQSPurgeQueueInput!, config: AwsConfig): JSON
  receiveMessage(input: AwsSQSReceiveMessageInput!, config: AwsConfig): AwsSQSReceiveMessageOutput
  removePermission(input: AwsSQSRemovePermissionInput!, config: AwsConfig): JSON
  sendMessage(input: AwsSQSSendMessageInput!, config: AwsConfig): AwsSQSSendMessageOutput
  sendMessageBatch(input: AwsSQSSendMessageBatchInput!, config: AwsConfig): AwsSQSSendMessageBatchOutput
  setQueueAttributes(input: AwsSQSSetQueueAttributesInput!, config: AwsConfig): JSON
  tagQueue(input: AwsSQSTagQueueInput!, config: AwsConfig): JSON
  untagQueue(input: AwsSQSUntagQueueInput!, config: AwsConfig): JSON
}

input AwsSQSAddPermissionInput {
  QueueUrl: String!
  Label: String!
  AWSAccountIds: [String]!
  Actions: [String]!
}

input AwsSQSChangeMessageVisibilityInput {
  QueueUrl: String!
  ReceiptHandle: String!
  VisibilityTimeout: Int!
}

type AwsSQSChangeMessageVisibilityBatchOutput {
  Successful: [AwsSQSChangeMessageVisibilityBatchOutputSuccessful]!
  Failed: [AwsSQSSd]!
}

type AwsSQSChangeMessageVisibilityBatchOutputSuccessful {
  Id: String!
}

type AwsSQSSd {
  Id: String!
  SenderFault: Boolean!
  Code: String!
  Message: String
}

input AwsSQSChangeMessageVisibilityBatchInput {
  QueueUrl: String!
  Entries: [AwsSQSChangeMessageVisibilityBatchEntriesInput]!
}

input AwsSQSChangeMessageVisibilityBatchEntriesInput {
  Id: String!
  ReceiptHandle: String!
  VisibilityTimeout: Int
}

type AwsSQSCreateQueueOutput {
  QueueUrl: String
}

input AwsSQSCreateQueueInput {
  QueueName: String!
  Attributes: JSON
  tags: JSON
}

input AwsSQSDeleteMessageInput {
  QueueUrl: String!
  ReceiptHandle: String!
}

type AwsSQSDeleteMessageBatchOutput {
  Successful: [AwsSQSDeleteMessageBatchOutputSuccessful]!
  Failed: [AwsSQSSd]!
}

type AwsSQSDeleteMessageBatchOutputSuccessful {
  Id: String!
}

input AwsSQSDeleteMessageBatchInput {
  QueueUrl: String!
  Entries: [AwsSQSDeleteMessageBatchEntriesInput]!
}

input AwsSQSDeleteMessageBatchEntriesInput {
  Id: String!
  ReceiptHandle: String!
}

input AwsSQSDeleteQueueInput {
  QueueUrl: String!
}

type AwsSQSGetQueueAttributesOutput {
  Attributes: JSON
}

input AwsSQSGetQueueAttributesInput {
  QueueUrl: String!
  AttributeNames: [String]
}

type AwsSQSGetQueueUrlOutput {
  QueueUrl: String
}

input AwsSQSGetQueueUrlInput {
  QueueName: String!
  QueueOwnerAWSAccountId: String
}

type AwsSQSListDeadLetterSourceQueuesOutput {
  queueUrls: [String]!
  NextToken: String
}

input AwsSQSListDeadLetterSourceQueuesInput {
  QueueUrl: String!
  NextToken: String
  MaxResults: Int
}

type AwsSQSListQueueTagsOutput {
  Tags: JSON
}

input AwsSQSListQueueTagsInput {
  QueueUrl: String!
}

type AwsSQSListQueuesOutput {
  QueueUrls: [String]
  NextToken: String
}

input AwsSQSListQueuesInput {
  QueueNamePrefix: String
  NextToken: String
  MaxResults: Int
}

input AwsSQSPurgeQueueInput {
  QueueUrl: String!
}

type AwsSQSReceiveMessageOutput {
  Messages: [AwsSQSReceiveMessageOutputMessages]
}

type AwsSQSReceiveMessageOutputMessages {
  MessageId: String
  ReceiptHandle: String
  MD5OfBody: String
  Body: String
  Attributes: JSON
  MD5OfMessageAttributes: String
  MessageAttributes: JSON
}

input AwsSQSReceiveMessageInput {
  QueueUrl: String!
  AttributeNames: [String]
  MessageAttributeNames: [String]
  MaxNumberOfMessages: Int
  VisibilityTimeout: Int
  WaitTimeSeconds: Int
  ReceiveRequestAttemptId: String
}

input AwsSQSRemovePermissionInput {
  QueueUrl: String!
  Label: String!
}

type AwsSQSSendMessageOutput {
  MD5OfMessageBody: String
  MD5OfMessageAttributes: String
  MD5OfMessageSystemAttributes: String
  MessageId: String
  SequenceNumber: String
}

input AwsSQSSendMessageInput {
  QueueUrl: String!
  MessageBody: String!
  DelaySeconds: Int
  MessageAttributes: JSON
  MessageSystemAttributes: JSON
  MessageDeduplicationId: String
  MessageGroupId: String
}

type AwsSQSSendMessageBatchOutput {
  Successful: [AwsSQSSendMessageBatchOutputSuccessful]!
  Failed: [AwsSQSSd]!
}

type AwsSQSSendMessageBatchOutputSuccessful {
  Id: String!
  MessageId: String!
  MD5OfMessageBody: String!
  MD5OfMessageAttributes: String
  MD5OfMessageSystemAttributes: String
  SequenceNumber: String
}

input AwsSQSSendMessageBatchInput {
  QueueUrl: String!
  Entries: [AwsSQSSendMessageBatchEntriesInput]!
}

input AwsSQSSendMessageBatchEntriesInput {
  Id: String!
  MessageBody: String!
  DelaySeconds: Int
  MessageAttributes: JSON
  MessageSystemAttributes: JSON
  MessageDeduplicationId: String
  MessageGroupId: String
}

input AwsSQSSetQueueAttributesInput {
  QueueUrl: String!
  Attributes: JSON!
}

input AwsSQSTagQueueInput {
  QueueUrl: String!
  Tags: JSON!
}

input AwsSQSUntagQueueInput {
  QueueUrl: String!
  TagKeys: [String]!
}

"""Amazon Simple Systems Manager (SSM) (2014-11-06)"""
type AwsSSM {
  addTagsToResource(input: AwsSSMAddTagsToResourceInput!, config: AwsConfig): JSON
  associateOpsItemRelatedItem(input: AwsSSMAssociateOpsItemRelatedItemInput!, config: AwsConfig): AwsSSMAssociateOpsItemRelatedItemOutput
  cancelCommand(input: AwsSSMCancelCommandInput!, config: AwsConfig): JSON
  cancelMaintenanceWindowExecution(input: AwsSSMCancelMaintenanceWindowExecutionInput!, config: AwsConfig): AwsSSMCancelMaintenanceWindowExecutionOutput
  createActivation(input: AwsSSMCreateActivationInput!, config: AwsConfig): AwsSSMCreateActivationOutput
  createAssociation(input: AwsSSMCreateAssociationInput!, config: AwsConfig): AwsSSMCreateAssociationOutput
  createAssociationBatch(input: AwsSSMCreateAssociationBatchInput!, config: AwsConfig): AwsSSMCreateAssociationBatchOutput
  createDocument(input: AwsSSMCreateDocumentInput!, config: AwsConfig): AwsSSMCreateDocumentOutput
  createMaintenanceWindow(input: AwsSSMCreateMaintenanceWindowInput!, config: AwsConfig): AwsSSMCreateMaintenanceWindowOutput
  createOpsItem(input: AwsSSMCreateOpsItemInput!, config: AwsConfig): AwsSSMCreateOpsItemOutput
  createOpsMetadata(input: AwsSSMCreateOpsMetadataInput!, config: AwsConfig): AwsSSMCreateOpsMetadataOutput
  createPatchBaseline(input: AwsSSMCreatePatchBaselineInput!, config: AwsConfig): AwsSSMCreatePatchBaselineOutput
  createResourceDataSync(input: AwsSSMCreateResourceDataSyncInput!, config: AwsConfig): JSON
  deleteActivation(input: AwsSSMDeleteActivationInput!, config: AwsConfig): JSON
  deleteAssociation(input: AwsSSMDeleteAssociationInput, config: AwsConfig): JSON
  deleteDocument(input: AwsSSMDeleteDocumentInput!, config: AwsConfig): JSON
  deleteInventory(input: AwsSSMDeleteInventoryInput!, config: AwsConfig): AwsSSMDeleteInventoryOutput
  deleteMaintenanceWindow(input: AwsSSMDeleteMaintenanceWindowInput!, config: AwsConfig): AwsSSMDeleteMaintenanceWindowOutput
  deleteOpsMetadata(input: AwsSSMDeleteOpsMetadataInput!, config: AwsConfig): JSON
  deleteParameter(input: AwsSSMDeleteParameterInput!, config: AwsConfig): JSON
  deleteParameters(input: AwsSSMDeleteParametersInput!, config: AwsConfig): AwsSSMDeleteParametersOutput
  deletePatchBaseline(input: AwsSSMDeletePatchBaselineInput!, config: AwsConfig): AwsSSMDeletePatchBaselineOutput
  deleteResourceDataSync(input: AwsSSMDeleteResourceDataSyncInput!, config: AwsConfig): JSON
  deregisterManagedInstance(input: AwsSSMDeregisterManagedInstanceInput!, config: AwsConfig): JSON
  deregisterPatchBaselineForPatchGroup(input: AwsSSMDeregisterPatchBaselineForPatchGroupInput!, config: AwsConfig): AwsSSMDeregisterPatchBaselineForPatchGroupOutput
  deregisterTargetFromMaintenanceWindow(input: AwsSSMDeregisterTargetFromMaintenanceWindowInput!, config: AwsConfig): AwsSSMDeregisterTargetFromMaintenanceWindowOutput
  deregisterTaskFromMaintenanceWindow(input: AwsSSMDeregisterTaskFromMaintenanceWindowInput!, config: AwsConfig): AwsSSMDeregisterTaskFromMaintenanceWindowOutput
  describeActivations(input: AwsSSMDescribeActivationsInput, config: AwsConfig): AwsSSMDescribeActivationsOutput
  describeAssociation(input: AwsSSMDescribeAssociationInput, config: AwsConfig): AwsSSMDescribeAssociationOutput
  describeAssociationExecutionTargets(input: AwsSSMDescribeAssociationExecutionTargetsInput!, config: AwsConfig): AwsSSMDescribeAssociationExecutionTargetsOutput
  describeAssociationExecutions(input: AwsSSMDescribeAssociationExecutionsInput!, config: AwsConfig): AwsSSMDescribeAssociationExecutionsOutput
  describeAutomationExecutions(input: AwsSSMDescribeAutomationExecutionsInput, config: AwsConfig): AwsSSMDescribeAutomationExecutionsOutput
  describeAutomationStepExecutions(input: AwsSSMDescribeAutomationStepExecutionsInput!, config: AwsConfig): AwsSSMDescribeAutomationStepExecutionsOutput
  describeAvailablePatches(input: AwsSSMDescribeAvailablePatchesInput, config: AwsConfig): AwsSSMDescribeAvailablePatchesOutput
  describeDocument(input: AwsSSMDescribeDocumentInput!, config: AwsConfig): AwsSSMDescribeDocumentOutput
  describeDocumentPermission(input: AwsSSMDescribeDocumentPermissionInput!, config: AwsConfig): AwsSSMDescribeDocumentPermissionOutput
  describeEffectiveInstanceAssociations(input: AwsSSMDescribeEffectiveInstanceAssociationsInput!, config: AwsConfig): AwsSSMDescribeEffectiveInstanceAssociationsOutput
  describeEffectivePatchesForPatchBaseline(input: AwsSSMDescribeEffectivePatchesForPatchBaselineInput!, config: AwsConfig): AwsSSMDescribeEffectivePatchesForPatchBaselineOutput
  describeInstanceAssociationsStatus(input: AwsSSMDescribeInstanceAssociationsStatusInput!, config: AwsConfig): AwsSSMDescribeInstanceAssociationsStatusOutput
  describeInstanceInformation(input: AwsSSMDescribeInstanceInformationInput, config: AwsConfig): AwsSSMDescribeInstanceInformationOutput
  describeInstancePatchStates(input: AwsSSMDescribeInstancePatchStatesInput!, config: AwsConfig): AwsSSMDescribeInstancePatchStatesOutput
  describeInstancePatchStatesForPatchGroup(input: AwsSSMDescribeInstancePatchStatesForPatchGroupInput!, config: AwsConfig): AwsSSMDescribeInstancePatchStatesForPatchGroupOutput
  describeInstancePatches(input: AwsSSMDescribeInstancePatchesInput!, config: AwsConfig): AwsSSMDescribeInstancePatchesOutput
  describeInventoryDeletions(input: AwsSSMDescribeInventoryDeletionsInput, config: AwsConfig): AwsSSMDescribeInventoryDeletionsOutput
  describeMaintenanceWindowExecutionTaskInvocations(input: AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsOutput
  describeMaintenanceWindowExecutionTasks(input: AwsSSMDescribeMaintenanceWindowExecutionTasksInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowExecutionTasksOutput
  describeMaintenanceWindowExecutions(input: AwsSSMDescribeMaintenanceWindowExecutionsInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowExecutionsOutput
  describeMaintenanceWindowSchedule(input: AwsSSMDescribeMaintenanceWindowScheduleInput, config: AwsConfig): AwsSSMDescribeMaintenanceWindowScheduleOutput
  describeMaintenanceWindowTargets(input: AwsSSMDescribeMaintenanceWindowTargetsInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowTargetsOutput
  describeMaintenanceWindowTasks(input: AwsSSMDescribeMaintenanceWindowTasksInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowTasksOutput
  describeMaintenanceWindows(input: AwsSSMDescribeMaintenanceWindowsInput, config: AwsConfig): AwsSSMDescribeMaintenanceWindowsOutput
  describeMaintenanceWindowsForTarget(input: AwsSSMDescribeMaintenanceWindowsForTargetInput!, config: AwsConfig): AwsSSMDescribeMaintenanceWindowsForTargetOutput
  describeOpsItems(input: AwsSSMDescribeOpsItemsInput, config: AwsConfig): AwsSSMDescribeOpsItemsOutput
  describeParameters(input: AwsSSMDescribeParametersInput, config: AwsConfig): AwsSSMDescribeParametersOutput
  describePatchBaselines(input: AwsSSMDescribePatchBaselinesInput, config: AwsConfig): AwsSSMDescribePatchBaselinesOutput
  describePatchGroupState(input: AwsSSMDescribePatchGroupStateInput!, config: AwsConfig): AwsSSMDescribePatchGroupStateOutput
  describePatchGroups(input: AwsSSMDescribePatchGroupsInput, config: AwsConfig): AwsSSMDescribePatchGroupsOutput
  describePatchProperties(input: AwsSSMDescribePatchPropertiesInput!, config: AwsConfig): AwsSSMDescribePatchPropertiesOutput
  describeSessions(input: AwsSSMDescribeSessionsInput!, config: AwsConfig): AwsSSMDescribeSessionsOutput
  disassociateOpsItemRelatedItem(input: AwsSSMDisassociateOpsItemRelatedItemInput!, config: AwsConfig): JSON
  getAutomationExecution(input: AwsSSMGetAutomationExecutionInput!, config: AwsConfig): AwsSSMGetAutomationExecutionOutput
  getCalendarState(input: AwsSSMGetCalendarStateInput!, config: AwsConfig): AwsSSMGetCalendarStateOutput
  getCommandInvocation(input: AwsSSMGetCommandInvocationInput!, config: AwsConfig): AwsSSMGetCommandInvocationOutput
  getConnectionStatus(input: AwsSSMGetConnectionStatusInput!, config: AwsConfig): AwsSSMGetConnectionStatusOutput
  getDefaultPatchBaseline(input: AwsSSMGetDefaultPatchBaselineInput, config: AwsConfig): AwsSSMGetDefaultPatchBaselineOutput
  getDeployablePatchSnapshotForInstance(input: AwsSSMGetDeployablePatchSnapshotForInstanceInput!, config: AwsConfig): AwsSSMGetDeployablePatchSnapshotForInstanceOutput
  getDocument(input: AwsSSMGetDocumentInput!, config: AwsConfig): AwsSSMGetDocumentOutput
  getInventory(input: AwsSSMGetInventoryInput, config: AwsConfig): AwsSSMGetInventoryOutput
  getInventorySchema(input: AwsSSMGetInventorySchemaInput, config: AwsConfig): AwsSSMGetInventorySchemaOutput
  getMaintenanceWindow(input: AwsSSMGetMaintenanceWindowInput!, config: AwsConfig): AwsSSMGetMaintenanceWindowOutput
  getMaintenanceWindowExecution(input: AwsSSMGetMaintenanceWindowExecutionInput!, config: AwsConfig): AwsSSMGetMaintenanceWindowExecutionOutput
  getMaintenanceWindowExecutionTask(input: AwsSSMGetMaintenanceWindowExecutionTaskInput!, config: AwsConfig): AwsSSMGetMaintenanceWindowExecutionTaskOutput
  getMaintenanceWindowExecutionTaskInvocation(input: AwsSSMGetMaintenanceWindowExecutionTaskInvocationInput!, config: AwsConfig): AwsSSMGetMaintenanceWindowExecutionTaskInvocationOutput
  getMaintenanceWindowTask(input: AwsSSMGetMaintenanceWindowTaskInput!, config: AwsConfig): AwsSSMGetMaintenanceWindowTaskOutput
  getOpsItem(input: AwsSSMGetOpsItemInput!, config: AwsConfig): AwsSSMGetOpsItemOutput
  getOpsMetadata(input: AwsSSMGetOpsMetadataInput!, config: AwsConfig): AwsSSMGetOpsMetadataOutput
  getOpsSummary(input: AwsSSMGetOpsSummaryInput, config: AwsConfig): AwsSSMGetOpsSummaryOutput
  getParameter(input: AwsSSMGetParameterInput!, config: AwsConfig): AwsSSMGetParameterOutput
  getParameterHistory(input: AwsSSMGetParameterHistoryInput!, config: AwsConfig): AwsSSMGetParameterHistoryOutput
  getParameters(input: AwsSSMGetParametersInput!, config: AwsConfig): AwsSSMGetParametersOutput
  getParametersByPath(input: AwsSSMGetParametersByPathInput!, config: AwsConfig): AwsSSMGetParametersByPathOutput
  getPatchBaseline(input: AwsSSMGetPatchBaselineInput!, config: AwsConfig): AwsSSMGetPatchBaselineOutput
  getPatchBaselineForPatchGroup(input: AwsSSMGetPatchBaselineForPatchGroupInput!, config: AwsConfig): AwsSSMGetPatchBaselineForPatchGroupOutput
  getServiceSetting(input: AwsSSMGetServiceSettingInput!, config: AwsConfig): AwsSSMGetServiceSettingOutput
  labelParameterVersion(input: AwsSSMLabelParameterVersionInput!, config: AwsConfig): AwsSSMLabelParameterVersionOutput
  listAssociationVersions(input: AwsSSMListAssociationVersionsInput!, config: AwsConfig): AwsSSMListAssociationVersionsOutput
  listAssociations(input: AwsSSMListAssociationsInput, config: AwsConfig): AwsSSMListAssociationsOutput
  listCommandInvocations(input: AwsSSMListCommandInvocationsInput, config: AwsConfig): AwsSSMListCommandInvocationsOutput
  listCommands(input: AwsSSMListCommandsInput, config: AwsConfig): AwsSSMListCommandsOutput
  listComplianceItems(input: AwsSSMListComplianceItemsInput, config: AwsConfig): AwsSSMListComplianceItemsOutput
  listComplianceSummaries(input: AwsSSMListComplianceSummariesInput, config: AwsConfig): AwsSSMListComplianceSummariesOutput
  listDocumentMetadataHistory(input: AwsSSMListDocumentMetadataHistoryInput!, config: AwsConfig): AwsSSMListDocumentMetadataHistoryOutput
  listDocumentVersions(input: AwsSSMListDocumentVersionsInput!, config: AwsConfig): AwsSSMListDocumentVersionsOutput
  listDocuments(input: AwsSSMListDocumentsInput, config: AwsConfig): AwsSSMListDocumentsOutput
  listInventoryEntries(input: AwsSSMListInventoryEntriesInput!, config: AwsConfig): AwsSSMListInventoryEntriesOutput
  listOpsItemEvents(input: AwsSSMListOpsItemEventsInput, config: AwsConfig): AwsSSMListOpsItemEventsOutput
  listOpsItemRelatedItems(input: AwsSSMListOpsItemRelatedItemsInput, config: AwsConfig): AwsSSMListOpsItemRelatedItemsOutput
  listOpsMetadata(input: AwsSSMListOpsMetadataInput, config: AwsConfig): AwsSSMListOpsMetadataOutput
  listResourceComplianceSummaries(input: AwsSSMListResourceComplianceSummariesInput, config: AwsConfig): AwsSSMListResourceComplianceSummariesOutput
  listResourceDataSync(input: AwsSSMListResourceDataSyncInput, config: AwsConfig): AwsSSMListResourceDataSyncOutput
  listTagsForResource(input: AwsSSMListTagsForResourceInput!, config: AwsConfig): AwsSSMListTagsForResourceOutput
  modifyDocumentPermission(input: AwsSSMModifyDocumentPermissionInput!, config: AwsConfig): JSON
  putComplianceItems(input: AwsSSMPutComplianceItemsInput!, config: AwsConfig): JSON
  putInventory(input: AwsSSMPutInventoryInput!, config: AwsConfig): AwsSSMPutInventoryOutput
  putParameter(input: AwsSSMPutParameterInput!, config: AwsConfig): AwsSSMPutParameterOutput
  registerDefaultPatchBaseline(input: AwsSSMRegisterDefaultPatchBaselineInput!, config: AwsConfig): AwsSSMRegisterDefaultPatchBaselineOutput
  registerPatchBaselineForPatchGroup(input: AwsSSMRegisterPatchBaselineForPatchGroupInput!, config: AwsConfig): AwsSSMRegisterPatchBaselineForPatchGroupOutput
  registerTargetWithMaintenanceWindow(input: AwsSSMRegisterTargetWithMaintenanceWindowInput!, config: AwsConfig): AwsSSMRegisterTargetWithMaintenanceWindowOutput
  registerTaskWithMaintenanceWindow(input: AwsSSMRegisterTaskWithMaintenanceWindowInput!, config: AwsConfig): AwsSSMRegisterTaskWithMaintenanceWindowOutput
  removeTagsFromResource(input: AwsSSMRemoveTagsFromResourceInput!, config: AwsConfig): JSON
  resetServiceSetting(input: AwsSSMResetServiceSettingInput!, config: AwsConfig): AwsSSMResetServiceSettingOutput
  resumeSession(input: AwsSSMResumeSessionInput!, config: AwsConfig): AwsSSMResumeSessionOutput
  sendAutomationSignal(input: AwsSSMSendAutomationSignalInput!, config: AwsConfig): JSON
  sendCommand(input: AwsSSMSendCommandInput!, config: AwsConfig): AwsSSMSendCommandOutput
  startAssociationsOnce(input: AwsSSMStartAssociationsOnceInput!, config: AwsConfig): JSON
  startAutomationExecution(input: AwsSSMStartAutomationExecutionInput!, config: AwsConfig): AwsSSMStartAutomationExecutionOutput
  startChangeRequestExecution(input: AwsSSMStartChangeRequestExecutionInput!, config: AwsConfig): AwsSSMStartChangeRequestExecutionOutput
  startSession(input: AwsSSMStartSessionInput!, config: AwsConfig): AwsSSMStartSessionOutput
  stopAutomationExecution(input: AwsSSMStopAutomationExecutionInput!, config: AwsConfig): JSON
  terminateSession(input: AwsSSMTerminateSessionInput!, config: AwsConfig): AwsSSMTerminateSessionOutput
  unlabelParameterVersion(input: AwsSSMUnlabelParameterVersionInput!, config: AwsConfig): AwsSSMUnlabelParameterVersionOutput
  updateAssociation(input: AwsSSMUpdateAssociationInput!, config: AwsConfig): AwsSSMUpdateAssociationOutput
  updateAssociationStatus(input: AwsSSMUpdateAssociationStatusInput!, config: AwsConfig): AwsSSMUpdateAssociationStatusOutput
  updateDocument(input: AwsSSMUpdateDocumentInput!, config: AwsConfig): AwsSSMUpdateDocumentOutput
  updateDocumentDefaultVersion(input: AwsSSMUpdateDocumentDefaultVersionInput!, config: AwsConfig): AwsSSMUpdateDocumentDefaultVersionOutput
  updateDocumentMetadata(input: AwsSSMUpdateDocumentMetadataInput!, config: AwsConfig): JSON
  updateMaintenanceWindow(input: AwsSSMUpdateMaintenanceWindowInput!, config: AwsConfig): AwsSSMUpdateMaintenanceWindowOutput
  updateMaintenanceWindowTarget(input: AwsSSMUpdateMaintenanceWindowTargetInput!, config: AwsConfig): AwsSSMUpdateMaintenanceWindowTargetOutput
  updateMaintenanceWindowTask(input: AwsSSMUpdateMaintenanceWindowTaskInput!, config: AwsConfig): AwsSSMUpdateMaintenanceWindowTaskOutput
  updateManagedInstanceRole(input: AwsSSMUpdateManagedInstanceRoleInput!, config: AwsConfig): JSON
  updateOpsItem(input: AwsSSMUpdateOpsItemInput!, config: AwsConfig): JSON
  updateOpsMetadata(input: AwsSSMUpdateOpsMetadataInput!, config: AwsConfig): AwsSSMUpdateOpsMetadataOutput
  updatePatchBaseline(input: AwsSSMUpdatePatchBaselineInput!, config: AwsConfig): AwsSSMUpdatePatchBaselineOutput
  updateResourceDataSync(input: AwsSSMUpdateResourceDataSyncInput!, config: AwsConfig): JSON
  updateServiceSetting(input: AwsSSMUpdateServiceSettingInput!, config: AwsConfig): JSON
}

input AwsSSMAddTagsToResourceInput {
  ResourceType: String!
  ResourceId: String!
  Tags: [AwsSSMS4Input]!
}

input AwsSSMS4Input {
  Key: String!
  Value: String!
}

type AwsSSMAssociateOpsItemRelatedItemOutput {
  AssociationId: String
}

input AwsSSMAssociateOpsItemRelatedItemInput {
  OpsItemId: String!
  AssociationType: String!
  ResourceType: String!
  ResourceUri: String!
}

input AwsSSMCancelCommandInput {
  CommandId: String!
  InstanceIds: [String]
}

type AwsSSMCancelMaintenanceWindowExecutionOutput {
  WindowExecutionId: String
}

input AwsSSMCancelMaintenanceWindowExecutionInput {
  WindowExecutionId: String!
}

type AwsSSMCreateActivationOutput {
  ActivationId: String
  ActivationCode: String
}

input AwsSSMCreateActivationInput {
  Description: String
  DefaultInstanceName: String
  IamRole: String!
  RegistrationLimit: Int
  ExpirationDate: Date
  Tags: [AwsSSMS4Input]
}

type AwsSSMCreateAssociationOutput {
  AssociationDescription: AwsSSMS1w
}

type AwsSSMS1w {
  Name: String
  InstanceId: String
  AssociationVersion: String
  Date: Date
  LastUpdateAssociationDate: Date
  Status: AwsSSMS1z
  Overview: AwsSSMS23
  DocumentVersion: String
  AutomationTargetParameterName: String
  Parameters: JSON
  AssociationId: String
  Targets: [AwsSSMS14]
  ScheduleExpression: String
  OutputLocation: AwsSSMS1a
  LastExecutionDate: Date
  LastSuccessfulExecutionDate: Date
  AssociationName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1p]
}

type AwsSSMS1z {
  Date: Date!
  Name: String!
  Message: String!
  AdditionalInfo: String
}

type AwsSSMS23 {
  Status: String
  DetailedStatus: String
  AssociationStatusAggregatedCount: JSON
}

type AwsSSMS14 {
  Key: String
  Values: [String]
}

type AwsSSMS1a {
  S3Location: AwsSSMS1aS3Location
}

type AwsSSMS1aS3Location {
  OutputS3Region: String
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
}

type AwsSSMS1p {
  Accounts: [String]
  Regions: [String]
  TargetLocationMaxConcurrency: String
  TargetLocationMaxErrors: String
  ExecutionRoleName: String
}

input AwsSSMCreateAssociationInput {
  Name: String!
  DocumentVersion: String
  InstanceId: String
  Parameters: JSON
  Targets: [AwsSSMS14Input]
  ScheduleExpression: String
  OutputLocation: AwsSSMS1aInput
  AssociationName: String
  AutomationTargetParameterName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1pInput]
}

input AwsSSMS14Input {
  Key: String
  Values: [String]
}

input AwsSSMS1aInput {
  S3Location: AwsSSMS1aS3LocationInput
}

input AwsSSMS1aS3LocationInput {
  OutputS3Region: String
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
}

input AwsSSMS1pInput {
  Accounts: [String]
  Regions: [String]
  TargetLocationMaxConcurrency: String
  TargetLocationMaxErrors: String
  ExecutionRoleName: String
}

type AwsSSMCreateAssociationBatchOutput {
  Successful: [AwsSSMS1w]
  Failed: [AwsSSMCreateAssociationBatchOutputFailed]
}

type AwsSSMCreateAssociationBatchOutputFailed {
  Entry: AwsSSMS2a
  Message: String
  Fault: String
}

type AwsSSMS2a {
  Name: String!
  InstanceId: String
  Parameters: JSON
  AutomationTargetParameterName: String
  DocumentVersion: String
  Targets: [AwsSSMS14]
  ScheduleExpression: String
  OutputLocation: AwsSSMS1a
  AssociationName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1p]
}

input AwsSSMCreateAssociationBatchInput {
  Entries: [AwsSSMS2aInput]!
}

input AwsSSMS2aInput {
  Name: String!
  InstanceId: String
  Parameters: JSON
  AutomationTargetParameterName: String
  DocumentVersion: String
  Targets: [AwsSSMS14Input]
  ScheduleExpression: String
  OutputLocation: AwsSSMS1aInput
  AssociationName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1pInput]
}

type AwsSSMCreateDocumentOutput {
  DocumentDescription: AwsSSMS2y
}

type AwsSSMS2y {
  Sha1: String
  Hash: String
  HashType: String
  Name: String
  DisplayName: String
  VersionName: String
  Owner: String
  CreatedDate: Date
  Status: String
  StatusInformation: String
  DocumentVersion: String
  Description: String
  Parameters: [AwsSSMS2yParameters]
  PlatformTypes: [String]
  DocumentType: String
  SchemaVersion: String
  LatestVersion: String
  DefaultVersion: String
  DocumentFormat: String
  TargetType: String
  Tags: [AwsSSMS4]
  AttachmentsInformation: [AwsSSMS2yAttachmentsInformation]
  Requires: [AwsSSMS2j]
  Author: String
  ReviewInformation: [AwsSSMS2yReviewInformation]
  ApprovedVersion: String
  PendingReviewVersion: String
  ReviewStatus: String
}

type AwsSSMS2yParameters {
  Name: String
  Type: String
  Description: String
  DefaultValue: String
}

type AwsSSMS4 {
  Key: String!
  Value: String!
}

type AwsSSMS2yAttachmentsInformation {
  Name: String
}

type AwsSSMS2j {
  Name: String!
  Version: String
}

type AwsSSMS2yReviewInformation {
  ReviewedTime: Date
  Status: String
  Reviewer: String
}

input AwsSSMCreateDocumentInput {
  Content: String!
  Requires: [AwsSSMS2jInput]
  Attachments: [AwsSSMS2lInput]
  Name: String!
  DisplayName: String
  VersionName: String
  DocumentType: String
  DocumentFormat: String
  TargetType: String
  Tags: [AwsSSMS4Input]
}

input AwsSSMS2jInput {
  Name: String!
  Version: String
}

input AwsSSMS2lInput {
  Key: String
  Values: [String]
  Name: String
}

type AwsSSMCreateMaintenanceWindowOutput {
  WindowId: String
}

input AwsSSMCreateMaintenanceWindowInput {
  Name: String!
  Description: String
  StartDate: String
  EndDate: String
  Schedule: String!
  ScheduleTimezone: String
  ScheduleOffset: Int
  Duration: Int!
  Cutoff: Int!
  AllowUnassociatedTargets: Boolean!
  ClientToken: String
  Tags: [AwsSSMS4Input]
}

type AwsSSMCreateOpsItemOutput {
  OpsItemId: String
}

input AwsSSMCreateOpsItemInput {
  Description: String!
  OpsItemType: String
  OperationalData: JSON
  Notifications: [AwsSSMS48Input]
  Priority: Int
  RelatedOpsItems: [AwsSSMS4cInput]
  Source: String!
  Title: String!
  Tags: [AwsSSMS4Input]
  Category: String
  Severity: String
  ActualStartTime: Date
  ActualEndTime: Date
  PlannedStartTime: Date
  PlannedEndTime: Date
}

input AwsSSMS48Input {
  Arn: String
}

input AwsSSMS4cInput {
  OpsItemId: String!
}

type AwsSSMCreateOpsMetadataOutput {
  OpsMetadataArn: String
}

input AwsSSMCreateOpsMetadataInput {
  ResourceId: String!
  Metadata: JSON
  Tags: [AwsSSMS4Input]
}

type AwsSSMCreatePatchBaselineOutput {
  BaselineId: String
}

input AwsSSMCreatePatchBaselineInput {
  OperatingSystem: String
  Name: String!
  GlobalFilters: AwsSSMS4uInput
  ApprovalRules: AwsSSMS50Input
  ApprovedPatches: [String]
  ApprovedPatchesComplianceLevel: String
  ApprovedPatchesEnableNonSecurity: Boolean
  RejectedPatches: [String]
  RejectedPatchesAction: String
  Description: String
  Sources: [AwsSSMS5bInput]
  ClientToken: String
  Tags: [AwsSSMS4Input]
}

input AwsSSMS4uInput {
  PatchFilters: [AwsSSMS4uPatchFiltersInput]!
}

input AwsSSMS4uPatchFiltersInput {
  Key: String!
  Values: [String]!
}

input AwsSSMS50Input {
  PatchRules: [AwsSSMS50PatchRulesInput]!
}

input AwsSSMS50PatchRulesInput {
  PatchFilterGroup: AwsSSMS4uInput!
  ComplianceLevel: String
  ApproveAfterDays: Int
  ApproveUntilDate: String
  EnableNonSecurity: Boolean
}

input AwsSSMS5bInput {
  Name: String!
  Products: [String]!
  Configuration: String!
}

input AwsSSMCreateResourceDataSyncInput {
  SyncName: String!
  S3Destination: AwsSSMS5lInput
  SyncType: String
  SyncSource: AwsSSMS5uInput
}

input AwsSSMS5lInput {
  BucketName: String!
  Prefix: String
  SyncFormat: String!
  Region: String!
  AWSKMSKeyARN: String
  DestinationDataSharing: AwsSSMS5lDestinationDataSharingInput
}

input AwsSSMS5lDestinationDataSharingInput {
  DestinationDataSharingType: String
}

input AwsSSMS5uInput {
  SourceType: String!
  AwsOrganizationsSource: AwsSSMS5wInput
  SourceRegions: [String]!
  IncludeFutureRegions: Boolean
  EnableAllOpsDataSources: Boolean
}

input AwsSSMS5wInput {
  OrganizationSourceType: String!
  OrganizationalUnits: [AwsSSMS5wOrganizationalUnitsInput]
}

input AwsSSMS5wOrganizationalUnitsInput {
  OrganizationalUnitId: String
}

input AwsSSMDeleteActivationInput {
  ActivationId: String!
}

input AwsSSMDeleteAssociationInput {
  Name: String
  InstanceId: String
  AssociationId: String
}

input AwsSSMDeleteDocumentInput {
  Name: String!
  DocumentVersion: String
  VersionName: String
  Force: Boolean
}

type AwsSSMDeleteInventoryOutput {
  DeletionId: String
  TypeName: String
  DeletionSummary: AwsSSMS6i
}

type AwsSSMS6i {
  TotalCount: Int
  RemainingCount: Int
  SummaryItems: [AwsSSMS6iSummaryItems]
}

type AwsSSMS6iSummaryItems {
  Version: String
  Count: Int
  RemainingCount: Int
}

input AwsSSMDeleteInventoryInput {
  TypeName: String!
  SchemaDeleteOption: String
  DryRun: Boolean
  ClientToken: String
}

type AwsSSMDeleteMaintenanceWindowOutput {
  WindowId: String
}

input AwsSSMDeleteMaintenanceWindowInput {
  WindowId: String!
}

input AwsSSMDeleteOpsMetadataInput {
  OpsMetadataArn: String!
}

input AwsSSMDeleteParameterInput {
  Name: String!
}

type AwsSSMDeleteParametersOutput {
  DeletedParameters: [String]
  InvalidParameters: [String]
}

input AwsSSMDeleteParametersInput {
  Names: [String]!
}

type AwsSSMDeletePatchBaselineOutput {
  BaselineId: String
}

input AwsSSMDeletePatchBaselineInput {
  BaselineId: String!
}

input AwsSSMDeleteResourceDataSyncInput {
  SyncName: String!
  SyncType: String
}

input AwsSSMDeregisterManagedInstanceInput {
  InstanceId: String!
}

type AwsSSMDeregisterPatchBaselineForPatchGroupOutput {
  BaselineId: String
  PatchGroup: String
}

input AwsSSMDeregisterPatchBaselineForPatchGroupInput {
  BaselineId: String!
  PatchGroup: String!
}

type AwsSSMDeregisterTargetFromMaintenanceWindowOutput {
  WindowId: String
  WindowTargetId: String
}

input AwsSSMDeregisterTargetFromMaintenanceWindowInput {
  WindowId: String!
  WindowTargetId: String!
  Safe: Boolean
}

type AwsSSMDeregisterTaskFromMaintenanceWindowOutput {
  WindowId: String
  WindowTaskId: String
}

input AwsSSMDeregisterTaskFromMaintenanceWindowInput {
  WindowId: String!
  WindowTaskId: String!
}

type AwsSSMDescribeActivationsOutput {
  ActivationList: [AwsSSMDescribeActivationsOutputActivationList]
  NextToken: String
}

type AwsSSMDescribeActivationsOutputActivationList {
  ActivationId: String
  Description: String
  DefaultInstanceName: String
  IamRole: String
  RegistrationLimit: Int
  RegistrationsCount: Int
  ExpirationDate: Date
  Expired: Boolean
  CreatedDate: Date
  Tags: [AwsSSMS4]
}

input AwsSSMDescribeActivationsInput {
  Filters: [AwsSSMDescribeActivationsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeActivationsFiltersInput {
  FilterKey: String
  FilterValues: [String]
}

type AwsSSMDescribeAssociationOutput {
  AssociationDescription: AwsSSMS1w
}

input AwsSSMDescribeAssociationInput {
  Name: String
  InstanceId: String
  AssociationId: String
  AssociationVersion: String
}

type AwsSSMDescribeAssociationExecutionTargetsOutput {
  AssociationExecutionTargets: [AwsSSMDescribeAssociationExecutionTargetsOutputAssociationExecutionTargets]
  NextToken: String
}

type AwsSSMDescribeAssociationExecutionTargetsOutputAssociationExecutionTargets {
  AssociationId: String
  AssociationVersion: String
  ExecutionId: String
  ResourceId: String
  ResourceType: String
  Status: String
  DetailedStatus: String
  LastExecutionDate: Date
  OutputSource: AwsSSMDescribeAssociationExecutionTargetsOutputAssociationExecutionTargetsOutputSource
}

type AwsSSMDescribeAssociationExecutionTargetsOutputAssociationExecutionTargetsOutputSource {
  OutputSourceId: String
  OutputSourceType: String
}

input AwsSSMDescribeAssociationExecutionTargetsInput {
  AssociationId: String!
  ExecutionId: String!
  Filters: [AwsSSMDescribeAssociationExecutionTargetsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeAssociationExecutionTargetsFiltersInput {
  Key: String!
  Value: String!
}

type AwsSSMDescribeAssociationExecutionsOutput {
  AssociationExecutions: [AwsSSMDescribeAssociationExecutionsOutputAssociationExecutions]
  NextToken: String
}

type AwsSSMDescribeAssociationExecutionsOutputAssociationExecutions {
  AssociationId: String
  AssociationVersion: String
  ExecutionId: String
  Status: String
  DetailedStatus: String
  CreatedTime: Date
  LastExecutionDate: Date
  ResourceCountByStatus: String
}

input AwsSSMDescribeAssociationExecutionsInput {
  AssociationId: String!
  Filters: [AwsSSMDescribeAssociationExecutionsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeAssociationExecutionsFiltersInput {
  Key: String!
  Value: String!
  Type: String!
}

type AwsSSMDescribeAutomationExecutionsOutput {
  AutomationExecutionMetadataList: [AwsSSMDescribeAutomationExecutionsOutputAutomationExecutionMetadataList]
  NextToken: String
}

type AwsSSMDescribeAutomationExecutionsOutputAutomationExecutionMetadataList {
  AutomationExecutionId: String
  DocumentName: String
  DocumentVersion: String
  AutomationExecutionStatus: String
  ExecutionStartTime: Date
  ExecutionEndTime: Date
  ExecutedBy: String
  LogFile: String
  Outputs: JSON
  Mode: String
  ParentAutomationExecutionId: String
  CurrentStepName: String
  CurrentAction: String
  FailureMessage: String
  TargetParameterName: String
  Targets: [AwsSSMS14]
  TargetMaps: [JSON]
  ResolvedTargets: AwsSSMS92
  MaxConcurrency: String
  MaxErrors: String
  Target: String
  AutomationType: String
  AutomationSubtype: String
  ScheduledTime: Date
  Runbooks: [AwsSSMS96]
  OpsItemId: String
  AssociationId: String
  ChangeRequestName: String
}

type AwsSSMS92 {
  ParameterValues: [String]
  Truncated: Boolean
}

type AwsSSMS96 {
  DocumentName: String!
  DocumentVersion: String
  Parameters: JSON
  TargetParameterName: String
  Targets: [AwsSSMS14]
  MaxConcurrency: String
  MaxErrors: String
  TargetLocations: [AwsSSMS1p]
}

input AwsSSMDescribeAutomationExecutionsInput {
  Filters: [AwsSSMDescribeAutomationExecutionsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeAutomationExecutionsFiltersInput {
  Key: String!
  Values: [String]!
}

type AwsSSMDescribeAutomationStepExecutionsOutput {
  StepExecutions: [AwsSSMS9g]
  NextToken: String
}

type AwsSSMS9g {
  StepName: String
  Action: String
  TimeoutSeconds: JSON
  OnFailure: String
  MaxAttempts: Int
  ExecutionStartTime: Date
  ExecutionEndTime: Date
  StepStatus: String
  ResponseCode: String
  Inputs: JSON
  Outputs: JSON
  Response: String
  FailureMessage: String
  FailureDetails: AwsSSMS9gFailureDetails
  StepExecutionId: String
  OverriddenParameters: JSON
  IsEnd: Boolean
  NextStep: String
  IsCritical: Boolean
  ValidNextSteps: [String]
  Targets: [AwsSSMS14]
  TargetLocation: AwsSSMS1p
}

type AwsSSMS9gFailureDetails {
  FailureStage: String
  FailureType: String
  Details: JSON
}

input AwsSSMDescribeAutomationStepExecutionsInput {
  AutomationExecutionId: String!
  Filters: [AwsSSMDescribeAutomationStepExecutionsFiltersInput]
  NextToken: String
  MaxResults: Int
  ReverseOrder: Boolean
}

input AwsSSMDescribeAutomationStepExecutionsFiltersInput {
  Key: String!
  Values: [String]!
}

type AwsSSMDescribeAvailablePatchesOutput {
  Patches: [AwsSSMS9y]
  NextToken: String
}

type AwsSSMS9y {
  Id: String
  ReleaseDate: Date
  Title: String
  Description: String
  ContentUrl: String
  Vendor: String
  ProductFamily: String
  Product: String
  Classification: String
  MsrcSeverity: String
  KbNumber: String
  MsrcNumber: String
  Language: String
  AdvisoryIds: [String]
  BugzillaIds: [String]
  CVEIds: [String]
  Name: String
  Epoch: Int
  Version: String
  Release: String
  Arch: String
  Severity: String
  Repository: String
}

input AwsSSMDescribeAvailablePatchesInput {
  Filters: [AwsSSMS9qInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMS9qInput {
  Key: String
  Values: [String]
}

type AwsSSMDescribeDocumentOutput {
  Document: AwsSSMS2y
}

input AwsSSMDescribeDocumentInput {
  Name: String!
  DocumentVersion: String
  VersionName: String
}

type AwsSSMDescribeDocumentPermissionOutput {
  AccountIds: [String]
  AccountSharingInfoList: [AwsSSMDescribeDocumentPermissionOutputAccountSharingInfoList]
  NextToken: String
}

type AwsSSMDescribeDocumentPermissionOutputAccountSharingInfoList {
  AccountId: String
  SharedDocumentVersion: String
}

input AwsSSMDescribeDocumentPermissionInput {
  Name: String!
  PermissionType: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeEffectiveInstanceAssociationsOutput {
  Associations: [AwsSSMDescribeEffectiveInstanceAssociationsOutputAssociations]
  NextToken: String
}

type AwsSSMDescribeEffectiveInstanceAssociationsOutputAssociations {
  AssociationId: String
  InstanceId: String
  Content: String
  AssociationVersion: String
}

input AwsSSMDescribeEffectiveInstanceAssociationsInput {
  InstanceId: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeEffectivePatchesForPatchBaselineOutput {
  EffectivePatches: [AwsSSMDescribeEffectivePatchesForPatchBaselineOutputEffectivePatches]
  NextToken: String
}

type AwsSSMDescribeEffectivePatchesForPatchBaselineOutputEffectivePatches {
  Patch: AwsSSMS9y
  PatchStatus: AwsSSMDescribeEffectivePatchesForPatchBaselineOutputEffectivePatchesPatchStatus
}

type AwsSSMDescribeEffectivePatchesForPatchBaselineOutputEffectivePatchesPatchStatus {
  DeploymentStatus: String
  ComplianceLevel: String
  ApprovalDate: Date
}

input AwsSSMDescribeEffectivePatchesForPatchBaselineInput {
  BaselineId: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeInstanceAssociationsStatusOutput {
  InstanceAssociationStatusInfos: [AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfos]
  NextToken: String
}

type AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfos {
  AssociationId: String
  Name: String
  DocumentVersion: String
  AssociationVersion: String
  InstanceId: String
  ExecutionDate: Date
  Status: String
  DetailedStatus: String
  ExecutionSummary: String
  ErrorCode: String
  OutputUrl: AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfosOutputUrl
  AssociationName: String
}

type AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfosOutputUrl {
  S3OutputUrl: AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfosOutputUrlS3OutputUrl
}

type AwsSSMDescribeInstanceAssociationsStatusOutputInstanceAssociationStatusInfosOutputUrlS3OutputUrl {
  OutputUrl: String
}

input AwsSSMDescribeInstanceAssociationsStatusInput {
  InstanceId: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeInstanceInformationOutput {
  InstanceInformationList: [AwsSSMDescribeInstanceInformationOutputInstanceInformationList]
  NextToken: String
}

type AwsSSMDescribeInstanceInformationOutputInstanceInformationList {
  InstanceId: String
  PingStatus: String
  LastPingDateTime: Date
  AgentVersion: String
  IsLatestVersion: Boolean
  PlatformType: String
  PlatformName: String
  PlatformVersion: String
  ActivationId: String
  IamRole: String
  RegistrationDate: Date
  ResourceType: String
  Name: String
  IPAddress: String
  ComputerName: String
  AssociationStatus: String
  LastAssociationExecutionDate: Date
  LastSuccessfulAssociationExecutionDate: Date
  AssociationOverview: AwsSSMDescribeInstanceInformationOutputInstanceInformationListAssociationOverview
}

type AwsSSMDescribeInstanceInformationOutputInstanceInformationListAssociationOverview {
  DetailedStatus: String
  InstanceAssociationStatusAggregatedCount: JSON
}

input AwsSSMDescribeInstanceInformationInput {
  InstanceInformationFilterList: [AwsSSMDescribeInstanceInformationInstanceInformationFilterListInput]
  Filters: [AwsSSMDescribeInstanceInformationFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeInstanceInformationInstanceInformationFilterListInput {
  key: String!
  valueSet: [String]!
}

input AwsSSMDescribeInstanceInformationFiltersInput {
  Key: String!
  Values: [String]!
}

type AwsSSMDescribeInstancePatchStatesOutput {
  InstancePatchStates: [AwsSSMSc6]
  NextToken: String
}

type AwsSSMSc6 {
  InstanceId: String!
  PatchGroup: String!
  BaselineId: String!
  SnapshotId: String
  InstallOverrideList: String
  OwnerInformation: String
  InstalledCount: Int
  InstalledOtherCount: Int
  InstalledPendingRebootCount: Int
  InstalledRejectedCount: Int
  MissingCount: Int
  FailedCount: Int
  UnreportedNotApplicableCount: Int
  NotApplicableCount: Int
  OperationStartTime: Date!
  OperationEndTime: Date!
  Operation: String!
  LastNoRebootInstallOperationTime: Date
  RebootOption: String
  CriticalNonCompliantCount: Int
  SecurityNonCompliantCount: Int
  OtherNonCompliantCount: Int
}

input AwsSSMDescribeInstancePatchStatesInput {
  InstanceIds: [String]!
  NextToken: String
  MaxResults: Int
}

type AwsSSMDescribeInstancePatchStatesForPatchGroupOutput {
  InstancePatchStates: [AwsSSMSc6]
  NextToken: String
}

input AwsSSMDescribeInstancePatchStatesForPatchGroupInput {
  PatchGroup: String!
  Filters: [AwsSSMDescribeInstancePatchStatesForPatchGroupFiltersInput]
  NextToken: String
  MaxResults: Int
}

input AwsSSMDescribeInstancePatchStatesForPatchGroupFiltersInput {
  Key: String!
  Values: [String]!
  Type: String!
}

type AwsSSMDescribeInstancePatchesOutput {
  Patches: [AwsSSMDescribeInstancePatchesOutputPatches]
  NextToken: String
}

type AwsSSMDescribeInstancePatchesOutputPatches {
  Title: String!
  KBId: String!
  Classification: String!
  Severity: String!
  State: String!
  InstalledTime: Date!
  CVEIds: String
}

input AwsSSMDescribeInstancePatchesInput {
  InstanceId: String!
  Filters: [AwsSSMS9qInput]
  NextToken: String
  MaxResults: Int
}

type AwsSSMDescribeInventoryDeletionsOutput {
  InventoryDeletions: [AwsSSMDescribeInventoryDeletionsOutputInventoryDeletions]
  NextToken: String
}

type AwsSSMDescribeInventoryDeletionsOutputInventoryDeletions {
  DeletionId: String
  TypeName: String
  DeletionStartTime: Date
  LastStatus: String
  LastStatusMessage: String
  DeletionSummary: AwsSSMS6i
  LastStatusUpdateTime: Date
}

input AwsSSMDescribeInventoryDeletionsInput {
  DeletionId: String
  NextToken: String
  MaxResults: Int
}

type AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsOutput {
  WindowExecutionTaskInvocationIdentities: [AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsOutputWindowExecutionTaskInvocationIdentities]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsOutputWindowExecutionTaskInvocationIdentities {
  WindowExecutionId: String
  TaskExecutionId: String
  InvocationId: String
  ExecutionId: String
  TaskType: String
  Parameters: String
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
  OwnerInformation: String
  WindowTargetId: String
}

input AwsSSMDescribeMaintenanceWindowExecutionTaskInvocationsInput {
  WindowExecutionId: String!
  TaskId: String!
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMSdcInput {
  Key: String
  Values: [String]
}

type AwsSSMDescribeMaintenanceWindowExecutionTasksOutput {
  WindowExecutionTaskIdentities: [AwsSSMDescribeMaintenanceWindowExecutionTasksOutputWindowExecutionTaskIdentities]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowExecutionTasksOutputWindowExecutionTaskIdentities {
  WindowExecutionId: String
  TaskExecutionId: String
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
  TaskArn: String
  TaskType: String
}

input AwsSSMDescribeMaintenanceWindowExecutionTasksInput {
  WindowExecutionId: String!
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowExecutionsOutput {
  WindowExecutions: [AwsSSMDescribeMaintenanceWindowExecutionsOutputWindowExecutions]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowExecutionsOutputWindowExecutions {
  WindowId: String
  WindowExecutionId: String
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
}

input AwsSSMDescribeMaintenanceWindowExecutionsInput {
  WindowId: String!
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowScheduleOutput {
  ScheduledWindowExecutions: [AwsSSMDescribeMaintenanceWindowScheduleOutputScheduledWindowExecutions]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowScheduleOutputScheduledWindowExecutions {
  WindowId: String
  Name: String
  ExecutionTime: String
}

input AwsSSMDescribeMaintenanceWindowScheduleInput {
  WindowId: String
  Targets: [AwsSSMS14Input]
  ResourceType: String
  Filters: [AwsSSMS9qInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowTargetsOutput {
  Targets: [AwsSSMDescribeMaintenanceWindowTargetsOutputTargets]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowTargetsOutputTargets {
  WindowId: String
  WindowTargetId: String
  ResourceType: String
  Targets: [AwsSSMS14]
  OwnerInformation: String
  Name: String
  Description: String
}

input AwsSSMDescribeMaintenanceWindowTargetsInput {
  WindowId: String!
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowTasksOutput {
  Tasks: [AwsSSMDescribeMaintenanceWindowTasksOutputTasks]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowTasksOutputTasks {
  WindowId: String
  WindowTaskId: String
  TaskArn: String
  Type: String
  Targets: [AwsSSMS14]
  TaskParameters: JSON
  Priority: Int
  LoggingInfo: AwsSSMSel
  ServiceRoleArn: String
  MaxConcurrency: String
  MaxErrors: String
  Name: String
  Description: String
}

type AwsSSMSel {
  S3BucketName: String!
  S3KeyPrefix: String
  S3Region: String!
}

input AwsSSMDescribeMaintenanceWindowTasksInput {
  WindowId: String!
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowsOutput {
  WindowIdentities: [AwsSSMDescribeMaintenanceWindowsOutputWindowIdentities]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowsOutputWindowIdentities {
  WindowId: String
  Name: String
  Description: String
  Enabled: Boolean
  Duration: Int
  Cutoff: Int
  Schedule: String
  ScheduleTimezone: String
  ScheduleOffset: Int
  EndDate: String
  StartDate: String
  NextExecutionTime: String
}

input AwsSSMDescribeMaintenanceWindowsInput {
  Filters: [AwsSSMSdcInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowsForTargetOutput {
  WindowIdentities: [AwsSSMDescribeMaintenanceWindowsForTargetOutputWindowIdentities]
  NextToken: String
}

type AwsSSMDescribeMaintenanceWindowsForTargetOutputWindowIdentities {
  WindowId: String
  Name: String
}

input AwsSSMDescribeMaintenanceWindowsForTargetInput {
  Targets: [AwsSSMS14Input]!
  ResourceType: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeOpsItemsOutput {
  NextToken: String
  OpsItemSummaries: [AwsSSMDescribeOpsItemsOutputOpsItemSummaries]
}

type AwsSSMDescribeOpsItemsOutputOpsItemSummaries {
  CreatedBy: String
  CreatedTime: Date
  LastModifiedBy: String
  LastModifiedTime: Date
  Priority: Int
  Source: String
  Status: String
  OpsItemId: String
  Title: String
  OperationalData: JSON
  Category: String
  Severity: String
  OpsItemType: String
  ActualStartTime: Date
  ActualEndTime: Date
  PlannedStartTime: Date
  PlannedEndTime: Date
}

input AwsSSMDescribeOpsItemsInput {
  OpsItemFilters: [AwsSSMDescribeOpsItemsOpsItemFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeOpsItemsOpsItemFiltersInput {
  Key: String!
  Values: [String]!
  Operator: String!
}

type AwsSSMDescribeParametersOutput {
  Parameters: [AwsSSMDescribeParametersOutputParameters]
  NextToken: String
}

type AwsSSMDescribeParametersOutputParameters {
  Name: String
  Type: String
  KeyId: String
  LastModifiedDate: Date
  LastModifiedUser: String
  Description: String
  AllowedPattern: String
  Version: JSON
  Tier: String
  Policies: [AwsSSMSft]
  DataType: String
}

type AwsSSMSft {
  PolicyText: String
  PolicyType: String
  PolicyStatus: String
}

input AwsSSMDescribeParametersInput {
  Filters: [AwsSSMDescribeParametersFiltersInput]
  ParameterFilters: [AwsSSMSfeInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMDescribeParametersFiltersInput {
  Key: String!
  Values: [String]!
}

input AwsSSMSfeInput {
  Key: String!
  Option: String
  Values: [String]
}

type AwsSSMDescribePatchBaselinesOutput {
  BaselineIdentities: [AwsSSMSfz]
  NextToken: String
}

type AwsSSMSfz {
  BaselineId: String
  BaselineName: String
  OperatingSystem: String
  BaselineDescription: String
  DefaultBaseline: Boolean
}

input AwsSSMDescribePatchBaselinesInput {
  Filters: [AwsSSMS9qInput]
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribePatchGroupStateOutput {
  Instances: Int
  InstancesWithInstalledPatches: Int
  InstancesWithInstalledOtherPatches: Int
  InstancesWithInstalledPendingRebootPatches: Int
  InstancesWithInstalledRejectedPatches: Int
  InstancesWithMissingPatches: Int
  InstancesWithFailedPatches: Int
  InstancesWithNotApplicablePatches: Int
  InstancesWithUnreportedNotApplicablePatches: Int
  InstancesWithCriticalNonCompliantPatches: Int
  InstancesWithSecurityNonCompliantPatches: Int
  InstancesWithOtherNonCompliantPatches: Int
}

input AwsSSMDescribePatchGroupStateInput {
  PatchGroup: String!
}

type AwsSSMDescribePatchGroupsOutput {
  Mappings: [AwsSSMDescribePatchGroupsOutputMappings]
  NextToken: String
}

type AwsSSMDescribePatchGroupsOutputMappings {
  PatchGroup: String
  BaselineIdentity: AwsSSMSfz
}

input AwsSSMDescribePatchGroupsInput {
  MaxResults: Int
  Filters: [AwsSSMS9qInput]
  NextToken: String
}

type AwsSSMDescribePatchPropertiesOutput {
  Properties: [JSON]
  NextToken: String
}

input AwsSSMDescribePatchPropertiesInput {
  OperatingSystem: String!
  Property: String!
  PatchSet: String
  MaxResults: Int
  NextToken: String
}

type AwsSSMDescribeSessionsOutput {
  Sessions: [AwsSSMDescribeSessionsOutputSessions]
  NextToken: String
}

type AwsSSMDescribeSessionsOutputSessions {
  SessionId: String
  Target: String
  Status: String
  StartDate: Date
  EndDate: Date
  DocumentName: String
  Owner: String
  Details: String
  OutputUrl: AwsSSMDescribeSessionsOutputSessionsOutputUrl
}

type AwsSSMDescribeSessionsOutputSessionsOutputUrl {
  S3OutputUrl: String
  CloudWatchOutputUrl: String
}

input AwsSSMDescribeSessionsInput {
  State: String!
  MaxResults: Int
  NextToken: String
  Filters: [AwsSSMDescribeSessionsFiltersInput]
}

input AwsSSMDescribeSessionsFiltersInput {
  key: String!
  value: String!
}

input AwsSSMDisassociateOpsItemRelatedItemInput {
  OpsItemId: String!
  AssociationId: String!
}

type AwsSSMGetAutomationExecutionOutput {
  AutomationExecution: AwsSSMGetAutomationExecutionOutputAutomationExecution
}

type AwsSSMGetAutomationExecutionOutputAutomationExecution {
  AutomationExecutionId: String
  DocumentName: String
  DocumentVersion: String
  ExecutionStartTime: Date
  ExecutionEndTime: Date
  AutomationExecutionStatus: String
  StepExecutions: [AwsSSMS9g]
  StepExecutionsTruncated: Boolean
  Parameters: JSON
  Outputs: JSON
  FailureMessage: String
  Mode: String
  ParentAutomationExecutionId: String
  ExecutedBy: String
  CurrentStepName: String
  CurrentAction: String
  TargetParameterName: String
  Targets: [AwsSSMS14]
  TargetMaps: [JSON]
  ResolvedTargets: AwsSSMS92
  MaxConcurrency: String
  MaxErrors: String
  Target: String
  TargetLocations: [AwsSSMS1p]
  ProgressCounters: AwsSSMGetAutomationExecutionOutputAutomationExecutionProgressCounters
  AutomationSubtype: String
  ScheduledTime: Date
  Runbooks: [AwsSSMS96]
  OpsItemId: String
  AssociationId: String
  ChangeRequestName: String
}

type AwsSSMGetAutomationExecutionOutputAutomationExecutionProgressCounters {
  TotalSteps: Int
  SuccessSteps: Int
  FailedSteps: Int
  CancelledSteps: Int
  TimedOutSteps: Int
}

input AwsSSMGetAutomationExecutionInput {
  AutomationExecutionId: String!
}

type AwsSSMGetCalendarStateOutput {
  State: String
  AtTime: String
  NextTransitionTime: String
}

input AwsSSMGetCalendarStateInput {
  CalendarNames: [String]!
  AtTime: String
}

type AwsSSMGetCommandInvocationOutput {
  CommandId: String
  InstanceId: String
  Comment: String
  DocumentName: String
  DocumentVersion: String
  PluginName: String
  ResponseCode: Int
  ExecutionStartDateTime: String
  ExecutionElapsedTime: String
  ExecutionEndDateTime: String
  Status: String
  StatusDetails: String
  StandardOutputContent: String
  StandardOutputUrl: String
  StandardErrorContent: String
  StandardErrorUrl: String
  CloudWatchOutputConfig: AwsSSMShi
}

type AwsSSMShi {
  CloudWatchLogGroupName: String
  CloudWatchOutputEnabled: Boolean
}

input AwsSSMGetCommandInvocationInput {
  CommandId: String!
  InstanceId: String!
  PluginName: String
}

type AwsSSMGetConnectionStatusOutput {
  Target: String
  Status: String
}

input AwsSSMGetConnectionStatusInput {
  Target: String!
}

type AwsSSMGetDefaultPatchBaselineOutput {
  BaselineId: String
  OperatingSystem: String
}

input AwsSSMGetDefaultPatchBaselineInput {
  OperatingSystem: String
}

type AwsSSMGetDeployablePatchSnapshotForInstanceOutput {
  InstanceId: String
  SnapshotId: String
  SnapshotDownloadUrl: String
  Product: String
}

input AwsSSMGetDeployablePatchSnapshotForInstanceInput {
  InstanceId: String!
  SnapshotId: String!
  BaselineOverride: AwsSSMGetDeployablePatchSnapshotForInstanceBaselineOverrideInput
}

input AwsSSMGetDeployablePatchSnapshotForInstanceBaselineOverrideInput {
  OperatingSystem: String
  GlobalFilters: AwsSSMS4uInput
  ApprovalRules: AwsSSMS50Input
  ApprovedPatches: [String]
  ApprovedPatchesComplianceLevel: String
  RejectedPatches: [String]
  RejectedPatchesAction: String
  ApprovedPatchesEnableNonSecurity: Boolean
  Sources: [AwsSSMS5bInput]
}

type AwsSSMGetDocumentOutput {
  Name: String
  CreatedDate: Date
  DisplayName: String
  VersionName: String
  DocumentVersion: String
  Status: String
  StatusInformation: String
  Content: String
  DocumentType: String
  DocumentFormat: String
  Requires: [AwsSSMS2j]
  AttachmentsContent: [AwsSSMGetDocumentOutputAttachmentsContent]
  ReviewStatus: String
}

type AwsSSMGetDocumentOutputAttachmentsContent {
  Name: String
  Size: JSON
  Hash: String
  HashType: String
  Url: String
}

input AwsSSMGetDocumentInput {
  Name: String!
  VersionName: String
  DocumentVersion: String
  DocumentFormat: String
}

type AwsSSMGetInventoryOutput {
  Entities: [AwsSSMGetInventoryOutputEntities]
  NextToken: String
}

type AwsSSMGetInventoryOutputEntities {
  Id: String
  Data: JSON
}

input AwsSSMGetInventoryInput {
  Filters: [AwsSSMSi4Input]
  Aggregators: [AwsSSMSiaInput]
  ResultAttributes: [AwsSSMGetInventoryResultAttributesInput]
  NextToken: String
  MaxResults: Int
}

input AwsSSMSi4Input {
  Key: String!
  Values: [String]!
  Type: String
}

input AwsSSMSiaInput {
  Expression: String
  Aggregators: JSON
  Groups: [AwsSSMSiaGroupsInput]
}

input AwsSSMSiaGroupsInput {
  Name: String!
  Filters: [AwsSSMSi4Input]!
}

input AwsSSMGetInventoryResultAttributesInput {
  TypeName: String!
}

type AwsSSMGetInventorySchemaOutput {
  Schemas: [AwsSSMGetInventorySchemaOutputSchemas]
  NextToken: String
}

type AwsSSMGetInventorySchemaOutputSchemas {
  TypeName: String!
  Version: String
  Attributes: [AwsSSMGetInventorySchemaOutputSchemasAttributes]!
  DisplayName: String
}

type AwsSSMGetInventorySchemaOutputSchemasAttributes {
  Name: String!
  DataType: String!
}

input AwsSSMGetInventorySchemaInput {
  TypeName: String
  NextToken: String
  MaxResults: Int
  Aggregator: Boolean
  SubType: Boolean
}

type AwsSSMGetMaintenanceWindowOutput {
  WindowId: String
  Name: String
  Description: String
  StartDate: String
  EndDate: String
  Schedule: String
  ScheduleTimezone: String
  ScheduleOffset: Int
  NextExecutionTime: String
  Duration: Int
  Cutoff: Int
  AllowUnassociatedTargets: Boolean
  Enabled: Boolean
  CreatedDate: Date
  ModifiedDate: Date
}

input AwsSSMGetMaintenanceWindowInput {
  WindowId: String!
}

type AwsSSMGetMaintenanceWindowExecutionOutput {
  WindowExecutionId: String
  TaskIds: [String]
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
}

input AwsSSMGetMaintenanceWindowExecutionInput {
  WindowExecutionId: String!
}

type AwsSSMGetMaintenanceWindowExecutionTaskOutput {
  WindowExecutionId: String
  TaskExecutionId: String
  TaskArn: String
  ServiceRole: String
  Type: String
  TaskParameters: [JSON]
  Priority: Int
  MaxConcurrency: String
  MaxErrors: String
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
}

input AwsSSMGetMaintenanceWindowExecutionTaskInput {
  WindowExecutionId: String!
  TaskId: String!
}

type AwsSSMGetMaintenanceWindowExecutionTaskInvocationOutput {
  WindowExecutionId: String
  TaskExecutionId: String
  InvocationId: String
  ExecutionId: String
  TaskType: String
  Parameters: String
  Status: String
  StatusDetails: String
  StartTime: Date
  EndTime: Date
  OwnerInformation: String
  WindowTargetId: String
}

input AwsSSMGetMaintenanceWindowExecutionTaskInvocationInput {
  WindowExecutionId: String!
  TaskId: String!
  InvocationId: String!
}

type AwsSSMGetMaintenanceWindowTaskOutput {
  WindowId: String
  WindowTaskId: String
  Targets: [AwsSSMS14]
  TaskArn: String
  ServiceRoleArn: String
  TaskType: String
  TaskParameters: JSON
  TaskInvocationParameters: AwsSSMSji
  Priority: Int
  MaxConcurrency: String
  MaxErrors: String
  LoggingInfo: AwsSSMSel
  Name: String
  Description: String
}

type AwsSSMSji {
  RunCommand: AwsSSMSjiRunCommand
  Automation: AwsSSMSjiAutomation
  StepFunctions: AwsSSMSjiStepFunctions
  Lambda: AwsSSMSjiLambda
}

type AwsSSMSjiRunCommand {
  Comment: String
  CloudWatchOutputConfig: AwsSSMShi
  DocumentHash: String
  DocumentHashType: String
  DocumentVersion: String
  NotificationConfig: AwsSSMSjk
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
  Parameters: JSON
  ServiceRoleArn: String
  TimeoutSeconds: Int
}

type AwsSSMSjk {
  NotificationArn: String
  NotificationEvents: [String]
  NotificationType: String
}

type AwsSSMSjiAutomation {
  DocumentVersion: String
  Parameters: JSON
}

type AwsSSMSjiStepFunctions {
  Input: String
  Name: String
}

type AwsSSMSjiLambda {
  ClientContext: String
  Qualifier: String
  Payload: JSON
}

input AwsSSMGetMaintenanceWindowTaskInput {
  WindowId: String!
  WindowTaskId: String!
}

type AwsSSMGetOpsItemOutput {
  OpsItem: AwsSSMGetOpsItemOutputOpsItem
}

type AwsSSMGetOpsItemOutputOpsItem {
  CreatedBy: String
  OpsItemType: String
  CreatedTime: Date
  Description: String
  LastModifiedBy: String
  LastModifiedTime: Date
  Notifications: [AwsSSMS48]
  Priority: Int
  RelatedOpsItems: [AwsSSMS4c]
  Status: String
  OpsItemId: String
  Version: String
  Title: String
  Source: String
  OperationalData: JSON
  Category: String
  Severity: String
  ActualStartTime: Date
  ActualEndTime: Date
  PlannedStartTime: Date
  PlannedEndTime: Date
}

type AwsSSMS48 {
  Arn: String
}

type AwsSSMS4c {
  OpsItemId: String!
}

input AwsSSMGetOpsItemInput {
  OpsItemId: String!
}

type AwsSSMGetOpsMetadataOutput {
  ResourceId: String
  Metadata: JSON
  NextToken: String
}

input AwsSSMGetOpsMetadataInput {
  OpsMetadataArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMGetOpsSummaryOutput {
  Entities: [AwsSSMGetOpsSummaryOutputEntities]
  NextToken: String
}

type AwsSSMGetOpsSummaryOutputEntities {
  Id: String
  Data: JSON
}

input AwsSSMGetOpsSummaryInput {
  SyncName: String
  Filters: [AwsSSMSk5Input]
  Aggregators: [AwsSSMSkbInput]
  ResultAttributes: [AwsSSMGetOpsSummaryResultAttributesInput]
  NextToken: String
  MaxResults: Int
}

input AwsSSMSk5Input {
  Key: String!
  Values: [String]!
  Type: String
}

input AwsSSMSkbInput {
  AggregatorType: String
  TypeName: String
  AttributeName: String
  Values: JSON
  Filters: [AwsSSMSk5Input]
  Aggregators: JSON
}

input AwsSSMGetOpsSummaryResultAttributesInput {
  TypeName: String!
}

type AwsSSMGetParameterOutput {
  Parameter: AwsSSMSkx
}

type AwsSSMSkx {
  Name: String
  Type: String
  Value: String
  Version: JSON
  Selector: String
  SourceResult: String
  LastModifiedDate: Date
  ARN: String
  DataType: String
}

input AwsSSMGetParameterInput {
  Name: String!
  WithDecryption: Boolean
}

type AwsSSMGetParameterHistoryOutput {
  Parameters: [AwsSSMGetParameterHistoryOutputParameters]
  NextToken: String
}

type AwsSSMGetParameterHistoryOutputParameters {
  Name: String
  Type: String
  KeyId: String
  LastModifiedDate: Date
  LastModifiedUser: String
  Description: String
  Value: String
  AllowedPattern: String
  Version: JSON
  Labels: [String]
  Tier: String
  Policies: [AwsSSMSft]
  DataType: String
}

input AwsSSMGetParameterHistoryInput {
  Name: String!
  WithDecryption: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsSSMGetParametersOutput {
  Parameters: [AwsSSMSkx]
  InvalidParameters: [String]
}

input AwsSSMGetParametersInput {
  Names: [String]!
  WithDecryption: Boolean
}

type AwsSSMGetParametersByPathOutput {
  Parameters: [AwsSSMSkx]
  NextToken: String
}

input AwsSSMGetParametersByPathInput {
  Path: String!
  Recursive: Boolean
  ParameterFilters: [AwsSSMSfeInput]
  WithDecryption: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsSSMGetPatchBaselineOutput {
  BaselineId: String
  Name: String
  OperatingSystem: String
  GlobalFilters: AwsSSMS4u
  ApprovalRules: AwsSSMS50
  ApprovedPatches: [String]
  ApprovedPatchesComplianceLevel: String
  ApprovedPatchesEnableNonSecurity: Boolean
  RejectedPatches: [String]
  RejectedPatchesAction: String
  PatchGroups: [String]
  CreatedDate: Date
  ModifiedDate: Date
  Description: String
  Sources: [AwsSSMS5b]
}

type AwsSSMS4u {
  PatchFilters: [AwsSSMS4uPatchFilters]!
}

type AwsSSMS4uPatchFilters {
  Key: String!
  Values: [String]!
}

type AwsSSMS50 {
  PatchRules: [AwsSSMS50PatchRules]!
}

type AwsSSMS50PatchRules {
  PatchFilterGroup: AwsSSMS4u!
  ComplianceLevel: String
  ApproveAfterDays: Int
  ApproveUntilDate: String
  EnableNonSecurity: Boolean
}

type AwsSSMS5b {
  Name: String!
  Products: [String]!
  Configuration: String!
}

input AwsSSMGetPatchBaselineInput {
  BaselineId: String!
}

type AwsSSMGetPatchBaselineForPatchGroupOutput {
  BaselineId: String
  PatchGroup: String
  OperatingSystem: String
}

input AwsSSMGetPatchBaselineForPatchGroupInput {
  PatchGroup: String!
  OperatingSystem: String
}

type AwsSSMGetServiceSettingOutput {
  ServiceSetting: AwsSSMSlk
}

type AwsSSMSlk {
  SettingId: String
  SettingValue: String
  LastModifiedDate: Date
  LastModifiedUser: String
  ARN: String
  Status: String
}

input AwsSSMGetServiceSettingInput {
  SettingId: String!
}

type AwsSSMLabelParameterVersionOutput {
  InvalidLabels: [String]
  ParameterVersion: JSON
}

input AwsSSMLabelParameterVersionInput {
  Name: String!
  ParameterVersion: JSON
  Labels: [String]!
}

type AwsSSMListAssociationVersionsOutput {
  AssociationVersions: [AwsSSMListAssociationVersionsOutputAssociationVersions]
  NextToken: String
}

type AwsSSMListAssociationVersionsOutputAssociationVersions {
  AssociationId: String
  AssociationVersion: String
  CreatedDate: Date
  Name: String
  DocumentVersion: String
  Parameters: JSON
  Targets: [AwsSSMS14]
  ScheduleExpression: String
  OutputLocation: AwsSSMS1a
  AssociationName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1p]
}

input AwsSSMListAssociationVersionsInput {
  AssociationId: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMListAssociationsOutput {
  Associations: [AwsSSMListAssociationsOutputAssociations]
  NextToken: String
}

type AwsSSMListAssociationsOutputAssociations {
  Name: String
  InstanceId: String
  AssociationId: String
  AssociationVersion: String
  DocumentVersion: String
  Targets: [AwsSSMS14]
  LastExecutionDate: Date
  Overview: AwsSSMS23
  ScheduleExpression: String
  AssociationName: String
}

input AwsSSMListAssociationsInput {
  AssociationFilterList: [AwsSSMListAssociationsAssociationFilterListInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMListAssociationsAssociationFilterListInput {
  key: String!
  value: String!
}

type AwsSSMListCommandInvocationsOutput {
  CommandInvocations: [AwsSSMListCommandInvocationsOutputCommandInvocations]
  NextToken: String
}

type AwsSSMListCommandInvocationsOutputCommandInvocations {
  CommandId: String
  InstanceId: String
  InstanceName: String
  Comment: String
  DocumentName: String
  DocumentVersion: String
  RequestedDateTime: Date
  Status: String
  StatusDetails: String
  TraceOutput: String
  StandardOutputUrl: String
  StandardErrorUrl: String
  CommandPlugins: [AwsSSMListCommandInvocationsOutputCommandInvocationsCommandPlugins]
  ServiceRole: String
  NotificationConfig: AwsSSMSjk
  CloudWatchOutputConfig: AwsSSMShi
}

type AwsSSMListCommandInvocationsOutputCommandInvocationsCommandPlugins {
  Name: String
  Status: String
  StatusDetails: String
  ResponseCode: Int
  ResponseStartDateTime: Date
  ResponseFinishDateTime: Date
  Output: String
  StandardOutputUrl: String
  StandardErrorUrl: String
  OutputS3Region: String
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
}

input AwsSSMListCommandInvocationsInput {
  CommandId: String
  InstanceId: String
  MaxResults: Int
  NextToken: String
  Filters: [AwsSSMSm2Input]
  Details: Boolean
}

input AwsSSMSm2Input {
  key: String!
  value: String!
}

type AwsSSMListCommandsOutput {
  Commands: [AwsSSMSmi]
  NextToken: String
}

type AwsSSMSmi {
  CommandId: String
  DocumentName: String
  DocumentVersion: String
  Comment: String
  ExpiresAfter: Date
  Parameters: JSON
  InstanceIds: [String]
  Targets: [AwsSSMS14]
  RequestedDateTime: Date
  Status: String
  StatusDetails: String
  OutputS3Region: String
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
  MaxConcurrency: String
  MaxErrors: String
  TargetCount: Int
  CompletedCount: Int
  ErrorCount: Int
  DeliveryTimedOutCount: Int
  ServiceRole: String
  NotificationConfig: AwsSSMSjk
  CloudWatchOutputConfig: AwsSSMShi
  TimeoutSeconds: Int
}

input AwsSSMListCommandsInput {
  CommandId: String
  InstanceId: String
  MaxResults: Int
  NextToken: String
  Filters: [AwsSSMSm2Input]
}

type AwsSSMListComplianceItemsOutput {
  ComplianceItems: [AwsSSMListComplianceItemsOutputComplianceItems]
  NextToken: String
}

type AwsSSMListComplianceItemsOutputComplianceItems {
  ComplianceType: String
  ResourceType: String
  ResourceId: String
  Id: String
  Title: String
  Status: String
  Severity: String
  ExecutionSummary: AwsSSMSn7
  Details: JSON
}

type AwsSSMSn7 {
  ExecutionTime: Date!
  ExecutionId: String
  ExecutionType: String
}

input AwsSSMListComplianceItemsInput {
  Filters: [AwsSSMSmpInput]
  ResourceIds: [String]
  ResourceTypes: [String]
  NextToken: String
  MaxResults: Int
}

input AwsSSMSmpInput {
  Key: String
  Values: [String]
  Type: String
}

type AwsSSMListComplianceSummariesOutput {
  ComplianceSummaryItems: [AwsSSMListComplianceSummariesOutputComplianceSummaryItems]
  NextToken: String
}

type AwsSSMListComplianceSummariesOutputComplianceSummaryItems {
  ComplianceType: String
  CompliantSummary: AwsSSMSnf
  NonCompliantSummary: AwsSSMSni
}

type AwsSSMSnf {
  CompliantCount: Int
  SeveritySummary: AwsSSMSnh
}

type AwsSSMSnh {
  CriticalCount: Int
  HighCount: Int
  MediumCount: Int
  LowCount: Int
  InformationalCount: Int
  UnspecifiedCount: Int
}

type AwsSSMSni {
  NonCompliantCount: Int
  SeveritySummary: AwsSSMSnh
}

input AwsSSMListComplianceSummariesInput {
  Filters: [AwsSSMSmpInput]
  NextToken: String
  MaxResults: Int
}

type AwsSSMListDocumentMetadataHistoryOutput {
  Name: String
  DocumentVersion: String
  Author: String
  Metadata: AwsSSMListDocumentMetadataHistoryOutputMetadata
  NextToken: String
}

type AwsSSMListDocumentMetadataHistoryOutputMetadata {
  ReviewerResponse: [AwsSSMListDocumentMetadataHistoryOutputMetadataReviewerResponse]
}

type AwsSSMListDocumentMetadataHistoryOutputMetadataReviewerResponse {
  CreateTime: Date
  UpdatedTime: Date
  ReviewStatus: String
  Comment: [AwsSSMSnp]
  Reviewer: String
}

type AwsSSMSnp {
  Type: String
  Content: String
}

input AwsSSMListDocumentMetadataHistoryInput {
  Name: String!
  DocumentVersion: String
  Metadata: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSMListDocumentVersionsOutput {
  DocumentVersions: [AwsSSMListDocumentVersionsOutputDocumentVersions]
  NextToken: String
}

type AwsSSMListDocumentVersionsOutputDocumentVersions {
  Name: String
  DisplayName: String
  DocumentVersion: String
  VersionName: String
  CreatedDate: Date
  IsDefaultVersion: Boolean
  DocumentFormat: String
  Status: String
  StatusInformation: String
  ReviewStatus: String
}

input AwsSSMListDocumentVersionsInput {
  Name: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSMListDocumentsOutput {
  DocumentIdentifiers: [AwsSSMListDocumentsOutputDocumentIdentifiers]
  NextToken: String
}

type AwsSSMListDocumentsOutputDocumentIdentifiers {
  Name: String
  CreatedDate: Date
  DisplayName: String
  Owner: String
  VersionName: String
  PlatformTypes: [String]
  DocumentVersion: String
  DocumentType: String
  SchemaVersion: String
  DocumentFormat: String
  TargetType: String
  Tags: [AwsSSMS4]
  Requires: [AwsSSMS2j]
  ReviewStatus: String
  Author: String
}

input AwsSSMListDocumentsInput {
  DocumentFilterList: [AwsSSMListDocumentsDocumentFilterListInput]
  Filters: [AwsSSMListDocumentsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMListDocumentsDocumentFilterListInput {
  key: String!
  value: String!
}

input AwsSSMListDocumentsFiltersInput {
  Key: String
  Values: [String]
}

type AwsSSMListInventoryEntriesOutput {
  TypeName: String
  InstanceId: String
  SchemaVersion: String
  CaptureTime: String
  Entries: [JSON]
  NextToken: String
}

input AwsSSMListInventoryEntriesInput {
  InstanceId: String!
  TypeName: String!
  Filters: [AwsSSMSi4Input]
  NextToken: String
  MaxResults: Int
}

type AwsSSMListOpsItemEventsOutput {
  NextToken: String
  Summaries: [AwsSSMListOpsItemEventsOutputSummaries]
}

type AwsSSMListOpsItemEventsOutputSummaries {
  OpsItemId: String
  EventId: String
  Source: String
  DetailType: String
  Detail: String
  CreatedBy: AwsSSMSon
  CreatedTime: Date
}

type AwsSSMSon {
  Arn: String
}

input AwsSSMListOpsItemEventsInput {
  Filters: [AwsSSMListOpsItemEventsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMListOpsItemEventsFiltersInput {
  Key: String!
  Values: [String]!
  Operator: String!
}

type AwsSSMListOpsItemRelatedItemsOutput {
  NextToken: String
  Summaries: [AwsSSMListOpsItemRelatedItemsOutputSummaries]
}

type AwsSSMListOpsItemRelatedItemsOutputSummaries {
  OpsItemId: String
  AssociationId: String
  ResourceType: String
  AssociationType: String
  ResourceUri: String
  CreatedBy: AwsSSMSon
  CreatedTime: Date
  LastModifiedBy: AwsSSMSon
  LastModifiedTime: Date
}

input AwsSSMListOpsItemRelatedItemsInput {
  OpsItemId: String
  Filters: [AwsSSMListOpsItemRelatedItemsFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMListOpsItemRelatedItemsFiltersInput {
  Key: String!
  Values: [String]!
  Operator: String!
}

type AwsSSMListOpsMetadataOutput {
  OpsMetadataList: [AwsSSMListOpsMetadataOutputOpsMetadataList]
  NextToken: String
}

type AwsSSMListOpsMetadataOutputOpsMetadataList {
  ResourceId: String
  OpsMetadataArn: String
  LastModifiedDate: Date
  LastModifiedUser: String
  CreationDate: Date
}

input AwsSSMListOpsMetadataInput {
  Filters: [AwsSSMListOpsMetadataFiltersInput]
  MaxResults: Int
  NextToken: String
}

input AwsSSMListOpsMetadataFiltersInput {
  Key: String!
  Values: [String]!
}

type AwsSSMListResourceComplianceSummariesOutput {
  ResourceComplianceSummaryItems: [AwsSSMListResourceComplianceSummariesOutputResourceComplianceSummaryItems]
  NextToken: String
}

type AwsSSMListResourceComplianceSummariesOutputResourceComplianceSummaryItems {
  ComplianceType: String
  ResourceType: String
  ResourceId: String
  Status: String
  OverallSeverity: String
  ExecutionSummary: AwsSSMSn7
  CompliantSummary: AwsSSMSnf
  NonCompliantSummary: AwsSSMSni
}

input AwsSSMListResourceComplianceSummariesInput {
  Filters: [AwsSSMSmpInput]
  NextToken: String
  MaxResults: Int
}

type AwsSSMListResourceDataSyncOutput {
  ResourceDataSyncItems: [AwsSSMListResourceDataSyncOutputResourceDataSyncItems]
  NextToken: String
}

type AwsSSMListResourceDataSyncOutputResourceDataSyncItems {
  SyncName: String
  SyncType: String
  SyncSource: AwsSSMListResourceDataSyncOutputResourceDataSyncItemsSyncSource
  S3Destination: AwsSSMS5l
  LastSyncTime: Date
  LastSuccessfulSyncTime: Date
  SyncLastModifiedTime: Date
  LastStatus: String
  SyncCreatedTime: Date
  LastSyncStatusMessage: String
}

type AwsSSMListResourceDataSyncOutputResourceDataSyncItemsSyncSource {
  SourceType: String
  AwsOrganizationsSource: AwsSSMS5w
  SourceRegions: [String]
  IncludeFutureRegions: Boolean
  State: String
  EnableAllOpsDataSources: Boolean
}

type AwsSSMS5w {
  OrganizationSourceType: String!
  OrganizationalUnits: [AwsSSMS5wOrganizationalUnits]
}

type AwsSSMS5wOrganizationalUnits {
  OrganizationalUnitId: String
}

type AwsSSMS5l {
  BucketName: String!
  Prefix: String
  SyncFormat: String!
  Region: String!
  AWSKMSKeyARN: String
  DestinationDataSharing: AwsSSMS5lDestinationDataSharing
}

type AwsSSMS5lDestinationDataSharing {
  DestinationDataSharingType: String
}

input AwsSSMListResourceDataSyncInput {
  SyncType: String
  NextToken: String
  MaxResults: Int
}

type AwsSSMListTagsForResourceOutput {
  TagList: [AwsSSMS4]
}

input AwsSSMListTagsForResourceInput {
  ResourceType: String!
  ResourceId: String!
}

input AwsSSMModifyDocumentPermissionInput {
  Name: String!
  PermissionType: String!
  AccountIdsToAdd: [String]
  AccountIdsToRemove: [String]
  SharedDocumentVersion: String
}

input AwsSSMPutComplianceItemsInput {
  ResourceId: String!
  ResourceType: String!
  ComplianceType: String!
  ExecutionSummary: AwsSSMSn7Input!
  Items: [AwsSSMPutComplianceItemsItemsInput]!
  ItemContentHash: String
  UploadType: String
}

input AwsSSMSn7Input {
  ExecutionTime: Date!
  ExecutionId: String
  ExecutionType: String
}

input AwsSSMPutComplianceItemsItemsInput {
  Id: String
  Title: String
  Severity: String!
  Status: String!
  Details: JSON
}

type AwsSSMPutInventoryOutput {
  Message: String
}

input AwsSSMPutInventoryInput {
  InstanceId: String!
  Items: [AwsSSMPutInventoryItemsInput]!
}

input AwsSSMPutInventoryItemsInput {
  TypeName: String!
  SchemaVersion: String!
  CaptureTime: String!
  ContentHash: String
  Content: [JSON]
  Context: JSON
}

type AwsSSMPutParameterOutput {
  Version: JSON
  Tier: String
}

input AwsSSMPutParameterInput {
  Name: String!
  Description: String
  Value: String!
  Type: String
  KeyId: String
  Overwrite: Boolean
  AllowedPattern: String
  Tags: [AwsSSMS4Input]
  Tier: String
  Policies: String
  DataType: String
}

type AwsSSMRegisterDefaultPatchBaselineOutput {
  BaselineId: String
}

input AwsSSMRegisterDefaultPatchBaselineInput {
  BaselineId: String!
}

type AwsSSMRegisterPatchBaselineForPatchGroupOutput {
  BaselineId: String
  PatchGroup: String
}

input AwsSSMRegisterPatchBaselineForPatchGroupInput {
  BaselineId: String!
  PatchGroup: String!
}

type AwsSSMRegisterTargetWithMaintenanceWindowOutput {
  WindowTargetId: String
}

input AwsSSMRegisterTargetWithMaintenanceWindowInput {
  WindowId: String!
  ResourceType: String!
  Targets: [AwsSSMS14Input]!
  OwnerInformation: String
  Name: String
  Description: String
  ClientToken: String
}

type AwsSSMRegisterTaskWithMaintenanceWindowOutput {
  WindowTaskId: String
}

input AwsSSMRegisterTaskWithMaintenanceWindowInput {
  WindowId: String!
  Targets: [AwsSSMS14Input]
  TaskArn: String!
  ServiceRoleArn: String
  TaskType: String!
  TaskParameters: JSON
  TaskInvocationParameters: AwsSSMSjiInput
  Priority: Int
  MaxConcurrency: String
  MaxErrors: String
  LoggingInfo: AwsSSMSelInput
  Name: String
  Description: String
  ClientToken: String
}

input AwsSSMSjiInput {
  RunCommand: AwsSSMSjiRunCommandInput
  Automation: AwsSSMSjiAutomationInput
  StepFunctions: AwsSSMSjiStepFunctionsInput
  Lambda: AwsSSMSjiLambdaInput
}

input AwsSSMSjiRunCommandInput {
  Comment: String
  CloudWatchOutputConfig: AwsSSMShiInput
  DocumentHash: String
  DocumentHashType: String
  DocumentVersion: String
  NotificationConfig: AwsSSMSjkInput
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
  Parameters: JSON
  ServiceRoleArn: String
  TimeoutSeconds: Int
}

input AwsSSMShiInput {
  CloudWatchLogGroupName: String
  CloudWatchOutputEnabled: Boolean
}

input AwsSSMSjkInput {
  NotificationArn: String
  NotificationEvents: [String]
  NotificationType: String
}

input AwsSSMSjiAutomationInput {
  DocumentVersion: String
  Parameters: JSON
}

input AwsSSMSjiStepFunctionsInput {
  Input: String
  Name: String
}

input AwsSSMSjiLambdaInput {
  ClientContext: String
  Qualifier: String
  Payload: JSON
}

input AwsSSMSelInput {
  S3BucketName: String!
  S3KeyPrefix: String
  S3Region: String!
}

input AwsSSMRemoveTagsFromResourceInput {
  ResourceType: String!
  ResourceId: String!
  TagKeys: [String]!
}

type AwsSSMResetServiceSettingOutput {
  ServiceSetting: AwsSSMSlk
}

input AwsSSMResetServiceSettingInput {
  SettingId: String!
}

type AwsSSMResumeSessionOutput {
  SessionId: String
  TokenValue: String
  StreamUrl: String
}

input AwsSSMResumeSessionInput {
  SessionId: String!
}

input AwsSSMSendAutomationSignalInput {
  AutomationExecutionId: String!
  SignalType: String!
  Payload: JSON
}

type AwsSSMSendCommandOutput {
  Command: AwsSSMSmi
}

input AwsSSMSendCommandInput {
  InstanceIds: [String]
  Targets: [AwsSSMS14Input]
  DocumentName: String!
  DocumentVersion: String
  DocumentHash: String
  DocumentHashType: String
  TimeoutSeconds: Int
  Comment: String
  Parameters: JSON
  OutputS3Region: String
  OutputS3BucketName: String
  OutputS3KeyPrefix: String
  MaxConcurrency: String
  MaxErrors: String
  ServiceRoleArn: String
  NotificationConfig: AwsSSMSjkInput
  CloudWatchOutputConfig: AwsSSMShiInput
}

input AwsSSMStartAssociationsOnceInput {
  AssociationIds: [String]!
}

type AwsSSMStartAutomationExecutionOutput {
  AutomationExecutionId: String
}

input AwsSSMStartAutomationExecutionInput {
  DocumentName: String!
  DocumentVersion: String
  Parameters: JSON
  ClientToken: String
  Mode: String
  TargetParameterName: String
  Targets: [AwsSSMS14Input]
  TargetMaps: [JSON]
  MaxConcurrency: String
  MaxErrors: String
  TargetLocations: [AwsSSMS1pInput]
  Tags: [AwsSSMS4Input]
}

type AwsSSMStartChangeRequestExecutionOutput {
  AutomationExecutionId: String
}

input AwsSSMStartChangeRequestExecutionInput {
  ScheduledTime: Date
  DocumentName: String!
  DocumentVersion: String
  Parameters: JSON
  ChangeRequestName: String
  ClientToken: String
  Runbooks: [AwsSSMS96Input]!
  Tags: [AwsSSMS4Input]
  ScheduledEndTime: Date
  ChangeDetails: String
}

input AwsSSMS96Input {
  DocumentName: String!
  DocumentVersion: String
  Parameters: JSON
  TargetParameterName: String
  Targets: [AwsSSMS14Input]
  MaxConcurrency: String
  MaxErrors: String
  TargetLocations: [AwsSSMS1pInput]
}

type AwsSSMStartSessionOutput {
  SessionId: String
  TokenValue: String
  StreamUrl: String
}

input AwsSSMStartSessionInput {
  Target: String!
  DocumentName: String
  Parameters: JSON
}

input AwsSSMStopAutomationExecutionInput {
  AutomationExecutionId: String!
  Type: String
}

type AwsSSMTerminateSessionOutput {
  SessionId: String
}

input AwsSSMTerminateSessionInput {
  SessionId: String!
}

type AwsSSMUnlabelParameterVersionOutput {
  RemovedLabels: [String]
  InvalidLabels: [String]
}

input AwsSSMUnlabelParameterVersionInput {
  Name: String!
  ParameterVersion: JSON!
  Labels: [String]!
}

type AwsSSMUpdateAssociationOutput {
  AssociationDescription: AwsSSMS1w
}

input AwsSSMUpdateAssociationInput {
  AssociationId: String!
  Parameters: JSON
  DocumentVersion: String
  ScheduleExpression: String
  OutputLocation: AwsSSMS1aInput
  Name: String
  Targets: [AwsSSMS14Input]
  AssociationName: String
  AssociationVersion: String
  AutomationTargetParameterName: String
  MaxErrors: String
  MaxConcurrency: String
  ComplianceSeverity: String
  SyncCompliance: String
  ApplyOnlyAtCronInterval: Boolean
  CalendarNames: [String]
  TargetLocations: [AwsSSMS1pInput]
}

type AwsSSMUpdateAssociationStatusOutput {
  AssociationDescription: AwsSSMS1w
}

input AwsSSMUpdateAssociationStatusInput {
  Name: String!
  InstanceId: String!
  AssociationStatus: AwsSSMS1zInput!
}

input AwsSSMS1zInput {
  Date: Date!
  Name: String!
  Message: String!
  AdditionalInfo: String
}

type AwsSSMUpdateDocumentOutput {
  DocumentDescription: AwsSSMS2y
}

input AwsSSMUpdateDocumentInput {
  Content: String!
  Attachments: [AwsSSMS2lInput]
  Name: String!
  DisplayName: String
  VersionName: String
  DocumentVersion: String
  DocumentFormat: String
  TargetType: String
}

type AwsSSMUpdateDocumentDefaultVersionOutput {
  Description: AwsSSMUpdateDocumentDefaultVersionOutputDescription
}

type AwsSSMUpdateDocumentDefaultVersionOutputDescription {
  Name: String
  DefaultVersion: String
  DefaultVersionName: String
}

input AwsSSMUpdateDocumentDefaultVersionInput {
  Name: String!
  DocumentVersion: String!
}

input AwsSSMUpdateDocumentMetadataInput {
  Name: String!
  DocumentVersion: String
  DocumentReviews: AwsSSMUpdateDocumentMetadataDocumentReviewsInput!
}

input AwsSSMUpdateDocumentMetadataDocumentReviewsInput {
  Action: String!
  Comment: [AwsSSMSnpInput]
}

input AwsSSMSnpInput {
  Type: String
  Content: String
}

type AwsSSMUpdateMaintenanceWindowOutput {
  WindowId: String
  Name: String
  Description: String
  StartDate: String
  EndDate: String
  Schedule: String
  ScheduleTimezone: String
  ScheduleOffset: Int
  Duration: Int
  Cutoff: Int
  AllowUnassociatedTargets: Boolean
  Enabled: Boolean
}

input AwsSSMUpdateMaintenanceWindowInput {
  WindowId: String!
  Name: String
  Description: String
  StartDate: String
  EndDate: String
  Schedule: String
  ScheduleTimezone: String
  ScheduleOffset: Int
  Duration: Int
  Cutoff: Int
  AllowUnassociatedTargets: Boolean
  Enabled: Boolean
  Replace: Boolean
}

type AwsSSMUpdateMaintenanceWindowTargetOutput {
  WindowId: String
  WindowTargetId: String
  Targets: [AwsSSMS14]
  OwnerInformation: String
  Name: String
  Description: String
}

input AwsSSMUpdateMaintenanceWindowTargetInput {
  WindowId: String!
  WindowTargetId: String!
  Targets: [AwsSSMS14Input]
  OwnerInformation: String
  Name: String
  Description: String
  Replace: Boolean
}

type AwsSSMUpdateMaintenanceWindowTaskOutput {
  WindowId: String
  WindowTaskId: String
  Targets: [AwsSSMS14]
  TaskArn: String
  ServiceRoleArn: String
  TaskParameters: JSON
  TaskInvocationParameters: AwsSSMSji
  Priority: Int
  MaxConcurrency: String
  MaxErrors: String
  LoggingInfo: AwsSSMSel
  Name: String
  Description: String
}

input AwsSSMUpdateMaintenanceWindowTaskInput {
  WindowId: String!
  WindowTaskId: String!
  Targets: [AwsSSMS14Input]
  TaskArn: String
  ServiceRoleArn: String
  TaskParameters: JSON
  TaskInvocationParameters: AwsSSMSjiInput
  Priority: Int
  MaxConcurrency: String
  MaxErrors: String
  LoggingInfo: AwsSSMSelInput
  Name: String
  Description: String
  Replace: Boolean
}

input AwsSSMUpdateManagedInstanceRoleInput {
  InstanceId: String!
  IamRole: String!
}

input AwsSSMUpdateOpsItemInput {
  Description: String
  OperationalData: JSON
  OperationalDataToDelete: [String]
  Notifications: [AwsSSMS48Input]
  Priority: Int
  RelatedOpsItems: [AwsSSMS4cInput]
  Status: String
  OpsItemId: String!
  Title: String
  Category: String
  Severity: String
  ActualStartTime: Date
  ActualEndTime: Date
  PlannedStartTime: Date
  PlannedEndTime: Date
}

type AwsSSMUpdateOpsMetadataOutput {
  OpsMetadataArn: String
}

input AwsSSMUpdateOpsMetadataInput {
  OpsMetadataArn: String!
  MetadataToUpdate: JSON
  KeysToDelete: [String]
}

type AwsSSMUpdatePatchBaselineOutput {
  BaselineId: String
  Name: String
  OperatingSystem: String
  GlobalFilters: AwsSSMS4u
  ApprovalRules: AwsSSMS50
  ApprovedPatches: [String]
  ApprovedPatchesComplianceLevel: String
  ApprovedPatchesEnableNonSecurity: Boolean
  RejectedPatches: [String]
  RejectedPatchesAction: String
  CreatedDate: Date
  ModifiedDate: Date
  Description: String
  Sources: [AwsSSMS5b]
}

input AwsSSMUpdatePatchBaselineInput {
  BaselineId: String!
  Name: String
  GlobalFilters: AwsSSMS4uInput
  ApprovalRules: AwsSSMS50Input
  ApprovedPatches: [String]
  ApprovedPatchesComplianceLevel: String
  ApprovedPatchesEnableNonSecurity: Boolean
  RejectedPatches: [String]
  RejectedPatchesAction: String
  Description: String
  Sources: [AwsSSMS5bInput]
  Replace: Boolean
}

input AwsSSMUpdateResourceDataSyncInput {
  SyncName: String!
  SyncType: String!
  SyncSource: AwsSSMS5uInput!
}

input AwsSSMUpdateServiceSettingInput {
  SettingId: String!
  SettingValue: String!
}

"""AWS Systems Manager Incident Manager Contacts (2021-05-03)"""
type AwsSSMContacts {
  acceptPage(input: AwsSSMContactsAcceptPageInput!, config: AwsConfig): JSON
  activateContactChannel(input: AwsSSMContactsActivateContactChannelInput!, config: AwsConfig): JSON
  createContact(input: AwsSSMContactsCreateContactInput!, config: AwsConfig): AwsSSMContactsCreateContactOutput
  createContactChannel(input: AwsSSMContactsCreateContactChannelInput!, config: AwsConfig): AwsSSMContactsCreateContactChannelOutput
  deactivateContactChannel(input: AwsSSMContactsDeactivateContactChannelInput!, config: AwsConfig): JSON
  deleteContact(input: AwsSSMContactsDeleteContactInput!, config: AwsConfig): JSON
  deleteContactChannel(input: AwsSSMContactsDeleteContactChannelInput!, config: AwsConfig): JSON
  describeEngagement(input: AwsSSMContactsDescribeEngagementInput!, config: AwsConfig): AwsSSMContactsDescribeEngagementOutput
  describePage(input: AwsSSMContactsDescribePageInput!, config: AwsConfig): AwsSSMContactsDescribePageOutput
  getContact(input: AwsSSMContactsGetContactInput!, config: AwsConfig): AwsSSMContactsGetContactOutput
  getContactChannel(input: AwsSSMContactsGetContactChannelInput!, config: AwsConfig): AwsSSMContactsGetContactChannelOutput
  getContactPolicy(input: AwsSSMContactsGetContactPolicyInput!, config: AwsConfig): AwsSSMContactsGetContactPolicyOutput
  listContactChannels(input: AwsSSMContactsListContactChannelsInput!, config: AwsConfig): AwsSSMContactsListContactChannelsOutput
  listContacts(input: AwsSSMContactsListContactsInput, config: AwsConfig): AwsSSMContactsListContactsOutput
  listEngagements(input: AwsSSMContactsListEngagementsInput, config: AwsConfig): AwsSSMContactsListEngagementsOutput
  listPageReceipts(input: AwsSSMContactsListPageReceiptsInput!, config: AwsConfig): AwsSSMContactsListPageReceiptsOutput
  listPagesByContact(input: AwsSSMContactsListPagesByContactInput!, config: AwsConfig): AwsSSMContactsListPagesByContactOutput
  listPagesByEngagement(input: AwsSSMContactsListPagesByEngagementInput!, config: AwsConfig): AwsSSMContactsListPagesByEngagementOutput
  listTagsForResource(input: AwsSSMContactsListTagsForResourceInput!, config: AwsConfig): AwsSSMContactsListTagsForResourceOutput
  putContactPolicy(input: AwsSSMContactsPutContactPolicyInput!, config: AwsConfig): JSON
  sendActivationCode(input: AwsSSMContactsSendActivationCodeInput!, config: AwsConfig): JSON
  startEngagement(input: AwsSSMContactsStartEngagementInput!, config: AwsConfig): AwsSSMContactsStartEngagementOutput
  stopEngagement(input: AwsSSMContactsStopEngagementInput!, config: AwsConfig): JSON
  tagResource(input: AwsSSMContactsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSSMContactsUntagResourceInput!, config: AwsConfig): JSON
  updateContact(input: AwsSSMContactsUpdateContactInput!, config: AwsConfig): JSON
  updateContactChannel(input: AwsSSMContactsUpdateContactChannelInput!, config: AwsConfig): JSON
}

input AwsSSMContactsAcceptPageInput {
  PageId: String!
  ContactChannelId: String
  AcceptType: String!
  Note: String
  AcceptCode: String!
}

input AwsSSMContactsActivateContactChannelInput {
  ContactChannelId: String!
  ActivationCode: String!
}

type AwsSSMContactsCreateContactOutput {
  ContactArn: String!
}

input AwsSSMContactsCreateContactInput {
  Alias: String!
  DisplayName: String
  Type: String!
  Plan: AwsSSMContactsSeInput!
  Tags: [AwsSSMContactsSoInput]
  IdempotencyToken: String
}

input AwsSSMContactsSeInput {
  Stages: [AwsSSMContactsSeStagesInput]!
}

input AwsSSMContactsSeStagesInput {
  DurationInMinutes: Int!
  Targets: [AwsSSMContactsSeStagesTargetsInput]!
}

input AwsSSMContactsSeStagesTargetsInput {
  ChannelTargetInfo: AwsSSMContactsSeStagesTargetsChannelTargetInfoInput
  ContactTargetInfo: AwsSSMContactsSeStagesTargetsContactTargetInfoInput
}

input AwsSSMContactsSeStagesTargetsChannelTargetInfoInput {
  ContactChannelId: String!
  RetryIntervalInMinutes: Int
}

input AwsSSMContactsSeStagesTargetsContactTargetInfoInput {
  ContactId: String
  IsEssential: Boolean!
}

input AwsSSMContactsSoInput {
  Key: String
  Value: String
}

type AwsSSMContactsCreateContactChannelOutput {
  ContactChannelArn: String!
}

input AwsSSMContactsCreateContactChannelInput {
  ContactId: String!
  Name: String!
  Type: String!
  DeliveryAddress: AwsSSMContactsSxInput!
  DeferActivation: Boolean
  IdempotencyToken: String
}

input AwsSSMContactsSxInput {
  SimpleAddress: String
}

input AwsSSMContactsDeactivateContactChannelInput {
  ContactChannelId: String!
}

input AwsSSMContactsDeleteContactInput {
  ContactId: String!
}

input AwsSSMContactsDeleteContactChannelInput {
  ContactChannelId: String!
}

type AwsSSMContactsDescribeEngagementOutput {
  ContactArn: String!
  EngagementArn: String!
  Sender: String!
  Subject: String!
  Content: String!
  PublicSubject: String
  PublicContent: String
  IncidentId: String
  StartTime: Date
  StopTime: Date
}

input AwsSSMContactsDescribeEngagementInput {
  EngagementId: String!
}

type AwsSSMContactsDescribePageOutput {
  PageArn: String!
  EngagementArn: String!
  ContactArn: String!
  Sender: String!
  Subject: String!
  Content: String!
  PublicSubject: String
  PublicContent: String
  IncidentId: String
  SentTime: Date
  ReadTime: Date
  DeliveryTime: Date
}

input AwsSSMContactsDescribePageInput {
  PageId: String!
}

type AwsSSMContactsGetContactOutput {
  ContactArn: String!
  Alias: String!
  DisplayName: String
  Type: String!
  Plan: AwsSSMContactsSe!
}

type AwsSSMContactsSe {
  Stages: [AwsSSMContactsSeStages]!
}

type AwsSSMContactsSeStages {
  DurationInMinutes: Int!
  Targets: [AwsSSMContactsSeStagesTargets]!
}

type AwsSSMContactsSeStagesTargets {
  ChannelTargetInfo: AwsSSMContactsSeStagesTargetsChannelTargetInfo
  ContactTargetInfo: AwsSSMContactsSeStagesTargetsContactTargetInfo
}

type AwsSSMContactsSeStagesTargetsChannelTargetInfo {
  ContactChannelId: String!
  RetryIntervalInMinutes: Int
}

type AwsSSMContactsSeStagesTargetsContactTargetInfo {
  ContactId: String
  IsEssential: Boolean!
}

input AwsSSMContactsGetContactInput {
  ContactId: String!
}

type AwsSSMContactsGetContactChannelOutput {
  ContactArn: String!
  ContactChannelArn: String!
  Name: String!
  Type: String!
  DeliveryAddress: AwsSSMContactsSx!
  ActivationStatus: String
}

type AwsSSMContactsSx {
  SimpleAddress: String
}

input AwsSSMContactsGetContactChannelInput {
  ContactChannelId: String!
}

type AwsSSMContactsGetContactPolicyOutput {
  ContactArn: String
  Policy: String
}

input AwsSSMContactsGetContactPolicyInput {
  ContactArn: String!
}

type AwsSSMContactsListContactChannelsOutput {
  NextToken: String
  ContactChannels: [AwsSSMContactsListContactChannelsOutputContactChannels]!
}

type AwsSSMContactsListContactChannelsOutputContactChannels {
  ContactChannelArn: String!
  ContactArn: String!
  Name: String!
  Type: String
  DeliveryAddress: AwsSSMContactsSx!
  ActivationStatus: String!
}

input AwsSSMContactsListContactChannelsInput {
  ContactId: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSMContactsListContactsOutput {
  NextToken: String
  Contacts: [AwsSSMContactsListContactsOutputContacts]
}

type AwsSSMContactsListContactsOutputContacts {
  ContactArn: String!
  Alias: String!
  DisplayName: String
  Type: String!
}

input AwsSSMContactsListContactsInput {
  NextToken: String
  MaxResults: Int
  AliasPrefix: String
  Type: String
}

type AwsSSMContactsListEngagementsOutput {
  NextToken: String
  Engagements: [AwsSSMContactsListEngagementsOutputEngagements]!
}

type AwsSSMContactsListEngagementsOutputEngagements {
  EngagementArn: String!
  ContactArn: String!
  Sender: String!
  IncidentId: String
  StartTime: Date
  StopTime: Date
}

input AwsSSMContactsListEngagementsInput {
  NextToken: String
  MaxResults: Int
  IncidentId: String
  TimeRangeValue: AwsSSMContactsListEngagementsTimeRangeValueInput
}

input AwsSSMContactsListEngagementsTimeRangeValueInput {
  StartTime: Date
  EndTime: Date
}

type AwsSSMContactsListPageReceiptsOutput {
  NextToken: String
  Receipts: [AwsSSMContactsListPageReceiptsOutputReceipts]
}

type AwsSSMContactsListPageReceiptsOutputReceipts {
  ContactChannelArn: String
  ReceiptType: String!
  ReceiptInfo: String
  ReceiptTime: Date!
}

input AwsSSMContactsListPageReceiptsInput {
  PageId: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSMContactsListPagesByContactOutput {
  NextToken: String
  Pages: [AwsSSMContactsS2c]!
}

type AwsSSMContactsS2c {
  PageArn: String!
  EngagementArn: String!
  ContactArn: String!
  Sender: String!
  IncidentId: String
  SentTime: Date
  DeliveryTime: Date
  ReadTime: Date
}

input AwsSSMContactsListPagesByContactInput {
  ContactId: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSMContactsListPagesByEngagementOutput {
  NextToken: String
  Pages: [AwsSSMContactsS2c]!
}

input AwsSSMContactsListPagesByEngagementInput {
  EngagementId: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSMContactsListTagsForResourceOutput {
  Tags: [AwsSSMContactsSo]
}

type AwsSSMContactsSo {
  Key: String
  Value: String
}

input AwsSSMContactsListTagsForResourceInput {
  ResourceARN: String!
}

input AwsSSMContactsPutContactPolicyInput {
  ContactArn: String!
  Policy: String!
}

input AwsSSMContactsSendActivationCodeInput {
  ContactChannelId: String!
}

type AwsSSMContactsStartEngagementOutput {
  EngagementArn: String!
}

input AwsSSMContactsStartEngagementInput {
  ContactId: String!
  Sender: String!
  Subject: String!
  Content: String!
  PublicSubject: String
  PublicContent: String
  IncidentId: String
  IdempotencyToken: String
}

input AwsSSMContactsStopEngagementInput {
  EngagementId: String!
  Reason: String
}

input AwsSSMContactsTagResourceInput {
  ResourceARN: String!
  Tags: [AwsSSMContactsSoInput]!
}

input AwsSSMContactsUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsSSMContactsUpdateContactInput {
  ContactId: String!
  DisplayName: String
  Plan: AwsSSMContactsSeInput
}

input AwsSSMContactsUpdateContactChannelInput {
  ContactChannelId: String!
  Name: String
  DeliveryAddress: AwsSSMContactsSxInput
}

"""AWS Systems Manager Incident Manager (2018-05-10)"""
type AwsSSMIncidents {
  createReplicationSet(input: AwsSSMIncidentsCreateReplicationSetInput!, config: AwsConfig): AwsSSMIncidentsCreateReplicationSetOutput
  createResponsePlan(input: AwsSSMIncidentsCreateResponsePlanInput!, config: AwsConfig): AwsSSMIncidentsCreateResponsePlanOutput
  createTimelineEvent(input: AwsSSMIncidentsCreateTimelineEventInput!, config: AwsConfig): AwsSSMIncidentsCreateTimelineEventOutput
  deleteIncidentRecord(input: AwsSSMIncidentsDeleteIncidentRecordInput!, config: AwsConfig): JSON
  deleteReplicationSet(input: AwsSSMIncidentsDeleteReplicationSetInput!, config: AwsConfig): JSON
  deleteResourcePolicy(input: AwsSSMIncidentsDeleteResourcePolicyInput!, config: AwsConfig): JSON
  deleteResponsePlan(input: AwsSSMIncidentsDeleteResponsePlanInput!, config: AwsConfig): JSON
  deleteTimelineEvent(input: AwsSSMIncidentsDeleteTimelineEventInput!, config: AwsConfig): JSON
  getIncidentRecord(input: AwsSSMIncidentsGetIncidentRecordInput!, config: AwsConfig): AwsSSMIncidentsGetIncidentRecordOutput
  getReplicationSet(input: AwsSSMIncidentsGetReplicationSetInput!, config: AwsConfig): AwsSSMIncidentsGetReplicationSetOutput
  getResourcePolicies(input: AwsSSMIncidentsGetResourcePoliciesInput!, config: AwsConfig): AwsSSMIncidentsGetResourcePoliciesOutput
  getResponsePlan(input: AwsSSMIncidentsGetResponsePlanInput!, config: AwsConfig): AwsSSMIncidentsGetResponsePlanOutput
  getTimelineEvent(input: AwsSSMIncidentsGetTimelineEventInput!, config: AwsConfig): AwsSSMIncidentsGetTimelineEventOutput
  listIncidentRecords(input: AwsSSMIncidentsListIncidentRecordsInput, config: AwsConfig): AwsSSMIncidentsListIncidentRecordsOutput
  listRelatedItems(input: AwsSSMIncidentsListRelatedItemsInput!, config: AwsConfig): AwsSSMIncidentsListRelatedItemsOutput
  listReplicationSets(input: AwsSSMIncidentsListReplicationSetsInput, config: AwsConfig): AwsSSMIncidentsListReplicationSetsOutput
  listResponsePlans(input: AwsSSMIncidentsListResponsePlansInput, config: AwsConfig): AwsSSMIncidentsListResponsePlansOutput
  listTagsForResource(input: AwsSSMIncidentsListTagsForResourceInput!, config: AwsConfig): AwsSSMIncidentsListTagsForResourceOutput
  listTimelineEvents(input: AwsSSMIncidentsListTimelineEventsInput!, config: AwsConfig): AwsSSMIncidentsListTimelineEventsOutput
  putResourcePolicy(input: AwsSSMIncidentsPutResourcePolicyInput!, config: AwsConfig): AwsSSMIncidentsPutResourcePolicyOutput
  startIncident(input: AwsSSMIncidentsStartIncidentInput!, config: AwsConfig): AwsSSMIncidentsStartIncidentOutput
  tagResource(input: AwsSSMIncidentsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSSMIncidentsUntagResourceInput!, config: AwsConfig): JSON
  updateDeletionProtection(input: AwsSSMIncidentsUpdateDeletionProtectionInput!, config: AwsConfig): JSON
  updateIncidentRecord(input: AwsSSMIncidentsUpdateIncidentRecordInput!, config: AwsConfig): JSON
  updateRelatedItems(input: AwsSSMIncidentsUpdateRelatedItemsInput!, config: AwsConfig): JSON
  updateReplicationSet(input: AwsSSMIncidentsUpdateReplicationSetInput!, config: AwsConfig): JSON
  updateResponsePlan(input: AwsSSMIncidentsUpdateResponsePlanInput!, config: AwsConfig): JSON
  updateTimelineEvent(input: AwsSSMIncidentsUpdateTimelineEventInput!, config: AwsConfig): JSON
}

type AwsSSMIncidentsCreateReplicationSetOutput {
  arn: String!
}

input AwsSSMIncidentsCreateReplicationSetInput {
  clientToken: String
  regions: JSON!
}

type AwsSSMIncidentsCreateResponsePlanOutput {
  arn: String!
}

input AwsSSMIncidentsCreateResponsePlanInput {
  actions: [AwsSSMIncidentsSaInput]
  chatChannel: AwsSSMIncidentsSlInput
  clientToken: String
  displayName: String
  engagements: [String]
  incidentTemplate: AwsSSMIncidentsSsInput!
  name: String!
  tags: JSON
}

input AwsSSMIncidentsSaInput {
  ssmAutomation: AwsSSMIncidentsSaSsmAutomationInput
}

input AwsSSMIncidentsSaSsmAutomationInput {
  documentName: String!
  documentVersion: String
  parameters: JSON
  roleArn: String!
  targetAccount: String
}

input AwsSSMIncidentsSlInput {
  chatbotSns: [String]
  empty: JSON
}

input AwsSSMIncidentsSsInput {
  dedupeString: String
  impact: Int!
  notificationTargets: [AwsSSMIncidentsSvInput]
  summary: String
  title: String!
}

input AwsSSMIncidentsSvInput {
  snsTopicArn: String
}

type AwsSSMIncidentsCreateTimelineEventOutput {
  eventId: String!
  incidentRecordArn: String!
}

input AwsSSMIncidentsCreateTimelineEventInput {
  clientToken: String!
  eventData: String!
  eventTime: Date!
  eventType: String!
  incidentRecordArn: String!
}

input AwsSSMIncidentsDeleteIncidentRecordInput {
  arn: String!
}

input AwsSSMIncidentsDeleteReplicationSetInput {
  arn: String!
}

input AwsSSMIncidentsDeleteResourcePolicyInput {
  policyId: String!
  resourceArn: String!
}

input AwsSSMIncidentsDeleteResponsePlanInput {
  arn: String!
}

input AwsSSMIncidentsDeleteTimelineEventInput {
  eventId: String!
  incidentRecordArn: String!
}

type AwsSSMIncidentsGetIncidentRecordOutput {
  incidentRecord: AwsSSMIncidentsGetIncidentRecordOutputIncidentRecord!
}

type AwsSSMIncidentsGetIncidentRecordOutputIncidentRecord {
  arn: String!
  automationExecutions: [AwsSSMIncidentsGetIncidentRecordOutputIncidentRecordAutomationExecutions]
  chatChannel: AwsSSMIncidentsSl
  creationTime: Date!
  dedupeString: String!
  impact: Int!
  incidentRecordSource: AwsSSMIncidentsS1q!
  lastModifiedBy: String!
  lastModifiedTime: Date!
  notificationTargets: [AwsSSMIncidentsSv]
  resolvedTime: Date
  status: String!
  summary: String
  title: String!
}

type AwsSSMIncidentsGetIncidentRecordOutputIncidentRecordAutomationExecutions {
  ssmExecutionArn: String
}

type AwsSSMIncidentsSl {
  chatbotSns: [String]
  empty: JSON
}

type AwsSSMIncidentsS1q {
  createdBy: String!
  invokedBy: String
  resourceArn: String
  source: String!
}

type AwsSSMIncidentsSv {
  snsTopicArn: String
}

input AwsSSMIncidentsGetIncidentRecordInput {
  arn: String!
}

type AwsSSMIncidentsGetReplicationSetOutput {
  replicationSet: AwsSSMIncidentsGetReplicationSetOutputReplicationSet!
}

type AwsSSMIncidentsGetReplicationSetOutputReplicationSet {
  createdBy: String!
  createdTime: Date!
  deletionProtected: Boolean!
  lastModifiedBy: String!
  lastModifiedTime: Date!
  regionMap: JSON!
  status: String!
}

input AwsSSMIncidentsGetReplicationSetInput {
  arn: String!
}

type AwsSSMIncidentsGetResourcePoliciesOutput {
  nextToken: String
  resourcePolicies: [AwsSSMIncidentsGetResourcePoliciesOutputResourcePolicies]!
}

type AwsSSMIncidentsGetResourcePoliciesOutputResourcePolicies {
  policyDocument: String!
  policyId: String!
  ramResourceShareRegion: String!
}

input AwsSSMIncidentsGetResourcePoliciesInput {
  maxResults: Int
  nextToken: String
  resourceArn: String!
}

type AwsSSMIncidentsGetResponsePlanOutput {
  actions: [AwsSSMIncidentsSa]
  arn: String!
  chatChannel: AwsSSMIncidentsSl
  displayName: String
  engagements: [String]
  incidentTemplate: AwsSSMIncidentsSs!
  name: String!
}

type AwsSSMIncidentsSa {
  ssmAutomation: AwsSSMIncidentsSaSsmAutomation
}

type AwsSSMIncidentsSaSsmAutomation {
  documentName: String!
  documentVersion: String
  parameters: JSON
  roleArn: String!
  targetAccount: String
}

type AwsSSMIncidentsSs {
  dedupeString: String
  impact: Int!
  notificationTargets: [AwsSSMIncidentsSv]
  summary: String
  title: String!
}

input AwsSSMIncidentsGetResponsePlanInput {
  arn: String!
}

type AwsSSMIncidentsGetTimelineEventOutput {
  event: AwsSSMIncidentsGetTimelineEventOutputEvent!
}

type AwsSSMIncidentsGetTimelineEventOutputEvent {
  eventData: String!
  eventId: String!
  eventTime: Date!
  eventType: String!
  eventUpdatedTime: Date!
  incidentRecordArn: String!
}

input AwsSSMIncidentsGetTimelineEventInput {
  eventId: String!
  incidentRecordArn: String!
}

type AwsSSMIncidentsListIncidentRecordsOutput {
  incidentRecordSummaries: [AwsSSMIncidentsListIncidentRecordsOutputIncidentRecordSummaries]!
  nextToken: String
}

type AwsSSMIncidentsListIncidentRecordsOutputIncidentRecordSummaries {
  arn: String!
  creationTime: Date!
  impact: Int!
  incidentRecordSource: AwsSSMIncidentsS1q!
  resolvedTime: Date
  status: String!
  title: String!
}

input AwsSSMIncidentsListIncidentRecordsInput {
  filters: [AwsSSMIncidentsS2fInput]
  maxResults: Int
  nextToken: String
}

input AwsSSMIncidentsS2fInput {
  condition: AwsSSMIncidentsS2fConditionInput!
  key: String!
}

input AwsSSMIncidentsS2fConditionInput {
  after: Date
  before: Date
  equals: AwsSSMIncidentsS2fConditionEqualsInput
}

input AwsSSMIncidentsS2fConditionEqualsInput {
  integerValues: [Int]
  stringValues: [String]
}

type AwsSSMIncidentsListRelatedItemsOutput {
  nextToken: String
  relatedItems: [AwsSSMIncidentsS2u]!
}

type AwsSSMIncidentsS2u {
  identifier: AwsSSMIncidentsS2v!
  title: String
}

type AwsSSMIncidentsS2v {
  type: String!
  value: AwsSSMIncidentsS2vValue!
}

type AwsSSMIncidentsS2vValue {
  arn: String
  metricDefinition: String
  url: String
}

input AwsSSMIncidentsListRelatedItemsInput {
  incidentRecordArn: String!
  maxResults: Int
  nextToken: String
}

type AwsSSMIncidentsListReplicationSetsOutput {
  nextToken: String
  replicationSetArns: [String]!
}

input AwsSSMIncidentsListReplicationSetsInput {
  maxResults: Int
  nextToken: String
}

type AwsSSMIncidentsListResponsePlansOutput {
  nextToken: String
  responsePlanSummaries: [AwsSSMIncidentsListResponsePlansOutputResponsePlanSummaries]!
}

type AwsSSMIncidentsListResponsePlansOutputResponsePlanSummaries {
  arn: String!
  displayName: String
  name: String!
}

input AwsSSMIncidentsListResponsePlansInput {
  maxResults: Int
  nextToken: String
}

type AwsSSMIncidentsListTagsForResourceOutput {
  tags: JSON!
}

input AwsSSMIncidentsListTagsForResourceInput {
  resourceArn: String!
}

type AwsSSMIncidentsListTimelineEventsOutput {
  eventSummaries: [AwsSSMIncidentsListTimelineEventsOutputEventSummaries]!
  nextToken: String
}

type AwsSSMIncidentsListTimelineEventsOutputEventSummaries {
  eventId: String!
  eventTime: Date!
  eventType: String!
  eventUpdatedTime: Date!
  incidentRecordArn: String!
}

input AwsSSMIncidentsListTimelineEventsInput {
  filters: [AwsSSMIncidentsS2fInput]
  incidentRecordArn: String!
  maxResults: Int
  nextToken: String
  sortBy: String
  sortOrder: String
}

type AwsSSMIncidentsPutResourcePolicyOutput {
  policyId: String!
}

input AwsSSMIncidentsPutResourcePolicyInput {
  policy: String!
  resourceArn: String!
}

type AwsSSMIncidentsStartIncidentOutput {
  incidentRecordArn: String!
}

input AwsSSMIncidentsStartIncidentInput {
  clientToken: String
  impact: Int
  relatedItems: [AwsSSMIncidentsS2uInput]
  responsePlanArn: String!
  title: String
  triggerDetails: AwsSSMIncidentsStartIncidentTriggerDetailsInput
}

input AwsSSMIncidentsS2uInput {
  identifier: AwsSSMIncidentsS2vInput!
  title: String
}

input AwsSSMIncidentsS2vInput {
  type: String!
  value: AwsSSMIncidentsS2vValueInput!
}

input AwsSSMIncidentsS2vValueInput {
  arn: String
  metricDefinition: String
  url: String
}

input AwsSSMIncidentsStartIncidentTriggerDetailsInput {
  rawData: String
  source: String!
  timestamp: Date!
  triggerArn: String
}

input AwsSSMIncidentsTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsSSMIncidentsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

input AwsSSMIncidentsUpdateDeletionProtectionInput {
  arn: String!
  clientToken: String
  deletionProtected: Boolean!
}

input AwsSSMIncidentsUpdateIncidentRecordInput {
  arn: String!
  chatChannel: AwsSSMIncidentsSlInput
  clientToken: String
  impact: Int
  notificationTargets: [AwsSSMIncidentsSvInput]
  status: String
  summary: String
  title: String
}

input AwsSSMIncidentsUpdateRelatedItemsInput {
  clientToken: String
  incidentRecordArn: String!
  relatedItemsUpdate: AwsSSMIncidentsUpdateRelatedItemsRelatedItemsUpdateInput!
}

input AwsSSMIncidentsUpdateRelatedItemsRelatedItemsUpdateInput {
  itemToAdd: AwsSSMIncidentsS2uInput
  itemToRemove: AwsSSMIncidentsS2vInput
}

input AwsSSMIncidentsUpdateReplicationSetInput {
  actions: [AwsSSMIncidentsUpdateReplicationSetActionsInput]!
  arn: String!
  clientToken: String
}

input AwsSSMIncidentsUpdateReplicationSetActionsInput {
  addRegionAction: AwsSSMIncidentsUpdateReplicationSetActionsAddRegionActionInput
  deleteRegionAction: AwsSSMIncidentsUpdateReplicationSetActionsDeleteRegionActionInput
}

input AwsSSMIncidentsUpdateReplicationSetActionsAddRegionActionInput {
  regionName: String!
  sseKmsKeyId: String
}

input AwsSSMIncidentsUpdateReplicationSetActionsDeleteRegionActionInput {
  regionName: String!
}

input AwsSSMIncidentsUpdateResponsePlanInput {
  actions: [AwsSSMIncidentsSaInput]
  arn: String!
  chatChannel: AwsSSMIncidentsSlInput
  clientToken: String
  displayName: String
  engagements: [String]
  incidentTemplateDedupeString: String
  incidentTemplateImpact: Int
  incidentTemplateNotificationTargets: [AwsSSMIncidentsSvInput]
  incidentTemplateSummary: String
  incidentTemplateTitle: String
}

input AwsSSMIncidentsUpdateTimelineEventInput {
  clientToken: String!
  eventData: String
  eventId: String!
  eventTime: Date
  eventType: String
  incidentRecordArn: String!
}

"""AWS Single Sign-On (2019-06-10)"""
type AwsSSO {
  getRoleCredentials(input: AwsSSOGetRoleCredentialsInput!, config: AwsConfig): AwsSSOGetRoleCredentialsOutput
  listAccountRoles(input: AwsSSOListAccountRolesInput!, config: AwsConfig): AwsSSOListAccountRolesOutput
  listAccounts(input: AwsSSOListAccountsInput!, config: AwsConfig): AwsSSOListAccountsOutput
  logout(input: AwsSSOLogoutInput!, config: AwsConfig): JSON
}

type AwsSSOGetRoleCredentialsOutput {
  roleCredentials: AwsSSOGetRoleCredentialsOutputRoleCredentials
}

type AwsSSOGetRoleCredentialsOutputRoleCredentials {
  accessKeyId: String
  secretAccessKey: String
  sessionToken: String
  expiration: JSON
}

input AwsSSOGetRoleCredentialsInput {
  roleName: String!
  accountId: String!
  accessToken: String!
}

type AwsSSOListAccountRolesOutput {
  nextToken: String
  roleList: [AwsSSOListAccountRolesOutputRoleList]
}

type AwsSSOListAccountRolesOutputRoleList {
  roleName: String
  accountId: String
}

input AwsSSOListAccountRolesInput {
  nextToken: String
  maxResults: Int
  accessToken: String!
  accountId: String!
}

type AwsSSOListAccountsOutput {
  nextToken: String
  accountList: [AwsSSOListAccountsOutputAccountList]
}

type AwsSSOListAccountsOutputAccountList {
  accountId: String
  accountName: String
  emailAddress: String
}

input AwsSSOListAccountsInput {
  nextToken: String
  maxResults: Int
  accessToken: String!
}

input AwsSSOLogoutInput {
  accessToken: String!
}

"""AWS Single Sign-On Admin (2020-07-20)"""
type AwsSSOAdmin {
  attachManagedPolicyToPermissionSet(input: AwsSSOAdminAttachManagedPolicyToPermissionSetInput!, config: AwsConfig): JSON
  createAccountAssignment(input: AwsSSOAdminCreateAccountAssignmentInput!, config: AwsConfig): AwsSSOAdminCreateAccountAssignmentOutput
  createInstanceAccessControlAttributeConfiguration(input: AwsSSOAdminCreateInstanceAccessControlAttributeConfigurationInput!, config: AwsConfig): JSON
  createPermissionSet(input: AwsSSOAdminCreatePermissionSetInput!, config: AwsConfig): AwsSSOAdminCreatePermissionSetOutput
  deleteAccountAssignment(input: AwsSSOAdminDeleteAccountAssignmentInput!, config: AwsConfig): AwsSSOAdminDeleteAccountAssignmentOutput
  deleteInlinePolicyFromPermissionSet(input: AwsSSOAdminDeleteInlinePolicyFromPermissionSetInput!, config: AwsConfig): JSON
  deleteInstanceAccessControlAttributeConfiguration(input: AwsSSOAdminDeleteInstanceAccessControlAttributeConfigurationInput!, config: AwsConfig): JSON
  deletePermissionSet(input: AwsSSOAdminDeletePermissionSetInput!, config: AwsConfig): JSON
  describeAccountAssignmentCreationStatus(input: AwsSSOAdminDescribeAccountAssignmentCreationStatusInput!, config: AwsConfig): AwsSSOAdminDescribeAccountAssignmentCreationStatusOutput
  describeAccountAssignmentDeletionStatus(input: AwsSSOAdminDescribeAccountAssignmentDeletionStatusInput!, config: AwsConfig): AwsSSOAdminDescribeAccountAssignmentDeletionStatusOutput
  describeInstanceAccessControlAttributeConfiguration(input: AwsSSOAdminDescribeInstanceAccessControlAttributeConfigurationInput!, config: AwsConfig): AwsSSOAdminDescribeInstanceAccessControlAttributeConfigurationOutput
  describePermissionSet(input: AwsSSOAdminDescribePermissionSetInput!, config: AwsConfig): AwsSSOAdminDescribePermissionSetOutput
  describePermissionSetProvisioningStatus(input: AwsSSOAdminDescribePermissionSetProvisioningStatusInput!, config: AwsConfig): AwsSSOAdminDescribePermissionSetProvisioningStatusOutput
  detachManagedPolicyFromPermissionSet(input: AwsSSOAdminDetachManagedPolicyFromPermissionSetInput!, config: AwsConfig): JSON
  getInlinePolicyForPermissionSet(input: AwsSSOAdminGetInlinePolicyForPermissionSetInput!, config: AwsConfig): AwsSSOAdminGetInlinePolicyForPermissionSetOutput
  listAccountAssignmentCreationStatus(input: AwsSSOAdminListAccountAssignmentCreationStatusInput!, config: AwsConfig): AwsSSOAdminListAccountAssignmentCreationStatusOutput
  listAccountAssignmentDeletionStatus(input: AwsSSOAdminListAccountAssignmentDeletionStatusInput!, config: AwsConfig): AwsSSOAdminListAccountAssignmentDeletionStatusOutput
  listAccountAssignments(input: AwsSSOAdminListAccountAssignmentsInput!, config: AwsConfig): AwsSSOAdminListAccountAssignmentsOutput
  listAccountsForProvisionedPermissionSet(input: AwsSSOAdminListAccountsForProvisionedPermissionSetInput!, config: AwsConfig): AwsSSOAdminListAccountsForProvisionedPermissionSetOutput
  listInstances(input: AwsSSOAdminListInstancesInput, config: AwsConfig): AwsSSOAdminListInstancesOutput
  listManagedPoliciesInPermissionSet(input: AwsSSOAdminListManagedPoliciesInPermissionSetInput!, config: AwsConfig): AwsSSOAdminListManagedPoliciesInPermissionSetOutput
  listPermissionSetProvisioningStatus(input: AwsSSOAdminListPermissionSetProvisioningStatusInput!, config: AwsConfig): AwsSSOAdminListPermissionSetProvisioningStatusOutput
  listPermissionSets(input: AwsSSOAdminListPermissionSetsInput!, config: AwsConfig): AwsSSOAdminListPermissionSetsOutput
  listPermissionSetsProvisionedToAccount(input: AwsSSOAdminListPermissionSetsProvisionedToAccountInput!, config: AwsConfig): AwsSSOAdminListPermissionSetsProvisionedToAccountOutput
  listTagsForResource(input: AwsSSOAdminListTagsForResourceInput!, config: AwsConfig): AwsSSOAdminListTagsForResourceOutput
  provisionPermissionSet(input: AwsSSOAdminProvisionPermissionSetInput!, config: AwsConfig): AwsSSOAdminProvisionPermissionSetOutput
  putInlinePolicyToPermissionSet(input: AwsSSOAdminPutInlinePolicyToPermissionSetInput!, config: AwsConfig): JSON
  tagResource(input: AwsSSOAdminTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSSOAdminUntagResourceInput!, config: AwsConfig): JSON
  updateInstanceAccessControlAttributeConfiguration(input: AwsSSOAdminUpdateInstanceAccessControlAttributeConfigurationInput!, config: AwsConfig): JSON
  updatePermissionSet(input: AwsSSOAdminUpdatePermissionSetInput!, config: AwsConfig): JSON
}

input AwsSSOAdminAttachManagedPolicyToPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  ManagedPolicyArn: String!
}

type AwsSSOAdminCreateAccountAssignmentOutput {
  AccountAssignmentCreationStatus: AwsSSOAdminSc
}

type AwsSSOAdminSc {
  Status: String
  RequestId: String
  FailureReason: String
  TargetId: String
  TargetType: String
  PermissionSetArn: String
  PrincipalType: String
  PrincipalId: String
  CreatedDate: Date
}

input AwsSSOAdminCreateAccountAssignmentInput {
  InstanceArn: String!
  TargetId: String!
  TargetType: String!
  PermissionSetArn: String!
  PrincipalType: String!
  PrincipalId: String!
}

input AwsSSOAdminCreateInstanceAccessControlAttributeConfigurationInput {
  InstanceArn: String!
  InstanceAccessControlAttributeConfiguration: AwsSSOAdminSiInput!
}

input AwsSSOAdminSiInput {
  AccessControlAttributes: [AwsSSOAdminSiAccessControlAttributesInput]!
}

input AwsSSOAdminSiAccessControlAttributesInput {
  Key: String!
  Value: AwsSSOAdminSiAccessControlAttributesValueInput!
}

input AwsSSOAdminSiAccessControlAttributesValueInput {
  Source: [String]!
}

type AwsSSOAdminCreatePermissionSetOutput {
  PermissionSet: AwsSSOAdminS10
}

type AwsSSOAdminS10 {
  Name: String
  PermissionSetArn: String
  Description: String
  CreatedDate: Date
  SessionDuration: String
  RelayState: String
}

input AwsSSOAdminCreatePermissionSetInput {
  Name: String!
  Description: String
  InstanceArn: String!
  SessionDuration: String
  RelayState: String
  Tags: [AwsSSOAdminSvInput]
}

input AwsSSOAdminSvInput {
  Key: String
  Value: String
}

type AwsSSOAdminDeleteAccountAssignmentOutput {
  AccountAssignmentDeletionStatus: AwsSSOAdminSc
}

input AwsSSOAdminDeleteAccountAssignmentInput {
  InstanceArn: String!
  TargetId: String!
  TargetType: String!
  PermissionSetArn: String!
  PrincipalType: String!
  PrincipalId: String!
}

input AwsSSOAdminDeleteInlinePolicyFromPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
}

input AwsSSOAdminDeleteInstanceAccessControlAttributeConfigurationInput {
  InstanceArn: String!
}

input AwsSSOAdminDeletePermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
}

type AwsSSOAdminDescribeAccountAssignmentCreationStatusOutput {
  AccountAssignmentCreationStatus: AwsSSOAdminSc
}

input AwsSSOAdminDescribeAccountAssignmentCreationStatusInput {
  InstanceArn: String!
  AccountAssignmentCreationRequestId: String!
}

type AwsSSOAdminDescribeAccountAssignmentDeletionStatusOutput {
  AccountAssignmentDeletionStatus: AwsSSOAdminSc
}

input AwsSSOAdminDescribeAccountAssignmentDeletionStatusInput {
  InstanceArn: String!
  AccountAssignmentDeletionRequestId: String!
}

type AwsSSOAdminDescribeInstanceAccessControlAttributeConfigurationOutput {
  Status: String
  StatusReason: String
  InstanceAccessControlAttributeConfiguration: AwsSSOAdminSi
}

type AwsSSOAdminSi {
  AccessControlAttributes: [AwsSSOAdminSiAccessControlAttributes]!
}

type AwsSSOAdminSiAccessControlAttributes {
  Key: String!
  Value: AwsSSOAdminSiAccessControlAttributesValue!
}

type AwsSSOAdminSiAccessControlAttributesValue {
  Source: [String]!
}

input AwsSSOAdminDescribeInstanceAccessControlAttributeConfigurationInput {
  InstanceArn: String!
}

type AwsSSOAdminDescribePermissionSetOutput {
  PermissionSet: AwsSSOAdminS10
}

input AwsSSOAdminDescribePermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
}

type AwsSSOAdminDescribePermissionSetProvisioningStatusOutput {
  PermissionSetProvisioningStatus: AwsSSOAdminS1l
}

type AwsSSOAdminS1l {
  Status: String
  RequestId: String
  AccountId: String
  PermissionSetArn: String
  FailureReason: String
  CreatedDate: Date
}

input AwsSSOAdminDescribePermissionSetProvisioningStatusInput {
  InstanceArn: String!
  ProvisionPermissionSetRequestId: String!
}

input AwsSSOAdminDetachManagedPolicyFromPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  ManagedPolicyArn: String!
}

type AwsSSOAdminGetInlinePolicyForPermissionSetOutput {
  InlinePolicy: String
}

input AwsSSOAdminGetInlinePolicyForPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
}

type AwsSSOAdminListAccountAssignmentCreationStatusOutput {
  AccountAssignmentsCreationStatus: [AwsSSOAdminS1x]
  NextToken: String
}

type AwsSSOAdminS1x {
  Status: String
  RequestId: String
  CreatedDate: Date
}

input AwsSSOAdminListAccountAssignmentCreationStatusInput {
  InstanceArn: String!
  MaxResults: Int
  NextToken: String
  Filter: AwsSSOAdminS1vInput
}

input AwsSSOAdminS1vInput {
  Status: String
}

type AwsSSOAdminListAccountAssignmentDeletionStatusOutput {
  AccountAssignmentsDeletionStatus: [AwsSSOAdminS1x]
  NextToken: String
}

input AwsSSOAdminListAccountAssignmentDeletionStatusInput {
  InstanceArn: String!
  MaxResults: Int
  NextToken: String
  Filter: AwsSSOAdminS1vInput
}

type AwsSSOAdminListAccountAssignmentsOutput {
  AccountAssignments: [AwsSSOAdminListAccountAssignmentsOutputAccountAssignments]
  NextToken: String
}

type AwsSSOAdminListAccountAssignmentsOutputAccountAssignments {
  AccountId: String
  PermissionSetArn: String
  PrincipalType: String
  PrincipalId: String
}

input AwsSSOAdminListAccountAssignmentsInput {
  InstanceArn: String!
  AccountId: String!
  PermissionSetArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSOAdminListAccountsForProvisionedPermissionSetOutput {
  AccountIds: [String]
  NextToken: String
}

input AwsSSOAdminListAccountsForProvisionedPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  ProvisioningStatus: String
  MaxResults: Int
  NextToken: String
}

type AwsSSOAdminListInstancesOutput {
  Instances: [AwsSSOAdminListInstancesOutputInstances]
  NextToken: String
}

type AwsSSOAdminListInstancesOutputInstances {
  InstanceArn: String
  IdentityStoreId: String
}

input AwsSSOAdminListInstancesInput {
  MaxResults: Int
  NextToken: String
}

type AwsSSOAdminListManagedPoliciesInPermissionSetOutput {
  AttachedManagedPolicies: [AwsSSOAdminListManagedPoliciesInPermissionSetOutputAttachedManagedPolicies]
  NextToken: String
}

type AwsSSOAdminListManagedPoliciesInPermissionSetOutputAttachedManagedPolicies {
  Name: String
  Arn: String
}

input AwsSSOAdminListManagedPoliciesInPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  MaxResults: Int
  NextToken: String
}

type AwsSSOAdminListPermissionSetProvisioningStatusOutput {
  PermissionSetsProvisioningStatus: [AwsSSOAdminListPermissionSetProvisioningStatusOutputPermissionSetsProvisioningStatus]
  NextToken: String
}

type AwsSSOAdminListPermissionSetProvisioningStatusOutputPermissionSetsProvisioningStatus {
  Status: String
  RequestId: String
  CreatedDate: Date
}

input AwsSSOAdminListPermissionSetProvisioningStatusInput {
  InstanceArn: String!
  MaxResults: Int
  NextToken: String
  Filter: AwsSSOAdminS1vInput
}

type AwsSSOAdminListPermissionSetsOutput {
  PermissionSets: [String]
  NextToken: String
}

input AwsSSOAdminListPermissionSetsInput {
  InstanceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsSSOAdminListPermissionSetsProvisionedToAccountOutput {
  NextToken: String
  PermissionSets: [String]
}

input AwsSSOAdminListPermissionSetsProvisionedToAccountInput {
  InstanceArn: String!
  AccountId: String!
  ProvisioningStatus: String
  MaxResults: Int
  NextToken: String
}

type AwsSSOAdminListTagsForResourceOutput {
  Tags: [AwsSSOAdminSv]
  NextToken: String
}

type AwsSSOAdminSv {
  Key: String
  Value: String
}

input AwsSSOAdminListTagsForResourceInput {
  InstanceArn: String!
  ResourceArn: String!
  NextToken: String
}

type AwsSSOAdminProvisionPermissionSetOutput {
  PermissionSetProvisioningStatus: AwsSSOAdminS1l
}

input AwsSSOAdminProvisionPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  TargetId: String
  TargetType: String!
}

input AwsSSOAdminPutInlinePolicyToPermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  InlinePolicy: String!
}

input AwsSSOAdminTagResourceInput {
  InstanceArn: String!
  ResourceArn: String!
  Tags: [AwsSSOAdminSvInput]!
}

input AwsSSOAdminUntagResourceInput {
  InstanceArn: String!
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsSSOAdminUpdateInstanceAccessControlAttributeConfigurationInput {
  InstanceArn: String!
  InstanceAccessControlAttributeConfiguration: AwsSSOAdminSiInput!
}

input AwsSSOAdminUpdatePermissionSetInput {
  InstanceArn: String!
  PermissionSetArn: String!
  Description: String
  SessionDuration: String
  RelayState: String
}

"""AWS SSO OIDC (2019-06-10)"""
type AwsSSOOIDC {
  createToken(input: AwsSSOOIDCCreateTokenInput!, config: AwsConfig): AwsSSOOIDCCreateTokenOutput
  registerClient(input: AwsSSOOIDCRegisterClientInput!, config: AwsConfig): AwsSSOOIDCRegisterClientOutput
  startDeviceAuthorization(input: AwsSSOOIDCStartDeviceAuthorizationInput!, config: AwsConfig): AwsSSOOIDCStartDeviceAuthorizationOutput
}

type AwsSSOOIDCCreateTokenOutput {
  accessToken: String
  tokenType: String
  expiresIn: Int
  refreshToken: String
  idToken: String
}

input AwsSSOOIDCCreateTokenInput {
  clientId: String!
  clientSecret: String!
  grantType: String!
  deviceCode: String!
  code: String
  refreshToken: String
  scope: [String]
  redirectUri: String
}

type AwsSSOOIDCRegisterClientOutput {
  clientId: String
  clientSecret: String
  clientIdIssuedAt: JSON
  clientSecretExpiresAt: JSON
  authorizationEndpoint: String
  tokenEndpoint: String
}

input AwsSSOOIDCRegisterClientInput {
  clientName: String!
  clientType: String!
  scopes: [String]
}

type AwsSSOOIDCStartDeviceAuthorizationOutput {
  deviceCode: String
  userCode: String
  verificationUri: String
  verificationUriComplete: String
  expiresIn: Int
  interval: Int
}

input AwsSSOOIDCStartDeviceAuthorizationInput {
  clientId: String!
  clientSecret: String!
  startUrl: String!
}

"""AWS Security Token Service (2011-06-15)"""
type AwsSTS {
  assumeRole(input: AwsSTSAssumeRoleInput!, config: AwsConfig): AwsSTSAssumeRoleOutput
  assumeRoleWithSAML(input: AwsSTSAssumeRoleWithSAMLInput!, config: AwsConfig): AwsSTSAssumeRoleWithSAMLOutput
  assumeRoleWithWebIdentity(input: AwsSTSAssumeRoleWithWebIdentityInput!, config: AwsConfig): AwsSTSAssumeRoleWithWebIdentityOutput
  decodeAuthorizationMessage(input: AwsSTSDecodeAuthorizationMessageInput!, config: AwsConfig): AwsSTSDecodeAuthorizationMessageOutput
  getAccessKeyInfo(input: AwsSTSGetAccessKeyInfoInput!, config: AwsConfig): AwsSTSGetAccessKeyInfoOutput
  getCallerIdentity(input: JSON, config: AwsConfig): AwsSTSGetCallerIdentityOutput
  getFederationToken(input: AwsSTSGetFederationTokenInput!, config: AwsConfig): AwsSTSGetFederationTokenOutput
  getSessionToken(input: AwsSTSGetSessionTokenInput, config: AwsConfig): AwsSTSGetSessionTokenOutput
}

type AwsSTSAssumeRoleOutput {
  Credentials: AwsSTSSi
  AssumedRoleUser: AwsSTSSn
  PackedPolicySize: Int
  SourceIdentity: String
}

type AwsSTSSi {
  AccessKeyId: String!
  SecretAccessKey: String!
  SessionToken: String!
  Expiration: Date!
}

type AwsSTSSn {
  AssumedRoleId: String!
  Arn: String!
}

input AwsSTSAssumeRoleInput {
  RoleArn: String!
  RoleSessionName: String!
  PolicyArns: [AwsSTSS4Input]
  Policy: String
  DurationSeconds: Int
  Tags: [AwsSTSS8Input]
  TransitiveTagKeys: [String]
  ExternalId: String
  SerialNumber: String
  TokenCode: String
  SourceIdentity: String
}

input AwsSTSS4Input {
  arn: String
}

input AwsSTSS8Input {
  Key: String!
  Value: String!
}

type AwsSTSAssumeRoleWithSAMLOutput {
  Credentials: AwsSTSSi
  AssumedRoleUser: AwsSTSSn
  PackedPolicySize: Int
  Subject: String
  SubjectType: String
  Issuer: String
  Audience: String
  NameQualifier: String
  SourceIdentity: String
}

input AwsSTSAssumeRoleWithSAMLInput {
  RoleArn: String!
  PrincipalArn: String!
  SAMLAssertion: String!
  PolicyArns: [AwsSTSS4Input]
  Policy: String
  DurationSeconds: Int
}

type AwsSTSAssumeRoleWithWebIdentityOutput {
  Credentials: AwsSTSSi
  SubjectFromWebIdentityToken: String
  AssumedRoleUser: AwsSTSSn
  PackedPolicySize: Int
  Provider: String
  Audience: String
  SourceIdentity: String
}

input AwsSTSAssumeRoleWithWebIdentityInput {
  RoleArn: String!
  RoleSessionName: String!
  WebIdentityToken: String!
  ProviderId: String
  PolicyArns: [AwsSTSS4Input]
  Policy: String
  DurationSeconds: Int
}

type AwsSTSDecodeAuthorizationMessageOutput {
  DecodedMessage: String
}

input AwsSTSDecodeAuthorizationMessageInput {
  EncodedMessage: String!
}

type AwsSTSGetAccessKeyInfoOutput {
  Account: String
}

input AwsSTSGetAccessKeyInfoInput {
  AccessKeyId: String!
}

type AwsSTSGetCallerIdentityOutput {
  UserId: String
  Account: String
  Arn: String
}

type AwsSTSGetFederationTokenOutput {
  Credentials: AwsSTSSi
  FederatedUser: AwsSTSGetFederationTokenOutputFederatedUser
  PackedPolicySize: Int
}

type AwsSTSGetFederationTokenOutputFederatedUser {
  FederatedUserId: String!
  Arn: String!
}

input AwsSTSGetFederationTokenInput {
  Name: String!
  Policy: String
  PolicyArns: [AwsSTSS4Input]
  DurationSeconds: Int
  Tags: [AwsSTSS8Input]
}

type AwsSTSGetSessionTokenOutput {
  Credentials: AwsSTSSi
}

input AwsSTSGetSessionTokenInput {
  DurationSeconds: Int
  SerialNumber: String
  TokenCode: String
}

"""Amazon Simple Workflow Service (2012-01-25)"""
type AwsSWF {
  countClosedWorkflowExecutions(input: AwsSWFCountClosedWorkflowExecutionsInput!, config: AwsConfig): JSON
  countOpenWorkflowExecutions(input: AwsSWFCountOpenWorkflowExecutionsInput!, config: AwsConfig): JSON
  countPendingActivityTasks(input: AwsSWFCountPendingActivityTasksInput!, config: AwsConfig): JSON
  countPendingDecisionTasks(input: AwsSWFCountPendingDecisionTasksInput!, config: AwsConfig): JSON
  deprecateActivityType(input: AwsSWFDeprecateActivityTypeInput!, config: AwsConfig): JSON
  deprecateDomain(input: AwsSWFDeprecateDomainInput!, config: AwsConfig): JSON
  deprecateWorkflowType(input: AwsSWFDeprecateWorkflowTypeInput!, config: AwsConfig): JSON
  describeActivityType(input: AwsSWFDescribeActivityTypeInput!, config: AwsConfig): AwsSWFDescribeActivityTypeOutput
  describeDomain(input: AwsSWFDescribeDomainInput!, config: AwsConfig): AwsSWFDescribeDomainOutput
  describeWorkflowExecution(input: AwsSWFDescribeWorkflowExecutionInput!, config: AwsConfig): AwsSWFDescribeWorkflowExecutionOutput
  describeWorkflowType(input: AwsSWFDescribeWorkflowTypeInput!, config: AwsConfig): AwsSWFDescribeWorkflowTypeOutput
  getWorkflowExecutionHistory(input: AwsSWFGetWorkflowExecutionHistoryInput!, config: AwsConfig): AwsSWFGetWorkflowExecutionHistoryOutput
  listActivityTypes(input: AwsSWFListActivityTypesInput!, config: AwsConfig): AwsSWFListActivityTypesOutput
  listClosedWorkflowExecutions(input: AwsSWFListClosedWorkflowExecutionsInput!, config: AwsConfig): JSON
  listDomains(input: AwsSWFListDomainsInput!, config: AwsConfig): AwsSWFListDomainsOutput
  listOpenWorkflowExecutions(input: AwsSWFListOpenWorkflowExecutionsInput!, config: AwsConfig): JSON
  listTagsForResource(input: AwsSWFListTagsForResourceInput!, config: AwsConfig): AwsSWFListTagsForResourceOutput
  listWorkflowTypes(input: AwsSWFListWorkflowTypesInput!, config: AwsConfig): AwsSWFListWorkflowTypesOutput
  pollForActivityTask(input: AwsSWFPollForActivityTaskInput!, config: AwsConfig): AwsSWFPollForActivityTaskOutput
  pollForDecisionTask(input: AwsSWFPollForDecisionTaskInput!, config: AwsConfig): AwsSWFPollForDecisionTaskOutput
  recordActivityTaskHeartbeat(input: AwsSWFRecordActivityTaskHeartbeatInput!, config: AwsConfig): AwsSWFRecordActivityTaskHeartbeatOutput
  registerActivityType(input: AwsSWFRegisterActivityTypeInput!, config: AwsConfig): JSON
  registerDomain(input: AwsSWFRegisterDomainInput!, config: AwsConfig): JSON
  registerWorkflowType(input: AwsSWFRegisterWorkflowTypeInput!, config: AwsConfig): JSON
  requestCancelWorkflowExecution(input: AwsSWFRequestCancelWorkflowExecutionInput!, config: AwsConfig): JSON
  respondActivityTaskCanceled(input: AwsSWFRespondActivityTaskCanceledInput!, config: AwsConfig): JSON
  respondActivityTaskCompleted(input: AwsSWFRespondActivityTaskCompletedInput!, config: AwsConfig): JSON
  respondActivityTaskFailed(input: AwsSWFRespondActivityTaskFailedInput!, config: AwsConfig): JSON
  respondDecisionTaskCompleted(input: AwsSWFRespondDecisionTaskCompletedInput!, config: AwsConfig): JSON
  signalWorkflowExecution(input: AwsSWFSignalWorkflowExecutionInput!, config: AwsConfig): JSON
  startWorkflowExecution(input: AwsSWFStartWorkflowExecutionInput!, config: AwsConfig): AwsSWFStartWorkflowExecutionOutput
  tagResource(input: AwsSWFTagResourceInput!, config: AwsConfig): JSON
  terminateWorkflowExecution(input: AwsSWFTerminateWorkflowExecutionInput!, config: AwsConfig): JSON
  undeprecateActivityType(input: AwsSWFUndeprecateActivityTypeInput!, config: AwsConfig): JSON
  undeprecateDomain(input: AwsSWFUndeprecateDomainInput!, config: AwsConfig): JSON
  undeprecateWorkflowType(input: AwsSWFUndeprecateWorkflowTypeInput!, config: AwsConfig): JSON
  untagResource(input: AwsSWFUntagResourceInput!, config: AwsConfig): JSON
}

input AwsSWFCountClosedWorkflowExecutionsInput {
  domain: String!
  startTimeFilter: AwsSWFS3Input
  closeTimeFilter: AwsSWFS3Input
  executionFilter: AwsSWFS5Input
  typeFilter: AwsSWFS7Input
  tagFilter: AwsSWFSaInput
  closeStatusFilter: AwsSWFScInput
}

input AwsSWFS3Input {
  oldestDate: Date!
  latestDate: Date
}

input AwsSWFS5Input {
  workflowId: String!
}

input AwsSWFS7Input {
  name: String!
  version: String
}

input AwsSWFSaInput {
  tag: String!
}

input AwsSWFScInput {
  status: String!
}

input AwsSWFCountOpenWorkflowExecutionsInput {
  domain: String!
  startTimeFilter: AwsSWFS3Input!
  typeFilter: AwsSWFS7Input
  tagFilter: AwsSWFSaInput
  executionFilter: AwsSWFS5Input
}

input AwsSWFCountPendingActivityTasksInput {
  domain: String!
  taskList: AwsSWFSjInput!
}

input AwsSWFSjInput {
  name: String!
}

input AwsSWFCountPendingDecisionTasksInput {
  domain: String!
  taskList: AwsSWFSjInput!
}

input AwsSWFDeprecateActivityTypeInput {
  domain: String!
  activityType: AwsSWFSnInput!
}

input AwsSWFSnInput {
  name: String!
  version: String!
}

input AwsSWFDeprecateDomainInput {
  name: String!
}

input AwsSWFDeprecateWorkflowTypeInput {
  domain: String!
  workflowType: AwsSWFSrInput!
}

input AwsSWFSrInput {
  name: String!
  version: String!
}

type AwsSWFDescribeActivityTypeOutput {
  typeInfo: AwsSWFSu!
  configuration: AwsSWFDescribeActivityTypeOutputConfiguration!
}

type AwsSWFSu {
  activityType: AwsSWFSn!
  status: String!
  description: String
  creationDate: Date!
  deprecationDate: Date
}

type AwsSWFSn {
  name: String!
  version: String!
}

type AwsSWFDescribeActivityTypeOutputConfiguration {
  defaultTaskStartToCloseTimeout: String
  defaultTaskHeartbeatTimeout: String
  defaultTaskList: AwsSWFSj
  defaultTaskPriority: String
  defaultTaskScheduleToStartTimeout: String
  defaultTaskScheduleToCloseTimeout: String
}

type AwsSWFSj {
  name: String!
}

input AwsSWFDescribeActivityTypeInput {
  domain: String!
  activityType: AwsSWFSnInput!
}

type AwsSWFDescribeDomainOutput {
  domainInfo: AwsSWFS12!
  configuration: AwsSWFDescribeDomainOutputConfiguration!
}

type AwsSWFS12 {
  name: String!
  status: String!
  description: String
  arn: String
}

type AwsSWFDescribeDomainOutputConfiguration {
  workflowExecutionRetentionPeriodInDays: String!
}

input AwsSWFDescribeDomainInput {
  name: String!
}

type AwsSWFDescribeWorkflowExecutionOutput {
  executionInfo: AwsSWFS1a!
  executionConfiguration: AwsSWFDescribeWorkflowExecutionOutputExecutionConfiguration!
  openCounts: AwsSWFDescribeWorkflowExecutionOutputOpenCounts!
  latestActivityTaskTimestamp: Date
  latestExecutionContext: String
}

type AwsSWFS1a {
  execution: AwsSWFS17!
  workflowType: AwsSWFSr!
  startTimestamp: Date!
  closeTimestamp: Date
  executionStatus: String!
  closeStatus: String
  parent: AwsSWFS17
  tagList: [String]
  cancelRequested: Boolean
}

type AwsSWFS17 {
  workflowId: String!
  runId: String!
}

type AwsSWFSr {
  name: String!
  version: String!
}

type AwsSWFDescribeWorkflowExecutionOutputExecutionConfiguration {
  taskStartToCloseTimeout: String!
  executionStartToCloseTimeout: String!
  taskList: AwsSWFSj!
  taskPriority: String
  childPolicy: String!
  lambdaRole: String
}

type AwsSWFDescribeWorkflowExecutionOutputOpenCounts {
  openActivityTasks: Int!
  openDecisionTasks: Int!
  openTimers: Int!
  openChildWorkflowExecutions: Int!
  openLambdaFunctions: Int
}

input AwsSWFDescribeWorkflowExecutionInput {
  domain: String!
  execution: AwsSWFS17Input!
}

input AwsSWFS17Input {
  workflowId: String!
  runId: String!
}

type AwsSWFDescribeWorkflowTypeOutput {
  typeInfo: AwsSWFS1m!
  configuration: AwsSWFDescribeWorkflowTypeOutputConfiguration!
}

type AwsSWFS1m {
  workflowType: AwsSWFSr!
  status: String!
  description: String
  creationDate: Date!
  deprecationDate: Date
}

type AwsSWFDescribeWorkflowTypeOutputConfiguration {
  defaultTaskStartToCloseTimeout: String
  defaultExecutionStartToCloseTimeout: String
  defaultTaskList: AwsSWFSj
  defaultTaskPriority: String
  defaultChildPolicy: String
  defaultLambdaRole: String
}

input AwsSWFDescribeWorkflowTypeInput {
  domain: String!
  workflowType: AwsSWFSrInput!
}

type AwsSWFGetWorkflowExecutionHistoryOutput {
  events: [AwsSWFS1t]!
  nextPageToken: String
}

type AwsSWFS1t {
  eventTimestamp: Date!
  eventType: String!
  eventId: JSON!
  workflowExecutionStartedEventAttributes: AwsSWFS1tWorkflowExecutionStartedEventAttributes
  workflowExecutionCompletedEventAttributes: AwsSWFS1tWorkflowExecutionCompletedEventAttributes
  completeWorkflowExecutionFailedEventAttributes: AwsSWFS1tCompleteWorkflowExecutionFailedEventAttributes
  workflowExecutionFailedEventAttributes: AwsSWFS1tWorkflowExecutionFailedEventAttributes
  failWorkflowExecutionFailedEventAttributes: AwsSWFS1tFailWorkflowExecutionFailedEventAttributes
  workflowExecutionTimedOutEventAttributes: AwsSWFS1tWorkflowExecutionTimedOutEventAttributes
  workflowExecutionCanceledEventAttributes: AwsSWFS1tWorkflowExecutionCanceledEventAttributes
  cancelWorkflowExecutionFailedEventAttributes: AwsSWFS1tCancelWorkflowExecutionFailedEventAttributes
  workflowExecutionContinuedAsNewEventAttributes: AwsSWFS1tWorkflowExecutionContinuedAsNewEventAttributes
  continueAsNewWorkflowExecutionFailedEventAttributes: AwsSWFS1tContinueAsNewWorkflowExecutionFailedEventAttributes
  workflowExecutionTerminatedEventAttributes: AwsSWFS1tWorkflowExecutionTerminatedEventAttributes
  workflowExecutionCancelRequestedEventAttributes: AwsSWFS1tWorkflowExecutionCancelRequestedEventAttributes
  decisionTaskScheduledEventAttributes: AwsSWFS1tDecisionTaskScheduledEventAttributes
  decisionTaskStartedEventAttributes: AwsSWFS1tDecisionTaskStartedEventAttributes
  decisionTaskCompletedEventAttributes: AwsSWFS1tDecisionTaskCompletedEventAttributes
  decisionTaskTimedOutEventAttributes: AwsSWFS1tDecisionTaskTimedOutEventAttributes
  activityTaskScheduledEventAttributes: AwsSWFS1tActivityTaskScheduledEventAttributes
  activityTaskStartedEventAttributes: AwsSWFS1tActivityTaskStartedEventAttributes
  activityTaskCompletedEventAttributes: AwsSWFS1tActivityTaskCompletedEventAttributes
  activityTaskFailedEventAttributes: AwsSWFS1tActivityTaskFailedEventAttributes
  activityTaskTimedOutEventAttributes: AwsSWFS1tActivityTaskTimedOutEventAttributes
  activityTaskCanceledEventAttributes: AwsSWFS1tActivityTaskCanceledEventAttributes
  activityTaskCancelRequestedEventAttributes: AwsSWFS1tActivityTaskCancelRequestedEventAttributes
  workflowExecutionSignaledEventAttributes: AwsSWFS1tWorkflowExecutionSignaledEventAttributes
  markerRecordedEventAttributes: AwsSWFS1tMarkerRecordedEventAttributes
  recordMarkerFailedEventAttributes: AwsSWFS1tRecordMarkerFailedEventAttributes
  timerStartedEventAttributes: AwsSWFS1tTimerStartedEventAttributes
  timerFiredEventAttributes: AwsSWFS1tTimerFiredEventAttributes
  timerCanceledEventAttributes: AwsSWFS1tTimerCanceledEventAttributes
  startChildWorkflowExecutionInitiatedEventAttributes: AwsSWFS1tStartChildWorkflowExecutionInitiatedEventAttributes
  childWorkflowExecutionStartedEventAttributes: AwsSWFS1tChildWorkflowExecutionStartedEventAttributes
  childWorkflowExecutionCompletedEventAttributes: AwsSWFS1tChildWorkflowExecutionCompletedEventAttributes
  childWorkflowExecutionFailedEventAttributes: AwsSWFS1tChildWorkflowExecutionFailedEventAttributes
  childWorkflowExecutionTimedOutEventAttributes: AwsSWFS1tChildWorkflowExecutionTimedOutEventAttributes
  childWorkflowExecutionCanceledEventAttributes: AwsSWFS1tChildWorkflowExecutionCanceledEventAttributes
  childWorkflowExecutionTerminatedEventAttributes: AwsSWFS1tChildWorkflowExecutionTerminatedEventAttributes
  signalExternalWorkflowExecutionInitiatedEventAttributes: AwsSWFS1tSignalExternalWorkflowExecutionInitiatedEventAttributes
  externalWorkflowExecutionSignaledEventAttributes: AwsSWFS1tExternalWorkflowExecutionSignaledEventAttributes
  signalExternalWorkflowExecutionFailedEventAttributes: AwsSWFS1tSignalExternalWorkflowExecutionFailedEventAttributes
  externalWorkflowExecutionCancelRequestedEventAttributes: AwsSWFS1tExternalWorkflowExecutionCancelRequestedEventAttributes
  requestCancelExternalWorkflowExecutionInitiatedEventAttributes: AwsSWFS1tRequestCancelExternalWorkflowExecutionInitiatedEventAttributes
  requestCancelExternalWorkflowExecutionFailedEventAttributes: AwsSWFS1tRequestCancelExternalWorkflowExecutionFailedEventAttributes
  scheduleActivityTaskFailedEventAttributes: AwsSWFS1tScheduleActivityTaskFailedEventAttributes
  requestCancelActivityTaskFailedEventAttributes: AwsSWFS1tRequestCancelActivityTaskFailedEventAttributes
  startTimerFailedEventAttributes: AwsSWFS1tStartTimerFailedEventAttributes
  cancelTimerFailedEventAttributes: AwsSWFS1tCancelTimerFailedEventAttributes
  startChildWorkflowExecutionFailedEventAttributes: AwsSWFS1tStartChildWorkflowExecutionFailedEventAttributes
  lambdaFunctionScheduledEventAttributes: AwsSWFS1tLambdaFunctionScheduledEventAttributes
  lambdaFunctionStartedEventAttributes: AwsSWFS1tLambdaFunctionStartedEventAttributes
  lambdaFunctionCompletedEventAttributes: AwsSWFS1tLambdaFunctionCompletedEventAttributes
  lambdaFunctionFailedEventAttributes: AwsSWFS1tLambdaFunctionFailedEventAttributes
  lambdaFunctionTimedOutEventAttributes: AwsSWFS1tLambdaFunctionTimedOutEventAttributes
  scheduleLambdaFunctionFailedEventAttributes: AwsSWFS1tScheduleLambdaFunctionFailedEventAttributes
  startLambdaFunctionFailedEventAttributes: AwsSWFS1tStartLambdaFunctionFailedEventAttributes
}

type AwsSWFS1tWorkflowExecutionStartedEventAttributes {
  input: String
  executionStartToCloseTimeout: String
  taskStartToCloseTimeout: String
  childPolicy: String!
  taskList: AwsSWFSj!
  taskPriority: String
  workflowType: AwsSWFSr!
  tagList: [String]
  continuedExecutionRunId: String
  parentWorkflowExecution: AwsSWFS17
  parentInitiatedEventId: JSON
  lambdaRole: String
}

type AwsSWFS1tWorkflowExecutionCompletedEventAttributes {
  result: String
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tCompleteWorkflowExecutionFailedEventAttributes {
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tWorkflowExecutionFailedEventAttributes {
  reason: String
  details: String
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tFailWorkflowExecutionFailedEventAttributes {
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tWorkflowExecutionTimedOutEventAttributes {
  timeoutType: String!
  childPolicy: String!
}

type AwsSWFS1tWorkflowExecutionCanceledEventAttributes {
  details: String
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tCancelWorkflowExecutionFailedEventAttributes {
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tWorkflowExecutionContinuedAsNewEventAttributes {
  input: String
  decisionTaskCompletedEventId: JSON!
  newExecutionRunId: String!
  executionStartToCloseTimeout: String
  taskList: AwsSWFSj!
  taskPriority: String
  taskStartToCloseTimeout: String
  childPolicy: String!
  tagList: [String]
  workflowType: AwsSWFSr!
  lambdaRole: String
}

type AwsSWFS1tContinueAsNewWorkflowExecutionFailedEventAttributes {
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tWorkflowExecutionTerminatedEventAttributes {
  reason: String
  details: String
  childPolicy: String!
  cause: String
}

type AwsSWFS1tWorkflowExecutionCancelRequestedEventAttributes {
  externalWorkflowExecution: AwsSWFS17
  externalInitiatedEventId: JSON
  cause: String
}

type AwsSWFS1tDecisionTaskScheduledEventAttributes {
  taskList: AwsSWFSj!
  taskPriority: String
  startToCloseTimeout: String
}

type AwsSWFS1tDecisionTaskStartedEventAttributes {
  identity: String
  scheduledEventId: JSON!
}

type AwsSWFS1tDecisionTaskCompletedEventAttributes {
  executionContext: String
  scheduledEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tDecisionTaskTimedOutEventAttributes {
  timeoutType: String!
  scheduledEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tActivityTaskScheduledEventAttributes {
  activityType: AwsSWFSn!
  activityId: String!
  input: String
  control: String
  scheduleToStartTimeout: String
  scheduleToCloseTimeout: String
  startToCloseTimeout: String
  taskList: AwsSWFSj!
  taskPriority: String
  decisionTaskCompletedEventId: JSON!
  heartbeatTimeout: String
}

type AwsSWFS1tActivityTaskStartedEventAttributes {
  identity: String
  scheduledEventId: JSON!
}

type AwsSWFS1tActivityTaskCompletedEventAttributes {
  result: String
  scheduledEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tActivityTaskFailedEventAttributes {
  reason: String
  details: String
  scheduledEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tActivityTaskTimedOutEventAttributes {
  timeoutType: String!
  scheduledEventId: JSON!
  startedEventId: JSON!
  details: String
}

type AwsSWFS1tActivityTaskCanceledEventAttributes {
  details: String
  scheduledEventId: JSON!
  startedEventId: JSON!
  latestCancelRequestedEventId: JSON
}

type AwsSWFS1tActivityTaskCancelRequestedEventAttributes {
  decisionTaskCompletedEventId: JSON!
  activityId: String!
}

type AwsSWFS1tWorkflowExecutionSignaledEventAttributes {
  signalName: String!
  input: String
  externalWorkflowExecution: AwsSWFS17
  externalInitiatedEventId: JSON
}

type AwsSWFS1tMarkerRecordedEventAttributes {
  markerName: String!
  details: String
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tRecordMarkerFailedEventAttributes {
  markerName: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tTimerStartedEventAttributes {
  timerId: String!
  control: String
  startToFireTimeout: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tTimerFiredEventAttributes {
  timerId: String!
  startedEventId: JSON!
}

type AwsSWFS1tTimerCanceledEventAttributes {
  timerId: String!
  startedEventId: JSON!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tStartChildWorkflowExecutionInitiatedEventAttributes {
  workflowId: String!
  workflowType: AwsSWFSr!
  control: String
  input: String
  executionStartToCloseTimeout: String
  taskList: AwsSWFSj!
  taskPriority: String
  decisionTaskCompletedEventId: JSON!
  childPolicy: String!
  taskStartToCloseTimeout: String
  tagList: [String]
  lambdaRole: String
}

type AwsSWFS1tChildWorkflowExecutionStartedEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  initiatedEventId: JSON!
}

type AwsSWFS1tChildWorkflowExecutionCompletedEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  result: String
  initiatedEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tChildWorkflowExecutionFailedEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  reason: String
  details: String
  initiatedEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tChildWorkflowExecutionTimedOutEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  timeoutType: String!
  initiatedEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tChildWorkflowExecutionCanceledEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  details: String
  initiatedEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tChildWorkflowExecutionTerminatedEventAttributes {
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  initiatedEventId: JSON!
  startedEventId: JSON!
}

type AwsSWFS1tSignalExternalWorkflowExecutionInitiatedEventAttributes {
  workflowId: String!
  runId: String
  signalName: String!
  input: String
  decisionTaskCompletedEventId: JSON!
  control: String
}

type AwsSWFS1tExternalWorkflowExecutionSignaledEventAttributes {
  workflowExecution: AwsSWFS17!
  initiatedEventId: JSON!
}

type AwsSWFS1tSignalExternalWorkflowExecutionFailedEventAttributes {
  workflowId: String!
  runId: String
  cause: String!
  initiatedEventId: JSON!
  decisionTaskCompletedEventId: JSON!
  control: String
}

type AwsSWFS1tExternalWorkflowExecutionCancelRequestedEventAttributes {
  workflowExecution: AwsSWFS17!
  initiatedEventId: JSON!
}

type AwsSWFS1tRequestCancelExternalWorkflowExecutionInitiatedEventAttributes {
  workflowId: String!
  runId: String
  decisionTaskCompletedEventId: JSON!
  control: String
}

type AwsSWFS1tRequestCancelExternalWorkflowExecutionFailedEventAttributes {
  workflowId: String!
  runId: String
  cause: String!
  initiatedEventId: JSON!
  decisionTaskCompletedEventId: JSON!
  control: String
}

type AwsSWFS1tScheduleActivityTaskFailedEventAttributes {
  activityType: AwsSWFSn!
  activityId: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tRequestCancelActivityTaskFailedEventAttributes {
  activityId: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tStartTimerFailedEventAttributes {
  timerId: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tCancelTimerFailedEventAttributes {
  timerId: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tStartChildWorkflowExecutionFailedEventAttributes {
  workflowType: AwsSWFSr!
  cause: String!
  workflowId: String!
  initiatedEventId: JSON!
  decisionTaskCompletedEventId: JSON!
  control: String
}

type AwsSWFS1tLambdaFunctionScheduledEventAttributes {
  id: String!
  name: String!
  control: String
  input: String
  startToCloseTimeout: String
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tLambdaFunctionStartedEventAttributes {
  scheduledEventId: JSON!
}

type AwsSWFS1tLambdaFunctionCompletedEventAttributes {
  scheduledEventId: JSON!
  startedEventId: JSON!
  result: String
}

type AwsSWFS1tLambdaFunctionFailedEventAttributes {
  scheduledEventId: JSON!
  startedEventId: JSON!
  reason: String
  details: String
}

type AwsSWFS1tLambdaFunctionTimedOutEventAttributes {
  scheduledEventId: JSON!
  startedEventId: JSON!
  timeoutType: String
}

type AwsSWFS1tScheduleLambdaFunctionFailedEventAttributes {
  id: String!
  name: String!
  cause: String!
  decisionTaskCompletedEventId: JSON!
}

type AwsSWFS1tStartLambdaFunctionFailedEventAttributes {
  scheduledEventId: JSON
  cause: String
  message: String
}

input AwsSWFGetWorkflowExecutionHistoryInput {
  domain: String!
  execution: AwsSWFS17Input!
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
}

type AwsSWFListActivityTypesOutput {
  typeInfos: [AwsSWFSu]!
  nextPageToken: String
}

input AwsSWFListActivityTypesInput {
  domain: String!
  name: String
  registrationStatus: String!
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
}

input AwsSWFListClosedWorkflowExecutionsInput {
  domain: String!
  startTimeFilter: AwsSWFS3Input
  closeTimeFilter: AwsSWFS3Input
  executionFilter: AwsSWFS5Input
  closeStatusFilter: AwsSWFScInput
  typeFilter: AwsSWFS7Input
  tagFilter: AwsSWFSaInput
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
}

type AwsSWFListDomainsOutput {
  domainInfos: [AwsSWFS12]!
  nextPageToken: String
}

input AwsSWFListDomainsInput {
  nextPageToken: String
  registrationStatus: String!
  maximumPageSize: Int
  reverseOrder: Boolean
}

input AwsSWFListOpenWorkflowExecutionsInput {
  domain: String!
  startTimeFilter: AwsSWFS3Input!
  typeFilter: AwsSWFS7Input
  tagFilter: AwsSWFSaInput
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
  executionFilter: AwsSWFS5Input
}

type AwsSWFListTagsForResourceOutput {
  tags: [AwsSWFS4o]
}

type AwsSWFS4o {
  key: String!
  value: String
}

input AwsSWFListTagsForResourceInput {
  resourceArn: String!
}

type AwsSWFListWorkflowTypesOutput {
  typeInfos: [AwsSWFS1m]!
  nextPageToken: String
}

input AwsSWFListWorkflowTypesInput {
  domain: String!
  name: String
  registrationStatus: String!
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
}

type AwsSWFPollForActivityTaskOutput {
  taskToken: String!
  activityId: String!
  startedEventId: JSON!
  workflowExecution: AwsSWFS17!
  activityType: AwsSWFSn!
  input: String
}

input AwsSWFPollForActivityTaskInput {
  domain: String!
  taskList: AwsSWFSjInput!
  identity: String
}

type AwsSWFPollForDecisionTaskOutput {
  taskToken: String!
  startedEventId: JSON!
  workflowExecution: AwsSWFS17!
  workflowType: AwsSWFSr!
  events: [AwsSWFS1t]!
  nextPageToken: String
  previousStartedEventId: JSON
}

input AwsSWFPollForDecisionTaskInput {
  domain: String!
  taskList: AwsSWFSjInput!
  identity: String
  nextPageToken: String
  maximumPageSize: Int
  reverseOrder: Boolean
}

type AwsSWFRecordActivityTaskHeartbeatOutput {
  cancelRequested: Boolean!
}

input AwsSWFRecordActivityTaskHeartbeatInput {
  taskToken: String!
  details: String
}

input AwsSWFRegisterActivityTypeInput {
  domain: String!
  name: String!
  version: String!
  description: String
  defaultTaskStartToCloseTimeout: String
  defaultTaskHeartbeatTimeout: String
  defaultTaskList: AwsSWFSjInput
  defaultTaskPriority: String
  defaultTaskScheduleToStartTimeout: String
  defaultTaskScheduleToCloseTimeout: String
}

input AwsSWFRegisterDomainInput {
  name: String!
  description: String
  workflowExecutionRetentionPeriodInDays: String!
  tags: [AwsSWFS4oInput]
}

input AwsSWFS4oInput {
  key: String!
  value: String
}

input AwsSWFRegisterWorkflowTypeInput {
  domain: String!
  name: String!
  version: String!
  description: String
  defaultTaskStartToCloseTimeout: String
  defaultExecutionStartToCloseTimeout: String
  defaultTaskList: AwsSWFSjInput
  defaultTaskPriority: String
  defaultChildPolicy: String
  defaultLambdaRole: String
}

input AwsSWFRequestCancelWorkflowExecutionInput {
  domain: String!
  workflowId: String!
  runId: String
}

input AwsSWFRespondActivityTaskCanceledInput {
  taskToken: String!
  details: String
}

input AwsSWFRespondActivityTaskCompletedInput {
  taskToken: String!
  result: String
}

input AwsSWFRespondActivityTaskFailedInput {
  taskToken: String!
  reason: String
  details: String
}

input AwsSWFRespondDecisionTaskCompletedInput {
  taskToken: String!
  decisions: [AwsSWFRespondDecisionTaskCompletedDecisionsInput]
  executionContext: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsInput {
  decisionType: String!
  scheduleActivityTaskDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsScheduleActivityTaskDecisionAttributesInput
  requestCancelActivityTaskDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsRequestCancelActivityTaskDecisionAttributesInput
  completeWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsCompleteWorkflowExecutionDecisionAttributesInput
  failWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsFailWorkflowExecutionDecisionAttributesInput
  cancelWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsCancelWorkflowExecutionDecisionAttributesInput
  continueAsNewWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsContinueAsNewWorkflowExecutionDecisionAttributesInput
  recordMarkerDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsRecordMarkerDecisionAttributesInput
  startTimerDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsStartTimerDecisionAttributesInput
  cancelTimerDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsCancelTimerDecisionAttributesInput
  signalExternalWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsSignalExternalWorkflowExecutionDecisionAttributesInput
  requestCancelExternalWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsRequestCancelExternalWorkflowExecutionDecisionAttributesInput
  startChildWorkflowExecutionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsStartChildWorkflowExecutionDecisionAttributesInput
  scheduleLambdaFunctionDecisionAttributes: AwsSWFRespondDecisionTaskCompletedDecisionsScheduleLambdaFunctionDecisionAttributesInput
}

input AwsSWFRespondDecisionTaskCompletedDecisionsScheduleActivityTaskDecisionAttributesInput {
  activityType: AwsSWFSnInput!
  activityId: String!
  control: String
  input: String
  scheduleToCloseTimeout: String
  taskList: AwsSWFSjInput
  taskPriority: String
  scheduleToStartTimeout: String
  startToCloseTimeout: String
  heartbeatTimeout: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsRequestCancelActivityTaskDecisionAttributesInput {
  activityId: String!
}

input AwsSWFRespondDecisionTaskCompletedDecisionsCompleteWorkflowExecutionDecisionAttributesInput {
  result: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsFailWorkflowExecutionDecisionAttributesInput {
  reason: String
  details: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsCancelWorkflowExecutionDecisionAttributesInput {
  details: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsContinueAsNewWorkflowExecutionDecisionAttributesInput {
  input: String
  executionStartToCloseTimeout: String
  taskList: AwsSWFSjInput
  taskPriority: String
  taskStartToCloseTimeout: String
  childPolicy: String
  tagList: [String]
  workflowTypeVersion: String
  lambdaRole: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsRecordMarkerDecisionAttributesInput {
  markerName: String!
  details: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsStartTimerDecisionAttributesInput {
  timerId: String!
  control: String
  startToFireTimeout: String!
}

input AwsSWFRespondDecisionTaskCompletedDecisionsCancelTimerDecisionAttributesInput {
  timerId: String!
}

input AwsSWFRespondDecisionTaskCompletedDecisionsSignalExternalWorkflowExecutionDecisionAttributesInput {
  workflowId: String!
  runId: String
  signalName: String!
  input: String
  control: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsRequestCancelExternalWorkflowExecutionDecisionAttributesInput {
  workflowId: String!
  runId: String
  control: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsStartChildWorkflowExecutionDecisionAttributesInput {
  workflowType: AwsSWFSrInput!
  workflowId: String!
  control: String
  input: String
  executionStartToCloseTimeout: String
  taskList: AwsSWFSjInput
  taskPriority: String
  taskStartToCloseTimeout: String
  childPolicy: String
  tagList: [String]
  lambdaRole: String
}

input AwsSWFRespondDecisionTaskCompletedDecisionsScheduleLambdaFunctionDecisionAttributesInput {
  id: String!
  name: String!
  control: String
  input: String
  startToCloseTimeout: String
}

input AwsSWFSignalWorkflowExecutionInput {
  domain: String!
  workflowId: String!
  runId: String
  signalName: String!
  input: String
}

type AwsSWFStartWorkflowExecutionOutput {
  runId: String
}

input AwsSWFStartWorkflowExecutionInput {
  domain: String!
  workflowId: String!
  workflowType: AwsSWFSrInput!
  taskList: AwsSWFSjInput
  taskPriority: String
  input: String
  executionStartToCloseTimeout: String
  tagList: [String]
  taskStartToCloseTimeout: String
  childPolicy: String
  lambdaRole: String
}

input AwsSWFTagResourceInput {
  resourceArn: String!
  tags: [AwsSWFS4oInput]!
}

input AwsSWFTerminateWorkflowExecutionInput {
  domain: String!
  workflowId: String!
  runId: String
  reason: String
  details: String
  childPolicy: String
}

input AwsSWFUndeprecateActivityTypeInput {
  domain: String!
  activityType: AwsSWFSnInput!
}

input AwsSWFUndeprecateDomainInput {
  name: String!
}

input AwsSWFUndeprecateWorkflowTypeInput {
  domain: String!
  workflowType: AwsSWFSrInput!
}

input AwsSWFUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Amazon SageMaker Service (2017-07-24)"""
type AwsSageMaker {
  addAssociation(input: AwsSageMakerAddAssociationInput!, config: AwsConfig): AwsSageMakerAddAssociationOutput
  addTags(input: AwsSageMakerAddTagsInput!, config: AwsConfig): AwsSageMakerAddTagsOutput
  associateTrialComponent(input: AwsSageMakerAssociateTrialComponentInput!, config: AwsConfig): AwsSageMakerAssociateTrialComponentOutput
  createAction(input: AwsSageMakerCreateActionInput!, config: AwsConfig): AwsSageMakerCreateActionOutput
  createAlgorithm(input: AwsSageMakerCreateAlgorithmInput!, config: AwsConfig): AwsSageMakerCreateAlgorithmOutput
  createApp(input: AwsSageMakerCreateAppInput!, config: AwsConfig): AwsSageMakerCreateAppOutput
  createAppImageConfig(input: AwsSageMakerCreateAppImageConfigInput!, config: AwsConfig): AwsSageMakerCreateAppImageConfigOutput
  createArtifact(input: AwsSageMakerCreateArtifactInput!, config: AwsConfig): AwsSageMakerCreateArtifactOutput
  createAutoMLJob(input: AwsSageMakerCreateAutoMLJobInput!, config: AwsConfig): AwsSageMakerCreateAutoMLJobOutput
  createCodeRepository(input: AwsSageMakerCreateCodeRepositoryInput!, config: AwsConfig): AwsSageMakerCreateCodeRepositoryOutput
  createCompilationJob(input: AwsSageMakerCreateCompilationJobInput!, config: AwsConfig): AwsSageMakerCreateCompilationJobOutput
  createContext(input: AwsSageMakerCreateContextInput!, config: AwsConfig): AwsSageMakerCreateContextOutput
  createDataQualityJobDefinition(input: AwsSageMakerCreateDataQualityJobDefinitionInput!, config: AwsConfig): AwsSageMakerCreateDataQualityJobDefinitionOutput
  createDeviceFleet(input: AwsSageMakerCreateDeviceFleetInput!, config: AwsConfig): JSON
  createDomain(input: AwsSageMakerCreateDomainInput!, config: AwsConfig): AwsSageMakerCreateDomainOutput
  createEdgePackagingJob(input: AwsSageMakerCreateEdgePackagingJobInput!, config: AwsConfig): JSON
  createEndpoint(input: AwsSageMakerCreateEndpointInput!, config: AwsConfig): AwsSageMakerCreateEndpointOutput
  createEndpointConfig(input: AwsSageMakerCreateEndpointConfigInput!, config: AwsConfig): AwsSageMakerCreateEndpointConfigOutput
  createExperiment(input: AwsSageMakerCreateExperimentInput!, config: AwsConfig): AwsSageMakerCreateExperimentOutput
  createFeatureGroup(input: AwsSageMakerCreateFeatureGroupInput!, config: AwsConfig): AwsSageMakerCreateFeatureGroupOutput
  createFlowDefinition(input: AwsSageMakerCreateFlowDefinitionInput!, config: AwsConfig): AwsSageMakerCreateFlowDefinitionOutput
  createHumanTaskUi(input: AwsSageMakerCreateHumanTaskUiInput!, config: AwsConfig): AwsSageMakerCreateHumanTaskUiOutput
  createHyperParameterTuningJob(input: AwsSageMakerCreateHyperParameterTuningJobInput!, config: AwsConfig): AwsSageMakerCreateHyperParameterTuningJobOutput
  createImage(input: AwsSageMakerCreateImageInput!, config: AwsConfig): AwsSageMakerCreateImageOutput
  createImageVersion(input: AwsSageMakerCreateImageVersionInput!, config: AwsConfig): AwsSageMakerCreateImageVersionOutput
  createLabelingJob(input: AwsSageMakerCreateLabelingJobInput!, config: AwsConfig): AwsSageMakerCreateLabelingJobOutput
  createModel(input: AwsSageMakerCreateModelInput!, config: AwsConfig): AwsSageMakerCreateModelOutput
  createModelBiasJobDefinition(input: AwsSageMakerCreateModelBiasJobDefinitionInput!, config: AwsConfig): AwsSageMakerCreateModelBiasJobDefinitionOutput
  createModelExplainabilityJobDefinition(input: AwsSageMakerCreateModelExplainabilityJobDefinitionInput!, config: AwsConfig): AwsSageMakerCreateModelExplainabilityJobDefinitionOutput
  createModelPackage(input: AwsSageMakerCreateModelPackageInput, config: AwsConfig): AwsSageMakerCreateModelPackageOutput
  createModelPackageGroup(input: AwsSageMakerCreateModelPackageGroupInput!, config: AwsConfig): AwsSageMakerCreateModelPackageGroupOutput
  createModelQualityJobDefinition(input: AwsSageMakerCreateModelQualityJobDefinitionInput!, config: AwsConfig): AwsSageMakerCreateModelQualityJobDefinitionOutput
  createMonitoringSchedule(input: AwsSageMakerCreateMonitoringScheduleInput!, config: AwsConfig): AwsSageMakerCreateMonitoringScheduleOutput
  createNotebookInstance(input: AwsSageMakerCreateNotebookInstanceInput!, config: AwsConfig): AwsSageMakerCreateNotebookInstanceOutput
  createNotebookInstanceLifecycleConfig(input: AwsSageMakerCreateNotebookInstanceLifecycleConfigInput!, config: AwsConfig): AwsSageMakerCreateNotebookInstanceLifecycleConfigOutput
  createPipeline(input: AwsSageMakerCreatePipelineInput!, config: AwsConfig): AwsSageMakerCreatePipelineOutput
  createPresignedDomainUrl(input: AwsSageMakerCreatePresignedDomainUrlInput!, config: AwsConfig): AwsSageMakerCreatePresignedDomainUrlOutput
  createPresignedNotebookInstanceUrl(input: AwsSageMakerCreatePresignedNotebookInstanceUrlInput!, config: AwsConfig): AwsSageMakerCreatePresignedNotebookInstanceUrlOutput
  createProcessingJob(input: AwsSageMakerCreateProcessingJobInput!, config: AwsConfig): AwsSageMakerCreateProcessingJobOutput
  createProject(input: AwsSageMakerCreateProjectInput!, config: AwsConfig): AwsSageMakerCreateProjectOutput
  createTrainingJob(input: AwsSageMakerCreateTrainingJobInput!, config: AwsConfig): AwsSageMakerCreateTrainingJobOutput
  createTransformJob(input: AwsSageMakerCreateTransformJobInput!, config: AwsConfig): AwsSageMakerCreateTransformJobOutput
  createTrial(input: AwsSageMakerCreateTrialInput!, config: AwsConfig): AwsSageMakerCreateTrialOutput
  createTrialComponent(input: AwsSageMakerCreateTrialComponentInput!, config: AwsConfig): AwsSageMakerCreateTrialComponentOutput
  createUserProfile(input: AwsSageMakerCreateUserProfileInput!, config: AwsConfig): AwsSageMakerCreateUserProfileOutput
  createWorkforce(input: AwsSageMakerCreateWorkforceInput!, config: AwsConfig): AwsSageMakerCreateWorkforceOutput
  createWorkteam(input: AwsSageMakerCreateWorkteamInput!, config: AwsConfig): AwsSageMakerCreateWorkteamOutput
  deleteAction(input: AwsSageMakerDeleteActionInput!, config: AwsConfig): AwsSageMakerDeleteActionOutput
  deleteAlgorithm(input: AwsSageMakerDeleteAlgorithmInput!, config: AwsConfig): JSON
  deleteApp(input: AwsSageMakerDeleteAppInput!, config: AwsConfig): JSON
  deleteAppImageConfig(input: AwsSageMakerDeleteAppImageConfigInput!, config: AwsConfig): JSON
  deleteArtifact(input: AwsSageMakerDeleteArtifactInput, config: AwsConfig): AwsSageMakerDeleteArtifactOutput
  deleteAssociation(input: AwsSageMakerDeleteAssociationInput!, config: AwsConfig): AwsSageMakerDeleteAssociationOutput
  deleteCodeRepository(input: AwsSageMakerDeleteCodeRepositoryInput!, config: AwsConfig): JSON
  deleteContext(input: AwsSageMakerDeleteContextInput!, config: AwsConfig): AwsSageMakerDeleteContextOutput
  deleteDataQualityJobDefinition(input: AwsSageMakerDeleteDataQualityJobDefinitionInput!, config: AwsConfig): JSON
  deleteDeviceFleet(input: AwsSageMakerDeleteDeviceFleetInput!, config: AwsConfig): JSON
  deleteDomain(input: AwsSageMakerDeleteDomainInput!, config: AwsConfig): JSON
  deleteEndpoint(input: AwsSageMakerDeleteEndpointInput!, config: AwsConfig): JSON
  deleteEndpointConfig(input: AwsSageMakerDeleteEndpointConfigInput!, config: AwsConfig): JSON
  deleteExperiment(input: AwsSageMakerDeleteExperimentInput!, config: AwsConfig): AwsSageMakerDeleteExperimentOutput
  deleteFeatureGroup(input: AwsSageMakerDeleteFeatureGroupInput!, config: AwsConfig): JSON
  deleteFlowDefinition(input: AwsSageMakerDeleteFlowDefinitionInput!, config: AwsConfig): JSON
  deleteHumanTaskUi(input: AwsSageMakerDeleteHumanTaskUiInput!, config: AwsConfig): JSON
  deleteImage(input: AwsSageMakerDeleteImageInput!, config: AwsConfig): JSON
  deleteImageVersion(input: AwsSageMakerDeleteImageVersionInput!, config: AwsConfig): JSON
  deleteModel(input: AwsSageMakerDeleteModelInput!, config: AwsConfig): JSON
  deleteModelBiasJobDefinition(input: AwsSageMakerDeleteModelBiasJobDefinitionInput!, config: AwsConfig): JSON
  deleteModelExplainabilityJobDefinition(input: AwsSageMakerDeleteModelExplainabilityJobDefinitionInput!, config: AwsConfig): JSON
  deleteModelPackage(input: AwsSageMakerDeleteModelPackageInput!, config: AwsConfig): JSON
  deleteModelPackageGroup(input: AwsSageMakerDeleteModelPackageGroupInput!, config: AwsConfig): JSON
  deleteModelPackageGroupPolicy(input: AwsSageMakerDeleteModelPackageGroupPolicyInput!, config: AwsConfig): JSON
  deleteModelQualityJobDefinition(input: AwsSageMakerDeleteModelQualityJobDefinitionInput!, config: AwsConfig): JSON
  deleteMonitoringSchedule(input: AwsSageMakerDeleteMonitoringScheduleInput!, config: AwsConfig): JSON
  deleteNotebookInstance(input: AwsSageMakerDeleteNotebookInstanceInput!, config: AwsConfig): JSON
  deleteNotebookInstanceLifecycleConfig(input: AwsSageMakerDeleteNotebookInstanceLifecycleConfigInput!, config: AwsConfig): JSON
  deletePipeline(input: AwsSageMakerDeletePipelineInput!, config: AwsConfig): AwsSageMakerDeletePipelineOutput
  deleteProject(input: AwsSageMakerDeleteProjectInput!, config: AwsConfig): JSON
  deleteTags(input: AwsSageMakerDeleteTagsInput!, config: AwsConfig): JSON
  deleteTrial(input: AwsSageMakerDeleteTrialInput!, config: AwsConfig): AwsSageMakerDeleteTrialOutput
  deleteTrialComponent(input: AwsSageMakerDeleteTrialComponentInput!, config: AwsConfig): AwsSageMakerDeleteTrialComponentOutput
  deleteUserProfile(input: AwsSageMakerDeleteUserProfileInput!, config: AwsConfig): JSON
  deleteWorkforce(input: AwsSageMakerDeleteWorkforceInput!, config: AwsConfig): JSON
  deleteWorkteam(input: AwsSageMakerDeleteWorkteamInput!, config: AwsConfig): AwsSageMakerDeleteWorkteamOutput
  deregisterDevices(input: AwsSageMakerDeregisterDevicesInput!, config: AwsConfig): JSON
  describeAction(input: AwsSageMakerDescribeActionInput!, config: AwsConfig): AwsSageMakerDescribeActionOutput
  describeAlgorithm(input: AwsSageMakerDescribeAlgorithmInput!, config: AwsConfig): AwsSageMakerDescribeAlgorithmOutput
  describeApp(input: AwsSageMakerDescribeAppInput!, config: AwsConfig): AwsSageMakerDescribeAppOutput
  describeAppImageConfig(input: AwsSageMakerDescribeAppImageConfigInput!, config: AwsConfig): AwsSageMakerDescribeAppImageConfigOutput
  describeArtifact(input: AwsSageMakerDescribeArtifactInput!, config: AwsConfig): AwsSageMakerDescribeArtifactOutput
  describeAutoMLJob(input: AwsSageMakerDescribeAutoMLJobInput!, config: AwsConfig): AwsSageMakerDescribeAutoMLJobOutput
  describeCodeRepository(input: AwsSageMakerDescribeCodeRepositoryInput!, config: AwsConfig): AwsSageMakerDescribeCodeRepositoryOutput
  describeCompilationJob(input: AwsSageMakerDescribeCompilationJobInput!, config: AwsConfig): AwsSageMakerDescribeCompilationJobOutput
  describeContext(input: AwsSageMakerDescribeContextInput!, config: AwsConfig): AwsSageMakerDescribeContextOutput
  describeDataQualityJobDefinition(input: AwsSageMakerDescribeDataQualityJobDefinitionInput!, config: AwsConfig): AwsSageMakerDescribeDataQualityJobDefinitionOutput
  describeDevice(input: AwsSageMakerDescribeDeviceInput!, config: AwsConfig): AwsSageMakerDescribeDeviceOutput
  describeDeviceFleet(input: AwsSageMakerDescribeDeviceFleetInput!, config: AwsConfig): AwsSageMakerDescribeDeviceFleetOutput
  describeDomain(input: AwsSageMakerDescribeDomainInput!, config: AwsConfig): AwsSageMakerDescribeDomainOutput
  describeEdgePackagingJob(input: AwsSageMakerDescribeEdgePackagingJobInput!, config: AwsConfig): AwsSageMakerDescribeEdgePackagingJobOutput
  describeEndpoint(input: AwsSageMakerDescribeEndpointInput!, config: AwsConfig): AwsSageMakerDescribeEndpointOutput
  describeEndpointConfig(input: AwsSageMakerDescribeEndpointConfigInput!, config: AwsConfig): AwsSageMakerDescribeEndpointConfigOutput
  describeExperiment(input: AwsSageMakerDescribeExperimentInput!, config: AwsConfig): AwsSageMakerDescribeExperimentOutput
  describeFeatureGroup(input: AwsSageMakerDescribeFeatureGroupInput!, config: AwsConfig): AwsSageMakerDescribeFeatureGroupOutput
  describeFlowDefinition(input: AwsSageMakerDescribeFlowDefinitionInput!, config: AwsConfig): AwsSageMakerDescribeFlowDefinitionOutput
  describeHumanTaskUi(input: AwsSageMakerDescribeHumanTaskUiInput!, config: AwsConfig): AwsSageMakerDescribeHumanTaskUiOutput
  describeHyperParameterTuningJob(input: AwsSageMakerDescribeHyperParameterTuningJobInput!, config: AwsConfig): AwsSageMakerDescribeHyperParameterTuningJobOutput
  describeImage(input: AwsSageMakerDescribeImageInput!, config: AwsConfig): AwsSageMakerDescribeImageOutput
  describeImageVersion(input: AwsSageMakerDescribeImageVersionInput!, config: AwsConfig): AwsSageMakerDescribeImageVersionOutput
  describeLabelingJob(input: AwsSageMakerDescribeLabelingJobInput!, config: AwsConfig): AwsSageMakerDescribeLabelingJobOutput
  describeModel(input: AwsSageMakerDescribeModelInput!, config: AwsConfig): AwsSageMakerDescribeModelOutput
  describeModelBiasJobDefinition(input: AwsSageMakerDescribeModelBiasJobDefinitionInput!, config: AwsConfig): AwsSageMakerDescribeModelBiasJobDefinitionOutput
  describeModelExplainabilityJobDefinition(input: AwsSageMakerDescribeModelExplainabilityJobDefinitionInput!, config: AwsConfig): AwsSageMakerDescribeModelExplainabilityJobDefinitionOutput
  describeModelPackage(input: AwsSageMakerDescribeModelPackageInput!, config: AwsConfig): AwsSageMakerDescribeModelPackageOutput
  describeModelPackageGroup(input: AwsSageMakerDescribeModelPackageGroupInput!, config: AwsConfig): AwsSageMakerDescribeModelPackageGroupOutput
  describeModelQualityJobDefinition(input: AwsSageMakerDescribeModelQualityJobDefinitionInput!, config: AwsConfig): AwsSageMakerDescribeModelQualityJobDefinitionOutput
  describeMonitoringSchedule(input: AwsSageMakerDescribeMonitoringScheduleInput!, config: AwsConfig): AwsSageMakerDescribeMonitoringScheduleOutput
  describeNotebookInstance(input: AwsSageMakerDescribeNotebookInstanceInput!, config: AwsConfig): AwsSageMakerDescribeNotebookInstanceOutput
  describeNotebookInstanceLifecycleConfig(input: AwsSageMakerDescribeNotebookInstanceLifecycleConfigInput!, config: AwsConfig): AwsSageMakerDescribeNotebookInstanceLifecycleConfigOutput
  describePipeline(input: AwsSageMakerDescribePipelineInput!, config: AwsConfig): AwsSageMakerDescribePipelineOutput
  describePipelineDefinitionForExecution(input: AwsSageMakerDescribePipelineDefinitionForExecutionInput!, config: AwsConfig): AwsSageMakerDescribePipelineDefinitionForExecutionOutput
  describePipelineExecution(input: AwsSageMakerDescribePipelineExecutionInput!, config: AwsConfig): AwsSageMakerDescribePipelineExecutionOutput
  describeProcessingJob(input: AwsSageMakerDescribeProcessingJobInput!, config: AwsConfig): AwsSageMakerDescribeProcessingJobOutput
  describeProject(input: AwsSageMakerDescribeProjectInput!, config: AwsConfig): AwsSageMakerDescribeProjectOutput
  describeSubscribedWorkteam(input: AwsSageMakerDescribeSubscribedWorkteamInput!, config: AwsConfig): AwsSageMakerDescribeSubscribedWorkteamOutput
  describeTrainingJob(input: AwsSageMakerDescribeTrainingJobInput!, config: AwsConfig): AwsSageMakerDescribeTrainingJobOutput
  describeTransformJob(input: AwsSageMakerDescribeTransformJobInput!, config: AwsConfig): AwsSageMakerDescribeTransformJobOutput
  describeTrial(input: AwsSageMakerDescribeTrialInput!, config: AwsConfig): AwsSageMakerDescribeTrialOutput
  describeTrialComponent(input: AwsSageMakerDescribeTrialComponentInput!, config: AwsConfig): AwsSageMakerDescribeTrialComponentOutput
  describeUserProfile(input: AwsSageMakerDescribeUserProfileInput!, config: AwsConfig): AwsSageMakerDescribeUserProfileOutput
  describeWorkforce(input: AwsSageMakerDescribeWorkforceInput!, config: AwsConfig): AwsSageMakerDescribeWorkforceOutput
  describeWorkteam(input: AwsSageMakerDescribeWorkteamInput!, config: AwsConfig): AwsSageMakerDescribeWorkteamOutput
  disableSagemakerServicecatalogPortfolio(input: JSON, config: AwsConfig): JSON
  disassociateTrialComponent(input: AwsSageMakerDisassociateTrialComponentInput!, config: AwsConfig): AwsSageMakerDisassociateTrialComponentOutput
  enableSagemakerServicecatalogPortfolio(input: JSON, config: AwsConfig): JSON
  getDeviceFleetReport(input: AwsSageMakerGetDeviceFleetReportInput!, config: AwsConfig): AwsSageMakerGetDeviceFleetReportOutput
  getModelPackageGroupPolicy(input: AwsSageMakerGetModelPackageGroupPolicyInput!, config: AwsConfig): AwsSageMakerGetModelPackageGroupPolicyOutput
  getSagemakerServicecatalogPortfolioStatus(input: JSON, config: AwsConfig): AwsSageMakerGetSagemakerServicecatalogPortfolioStatusOutput
  getSearchSuggestions(input: AwsSageMakerGetSearchSuggestionsInput!, config: AwsConfig): AwsSageMakerGetSearchSuggestionsOutput
  listActions(input: AwsSageMakerListActionsInput, config: AwsConfig): AwsSageMakerListActionsOutput
  listAlgorithms(input: AwsSageMakerListAlgorithmsInput, config: AwsConfig): AwsSageMakerListAlgorithmsOutput
  listAppImageConfigs(input: AwsSageMakerListAppImageConfigsInput, config: AwsConfig): AwsSageMakerListAppImageConfigsOutput
  listApps(input: AwsSageMakerListAppsInput, config: AwsConfig): AwsSageMakerListAppsOutput
  listArtifacts(input: AwsSageMakerListArtifactsInput, config: AwsConfig): AwsSageMakerListArtifactsOutput
  listAssociations(input: AwsSageMakerListAssociationsInput, config: AwsConfig): AwsSageMakerListAssociationsOutput
  listAutoMLJobs(input: AwsSageMakerListAutoMLJobsInput, config: AwsConfig): AwsSageMakerListAutoMLJobsOutput
  listCandidatesForAutoMLJob(input: AwsSageMakerListCandidatesForAutoMLJobInput!, config: AwsConfig): AwsSageMakerListCandidatesForAutoMLJobOutput
  listCodeRepositories(input: AwsSageMakerListCodeRepositoriesInput, config: AwsConfig): AwsSageMakerListCodeRepositoriesOutput
  listCompilationJobs(input: AwsSageMakerListCompilationJobsInput, config: AwsConfig): AwsSageMakerListCompilationJobsOutput
  listContexts(input: AwsSageMakerListContextsInput, config: AwsConfig): AwsSageMakerListContextsOutput
  listDataQualityJobDefinitions(input: AwsSageMakerListDataQualityJobDefinitionsInput, config: AwsConfig): AwsSageMakerListDataQualityJobDefinitionsOutput
  listDeviceFleets(input: AwsSageMakerListDeviceFleetsInput, config: AwsConfig): AwsSageMakerListDeviceFleetsOutput
  listDevices(input: AwsSageMakerListDevicesInput, config: AwsConfig): AwsSageMakerListDevicesOutput
  listDomains(input: AwsSageMakerListDomainsInput, config: AwsConfig): AwsSageMakerListDomainsOutput
  listEdgePackagingJobs(input: AwsSageMakerListEdgePackagingJobsInput, config: AwsConfig): AwsSageMakerListEdgePackagingJobsOutput
  listEndpointConfigs(input: AwsSageMakerListEndpointConfigsInput, config: AwsConfig): AwsSageMakerListEndpointConfigsOutput
  listEndpoints(input: AwsSageMakerListEndpointsInput, config: AwsConfig): AwsSageMakerListEndpointsOutput
  listExperiments(input: AwsSageMakerListExperimentsInput, config: AwsConfig): AwsSageMakerListExperimentsOutput
  listFeatureGroups(input: AwsSageMakerListFeatureGroupsInput, config: AwsConfig): AwsSageMakerListFeatureGroupsOutput
  listFlowDefinitions(input: AwsSageMakerListFlowDefinitionsInput, config: AwsConfig): AwsSageMakerListFlowDefinitionsOutput
  listHumanTaskUis(input: AwsSageMakerListHumanTaskUisInput, config: AwsConfig): AwsSageMakerListHumanTaskUisOutput
  listHyperParameterTuningJobs(input: AwsSageMakerListHyperParameterTuningJobsInput, config: AwsConfig): AwsSageMakerListHyperParameterTuningJobsOutput
  listImageVersions(input: AwsSageMakerListImageVersionsInput!, config: AwsConfig): AwsSageMakerListImageVersionsOutput
  listImages(input: AwsSageMakerListImagesInput, config: AwsConfig): AwsSageMakerListImagesOutput
  listLabelingJobs(input: AwsSageMakerListLabelingJobsInput, config: AwsConfig): AwsSageMakerListLabelingJobsOutput
  listLabelingJobsForWorkteam(input: AwsSageMakerListLabelingJobsForWorkteamInput!, config: AwsConfig): AwsSageMakerListLabelingJobsForWorkteamOutput
  listModelBiasJobDefinitions(input: AwsSageMakerListModelBiasJobDefinitionsInput, config: AwsConfig): AwsSageMakerListModelBiasJobDefinitionsOutput
  listModelExplainabilityJobDefinitions(input: AwsSageMakerListModelExplainabilityJobDefinitionsInput, config: AwsConfig): AwsSageMakerListModelExplainabilityJobDefinitionsOutput
  listModelPackageGroups(input: AwsSageMakerListModelPackageGroupsInput, config: AwsConfig): AwsSageMakerListModelPackageGroupsOutput
  listModelPackages(input: AwsSageMakerListModelPackagesInput, config: AwsConfig): AwsSageMakerListModelPackagesOutput
  listModelQualityJobDefinitions(input: AwsSageMakerListModelQualityJobDefinitionsInput, config: AwsConfig): AwsSageMakerListModelQualityJobDefinitionsOutput
  listModels(input: AwsSageMakerListModelsInput, config: AwsConfig): AwsSageMakerListModelsOutput
  listMonitoringExecutions(input: AwsSageMakerListMonitoringExecutionsInput, config: AwsConfig): AwsSageMakerListMonitoringExecutionsOutput
  listMonitoringSchedules(input: AwsSageMakerListMonitoringSchedulesInput, config: AwsConfig): AwsSageMakerListMonitoringSchedulesOutput
  listNotebookInstanceLifecycleConfigs(input: AwsSageMakerListNotebookInstanceLifecycleConfigsInput, config: AwsConfig): AwsSageMakerListNotebookInstanceLifecycleConfigsOutput
  listNotebookInstances(input: AwsSageMakerListNotebookInstancesInput, config: AwsConfig): AwsSageMakerListNotebookInstancesOutput
  listPipelineExecutionSteps(input: AwsSageMakerListPipelineExecutionStepsInput, config: AwsConfig): AwsSageMakerListPipelineExecutionStepsOutput
  listPipelineExecutions(input: AwsSageMakerListPipelineExecutionsInput!, config: AwsConfig): AwsSageMakerListPipelineExecutionsOutput
  listPipelineParametersForExecution(input: AwsSageMakerListPipelineParametersForExecutionInput!, config: AwsConfig): AwsSageMakerListPipelineParametersForExecutionOutput
  listPipelines(input: AwsSageMakerListPipelinesInput, config: AwsConfig): AwsSageMakerListPipelinesOutput
  listProcessingJobs(input: AwsSageMakerListProcessingJobsInput, config: AwsConfig): AwsSageMakerListProcessingJobsOutput
  listProjects(input: AwsSageMakerListProjectsInput, config: AwsConfig): AwsSageMakerListProjectsOutput
  listSubscribedWorkteams(input: AwsSageMakerListSubscribedWorkteamsInput, config: AwsConfig): AwsSageMakerListSubscribedWorkteamsOutput
  listTags(input: AwsSageMakerListTagsInput!, config: AwsConfig): AwsSageMakerListTagsOutput
  listTrainingJobs(input: AwsSageMakerListTrainingJobsInput, config: AwsConfig): AwsSageMakerListTrainingJobsOutput
  listTrainingJobsForHyperParameterTuningJob(input: AwsSageMakerListTrainingJobsForHyperParameterTuningJobInput!, config: AwsConfig): AwsSageMakerListTrainingJobsForHyperParameterTuningJobOutput
  listTransformJobs(input: AwsSageMakerListTransformJobsInput, config: AwsConfig): AwsSageMakerListTransformJobsOutput
  listTrialComponents(input: AwsSageMakerListTrialComponentsInput, config: AwsConfig): AwsSageMakerListTrialComponentsOutput
  listTrials(input: AwsSageMakerListTrialsInput, config: AwsConfig): AwsSageMakerListTrialsOutput
  listUserProfiles(input: AwsSageMakerListUserProfilesInput, config: AwsConfig): AwsSageMakerListUserProfilesOutput
  listWorkforces(input: AwsSageMakerListWorkforcesInput, config: AwsConfig): AwsSageMakerListWorkforcesOutput
  listWorkteams(input: AwsSageMakerListWorkteamsInput, config: AwsConfig): AwsSageMakerListWorkteamsOutput
  putModelPackageGroupPolicy(input: AwsSageMakerPutModelPackageGroupPolicyInput!, config: AwsConfig): AwsSageMakerPutModelPackageGroupPolicyOutput
  registerDevices(input: AwsSageMakerRegisterDevicesInput!, config: AwsConfig): JSON
  renderUiTemplate(input: AwsSageMakerRenderUiTemplateInput!, config: AwsConfig): AwsSageMakerRenderUiTemplateOutput
  search(input: AwsSageMakerSearchInput!, config: AwsConfig): AwsSageMakerSearchOutput
  sendPipelineExecutionStepFailure(input: AwsSageMakerSendPipelineExecutionStepFailureInput!, config: AwsConfig): AwsSageMakerSendPipelineExecutionStepFailureOutput
  sendPipelineExecutionStepSuccess(input: AwsSageMakerSendPipelineExecutionStepSuccessInput!, config: AwsConfig): AwsSageMakerSendPipelineExecutionStepSuccessOutput
  startMonitoringSchedule(input: AwsSageMakerStartMonitoringScheduleInput!, config: AwsConfig): JSON
  startNotebookInstance(input: AwsSageMakerStartNotebookInstanceInput!, config: AwsConfig): JSON
  startPipelineExecution(input: AwsSageMakerStartPipelineExecutionInput!, config: AwsConfig): AwsSageMakerStartPipelineExecutionOutput
  stopAutoMLJob(input: AwsSageMakerStopAutoMLJobInput!, config: AwsConfig): JSON
  stopCompilationJob(input: AwsSageMakerStopCompilationJobInput!, config: AwsConfig): JSON
  stopEdgePackagingJob(input: AwsSageMakerStopEdgePackagingJobInput!, config: AwsConfig): JSON
  stopHyperParameterTuningJob(input: AwsSageMakerStopHyperParameterTuningJobInput!, config: AwsConfig): JSON
  stopLabelingJob(input: AwsSageMakerStopLabelingJobInput!, config: AwsConfig): JSON
  stopMonitoringSchedule(input: AwsSageMakerStopMonitoringScheduleInput!, config: AwsConfig): JSON
  stopNotebookInstance(input: AwsSageMakerStopNotebookInstanceInput!, config: AwsConfig): JSON
  stopPipelineExecution(input: AwsSageMakerStopPipelineExecutionInput!, config: AwsConfig): AwsSageMakerStopPipelineExecutionOutput
  stopProcessingJob(input: AwsSageMakerStopProcessingJobInput!, config: AwsConfig): JSON
  stopTrainingJob(input: AwsSageMakerStopTrainingJobInput!, config: AwsConfig): JSON
  stopTransformJob(input: AwsSageMakerStopTransformJobInput!, config: AwsConfig): JSON
  updateAction(input: AwsSageMakerUpdateActionInput!, config: AwsConfig): AwsSageMakerUpdateActionOutput
  updateAppImageConfig(input: AwsSageMakerUpdateAppImageConfigInput!, config: AwsConfig): AwsSageMakerUpdateAppImageConfigOutput
  updateArtifact(input: AwsSageMakerUpdateArtifactInput!, config: AwsConfig): AwsSageMakerUpdateArtifactOutput
  updateCodeRepository(input: AwsSageMakerUpdateCodeRepositoryInput!, config: AwsConfig): AwsSageMakerUpdateCodeRepositoryOutput
  updateContext(input: AwsSageMakerUpdateContextInput!, config: AwsConfig): AwsSageMakerUpdateContextOutput
  updateDeviceFleet(input: AwsSageMakerUpdateDeviceFleetInput!, config: AwsConfig): JSON
  updateDevices(input: AwsSageMakerUpdateDevicesInput!, config: AwsConfig): JSON
  updateDomain(input: AwsSageMakerUpdateDomainInput!, config: AwsConfig): AwsSageMakerUpdateDomainOutput
  updateEndpoint(input: AwsSageMakerUpdateEndpointInput!, config: AwsConfig): AwsSageMakerUpdateEndpointOutput
  updateEndpointWeightsAndCapacities(input: AwsSageMakerUpdateEndpointWeightsAndCapacitiesInput!, config: AwsConfig): AwsSageMakerUpdateEndpointWeightsAndCapacitiesOutput
  updateExperiment(input: AwsSageMakerUpdateExperimentInput!, config: AwsConfig): AwsSageMakerUpdateExperimentOutput
  updateImage(input: AwsSageMakerUpdateImageInput!, config: AwsConfig): AwsSageMakerUpdateImageOutput
  updateModelPackage(input: AwsSageMakerUpdateModelPackageInput!, config: AwsConfig): AwsSageMakerUpdateModelPackageOutput
  updateMonitoringSchedule(input: AwsSageMakerUpdateMonitoringScheduleInput!, config: AwsConfig): AwsSageMakerUpdateMonitoringScheduleOutput
  updateNotebookInstance(input: AwsSageMakerUpdateNotebookInstanceInput!, config: AwsConfig): JSON
  updateNotebookInstanceLifecycleConfig(input: AwsSageMakerUpdateNotebookInstanceLifecycleConfigInput!, config: AwsConfig): JSON
  updatePipeline(input: AwsSageMakerUpdatePipelineInput!, config: AwsConfig): AwsSageMakerUpdatePipelineOutput
  updatePipelineExecution(input: AwsSageMakerUpdatePipelineExecutionInput!, config: AwsConfig): AwsSageMakerUpdatePipelineExecutionOutput
  updateTrainingJob(input: AwsSageMakerUpdateTrainingJobInput!, config: AwsConfig): AwsSageMakerUpdateTrainingJobOutput
  updateTrial(input: AwsSageMakerUpdateTrialInput!, config: AwsConfig): AwsSageMakerUpdateTrialOutput
  updateTrialComponent(input: AwsSageMakerUpdateTrialComponentInput!, config: AwsConfig): AwsSageMakerUpdateTrialComponentOutput
  updateUserProfile(input: AwsSageMakerUpdateUserProfileInput!, config: AwsConfig): AwsSageMakerUpdateUserProfileOutput
  updateWorkforce(input: AwsSageMakerUpdateWorkforceInput!, config: AwsConfig): AwsSageMakerUpdateWorkforceOutput
  updateWorkteam(input: AwsSageMakerUpdateWorkteamInput!, config: AwsConfig): AwsSageMakerUpdateWorkteamOutput
}

type AwsSageMakerAddAssociationOutput {
  SourceArn: String
  DestinationArn: String
}

input AwsSageMakerAddAssociationInput {
  SourceArn: String!
  DestinationArn: String!
  AssociationType: String
}

type AwsSageMakerAddTagsOutput {
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerS7 {
  Key: String!
  Value: String!
}

input AwsSageMakerAddTagsInput {
  ResourceArn: String!
  Tags: [AwsSageMakerS7Input]!
}

input AwsSageMakerS7Input {
  Key: String!
  Value: String!
}

type AwsSageMakerAssociateTrialComponentOutput {
  TrialComponentArn: String
  TrialArn: String
}

input AwsSageMakerAssociateTrialComponentInput {
  TrialComponentName: String!
  TrialName: String!
}

type AwsSageMakerCreateActionOutput {
  ActionArn: String
}

input AwsSageMakerCreateActionInput {
  ActionName: String!
  Source: AwsSageMakerSiInput!
  ActionType: String!
  Description: String
  Status: String
  Properties: JSON
  MetadataProperties: AwsSageMakerSpInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSiInput {
  SourceUri: String!
  SourceType: String
  SourceId: String
}

input AwsSageMakerSpInput {
  CommitId: String
  Repository: String
  GeneratedBy: String
  ProjectId: String
}

type AwsSageMakerCreateAlgorithmOutput {
  AlgorithmArn: String!
}

input AwsSageMakerCreateAlgorithmInput {
  AlgorithmName: String!
  AlgorithmDescription: String
  TrainingSpecification: AwsSageMakerSwInput!
  InferenceSpecification: AwsSageMakerS1tInput
  ValidationSpecification: AwsSageMakerS25Input
  CertifyForMarketplace: Boolean
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSwInput {
  TrainingImage: String!
  TrainingImageDigest: String
  SupportedHyperParameters: [AwsSageMakerSwSupportedHyperParametersInput]
  SupportedTrainingInstanceTypes: [String]!
  SupportsDistributedTraining: Boolean
  MetricDefinitions: [AwsSageMakerS1dInput]
  TrainingChannels: [AwsSageMakerSwTrainingChannelsInput]!
  SupportedTuningJobObjectiveMetrics: [AwsSageMakerS1rInput]
}

input AwsSageMakerSwSupportedHyperParametersInput {
  Name: String!
  Description: String
  Type: String!
  Range: AwsSageMakerSwSupportedHyperParametersRangeInput
  IsTunable: Boolean
  IsRequired: Boolean
  DefaultValue: String
}

input AwsSageMakerSwSupportedHyperParametersRangeInput {
  IntegerParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeIntegerParameterRangeSpecificationInput
  ContinuousParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeContinuousParameterRangeSpecificationInput
  CategoricalParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeCategoricalParameterRangeSpecificationInput
}

input AwsSageMakerSwSupportedHyperParametersRangeIntegerParameterRangeSpecificationInput {
  MinValue: String!
  MaxValue: String!
}

input AwsSageMakerSwSupportedHyperParametersRangeContinuousParameterRangeSpecificationInput {
  MinValue: String!
  MaxValue: String!
}

input AwsSageMakerSwSupportedHyperParametersRangeCategoricalParameterRangeSpecificationInput {
  Values: [String]!
}

input AwsSageMakerS1dInput {
  Name: String!
  Regex: String!
}

input AwsSageMakerSwTrainingChannelsInput {
  Name: String!
  Description: String
  IsRequired: Boolean
  SupportedContentTypes: [String]!
  SupportedCompressionTypes: [String]
  SupportedInputModes: [String]!
}

input AwsSageMakerS1rInput {
  Type: String!
  MetricName: String!
}

input AwsSageMakerS1tInput {
  Containers: [AwsSageMakerS1tContainersInput]!
  SupportedTransformInstanceTypes: [String]
  SupportedRealtimeInferenceInstanceTypes: [String]
  SupportedContentTypes: [String]!
  SupportedResponseMIMETypes: [String]!
}

input AwsSageMakerS1tContainersInput {
  ContainerHostname: String
  Image: String!
  ImageDigest: String
  ModelDataUrl: String
  ProductId: String
}

input AwsSageMakerS25Input {
  ValidationRole: String!
  ValidationProfiles: [AwsSageMakerS25ValidationProfilesInput]!
}

input AwsSageMakerS25ValidationProfilesInput {
  ProfileName: String!
  TrainingJobDefinition: AwsSageMakerS25ValidationProfilesTrainingJobDefinitionInput!
  TransformJobDefinition: AwsSageMakerS31Input
}

input AwsSageMakerS25ValidationProfilesTrainingJobDefinitionInput {
  TrainingInputMode: String!
  HyperParameters: JSON
  InputDataConfig: [AwsSageMakerS2cInput]!
  OutputDataConfig: AwsSageMakerS2tInput!
  ResourceConfig: AwsSageMakerS2vInput!
  StoppingCondition: AwsSageMakerS2yInput!
}

input AwsSageMakerS2cInput {
  ChannelName: String!
  DataSource: AwsSageMakerS2cDataSourceInput!
  ContentType: String
  CompressionType: String
  RecordWrapperType: String
  InputMode: String
  ShuffleConfig: AwsSageMakerS2cShuffleConfigInput
}

input AwsSageMakerS2cDataSourceInput {
  S3DataSource: AwsSageMakerS2cDataSourceS3DataSourceInput
  FileSystemDataSource: AwsSageMakerS2cDataSourceFileSystemDataSourceInput
}

input AwsSageMakerS2cDataSourceS3DataSourceInput {
  S3DataType: String!
  S3Uri: String!
  S3DataDistributionType: String
  AttributeNames: [String]
}

input AwsSageMakerS2cDataSourceFileSystemDataSourceInput {
  FileSystemId: String!
  FileSystemAccessMode: String!
  FileSystemType: String!
  DirectoryPath: String!
}

input AwsSageMakerS2cShuffleConfigInput {
  Seed: JSON!
}

input AwsSageMakerS2tInput {
  KmsKeyId: String
  S3OutputPath: String!
}

input AwsSageMakerS2vInput {
  InstanceType: String!
  InstanceCount: Int!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

input AwsSageMakerS2yInput {
  MaxRuntimeInSeconds: Int
  MaxWaitTimeInSeconds: Int
}

input AwsSageMakerS31Input {
  MaxConcurrentTransforms: Int
  MaxPayloadInMB: Int
  BatchStrategy: String
  Environment: JSON
  TransformInput: AwsSageMakerS38Input!
  TransformOutput: AwsSageMakerS3cInput!
  TransformResources: AwsSageMakerS3fInput!
}

input AwsSageMakerS38Input {
  DataSource: AwsSageMakerS38DataSourceInput!
  ContentType: String
  CompressionType: String
  SplitType: String
}

input AwsSageMakerS38DataSourceInput {
  S3DataSource: AwsSageMakerS38DataSourceS3DataSourceInput!
}

input AwsSageMakerS38DataSourceS3DataSourceInput {
  S3DataType: String!
  S3Uri: String!
}

input AwsSageMakerS3cInput {
  S3OutputPath: String!
  Accept: String
  AssembleWith: String
  KmsKeyId: String
}

input AwsSageMakerS3fInput {
  InstanceType: String!
  InstanceCount: Int!
  VolumeKmsKeyId: String
}

type AwsSageMakerCreateAppOutput {
  AppArn: String
}

input AwsSageMakerCreateAppInput {
  DomainId: String!
  UserProfileName: String!
  AppType: String!
  AppName: String!
  Tags: [AwsSageMakerS7Input]
  ResourceSpec: AwsSageMakerS3pInput
}

input AwsSageMakerS3pInput {
  SageMakerImageArn: String
  SageMakerImageVersionArn: String
  InstanceType: String
}

type AwsSageMakerCreateAppImageConfigOutput {
  AppImageConfigArn: String
}

input AwsSageMakerCreateAppImageConfigInput {
  AppImageConfigName: String!
  Tags: [AwsSageMakerS7Input]
  KernelGatewayImageConfig: AwsSageMakerS3xInput
}

input AwsSageMakerS3xInput {
  KernelSpecs: [AwsSageMakerS3xKernelSpecsInput]!
  FileSystemConfig: AwsSageMakerS3xFileSystemConfigInput
}

input AwsSageMakerS3xKernelSpecsInput {
  Name: String!
  DisplayName: String
}

input AwsSageMakerS3xFileSystemConfigInput {
  MountPath: String
  DefaultUid: Int
  DefaultGid: Int
}

type AwsSageMakerCreateArtifactOutput {
  ArtifactArn: String
}

input AwsSageMakerCreateArtifactInput {
  ArtifactName: String
  Source: AwsSageMakerS49Input!
  ArtifactType: String!
  Properties: JSON
  MetadataProperties: AwsSageMakerSpInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS49Input {
  SourceUri: String!
  SourceTypes: [AwsSageMakerS49SourceTypesInput]
}

input AwsSageMakerS49SourceTypesInput {
  SourceIdType: String!
  Value: String!
}

type AwsSageMakerCreateAutoMLJobOutput {
  AutoMLJobArn: String!
}

input AwsSageMakerCreateAutoMLJobInput {
  AutoMLJobName: String!
  InputDataConfig: [AwsSageMakerS4hInput]!
  OutputDataConfig: AwsSageMakerS4nInput!
  ProblemType: String
  AutoMLJobObjective: AwsSageMakerS4pInput
  AutoMLJobConfig: AwsSageMakerS4rInput
  RoleArn: String!
  GenerateCandidateDefinitionsOnly: Boolean
  Tags: [AwsSageMakerS7Input]
  ModelDeployConfig: AwsSageMakerS53Input
}

input AwsSageMakerS4hInput {
  DataSource: AwsSageMakerS4hDataSourceInput!
  CompressionType: String
  TargetAttributeName: String!
}

input AwsSageMakerS4hDataSourceInput {
  S3DataSource: AwsSageMakerS4hDataSourceS3DataSourceInput!
}

input AwsSageMakerS4hDataSourceS3DataSourceInput {
  S3DataType: String!
  S3Uri: String!
}

input AwsSageMakerS4nInput {
  KmsKeyId: String
  S3OutputPath: String!
}

input AwsSageMakerS4pInput {
  MetricName: String!
}

input AwsSageMakerS4rInput {
  CompletionCriteria: AwsSageMakerS4sInput
  SecurityConfig: AwsSageMakerS4rSecurityConfigInput
}

input AwsSageMakerS4sInput {
  MaxCandidates: Int
  MaxRuntimePerTrainingJobInSeconds: Int
  MaxAutoMLJobRuntimeInSeconds: Int
}

input AwsSageMakerS4rSecurityConfigInput {
  VolumeKmsKeyId: String
  EnableInterContainerTrafficEncryption: Boolean
  VpcConfig: AwsSageMakerS4xInput
}

input AwsSageMakerS4xInput {
  SecurityGroupIds: [String]!
  Subnets: [String]!
}

input AwsSageMakerS53Input {
  AutoGenerateEndpointName: Boolean
  EndpointName: String
}

type AwsSageMakerCreateCodeRepositoryOutput {
  CodeRepositoryArn: String!
}

input AwsSageMakerCreateCodeRepositoryInput {
  CodeRepositoryName: String!
  GitConfig: AwsSageMakerS59Input!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS59Input {
  RepositoryUrl: String!
  Branch: String
  SecretArn: String
}

type AwsSageMakerCreateCompilationJobOutput {
  CompilationJobArn: String!
}

input AwsSageMakerCreateCompilationJobInput {
  CompilationJobName: String!
  RoleArn: String!
  InputConfig: AwsSageMakerS5gInput!
  OutputConfig: AwsSageMakerS5kInput!
  StoppingCondition: AwsSageMakerS2yInput!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS5gInput {
  S3Uri: String!
  DataInputConfig: String!
  Framework: String!
  FrameworkVersion: String
}

input AwsSageMakerS5kInput {
  S3OutputLocation: String!
  TargetDevice: String
  TargetPlatform: AwsSageMakerS5kTargetPlatformInput
  CompilerOptions: String
  KmsKeyId: String
}

input AwsSageMakerS5kTargetPlatformInput {
  Os: String!
  Arch: String!
  Accelerator: String
}

type AwsSageMakerCreateContextOutput {
  ContextArn: String
}

input AwsSageMakerCreateContextInput {
  ContextName: String!
  Source: AwsSageMakerS5uInput!
  ContextType: String!
  Description: String
  Properties: JSON
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS5uInput {
  SourceUri: String!
  SourceType: String
  SourceId: String
}

type AwsSageMakerCreateDataQualityJobDefinitionOutput {
  JobDefinitionArn: String!
}

input AwsSageMakerCreateDataQualityJobDefinitionInput {
  JobDefinitionName: String!
  DataQualityBaselineConfig: AwsSageMakerS5zInput
  DataQualityAppSpecification: AwsSageMakerS63Input!
  DataQualityJobInput: AwsSageMakerS6cInput!
  DataQualityJobOutputConfig: AwsSageMakerS6kInput!
  JobResources: AwsSageMakerS6qInput!
  NetworkConfig: AwsSageMakerS6vInput
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6wInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS5zInput {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61Input
  StatisticsResource: AwsSageMakerS62Input
}

input AwsSageMakerS61Input {
  S3Uri: String
}

input AwsSageMakerS62Input {
  S3Uri: String
}

input AwsSageMakerS63Input {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
  Environment: JSON
}

input AwsSageMakerS6cInput {
  EndpointInput: AwsSageMakerS6dInput!
}

input AwsSageMakerS6dInput {
  EndpointName: String!
  LocalPath: String!
  S3InputMode: String
  S3DataDistributionType: String
  FeaturesAttribute: String
  InferenceAttribute: String
  ProbabilityAttribute: String
  ProbabilityThresholdAttribute: JSON
  StartTimeOffset: String
  EndTimeOffset: String
}

input AwsSageMakerS6kInput {
  MonitoringOutputs: [AwsSageMakerS6kMonitoringOutputsInput]!
  KmsKeyId: String
}

input AwsSageMakerS6kMonitoringOutputsInput {
  S3Output: AwsSageMakerS6kMonitoringOutputsS3OutputInput!
}

input AwsSageMakerS6kMonitoringOutputsS3OutputInput {
  S3Uri: String!
  LocalPath: String!
  S3UploadMode: String
}

input AwsSageMakerS6qInput {
  ClusterConfig: AwsSageMakerS6qClusterConfigInput!
}

input AwsSageMakerS6qClusterConfigInput {
  InstanceCount: Int!
  InstanceType: String!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

input AwsSageMakerS6vInput {
  EnableInterContainerTrafficEncryption: Boolean
  EnableNetworkIsolation: Boolean
  VpcConfig: AwsSageMakerS4xInput
}

input AwsSageMakerS6wInput {
  MaxRuntimeInSeconds: Int!
}

input AwsSageMakerCreateDeviceFleetInput {
  DeviceFleetName: String!
  RoleArn: String
  Description: String
  OutputConfig: AwsSageMakerS72Input!
  Tags: [AwsSageMakerS7Input]
  EnableIotRoleAlias: Boolean
}

input AwsSageMakerS72Input {
  S3OutputLocation: String!
  KmsKeyId: String
  PresetDeploymentType: String
  PresetDeploymentConfig: String
}

type AwsSageMakerCreateDomainOutput {
  DomainArn: String
  Url: String
}

input AwsSageMakerCreateDomainInput {
  DomainName: String!
  AuthMode: String!
  DefaultUserSettings: AwsSageMakerS78Input!
  SubnetIds: [String]!
  VpcId: String!
  Tags: [AwsSageMakerS7Input]
  AppNetworkAccessType: String
  HomeEfsFileSystemKmsKeyId: String
  KmsKeyId: String
}

input AwsSageMakerS78Input {
  ExecutionRole: String
  SecurityGroups: [String]
  SharingSettings: AwsSageMakerS78SharingSettingsInput
  JupyterServerAppSettings: AwsSageMakerS78JupyterServerAppSettingsInput
  KernelGatewayAppSettings: AwsSageMakerS78KernelGatewayAppSettingsInput
  TensorBoardAppSettings: AwsSageMakerS78TensorBoardAppSettingsInput
}

input AwsSageMakerS78SharingSettingsInput {
  NotebookOutputOption: String
  S3OutputPath: String
  S3KmsKeyId: String
}

input AwsSageMakerS78JupyterServerAppSettingsInput {
  DefaultResourceSpec: AwsSageMakerS3pInput
}

input AwsSageMakerS78KernelGatewayAppSettingsInput {
  DefaultResourceSpec: AwsSageMakerS3pInput
  CustomImages: [AwsSageMakerS78KernelGatewayAppSettingsCustomImagesInput]
}

input AwsSageMakerS78KernelGatewayAppSettingsCustomImagesInput {
  ImageName: String!
  ImageVersionNumber: Int
  AppImageConfigName: String!
}

input AwsSageMakerS78TensorBoardAppSettingsInput {
  DefaultResourceSpec: AwsSageMakerS3pInput
}

input AwsSageMakerCreateEdgePackagingJobInput {
  EdgePackagingJobName: String!
  CompilationJobName: String!
  ModelName: String!
  ModelVersion: String!
  RoleArn: String!
  OutputConfig: AwsSageMakerS72Input!
  ResourceKey: String
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateEndpointOutput {
  EndpointArn: String!
}

input AwsSageMakerCreateEndpointInput {
  EndpointName: String!
  EndpointConfigName: String!
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateEndpointConfigOutput {
  EndpointConfigArn: String!
}

input AwsSageMakerCreateEndpointConfigInput {
  EndpointConfigName: String!
  ProductionVariants: [AwsSageMakerS7vInput]!
  DataCaptureConfig: AwsSageMakerS84Input
  Tags: [AwsSageMakerS7Input]
  KmsKeyId: String
}

input AwsSageMakerS7vInput {
  VariantName: String!
  ModelName: String!
  InitialInstanceCount: Int!
  InstanceType: String!
  InitialVariantWeight: Float
  AcceleratorType: String
  CoreDumpConfig: AwsSageMakerS7vCoreDumpConfigInput
}

input AwsSageMakerS7vCoreDumpConfigInput {
  DestinationS3Uri: String!
  KmsKeyId: String
}

input AwsSageMakerS84Input {
  EnableCapture: Boolean
  InitialSamplingPercentage: Int!
  DestinationS3Uri: String!
  KmsKeyId: String
  CaptureOptions: [AwsSageMakerS84CaptureOptionsInput]!
  CaptureContentTypeHeader: AwsSageMakerS84CaptureContentTypeHeaderInput
}

input AwsSageMakerS84CaptureOptionsInput {
  CaptureMode: String!
}

input AwsSageMakerS84CaptureContentTypeHeaderInput {
  CsvContentTypes: [String]
  JsonContentTypes: [String]
}

type AwsSageMakerCreateExperimentOutput {
  ExperimentArn: String
}

input AwsSageMakerCreateExperimentInput {
  ExperimentName: String!
  DisplayName: String
  Description: String
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateFeatureGroupOutput {
  FeatureGroupArn: String!
}

input AwsSageMakerCreateFeatureGroupInput {
  FeatureGroupName: String!
  RecordIdentifierFeatureName: String!
  EventTimeFeatureName: String!
  FeatureDefinitions: [AwsSageMakerS8nInput]!
  OnlineStoreConfig: AwsSageMakerS8qInput
  OfflineStoreConfig: AwsSageMakerS8sInput
  RoleArn: String
  Description: String
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS8nInput {
  FeatureName: String
  FeatureType: String
}

input AwsSageMakerS8qInput {
  SecurityConfig: AwsSageMakerS8qSecurityConfigInput
  EnableOnlineStore: Boolean
}

input AwsSageMakerS8qSecurityConfigInput {
  KmsKeyId: String
}

input AwsSageMakerS8sInput {
  S3StorageConfig: AwsSageMakerS8sS3StorageConfigInput!
  DisableGlueTableCreation: Boolean
  DataCatalogConfig: AwsSageMakerS8sDataCatalogConfigInput
}

input AwsSageMakerS8sS3StorageConfigInput {
  S3Uri: String!
  KmsKeyId: String
  ResolvedOutputS3Uri: String
}

input AwsSageMakerS8sDataCatalogConfigInput {
  TableName: String!
  Catalog: String!
  Database: String!
}

type AwsSageMakerCreateFlowDefinitionOutput {
  FlowDefinitionArn: String!
}

input AwsSageMakerCreateFlowDefinitionInput {
  FlowDefinitionName: String!
  HumanLoopRequestSource: AwsSageMakerS93Input
  HumanLoopActivationConfig: AwsSageMakerS95Input
  HumanLoopConfig: AwsSageMakerS98Input!
  OutputConfig: AwsSageMakerS9nInput!
  RoleArn: String!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS93Input {
  AwsManagedHumanLoopRequestSource: String!
}

input AwsSageMakerS95Input {
  HumanLoopActivationConditionsConfig: AwsSageMakerS95HumanLoopActivationConditionsConfigInput!
}

input AwsSageMakerS95HumanLoopActivationConditionsConfigInput {
  HumanLoopActivationConditions: String!
}

input AwsSageMakerS98Input {
  WorkteamArn: String!
  HumanTaskUiArn: String!
  TaskTitle: String!
  TaskDescription: String!
  TaskCount: Int!
  TaskAvailabilityLifetimeInSeconds: Int
  TaskTimeLimitInSeconds: Int
  TaskKeywords: [String]
  PublicWorkforceTaskPrice: AwsSageMakerS9iInput
}

input AwsSageMakerS9iInput {
  AmountInUsd: AwsSageMakerS9iAmountInUsdInput
}

input AwsSageMakerS9iAmountInUsdInput {
  Dollars: Int
  Cents: Int
  TenthFractionsOfACent: Int
}

input AwsSageMakerS9nInput {
  S3OutputPath: String!
  KmsKeyId: String
}

type AwsSageMakerCreateHumanTaskUiOutput {
  HumanTaskUiArn: String!
}

input AwsSageMakerCreateHumanTaskUiInput {
  HumanTaskUiName: String!
  UiTemplate: AwsSageMakerS9sInput!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS9sInput {
  Content: String!
}

type AwsSageMakerCreateHyperParameterTuningJobOutput {
  HyperParameterTuningJobArn: String!
}

input AwsSageMakerCreateHyperParameterTuningJobInput {
  HyperParameterTuningJobName: String!
  HyperParameterTuningJobConfig: AwsSageMakerS9xInput!
  TrainingJobDefinition: AwsSageMakerSaeInput
  TrainingJobDefinitions: [AwsSageMakerSaeInput]
  WarmStartConfig: AwsSageMakerSanInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS9xInput {
  Strategy: String!
  HyperParameterTuningJobObjective: AwsSageMakerS1rInput
  ResourceLimits: AwsSageMakerS9zInput!
  ParameterRanges: AwsSageMakerSa2Input
  TrainingJobEarlyStoppingType: String
  TuningJobCompletionCriteria: AwsSageMakerS9xTuningJobCompletionCriteriaInput
}

input AwsSageMakerS9zInput {
  MaxNumberOfTrainingJobs: Int!
  MaxParallelTrainingJobs: Int!
}

input AwsSageMakerSa2Input {
  IntegerParameterRanges: [AwsSageMakerSa2IntegerParameterRangesInput]
  ContinuousParameterRanges: [AwsSageMakerSa2ContinuousParameterRangesInput]
  CategoricalParameterRanges: [AwsSageMakerSa2CategoricalParameterRangesInput]
}

input AwsSageMakerSa2IntegerParameterRangesInput {
  Name: String!
  MinValue: String!
  MaxValue: String!
  ScalingType: String
}

input AwsSageMakerSa2ContinuousParameterRangesInput {
  Name: String!
  MinValue: String!
  MaxValue: String!
  ScalingType: String
}

input AwsSageMakerSa2CategoricalParameterRangesInput {
  Name: String!
  Values: [String]!
}

input AwsSageMakerS9xTuningJobCompletionCriteriaInput {
  TargetObjectiveMetricValue: Float!
}

input AwsSageMakerSaeInput {
  DefinitionName: String
  TuningObjective: AwsSageMakerS1rInput
  HyperParameterRanges: AwsSageMakerSa2Input
  StaticHyperParameters: JSON
  AlgorithmSpecification: AwsSageMakerSaeAlgorithmSpecificationInput!
  RoleArn: String!
  InputDataConfig: [AwsSageMakerS2cInput]
  VpcConfig: AwsSageMakerS4xInput
  OutputDataConfig: AwsSageMakerS2tInput!
  ResourceConfig: AwsSageMakerS2vInput!
  StoppingCondition: AwsSageMakerS2yInput!
  EnableNetworkIsolation: Boolean
  EnableInterContainerTrafficEncryption: Boolean
  EnableManagedSpotTraining: Boolean
  CheckpointConfig: AwsSageMakerSajInput
  RetryStrategy: AwsSageMakerSakInput
}

input AwsSageMakerSaeAlgorithmSpecificationInput {
  TrainingImage: String
  TrainingInputMode: String!
  AlgorithmName: String
  MetricDefinitions: [AwsSageMakerS1dInput]
}

input AwsSageMakerSajInput {
  S3Uri: String!
  LocalPath: String
}

input AwsSageMakerSakInput {
  MaximumRetryAttempts: Int!
}

input AwsSageMakerSanInput {
  ParentHyperParameterTuningJobs: [AwsSageMakerSanParentHyperParameterTuningJobsInput]!
  WarmStartType: String!
}

input AwsSageMakerSanParentHyperParameterTuningJobsInput {
  HyperParameterTuningJobName: String
}

type AwsSageMakerCreateImageOutput {
  ImageArn: String
}

input AwsSageMakerCreateImageInput {
  Description: String
  DisplayName: String
  ImageName: String!
  RoleArn: String!
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateImageVersionOutput {
  ImageVersionArn: String
}

input AwsSageMakerCreateImageVersionInput {
  BaseImage: String!
  ClientToken: String!
  ImageName: String!
}

type AwsSageMakerCreateLabelingJobOutput {
  LabelingJobArn: String!
}

input AwsSageMakerCreateLabelingJobInput {
  LabelingJobName: String!
  LabelAttributeName: String!
  InputConfig: AwsSageMakerSb4Input!
  OutputConfig: AwsSageMakerSbcInput!
  RoleArn: String!
  LabelCategoryConfigS3Uri: String
  StoppingConditions: AwsSageMakerSbdInput
  LabelingJobAlgorithmsConfig: AwsSageMakerSbgInput
  HumanTaskConfig: AwsSageMakerSbkInput!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSb4Input {
  DataSource: AwsSageMakerSb4DataSourceInput!
  DataAttributes: AwsSageMakerSb4DataAttributesInput
}

input AwsSageMakerSb4DataSourceInput {
  S3DataSource: AwsSageMakerSb4DataSourceS3DataSourceInput
  SnsDataSource: AwsSageMakerSb4DataSourceSnsDataSourceInput
}

input AwsSageMakerSb4DataSourceS3DataSourceInput {
  ManifestS3Uri: String!
}

input AwsSageMakerSb4DataSourceSnsDataSourceInput {
  SnsTopicArn: String!
}

input AwsSageMakerSb4DataAttributesInput {
  ContentClassifiers: [String]
}

input AwsSageMakerSbcInput {
  S3OutputPath: String!
  KmsKeyId: String
  SnsTopicArn: String
}

input AwsSageMakerSbdInput {
  MaxHumanLabeledObjectCount: Int
  MaxPercentageOfInputDatasetLabeled: Int
}

input AwsSageMakerSbgInput {
  LabelingJobAlgorithmSpecificationArn: String!
  InitialActiveLearningModelArn: String
  LabelingJobResourceConfig: AwsSageMakerSbgLabelingJobResourceConfigInput
}

input AwsSageMakerSbgLabelingJobResourceConfigInput {
  VolumeKmsKeyId: String
}

input AwsSageMakerSbkInput {
  WorkteamArn: String!
  UiConfig: AwsSageMakerSbkUiConfigInput!
  PreHumanTaskLambdaArn: String!
  TaskKeywords: [String]
  TaskTitle: String!
  TaskDescription: String!
  NumberOfHumanWorkersPerDataObject: Int!
  TaskTimeLimitInSeconds: Int!
  TaskAvailabilityLifetimeInSeconds: Int
  MaxConcurrentTaskCount: Int
  AnnotationConsolidationConfig: AwsSageMakerSbkAnnotationConsolidationConfigInput!
  PublicWorkforceTaskPrice: AwsSageMakerS9iInput
}

input AwsSageMakerSbkUiConfigInput {
  UiTemplateS3Uri: String
  HumanTaskUiArn: String
}

input AwsSageMakerSbkAnnotationConsolidationConfigInput {
  AnnotationConsolidationLambdaArn: String!
}

type AwsSageMakerCreateModelOutput {
  ModelArn: String!
}

input AwsSageMakerCreateModelInput {
  ModelName: String!
  PrimaryContainer: AwsSageMakerSbzInput
  Containers: [AwsSageMakerSbzInput]
  InferenceExecutionConfig: AwsSageMakerSccInput
  ExecutionRoleArn: String!
  Tags: [AwsSageMakerS7Input]
  VpcConfig: AwsSageMakerS4xInput
  EnableNetworkIsolation: Boolean
}

input AwsSageMakerSbzInput {
  ContainerHostname: String
  Image: String
  ImageConfig: AwsSageMakerSbzImageConfigInput
  Mode: String
  ModelDataUrl: String
  Environment: JSON
  ModelPackageName: String
  MultiModelConfig: AwsSageMakerSbzMultiModelConfigInput
}

input AwsSageMakerSbzImageConfigInput {
  RepositoryAccessMode: String!
  RepositoryAuthConfig: AwsSageMakerSbzImageConfigRepositoryAuthConfigInput
}

input AwsSageMakerSbzImageConfigRepositoryAuthConfigInput {
  RepositoryCredentialsProviderArn: String!
}

input AwsSageMakerSbzMultiModelConfigInput {
  ModelCacheSetting: String
}

input AwsSageMakerSccInput {
  Mode: String!
}

type AwsSageMakerCreateModelBiasJobDefinitionOutput {
  JobDefinitionArn: String!
}

input AwsSageMakerCreateModelBiasJobDefinitionInput {
  JobDefinitionName: String!
  ModelBiasBaselineConfig: AwsSageMakerScgInput
  ModelBiasAppSpecification: AwsSageMakerSchInput!
  ModelBiasJobInput: AwsSageMakerSciInput!
  ModelBiasJobOutputConfig: AwsSageMakerS6kInput!
  JobResources: AwsSageMakerS6qInput!
  NetworkConfig: AwsSageMakerS6vInput
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6wInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerScgInput {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61Input
}

input AwsSageMakerSchInput {
  ImageUri: String!
  ConfigUri: String!
  Environment: JSON
}

input AwsSageMakerSciInput {
  EndpointInput: AwsSageMakerS6dInput!
  GroundTruthS3Input: AwsSageMakerScjInput!
}

input AwsSageMakerScjInput {
  S3Uri: String
}

type AwsSageMakerCreateModelExplainabilityJobDefinitionOutput {
  JobDefinitionArn: String!
}

input AwsSageMakerCreateModelExplainabilityJobDefinitionInput {
  JobDefinitionName: String!
  ModelExplainabilityBaselineConfig: AwsSageMakerScmInput
  ModelExplainabilityAppSpecification: AwsSageMakerScnInput!
  ModelExplainabilityJobInput: AwsSageMakerScoInput!
  ModelExplainabilityJobOutputConfig: AwsSageMakerS6kInput!
  JobResources: AwsSageMakerS6qInput!
  NetworkConfig: AwsSageMakerS6vInput
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6wInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerScmInput {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61Input
}

input AwsSageMakerScnInput {
  ImageUri: String!
  ConfigUri: String!
  Environment: JSON
}

input AwsSageMakerScoInput {
  EndpointInput: AwsSageMakerS6dInput!
}

type AwsSageMakerCreateModelPackageOutput {
  ModelPackageArn: String!
}

input AwsSageMakerCreateModelPackageInput {
  ModelPackageName: String
  ModelPackageGroupName: String
  ModelPackageDescription: String
  InferenceSpecification: AwsSageMakerS1tInput
  ValidationSpecification: AwsSageMakerScrInput
  SourceAlgorithmSpecification: AwsSageMakerScuInput
  CertifyForMarketplace: Boolean
  Tags: [AwsSageMakerS7Input]
  ModelApprovalStatus: String
  MetadataProperties: AwsSageMakerSpInput
  ModelMetrics: AwsSageMakerScyInput
  ClientToken: String
}

input AwsSageMakerScrInput {
  ValidationRole: String!
  ValidationProfiles: [AwsSageMakerScrValidationProfilesInput]!
}

input AwsSageMakerScrValidationProfilesInput {
  ProfileName: String!
  TransformJobDefinition: AwsSageMakerS31Input!
}

input AwsSageMakerScuInput {
  SourceAlgorithms: [AwsSageMakerScuSourceAlgorithmsInput]!
}

input AwsSageMakerScuSourceAlgorithmsInput {
  ModelDataUrl: String
  AlgorithmName: String!
}

input AwsSageMakerScyInput {
  ModelQuality: AwsSageMakerScyModelQualityInput
  ModelDataQuality: AwsSageMakerScyModelDataQualityInput
  Bias: AwsSageMakerScyBiasInput
  Explainability: AwsSageMakerScyExplainabilityInput
}

input AwsSageMakerScyModelQualityInput {
  Statistics: AwsSageMakerSd0Input
  Constraints: AwsSageMakerSd0Input
}

input AwsSageMakerSd0Input {
  ContentType: String!
  ContentDigest: String
  S3Uri: String!
}

input AwsSageMakerScyModelDataQualityInput {
  Statistics: AwsSageMakerSd0Input
  Constraints: AwsSageMakerSd0Input
}

input AwsSageMakerScyBiasInput {
  Report: AwsSageMakerSd0Input
}

input AwsSageMakerScyExplainabilityInput {
  Report: AwsSageMakerSd0Input
}

type AwsSageMakerCreateModelPackageGroupOutput {
  ModelPackageGroupArn: String!
}

input AwsSageMakerCreateModelPackageGroupInput {
  ModelPackageGroupName: String!
  ModelPackageGroupDescription: String
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateModelQualityJobDefinitionOutput {
  JobDefinitionArn: String!
}

input AwsSageMakerCreateModelQualityJobDefinitionInput {
  JobDefinitionName: String!
  ModelQualityBaselineConfig: AwsSageMakerSdbInput
  ModelQualityAppSpecification: AwsSageMakerSdcInput!
  ModelQualityJobInput: AwsSageMakerSdeInput!
  ModelQualityJobOutputConfig: AwsSageMakerS6kInput!
  JobResources: AwsSageMakerS6qInput!
  NetworkConfig: AwsSageMakerS6vInput
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6wInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSdbInput {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61Input
}

input AwsSageMakerSdcInput {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
  ProblemType: String
  Environment: JSON
}

input AwsSageMakerSdeInput {
  EndpointInput: AwsSageMakerS6dInput!
  GroundTruthS3Input: AwsSageMakerScjInput!
}

type AwsSageMakerCreateMonitoringScheduleOutput {
  MonitoringScheduleArn: String!
}

input AwsSageMakerCreateMonitoringScheduleInput {
  MonitoringScheduleName: String!
  MonitoringScheduleConfig: AwsSageMakerSdiInput!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSdiInput {
  ScheduleConfig: AwsSageMakerSdiScheduleConfigInput
  MonitoringJobDefinition: AwsSageMakerSdiMonitoringJobDefinitionInput
  MonitoringJobDefinitionName: String
  MonitoringType: String
}

input AwsSageMakerSdiScheduleConfigInput {
  ScheduleExpression: String!
}

input AwsSageMakerSdiMonitoringJobDefinitionInput {
  BaselineConfig: AwsSageMakerSdiMonitoringJobDefinitionBaselineConfigInput
  MonitoringInputs: [AwsSageMakerSdiMonitoringJobDefinitionMonitoringInputsInput]!
  MonitoringOutputConfig: AwsSageMakerS6kInput!
  MonitoringResources: AwsSageMakerS6qInput!
  MonitoringAppSpecification: AwsSageMakerSdiMonitoringJobDefinitionMonitoringAppSpecificationInput!
  StoppingCondition: AwsSageMakerS6wInput
  Environment: JSON
  NetworkConfig: AwsSageMakerSdqInput
  RoleArn: String!
}

input AwsSageMakerSdiMonitoringJobDefinitionBaselineConfigInput {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61Input
  StatisticsResource: AwsSageMakerS62Input
}

input AwsSageMakerSdiMonitoringJobDefinitionMonitoringInputsInput {
  EndpointInput: AwsSageMakerS6dInput!
}

input AwsSageMakerSdiMonitoringJobDefinitionMonitoringAppSpecificationInput {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
}

input AwsSageMakerSdqInput {
  EnableInterContainerTrafficEncryption: Boolean
  EnableNetworkIsolation: Boolean
  VpcConfig: AwsSageMakerS4xInput
}

type AwsSageMakerCreateNotebookInstanceOutput {
  NotebookInstanceArn: String
}

input AwsSageMakerCreateNotebookInstanceInput {
  NotebookInstanceName: String!
  InstanceType: String!
  SubnetId: String
  SecurityGroupIds: [String]
  RoleArn: String!
  KmsKeyId: String
  Tags: [AwsSageMakerS7Input]
  LifecycleConfigName: String
  DirectInternetAccess: String
  VolumeSizeInGB: Int
  AcceleratorTypes: [String]
  DefaultCodeRepository: String
  AdditionalCodeRepositories: [String]
  RootAccess: String
}

type AwsSageMakerCreateNotebookInstanceLifecycleConfigOutput {
  NotebookInstanceLifecycleConfigArn: String
}

input AwsSageMakerCreateNotebookInstanceLifecycleConfigInput {
  NotebookInstanceLifecycleConfigName: String!
  OnCreate: [AwsSageMakerSe8Input]
  OnStart: [AwsSageMakerSe8Input]
}

input AwsSageMakerSe8Input {
  Content: String
}

type AwsSageMakerCreatePipelineOutput {
  PipelineArn: String
}

input AwsSageMakerCreatePipelineInput {
  PipelineName: String!
  PipelineDisplayName: String
  PipelineDefinition: String!
  PipelineDescription: String
  ClientRequestToken: String!
  RoleArn: String!
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreatePresignedDomainUrlOutput {
  AuthorizedUrl: String
}

input AwsSageMakerCreatePresignedDomainUrlInput {
  DomainId: String!
  UserProfileName: String!
  SessionExpirationDurationInSeconds: Int
  ExpiresInSeconds: Int
}

type AwsSageMakerCreatePresignedNotebookInstanceUrlOutput {
  AuthorizedUrl: String
}

input AwsSageMakerCreatePresignedNotebookInstanceUrlInput {
  NotebookInstanceName: String!
  SessionExpirationDurationInSeconds: Int
}

type AwsSageMakerCreateProcessingJobOutput {
  ProcessingJobArn: String!
}

input AwsSageMakerCreateProcessingJobInput {
  ProcessingInputs: [AwsSageMakerSetInput]
  ProcessingOutputConfig: AwsSageMakerSfgInput
  ProcessingJobName: String!
  ProcessingResources: AwsSageMakerSflInput!
  StoppingCondition: AwsSageMakerSfnInput
  AppSpecification: AwsSageMakerSfpInput!
  Environment: JSON
  NetworkConfig: AwsSageMakerSdqInput
  RoleArn: String!
  Tags: [AwsSageMakerS7Input]
  ExperimentConfig: AwsSageMakerSfsInput
}

input AwsSageMakerSetInput {
  InputName: String!
  AppManaged: Boolean
  S3Input: AwsSageMakerSetS3InputInput
  DatasetDefinition: AwsSageMakerSetDatasetDefinitionInput
}

input AwsSageMakerSetS3InputInput {
  S3Uri: String!
  LocalPath: String
  S3DataType: String!
  S3InputMode: String
  S3DataDistributionType: String
  S3CompressionType: String
}

input AwsSageMakerSetDatasetDefinitionInput {
  AthenaDatasetDefinition: AwsSageMakerSetDatasetDefinitionAthenaDatasetDefinitionInput
  RedshiftDatasetDefinition: AwsSageMakerSetDatasetDefinitionRedshiftDatasetDefinitionInput
  LocalPath: String
  DataDistributionType: String
  InputMode: String
}

input AwsSageMakerSetDatasetDefinitionAthenaDatasetDefinitionInput {
  Catalog: String!
  Database: String!
  QueryString: String!
  WorkGroup: String
  OutputS3Uri: String!
  KmsKeyId: String
  OutputFormat: String!
  OutputCompression: String
}

input AwsSageMakerSetDatasetDefinitionRedshiftDatasetDefinitionInput {
  ClusterId: String!
  Database: String!
  DbUser: String!
  QueryString: String!
  ClusterRoleArn: String!
  OutputS3Uri: String!
  KmsKeyId: String
  OutputFormat: String!
  OutputCompression: String
}

input AwsSageMakerSfgInput {
  Outputs: [AwsSageMakerSfgOutputsInput]!
  KmsKeyId: String
}

input AwsSageMakerSfgOutputsInput {
  OutputName: String!
  S3Output: AwsSageMakerSfgOutputsS3OutputInput
  FeatureStoreOutput: AwsSageMakerSfgOutputsFeatureStoreOutputInput
  AppManaged: Boolean
}

input AwsSageMakerSfgOutputsS3OutputInput {
  S3Uri: String!
  LocalPath: String!
  S3UploadMode: String!
}

input AwsSageMakerSfgOutputsFeatureStoreOutputInput {
  FeatureGroupName: String!
}

input AwsSageMakerSflInput {
  ClusterConfig: AwsSageMakerSflClusterConfigInput!
}

input AwsSageMakerSflClusterConfigInput {
  InstanceCount: Int!
  InstanceType: String!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

input AwsSageMakerSfnInput {
  MaxRuntimeInSeconds: Int!
}

input AwsSageMakerSfpInput {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
}

input AwsSageMakerSfsInput {
  ExperimentName: String
  TrialName: String
  TrialComponentDisplayName: String
}

type AwsSageMakerCreateProjectOutput {
  ProjectArn: String!
  ProjectId: String!
}

input AwsSageMakerCreateProjectInput {
  ProjectName: String!
  ProjectDescription: String
  ServiceCatalogProvisioningDetails: AwsSageMakerSfxInput!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSfxInput {
  ProductId: String!
  ProvisioningArtifactId: String!
  PathId: String
  ProvisioningParameters: [AwsSageMakerSfxProvisioningParametersInput]
}

input AwsSageMakerSfxProvisioningParametersInput {
  Key: String
  Value: String
}

type AwsSageMakerCreateTrainingJobOutput {
  TrainingJobArn: String!
}

input AwsSageMakerCreateTrainingJobInput {
  TrainingJobName: String!
  HyperParameters: JSON
  AlgorithmSpecification: AwsSageMakerSg8Input!
  RoleArn: String!
  InputDataConfig: [AwsSageMakerS2cInput]
  OutputDataConfig: AwsSageMakerS2tInput!
  ResourceConfig: AwsSageMakerS2vInput!
  VpcConfig: AwsSageMakerS4xInput
  StoppingCondition: AwsSageMakerS2yInput!
  Tags: [AwsSageMakerS7Input]
  EnableNetworkIsolation: Boolean
  EnableInterContainerTrafficEncryption: Boolean
  EnableManagedSpotTraining: Boolean
  CheckpointConfig: AwsSageMakerSajInput
  DebugHookConfig: AwsSageMakerSg9Input
  DebugRuleConfigurations: [AwsSageMakerSghInput]
  TensorBoardOutputConfig: AwsSageMakerSgmInput
  ExperimentConfig: AwsSageMakerSfsInput
  ProfilerConfig: AwsSageMakerSgnInput
  ProfilerRuleConfigurations: [AwsSageMakerSgqInput]
  Environment: JSON
  RetryStrategy: AwsSageMakerSakInput
}

input AwsSageMakerSg8Input {
  TrainingImage: String
  AlgorithmName: String
  TrainingInputMode: String!
  MetricDefinitions: [AwsSageMakerS1dInput]
  EnableSageMakerMetricsTimeSeries: Boolean
}

input AwsSageMakerSg9Input {
  LocalPath: String
  S3OutputPath: String!
  HookParameters: JSON
  CollectionConfigurations: [AwsSageMakerSg9CollectionConfigurationsInput]
}

input AwsSageMakerSg9CollectionConfigurationsInput {
  CollectionName: String
  CollectionParameters: JSON
}

input AwsSageMakerSghInput {
  RuleConfigurationName: String!
  LocalPath: String
  S3OutputPath: String
  RuleEvaluatorImage: String!
  InstanceType: String
  VolumeSizeInGB: Int
  RuleParameters: JSON
}

input AwsSageMakerSgmInput {
  LocalPath: String
  S3OutputPath: String!
}

input AwsSageMakerSgnInput {
  S3OutputPath: String!
  ProfilingIntervalInMilliseconds: JSON
  ProfilingParameters: JSON
}

input AwsSageMakerSgqInput {
  RuleConfigurationName: String!
  LocalPath: String
  S3OutputPath: String
  RuleEvaluatorImage: String!
  InstanceType: String
  VolumeSizeInGB: Int
  RuleParameters: JSON
}

type AwsSageMakerCreateTransformJobOutput {
  TransformJobArn: String!
}

input AwsSageMakerCreateTransformJobInput {
  TransformJobName: String!
  ModelName: String!
  MaxConcurrentTransforms: Int
  ModelClientConfig: AwsSageMakerSgzInput
  MaxPayloadInMB: Int
  BatchStrategy: String
  Environment: JSON
  TransformInput: AwsSageMakerS38Input!
  TransformOutput: AwsSageMakerS3cInput!
  TransformResources: AwsSageMakerS3fInput!
  DataProcessing: AwsSageMakerSh2Input
  Tags: [AwsSageMakerS7Input]
  ExperimentConfig: AwsSageMakerSfsInput
}

input AwsSageMakerSgzInput {
  InvocationsTimeoutInSeconds: Int
  InvocationsMaxRetries: Int
}

input AwsSageMakerSh2Input {
  InputFilter: String
  OutputFilter: String
  JoinSource: String
}

type AwsSageMakerCreateTrialOutput {
  TrialArn: String
}

input AwsSageMakerCreateTrialInput {
  TrialName: String!
  DisplayName: String
  ExperimentName: String!
  MetadataProperties: AwsSageMakerSpInput
  Tags: [AwsSageMakerS7Input]
}

type AwsSageMakerCreateTrialComponentOutput {
  TrialComponentArn: String
}

input AwsSageMakerCreateTrialComponentInput {
  TrialComponentName: String!
  DisplayName: String
  Status: AwsSageMakerShaInput
  StartTime: Date
  EndTime: Date
  Parameters: JSON
  InputArtifacts: JSON
  OutputArtifacts: JSON
  MetadataProperties: AwsSageMakerSpInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerShaInput {
  PrimaryStatus: String
  Message: String
}

type AwsSageMakerCreateUserProfileOutput {
  UserProfileArn: String
}

input AwsSageMakerCreateUserProfileInput {
  DomainId: String!
  UserProfileName: String!
  SingleSignOnUserIdentifier: String
  SingleSignOnUserValue: String
  Tags: [AwsSageMakerS7Input]
  UserSettings: AwsSageMakerS78Input
}

type AwsSageMakerCreateWorkforceOutput {
  WorkforceArn: String!
}

input AwsSageMakerCreateWorkforceInput {
  CognitoConfig: AwsSageMakerShtInput
  OidcConfig: AwsSageMakerShwInput
  SourceIpConfig: AwsSageMakerShzInput
  WorkforceName: String!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerShtInput {
  UserPool: String!
  ClientId: String!
}

input AwsSageMakerShwInput {
  ClientId: String!
  ClientSecret: String!
  Issuer: String!
  AuthorizationEndpoint: String!
  TokenEndpoint: String!
  UserInfoEndpoint: String!
  LogoutEndpoint: String!
  JwksUri: String!
}

input AwsSageMakerShzInput {
  Cidrs: [String]!
}

type AwsSageMakerCreateWorkteamOutput {
  WorkteamArn: String
}

input AwsSageMakerCreateWorkteamInput {
  WorkteamName: String!
  WorkforceName: String
  MemberDefinitions: [AwsSageMakerSi7Input]!
  Description: String!
  NotificationConfiguration: AwsSageMakerSifInput
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerSi7Input {
  CognitoMemberDefinition: AwsSageMakerSi7CognitoMemberDefinitionInput
  OidcMemberDefinition: AwsSageMakerSi7OidcMemberDefinitionInput
}

input AwsSageMakerSi7CognitoMemberDefinitionInput {
  UserPool: String!
  UserGroup: String!
  ClientId: String!
}

input AwsSageMakerSi7OidcMemberDefinitionInput {
  Groups: [String]!
}

input AwsSageMakerSifInput {
  NotificationTopicArn: String
}

type AwsSageMakerDeleteActionOutput {
  ActionArn: String
}

input AwsSageMakerDeleteActionInput {
  ActionName: String!
}

input AwsSageMakerDeleteAlgorithmInput {
  AlgorithmName: String!
}

input AwsSageMakerDeleteAppInput {
  DomainId: String!
  UserProfileName: String!
  AppType: String!
  AppName: String!
}

input AwsSageMakerDeleteAppImageConfigInput {
  AppImageConfigName: String!
}

type AwsSageMakerDeleteArtifactOutput {
  ArtifactArn: String
}

input AwsSageMakerDeleteArtifactInput {
  ArtifactArn: String
  Source: AwsSageMakerS49Input
}

type AwsSageMakerDeleteAssociationOutput {
  SourceArn: String
  DestinationArn: String
}

input AwsSageMakerDeleteAssociationInput {
  SourceArn: String!
  DestinationArn: String!
}

input AwsSageMakerDeleteCodeRepositoryInput {
  CodeRepositoryName: String!
}

type AwsSageMakerDeleteContextOutput {
  ContextArn: String
}

input AwsSageMakerDeleteContextInput {
  ContextName: String!
}

input AwsSageMakerDeleteDataQualityJobDefinitionInput {
  JobDefinitionName: String!
}

input AwsSageMakerDeleteDeviceFleetInput {
  DeviceFleetName: String!
}

input AwsSageMakerDeleteDomainInput {
  DomainId: String!
  RetentionPolicy: AwsSageMakerDeleteDomainRetentionPolicyInput
}

input AwsSageMakerDeleteDomainRetentionPolicyInput {
  HomeEfsFileSystem: String
}

input AwsSageMakerDeleteEndpointInput {
  EndpointName: String!
}

input AwsSageMakerDeleteEndpointConfigInput {
  EndpointConfigName: String!
}

type AwsSageMakerDeleteExperimentOutput {
  ExperimentArn: String
}

input AwsSageMakerDeleteExperimentInput {
  ExperimentName: String!
}

input AwsSageMakerDeleteFeatureGroupInput {
  FeatureGroupName: String!
}

input AwsSageMakerDeleteFlowDefinitionInput {
  FlowDefinitionName: String!
}

input AwsSageMakerDeleteHumanTaskUiInput {
  HumanTaskUiName: String!
}

input AwsSageMakerDeleteImageInput {
  ImageName: String!
}

input AwsSageMakerDeleteImageVersionInput {
  ImageName: String!
  Version: Int!
}

input AwsSageMakerDeleteModelInput {
  ModelName: String!
}

input AwsSageMakerDeleteModelBiasJobDefinitionInput {
  JobDefinitionName: String!
}

input AwsSageMakerDeleteModelExplainabilityJobDefinitionInput {
  JobDefinitionName: String!
}

input AwsSageMakerDeleteModelPackageInput {
  ModelPackageName: String!
}

input AwsSageMakerDeleteModelPackageGroupInput {
  ModelPackageGroupName: String!
}

input AwsSageMakerDeleteModelPackageGroupPolicyInput {
  ModelPackageGroupName: String!
}

input AwsSageMakerDeleteModelQualityJobDefinitionInput {
  JobDefinitionName: String!
}

input AwsSageMakerDeleteMonitoringScheduleInput {
  MonitoringScheduleName: String!
}

input AwsSageMakerDeleteNotebookInstanceInput {
  NotebookInstanceName: String!
}

input AwsSageMakerDeleteNotebookInstanceLifecycleConfigInput {
  NotebookInstanceLifecycleConfigName: String!
}

type AwsSageMakerDeletePipelineOutput {
  PipelineArn: String
}

input AwsSageMakerDeletePipelineInput {
  PipelineName: String!
  ClientRequestToken: String!
}

input AwsSageMakerDeleteProjectInput {
  ProjectName: String!
}

input AwsSageMakerDeleteTagsInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsSageMakerDeleteTrialOutput {
  TrialArn: String
}

input AwsSageMakerDeleteTrialInput {
  TrialName: String!
}

type AwsSageMakerDeleteTrialComponentOutput {
  TrialComponentArn: String
}

input AwsSageMakerDeleteTrialComponentInput {
  TrialComponentName: String!
}

input AwsSageMakerDeleteUserProfileInput {
  DomainId: String!
  UserProfileName: String!
}

input AwsSageMakerDeleteWorkforceInput {
  WorkforceName: String!
}

type AwsSageMakerDeleteWorkteamOutput {
  Success: Boolean!
}

input AwsSageMakerDeleteWorkteamInput {
  WorkteamName: String!
}

input AwsSageMakerDeregisterDevicesInput {
  DeviceFleetName: String!
  DeviceNames: [String]!
}

type AwsSageMakerDescribeActionOutput {
  ActionName: String
  ActionArn: String
  Source: AwsSageMakerSi
  ActionType: String
  Description: String
  Status: String
  Properties: JSON
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
}

type AwsSageMakerSi {
  SourceUri: String!
  SourceType: String
  SourceId: String
}

type AwsSageMakerSk7 {
  UserProfileArn: String
  UserProfileName: String
  DomainId: String
}

type AwsSageMakerSp {
  CommitId: String
  Repository: String
  GeneratedBy: String
  ProjectId: String
}

input AwsSageMakerDescribeActionInput {
  ActionName: String!
}

type AwsSageMakerDescribeAlgorithmOutput {
  AlgorithmName: String!
  AlgorithmArn: String!
  AlgorithmDescription: String
  CreationTime: Date!
  TrainingSpecification: AwsSageMakerSw!
  InferenceSpecification: AwsSageMakerS1t
  ValidationSpecification: AwsSageMakerS25
  AlgorithmStatus: String!
  AlgorithmStatusDetails: AwsSageMakerDescribeAlgorithmOutputAlgorithmStatusDetails!
  ProductId: String
  CertifyForMarketplace: Boolean
}

type AwsSageMakerSw {
  TrainingImage: String!
  TrainingImageDigest: String
  SupportedHyperParameters: [AwsSageMakerSwSupportedHyperParameters]
  SupportedTrainingInstanceTypes: [String]!
  SupportsDistributedTraining: Boolean
  MetricDefinitions: [AwsSageMakerS1d]
  TrainingChannels: [AwsSageMakerSwTrainingChannels]!
  SupportedTuningJobObjectiveMetrics: [AwsSageMakerS1r]
}

type AwsSageMakerSwSupportedHyperParameters {
  Name: String!
  Description: String
  Type: String!
  Range: AwsSageMakerSwSupportedHyperParametersRange
  IsTunable: Boolean
  IsRequired: Boolean
  DefaultValue: String
}

type AwsSageMakerSwSupportedHyperParametersRange {
  IntegerParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeIntegerParameterRangeSpecification
  ContinuousParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeContinuousParameterRangeSpecification
  CategoricalParameterRangeSpecification: AwsSageMakerSwSupportedHyperParametersRangeCategoricalParameterRangeSpecification
}

type AwsSageMakerSwSupportedHyperParametersRangeIntegerParameterRangeSpecification {
  MinValue: String!
  MaxValue: String!
}

type AwsSageMakerSwSupportedHyperParametersRangeContinuousParameterRangeSpecification {
  MinValue: String!
  MaxValue: String!
}

type AwsSageMakerSwSupportedHyperParametersRangeCategoricalParameterRangeSpecification {
  Values: [String]!
}

type AwsSageMakerS1d {
  Name: String!
  Regex: String!
}

type AwsSageMakerSwTrainingChannels {
  Name: String!
  Description: String
  IsRequired: Boolean
  SupportedContentTypes: [String]!
  SupportedCompressionTypes: [String]
  SupportedInputModes: [String]!
}

type AwsSageMakerS1r {
  Type: String!
  MetricName: String!
}

type AwsSageMakerS1t {
  Containers: [AwsSageMakerS1tContainers]!
  SupportedTransformInstanceTypes: [String]
  SupportedRealtimeInferenceInstanceTypes: [String]
  SupportedContentTypes: [String]!
  SupportedResponseMIMETypes: [String]!
}

type AwsSageMakerS1tContainers {
  ContainerHostname: String
  Image: String!
  ImageDigest: String
  ModelDataUrl: String
  ProductId: String
}

type AwsSageMakerS25 {
  ValidationRole: String!
  ValidationProfiles: [AwsSageMakerS25ValidationProfiles]!
}

type AwsSageMakerS25ValidationProfiles {
  ProfileName: String!
  TrainingJobDefinition: AwsSageMakerS25ValidationProfilesTrainingJobDefinition!
  TransformJobDefinition: AwsSageMakerS31
}

type AwsSageMakerS25ValidationProfilesTrainingJobDefinition {
  TrainingInputMode: String!
  HyperParameters: JSON
  InputDataConfig: [AwsSageMakerS2c]!
  OutputDataConfig: AwsSageMakerS2t!
  ResourceConfig: AwsSageMakerS2v!
  StoppingCondition: AwsSageMakerS2y!
}

type AwsSageMakerS2c {
  ChannelName: String!
  DataSource: AwsSageMakerS2cDataSource!
  ContentType: String
  CompressionType: String
  RecordWrapperType: String
  InputMode: String
  ShuffleConfig: AwsSageMakerS2cShuffleConfig
}

type AwsSageMakerS2cDataSource {
  S3DataSource: AwsSageMakerS2cDataSourceS3DataSource
  FileSystemDataSource: AwsSageMakerS2cDataSourceFileSystemDataSource
}

type AwsSageMakerS2cDataSourceS3DataSource {
  S3DataType: String!
  S3Uri: String!
  S3DataDistributionType: String
  AttributeNames: [String]
}

type AwsSageMakerS2cDataSourceFileSystemDataSource {
  FileSystemId: String!
  FileSystemAccessMode: String!
  FileSystemType: String!
  DirectoryPath: String!
}

type AwsSageMakerS2cShuffleConfig {
  Seed: JSON!
}

type AwsSageMakerS2t {
  KmsKeyId: String
  S3OutputPath: String!
}

type AwsSageMakerS2v {
  InstanceType: String!
  InstanceCount: Int!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

type AwsSageMakerS2y {
  MaxRuntimeInSeconds: Int
  MaxWaitTimeInSeconds: Int
}

type AwsSageMakerS31 {
  MaxConcurrentTransforms: Int
  MaxPayloadInMB: Int
  BatchStrategy: String
  Environment: JSON
  TransformInput: AwsSageMakerS38!
  TransformOutput: AwsSageMakerS3c!
  TransformResources: AwsSageMakerS3f!
}

type AwsSageMakerS38 {
  DataSource: AwsSageMakerS38DataSource!
  ContentType: String
  CompressionType: String
  SplitType: String
}

type AwsSageMakerS38DataSource {
  S3DataSource: AwsSageMakerS38DataSourceS3DataSource!
}

type AwsSageMakerS38DataSourceS3DataSource {
  S3DataType: String!
  S3Uri: String!
}

type AwsSageMakerS3c {
  S3OutputPath: String!
  Accept: String
  AssembleWith: String
  KmsKeyId: String
}

type AwsSageMakerS3f {
  InstanceType: String!
  InstanceCount: Int!
  VolumeKmsKeyId: String
}

type AwsSageMakerDescribeAlgorithmOutputAlgorithmStatusDetails {
  ValidationStatuses: [AwsSageMakerSkd]
  ImageScanStatuses: [AwsSageMakerSkd]
}

type AwsSageMakerSkd {
  Name: String!
  Status: String!
  FailureReason: String
}

input AwsSageMakerDescribeAlgorithmInput {
  AlgorithmName: String!
}

type AwsSageMakerDescribeAppOutput {
  AppArn: String
  AppType: String
  AppName: String
  DomainId: String
  UserProfileName: String
  Status: String
  LastHealthCheckTimestamp: Date
  LastUserActivityTimestamp: Date
  CreationTime: Date
  FailureReason: String
  ResourceSpec: AwsSageMakerS3p
}

type AwsSageMakerS3p {
  SageMakerImageArn: String
  SageMakerImageVersionArn: String
  InstanceType: String
}

input AwsSageMakerDescribeAppInput {
  DomainId: String!
  UserProfileName: String!
  AppType: String!
  AppName: String!
}

type AwsSageMakerDescribeAppImageConfigOutput {
  AppImageConfigArn: String
  AppImageConfigName: String
  CreationTime: Date
  LastModifiedTime: Date
  KernelGatewayImageConfig: AwsSageMakerS3x
}

type AwsSageMakerS3x {
  KernelSpecs: [AwsSageMakerS3xKernelSpecs]!
  FileSystemConfig: AwsSageMakerS3xFileSystemConfig
}

type AwsSageMakerS3xKernelSpecs {
  Name: String!
  DisplayName: String
}

type AwsSageMakerS3xFileSystemConfig {
  MountPath: String
  DefaultUid: Int
  DefaultGid: Int
}

input AwsSageMakerDescribeAppImageConfigInput {
  AppImageConfigName: String!
}

type AwsSageMakerDescribeArtifactOutput {
  ArtifactName: String
  ArtifactArn: String
  Source: AwsSageMakerS49
  ArtifactType: String
  Properties: JSON
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
}

type AwsSageMakerS49 {
  SourceUri: String!
  SourceTypes: [AwsSageMakerS49SourceTypes]
}

type AwsSageMakerS49SourceTypes {
  SourceIdType: String!
  Value: String!
}

input AwsSageMakerDescribeArtifactInput {
  ArtifactArn: String!
}

type AwsSageMakerDescribeAutoMLJobOutput {
  AutoMLJobName: String!
  AutoMLJobArn: String!
  InputDataConfig: [AwsSageMakerS4h]!
  OutputDataConfig: AwsSageMakerS4n!
  RoleArn: String!
  AutoMLJobObjective: AwsSageMakerS4p
  ProblemType: String
  AutoMLJobConfig: AwsSageMakerS4r
  CreationTime: Date!
  EndTime: Date
  LastModifiedTime: Date!
  FailureReason: String
  PartialFailureReasons: [AwsSageMakerSkr]
  BestCandidate: AwsSageMakerSkt
  AutoMLJobStatus: String!
  AutoMLJobSecondaryStatus: String!
  GenerateCandidateDefinitionsOnly: Boolean
  AutoMLJobArtifacts: AwsSageMakerDescribeAutoMLJobOutputAutoMLJobArtifacts
  ResolvedAttributes: AwsSageMakerDescribeAutoMLJobOutputResolvedAttributes
  ModelDeployConfig: AwsSageMakerS53
  ModelDeployResult: AwsSageMakerDescribeAutoMLJobOutputModelDeployResult
}

type AwsSageMakerS4h {
  DataSource: AwsSageMakerS4hDataSource!
  CompressionType: String
  TargetAttributeName: String!
}

type AwsSageMakerS4hDataSource {
  S3DataSource: AwsSageMakerS4hDataSourceS3DataSource!
}

type AwsSageMakerS4hDataSourceS3DataSource {
  S3DataType: String!
  S3Uri: String!
}

type AwsSageMakerS4n {
  KmsKeyId: String
  S3OutputPath: String!
}

type AwsSageMakerS4p {
  MetricName: String!
}

type AwsSageMakerS4r {
  CompletionCriteria: AwsSageMakerS4s
  SecurityConfig: AwsSageMakerS4rSecurityConfig
}

type AwsSageMakerS4s {
  MaxCandidates: Int
  MaxRuntimePerTrainingJobInSeconds: Int
  MaxAutoMLJobRuntimeInSeconds: Int
}

type AwsSageMakerS4rSecurityConfig {
  VolumeKmsKeyId: String
  EnableInterContainerTrafficEncryption: Boolean
  VpcConfig: AwsSageMakerS4x
}

type AwsSageMakerS4x {
  SecurityGroupIds: [String]!
  Subnets: [String]!
}

type AwsSageMakerSkr {
  PartialFailureMessage: String
}

type AwsSageMakerSkt {
  CandidateName: String!
  FinalAutoMLJobObjectiveMetric: AwsSageMakerSktFinalAutoMLJobObjectiveMetric
  ObjectiveStatus: String!
  CandidateSteps: [AwsSageMakerSktCandidateSteps]!
  CandidateStatus: String!
  InferenceContainers: [AwsSageMakerSktInferenceContainers]
  CreationTime: Date!
  EndTime: Date
  LastModifiedTime: Date!
  FailureReason: String
  CandidateProperties: AwsSageMakerSktCandidateProperties
}

type AwsSageMakerSktFinalAutoMLJobObjectiveMetric {
  Type: String
  MetricName: String!
  Value: Float!
}

type AwsSageMakerSktCandidateSteps {
  CandidateStepType: String!
  CandidateStepArn: String!
  CandidateStepName: String!
}

type AwsSageMakerSktInferenceContainers {
  Image: String!
  ModelDataUrl: String!
  Environment: JSON
}

type AwsSageMakerSktCandidateProperties {
  CandidateArtifactLocations: AwsSageMakerSktCandidatePropertiesCandidateArtifactLocations
}

type AwsSageMakerSktCandidatePropertiesCandidateArtifactLocations {
  Explainability: String!
}

type AwsSageMakerDescribeAutoMLJobOutputAutoMLJobArtifacts {
  CandidateDefinitionNotebookLocation: String
  DataExplorationNotebookLocation: String
}

type AwsSageMakerDescribeAutoMLJobOutputResolvedAttributes {
  AutoMLJobObjective: AwsSageMakerS4p
  ProblemType: String
  CompletionCriteria: AwsSageMakerS4s
}

type AwsSageMakerS53 {
  AutoGenerateEndpointName: Boolean
  EndpointName: String
}

type AwsSageMakerDescribeAutoMLJobOutputModelDeployResult {
  EndpointName: String
}

input AwsSageMakerDescribeAutoMLJobInput {
  AutoMLJobName: String!
}

type AwsSageMakerDescribeCodeRepositoryOutput {
  CodeRepositoryName: String!
  CodeRepositoryArn: String!
  CreationTime: Date!
  LastModifiedTime: Date!
  GitConfig: AwsSageMakerS59
}

type AwsSageMakerS59 {
  RepositoryUrl: String!
  Branch: String
  SecretArn: String
}

input AwsSageMakerDescribeCodeRepositoryInput {
  CodeRepositoryName: String!
}

type AwsSageMakerDescribeCompilationJobOutput {
  CompilationJobName: String!
  CompilationJobArn: String!
  CompilationJobStatus: String!
  CompilationStartTime: Date
  CompilationEndTime: Date
  StoppingCondition: AwsSageMakerS2y!
  CreationTime: Date!
  LastModifiedTime: Date!
  FailureReason: String!
  ModelArtifacts: AwsSageMakerSln!
  ModelDigests: AwsSageMakerDescribeCompilationJobOutputModelDigests
  RoleArn: String!
  InputConfig: AwsSageMakerS5g!
  OutputConfig: AwsSageMakerS5k!
}

type AwsSageMakerSln {
  S3ModelArtifacts: String!
}

type AwsSageMakerDescribeCompilationJobOutputModelDigests {
  ArtifactDigest: String
}

type AwsSageMakerS5g {
  S3Uri: String!
  DataInputConfig: String!
  Framework: String!
  FrameworkVersion: String
}

type AwsSageMakerS5k {
  S3OutputLocation: String!
  TargetDevice: String
  TargetPlatform: AwsSageMakerS5kTargetPlatform
  CompilerOptions: String
  KmsKeyId: String
}

type AwsSageMakerS5kTargetPlatform {
  Os: String!
  Arch: String!
  Accelerator: String
}

input AwsSageMakerDescribeCompilationJobInput {
  CompilationJobName: String!
}

type AwsSageMakerDescribeContextOutput {
  ContextName: String
  ContextArn: String
  Source: AwsSageMakerS5u
  ContextType: String
  Description: String
  Properties: JSON
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
}

type AwsSageMakerS5u {
  SourceUri: String!
  SourceType: String
  SourceId: String
}

input AwsSageMakerDescribeContextInput {
  ContextName: String!
}

type AwsSageMakerDescribeDataQualityJobDefinitionOutput {
  JobDefinitionArn: String!
  JobDefinitionName: String!
  CreationTime: Date!
  DataQualityBaselineConfig: AwsSageMakerS5z
  DataQualityAppSpecification: AwsSageMakerS63!
  DataQualityJobInput: AwsSageMakerS6c!
  DataQualityJobOutputConfig: AwsSageMakerS6k!
  JobResources: AwsSageMakerS6q!
  NetworkConfig: AwsSageMakerS6v
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6w
}

type AwsSageMakerS5z {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61
  StatisticsResource: AwsSageMakerS62
}

type AwsSageMakerS61 {
  S3Uri: String
}

type AwsSageMakerS62 {
  S3Uri: String
}

type AwsSageMakerS63 {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
  Environment: JSON
}

type AwsSageMakerS6c {
  EndpointInput: AwsSageMakerS6d!
}

type AwsSageMakerS6d {
  EndpointName: String!
  LocalPath: String!
  S3InputMode: String
  S3DataDistributionType: String
  FeaturesAttribute: String
  InferenceAttribute: String
  ProbabilityAttribute: String
  ProbabilityThresholdAttribute: JSON
  StartTimeOffset: String
  EndTimeOffset: String
}

type AwsSageMakerS6k {
  MonitoringOutputs: [AwsSageMakerS6kMonitoringOutputs]!
  KmsKeyId: String
}

type AwsSageMakerS6kMonitoringOutputs {
  S3Output: AwsSageMakerS6kMonitoringOutputsS3Output!
}

type AwsSageMakerS6kMonitoringOutputsS3Output {
  S3Uri: String!
  LocalPath: String!
  S3UploadMode: String
}

type AwsSageMakerS6q {
  ClusterConfig: AwsSageMakerS6qClusterConfig!
}

type AwsSageMakerS6qClusterConfig {
  InstanceCount: Int!
  InstanceType: String!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

type AwsSageMakerS6v {
  EnableInterContainerTrafficEncryption: Boolean
  EnableNetworkIsolation: Boolean
  VpcConfig: AwsSageMakerS4x
}

type AwsSageMakerS6w {
  MaxRuntimeInSeconds: Int!
}

input AwsSageMakerDescribeDataQualityJobDefinitionInput {
  JobDefinitionName: String!
}

type AwsSageMakerDescribeDeviceOutput {
  DeviceArn: String
  DeviceName: String!
  Description: String
  DeviceFleetName: String!
  IotThingName: String
  RegistrationTime: Date!
  LatestHeartbeat: Date
  Models: [AwsSageMakerDescribeDeviceOutputModels]
  MaxModels: Int
  NextToken: String
}

type AwsSageMakerDescribeDeviceOutputModels {
  ModelName: String!
  ModelVersion: String!
  LatestSampleTime: Date
  LatestInference: Date
}

input AwsSageMakerDescribeDeviceInput {
  NextToken: String
  DeviceName: String!
  DeviceFleetName: String!
}

type AwsSageMakerDescribeDeviceFleetOutput {
  DeviceFleetName: String!
  DeviceFleetArn: String!
  OutputConfig: AwsSageMakerS72!
  Description: String
  CreationTime: Date!
  LastModifiedTime: Date!
  RoleArn: String
  IotRoleAlias: String
}

type AwsSageMakerS72 {
  S3OutputLocation: String!
  KmsKeyId: String
  PresetDeploymentType: String
  PresetDeploymentConfig: String
}

input AwsSageMakerDescribeDeviceFleetInput {
  DeviceFleetName: String!
}

type AwsSageMakerDescribeDomainOutput {
  DomainArn: String
  DomainId: String
  DomainName: String
  HomeEfsFileSystemId: String
  SingleSignOnManagedApplicationInstanceId: String
  Status: String
  CreationTime: Date
  LastModifiedTime: Date
  FailureReason: String
  AuthMode: String
  DefaultUserSettings: AwsSageMakerS78
  AppNetworkAccessType: String
  HomeEfsFileSystemKmsKeyId: String
  SubnetIds: [String]
  Url: String
  VpcId: String
  KmsKeyId: String
}

type AwsSageMakerS78 {
  ExecutionRole: String
  SecurityGroups: [String]
  SharingSettings: AwsSageMakerS78SharingSettings
  JupyterServerAppSettings: AwsSageMakerS78JupyterServerAppSettings
  KernelGatewayAppSettings: AwsSageMakerS78KernelGatewayAppSettings
  TensorBoardAppSettings: AwsSageMakerS78TensorBoardAppSettings
}

type AwsSageMakerS78SharingSettings {
  NotebookOutputOption: String
  S3OutputPath: String
  S3KmsKeyId: String
}

type AwsSageMakerS78JupyterServerAppSettings {
  DefaultResourceSpec: AwsSageMakerS3p
}

type AwsSageMakerS78KernelGatewayAppSettings {
  DefaultResourceSpec: AwsSageMakerS3p
  CustomImages: [AwsSageMakerS78KernelGatewayAppSettingsCustomImages]
}

type AwsSageMakerS78KernelGatewayAppSettingsCustomImages {
  ImageName: String!
  ImageVersionNumber: Int
  AppImageConfigName: String!
}

type AwsSageMakerS78TensorBoardAppSettings {
  DefaultResourceSpec: AwsSageMakerS3p
}

input AwsSageMakerDescribeDomainInput {
  DomainId: String!
}

type AwsSageMakerDescribeEdgePackagingJobOutput {
  EdgePackagingJobArn: String!
  EdgePackagingJobName: String!
  CompilationJobName: String
  ModelName: String
  ModelVersion: String
  RoleArn: String
  OutputConfig: AwsSageMakerS72
  ResourceKey: String
  EdgePackagingJobStatus: String!
  EdgePackagingJobStatusMessage: String
  CreationTime: Date
  LastModifiedTime: Date
  ModelArtifact: String
  ModelSignature: String
  PresetDeploymentOutput: AwsSageMakerDescribeEdgePackagingJobOutputPresetDeploymentOutput
}

type AwsSageMakerDescribeEdgePackagingJobOutputPresetDeploymentOutput {
  Type: String!
  Artifact: String
  Status: String
  StatusMessage: String
}

input AwsSageMakerDescribeEdgePackagingJobInput {
  EdgePackagingJobName: String!
}

type AwsSageMakerDescribeEndpointOutput {
  EndpointName: String!
  EndpointArn: String!
  EndpointConfigName: String!
  ProductionVariants: [AwsSageMakerSmk]
  DataCaptureConfig: AwsSageMakerSmo
  EndpointStatus: String!
  FailureReason: String
  CreationTime: Date!
  LastModifiedTime: Date!
  LastDeploymentConfig: AwsSageMakerSmr
}

type AwsSageMakerSmk {
  VariantName: String!
  DeployedImages: [AwsSageMakerSmkDeployedImages]
  CurrentWeight: Float
  DesiredWeight: Float
  CurrentInstanceCount: Int
  DesiredInstanceCount: Int
}

type AwsSageMakerSmkDeployedImages {
  SpecifiedImage: String
  ResolvedImage: String
  ResolutionTime: Date
}

type AwsSageMakerSmo {
  EnableCapture: Boolean!
  CaptureStatus: String!
  CurrentSamplingPercentage: Int!
  DestinationS3Uri: String!
  KmsKeyId: String!
}

type AwsSageMakerSmr {
  BlueGreenUpdatePolicy: AwsSageMakerSmrBlueGreenUpdatePolicy!
  AutoRollbackConfiguration: AwsSageMakerSmrAutoRollbackConfiguration
}

type AwsSageMakerSmrBlueGreenUpdatePolicy {
  TrafficRoutingConfiguration: AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfiguration!
  TerminationWaitInSeconds: Int
  MaximumExecutionTimeoutInSeconds: Int
}

type AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfiguration {
  Type: String!
  WaitIntervalInSeconds: Int!
  CanarySize: AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySize
}

type AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySize {
  Type: String!
  Value: Int!
}

type AwsSageMakerSmrAutoRollbackConfiguration {
  Alarms: [AwsSageMakerSmrAutoRollbackConfigurationAlarms]
}

type AwsSageMakerSmrAutoRollbackConfigurationAlarms {
  AlarmName: String
}

input AwsSageMakerDescribeEndpointInput {
  EndpointName: String!
}

type AwsSageMakerDescribeEndpointConfigOutput {
  EndpointConfigName: String!
  EndpointConfigArn: String!
  ProductionVariants: [AwsSageMakerS7v]!
  DataCaptureConfig: AwsSageMakerS84
  KmsKeyId: String
  CreationTime: Date!
}

type AwsSageMakerS7v {
  VariantName: String!
  ModelName: String!
  InitialInstanceCount: Int!
  InstanceType: String!
  InitialVariantWeight: Float
  AcceleratorType: String
  CoreDumpConfig: AwsSageMakerS7vCoreDumpConfig
}

type AwsSageMakerS7vCoreDumpConfig {
  DestinationS3Uri: String!
  KmsKeyId: String
}

type AwsSageMakerS84 {
  EnableCapture: Boolean
  InitialSamplingPercentage: Int!
  DestinationS3Uri: String!
  KmsKeyId: String
  CaptureOptions: [AwsSageMakerS84CaptureOptions]!
  CaptureContentTypeHeader: AwsSageMakerS84CaptureContentTypeHeader
}

type AwsSageMakerS84CaptureOptions {
  CaptureMode: String!
}

type AwsSageMakerS84CaptureContentTypeHeader {
  CsvContentTypes: [String]
  JsonContentTypes: [String]
}

input AwsSageMakerDescribeEndpointConfigInput {
  EndpointConfigName: String!
}

type AwsSageMakerDescribeExperimentOutput {
  ExperimentName: String
  ExperimentArn: String
  DisplayName: String
  Source: AwsSageMakerSn9
  Description: String
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
}

type AwsSageMakerSn9 {
  SourceArn: String!
  SourceType: String
}

input AwsSageMakerDescribeExperimentInput {
  ExperimentName: String!
}

type AwsSageMakerDescribeFeatureGroupOutput {
  FeatureGroupArn: String!
  FeatureGroupName: String!
  RecordIdentifierFeatureName: String!
  EventTimeFeatureName: String!
  FeatureDefinitions: [AwsSageMakerS8n]!
  CreationTime: Date!
  OnlineStoreConfig: AwsSageMakerS8q
  OfflineStoreConfig: AwsSageMakerS8s
  RoleArn: String
  FeatureGroupStatus: String
  OfflineStoreStatus: AwsSageMakerSnf
  FailureReason: String
  Description: String
  NextToken: String!
}

type AwsSageMakerS8n {
  FeatureName: String
  FeatureType: String
}

type AwsSageMakerS8q {
  SecurityConfig: AwsSageMakerS8qSecurityConfig
  EnableOnlineStore: Boolean
}

type AwsSageMakerS8qSecurityConfig {
  KmsKeyId: String
}

type AwsSageMakerS8s {
  S3StorageConfig: AwsSageMakerS8sS3StorageConfig!
  DisableGlueTableCreation: Boolean
  DataCatalogConfig: AwsSageMakerS8sDataCatalogConfig
}

type AwsSageMakerS8sS3StorageConfig {
  S3Uri: String!
  KmsKeyId: String
  ResolvedOutputS3Uri: String
}

type AwsSageMakerS8sDataCatalogConfig {
  TableName: String!
  Catalog: String!
  Database: String!
}

type AwsSageMakerSnf {
  Status: String!
  BlockedReason: String
}

input AwsSageMakerDescribeFeatureGroupInput {
  FeatureGroupName: String!
  NextToken: String
}

type AwsSageMakerDescribeFlowDefinitionOutput {
  FlowDefinitionArn: String!
  FlowDefinitionName: String!
  FlowDefinitionStatus: String!
  CreationTime: Date!
  HumanLoopRequestSource: AwsSageMakerS93
  HumanLoopActivationConfig: AwsSageMakerS95
  HumanLoopConfig: AwsSageMakerS98!
  OutputConfig: AwsSageMakerS9n!
  RoleArn: String!
  FailureReason: String
}

type AwsSageMakerS93 {
  AwsManagedHumanLoopRequestSource: String!
}

type AwsSageMakerS95 {
  HumanLoopActivationConditionsConfig: AwsSageMakerS95HumanLoopActivationConditionsConfig!
}

type AwsSageMakerS95HumanLoopActivationConditionsConfig {
  HumanLoopActivationConditions: String!
}

type AwsSageMakerS98 {
  WorkteamArn: String!
  HumanTaskUiArn: String!
  TaskTitle: String!
  TaskDescription: String!
  TaskCount: Int!
  TaskAvailabilityLifetimeInSeconds: Int
  TaskTimeLimitInSeconds: Int
  TaskKeywords: [String]
  PublicWorkforceTaskPrice: AwsSageMakerS9i
}

type AwsSageMakerS9i {
  AmountInUsd: AwsSageMakerS9iAmountInUsd
}

type AwsSageMakerS9iAmountInUsd {
  Dollars: Int
  Cents: Int
  TenthFractionsOfACent: Int
}

type AwsSageMakerS9n {
  S3OutputPath: String!
  KmsKeyId: String
}

input AwsSageMakerDescribeFlowDefinitionInput {
  FlowDefinitionName: String!
}

type AwsSageMakerDescribeHumanTaskUiOutput {
  HumanTaskUiArn: String!
  HumanTaskUiName: String!
  HumanTaskUiStatus: String
  CreationTime: Date!
  UiTemplate: AwsSageMakerDescribeHumanTaskUiOutputUiTemplate!
}

type AwsSageMakerDescribeHumanTaskUiOutputUiTemplate {
  Url: String
  ContentSha256: String
}

input AwsSageMakerDescribeHumanTaskUiInput {
  HumanTaskUiName: String!
}

type AwsSageMakerDescribeHyperParameterTuningJobOutput {
  HyperParameterTuningJobName: String!
  HyperParameterTuningJobArn: String!
  HyperParameterTuningJobConfig: AwsSageMakerS9x!
  TrainingJobDefinition: AwsSageMakerSae
  TrainingJobDefinitions: [AwsSageMakerSae]
  HyperParameterTuningJobStatus: String!
  CreationTime: Date!
  HyperParameterTuningEndTime: Date
  LastModifiedTime: Date
  TrainingJobStatusCounters: AwsSageMakerSnu!
  ObjectiveStatusCounters: AwsSageMakerSnw!
  BestTrainingJob: AwsSageMakerSny
  OverallBestTrainingJob: AwsSageMakerSny
  WarmStartConfig: AwsSageMakerSan
  FailureReason: String
}

type AwsSageMakerS9x {
  Strategy: String!
  HyperParameterTuningJobObjective: AwsSageMakerS1r
  ResourceLimits: AwsSageMakerS9z!
  ParameterRanges: AwsSageMakerSa2
  TrainingJobEarlyStoppingType: String
  TuningJobCompletionCriteria: AwsSageMakerS9xTuningJobCompletionCriteria
}

type AwsSageMakerS9z {
  MaxNumberOfTrainingJobs: Int!
  MaxParallelTrainingJobs: Int!
}

type AwsSageMakerSa2 {
  IntegerParameterRanges: [AwsSageMakerSa2IntegerParameterRanges]
  ContinuousParameterRanges: [AwsSageMakerSa2ContinuousParameterRanges]
  CategoricalParameterRanges: [AwsSageMakerSa2CategoricalParameterRanges]
}

type AwsSageMakerSa2IntegerParameterRanges {
  Name: String!
  MinValue: String!
  MaxValue: String!
  ScalingType: String
}

type AwsSageMakerSa2ContinuousParameterRanges {
  Name: String!
  MinValue: String!
  MaxValue: String!
  ScalingType: String
}

type AwsSageMakerSa2CategoricalParameterRanges {
  Name: String!
  Values: [String]!
}

type AwsSageMakerS9xTuningJobCompletionCriteria {
  TargetObjectiveMetricValue: Float!
}

type AwsSageMakerSae {
  DefinitionName: String
  TuningObjective: AwsSageMakerS1r
  HyperParameterRanges: AwsSageMakerSa2
  StaticHyperParameters: JSON
  AlgorithmSpecification: AwsSageMakerSaeAlgorithmSpecification!
  RoleArn: String!
  InputDataConfig: [AwsSageMakerS2c]
  VpcConfig: AwsSageMakerS4x
  OutputDataConfig: AwsSageMakerS2t!
  ResourceConfig: AwsSageMakerS2v!
  StoppingCondition: AwsSageMakerS2y!
  EnableNetworkIsolation: Boolean
  EnableInterContainerTrafficEncryption: Boolean
  EnableManagedSpotTraining: Boolean
  CheckpointConfig: AwsSageMakerSaj
  RetryStrategy: AwsSageMakerSak
}

type AwsSageMakerSaeAlgorithmSpecification {
  TrainingImage: String
  TrainingInputMode: String!
  AlgorithmName: String
  MetricDefinitions: [AwsSageMakerS1d]
}

type AwsSageMakerSaj {
  S3Uri: String!
  LocalPath: String
}

type AwsSageMakerSak {
  MaximumRetryAttempts: Int!
}

type AwsSageMakerSnu {
  Completed: Int
  InProgress: Int
  RetryableError: Int
  NonRetryableError: Int
  Stopped: Int
}

type AwsSageMakerSnw {
  Succeeded: Int
  Pending: Int
  Failed: Int
}

type AwsSageMakerSny {
  TrainingJobDefinitionName: String
  TrainingJobName: String!
  TrainingJobArn: String!
  TuningJobName: String
  CreationTime: Date!
  TrainingStartTime: Date
  TrainingEndTime: Date
  TrainingJobStatus: String!
  TunedHyperParameters: JSON!
  FailureReason: String
  FinalHyperParameterTuningJobObjectiveMetric: AwsSageMakerSnyFinalHyperParameterTuningJobObjectiveMetric
  ObjectiveStatus: String
}

type AwsSageMakerSnyFinalHyperParameterTuningJobObjectiveMetric {
  Type: String
  MetricName: String!
  Value: Float!
}

type AwsSageMakerSan {
  ParentHyperParameterTuningJobs: [AwsSageMakerSanParentHyperParameterTuningJobs]!
  WarmStartType: String!
}

type AwsSageMakerSanParentHyperParameterTuningJobs {
  HyperParameterTuningJobName: String
}

input AwsSageMakerDescribeHyperParameterTuningJobInput {
  HyperParameterTuningJobName: String!
}

type AwsSageMakerDescribeImageOutput {
  CreationTime: Date
  Description: String
  DisplayName: String
  FailureReason: String
  ImageArn: String
  ImageName: String
  ImageStatus: String
  LastModifiedTime: Date
  RoleArn: String
}

input AwsSageMakerDescribeImageInput {
  ImageName: String!
}

type AwsSageMakerDescribeImageVersionOutput {
  BaseImage: String
  ContainerImage: String
  CreationTime: Date
  FailureReason: String
  ImageArn: String
  ImageVersionArn: String
  ImageVersionStatus: String
  LastModifiedTime: Date
  Version: Int
}

input AwsSageMakerDescribeImageVersionInput {
  ImageName: String!
  Version: Int
}

type AwsSageMakerDescribeLabelingJobOutput {
  LabelingJobStatus: String!
  LabelCounters: AwsSageMakerSob!
  FailureReason: String
  CreationTime: Date!
  LastModifiedTime: Date!
  JobReferenceCode: String!
  LabelingJobName: String!
  LabelingJobArn: String!
  LabelAttributeName: String
  InputConfig: AwsSageMakerSb4!
  OutputConfig: AwsSageMakerSbc!
  RoleArn: String!
  LabelCategoryConfigS3Uri: String
  StoppingConditions: AwsSageMakerSbd
  LabelingJobAlgorithmsConfig: AwsSageMakerSbg
  HumanTaskConfig: AwsSageMakerSbk!
  Tags: [AwsSageMakerS7]
  LabelingJobOutput: AwsSageMakerSoe
}

type AwsSageMakerSob {
  TotalLabeled: Int
  HumanLabeled: Int
  MachineLabeled: Int
  FailedNonRetryableError: Int
  Unlabeled: Int
}

type AwsSageMakerSb4 {
  DataSource: AwsSageMakerSb4DataSource!
  DataAttributes: AwsSageMakerSb4DataAttributes
}

type AwsSageMakerSb4DataSource {
  S3DataSource: AwsSageMakerSb4DataSourceS3DataSource
  SnsDataSource: AwsSageMakerSb4DataSourceSnsDataSource
}

type AwsSageMakerSb4DataSourceS3DataSource {
  ManifestS3Uri: String!
}

type AwsSageMakerSb4DataSourceSnsDataSource {
  SnsTopicArn: String!
}

type AwsSageMakerSb4DataAttributes {
  ContentClassifiers: [String]
}

type AwsSageMakerSbc {
  S3OutputPath: String!
  KmsKeyId: String
  SnsTopicArn: String
}

type AwsSageMakerSbd {
  MaxHumanLabeledObjectCount: Int
  MaxPercentageOfInputDatasetLabeled: Int
}

type AwsSageMakerSbg {
  LabelingJobAlgorithmSpecificationArn: String!
  InitialActiveLearningModelArn: String
  LabelingJobResourceConfig: AwsSageMakerSbgLabelingJobResourceConfig
}

type AwsSageMakerSbgLabelingJobResourceConfig {
  VolumeKmsKeyId: String
}

type AwsSageMakerSbk {
  WorkteamArn: String!
  UiConfig: AwsSageMakerSbkUiConfig!
  PreHumanTaskLambdaArn: String!
  TaskKeywords: [String]
  TaskTitle: String!
  TaskDescription: String!
  NumberOfHumanWorkersPerDataObject: Int!
  TaskTimeLimitInSeconds: Int!
  TaskAvailabilityLifetimeInSeconds: Int
  MaxConcurrentTaskCount: Int
  AnnotationConsolidationConfig: AwsSageMakerSbkAnnotationConsolidationConfig!
  PublicWorkforceTaskPrice: AwsSageMakerS9i
}

type AwsSageMakerSbkUiConfig {
  UiTemplateS3Uri: String
  HumanTaskUiArn: String
}

type AwsSageMakerSbkAnnotationConsolidationConfig {
  AnnotationConsolidationLambdaArn: String!
}

type AwsSageMakerSoe {
  OutputDatasetS3Uri: String!
  FinalActiveLearningModelArn: String
}

input AwsSageMakerDescribeLabelingJobInput {
  LabelingJobName: String!
}

type AwsSageMakerDescribeModelOutput {
  ModelName: String!
  PrimaryContainer: AwsSageMakerSbz
  Containers: [AwsSageMakerSbz]
  InferenceExecutionConfig: AwsSageMakerScc
  ExecutionRoleArn: String!
  VpcConfig: AwsSageMakerS4x
  CreationTime: Date!
  ModelArn: String!
  EnableNetworkIsolation: Boolean
}

type AwsSageMakerSbz {
  ContainerHostname: String
  Image: String
  ImageConfig: AwsSageMakerSbzImageConfig
  Mode: String
  ModelDataUrl: String
  Environment: JSON
  ModelPackageName: String
  MultiModelConfig: AwsSageMakerSbzMultiModelConfig
}

type AwsSageMakerSbzImageConfig {
  RepositoryAccessMode: String!
  RepositoryAuthConfig: AwsSageMakerSbzImageConfigRepositoryAuthConfig
}

type AwsSageMakerSbzImageConfigRepositoryAuthConfig {
  RepositoryCredentialsProviderArn: String!
}

type AwsSageMakerSbzMultiModelConfig {
  ModelCacheSetting: String
}

type AwsSageMakerScc {
  Mode: String!
}

input AwsSageMakerDescribeModelInput {
  ModelName: String!
}

type AwsSageMakerDescribeModelBiasJobDefinitionOutput {
  JobDefinitionArn: String!
  JobDefinitionName: String!
  CreationTime: Date!
  ModelBiasBaselineConfig: AwsSageMakerScg
  ModelBiasAppSpecification: AwsSageMakerSch!
  ModelBiasJobInput: AwsSageMakerSci!
  ModelBiasJobOutputConfig: AwsSageMakerS6k!
  JobResources: AwsSageMakerS6q!
  NetworkConfig: AwsSageMakerS6v
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6w
}

type AwsSageMakerScg {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61
}

type AwsSageMakerSch {
  ImageUri: String!
  ConfigUri: String!
  Environment: JSON
}

type AwsSageMakerSci {
  EndpointInput: AwsSageMakerS6d!
  GroundTruthS3Input: AwsSageMakerScj!
}

type AwsSageMakerScj {
  S3Uri: String
}

input AwsSageMakerDescribeModelBiasJobDefinitionInput {
  JobDefinitionName: String!
}

type AwsSageMakerDescribeModelExplainabilityJobDefinitionOutput {
  JobDefinitionArn: String!
  JobDefinitionName: String!
  CreationTime: Date!
  ModelExplainabilityBaselineConfig: AwsSageMakerScm
  ModelExplainabilityAppSpecification: AwsSageMakerScn!
  ModelExplainabilityJobInput: AwsSageMakerSco!
  ModelExplainabilityJobOutputConfig: AwsSageMakerS6k!
  JobResources: AwsSageMakerS6q!
  NetworkConfig: AwsSageMakerS6v
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6w
}

type AwsSageMakerScm {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61
}

type AwsSageMakerScn {
  ImageUri: String!
  ConfigUri: String!
  Environment: JSON
}

type AwsSageMakerSco {
  EndpointInput: AwsSageMakerS6d!
}

input AwsSageMakerDescribeModelExplainabilityJobDefinitionInput {
  JobDefinitionName: String!
}

type AwsSageMakerDescribeModelPackageOutput {
  ModelPackageName: String!
  ModelPackageGroupName: String
  ModelPackageVersion: Int
  ModelPackageArn: String!
  ModelPackageDescription: String
  CreationTime: Date!
  InferenceSpecification: AwsSageMakerS1t
  SourceAlgorithmSpecification: AwsSageMakerScu
  ValidationSpecification: AwsSageMakerScr
  ModelPackageStatus: String!
  ModelPackageStatusDetails: AwsSageMakerSop!
  CertifyForMarketplace: Boolean
  ModelApprovalStatus: String
  CreatedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
  ModelMetrics: AwsSageMakerScy
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  ApprovalDescription: String
}

type AwsSageMakerScu {
  SourceAlgorithms: [AwsSageMakerScuSourceAlgorithms]!
}

type AwsSageMakerScuSourceAlgorithms {
  ModelDataUrl: String
  AlgorithmName: String!
}

type AwsSageMakerScr {
  ValidationRole: String!
  ValidationProfiles: [AwsSageMakerScrValidationProfiles]!
}

type AwsSageMakerScrValidationProfiles {
  ProfileName: String!
  TransformJobDefinition: AwsSageMakerS31!
}

type AwsSageMakerSop {
  ValidationStatuses: [AwsSageMakerSoq]!
  ImageScanStatuses: [AwsSageMakerSoq]
}

type AwsSageMakerSoq {
  Name: String!
  Status: String!
  FailureReason: String
}

type AwsSageMakerScy {
  ModelQuality: AwsSageMakerScyModelQuality
  ModelDataQuality: AwsSageMakerScyModelDataQuality
  Bias: AwsSageMakerScyBias
  Explainability: AwsSageMakerScyExplainability
}

type AwsSageMakerScyModelQuality {
  Statistics: AwsSageMakerSd0
  Constraints: AwsSageMakerSd0
}

type AwsSageMakerSd0 {
  ContentType: String!
  ContentDigest: String
  S3Uri: String!
}

type AwsSageMakerScyModelDataQuality {
  Statistics: AwsSageMakerSd0
  Constraints: AwsSageMakerSd0
}

type AwsSageMakerScyBias {
  Report: AwsSageMakerSd0
}

type AwsSageMakerScyExplainability {
  Report: AwsSageMakerSd0
}

input AwsSageMakerDescribeModelPackageInput {
  ModelPackageName: String!
}

type AwsSageMakerDescribeModelPackageGroupOutput {
  ModelPackageGroupName: String!
  ModelPackageGroupArn: String!
  ModelPackageGroupDescription: String
  CreationTime: Date!
  CreatedBy: AwsSageMakerSk7!
  ModelPackageGroupStatus: String!
}

input AwsSageMakerDescribeModelPackageGroupInput {
  ModelPackageGroupName: String!
}

type AwsSageMakerDescribeModelQualityJobDefinitionOutput {
  JobDefinitionArn: String!
  JobDefinitionName: String!
  CreationTime: Date!
  ModelQualityBaselineConfig: AwsSageMakerSdb
  ModelQualityAppSpecification: AwsSageMakerSdc!
  ModelQualityJobInput: AwsSageMakerSde!
  ModelQualityJobOutputConfig: AwsSageMakerS6k!
  JobResources: AwsSageMakerS6q!
  NetworkConfig: AwsSageMakerS6v
  RoleArn: String!
  StoppingCondition: AwsSageMakerS6w
}

type AwsSageMakerSdb {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61
}

type AwsSageMakerSdc {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
  ProblemType: String
  Environment: JSON
}

type AwsSageMakerSde {
  EndpointInput: AwsSageMakerS6d!
  GroundTruthS3Input: AwsSageMakerScj!
}

input AwsSageMakerDescribeModelQualityJobDefinitionInput {
  JobDefinitionName: String!
}

type AwsSageMakerDescribeMonitoringScheduleOutput {
  MonitoringScheduleArn: String!
  MonitoringScheduleName: String!
  MonitoringScheduleStatus: String!
  MonitoringType: String
  FailureReason: String
  CreationTime: Date!
  LastModifiedTime: Date!
  MonitoringScheduleConfig: AwsSageMakerSdi!
  EndpointName: String
  LastMonitoringExecutionSummary: AwsSageMakerSp2
}

type AwsSageMakerSdi {
  ScheduleConfig: AwsSageMakerSdiScheduleConfig
  MonitoringJobDefinition: AwsSageMakerSdiMonitoringJobDefinition
  MonitoringJobDefinitionName: String
  MonitoringType: String
}

type AwsSageMakerSdiScheduleConfig {
  ScheduleExpression: String!
}

type AwsSageMakerSdiMonitoringJobDefinition {
  BaselineConfig: AwsSageMakerSdiMonitoringJobDefinitionBaselineConfig
  MonitoringInputs: [AwsSageMakerSdiMonitoringJobDefinitionMonitoringInputs]!
  MonitoringOutputConfig: AwsSageMakerS6k!
  MonitoringResources: AwsSageMakerS6q!
  MonitoringAppSpecification: AwsSageMakerSdiMonitoringJobDefinitionMonitoringAppSpecification!
  StoppingCondition: AwsSageMakerS6w
  Environment: JSON
  NetworkConfig: AwsSageMakerSdq
  RoleArn: String!
}

type AwsSageMakerSdiMonitoringJobDefinitionBaselineConfig {
  BaseliningJobName: String
  ConstraintsResource: AwsSageMakerS61
  StatisticsResource: AwsSageMakerS62
}

type AwsSageMakerSdiMonitoringJobDefinitionMonitoringInputs {
  EndpointInput: AwsSageMakerS6d!
}

type AwsSageMakerSdiMonitoringJobDefinitionMonitoringAppSpecification {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
  RecordPreprocessorSourceUri: String
  PostAnalyticsProcessorSourceUri: String
}

type AwsSageMakerSdq {
  EnableInterContainerTrafficEncryption: Boolean
  EnableNetworkIsolation: Boolean
  VpcConfig: AwsSageMakerS4x
}

type AwsSageMakerSp2 {
  MonitoringScheduleName: String!
  ScheduledTime: Date!
  CreationTime: Date!
  LastModifiedTime: Date!
  MonitoringExecutionStatus: String!
  ProcessingJobArn: String
  EndpointName: String
  FailureReason: String
  MonitoringJobDefinitionName: String
  MonitoringType: String
}

input AwsSageMakerDescribeMonitoringScheduleInput {
  MonitoringScheduleName: String!
}

type AwsSageMakerDescribeNotebookInstanceOutput {
  NotebookInstanceArn: String
  NotebookInstanceName: String
  NotebookInstanceStatus: String
  FailureReason: String
  Url: String
  InstanceType: String
  SubnetId: String
  SecurityGroups: [String]
  RoleArn: String
  KmsKeyId: String
  NetworkInterfaceId: String
  LastModifiedTime: Date
  CreationTime: Date
  NotebookInstanceLifecycleConfigName: String
  DirectInternetAccess: String
  VolumeSizeInGB: Int
  AcceleratorTypes: [String]
  DefaultCodeRepository: String
  AdditionalCodeRepositories: [String]
  RootAccess: String
}

input AwsSageMakerDescribeNotebookInstanceInput {
  NotebookInstanceName: String!
}

type AwsSageMakerDescribeNotebookInstanceLifecycleConfigOutput {
  NotebookInstanceLifecycleConfigArn: String
  NotebookInstanceLifecycleConfigName: String
  OnCreate: [AwsSageMakerSe8]
  OnStart: [AwsSageMakerSe8]
  LastModifiedTime: Date
  CreationTime: Date
}

type AwsSageMakerSe8 {
  Content: String
}

input AwsSageMakerDescribeNotebookInstanceLifecycleConfigInput {
  NotebookInstanceLifecycleConfigName: String!
}

type AwsSageMakerDescribePipelineOutput {
  PipelineArn: String
  PipelineName: String
  PipelineDisplayName: String
  PipelineDefinition: String
  PipelineDescription: String
  RoleArn: String
  PipelineStatus: String
  CreationTime: Date
  LastModifiedTime: Date
  LastRunTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedBy: AwsSageMakerSk7
}

input AwsSageMakerDescribePipelineInput {
  PipelineName: String!
}

type AwsSageMakerDescribePipelineDefinitionForExecutionOutput {
  PipelineDefinition: String
  CreationTime: Date
}

input AwsSageMakerDescribePipelineDefinitionForExecutionInput {
  PipelineExecutionArn: String!
}

type AwsSageMakerDescribePipelineExecutionOutput {
  PipelineArn: String
  PipelineExecutionArn: String
  PipelineExecutionDisplayName: String
  PipelineExecutionStatus: String
  PipelineExecutionDescription: String
  PipelineExperimentConfig: AwsSageMakerSpl
  FailureReason: String
  CreationTime: Date
  LastModifiedTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedBy: AwsSageMakerSk7
}

type AwsSageMakerSpl {
  ExperimentName: String
  TrialName: String
}

input AwsSageMakerDescribePipelineExecutionInput {
  PipelineExecutionArn: String!
}

type AwsSageMakerDescribeProcessingJobOutput {
  ProcessingInputs: [AwsSageMakerSet]
  ProcessingOutputConfig: AwsSageMakerSfg
  ProcessingJobName: String!
  ProcessingResources: AwsSageMakerSfl!
  StoppingCondition: AwsSageMakerSfn
  AppSpecification: AwsSageMakerSfp!
  Environment: JSON
  NetworkConfig: AwsSageMakerSdq
  RoleArn: String
  ExperimentConfig: AwsSageMakerSfs
  ProcessingJobArn: String!
  ProcessingJobStatus: String!
  ExitMessage: String
  FailureReason: String
  ProcessingEndTime: Date
  ProcessingStartTime: Date
  LastModifiedTime: Date
  CreationTime: Date!
  MonitoringScheduleArn: String
  AutoMLJobArn: String
  TrainingJobArn: String
}

type AwsSageMakerSet {
  InputName: String!
  AppManaged: Boolean
  S3Input: AwsSageMakerSetS3Input
  DatasetDefinition: AwsSageMakerSetDatasetDefinition
}

type AwsSageMakerSetS3Input {
  S3Uri: String!
  LocalPath: String
  S3DataType: String!
  S3InputMode: String
  S3DataDistributionType: String
  S3CompressionType: String
}

type AwsSageMakerSetDatasetDefinition {
  AthenaDatasetDefinition: AwsSageMakerSetDatasetDefinitionAthenaDatasetDefinition
  RedshiftDatasetDefinition: AwsSageMakerSetDatasetDefinitionRedshiftDatasetDefinition
  LocalPath: String
  DataDistributionType: String
  InputMode: String
}

type AwsSageMakerSetDatasetDefinitionAthenaDatasetDefinition {
  Catalog: String!
  Database: String!
  QueryString: String!
  WorkGroup: String
  OutputS3Uri: String!
  KmsKeyId: String
  OutputFormat: String!
  OutputCompression: String
}

type AwsSageMakerSetDatasetDefinitionRedshiftDatasetDefinition {
  ClusterId: String!
  Database: String!
  DbUser: String!
  QueryString: String!
  ClusterRoleArn: String!
  OutputS3Uri: String!
  KmsKeyId: String
  OutputFormat: String!
  OutputCompression: String
}

type AwsSageMakerSfg {
  Outputs: [AwsSageMakerSfgOutputs]!
  KmsKeyId: String
}

type AwsSageMakerSfgOutputs {
  OutputName: String!
  S3Output: AwsSageMakerSfgOutputsS3Output
  FeatureStoreOutput: AwsSageMakerSfgOutputsFeatureStoreOutput
  AppManaged: Boolean
}

type AwsSageMakerSfgOutputsS3Output {
  S3Uri: String!
  LocalPath: String!
  S3UploadMode: String!
}

type AwsSageMakerSfgOutputsFeatureStoreOutput {
  FeatureGroupName: String!
}

type AwsSageMakerSfl {
  ClusterConfig: AwsSageMakerSflClusterConfig!
}

type AwsSageMakerSflClusterConfig {
  InstanceCount: Int!
  InstanceType: String!
  VolumeSizeInGB: Int!
  VolumeKmsKeyId: String
}

type AwsSageMakerSfn {
  MaxRuntimeInSeconds: Int!
}

type AwsSageMakerSfp {
  ImageUri: String!
  ContainerEntrypoint: [String]
  ContainerArguments: [String]
}

type AwsSageMakerSfs {
  ExperimentName: String
  TrialName: String
  TrialComponentDisplayName: String
}

input AwsSageMakerDescribeProcessingJobInput {
  ProcessingJobName: String!
}

type AwsSageMakerDescribeProjectOutput {
  ProjectArn: String!
  ProjectName: String!
  ProjectId: String!
  ProjectDescription: String
  ServiceCatalogProvisioningDetails: AwsSageMakerSfx!
  ServiceCatalogProvisionedProductDetails: AwsSageMakerDescribeProjectOutputServiceCatalogProvisionedProductDetails
  ProjectStatus: String!
  CreatedBy: AwsSageMakerSk7
  CreationTime: Date!
}

type AwsSageMakerSfx {
  ProductId: String!
  ProvisioningArtifactId: String!
  PathId: String
  ProvisioningParameters: [AwsSageMakerSfxProvisioningParameters]
}

type AwsSageMakerSfxProvisioningParameters {
  Key: String
  Value: String
}

type AwsSageMakerDescribeProjectOutputServiceCatalogProvisionedProductDetails {
  ProvisionedProductId: String
  ProvisionedProductStatusMessage: String
}

input AwsSageMakerDescribeProjectInput {
  ProjectName: String!
}

type AwsSageMakerDescribeSubscribedWorkteamOutput {
  SubscribedWorkteam: AwsSageMakerSpy!
}

type AwsSageMakerSpy {
  WorkteamArn: String!
  MarketplaceTitle: String
  SellerName: String
  MarketplaceDescription: String
  ListingId: String
}

input AwsSageMakerDescribeSubscribedWorkteamInput {
  WorkteamArn: String!
}

type AwsSageMakerDescribeTrainingJobOutput {
  TrainingJobName: String!
  TrainingJobArn: String!
  TuningJobArn: String
  LabelingJobArn: String
  AutoMLJobArn: String
  ModelArtifacts: AwsSageMakerSln!
  TrainingJobStatus: String!
  SecondaryStatus: String!
  FailureReason: String
  HyperParameters: JSON
  AlgorithmSpecification: AwsSageMakerSg8!
  RoleArn: String
  InputDataConfig: [AwsSageMakerS2c]
  OutputDataConfig: AwsSageMakerS2t
  ResourceConfig: AwsSageMakerS2v!
  VpcConfig: AwsSageMakerS4x
  StoppingCondition: AwsSageMakerS2y!
  CreationTime: Date!
  TrainingStartTime: Date
  TrainingEndTime: Date
  LastModifiedTime: Date
  SecondaryStatusTransitions: [AwsSageMakerSq2]
  FinalMetricDataList: [AwsSageMakerSq5]
  EnableNetworkIsolation: Boolean
  EnableInterContainerTrafficEncryption: Boolean
  EnableManagedSpotTraining: Boolean
  CheckpointConfig: AwsSageMakerSaj
  TrainingTimeInSeconds: Int
  BillableTimeInSeconds: Int
  DebugHookConfig: AwsSageMakerSg9
  ExperimentConfig: AwsSageMakerSfs
  DebugRuleConfigurations: [AwsSageMakerSgh]
  TensorBoardOutputConfig: AwsSageMakerSgm
  DebugRuleEvaluationStatuses: [AwsSageMakerSqa]
  ProfilerConfig: AwsSageMakerSgn
  ProfilerRuleConfigurations: [AwsSageMakerSgq]
  ProfilerRuleEvaluationStatuses: [AwsSageMakerDescribeTrainingJobOutputProfilerRuleEvaluationStatuses]
  ProfilingStatus: String
  RetryStrategy: AwsSageMakerSak
  Environment: JSON
}

type AwsSageMakerSg8 {
  TrainingImage: String
  AlgorithmName: String
  TrainingInputMode: String!
  MetricDefinitions: [AwsSageMakerS1d]
  EnableSageMakerMetricsTimeSeries: Boolean
}

type AwsSageMakerSq2 {
  Status: String!
  StartTime: Date!
  EndTime: Date
  StatusMessage: String
}

type AwsSageMakerSq5 {
  MetricName: String
  Value: Float
  Timestamp: Date
}

type AwsSageMakerSg9 {
  LocalPath: String
  S3OutputPath: String!
  HookParameters: JSON
  CollectionConfigurations: [AwsSageMakerSg9CollectionConfigurations]
}

type AwsSageMakerSg9CollectionConfigurations {
  CollectionName: String
  CollectionParameters: JSON
}

type AwsSageMakerSgh {
  RuleConfigurationName: String!
  LocalPath: String
  S3OutputPath: String
  RuleEvaluatorImage: String!
  InstanceType: String
  VolumeSizeInGB: Int
  RuleParameters: JSON
}

type AwsSageMakerSgm {
  LocalPath: String
  S3OutputPath: String!
}

type AwsSageMakerSqa {
  RuleConfigurationName: String
  RuleEvaluationJobArn: String
  RuleEvaluationStatus: String
  StatusDetails: String
  LastModifiedTime: Date
}

type AwsSageMakerSgn {
  S3OutputPath: String!
  ProfilingIntervalInMilliseconds: JSON
  ProfilingParameters: JSON
}

type AwsSageMakerSgq {
  RuleConfigurationName: String!
  LocalPath: String
  S3OutputPath: String
  RuleEvaluatorImage: String!
  InstanceType: String
  VolumeSizeInGB: Int
  RuleParameters: JSON
}

type AwsSageMakerDescribeTrainingJobOutputProfilerRuleEvaluationStatuses {
  RuleConfigurationName: String
  RuleEvaluationJobArn: String
  RuleEvaluationStatus: String
  StatusDetails: String
  LastModifiedTime: Date
}

input AwsSageMakerDescribeTrainingJobInput {
  TrainingJobName: String!
}

type AwsSageMakerDescribeTransformJobOutput {
  TransformJobName: String!
  TransformJobArn: String!
  TransformJobStatus: String!
  FailureReason: String
  ModelName: String!
  MaxConcurrentTransforms: Int
  ModelClientConfig: AwsSageMakerSgz
  MaxPayloadInMB: Int
  BatchStrategy: String
  Environment: JSON
  TransformInput: AwsSageMakerS38!
  TransformOutput: AwsSageMakerS3c
  TransformResources: AwsSageMakerS3f!
  CreationTime: Date!
  TransformStartTime: Date
  TransformEndTime: Date
  LabelingJobArn: String
  AutoMLJobArn: String
  DataProcessing: AwsSageMakerSh2
  ExperimentConfig: AwsSageMakerSfs
}

type AwsSageMakerSgz {
  InvocationsTimeoutInSeconds: Int
  InvocationsMaxRetries: Int
}

type AwsSageMakerSh2 {
  InputFilter: String
  OutputFilter: String
  JoinSource: String
}

input AwsSageMakerDescribeTransformJobInput {
  TransformJobName: String!
}

type AwsSageMakerDescribeTrialOutput {
  TrialName: String
  TrialArn: String
  DisplayName: String
  ExperimentName: String
  Source: AwsSageMakerSqm
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
}

type AwsSageMakerSqm {
  SourceArn: String!
  SourceType: String
}

input AwsSageMakerDescribeTrialInput {
  TrialName: String!
}

type AwsSageMakerDescribeTrialComponentOutput {
  TrialComponentName: String
  TrialComponentArn: String
  DisplayName: String
  Source: AwsSageMakerSqq
  Status: AwsSageMakerSha
  StartTime: Date
  EndTime: Date
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  Parameters: JSON
  InputArtifacts: JSON
  OutputArtifacts: JSON
  MetadataProperties: AwsSageMakerSp
  Metrics: [AwsSageMakerSqs]
}

type AwsSageMakerSqq {
  SourceArn: String!
  SourceType: String
}

type AwsSageMakerSha {
  PrimaryStatus: String
  Message: String
}

type AwsSageMakerSqs {
  MetricName: String
  SourceArn: String
  TimeStamp: Date
  Max: JSON
  Min: JSON
  Last: JSON
  Count: Int
  Avg: JSON
  StdDev: JSON
}

input AwsSageMakerDescribeTrialComponentInput {
  TrialComponentName: String!
}

type AwsSageMakerDescribeUserProfileOutput {
  DomainId: String
  UserProfileArn: String
  UserProfileName: String
  HomeEfsFileSystemUid: String
  Status: String
  LastModifiedTime: Date
  CreationTime: Date
  FailureReason: String
  SingleSignOnUserIdentifier: String
  SingleSignOnUserValue: String
  UserSettings: AwsSageMakerS78
}

input AwsSageMakerDescribeUserProfileInput {
  DomainId: String!
  UserProfileName: String!
}

type AwsSageMakerDescribeWorkforceOutput {
  Workforce: AwsSageMakerSr2!
}

type AwsSageMakerSr2 {
  WorkforceName: String!
  WorkforceArn: String!
  LastUpdatedDate: Date
  SourceIpConfig: AwsSageMakerShz
  SubDomain: String
  CognitoConfig: AwsSageMakerSht
  OidcConfig: AwsSageMakerSr2OidcConfig
  CreateDate: Date
}

type AwsSageMakerShz {
  Cidrs: [String]!
}

type AwsSageMakerSht {
  UserPool: String!
  ClientId: String!
}

type AwsSageMakerSr2OidcConfig {
  ClientId: String
  Issuer: String
  AuthorizationEndpoint: String
  TokenEndpoint: String
  UserInfoEndpoint: String
  LogoutEndpoint: String
  JwksUri: String
}

input AwsSageMakerDescribeWorkforceInput {
  WorkforceName: String!
}

type AwsSageMakerDescribeWorkteamOutput {
  Workteam: AwsSageMakerSr6!
}

type AwsSageMakerSr6 {
  WorkteamName: String!
  MemberDefinitions: [AwsSageMakerSi7]!
  WorkteamArn: String!
  WorkforceArn: String
  ProductListingIds: [String]
  Description: String!
  SubDomain: String
  CreateDate: Date
  LastUpdatedDate: Date
  NotificationConfiguration: AwsSageMakerSif
}

type AwsSageMakerSi7 {
  CognitoMemberDefinition: AwsSageMakerSi7CognitoMemberDefinition
  OidcMemberDefinition: AwsSageMakerSi7OidcMemberDefinition
}

type AwsSageMakerSi7CognitoMemberDefinition {
  UserPool: String!
  UserGroup: String!
  ClientId: String!
}

type AwsSageMakerSi7OidcMemberDefinition {
  Groups: [String]!
}

type AwsSageMakerSif {
  NotificationTopicArn: String
}

input AwsSageMakerDescribeWorkteamInput {
  WorkteamName: String!
}

type AwsSageMakerDisassociateTrialComponentOutput {
  TrialComponentArn: String
  TrialArn: String
}

input AwsSageMakerDisassociateTrialComponentInput {
  TrialComponentName: String!
  TrialName: String!
}

type AwsSageMakerGetDeviceFleetReportOutput {
  DeviceFleetArn: String!
  DeviceFleetName: String!
  OutputConfig: AwsSageMakerS72
  Description: String
  ReportGenerated: Date
  DeviceStats: AwsSageMakerGetDeviceFleetReportOutputDeviceStats
  AgentVersions: [AwsSageMakerGetDeviceFleetReportOutputAgentVersions]
  ModelStats: [AwsSageMakerGetDeviceFleetReportOutputModelStats]
}

type AwsSageMakerGetDeviceFleetReportOutputDeviceStats {
  ConnectedDeviceCount: JSON!
  RegisteredDeviceCount: JSON!
}

type AwsSageMakerGetDeviceFleetReportOutputAgentVersions {
  Version: String!
  AgentCount: JSON!
}

type AwsSageMakerGetDeviceFleetReportOutputModelStats {
  ModelName: String!
  ModelVersion: String!
  OfflineDeviceCount: JSON!
  ConnectedDeviceCount: JSON!
  ActiveDeviceCount: JSON!
  SamplingDeviceCount: JSON!
}

input AwsSageMakerGetDeviceFleetReportInput {
  DeviceFleetName: String!
}

type AwsSageMakerGetModelPackageGroupPolicyOutput {
  ResourcePolicy: String!
}

input AwsSageMakerGetModelPackageGroupPolicyInput {
  ModelPackageGroupName: String!
}

type AwsSageMakerGetSagemakerServicecatalogPortfolioStatusOutput {
  Status: String
}

type AwsSageMakerGetSearchSuggestionsOutput {
  PropertyNameSuggestions: [AwsSageMakerGetSearchSuggestionsOutputPropertyNameSuggestions]
}

type AwsSageMakerGetSearchSuggestionsOutputPropertyNameSuggestions {
  PropertyName: String
}

input AwsSageMakerGetSearchSuggestionsInput {
  Resource: String!
  SuggestionQuery: AwsSageMakerGetSearchSuggestionsSuggestionQueryInput
}

input AwsSageMakerGetSearchSuggestionsSuggestionQueryInput {
  PropertyNameQuery: AwsSageMakerGetSearchSuggestionsSuggestionQueryPropertyNameQueryInput
}

input AwsSageMakerGetSearchSuggestionsSuggestionQueryPropertyNameQueryInput {
  PropertyNameHint: String!
}

type AwsSageMakerListActionsOutput {
  ActionSummaries: [AwsSageMakerListActionsOutputActionSummaries]
  NextToken: String
}

type AwsSageMakerListActionsOutputActionSummaries {
  ActionArn: String
  ActionName: String
  Source: AwsSageMakerSi
  ActionType: String
  Status: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListActionsInput {
  SourceUri: String
  ActionType: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListAlgorithmsOutput {
  AlgorithmSummaryList: [AwsSageMakerListAlgorithmsOutputAlgorithmSummaryList]!
  NextToken: String
}

type AwsSageMakerListAlgorithmsOutputAlgorithmSummaryList {
  AlgorithmName: String!
  AlgorithmArn: String!
  AlgorithmDescription: String
  CreationTime: Date!
  AlgorithmStatus: String!
}

input AwsSageMakerListAlgorithmsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  MaxResults: Int
  NameContains: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListAppImageConfigsOutput {
  NextToken: String
  AppImageConfigs: [AwsSageMakerListAppImageConfigsOutputAppImageConfigs]
}

type AwsSageMakerListAppImageConfigsOutputAppImageConfigs {
  AppImageConfigArn: String
  AppImageConfigName: String
  CreationTime: Date
  LastModifiedTime: Date
  KernelGatewayImageConfig: AwsSageMakerS3x
}

input AwsSageMakerListAppImageConfigsInput {
  MaxResults: Int
  NextToken: String
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  ModifiedTimeBefore: Date
  ModifiedTimeAfter: Date
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListAppsOutput {
  Apps: [AwsSageMakerListAppsOutputApps]
  NextToken: String
}

type AwsSageMakerListAppsOutputApps {
  DomainId: String
  UserProfileName: String
  AppType: String
  AppName: String
  Status: String
  CreationTime: Date
}

input AwsSageMakerListAppsInput {
  NextToken: String
  MaxResults: Int
  SortOrder: String
  SortBy: String
  DomainIdEquals: String
  UserProfileNameEquals: String
}

type AwsSageMakerListArtifactsOutput {
  ArtifactSummaries: [AwsSageMakerListArtifactsOutputArtifactSummaries]
  NextToken: String
}

type AwsSageMakerListArtifactsOutputArtifactSummaries {
  ArtifactArn: String
  ArtifactName: String
  Source: AwsSageMakerS49
  ArtifactType: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListArtifactsInput {
  SourceUri: String
  ArtifactType: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListAssociationsOutput {
  AssociationSummaries: [AwsSageMakerListAssociationsOutputAssociationSummaries]
  NextToken: String
}

type AwsSageMakerListAssociationsOutputAssociationSummaries {
  SourceArn: String
  DestinationArn: String
  SourceType: String
  DestinationType: String
  AssociationType: String
  SourceName: String
  DestinationName: String
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
}

input AwsSageMakerListAssociationsInput {
  SourceArn: String
  DestinationArn: String
  SourceType: String
  DestinationType: String
  AssociationType: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListAutoMLJobsOutput {
  AutoMLJobSummaries: [AwsSageMakerListAutoMLJobsOutputAutoMLJobSummaries]!
  NextToken: String
}

type AwsSageMakerListAutoMLJobsOutputAutoMLJobSummaries {
  AutoMLJobName: String!
  AutoMLJobArn: String!
  AutoMLJobStatus: String!
  AutoMLJobSecondaryStatus: String!
  CreationTime: Date!
  EndTime: Date
  LastModifiedTime: Date!
  FailureReason: String
  PartialFailureReasons: [AwsSageMakerSkr]
}

input AwsSageMakerListAutoMLJobsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  StatusEquals: String
  SortOrder: String
  SortBy: String
  MaxResults: Int
  NextToken: String
}

type AwsSageMakerListCandidatesForAutoMLJobOutput {
  Candidates: [AwsSageMakerSkt]!
  NextToken: String
}

input AwsSageMakerListCandidatesForAutoMLJobInput {
  AutoMLJobName: String!
  StatusEquals: String
  CandidateNameEquals: String
  SortOrder: String
  SortBy: String
  MaxResults: Int
  NextToken: String
}

type AwsSageMakerListCodeRepositoriesOutput {
  CodeRepositorySummaryList: [AwsSageMakerListCodeRepositoriesOutputCodeRepositorySummaryList]!
  NextToken: String
}

type AwsSageMakerListCodeRepositoriesOutputCodeRepositorySummaryList {
  CodeRepositoryName: String!
  CodeRepositoryArn: String!
  CreationTime: Date!
  LastModifiedTime: Date!
  GitConfig: AwsSageMakerS59
}

input AwsSageMakerListCodeRepositoriesInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  MaxResults: Int
  NameContains: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListCompilationJobsOutput {
  CompilationJobSummaries: [AwsSageMakerListCompilationJobsOutputCompilationJobSummaries]!
  NextToken: String
}

type AwsSageMakerListCompilationJobsOutputCompilationJobSummaries {
  CompilationJobName: String!
  CompilationJobArn: String!
  CreationTime: Date!
  CompilationStartTime: Date
  CompilationEndTime: Date
  CompilationTargetDevice: String
  CompilationTargetPlatformOs: String
  CompilationTargetPlatformArch: String
  CompilationTargetPlatformAccelerator: String
  LastModifiedTime: Date
  CompilationJobStatus: String!
}

input AwsSageMakerListCompilationJobsInput {
  NextToken: String
  MaxResults: Int
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  StatusEquals: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListContextsOutput {
  ContextSummaries: [AwsSageMakerListContextsOutputContextSummaries]
  NextToken: String
}

type AwsSageMakerListContextsOutputContextSummaries {
  ContextArn: String
  ContextName: String
  Source: AwsSageMakerS5u
  ContextType: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListContextsInput {
  SourceUri: String
  ContextType: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListDataQualityJobDefinitionsOutput {
  JobDefinitionSummaries: [AwsSageMakerStw]!
  NextToken: String
}

type AwsSageMakerStw {
  MonitoringJobDefinitionName: String!
  MonitoringJobDefinitionArn: String!
  CreationTime: Date!
  EndpointName: String!
}

input AwsSageMakerListDataQualityJobDefinitionsInput {
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListDeviceFleetsOutput {
  DeviceFleetSummaries: [AwsSageMakerListDeviceFleetsOutputDeviceFleetSummaries]!
  NextToken: String
}

type AwsSageMakerListDeviceFleetsOutputDeviceFleetSummaries {
  DeviceFleetArn: String!
  DeviceFleetName: String!
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListDeviceFleetsInput {
  NextToken: String
  MaxResults: Int
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListDevicesOutput {
  DeviceSummaries: [AwsSageMakerListDevicesOutputDeviceSummaries]!
  NextToken: String
}

type AwsSageMakerListDevicesOutputDeviceSummaries {
  DeviceName: String!
  DeviceArn: String!
  Description: String
  DeviceFleetName: String
  IotThingName: String
  RegistrationTime: Date
  LatestHeartbeat: Date
  Models: [AwsSageMakerListDevicesOutputDeviceSummariesModels]
}

type AwsSageMakerListDevicesOutputDeviceSummariesModels {
  ModelName: String!
  ModelVersion: String!
}

input AwsSageMakerListDevicesInput {
  NextToken: String
  MaxResults: Int
  LatestHeartbeatAfter: Date
  ModelName: String
  DeviceFleetName: String
}

type AwsSageMakerListDomainsOutput {
  Domains: [AwsSageMakerListDomainsOutputDomains]
  NextToken: String
}

type AwsSageMakerListDomainsOutputDomains {
  DomainArn: String
  DomainId: String
  DomainName: String
  Status: String
  CreationTime: Date
  LastModifiedTime: Date
  Url: String
}

input AwsSageMakerListDomainsInput {
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListEdgePackagingJobsOutput {
  EdgePackagingJobSummaries: [AwsSageMakerListEdgePackagingJobsOutputEdgePackagingJobSummaries]!
  NextToken: String
}

type AwsSageMakerListEdgePackagingJobsOutputEdgePackagingJobSummaries {
  EdgePackagingJobArn: String!
  EdgePackagingJobName: String!
  EdgePackagingJobStatus: String!
  CompilationJobName: String
  ModelName: String
  ModelVersion: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListEdgePackagingJobsInput {
  NextToken: String
  MaxResults: Int
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  ModelNameContains: String
  StatusEquals: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListEndpointConfigsOutput {
  EndpointConfigs: [AwsSageMakerListEndpointConfigsOutputEndpointConfigs]!
  NextToken: String
}

type AwsSageMakerListEndpointConfigsOutputEndpointConfigs {
  EndpointConfigName: String!
  EndpointConfigArn: String!
  CreationTime: Date!
}

input AwsSageMakerListEndpointConfigsInput {
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListEndpointsOutput {
  Endpoints: [AwsSageMakerListEndpointsOutputEndpoints]!
  NextToken: String
}

type AwsSageMakerListEndpointsOutputEndpoints {
  EndpointName: String!
  EndpointArn: String!
  CreationTime: Date!
  LastModifiedTime: Date!
  EndpointStatus: String!
}

input AwsSageMakerListEndpointsInput {
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  LastModifiedTimeBefore: Date
  LastModifiedTimeAfter: Date
  StatusEquals: String
}

type AwsSageMakerListExperimentsOutput {
  ExperimentSummaries: [AwsSageMakerListExperimentsOutputExperimentSummaries]
  NextToken: String
}

type AwsSageMakerListExperimentsOutputExperimentSummaries {
  ExperimentArn: String
  ExperimentName: String
  DisplayName: String
  ExperimentSource: AwsSageMakerSn9
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListExperimentsInput {
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListFeatureGroupsOutput {
  FeatureGroupSummaries: [AwsSageMakerListFeatureGroupsOutputFeatureGroupSummaries]!
  NextToken: String!
}

type AwsSageMakerListFeatureGroupsOutputFeatureGroupSummaries {
  FeatureGroupName: String!
  FeatureGroupArn: String!
  CreationTime: Date!
  FeatureGroupStatus: String
  OfflineStoreStatus: AwsSageMakerSnf
}

input AwsSageMakerListFeatureGroupsInput {
  NameContains: String
  FeatureGroupStatusEquals: String
  OfflineStoreStatusEquals: String
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  SortOrder: String
  SortBy: String
  MaxResults: Int
  NextToken: String
}

type AwsSageMakerListFlowDefinitionsOutput {
  FlowDefinitionSummaries: [AwsSageMakerListFlowDefinitionsOutputFlowDefinitionSummaries]!
  NextToken: String
}

type AwsSageMakerListFlowDefinitionsOutputFlowDefinitionSummaries {
  FlowDefinitionName: String!
  FlowDefinitionArn: String!
  FlowDefinitionStatus: String!
  CreationTime: Date!
  FailureReason: String
}

input AwsSageMakerListFlowDefinitionsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListHumanTaskUisOutput {
  HumanTaskUiSummaries: [AwsSageMakerListHumanTaskUisOutputHumanTaskUiSummaries]!
  NextToken: String
}

type AwsSageMakerListHumanTaskUisOutputHumanTaskUiSummaries {
  HumanTaskUiName: String!
  HumanTaskUiArn: String!
  CreationTime: Date!
}

input AwsSageMakerListHumanTaskUisInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListHyperParameterTuningJobsOutput {
  HyperParameterTuningJobSummaries: [AwsSageMakerListHyperParameterTuningJobsOutputHyperParameterTuningJobSummaries]!
  NextToken: String
}

type AwsSageMakerListHyperParameterTuningJobsOutputHyperParameterTuningJobSummaries {
  HyperParameterTuningJobName: String!
  HyperParameterTuningJobArn: String!
  HyperParameterTuningJobStatus: String!
  Strategy: String!
  CreationTime: Date!
  HyperParameterTuningEndTime: Date
  LastModifiedTime: Date
  TrainingJobStatusCounters: AwsSageMakerSnu!
  ObjectiveStatusCounters: AwsSageMakerSnw!
  ResourceLimits: AwsSageMakerS9z
}

input AwsSageMakerListHyperParameterTuningJobsInput {
  NextToken: String
  MaxResults: Int
  SortBy: String
  SortOrder: String
  NameContains: String
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  StatusEquals: String
}

type AwsSageMakerListImageVersionsOutput {
  ImageVersions: [AwsSageMakerListImageVersionsOutputImageVersions]
  NextToken: String
}

type AwsSageMakerListImageVersionsOutputImageVersions {
  CreationTime: Date!
  FailureReason: String
  ImageArn: String!
  ImageVersionArn: String!
  ImageVersionStatus: String!
  LastModifiedTime: Date!
  Version: Int!
}

input AwsSageMakerListImageVersionsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  ImageName: String!
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  MaxResults: Int
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListImagesOutput {
  Images: [AwsSageMakerListImagesOutputImages]
  NextToken: String
}

type AwsSageMakerListImagesOutputImages {
  CreationTime: Date!
  Description: String
  DisplayName: String
  FailureReason: String
  ImageArn: String!
  ImageName: String!
  ImageStatus: String!
  LastModifiedTime: Date!
}

input AwsSageMakerListImagesInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  MaxResults: Int
  NameContains: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListLabelingJobsOutput {
  LabelingJobSummaryList: [AwsSageMakerListLabelingJobsOutputLabelingJobSummaryList]
  NextToken: String
}

type AwsSageMakerListLabelingJobsOutputLabelingJobSummaryList {
  LabelingJobName: String!
  LabelingJobArn: String!
  CreationTime: Date!
  LastModifiedTime: Date!
  LabelingJobStatus: String!
  LabelCounters: AwsSageMakerSob!
  WorkteamArn: String!
  PreHumanTaskLambdaArn: String!
  AnnotationConsolidationLambdaArn: String
  FailureReason: String
  LabelingJobOutput: AwsSageMakerSoe
  InputConfig: AwsSageMakerSb4
}

input AwsSageMakerListLabelingJobsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  MaxResults: Int
  NextToken: String
  NameContains: String
  SortBy: String
  SortOrder: String
  StatusEquals: String
}

type AwsSageMakerListLabelingJobsForWorkteamOutput {
  LabelingJobSummaryList: [AwsSageMakerListLabelingJobsForWorkteamOutputLabelingJobSummaryList]!
  NextToken: String
}

type AwsSageMakerListLabelingJobsForWorkteamOutputLabelingJobSummaryList {
  LabelingJobName: String
  JobReferenceCode: String!
  WorkRequesterAccountId: String!
  CreationTime: Date!
  LabelCounters: AwsSageMakerListLabelingJobsForWorkteamOutputLabelingJobSummaryListLabelCounters
  NumberOfHumanWorkersPerDataObject: Int
}

type AwsSageMakerListLabelingJobsForWorkteamOutputLabelingJobSummaryListLabelCounters {
  HumanLabeled: Int
  PendingHuman: Int
  Total: Int
}

input AwsSageMakerListLabelingJobsForWorkteamInput {
  WorkteamArn: String!
  MaxResults: Int
  NextToken: String
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  JobReferenceCodeContains: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListModelBiasJobDefinitionsOutput {
  JobDefinitionSummaries: [AwsSageMakerStw]!
  NextToken: String
}

input AwsSageMakerListModelBiasJobDefinitionsInput {
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListModelExplainabilityJobDefinitionsOutput {
  JobDefinitionSummaries: [AwsSageMakerStw]!
  NextToken: String
}

input AwsSageMakerListModelExplainabilityJobDefinitionsInput {
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListModelPackageGroupsOutput {
  ModelPackageGroupSummaryList: [AwsSageMakerListModelPackageGroupsOutputModelPackageGroupSummaryList]!
  NextToken: String
}

type AwsSageMakerListModelPackageGroupsOutputModelPackageGroupSummaryList {
  ModelPackageGroupName: String!
  ModelPackageGroupArn: String!
  ModelPackageGroupDescription: String
  CreationTime: Date!
  ModelPackageGroupStatus: String!
}

input AwsSageMakerListModelPackageGroupsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  MaxResults: Int
  NameContains: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListModelPackagesOutput {
  ModelPackageSummaryList: [AwsSageMakerListModelPackagesOutputModelPackageSummaryList]!
  NextToken: String
}

type AwsSageMakerListModelPackagesOutputModelPackageSummaryList {
  ModelPackageName: String!
  ModelPackageGroupName: String
  ModelPackageVersion: Int
  ModelPackageArn: String!
  ModelPackageDescription: String
  CreationTime: Date!
  ModelPackageStatus: String!
  ModelApprovalStatus: String
}

input AwsSageMakerListModelPackagesInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  MaxResults: Int
  NameContains: String
  ModelApprovalStatus: String
  ModelPackageGroupName: String
  ModelPackageType: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListModelQualityJobDefinitionsOutput {
  JobDefinitionSummaries: [AwsSageMakerStw]!
  NextToken: String
}

input AwsSageMakerListModelQualityJobDefinitionsInput {
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListModelsOutput {
  Models: [AwsSageMakerListModelsOutputModels]!
  NextToken: String
}

type AwsSageMakerListModelsOutputModels {
  ModelName: String!
  ModelArn: String!
  CreationTime: Date!
}

input AwsSageMakerListModelsInput {
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
}

type AwsSageMakerListMonitoringExecutionsOutput {
  MonitoringExecutionSummaries: [AwsSageMakerSp2]!
  NextToken: String
}

input AwsSageMakerListMonitoringExecutionsInput {
  MonitoringScheduleName: String
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  ScheduledTimeBefore: Date
  ScheduledTimeAfter: Date
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  LastModifiedTimeBefore: Date
  LastModifiedTimeAfter: Date
  StatusEquals: String
  MonitoringJobDefinitionName: String
  MonitoringTypeEquals: String
}

type AwsSageMakerListMonitoringSchedulesOutput {
  MonitoringScheduleSummaries: [AwsSageMakerListMonitoringSchedulesOutputMonitoringScheduleSummaries]!
  NextToken: String
}

type AwsSageMakerListMonitoringSchedulesOutputMonitoringScheduleSummaries {
  MonitoringScheduleName: String!
  MonitoringScheduleArn: String!
  CreationTime: Date!
  LastModifiedTime: Date!
  MonitoringScheduleStatus: String!
  EndpointName: String
  MonitoringJobDefinitionName: String
  MonitoringType: String
}

input AwsSageMakerListMonitoringSchedulesInput {
  EndpointName: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  LastModifiedTimeBefore: Date
  LastModifiedTimeAfter: Date
  StatusEquals: String
  MonitoringJobDefinitionName: String
  MonitoringTypeEquals: String
}

type AwsSageMakerListNotebookInstanceLifecycleConfigsOutput {
  NextToken: String
  NotebookInstanceLifecycleConfigs: [AwsSageMakerListNotebookInstanceLifecycleConfigsOutputNotebookInstanceLifecycleConfigs]
}

type AwsSageMakerListNotebookInstanceLifecycleConfigsOutputNotebookInstanceLifecycleConfigs {
  NotebookInstanceLifecycleConfigName: String!
  NotebookInstanceLifecycleConfigArn: String!
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListNotebookInstanceLifecycleConfigsInput {
  NextToken: String
  MaxResults: Int
  SortBy: String
  SortOrder: String
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  LastModifiedTimeBefore: Date
  LastModifiedTimeAfter: Date
}

type AwsSageMakerListNotebookInstancesOutput {
  NextToken: String
  NotebookInstances: [AwsSageMakerListNotebookInstancesOutputNotebookInstances]
}

type AwsSageMakerListNotebookInstancesOutputNotebookInstances {
  NotebookInstanceName: String!
  NotebookInstanceArn: String!
  NotebookInstanceStatus: String
  Url: String
  InstanceType: String
  CreationTime: Date
  LastModifiedTime: Date
  NotebookInstanceLifecycleConfigName: String
  DefaultCodeRepository: String
  AdditionalCodeRepositories: [String]
}

input AwsSageMakerListNotebookInstancesInput {
  NextToken: String
  MaxResults: Int
  SortBy: String
  SortOrder: String
  NameContains: String
  CreationTimeBefore: Date
  CreationTimeAfter: Date
  LastModifiedTimeBefore: Date
  LastModifiedTimeAfter: Date
  StatusEquals: String
  NotebookInstanceLifecycleConfigNameContains: String
  DefaultCodeRepositoryContains: String
  AdditionalCodeRepositoryEquals: String
}

type AwsSageMakerListPipelineExecutionStepsOutput {
  PipelineExecutionSteps: [AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionSteps]
  NextToken: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionSteps {
  StepName: String
  StartTime: Date
  EndTime: Date
  StepStatus: String
  CacheHitResult: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsCacheHitResult
  FailureReason: String
  Metadata: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadata
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsCacheHitResult {
  SourcePipelineExecutionArn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadata {
  TrainingJob: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataTrainingJob
  ProcessingJob: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataProcessingJob
  TransformJob: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataTransformJob
  Model: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataModel
  RegisterModel: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataRegisterModel
  Condition: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataCondition
  Callback: AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataCallback
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataTrainingJob {
  Arn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataProcessingJob {
  Arn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataTransformJob {
  Arn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataModel {
  Arn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataRegisterModel {
  Arn: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataCondition {
  Outcome: String
}

type AwsSageMakerListPipelineExecutionStepsOutputPipelineExecutionStepsMetadataCallback {
  CallbackToken: String
  SqsQueueUrl: String
  OutputParameters: [AwsSageMakerSy5]
}

type AwsSageMakerSy5 {
  Name: String!
  Value: String!
}

input AwsSageMakerListPipelineExecutionStepsInput {
  PipelineExecutionArn: String
  NextToken: String
  MaxResults: Int
  SortOrder: String
}

type AwsSageMakerListPipelineExecutionsOutput {
  PipelineExecutionSummaries: [AwsSageMakerListPipelineExecutionsOutputPipelineExecutionSummaries]
  NextToken: String
}

type AwsSageMakerListPipelineExecutionsOutputPipelineExecutionSummaries {
  PipelineExecutionArn: String
  StartTime: Date
  PipelineExecutionStatus: String
  PipelineExecutionDescription: String
  PipelineExecutionDisplayName: String
}

input AwsSageMakerListPipelineExecutionsInput {
  PipelineName: String!
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListPipelineParametersForExecutionOutput {
  PipelineParameters: [AwsSageMakerSye]
  NextToken: String
}

type AwsSageMakerSye {
  Name: String!
  Value: String!
}

input AwsSageMakerListPipelineParametersForExecutionInput {
  PipelineExecutionArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListPipelinesOutput {
  PipelineSummaries: [AwsSageMakerListPipelinesOutputPipelineSummaries]
  NextToken: String
}

type AwsSageMakerListPipelinesOutputPipelineSummaries {
  PipelineArn: String
  PipelineName: String
  PipelineDisplayName: String
  PipelineDescription: String
  RoleArn: String
  CreationTime: Date
  LastModifiedTime: Date
  LastExecutionTime: Date
}

input AwsSageMakerListPipelinesInput {
  PipelineNamePrefix: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListProcessingJobsOutput {
  ProcessingJobSummaries: [AwsSageMakerListProcessingJobsOutputProcessingJobSummaries]!
  NextToken: String
}

type AwsSageMakerListProcessingJobsOutputProcessingJobSummaries {
  ProcessingJobName: String!
  ProcessingJobArn: String!
  CreationTime: Date!
  ProcessingEndTime: Date
  LastModifiedTime: Date
  ProcessingJobStatus: String!
  FailureReason: String
  ExitMessage: String
}

input AwsSageMakerListProcessingJobsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  StatusEquals: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListProjectsOutput {
  ProjectSummaryList: [AwsSageMakerListProjectsOutputProjectSummaryList]!
  NextToken: String
}

type AwsSageMakerListProjectsOutputProjectSummaryList {
  ProjectName: String!
  ProjectDescription: String
  ProjectArn: String!
  ProjectId: String!
  CreationTime: Date!
  ProjectStatus: String!
}

input AwsSageMakerListProjectsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  MaxResults: Int
  NameContains: String
  NextToken: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListSubscribedWorkteamsOutput {
  SubscribedWorkteams: [AwsSageMakerSpy]!
  NextToken: String
}

input AwsSageMakerListSubscribedWorkteamsInput {
  NameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListTagsOutput {
  Tags: [AwsSageMakerS7]
  NextToken: String
}

input AwsSageMakerListTagsInput {
  ResourceArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListTrainingJobsOutput {
  TrainingJobSummaries: [AwsSageMakerListTrainingJobsOutputTrainingJobSummaries]!
  NextToken: String
}

type AwsSageMakerListTrainingJobsOutputTrainingJobSummaries {
  TrainingJobName: String!
  TrainingJobArn: String!
  CreationTime: Date!
  TrainingEndTime: Date
  LastModifiedTime: Date
  TrainingJobStatus: String!
}

input AwsSageMakerListTrainingJobsInput {
  NextToken: String
  MaxResults: Int
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  StatusEquals: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListTrainingJobsForHyperParameterTuningJobOutput {
  TrainingJobSummaries: [AwsSageMakerSny]!
  NextToken: String
}

input AwsSageMakerListTrainingJobsForHyperParameterTuningJobInput {
  HyperParameterTuningJobName: String!
  NextToken: String
  MaxResults: Int
  StatusEquals: String
  SortBy: String
  SortOrder: String
}

type AwsSageMakerListTransformJobsOutput {
  TransformJobSummaries: [AwsSageMakerListTransformJobsOutputTransformJobSummaries]!
  NextToken: String
}

type AwsSageMakerListTransformJobsOutputTransformJobSummaries {
  TransformJobName: String!
  TransformJobArn: String!
  CreationTime: Date!
  TransformEndTime: Date
  LastModifiedTime: Date
  TransformJobStatus: String!
  FailureReason: String
}

input AwsSageMakerListTransformJobsInput {
  CreationTimeAfter: Date
  CreationTimeBefore: Date
  LastModifiedTimeAfter: Date
  LastModifiedTimeBefore: Date
  NameContains: String
  StatusEquals: String
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListTrialComponentsOutput {
  TrialComponentSummaries: [AwsSageMakerListTrialComponentsOutputTrialComponentSummaries]
  NextToken: String
}

type AwsSageMakerListTrialComponentsOutputTrialComponentSummaries {
  TrialComponentName: String
  TrialComponentArn: String
  DisplayName: String
  TrialComponentSource: AwsSageMakerSqq
  Status: AwsSageMakerSha
  StartTime: Date
  EndTime: Date
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
}

input AwsSageMakerListTrialComponentsInput {
  ExperimentName: String
  TrialName: String
  SourceArn: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  MaxResults: Int
  NextToken: String
}

type AwsSageMakerListTrialsOutput {
  TrialSummaries: [AwsSageMakerListTrialsOutputTrialSummaries]
  NextToken: String
}

type AwsSageMakerListTrialsOutputTrialSummaries {
  TrialArn: String
  TrialName: String
  DisplayName: String
  TrialSource: AwsSageMakerSqm
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListTrialsInput {
  ExperimentName: String
  TrialComponentName: String
  CreatedAfter: Date
  CreatedBefore: Date
  SortBy: String
  SortOrder: String
  MaxResults: Int
  NextToken: String
}

type AwsSageMakerListUserProfilesOutput {
  UserProfiles: [AwsSageMakerListUserProfilesOutputUserProfiles]
  NextToken: String
}

type AwsSageMakerListUserProfilesOutputUserProfiles {
  DomainId: String
  UserProfileName: String
  Status: String
  CreationTime: Date
  LastModifiedTime: Date
}

input AwsSageMakerListUserProfilesInput {
  NextToken: String
  MaxResults: Int
  SortOrder: String
  SortBy: String
  DomainIdEquals: String
  UserProfileNameContains: String
}

type AwsSageMakerListWorkforcesOutput {
  Workforces: [AwsSageMakerSr2]!
  NextToken: String
}

input AwsSageMakerListWorkforcesInput {
  SortBy: String
  SortOrder: String
  NameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerListWorkteamsOutput {
  Workteams: [AwsSageMakerSr6]!
  NextToken: String
}

input AwsSageMakerListWorkteamsInput {
  SortBy: String
  SortOrder: String
  NameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsSageMakerPutModelPackageGroupPolicyOutput {
  ModelPackageGroupArn: String!
}

input AwsSageMakerPutModelPackageGroupPolicyInput {
  ModelPackageGroupName: String!
  ResourcePolicy: String!
}

input AwsSageMakerRegisterDevicesInput {
  DeviceFleetName: String!
  Devices: [AwsSageMakerS104Input]!
  Tags: [AwsSageMakerS7Input]
}

input AwsSageMakerS104Input {
  DeviceName: String!
  Description: String
  IotThingName: String
}

type AwsSageMakerRenderUiTemplateOutput {
  RenderedContent: String!
  Errors: [AwsSageMakerRenderUiTemplateOutputErrors]!
}

type AwsSageMakerRenderUiTemplateOutputErrors {
  Code: String!
  Message: String!
}

input AwsSageMakerRenderUiTemplateInput {
  UiTemplate: AwsSageMakerS9sInput
  Task: AwsSageMakerRenderUiTemplateTaskInput!
  RoleArn: String!
  HumanTaskUiArn: String
}

input AwsSageMakerRenderUiTemplateTaskInput {
  Input: String!
}

type AwsSageMakerSearchOutput {
  Results: [AwsSageMakerSearchOutputResults]
  NextToken: String
}

type AwsSageMakerSearchOutputResults {
  TrainingJob: AwsSageMakerS10q
  Experiment: AwsSageMakerSearchOutputResultsExperiment
  Trial: AwsSageMakerSearchOutputResultsTrial
  TrialComponent: AwsSageMakerSearchOutputResultsTrialComponent
  Endpoint: AwsSageMakerSearchOutputResultsEndpoint
  ModelPackage: AwsSageMakerSearchOutputResultsModelPackage
  ModelPackageGroup: AwsSageMakerSearchOutputResultsModelPackageGroup
  Pipeline: AwsSageMakerSearchOutputResultsPipeline
  PipelineExecution: AwsSageMakerSearchOutputResultsPipelineExecution
  FeatureGroup: AwsSageMakerSearchOutputResultsFeatureGroup
}

type AwsSageMakerS10q {
  TrainingJobName: String
  TrainingJobArn: String
  TuningJobArn: String
  LabelingJobArn: String
  AutoMLJobArn: String
  ModelArtifacts: AwsSageMakerSln
  TrainingJobStatus: String
  SecondaryStatus: String
  FailureReason: String
  HyperParameters: JSON
  AlgorithmSpecification: AwsSageMakerSg8
  RoleArn: String
  InputDataConfig: [AwsSageMakerS2c]
  OutputDataConfig: AwsSageMakerS2t
  ResourceConfig: AwsSageMakerS2v
  VpcConfig: AwsSageMakerS4x
  StoppingCondition: AwsSageMakerS2y
  CreationTime: Date
  TrainingStartTime: Date
  TrainingEndTime: Date
  LastModifiedTime: Date
  SecondaryStatusTransitions: [AwsSageMakerSq2]
  FinalMetricDataList: [AwsSageMakerSq5]
  EnableNetworkIsolation: Boolean
  EnableInterContainerTrafficEncryption: Boolean
  EnableManagedSpotTraining: Boolean
  CheckpointConfig: AwsSageMakerSaj
  TrainingTimeInSeconds: Int
  BillableTimeInSeconds: Int
  DebugHookConfig: AwsSageMakerSg9
  ExperimentConfig: AwsSageMakerSfs
  DebugRuleConfigurations: [AwsSageMakerSgh]
  TensorBoardOutputConfig: AwsSageMakerSgm
  DebugRuleEvaluationStatuses: [AwsSageMakerSqa]
  Environment: JSON
  RetryStrategy: AwsSageMakerSak
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsExperiment {
  ExperimentName: String
  ExperimentArn: String
  DisplayName: String
  Source: AwsSageMakerSn9
  Description: String
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsTrial {
  TrialName: String
  TrialArn: String
  DisplayName: String
  ExperimentName: String
  Source: AwsSageMakerSqm
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
  Tags: [AwsSageMakerS7]
  TrialComponentSummaries: [AwsSageMakerSearchOutputResultsTrialTrialComponentSummaries]
}

type AwsSageMakerSearchOutputResultsTrialTrialComponentSummaries {
  TrialComponentName: String
  TrialComponentArn: String
  TrialComponentSource: AwsSageMakerSqq
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
}

type AwsSageMakerSearchOutputResultsTrialComponent {
  TrialComponentName: String
  DisplayName: String
  TrialComponentArn: String
  Source: AwsSageMakerSqq
  Status: AwsSageMakerSha
  StartTime: Date
  EndTime: Date
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  Parameters: JSON
  InputArtifacts: JSON
  OutputArtifacts: JSON
  Metrics: [AwsSageMakerSqs]
  MetadataProperties: AwsSageMakerSp
  SourceDetail: AwsSageMakerSearchOutputResultsTrialComponentSourceDetail
  Tags: [AwsSageMakerS7]
  Parents: [AwsSageMakerSearchOutputResultsTrialComponentParents]
}

type AwsSageMakerSearchOutputResultsTrialComponentSourceDetail {
  SourceArn: String
  TrainingJob: AwsSageMakerS10q
  ProcessingJob: AwsSageMakerSearchOutputResultsTrialComponentSourceDetailProcessingJob
  TransformJob: AwsSageMakerSearchOutputResultsTrialComponentSourceDetailTransformJob
}

type AwsSageMakerSearchOutputResultsTrialComponentSourceDetailProcessingJob {
  ProcessingInputs: [AwsSageMakerSet]
  ProcessingOutputConfig: AwsSageMakerSfg
  ProcessingJobName: String
  ProcessingResources: AwsSageMakerSfl
  StoppingCondition: AwsSageMakerSfn
  AppSpecification: AwsSageMakerSfp
  Environment: JSON
  NetworkConfig: AwsSageMakerSdq
  RoleArn: String
  ExperimentConfig: AwsSageMakerSfs
  ProcessingJobArn: String
  ProcessingJobStatus: String
  ExitMessage: String
  FailureReason: String
  ProcessingEndTime: Date
  ProcessingStartTime: Date
  LastModifiedTime: Date
  CreationTime: Date
  MonitoringScheduleArn: String
  AutoMLJobArn: String
  TrainingJobArn: String
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsTrialComponentSourceDetailTransformJob {
  TransformJobName: String
  TransformJobArn: String
  TransformJobStatus: String
  FailureReason: String
  ModelName: String
  MaxConcurrentTransforms: Int
  ModelClientConfig: AwsSageMakerSgz
  MaxPayloadInMB: Int
  BatchStrategy: String
  Environment: JSON
  TransformInput: AwsSageMakerS38
  TransformOutput: AwsSageMakerS3c
  TransformResources: AwsSageMakerS3f
  CreationTime: Date
  TransformStartTime: Date
  TransformEndTime: Date
  LabelingJobArn: String
  AutoMLJobArn: String
  DataProcessing: AwsSageMakerSh2
  ExperimentConfig: AwsSageMakerSfs
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsTrialComponentParents {
  TrialName: String
  ExperimentName: String
}

type AwsSageMakerSearchOutputResultsEndpoint {
  EndpointName: String!
  EndpointArn: String!
  EndpointConfigName: String!
  ProductionVariants: [AwsSageMakerSmk]
  DataCaptureConfig: AwsSageMakerSmo
  EndpointStatus: String!
  FailureReason: String
  CreationTime: Date!
  LastModifiedTime: Date!
  MonitoringSchedules: [AwsSageMakerSearchOutputResultsEndpointMonitoringSchedules]
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsEndpointMonitoringSchedules {
  MonitoringScheduleArn: String
  MonitoringScheduleName: String
  MonitoringScheduleStatus: String
  MonitoringType: String
  FailureReason: String
  CreationTime: Date
  LastModifiedTime: Date
  MonitoringScheduleConfig: AwsSageMakerSdi
  EndpointName: String
  LastMonitoringExecutionSummary: AwsSageMakerSp2
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsModelPackage {
  ModelPackageName: String
  ModelPackageGroupName: String
  ModelPackageVersion: Int
  ModelPackageArn: String
  ModelPackageDescription: String
  CreationTime: Date
  InferenceSpecification: AwsSageMakerS1t
  SourceAlgorithmSpecification: AwsSageMakerScu
  ValidationSpecification: AwsSageMakerScr
  ModelPackageStatus: String
  ModelPackageStatusDetails: AwsSageMakerSop
  CertifyForMarketplace: Boolean
  ModelApprovalStatus: String
  CreatedBy: AwsSageMakerSk7
  MetadataProperties: AwsSageMakerSp
  ModelMetrics: AwsSageMakerScy
  LastModifiedTime: Date
  LastModifiedBy: AwsSageMakerSk7
  ApprovalDescription: String
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsModelPackageGroup {
  ModelPackageGroupName: String
  ModelPackageGroupArn: String
  ModelPackageGroupDescription: String
  CreationTime: Date
  CreatedBy: AwsSageMakerSk7
  ModelPackageGroupStatus: String
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsPipeline {
  PipelineArn: String
  PipelineName: String
  PipelineDisplayName: String
  PipelineDescription: String
  RoleArn: String
  PipelineStatus: String
  CreationTime: Date
  LastModifiedTime: Date
  LastRunTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedBy: AwsSageMakerSk7
  Tags: [AwsSageMakerS7]
}

type AwsSageMakerSearchOutputResultsPipelineExecution {
  PipelineArn: String
  PipelineExecutionArn: String
  PipelineExecutionDisplayName: String
  PipelineExecutionStatus: String
  PipelineExecutionDescription: String
  PipelineExperimentConfig: AwsSageMakerSpl
  FailureReason: String
  CreationTime: Date
  LastModifiedTime: Date
  CreatedBy: AwsSageMakerSk7
  LastModifiedBy: AwsSageMakerSk7
  PipelineParameters: [AwsSageMakerSye]
}

type AwsSageMakerSearchOutputResultsFeatureGroup {
  FeatureGroupArn: String
  FeatureGroupName: String
  RecordIdentifierFeatureName: String
  EventTimeFeatureName: String
  FeatureDefinitions: [AwsSageMakerS8n]
  CreationTime: Date
  OnlineStoreConfig: AwsSageMakerS8q
  OfflineStoreConfig: AwsSageMakerS8s
  RoleArn: String
  FeatureGroupStatus: String
  OfflineStoreStatus: AwsSageMakerSnf
  FailureReason: String
  Description: String
  Tags: [AwsSageMakerS7]
}

input AwsSageMakerSearchInput {
  Resource: String!
  SearchExpression: AwsSageMakerS10dInput
  SortBy: String
  SortOrder: String
  NextToken: String
  MaxResults: Int
}

input AwsSageMakerS10dInput {
  Filters: [AwsSageMakerS10eInput]
  NestedFilters: [AwsSageMakerS10dNestedFiltersInput]
  SubExpressions: [JSON]
  Operator: String
}

input AwsSageMakerS10eInput {
  Name: String!
  Operator: String
  Value: String
}

input AwsSageMakerS10dNestedFiltersInput {
  NestedPropertyName: String!
  Filters: [AwsSageMakerS10eInput]!
}

type AwsSageMakerSendPipelineExecutionStepFailureOutput {
  PipelineExecutionArn: String
}

input AwsSageMakerSendPipelineExecutionStepFailureInput {
  CallbackToken: String!
  FailureReason: String
  ClientRequestToken: String
}

type AwsSageMakerSendPipelineExecutionStepSuccessOutput {
  PipelineExecutionArn: String
}

input AwsSageMakerSendPipelineExecutionStepSuccessInput {
  CallbackToken: String!
  OutputParameters: [AwsSageMakerSy5Input]
  ClientRequestToken: String
}

input AwsSageMakerSy5Input {
  Name: String!
  Value: String!
}

input AwsSageMakerStartMonitoringScheduleInput {
  MonitoringScheduleName: String!
}

input AwsSageMakerStartNotebookInstanceInput {
  NotebookInstanceName: String!
}

type AwsSageMakerStartPipelineExecutionOutput {
  PipelineExecutionArn: String
}

input AwsSageMakerStartPipelineExecutionInput {
  PipelineName: String!
  PipelineExecutionDisplayName: String
  PipelineParameters: [AwsSageMakerSyeInput]
  PipelineExecutionDescription: String
  ClientRequestToken: String!
}

input AwsSageMakerSyeInput {
  Name: String!
  Value: String!
}

input AwsSageMakerStopAutoMLJobInput {
  AutoMLJobName: String!
}

input AwsSageMakerStopCompilationJobInput {
  CompilationJobName: String!
}

input AwsSageMakerStopEdgePackagingJobInput {
  EdgePackagingJobName: String!
}

input AwsSageMakerStopHyperParameterTuningJobInput {
  HyperParameterTuningJobName: String!
}

input AwsSageMakerStopLabelingJobInput {
  LabelingJobName: String!
}

input AwsSageMakerStopMonitoringScheduleInput {
  MonitoringScheduleName: String!
}

input AwsSageMakerStopNotebookInstanceInput {
  NotebookInstanceName: String!
}

type AwsSageMakerStopPipelineExecutionOutput {
  PipelineExecutionArn: String
}

input AwsSageMakerStopPipelineExecutionInput {
  PipelineExecutionArn: String!
  ClientRequestToken: String!
}

input AwsSageMakerStopProcessingJobInput {
  ProcessingJobName: String!
}

input AwsSageMakerStopTrainingJobInput {
  TrainingJobName: String!
}

input AwsSageMakerStopTransformJobInput {
  TransformJobName: String!
}

type AwsSageMakerUpdateActionOutput {
  ActionArn: String
}

input AwsSageMakerUpdateActionInput {
  ActionName: String!
  Description: String
  Status: String
  Properties: JSON
  PropertiesToRemove: [String]
}

type AwsSageMakerUpdateAppImageConfigOutput {
  AppImageConfigArn: String
}

input AwsSageMakerUpdateAppImageConfigInput {
  AppImageConfigName: String!
  KernelGatewayImageConfig: AwsSageMakerS3xInput
}

type AwsSageMakerUpdateArtifactOutput {
  ArtifactArn: String
}

input AwsSageMakerUpdateArtifactInput {
  ArtifactArn: String!
  ArtifactName: String
  Properties: JSON
  PropertiesToRemove: [String]
}

type AwsSageMakerUpdateCodeRepositoryOutput {
  CodeRepositoryArn: String!
}

input AwsSageMakerUpdateCodeRepositoryInput {
  CodeRepositoryName: String!
  GitConfig: AwsSageMakerUpdateCodeRepositoryGitConfigInput
}

input AwsSageMakerUpdateCodeRepositoryGitConfigInput {
  SecretArn: String
}

type AwsSageMakerUpdateContextOutput {
  ContextArn: String
}

input AwsSageMakerUpdateContextInput {
  ContextName: String!
  Description: String
  Properties: JSON
  PropertiesToRemove: [String]
}

input AwsSageMakerUpdateDeviceFleetInput {
  DeviceFleetName: String!
  RoleArn: String
  Description: String
  OutputConfig: AwsSageMakerS72Input!
  EnableIotRoleAlias: Boolean
}

input AwsSageMakerUpdateDevicesInput {
  DeviceFleetName: String!
  Devices: [AwsSageMakerS104Input]!
}

type AwsSageMakerUpdateDomainOutput {
  DomainArn: String
}

input AwsSageMakerUpdateDomainInput {
  DomainId: String!
  DefaultUserSettings: AwsSageMakerS78Input
}

type AwsSageMakerUpdateEndpointOutput {
  EndpointArn: String!
}

input AwsSageMakerUpdateEndpointInput {
  EndpointName: String!
  EndpointConfigName: String!
  RetainAllVariantProperties: Boolean
  ExcludeRetainedVariantProperties: [AwsSageMakerUpdateEndpointExcludeRetainedVariantPropertiesInput]
  DeploymentConfig: AwsSageMakerSmrInput
}

input AwsSageMakerUpdateEndpointExcludeRetainedVariantPropertiesInput {
  VariantPropertyType: String!
}

input AwsSageMakerSmrInput {
  BlueGreenUpdatePolicy: AwsSageMakerSmrBlueGreenUpdatePolicyInput!
  AutoRollbackConfiguration: AwsSageMakerSmrAutoRollbackConfigurationInput
}

input AwsSageMakerSmrBlueGreenUpdatePolicyInput {
  TrafficRoutingConfiguration: AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationInput!
  TerminationWaitInSeconds: Int
  MaximumExecutionTimeoutInSeconds: Int
}

input AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationInput {
  Type: String!
  WaitIntervalInSeconds: Int!
  CanarySize: AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeInput
}

input AwsSageMakerSmrBlueGreenUpdatePolicyTrafficRoutingConfigurationCanarySizeInput {
  Type: String!
  Value: Int!
}

input AwsSageMakerSmrAutoRollbackConfigurationInput {
  Alarms: [AwsSageMakerSmrAutoRollbackConfigurationAlarmsInput]
}

input AwsSageMakerSmrAutoRollbackConfigurationAlarmsInput {
  AlarmName: String
}

type AwsSageMakerUpdateEndpointWeightsAndCapacitiesOutput {
  EndpointArn: String!
}

input AwsSageMakerUpdateEndpointWeightsAndCapacitiesInput {
  EndpointName: String!
  DesiredWeightsAndCapacities: [AwsSageMakerUpdateEndpointWeightsAndCapacitiesDesiredWeightsAndCapacitiesInput]!
}

input AwsSageMakerUpdateEndpointWeightsAndCapacitiesDesiredWeightsAndCapacitiesInput {
  VariantName: String!
  DesiredWeight: Float
  DesiredInstanceCount: Int
}

type AwsSageMakerUpdateExperimentOutput {
  ExperimentArn: String
}

input AwsSageMakerUpdateExperimentInput {
  ExperimentName: String!
  DisplayName: String
  Description: String
}

type AwsSageMakerUpdateImageOutput {
  ImageArn: String
}

input AwsSageMakerUpdateImageInput {
  DeleteProperties: [String]
  Description: String
  DisplayName: String
  ImageName: String!
  RoleArn: String
}

type AwsSageMakerUpdateModelPackageOutput {
  ModelPackageArn: String!
}

input AwsSageMakerUpdateModelPackageInput {
  ModelPackageArn: String!
  ModelApprovalStatus: String!
  ApprovalDescription: String
}

type AwsSageMakerUpdateMonitoringScheduleOutput {
  MonitoringScheduleArn: String!
}

input AwsSageMakerUpdateMonitoringScheduleInput {
  MonitoringScheduleName: String!
  MonitoringScheduleConfig: AwsSageMakerSdiInput!
}

input AwsSageMakerUpdateNotebookInstanceInput {
  NotebookInstanceName: String!
  InstanceType: String
  RoleArn: String
  LifecycleConfigName: String
  DisassociateLifecycleConfig: Boolean
  VolumeSizeInGB: Int
  DefaultCodeRepository: String
  AdditionalCodeRepositories: [String]
  AcceleratorTypes: [String]
  DisassociateAcceleratorTypes: Boolean
  DisassociateDefaultCodeRepository: Boolean
  DisassociateAdditionalCodeRepositories: Boolean
  RootAccess: String
}

input AwsSageMakerUpdateNotebookInstanceLifecycleConfigInput {
  NotebookInstanceLifecycleConfigName: String!
  OnCreate: [AwsSageMakerSe8Input]
  OnStart: [AwsSageMakerSe8Input]
}

type AwsSageMakerUpdatePipelineOutput {
  PipelineArn: String
}

input AwsSageMakerUpdatePipelineInput {
  PipelineName: String!
  PipelineDisplayName: String
  PipelineDefinition: String
  PipelineDescription: String
  RoleArn: String
}

type AwsSageMakerUpdatePipelineExecutionOutput {
  PipelineExecutionArn: String
}

input AwsSageMakerUpdatePipelineExecutionInput {
  PipelineExecutionArn: String!
  PipelineExecutionDescription: String
  PipelineExecutionDisplayName: String
}

type AwsSageMakerUpdateTrainingJobOutput {
  TrainingJobArn: String!
}

input AwsSageMakerUpdateTrainingJobInput {
  TrainingJobName: String!
  ProfilerConfig: AwsSageMakerUpdateTrainingJobProfilerConfigInput
  ProfilerRuleConfigurations: [AwsSageMakerSgqInput]
}

input AwsSageMakerUpdateTrainingJobProfilerConfigInput {
  S3OutputPath: String
  ProfilingIntervalInMilliseconds: JSON
  ProfilingParameters: JSON
  DisableProfiler: Boolean
}

type AwsSageMakerUpdateTrialOutput {
  TrialArn: String
}

input AwsSageMakerUpdateTrialInput {
  TrialName: String!
  DisplayName: String
}

type AwsSageMakerUpdateTrialComponentOutput {
  TrialComponentArn: String
}

input AwsSageMakerUpdateTrialComponentInput {
  TrialComponentName: String!
  DisplayName: String
  Status: AwsSageMakerShaInput
  StartTime: Date
  EndTime: Date
  Parameters: JSON
  ParametersToRemove: [String]
  InputArtifacts: JSON
  InputArtifactsToRemove: [String]
  OutputArtifacts: JSON
  OutputArtifactsToRemove: [String]
}

type AwsSageMakerUpdateUserProfileOutput {
  UserProfileArn: String
}

input AwsSageMakerUpdateUserProfileInput {
  DomainId: String!
  UserProfileName: String!
  UserSettings: AwsSageMakerS78Input
}

type AwsSageMakerUpdateWorkforceOutput {
  Workforce: AwsSageMakerSr2!
}

input AwsSageMakerUpdateWorkforceInput {
  WorkforceName: String!
  SourceIpConfig: AwsSageMakerShzInput
  OidcConfig: AwsSageMakerShwInput
}

type AwsSageMakerUpdateWorkteamOutput {
  Workteam: AwsSageMakerSr6!
}

input AwsSageMakerUpdateWorkteamInput {
  WorkteamName: String!
  MemberDefinitions: [AwsSageMakerSi7Input]
  Description: String
  NotificationConfiguration: AwsSageMakerSifInput
}

"""Amazon SageMaker Feature Store Runtime (2020-07-01)"""
type AwsSageMakerFeatureStoreRuntime {
  batchGetRecord(input: AwsSageMakerFeatureStoreRuntimeBatchGetRecordInput!, config: AwsConfig): AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutput
  deleteRecord(input: AwsSageMakerFeatureStoreRuntimeDeleteRecordInput!, config: AwsConfig): JSON
  getRecord(input: AwsSageMakerFeatureStoreRuntimeGetRecordInput!, config: AwsConfig): AwsSageMakerFeatureStoreRuntimeGetRecordOutput
  putRecord(input: AwsSageMakerFeatureStoreRuntimePutRecordInput!, config: AwsConfig): JSON
}

type AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutput {
  Records: [AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutputRecords]!
  Errors: [AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutputErrors]!
  UnprocessedIdentifiers: [AwsSageMakerFeatureStoreRuntimeS3]!
}

type AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutputRecords {
  FeatureGroupName: String!
  RecordIdentifierValueAsString: String!
  Record: [AwsSageMakerFeatureStoreRuntimeSc]!
}

type AwsSageMakerFeatureStoreRuntimeSc {
  FeatureName: String!
  ValueAsString: String!
}

type AwsSageMakerFeatureStoreRuntimeBatchGetRecordOutputErrors {
  FeatureGroupName: String!
  RecordIdentifierValueAsString: String!
  ErrorCode: String!
  ErrorMessage: String!
}

type AwsSageMakerFeatureStoreRuntimeS3 {
  FeatureGroupName: String!
  RecordIdentifiersValueAsString: [String]!
  FeatureNames: [String]
}

input AwsSageMakerFeatureStoreRuntimeBatchGetRecordInput {
  Identifiers: [AwsSageMakerFeatureStoreRuntimeS3Input]!
}

input AwsSageMakerFeatureStoreRuntimeS3Input {
  FeatureGroupName: String!
  RecordIdentifiersValueAsString: [String]!
  FeatureNames: [String]
}

input AwsSageMakerFeatureStoreRuntimeDeleteRecordInput {
  FeatureGroupName: String!
  RecordIdentifierValueAsString: String!
  EventTime: String!
}

type AwsSageMakerFeatureStoreRuntimeGetRecordOutput {
  Record: [AwsSageMakerFeatureStoreRuntimeSc]
}

input AwsSageMakerFeatureStoreRuntimeGetRecordInput {
  FeatureGroupName: String!
  RecordIdentifierValueAsString: String!
  FeatureNames: [String]
}

input AwsSageMakerFeatureStoreRuntimePutRecordInput {
  FeatureGroupName: String!
  Record: [AwsSageMakerFeatureStoreRuntimeScInput]!
}

input AwsSageMakerFeatureStoreRuntimeScInput {
  FeatureName: String!
  ValueAsString: String!
}

"""Amazon SageMaker Runtime (2017-05-13)"""
type AwsSageMakerRuntime {
  invokeEndpoint(input: AwsSageMakerRuntimeInvokeEndpointInput!, config: AwsConfig): AwsSageMakerRuntimeInvokeEndpointOutput
}

type AwsSageMakerRuntimeInvokeEndpointOutput {
  Body: JSON!
  ContentType: String
  InvokedProductionVariant: String
  CustomAttributes: String
}

input AwsSageMakerRuntimeInvokeEndpointInput {
  EndpointName: String!
  Body: JSON!
  ContentType: String
  Accept: String
  CustomAttributes: String
  TargetModel: String
  TargetVariant: String
  TargetContainerHostname: String
  InferenceId: String
}

"""Amazon Sagemaker Edge Manager (2020-09-23)"""
type AwsSagemakerEdge {
  getDeviceRegistration(input: AwsSagemakerEdgeGetDeviceRegistrationInput!, config: AwsConfig): AwsSagemakerEdgeGetDeviceRegistrationOutput
  sendHeartbeat(input: AwsSagemakerEdgeSendHeartbeatInput!, config: AwsConfig): JSON
}

type AwsSagemakerEdgeGetDeviceRegistrationOutput {
  DeviceRegistration: String
  CacheTTL: String
}

input AwsSagemakerEdgeGetDeviceRegistrationInput {
  DeviceName: String!
  DeviceFleetName: String!
}

input AwsSagemakerEdgeSendHeartbeatInput {
  AgentMetrics: [AwsSagemakerEdgeS8Input]
  Models: [AwsSagemakerEdgeSendHeartbeatModelsInput]
  AgentVersion: String!
  DeviceName: String!
  DeviceFleetName: String!
}

input AwsSagemakerEdgeS8Input {
  Dimension: String
  MetricName: String
  Value: JSON
  Timestamp: Date
}

input AwsSagemakerEdgeSendHeartbeatModelsInput {
  ModelName: String
  ModelVersion: String
  LatestSampleTime: Date
  LatestInference: Date
  ModelMetrics: [AwsSagemakerEdgeS8Input]
}

"""AWS Savings Plans (2019-06-28)"""
type AwsSavingsPlans {
  createSavingsPlan(input: AwsSavingsPlansCreateSavingsPlanInput!, config: AwsConfig): AwsSavingsPlansCreateSavingsPlanOutput
  deleteQueuedSavingsPlan(input: AwsSavingsPlansDeleteQueuedSavingsPlanInput!, config: AwsConfig): JSON
  describeSavingsPlanRates(input: AwsSavingsPlansDescribeSavingsPlanRatesInput!, config: AwsConfig): AwsSavingsPlansDescribeSavingsPlanRatesOutput
  describeSavingsPlans(input: AwsSavingsPlansDescribeSavingsPlansInput, config: AwsConfig): AwsSavingsPlansDescribeSavingsPlansOutput
  describeSavingsPlansOfferingRates(input: AwsSavingsPlansDescribeSavingsPlansOfferingRatesInput, config: AwsConfig): AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutput
  describeSavingsPlansOfferings(input: AwsSavingsPlansDescribeSavingsPlansOfferingsInput, config: AwsConfig): AwsSavingsPlansDescribeSavingsPlansOfferingsOutput
  listTagsForResource(input: AwsSavingsPlansListTagsForResourceInput!, config: AwsConfig): AwsSavingsPlansListTagsForResourceOutput
  tagResource(input: AwsSavingsPlansTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSavingsPlansUntagResourceInput!, config: AwsConfig): JSON
}

type AwsSavingsPlansCreateSavingsPlanOutput {
  savingsPlanId: String
}

input AwsSavingsPlansCreateSavingsPlanInput {
  savingsPlanOfferingId: String!
  commitment: String!
  upfrontPaymentAmount: String
  purchaseTime: Date
  clientToken: String
  tags: JSON
}

input AwsSavingsPlansDeleteQueuedSavingsPlanInput {
  savingsPlanId: String!
}

type AwsSavingsPlansDescribeSavingsPlanRatesOutput {
  savingsPlanId: String
  searchResults: [AwsSavingsPlansDescribeSavingsPlanRatesOutputSearchResults]
  nextToken: String
}

type AwsSavingsPlansDescribeSavingsPlanRatesOutputSearchResults {
  rate: String
  currency: String
  unit: String
  productType: String
  serviceCode: String
  usageType: String
  operation: String
  properties: [AwsSavingsPlansDescribeSavingsPlanRatesOutputSearchResultsProperties]
}

type AwsSavingsPlansDescribeSavingsPlanRatesOutputSearchResultsProperties {
  name: String
  value: String
}

input AwsSavingsPlansDescribeSavingsPlanRatesInput {
  savingsPlanId: String!
  filters: [AwsSavingsPlansDescribeSavingsPlanRatesFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsSavingsPlansDescribeSavingsPlanRatesFiltersInput {
  name: String
  values: [String]
}

type AwsSavingsPlansDescribeSavingsPlansOutput {
  savingsPlans: [AwsSavingsPlansDescribeSavingsPlansOutputSavingsPlans]
  nextToken: String
}

type AwsSavingsPlansDescribeSavingsPlansOutputSavingsPlans {
  offeringId: String
  savingsPlanId: String
  savingsPlanArn: String
  description: String
  start: String
  end: String
  state: String
  region: String
  ec2InstanceFamily: String
  savingsPlanType: String
  paymentOption: String
  productTypes: [String]
  currency: String
  commitment: String
  upfrontPaymentAmount: String
  recurringPaymentAmount: String
  termDurationInSeconds: JSON
  tags: JSON
}

input AwsSavingsPlansDescribeSavingsPlansInput {
  savingsPlanArns: [String]
  savingsPlanIds: [String]
  nextToken: String
  maxResults: Int
  states: [String]
  filters: [AwsSavingsPlansDescribeSavingsPlansFiltersInput]
}

input AwsSavingsPlansDescribeSavingsPlansFiltersInput {
  name: String
  values: [String]
}

type AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutput {
  searchResults: [AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResults]
  nextToken: String
}

type AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResults {
  savingsPlanOffering: AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResultsSavingsPlanOffering
  rate: String
  unit: String
  productType: String
  serviceCode: String
  usageType: String
  operation: String
  properties: [AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResultsProperties]
}

type AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResultsSavingsPlanOffering {
  offeringId: String
  paymentOption: String
  planType: String
  durationSeconds: JSON
  currency: String
  planDescription: String
}

type AwsSavingsPlansDescribeSavingsPlansOfferingRatesOutputSearchResultsProperties {
  name: String
  value: String
}

input AwsSavingsPlansDescribeSavingsPlansOfferingRatesInput {
  savingsPlanOfferingIds: [String]
  savingsPlanPaymentOptions: [String]
  savingsPlanTypes: [String]
  products: [String]
  serviceCodes: [String]
  usageTypes: [String]
  operations: [String]
  filters: [AwsSavingsPlansDescribeSavingsPlansOfferingRatesFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsSavingsPlansDescribeSavingsPlansOfferingRatesFiltersInput {
  name: String
  values: [String]
}

type AwsSavingsPlansDescribeSavingsPlansOfferingsOutput {
  searchResults: [AwsSavingsPlansDescribeSavingsPlansOfferingsOutputSearchResults]
  nextToken: String
}

type AwsSavingsPlansDescribeSavingsPlansOfferingsOutputSearchResults {
  offeringId: String
  productTypes: [String]
  planType: String
  description: String
  paymentOption: String
  durationSeconds: JSON
  currency: String
  serviceCode: String
  usageType: String
  operation: String
  properties: [AwsSavingsPlansDescribeSavingsPlansOfferingsOutputSearchResultsProperties]
}

type AwsSavingsPlansDescribeSavingsPlansOfferingsOutputSearchResultsProperties {
  name: String
  value: String
}

input AwsSavingsPlansDescribeSavingsPlansOfferingsInput {
  offeringIds: [String]
  paymentOptions: [String]
  productType: String
  planTypes: [String]
  durations: [JSON]
  currencies: [String]
  descriptions: [String]
  serviceCodes: [String]
  usageTypes: [String]
  operations: [String]
  filters: [AwsSavingsPlansDescribeSavingsPlansOfferingsFiltersInput]
  nextToken: String
  maxResults: Int
}

input AwsSavingsPlansDescribeSavingsPlansOfferingsFiltersInput {
  name: String
  values: [String]
}

type AwsSavingsPlansListTagsForResourceOutput {
  tags: JSON
}

input AwsSavingsPlansListTagsForResourceInput {
  resourceArn: String!
}

input AwsSavingsPlansTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsSavingsPlansUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Schemas (2019-12-02)"""
type AwsSchemas {
  createDiscoverer(input: AwsSchemasCreateDiscovererInput!, config: AwsConfig): AwsSchemasCreateDiscovererOutput
  createRegistry(input: AwsSchemasCreateRegistryInput!, config: AwsConfig): AwsSchemasCreateRegistryOutput
  createSchema(input: AwsSchemasCreateSchemaInput!, config: AwsConfig): AwsSchemasCreateSchemaOutput
  deleteDiscoverer(input: AwsSchemasDeleteDiscovererInput!, config: AwsConfig): JSON
  deleteRegistry(input: AwsSchemasDeleteRegistryInput!, config: AwsConfig): JSON
  deleteResourcePolicy(input: AwsSchemasDeleteResourcePolicyInput, config: AwsConfig): JSON
  deleteSchema(input: AwsSchemasDeleteSchemaInput!, config: AwsConfig): JSON
  deleteSchemaVersion(input: AwsSchemasDeleteSchemaVersionInput!, config: AwsConfig): JSON
  describeCodeBinding(input: AwsSchemasDescribeCodeBindingInput!, config: AwsConfig): AwsSchemasDescribeCodeBindingOutput
  describeDiscoverer(input: AwsSchemasDescribeDiscovererInput!, config: AwsConfig): AwsSchemasDescribeDiscovererOutput
  describeRegistry(input: AwsSchemasDescribeRegistryInput!, config: AwsConfig): AwsSchemasDescribeRegistryOutput
  describeSchema(input: AwsSchemasDescribeSchemaInput!, config: AwsConfig): AwsSchemasDescribeSchemaOutput
  exportSchema(input: AwsSchemasExportSchemaInput!, config: AwsConfig): AwsSchemasExportSchemaOutput
  getCodeBindingSource(input: AwsSchemasGetCodeBindingSourceInput!, config: AwsConfig): AwsSchemasGetCodeBindingSourceOutput
  getDiscoveredSchema(input: AwsSchemasGetDiscoveredSchemaInput!, config: AwsConfig): AwsSchemasGetDiscoveredSchemaOutput
  getResourcePolicy(input: AwsSchemasGetResourcePolicyInput, config: AwsConfig): AwsSchemasGetResourcePolicyOutput
  listDiscoverers(input: AwsSchemasListDiscoverersInput, config: AwsConfig): AwsSchemasListDiscoverersOutput
  listRegistries(input: AwsSchemasListRegistriesInput, config: AwsConfig): AwsSchemasListRegistriesOutput
  listSchemaVersions(input: AwsSchemasListSchemaVersionsInput!, config: AwsConfig): AwsSchemasListSchemaVersionsOutput
  listSchemas(input: AwsSchemasListSchemasInput!, config: AwsConfig): AwsSchemasListSchemasOutput
  listTagsForResource(input: AwsSchemasListTagsForResourceInput!, config: AwsConfig): AwsSchemasListTagsForResourceOutput
  putCodeBinding(input: AwsSchemasPutCodeBindingInput!, config: AwsConfig): AwsSchemasPutCodeBindingOutput
  putResourcePolicy(input: AwsSchemasPutResourcePolicyInput!, config: AwsConfig): AwsSchemasPutResourcePolicyOutput
  searchSchemas(input: AwsSchemasSearchSchemasInput!, config: AwsConfig): AwsSchemasSearchSchemasOutput
  startDiscoverer(input: AwsSchemasStartDiscovererInput!, config: AwsConfig): AwsSchemasStartDiscovererOutput
  stopDiscoverer(input: AwsSchemasStopDiscovererInput!, config: AwsConfig): AwsSchemasStopDiscovererOutput
  tagResource(input: AwsSchemasTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSchemasUntagResourceInput!, config: AwsConfig): JSON
  updateDiscoverer(input: AwsSchemasUpdateDiscovererInput!, config: AwsConfig): AwsSchemasUpdateDiscovererOutput
  updateRegistry(input: AwsSchemasUpdateRegistryInput!, config: AwsConfig): AwsSchemasUpdateRegistryOutput
  updateSchema(input: AwsSchemasUpdateSchemaInput!, config: AwsConfig): AwsSchemasUpdateSchemaOutput
}

type AwsSchemasCreateDiscovererOutput {
  Description: String
  DiscovererArn: String
  DiscovererId: String
  SourceArn: String
  State: String
  Tags: JSON
}

input AwsSchemasCreateDiscovererInput {
  Description: String
  SourceArn: String!
  Tags: JSON
}

type AwsSchemasCreateRegistryOutput {
  Description: String
  RegistryArn: String
  RegistryName: String
  Tags: JSON
}

input AwsSchemasCreateRegistryInput {
  Description: String
  RegistryName: String!
  Tags: JSON
}

type AwsSchemasCreateSchemaOutput {
  Description: String
  LastModified: Date
  SchemaArn: String
  SchemaName: String
  SchemaVersion: String
  Tags: JSON
  Type: String
  VersionCreatedDate: Date
}

input AwsSchemasCreateSchemaInput {
  Content: String!
  Description: String
  RegistryName: String!
  SchemaName: String!
  Tags: JSON
  Type: String!
}

input AwsSchemasDeleteDiscovererInput {
  DiscovererId: String!
}

input AwsSchemasDeleteRegistryInput {
  RegistryName: String!
}

input AwsSchemasDeleteResourcePolicyInput {
  RegistryName: String
}

input AwsSchemasDeleteSchemaInput {
  RegistryName: String!
  SchemaName: String!
}

input AwsSchemasDeleteSchemaVersionInput {
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String!
}

type AwsSchemasDescribeCodeBindingOutput {
  CreationDate: Date
  LastModified: Date
  SchemaVersion: String
  Status: String
}

input AwsSchemasDescribeCodeBindingInput {
  Language: String!
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String
}

type AwsSchemasDescribeDiscovererOutput {
  Description: String
  DiscovererArn: String
  DiscovererId: String
  SourceArn: String
  State: String
  Tags: JSON
}

input AwsSchemasDescribeDiscovererInput {
  DiscovererId: String!
}

type AwsSchemasDescribeRegistryOutput {
  Description: String
  RegistryArn: String
  RegistryName: String
  Tags: JSON
}

input AwsSchemasDescribeRegistryInput {
  RegistryName: String!
}

type AwsSchemasDescribeSchemaOutput {
  Content: String
  Description: String
  LastModified: Date
  SchemaArn: String
  SchemaName: String
  SchemaVersion: String
  Tags: JSON
  Type: String
  VersionCreatedDate: Date
}

input AwsSchemasDescribeSchemaInput {
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String
}

type AwsSchemasExportSchemaOutput {
  Content: String
  SchemaArn: String
  SchemaName: String
  SchemaVersion: String
  Type: String
}

input AwsSchemasExportSchemaInput {
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String
  Type: String!
}

type AwsSchemasGetCodeBindingSourceOutput {
  Body: JSON
}

input AwsSchemasGetCodeBindingSourceInput {
  Language: String!
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String
}

type AwsSchemasGetDiscoveredSchemaOutput {
  Content: String
}

input AwsSchemasGetDiscoveredSchemaInput {
  Events: [String]!
  Type: String!
}

type AwsSchemasGetResourcePolicyOutput {
  Policy: String
  RevisionId: String
}

input AwsSchemasGetResourcePolicyInput {
  RegistryName: String
}

type AwsSchemasListDiscoverersOutput {
  Discoverers: [AwsSchemasListDiscoverersOutputDiscoverers]
  NextToken: String
}

type AwsSchemasListDiscoverersOutputDiscoverers {
  DiscovererArn: String
  DiscovererId: String
  SourceArn: String
  State: String
  Tags: JSON
}

input AwsSchemasListDiscoverersInput {
  DiscovererIdPrefix: String
  Limit: Int
  NextToken: String
  SourceArnPrefix: String
}

type AwsSchemasListRegistriesOutput {
  NextToken: String
  Registries: [AwsSchemasListRegistriesOutputRegistries]
}

type AwsSchemasListRegistriesOutputRegistries {
  RegistryArn: String
  RegistryName: String
  Tags: JSON
}

input AwsSchemasListRegistriesInput {
  Limit: Int
  NextToken: String
  RegistryNamePrefix: String
  Scope: String
}

type AwsSchemasListSchemaVersionsOutput {
  NextToken: String
  SchemaVersions: [AwsSchemasListSchemaVersionsOutputSchemaVersions]
}

type AwsSchemasListSchemaVersionsOutputSchemaVersions {
  SchemaArn: String
  SchemaName: String
  SchemaVersion: String
  Type: String
}

input AwsSchemasListSchemaVersionsInput {
  Limit: Int
  NextToken: String
  RegistryName: String!
  SchemaName: String!
}

type AwsSchemasListSchemasOutput {
  NextToken: String
  Schemas: [AwsSchemasListSchemasOutputSchemas]
}

type AwsSchemasListSchemasOutputSchemas {
  LastModified: Date
  SchemaArn: String
  SchemaName: String
  Tags: JSON
  VersionCount: JSON
}

input AwsSchemasListSchemasInput {
  Limit: Int
  NextToken: String
  RegistryName: String!
  SchemaNamePrefix: String
}

type AwsSchemasListTagsForResourceOutput {
  Tags: JSON
}

input AwsSchemasListTagsForResourceInput {
  ResourceArn: String!
}

type AwsSchemasPutCodeBindingOutput {
  CreationDate: Date
  LastModified: Date
  SchemaVersion: String
  Status: String
}

input AwsSchemasPutCodeBindingInput {
  Language: String!
  RegistryName: String!
  SchemaName: String!
  SchemaVersion: String
}

type AwsSchemasPutResourcePolicyOutput {
  Policy: String
  RevisionId: String
}

input AwsSchemasPutResourcePolicyInput {
  Policy: String!
  RegistryName: String
  RevisionId: String
}

type AwsSchemasSearchSchemasOutput {
  NextToken: String
  Schemas: [AwsSchemasSearchSchemasOutputSchemas]
}

type AwsSchemasSearchSchemasOutputSchemas {
  RegistryName: String
  SchemaArn: String
  SchemaName: String
  SchemaVersions: [AwsSchemasSearchSchemasOutputSchemasSchemaVersions]
}

type AwsSchemasSearchSchemasOutputSchemasSchemaVersions {
  CreatedDate: Date
  SchemaVersion: String
  Type: String
}

input AwsSchemasSearchSchemasInput {
  Keywords: String!
  Limit: Int
  NextToken: String
  RegistryName: String!
}

type AwsSchemasStartDiscovererOutput {
  DiscovererId: String
  State: String
}

input AwsSchemasStartDiscovererInput {
  DiscovererId: String!
}

type AwsSchemasStopDiscovererOutput {
  DiscovererId: String
  State: String
}

input AwsSchemasStopDiscovererInput {
  DiscovererId: String!
}

input AwsSchemasTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsSchemasUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

type AwsSchemasUpdateDiscovererOutput {
  Description: String
  DiscovererArn: String
  DiscovererId: String
  SourceArn: String
  State: String
  Tags: JSON
}

input AwsSchemasUpdateDiscovererInput {
  Description: String
  DiscovererId: String!
}

type AwsSchemasUpdateRegistryOutput {
  Description: String
  RegistryArn: String
  RegistryName: String
  Tags: JSON
}

input AwsSchemasUpdateRegistryInput {
  Description: String
  RegistryName: String!
}

type AwsSchemasUpdateSchemaOutput {
  Description: String
  LastModified: Date
  SchemaArn: String
  SchemaName: String
  SchemaVersion: String
  Tags: JSON
  Type: String
  VersionCreatedDate: Date
}

input AwsSchemasUpdateSchemaInput {
  ClientTokenId: String
  Content: String
  Description: String
  RegistryName: String!
  SchemaName: String!
  Type: String
}

"""AWS Secrets Manager (2017-10-17)"""
type AwsSecretsManager {
  cancelRotateSecret(input: AwsSecretsManagerCancelRotateSecretInput!, config: AwsConfig): AwsSecretsManagerCancelRotateSecretOutput
  createSecret(input: AwsSecretsManagerCreateSecretInput!, config: AwsConfig): AwsSecretsManagerCreateSecretOutput
  deleteResourcePolicy(input: AwsSecretsManagerDeleteResourcePolicyInput!, config: AwsConfig): AwsSecretsManagerDeleteResourcePolicyOutput
  deleteSecret(input: AwsSecretsManagerDeleteSecretInput!, config: AwsConfig): AwsSecretsManagerDeleteSecretOutput
  describeSecret(input: AwsSecretsManagerDescribeSecretInput!, config: AwsConfig): AwsSecretsManagerDescribeSecretOutput
  getRandomPassword(input: AwsSecretsManagerGetRandomPasswordInput, config: AwsConfig): AwsSecretsManagerGetRandomPasswordOutput
  getResourcePolicy(input: AwsSecretsManagerGetResourcePolicyInput!, config: AwsConfig): AwsSecretsManagerGetResourcePolicyOutput
  getSecretValue(input: AwsSecretsManagerGetSecretValueInput!, config: AwsConfig): AwsSecretsManagerGetSecretValueOutput
  listSecretVersionIds(input: AwsSecretsManagerListSecretVersionIdsInput!, config: AwsConfig): AwsSecretsManagerListSecretVersionIdsOutput
  listSecrets(input: AwsSecretsManagerListSecretsInput, config: AwsConfig): AwsSecretsManagerListSecretsOutput
  putResourcePolicy(input: AwsSecretsManagerPutResourcePolicyInput!, config: AwsConfig): AwsSecretsManagerPutResourcePolicyOutput
  putSecretValue(input: AwsSecretsManagerPutSecretValueInput!, config: AwsConfig): AwsSecretsManagerPutSecretValueOutput
  removeRegionsFromReplication(input: AwsSecretsManagerRemoveRegionsFromReplicationInput!, config: AwsConfig): AwsSecretsManagerRemoveRegionsFromReplicationOutput
  replicateSecretToRegions(input: AwsSecretsManagerReplicateSecretToRegionsInput!, config: AwsConfig): AwsSecretsManagerReplicateSecretToRegionsOutput
  restoreSecret(input: AwsSecretsManagerRestoreSecretInput!, config: AwsConfig): AwsSecretsManagerRestoreSecretOutput
  rotateSecret(input: AwsSecretsManagerRotateSecretInput!, config: AwsConfig): AwsSecretsManagerRotateSecretOutput
  stopReplicationToReplica(input: AwsSecretsManagerStopReplicationToReplicaInput!, config: AwsConfig): AwsSecretsManagerStopReplicationToReplicaOutput
  tagResource(input: AwsSecretsManagerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSecretsManagerUntagResourceInput!, config: AwsConfig): JSON
  updateSecret(input: AwsSecretsManagerUpdateSecretInput!, config: AwsConfig): AwsSecretsManagerUpdateSecretOutput
  updateSecretVersionStage(input: AwsSecretsManagerUpdateSecretVersionStageInput!, config: AwsConfig): AwsSecretsManagerUpdateSecretVersionStageOutput
  validateResourcePolicy(input: AwsSecretsManagerValidateResourcePolicyInput!, config: AwsConfig): AwsSecretsManagerValidateResourcePolicyOutput
}

type AwsSecretsManagerCancelRotateSecretOutput {
  ARN: String
  Name: String
  VersionId: String
}

input AwsSecretsManagerCancelRotateSecretInput {
  SecretId: String!
}

type AwsSecretsManagerCreateSecretOutput {
  ARN: String
  Name: String
  VersionId: String
  ReplicationStatus: [AwsSecretsManagerSn]
}

type AwsSecretsManagerSn {
  Region: String
  KmsKeyId: String
  Status: String
  StatusMessage: String
  LastAccessedDate: Date
}

input AwsSecretsManagerCreateSecretInput {
  Name: String!
  ClientRequestToken: String
  Description: String
  KmsKeyId: String
  SecretBinary: JSON
  SecretString: String
  Tags: [AwsSecretsManagerSeInput]
  AddReplicaRegions: [AwsSecretsManagerSiInput]
  ForceOverwriteReplicaSecret: Boolean
}

input AwsSecretsManagerSeInput {
  Key: String
  Value: String
}

input AwsSecretsManagerSiInput {
  Region: String
  KmsKeyId: String
}

type AwsSecretsManagerDeleteResourcePolicyOutput {
  ARN: String
  Name: String
}

input AwsSecretsManagerDeleteResourcePolicyInput {
  SecretId: String!
}

type AwsSecretsManagerDeleteSecretOutput {
  ARN: String
  Name: String
  DeletionDate: Date
}

input AwsSecretsManagerDeleteSecretInput {
  SecretId: String!
  RecoveryWindowInDays: JSON
  ForceDeleteWithoutRecovery: Boolean
}

type AwsSecretsManagerDescribeSecretOutput {
  ARN: String
  Name: String
  Description: String
  KmsKeyId: String
  RotationEnabled: Boolean
  RotationLambdaARN: String
  RotationRules: AwsSecretsManagerS12
  LastRotatedDate: Date
  LastChangedDate: Date
  LastAccessedDate: Date
  DeletedDate: Date
  Tags: [AwsSecretsManagerSe]
  VersionIdsToStages: JSON
  OwningService: String
  CreatedDate: Date
  PrimaryRegion: String
  ReplicationStatus: [AwsSecretsManagerSn]
}

type AwsSecretsManagerS12 {
  AutomaticallyAfterDays: JSON
}

type AwsSecretsManagerSe {
  Key: String
  Value: String
}

input AwsSecretsManagerDescribeSecretInput {
  SecretId: String!
}

type AwsSecretsManagerGetRandomPasswordOutput {
  RandomPassword: String
}

input AwsSecretsManagerGetRandomPasswordInput {
  PasswordLength: JSON
  ExcludeCharacters: String
  ExcludeNumbers: Boolean
  ExcludePunctuation: Boolean
  ExcludeUppercase: Boolean
  ExcludeLowercase: Boolean
  IncludeSpace: Boolean
  RequireEachIncludedType: Boolean
}

type AwsSecretsManagerGetResourcePolicyOutput {
  ARN: String
  Name: String
  ResourcePolicy: String
}

input AwsSecretsManagerGetResourcePolicyInput {
  SecretId: String!
}

type AwsSecretsManagerGetSecretValueOutput {
  ARN: String
  Name: String
  VersionId: String
  SecretBinary: JSON
  SecretString: String
  VersionStages: [String]
  CreatedDate: Date
}

input AwsSecretsManagerGetSecretValueInput {
  SecretId: String!
  VersionId: String
  VersionStage: String
}

type AwsSecretsManagerListSecretVersionIdsOutput {
  Versions: [AwsSecretsManagerListSecretVersionIdsOutputVersions]
  NextToken: String
  ARN: String
  Name: String
}

type AwsSecretsManagerListSecretVersionIdsOutputVersions {
  VersionId: String
  VersionStages: [String]
  LastAccessedDate: Date
  CreatedDate: Date
}

input AwsSecretsManagerListSecretVersionIdsInput {
  SecretId: String!
  MaxResults: Int
  NextToken: String
  IncludeDeprecated: Boolean
}

type AwsSecretsManagerListSecretsOutput {
  SecretList: [AwsSecretsManagerListSecretsOutputSecretList]
  NextToken: String
}

type AwsSecretsManagerListSecretsOutputSecretList {
  ARN: String
  Name: String
  Description: String
  KmsKeyId: String
  RotationEnabled: Boolean
  RotationLambdaARN: String
  RotationRules: AwsSecretsManagerS12
  LastRotatedDate: Date
  LastChangedDate: Date
  LastAccessedDate: Date
  DeletedDate: Date
  Tags: [AwsSecretsManagerSe]
  SecretVersionsToStages: JSON
  OwningService: String
  CreatedDate: Date
  PrimaryRegion: String
}

input AwsSecretsManagerListSecretsInput {
  MaxResults: Int
  NextToken: String
  Filters: [AwsSecretsManagerListSecretsFiltersInput]
  SortOrder: String
}

input AwsSecretsManagerListSecretsFiltersInput {
  Key: String
  Values: [String]
}

type AwsSecretsManagerPutResourcePolicyOutput {
  ARN: String
  Name: String
}

input AwsSecretsManagerPutResourcePolicyInput {
  SecretId: String!
  ResourcePolicy: String!
  BlockPublicPolicy: Boolean
}

type AwsSecretsManagerPutSecretValueOutput {
  ARN: String
  Name: String
  VersionId: String
  VersionStages: [String]
}

input AwsSecretsManagerPutSecretValueInput {
  SecretId: String!
  ClientRequestToken: String
  SecretBinary: JSON
  SecretString: String
  VersionStages: [String]
}

type AwsSecretsManagerRemoveRegionsFromReplicationOutput {
  ARN: String
  ReplicationStatus: [AwsSecretsManagerSn]
}

input AwsSecretsManagerRemoveRegionsFromReplicationInput {
  SecretId: String!
  RemoveReplicaRegions: [String]!
}

type AwsSecretsManagerReplicateSecretToRegionsOutput {
  ARN: String
  ReplicationStatus: [AwsSecretsManagerSn]
}

input AwsSecretsManagerReplicateSecretToRegionsInput {
  SecretId: String!
  AddReplicaRegions: [AwsSecretsManagerSiInput]!
  ForceOverwriteReplicaSecret: Boolean
}

type AwsSecretsManagerRestoreSecretOutput {
  ARN: String
  Name: String
}

input AwsSecretsManagerRestoreSecretInput {
  SecretId: String!
}

type AwsSecretsManagerRotateSecretOutput {
  ARN: String
  Name: String
  VersionId: String
}

input AwsSecretsManagerRotateSecretInput {
  SecretId: String!
  ClientRequestToken: String
  RotationLambdaARN: String
  RotationRules: AwsSecretsManagerS12Input
}

input AwsSecretsManagerS12Input {
  AutomaticallyAfterDays: JSON
}

type AwsSecretsManagerStopReplicationToReplicaOutput {
  ARN: String
}

input AwsSecretsManagerStopReplicationToReplicaInput {
  SecretId: String!
}

input AwsSecretsManagerTagResourceInput {
  SecretId: String!
  Tags: [AwsSecretsManagerSeInput]!
}

input AwsSecretsManagerUntagResourceInput {
  SecretId: String!
  TagKeys: [String]!
}

type AwsSecretsManagerUpdateSecretOutput {
  ARN: String
  Name: String
  VersionId: String
}

input AwsSecretsManagerUpdateSecretInput {
  SecretId: String!
  ClientRequestToken: String
  Description: String
  KmsKeyId: String
  SecretBinary: JSON
  SecretString: String
}

type AwsSecretsManagerUpdateSecretVersionStageOutput {
  ARN: String
  Name: String
}

input AwsSecretsManagerUpdateSecretVersionStageInput {
  SecretId: String!
  VersionStage: String!
  RemoveFromVersionId: String
  MoveToVersionId: String
}

type AwsSecretsManagerValidateResourcePolicyOutput {
  PolicyValidationPassed: Boolean
  ValidationErrors: [AwsSecretsManagerValidateResourcePolicyOutputValidationErrors]
}

type AwsSecretsManagerValidateResourcePolicyOutputValidationErrors {
  CheckName: String
  ErrorMessage: String
}

input AwsSecretsManagerValidateResourcePolicyInput {
  SecretId: String
  ResourcePolicy: String!
}

"""AWS SecurityHub (2018-10-26)"""
type AwsSecurityHub {
  acceptAdministratorInvitation(input: AwsSecurityHubAcceptAdministratorInvitationInput!, config: AwsConfig): JSON
  acceptInvitation(input: AwsSecurityHubAcceptInvitationInput!, config: AwsConfig): JSON
  batchDisableStandards(input: AwsSecurityHubBatchDisableStandardsInput!, config: AwsConfig): AwsSecurityHubBatchDisableStandardsOutput
  batchEnableStandards(input: AwsSecurityHubBatchEnableStandardsInput!, config: AwsConfig): AwsSecurityHubBatchEnableStandardsOutput
  batchImportFindings(input: AwsSecurityHubBatchImportFindingsInput!, config: AwsConfig): AwsSecurityHubBatchImportFindingsOutput
  batchUpdateFindings(input: AwsSecurityHubBatchUpdateFindingsInput!, config: AwsConfig): AwsSecurityHubBatchUpdateFindingsOutput
  createActionTarget(input: AwsSecurityHubCreateActionTargetInput!, config: AwsConfig): AwsSecurityHubCreateActionTargetOutput
  createInsight(input: AwsSecurityHubCreateInsightInput!, config: AwsConfig): AwsSecurityHubCreateInsightOutput
  createMembers(input: AwsSecurityHubCreateMembersInput!, config: AwsConfig): AwsSecurityHubCreateMembersOutput
  declineInvitations(input: AwsSecurityHubDeclineInvitationsInput!, config: AwsConfig): AwsSecurityHubDeclineInvitationsOutput
  deleteActionTarget(input: AwsSecurityHubDeleteActionTargetInput!, config: AwsConfig): AwsSecurityHubDeleteActionTargetOutput
  deleteInsight(input: AwsSecurityHubDeleteInsightInput!, config: AwsConfig): AwsSecurityHubDeleteInsightOutput
  deleteInvitations(input: AwsSecurityHubDeleteInvitationsInput!, config: AwsConfig): AwsSecurityHubDeleteInvitationsOutput
  deleteMembers(input: AwsSecurityHubDeleteMembersInput!, config: AwsConfig): AwsSecurityHubDeleteMembersOutput
  describeActionTargets(input: AwsSecurityHubDescribeActionTargetsInput, config: AwsConfig): AwsSecurityHubDescribeActionTargetsOutput
  describeHub(input: AwsSecurityHubDescribeHubInput, config: AwsConfig): AwsSecurityHubDescribeHubOutput
  describeOrganizationConfiguration(input: JSON, config: AwsConfig): AwsSecurityHubDescribeOrganizationConfigurationOutput
  describeProducts(input: AwsSecurityHubDescribeProductsInput, config: AwsConfig): AwsSecurityHubDescribeProductsOutput
  describeStandards(input: AwsSecurityHubDescribeStandardsInput, config: AwsConfig): AwsSecurityHubDescribeStandardsOutput
  describeStandardsControls(input: AwsSecurityHubDescribeStandardsControlsInput!, config: AwsConfig): AwsSecurityHubDescribeStandardsControlsOutput
  disableImportFindingsForProduct(input: AwsSecurityHubDisableImportFindingsForProductInput!, config: AwsConfig): JSON
  disableOrganizationAdminAccount(input: AwsSecurityHubDisableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  disableSecurityHub(input: JSON, config: AwsConfig): JSON
  disassociateFromAdministratorAccount(input: JSON, config: AwsConfig): JSON
  disassociateFromMasterAccount(input: JSON, config: AwsConfig): JSON
  disassociateMembers(input: AwsSecurityHubDisassociateMembersInput!, config: AwsConfig): JSON
  enableImportFindingsForProduct(input: AwsSecurityHubEnableImportFindingsForProductInput!, config: AwsConfig): AwsSecurityHubEnableImportFindingsForProductOutput
  enableOrganizationAdminAccount(input: AwsSecurityHubEnableOrganizationAdminAccountInput!, config: AwsConfig): JSON
  enableSecurityHub(input: AwsSecurityHubEnableSecurityHubInput, config: AwsConfig): JSON
  getAdministratorAccount(input: JSON, config: AwsConfig): AwsSecurityHubGetAdministratorAccountOutput
  getEnabledStandards(input: AwsSecurityHubGetEnabledStandardsInput, config: AwsConfig): AwsSecurityHubGetEnabledStandardsOutput
  getFindings(input: AwsSecurityHubGetFindingsInput, config: AwsConfig): AwsSecurityHubGetFindingsOutput
  getInsightResults(input: AwsSecurityHubGetInsightResultsInput!, config: AwsConfig): AwsSecurityHubGetInsightResultsOutput
  getInsights(input: AwsSecurityHubGetInsightsInput, config: AwsConfig): AwsSecurityHubGetInsightsOutput
  getInvitationsCount(input: JSON, config: AwsConfig): AwsSecurityHubGetInvitationsCountOutput
  getMasterAccount(input: JSON, config: AwsConfig): AwsSecurityHubGetMasterAccountOutput
  getMembers(input: AwsSecurityHubGetMembersInput!, config: AwsConfig): AwsSecurityHubGetMembersOutput
  inviteMembers(input: AwsSecurityHubInviteMembersInput!, config: AwsConfig): AwsSecurityHubInviteMembersOutput
  listEnabledProductsForImport(input: AwsSecurityHubListEnabledProductsForImportInput, config: AwsConfig): AwsSecurityHubListEnabledProductsForImportOutput
  listInvitations(input: AwsSecurityHubListInvitationsInput, config: AwsConfig): AwsSecurityHubListInvitationsOutput
  listMembers(input: AwsSecurityHubListMembersInput, config: AwsConfig): AwsSecurityHubListMembersOutput
  listOrganizationAdminAccounts(input: AwsSecurityHubListOrganizationAdminAccountsInput, config: AwsConfig): AwsSecurityHubListOrganizationAdminAccountsOutput
  listTagsForResource(input: AwsSecurityHubListTagsForResourceInput!, config: AwsConfig): AwsSecurityHubListTagsForResourceOutput
  tagResource(input: AwsSecurityHubTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSecurityHubUntagResourceInput!, config: AwsConfig): JSON
  updateActionTarget(input: AwsSecurityHubUpdateActionTargetInput!, config: AwsConfig): JSON
  updateFindings(input: AwsSecurityHubUpdateFindingsInput!, config: AwsConfig): JSON
  updateInsight(input: AwsSecurityHubUpdateInsightInput!, config: AwsConfig): JSON
  updateOrganizationConfiguration(input: AwsSecurityHubUpdateOrganizationConfigurationInput!, config: AwsConfig): JSON
  updateSecurityHubConfiguration(input: AwsSecurityHubUpdateSecurityHubConfigurationInput, config: AwsConfig): JSON
  updateStandardsControl(input: AwsSecurityHubUpdateStandardsControlInput!, config: AwsConfig): JSON
}

input AwsSecurityHubAcceptAdministratorInvitationInput {
  AdministratorId: String!
  InvitationId: String!
}

input AwsSecurityHubAcceptInvitationInput {
  MasterId: String!
  InvitationId: String!
}

type AwsSecurityHubBatchDisableStandardsOutput {
  StandardsSubscriptions: [AwsSecurityHubS9]
}

type AwsSecurityHubS9 {
  StandardsSubscriptionArn: String!
  StandardsArn: String!
  StandardsInput: JSON!
  StandardsStatus: String!
}

input AwsSecurityHubBatchDisableStandardsInput {
  StandardsSubscriptionArns: [String]!
}

type AwsSecurityHubBatchEnableStandardsOutput {
  StandardsSubscriptions: [AwsSecurityHubS9]
}

input AwsSecurityHubBatchEnableStandardsInput {
  StandardsSubscriptionRequests: [AwsSecurityHubBatchEnableStandardsStandardsSubscriptionRequestsInput]!
}

input AwsSecurityHubBatchEnableStandardsStandardsSubscriptionRequestsInput {
  StandardsArn: String!
  StandardsInput: JSON
}

type AwsSecurityHubBatchImportFindingsOutput {
  FailedCount: Int!
  SuccessCount: Int!
  FailedFindings: [AwsSecurityHubBatchImportFindingsOutputFailedFindings]
}

type AwsSecurityHubBatchImportFindingsOutputFailedFindings {
  Id: String!
  ErrorCode: String!
  ErrorMessage: String!
}

input AwsSecurityHubBatchImportFindingsInput {
  Findings: [AwsSecurityHubSjInput]!
}

input AwsSecurityHubSjInput {
  SchemaVersion: String!
  Id: String!
  ProductArn: String!
  GeneratorId: String!
  AwsAccountId: String!
  Types: [String]
  FirstObservedAt: String
  LastObservedAt: String
  CreatedAt: String!
  UpdatedAt: String!
  Severity: AwsSecurityHubSjSeverityInput
  Confidence: Int
  Criticality: Int
  Title: String!
  Description: String!
  Remediation: AwsSecurityHubSjRemediationInput
  SourceUrl: String
  ProductFields: JSON
  UserDefinedFields: JSON
  Malware: [AwsSecurityHubSjMalwareInput]
  Network: AwsSecurityHubSjNetworkInput
  NetworkPath: [AwsSecurityHubSjNetworkPathInput]
  Process: AwsSecurityHubSjProcessInput
  ThreatIntelIndicators: [AwsSecurityHubSjThreatIntelIndicatorsInput]
  Resources: [AwsSecurityHubSjResourcesInput]!
  Compliance: AwsSecurityHubSjComplianceInput
  VerificationState: String
  WorkflowState: String
  Workflow: AwsSecurityHubSjWorkflowInput
  RecordState: String
  RelatedFindings: [AwsSecurityHubSbfInput]
  Note: AwsSecurityHubSjNoteInput
  Vulnerabilities: [AwsSecurityHubSjVulnerabilitiesInput]
  PatchSummary: AwsSecurityHubSjPatchSummaryInput
  Action: AwsSecurityHubSjActionInput
  FindingProviderFields: AwsSecurityHubSjFindingProviderFieldsInput
}

input AwsSecurityHubSjSeverityInput {
  Product: JSON
  Label: String
  Normalized: Int
  Original: String
}

input AwsSecurityHubSjRemediationInput {
  Recommendation: AwsSecurityHubSjRemediationRecommendationInput
}

input AwsSecurityHubSjRemediationRecommendationInput {
  Text: String
  Url: String
}

input AwsSecurityHubSjMalwareInput {
  Name: String!
  Type: String
  Path: String
  State: String
}

input AwsSecurityHubSjNetworkInput {
  Direction: String
  Protocol: String
  OpenPortRange: AwsSecurityHubSyInput
  SourceIpV4: String
  SourceIpV6: String
  SourcePort: Int
  SourceDomain: String
  SourceMac: String
  DestinationIpV4: String
  DestinationIpV6: String
  DestinationPort: Int
  DestinationDomain: String
}

input AwsSecurityHubSyInput {
  Begin: Int
  End: Int
}

input AwsSecurityHubSjNetworkPathInput {
  ComponentId: String
  ComponentType: String
  Egress: AwsSecurityHubS11Input
  Ingress: AwsSecurityHubS11Input
}

input AwsSecurityHubS11Input {
  Protocol: String
  Destination: AwsSecurityHubS12Input
  Source: AwsSecurityHubS12Input
}

input AwsSecurityHubS12Input {
  Address: [String]
  PortRanges: [AwsSecurityHubSyInput]
}

input AwsSecurityHubSjProcessInput {
  Name: String
  Path: String
  Pid: Int
  ParentPid: Int
  LaunchedAt: String
  TerminatedAt: String
}

input AwsSecurityHubSjThreatIntelIndicatorsInput {
  Type: String
  Value: String
  Category: String
  LastObservedAt: String
  Source: String
  SourceUrl: String
}

input AwsSecurityHubSjResourcesInput {
  Type: String!
  Id: String!
  Partition: String
  Region: String
  ResourceRole: String
  Tags: JSON
  DataClassification: AwsSecurityHubSjResourcesDataClassificationInput
  Details: AwsSecurityHubSjResourcesDetailsInput
}

input AwsSecurityHubSjResourcesDataClassificationInput {
  DetailedResultsLocation: String
  Result: AwsSecurityHubSjResourcesDataClassificationResultInput
}

input AwsSecurityHubSjResourcesDataClassificationResultInput {
  MimeType: String
  SizeClassified: JSON
  AdditionalOccurrences: Boolean
  Status: AwsSecurityHubSjResourcesDataClassificationResultStatusInput
  SensitiveData: [AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataInput]
  CustomDataIdentifiers: AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersInput
}

input AwsSecurityHubSjResourcesDataClassificationResultStatusInput {
  Code: String
  Reason: String
}

input AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataInput {
  Category: String
  Detections: [AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataDetectionsInput]
  TotalCount: JSON
}

input AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataDetectionsInput {
  Count: JSON
  Type: String
  Occurrences: AwsSecurityHubS1mInput
}

input AwsSecurityHubS1mInput {
  LineRanges: [AwsSecurityHubS1oInput]
  OffsetRanges: [AwsSecurityHubS1oInput]
  Pages: [AwsSecurityHubS1mPagesInput]
  Records: [AwsSecurityHubS1mRecordsInput]
  Cells: [AwsSecurityHubS1mCellsInput]
}

input AwsSecurityHubS1oInput {
  Start: JSON
  End: JSON
  StartColumn: JSON
}

input AwsSecurityHubS1mPagesInput {
  PageNumber: JSON
  LineRange: AwsSecurityHubS1oInput
  OffsetRange: AwsSecurityHubS1oInput
}

input AwsSecurityHubS1mRecordsInput {
  JsonPath: String
  RecordIndex: JSON
}

input AwsSecurityHubS1mCellsInput {
  Column: JSON
  Row: JSON
  ColumnName: String
  CellReference: String
}

input AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersInput {
  Detections: [AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersDetectionsInput]
  TotalCount: JSON
}

input AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersDetectionsInput {
  Count: JSON
  Arn: String
  Name: String
  Occurrences: AwsSecurityHubS1mInput
}

input AwsSecurityHubSjResourcesDetailsInput {
  AwsAutoScalingAutoScalingGroup: AwsSecurityHubSjResourcesDetailsAwsAutoScalingAutoScalingGroupInput
  AwsCodeBuildProject: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectInput
  AwsCloudFrontDistribution: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionInput
  AwsEc2Instance: AwsSecurityHubSjResourcesDetailsAwsEc2InstanceInput
  AwsEc2NetworkInterface: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceInput
  AwsEc2SecurityGroup: AwsSecurityHubSjResourcesDetailsAwsEc2SecurityGroupInput
  AwsEc2Volume: AwsSecurityHubSjResourcesDetailsAwsEc2VolumeInput
  AwsEc2Vpc: AwsSecurityHubSjResourcesDetailsAwsEc2VpcInput
  AwsEc2Eip: AwsSecurityHubSjResourcesDetailsAwsEc2EipInput
  AwsEc2Subnet: AwsSecurityHubSjResourcesDetailsAwsEc2SubnetInput
  AwsEc2NetworkAcl: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclInput
  AwsElbv2LoadBalancer: AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerInput
  AwsElasticBeanstalkEnvironment: AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentInput
  AwsElasticsearchDomain: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainInput
  AwsS3Bucket: AwsSecurityHubSjResourcesDetailsAwsS3BucketInput
  AwsS3AccountPublicAccessBlock: AwsSecurityHubS4rInput
  AwsS3Object: AwsSecurityHubSjResourcesDetailsAwsS3ObjectInput
  AwsSecretsManagerSecret: AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretInput
  AwsIamAccessKey: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeyInput
  AwsIamUser: AwsSecurityHubSjResourcesDetailsAwsIamUserInput
  AwsIamPolicy: AwsSecurityHubSjResourcesDetailsAwsIamPolicyInput
  AwsApiGatewayV2Stage: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2StageInput
  AwsApiGatewayV2Api: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiInput
  AwsDynamoDbTable: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableInput
  AwsApiGatewayStage: AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageInput
  AwsApiGatewayRestApi: AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiInput
  AwsCloudTrailTrail: AwsSecurityHubSjResourcesDetailsAwsCloudTrailTrailInput
  AwsSsmPatchCompliance: AwsSecurityHubSjResourcesDetailsAwsSsmPatchComplianceInput
  AwsCertificateManagerCertificate: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateInput
  AwsRedshiftCluster: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterInput
  AwsElbLoadBalancer: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInput
  AwsIamGroup: AwsSecurityHubSjResourcesDetailsAwsIamGroupInput
  AwsIamRole: AwsSecurityHubSjResourcesDetailsAwsIamRoleInput
  AwsKmsKey: AwsSecurityHubSjResourcesDetailsAwsKmsKeyInput
  AwsLambdaFunction: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionInput
  AwsLambdaLayerVersion: AwsSecurityHubSjResourcesDetailsAwsLambdaLayerVersionInput
  AwsRdsDbInstance: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceInput
  AwsSnsTopic: AwsSecurityHubSjResourcesDetailsAwsSnsTopicInput
  AwsSqsQueue: AwsSecurityHubSjResourcesDetailsAwsSqsQueueInput
  AwsWafWebAcl: AwsSecurityHubSjResourcesDetailsAwsWafWebAclInput
  AwsRdsDbSnapshot: AwsSecurityHubSjResourcesDetailsAwsRdsDbSnapshotInput
  AwsRdsDbClusterSnapshot: AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterSnapshotInput
  AwsRdsDbCluster: AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterInput
  AwsEcsCluster: AwsSecurityHubSjResourcesDetailsAwsEcsClusterInput
  AwsEcsTaskDefinition: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInput
  Container: AwsSecurityHubSjResourcesDetailsContainerInput
  Other: JSON
}

input AwsSecurityHubSjResourcesDetailsAwsAutoScalingAutoScalingGroupInput {
  LaunchConfigurationName: String
  LoadBalancerNames: [String]
  HealthCheckType: String
  HealthCheckGracePeriod: Int
  CreatedTime: String
}

input AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectInput {
  EncryptionKey: String
  Environment: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentInput
  Name: String
  Source: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectSourceInput
  ServiceRole: String
  VpcConfig: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectVpcConfigInput
}

input AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentInput {
  Certificate: String
  ImagePullCredentialsType: String
  RegistryCredential: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentRegistryCredentialInput
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentRegistryCredentialInput {
  Credential: String
  CredentialProvider: String
}

input AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectSourceInput {
  Type: String
  Location: String
  GitCloneDepth: Int
  InsecureSsl: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectVpcConfigInput {
  VpcId: String
  Subnets: [String]
  SecurityGroupIds: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionInput {
  CacheBehaviors: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsInput
  DefaultCacheBehavior: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionDefaultCacheBehaviorInput
  DefaultRootObject: String
  DomainName: String
  ETag: String
  LastModifiedTime: String
  Logging: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionLoggingInput
  Origins: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsInput
  OriginGroups: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsInput
  Status: String
  WebAclId: String
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsInput {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsItemsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsItemsInput {
  ViewerProtocolPolicy: String
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionDefaultCacheBehaviorInput {
  ViewerProtocolPolicy: String
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionLoggingInput {
  Bucket: String
  Enabled: Boolean
  IncludeCookies: Boolean
  Prefix: String
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsInput {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsInput {
  DomainName: String
  Id: String
  OriginPath: String
  S3OriginConfig: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsS3OriginConfigInput
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsS3OriginConfigInput {
  OriginAccessIdentity: String
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsInput {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsInput {
  FailoverCriteria: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaInput
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaInput {
  StatusCodes: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaStatusCodesInput
}

input AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaStatusCodesInput {
  Items: [Int]
  Quantity: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEc2InstanceInput {
  Type: String
  ImageId: String
  IpV4Addresses: [String]
  IpV6Addresses: [String]
  KeyName: String
  IamInstanceProfileArn: String
  VpcId: String
  SubnetId: String
  LaunchedAt: String
  NetworkInterfaces: [AwsSecurityHubSjResourcesDetailsAwsEc2InstanceNetworkInterfacesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEc2InstanceNetworkInterfacesInput {
  NetworkInterfaceId: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceInput {
  Attachment: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceAttachmentInput
  NetworkInterfaceId: String
  SecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceSecurityGroupsInput]
  SourceDestCheck: Boolean
  IpV6Addresses: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceIpV6AddressesInput]
  PrivateIpAddresses: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfacePrivateIpAddressesInput]
  PublicDnsName: String
  PublicIp: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceAttachmentInput {
  AttachTime: String
  AttachmentId: String
  DeleteOnTermination: Boolean
  DeviceIndex: Int
  InstanceId: String
  InstanceOwnerId: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceSecurityGroupsInput {
  GroupName: String
  GroupId: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceIpV6AddressesInput {
  IpV6Address: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfacePrivateIpAddressesInput {
  PrivateIpAddress: String
  PrivateDnsName: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2SecurityGroupInput {
  GroupName: String
  GroupId: String
  OwnerId: String
  VpcId: String
  IpPermissions: [AwsSecurityHubS2yInput]
  IpPermissionsEgress: [AwsSecurityHubS2yInput]
}

input AwsSecurityHubS2yInput {
  IpProtocol: String
  FromPort: Int
  ToPort: Int
  UserIdGroupPairs: [AwsSecurityHubS2yUserIdGroupPairsInput]
  IpRanges: [AwsSecurityHubS2yIpRangesInput]
  Ipv6Ranges: [AwsSecurityHubS2yIpv6RangesInput]
  PrefixListIds: [AwsSecurityHubS2yPrefixListIdsInput]
}

input AwsSecurityHubS2yUserIdGroupPairsInput {
  GroupId: String
  GroupName: String
  PeeringStatus: String
  UserId: String
  VpcId: String
  VpcPeeringConnectionId: String
}

input AwsSecurityHubS2yIpRangesInput {
  CidrIp: String
}

input AwsSecurityHubS2yIpv6RangesInput {
  CidrIpv6: String
}

input AwsSecurityHubS2yPrefixListIdsInput {
  PrefixListId: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2VolumeInput {
  CreateTime: String
  Encrypted: Boolean
  Size: Int
  SnapshotId: String
  Status: String
  KmsKeyId: String
  Attachments: [AwsSecurityHubSjResourcesDetailsAwsEc2VolumeAttachmentsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEc2VolumeAttachmentsInput {
  AttachTime: String
  DeleteOnTermination: Boolean
  InstanceId: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2VpcInput {
  CidrBlockAssociationSet: [AwsSecurityHubSjResourcesDetailsAwsEc2VpcCidrBlockAssociationSetInput]
  Ipv6CidrBlockAssociationSet: [AwsSecurityHubS3eInput]
  DhcpOptionsId: String
  State: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2VpcCidrBlockAssociationSetInput {
  AssociationId: String
  CidrBlock: String
  CidrBlockState: String
}

input AwsSecurityHubS3eInput {
  AssociationId: String
  Ipv6CidrBlock: String
  CidrBlockState: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2EipInput {
  InstanceId: String
  PublicIp: String
  AllocationId: String
  AssociationId: String
  Domain: String
  PublicIpv4Pool: String
  NetworkBorderGroup: String
  NetworkInterfaceId: String
  NetworkInterfaceOwnerId: String
  PrivateIpAddress: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2SubnetInput {
  AssignIpv6AddressOnCreation: Boolean
  AvailabilityZone: String
  AvailabilityZoneId: String
  AvailableIpAddressCount: Int
  CidrBlock: String
  DefaultForAz: Boolean
  MapPublicIpOnLaunch: Boolean
  OwnerId: String
  State: String
  SubnetArn: String
  SubnetId: String
  VpcId: String
  Ipv6CidrBlockAssociationSet: [AwsSecurityHubS3eInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclInput {
  IsDefault: Boolean
  NetworkAclId: String
  OwnerId: String
  VpcId: String
  Associations: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclAssociationsInput]
  Entries: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclAssociationsInput {
  NetworkAclAssociationId: String
  NetworkAclId: String
  SubnetId: String
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesInput {
  CidrBlock: String
  Egress: Boolean
  IcmpTypeCode: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesIcmpTypeCodeInput
  Ipv6CidrBlock: String
  PortRange: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesPortRangeInput
  Protocol: String
  RuleAction: String
  RuleNumber: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesIcmpTypeCodeInput {
  Code: Int
  Type: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesPortRangeInput {
  From: Int
  To: Int
}

input AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerInput {
  AvailabilityZones: [AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerAvailabilityZonesInput]
  CanonicalHostedZoneId: String
  CreatedTime: String
  DNSName: String
  IpAddressType: String
  Scheme: String
  SecurityGroups: [String]
  State: AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerStateInput
  Type: String
  VpcId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerAvailabilityZonesInput {
  ZoneName: String
  SubnetId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerStateInput {
  Code: String
  Reason: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentInput {
  ApplicationName: String
  Cname: String
  DateCreated: String
  DateUpdated: String
  Description: String
  EndpointUrl: String
  EnvironmentArn: String
  EnvironmentId: String
  EnvironmentLinks: [AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentEnvironmentLinksInput]
  EnvironmentName: String
  OptionSettings: [AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentOptionSettingsInput]
  PlatformArn: String
  SolutionStackName: String
  Status: String
  Tier: AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentTierInput
  VersionLabel: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentEnvironmentLinksInput {
  EnvironmentName: String
  LinkName: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentOptionSettingsInput {
  Namespace: String
  OptionName: String
  ResourceName: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentTierInput {
  Name: String
  Type: String
  Version: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainInput {
  AccessPolicies: String
  DomainEndpointOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainDomainEndpointOptionsInput
  DomainId: String
  DomainName: String
  Endpoint: String
  Endpoints: JSON
  ElasticsearchVersion: String
  EncryptionAtRestOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainEncryptionAtRestOptionsInput
  LogPublishingOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainLogPublishingOptionsInput
  NodeToNodeEncryptionOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainNodeToNodeEncryptionOptionsInput
  ServiceSoftwareOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainServiceSoftwareOptionsInput
  VPCOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainVPCOptionsInput
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainDomainEndpointOptionsInput {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainEncryptionAtRestOptionsInput {
  Enabled: Boolean
  KmsKeyId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainLogPublishingOptionsInput {
  IndexSlowLogs: AwsSecurityHubS44Input
  SearchSlowLogs: AwsSecurityHubS44Input
}

input AwsSecurityHubS44Input {
  CloudWatchLogsLogGroupArn: String
  Enabled: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainNodeToNodeEncryptionOptionsInput {
  Enabled: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainServiceSoftwareOptionsInput {
  AutomatedUpdateDate: String
  Cancellable: Boolean
  CurrentVersion: String
  Description: String
  NewVersion: String
  UpdateAvailable: Boolean
  UpdateStatus: String
}

input AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainVPCOptionsInput {
  AvailabilityZones: [String]
  SecurityGroupIds: [String]
  SubnetIds: [String]
  VPCId: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketInput {
  OwnerId: String
  OwnerName: String
  CreatedAt: String
  ServerSideEncryptionConfiguration: AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationInput
  BucketLifecycleConfiguration: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationInput
  PublicAccessBlockConfiguration: AwsSecurityHubS4rInput
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationInput {
  Rules: [AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesInput {
  ApplyServerSideEncryptionByDefault: AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesApplyServerSideEncryptionByDefaultInput
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesApplyServerSideEncryptionByDefaultInput {
  SSEAlgorithm: String
  KMSMasterKeyID: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationInput {
  Rules: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesInput {
  AbortIncompleteMultipartUpload: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadInput
  ExpirationDate: String
  ExpirationInDays: Int
  ExpiredObjectDeleteMarker: Boolean
  Filter: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterInput
  ID: String
  NoncurrentVersionExpirationInDays: Int
  NoncurrentVersionTransitions: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsInput]
  Prefix: String
  Status: String
  Transitions: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesTransitionsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadInput {
  DaysAfterInitiation: Int
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterInput {
  Predicate: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateInput
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateInput {
  Operands: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsInput]
  Prefix: String
  Tag: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagInput
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsInput {
  Prefix: String
  Tag: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagInput
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagInput {
  Key: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagInput {
  Key: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsInput {
  Days: Int
  StorageClass: String
}

input AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesTransitionsInput {
  Date: String
  Days: Int
  StorageClass: String
}

input AwsSecurityHubS4rInput {
  BlockPublicAcls: Boolean
  BlockPublicPolicy: Boolean
  IgnorePublicAcls: Boolean
  RestrictPublicBuckets: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsS3ObjectInput {
  LastModified: String
  ETag: String
  VersionId: String
  ContentType: String
  ServerSideEncryption: String
  SSEKMSKeyId: String
}

input AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretInput {
  RotationRules: AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretRotationRulesInput
  RotationOccurredWithinFrequency: Boolean
  KmsKeyId: String
  RotationEnabled: Boolean
  RotationLambdaArn: String
  Deleted: Boolean
  Name: String
  Description: String
}

input AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretRotationRulesInput {
  AutomaticallyAfterDays: Int
}

input AwsSecurityHubSjResourcesDetailsAwsIamAccessKeyInput {
  UserName: String
  Status: String
  CreatedAt: String
  PrincipalId: String
  PrincipalType: String
  PrincipalName: String
  AccountId: String
  AccessKeyId: String
  SessionContext: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextInput
}

input AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextInput {
  Attributes: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextAttributesInput
  SessionIssuer: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextSessionIssuerInput
}

input AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextAttributesInput {
  MfaAuthenticated: Boolean
  CreationDate: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextSessionIssuerInput {
  Type: String
  PrincipalId: String
  Arn: String
  AccountId: String
  UserName: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamUserInput {
  AttachedManagedPolicies: [AwsSecurityHubS51Input]
  CreateDate: String
  GroupList: [String]
  Path: String
  PermissionsBoundary: AwsSecurityHubS53Input
  UserId: String
  UserName: String
  UserPolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamUserUserPolicyListInput]
}

input AwsSecurityHubS51Input {
  PolicyName: String
  PolicyArn: String
}

input AwsSecurityHubS53Input {
  PermissionsBoundaryArn: String
  PermissionsBoundaryType: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamUserUserPolicyListInput {
  PolicyName: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamPolicyInput {
  AttachmentCount: Int
  CreateDate: String
  DefaultVersionId: String
  Description: String
  IsAttachable: Boolean
  Path: String
  PermissionsBoundaryUsageCount: Int
  PolicyId: String
  PolicyName: String
  PolicyVersionList: [AwsSecurityHubSjResourcesDetailsAwsIamPolicyPolicyVersionListInput]
  UpdateDate: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamPolicyPolicyVersionListInput {
  VersionId: String
  IsDefaultVersion: Boolean
  CreateDate: String
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2StageInput {
  ClientCertificateId: String
  CreatedDate: String
  Description: String
  DefaultRouteSettings: AwsSecurityHubS5aInput
  DeploymentId: String
  LastUpdatedDate: String
  RouteSettings: AwsSecurityHubS5aInput
  StageName: String
  StageVariables: JSON
  AccessLogSettings: AwsSecurityHubS5bInput
  AutoDeploy: Boolean
  LastDeploymentStatusMessage: String
  ApiGatewayManaged: Boolean
}

input AwsSecurityHubS5aInput {
  DetailedMetricsEnabled: Boolean
  LoggingLevel: String
  DataTraceEnabled: Boolean
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
}

input AwsSecurityHubS5bInput {
  Format: String
  DestinationArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiInput {
  ApiEndpoint: String
  ApiId: String
  ApiKeySelectionExpression: String
  CreatedDate: String
  Description: String
  Version: String
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  CorsConfiguration: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiCorsConfigurationInput
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiCorsConfigurationInput {
  AllowOrigins: [String]
  AllowCredentials: Boolean
  ExposeHeaders: [String]
  MaxAge: Int
  AllowMethods: [String]
  AllowHeaders: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableInput {
  AttributeDefinitions: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableAttributeDefinitionsInput]
  BillingModeSummary: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableBillingModeSummaryInput
  CreationDateTime: String
  GlobalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableGlobalSecondaryIndexesInput]
  GlobalTableVersion: String
  ItemCount: Int
  KeySchema: [AwsSecurityHubS5lInput]
  LatestStreamArn: String
  LatestStreamLabel: String
  LocalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableLocalSecondaryIndexesInput]
  ProvisionedThroughput: AwsSecurityHubS5oInput
  Replicas: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasInput]
  RestoreSummary: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableRestoreSummaryInput
  SseDescription: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableSseDescriptionInput
  StreamSpecification: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableStreamSpecificationInput
  TableId: String
  TableName: String
  TableSizeBytes: JSON
  TableStatus: String
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableAttributeDefinitionsInput {
  AttributeName: String
  AttributeType: String
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableBillingModeSummaryInput {
  BillingMode: String
  LastUpdateToPayPerRequestDateTime: String
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableGlobalSecondaryIndexesInput {
  Backfilling: Boolean
  IndexArn: String
  IndexName: String
  IndexSizeBytes: JSON
  IndexStatus: String
  ItemCount: Int
  KeySchema: [AwsSecurityHubS5lInput]
  Projection: AwsSecurityHubS5nInput
  ProvisionedThroughput: AwsSecurityHubS5oInput
}

input AwsSecurityHubS5lInput {
  AttributeName: String
  KeyType: String
}

input AwsSecurityHubS5nInput {
  NonKeyAttributes: [String]
  ProjectionType: String
}

input AwsSecurityHubS5oInput {
  LastDecreaseDateTime: String
  LastIncreaseDateTime: String
  NumberOfDecreasesToday: Int
  ReadCapacityUnits: Int
  WriteCapacityUnits: Int
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableLocalSecondaryIndexesInput {
  IndexArn: String
  IndexName: String
  KeySchema: [AwsSecurityHubS5lInput]
  Projection: AwsSecurityHubS5nInput
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasInput {
  GlobalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasGlobalSecondaryIndexesInput]
  KmsMasterKeyId: String
  ProvisionedThroughputOverride: AwsSecurityHubS5vInput
  RegionName: String
  ReplicaStatus: String
  ReplicaStatusDescription: String
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasGlobalSecondaryIndexesInput {
  IndexName: String
  ProvisionedThroughputOverride: AwsSecurityHubS5vInput
}

input AwsSecurityHubS5vInput {
  ReadCapacityUnits: Int
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableRestoreSummaryInput {
  SourceBackupArn: String
  SourceTableArn: String
  RestoreDateTime: String
  RestoreInProgress: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableSseDescriptionInput {
  InaccessibleEncryptionDateTime: String
  Status: String
  SseType: String
  KmsMasterKeyArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableStreamSpecificationInput {
  StreamEnabled: Boolean
  StreamViewType: String
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageInput {
  DeploymentId: String
  ClientCertificateId: String
  StageName: String
  Description: String
  CacheClusterEnabled: Boolean
  CacheClusterSize: String
  CacheClusterStatus: String
  MethodSettings: [AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageMethodSettingsInput]
  Variables: JSON
  DocumentationVersion: String
  AccessLogSettings: AwsSecurityHubS5bInput
  CanarySettings: AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageCanarySettingsInput
  TracingEnabled: Boolean
  CreatedDate: String
  LastUpdatedDate: String
  WebAclArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageMethodSettingsInput {
  MetricsEnabled: Boolean
  LoggingLevel: String
  DataTraceEnabled: Boolean
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
  CachingEnabled: Boolean
  CacheTtlInSeconds: Int
  CacheDataEncrypted: Boolean
  RequireAuthorizationForCacheControl: Boolean
  UnauthorizedCacheControlHeaderStrategy: String
  HttpMethod: String
  ResourcePath: String
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageCanarySettingsInput {
  PercentTraffic: JSON
  DeploymentId: String
  StageVariableOverrides: JSON
  UseStageCache: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiInput {
  Id: String
  Name: String
  Description: String
  CreatedDate: String
  Version: String
  BinaryMediaTypes: [String]
  MinimumCompressionSize: Int
  ApiKeySource: String
  EndpointConfiguration: AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiEndpointConfigurationInput
}

input AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiEndpointConfigurationInput {
  Types: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsCloudTrailTrailInput {
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  HasCustomEventSelectors: Boolean
  HomeRegion: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  IsOrganizationTrail: Boolean
  KmsKeyId: String
  LogFileValidationEnabled: Boolean
  Name: String
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicArn: String
  SnsTopicName: String
  TrailArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsSsmPatchComplianceInput {
  Patch: AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchInput
}

input AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchInput {
  ComplianceSummary: AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchComplianceSummaryInput
}

input AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchComplianceSummaryInput {
  Status: String
  CompliantCriticalCount: Int
  CompliantHighCount: Int
  CompliantMediumCount: Int
  ExecutionType: String
  NonCompliantCriticalCount: Int
  CompliantInformationalCount: Int
  NonCompliantInformationalCount: Int
  CompliantUnspecifiedCount: Int
  NonCompliantLowCount: Int
  NonCompliantHighCount: Int
  CompliantLowCount: Int
  ComplianceType: String
  PatchBaselineId: String
  OverallSeverity: String
  NonCompliantMediumCount: Int
  NonCompliantUnspecifiedCount: Int
  PatchGroup: String
}

input AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateInput {
  CertificateAuthorityArn: String
  CreatedAt: String
  DomainName: String
  DomainValidationOptions: [AwsSecurityHubS6aInput]
  ExtendedKeyUsages: [AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateExtendedKeyUsagesInput]
  FailureReason: String
  ImportedAt: String
  InUseBy: [String]
  IssuedAt: String
  Issuer: String
  KeyAlgorithm: String
  KeyUsages: [AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateKeyUsagesInput]
  NotAfter: String
  NotBefore: String
  Options: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateOptionsInput
  RenewalEligibility: String
  RenewalSummary: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateRenewalSummaryInput
  Serial: String
  SignatureAlgorithm: String
  Status: String
  Subject: String
  SubjectAlternativeNames: [String]
  Type: String
}

input AwsSecurityHubS6aInput {
  DomainName: String
  ResourceRecord: AwsSecurityHubS6aResourceRecordInput
  ValidationDomain: String
  ValidationEmails: [String]
  ValidationMethod: String
  ValidationStatus: String
}

input AwsSecurityHubS6aResourceRecordInput {
  Name: String
  Type: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateExtendedKeyUsagesInput {
  Name: String
  OId: String
}

input AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateKeyUsagesInput {
  Name: String
}

input AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateOptionsInput {
  CertificateTransparencyLoggingPreference: String
}

input AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateRenewalSummaryInput {
  DomainValidationOptions: [AwsSecurityHubS6aInput]
  RenewalStatus: String
  RenewalStatusReason: String
  UpdatedAt: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterInput {
  AllowVersionUpgrade: Boolean
  AutomatedSnapshotRetentionPeriod: Int
  AvailabilityZone: String
  ClusterAvailabilityStatus: String
  ClusterCreateTime: String
  ClusterIdentifier: String
  ClusterNodes: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterNodesInput]
  ClusterParameterGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsInput]
  ClusterPublicKey: String
  ClusterRevisionNumber: String
  ClusterSecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSecurityGroupsInput]
  ClusterSnapshotCopyStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSnapshotCopyStatusInput
  ClusterStatus: String
  ClusterSubnetGroupName: String
  ClusterVersion: String
  DBName: String
  DeferredMaintenanceWindows: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterDeferredMaintenanceWindowsInput]
  ElasticIpStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterElasticIpStatusInput
  ElasticResizeNumberOfNodeOptions: String
  Encrypted: Boolean
  Endpoint: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterEndpointInput
  EnhancedVpcRouting: Boolean
  ExpectedNextSnapshotScheduleTime: String
  ExpectedNextSnapshotScheduleTimeStatus: String
  HsmStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterHsmStatusInput
  IamRoles: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterIamRolesInput]
  KmsKeyId: String
  MaintenanceTrackName: String
  ManualSnapshotRetentionPeriod: Int
  MasterUsername: String
  NextMaintenanceWindowStartTime: String
  NodeType: String
  NumberOfNodes: Int
  PendingActions: [String]
  PendingModifiedValues: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterPendingModifiedValuesInput
  PreferredMaintenanceWindow: String
  PubliclyAccessible: Boolean
  ResizeInfo: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterResizeInfoInput
  RestoreStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterRestoreStatusInput
  SnapshotScheduleIdentifier: String
  SnapshotScheduleState: String
  VpcId: String
  VpcSecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterVpcSecurityGroupsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterNodesInput {
  NodeRole: String
  PrivateIpAddress: String
  PublicIpAddress: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsInput {
  ClusterParameterStatusList: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsClusterParameterStatusListInput]
  ParameterApplyStatus: String
  ParameterGroupName: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsClusterParameterStatusListInput {
  ParameterName: String
  ParameterApplyStatus: String
  ParameterApplyErrorDescription: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSecurityGroupsInput {
  ClusterSecurityGroupName: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSnapshotCopyStatusInput {
  DestinationRegion: String
  ManualSnapshotRetentionPeriod: Int
  RetentionPeriod: Int
  SnapshotCopyGrantName: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterDeferredMaintenanceWindowsInput {
  DeferMaintenanceEndTime: String
  DeferMaintenanceIdentifier: String
  DeferMaintenanceStartTime: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterElasticIpStatusInput {
  ElasticIp: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterEndpointInput {
  Address: String
  Port: Int
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterHsmStatusInput {
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterIamRolesInput {
  ApplyStatus: String
  IamRoleArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterPendingModifiedValuesInput {
  AutomatedSnapshotRetentionPeriod: Int
  ClusterIdentifier: String
  ClusterType: String
  ClusterVersion: String
  EncryptionType: String
  EnhancedVpcRouting: Boolean
  MaintenanceTrackName: String
  MasterUserPassword: String
  NodeType: String
  NumberOfNodes: Int
  PubliclyAccessible: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterResizeInfoInput {
  AllowCancelResize: Boolean
  ResizeType: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterRestoreStatusInput {
  CurrentRestoreRateInMegaBytesPerSecond: JSON
  ElapsedTimeInSeconds: JSON
  EstimatedTimeToCompletionInSeconds: JSON
  ProgressInMegaBytes: JSON
  SnapshotSizeInMegaBytes: JSON
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterVpcSecurityGroupsInput {
  Status: String
  VpcSecurityGroupId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInput {
  AvailabilityZones: [String]
  BackendServerDescriptions: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerBackendServerDescriptionsInput]
  CanonicalHostedZoneName: String
  CanonicalHostedZoneNameID: String
  CreatedTime: String
  DnsName: String
  HealthCheck: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerHealthCheckInput
  Instances: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInstancesInput]
  ListenerDescriptions: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsInput]
  LoadBalancerAttributes: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesInput
  LoadBalancerName: String
  Policies: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesInput
  Scheme: String
  SecurityGroups: [String]
  SourceSecurityGroup: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerSourceSecurityGroupInput
  Subnets: [String]
  VpcId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerBackendServerDescriptionsInput {
  InstancePort: Int
  PolicyNames: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerHealthCheckInput {
  HealthyThreshold: Int
  Interval: Int
  Target: String
  Timeout: Int
  UnhealthyThreshold: Int
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInstancesInput {
  InstanceId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsInput {
  Listener: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsListenerInput
  PolicyNames: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsListenerInput {
  InstancePort: Int
  InstanceProtocol: String
  LoadBalancerPort: Int
  Protocol: String
  SslCertificateId: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesInput {
  AccessLog: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesAccessLogInput
  ConnectionDraining: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionDrainingInput
  ConnectionSettings: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionSettingsInput
  CrossZoneLoadBalancing: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesCrossZoneLoadBalancingInput
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesAccessLogInput {
  EmitInterval: Int
  Enabled: Boolean
  S3BucketName: String
  S3BucketPrefix: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionDrainingInput {
  Enabled: Boolean
  Timeout: Int
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionSettingsInput {
  IdleTimeout: Int
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesCrossZoneLoadBalancingInput {
  Enabled: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesInput {
  AppCookieStickinessPolicies: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesAppCookieStickinessPoliciesInput]
  LbCookieStickinessPolicies: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesLbCookieStickinessPoliciesInput]
  OtherPolicies: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesAppCookieStickinessPoliciesInput {
  CookieName: String
  PolicyName: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesLbCookieStickinessPoliciesInput {
  CookieExpirationPeriod: JSON
  PolicyName: String
}

input AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerSourceSecurityGroupInput {
  GroupName: String
  OwnerAlias: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamGroupInput {
  AttachedManagedPolicies: [AwsSecurityHubS51Input]
  CreateDate: String
  GroupId: String
  GroupName: String
  GroupPolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamGroupGroupPolicyListInput]
  Path: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamGroupGroupPolicyListInput {
  PolicyName: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamRoleInput {
  AssumeRolePolicyDocument: String
  AttachedManagedPolicies: [AwsSecurityHubS51Input]
  CreateDate: String
  InstanceProfileList: [AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListInput]
  PermissionsBoundary: AwsSecurityHubS53Input
  RoleId: String
  RoleName: String
  RolePolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamRoleRolePolicyListInput]
  MaxSessionDuration: Int
  Path: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListInput {
  Arn: String
  CreateDate: String
  InstanceProfileId: String
  InstanceProfileName: String
  Path: String
  Roles: [AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListRolesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListRolesInput {
  Arn: String
  AssumeRolePolicyDocument: String
  CreateDate: String
  Path: String
  RoleId: String
  RoleName: String
}

input AwsSecurityHubSjResourcesDetailsAwsIamRoleRolePolicyListInput {
  PolicyName: String
}

input AwsSecurityHubSjResourcesDetailsAwsKmsKeyInput {
  AWSAccountId: String
  CreationDate: JSON
  KeyId: String
  KeyManager: String
  KeyState: String
  Origin: String
  Description: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionInput {
  Code: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionCodeInput
  CodeSha256: String
  DeadLetterConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionDeadLetterConfigInput
  Environment: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentInput
  FunctionName: String
  Handler: String
  KmsKeyArn: String
  LastModified: String
  Layers: [AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionLayersInput]
  MasterArn: String
  MemorySize: Int
  RevisionId: String
  Role: String
  Runtime: String
  Timeout: Int
  TracingConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionTracingConfigInput
  VpcConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionVpcConfigInput
  Version: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionCodeInput {
  S3Bucket: String
  S3Key: String
  S3ObjectVersion: String
  ZipFile: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionDeadLetterConfigInput {
  TargetArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentInput {
  Variables: JSON
  Error: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentErrorInput
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentErrorInput {
  ErrorCode: String
  Message: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionLayersInput {
  Arn: String
  CodeSize: Int
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionTracingConfigInput {
  Mode: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionVpcConfigInput {
  SecurityGroupIds: [String]
  SubnetIds: [String]
  VpcId: String
}

input AwsSecurityHubSjResourcesDetailsAwsLambdaLayerVersionInput {
  Version: JSON
  CompatibleRuntimes: [String]
  CreatedDate: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceInput {
  AssociatedRoles: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceAssociatedRolesInput]
  CACertificateIdentifier: String
  DBClusterIdentifier: String
  DBInstanceIdentifier: String
  DBInstanceClass: String
  DbInstancePort: Int
  DbiResourceId: String
  DBName: String
  DeletionProtection: Boolean
  Endpoint: AwsSecurityHubS8fInput
  Engine: String
  EngineVersion: String
  IAMDatabaseAuthenticationEnabled: Boolean
  InstanceCreateTime: String
  KmsKeyId: String
  PubliclyAccessible: Boolean
  StorageEncrypted: Boolean
  TdeCredentialArn: String
  VpcSecurityGroups: [AwsSecurityHubS8gInput]
  MultiAz: Boolean
  EnhancedMonitoringResourceArn: String
  DbInstanceStatus: String
  MasterUsername: String
  AllocatedStorage: Int
  PreferredBackupWindow: String
  BackupRetentionPeriod: Int
  DbSecurityGroups: [String]
  DbParameterGroups: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbParameterGroupsInput]
  AvailabilityZone: String
  DbSubnetGroup: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupInput
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesInput
  LatestRestorableTime: String
  AutoMinorVersionUpgrade: Boolean
  ReadReplicaSourceDBInstanceIdentifier: String
  ReadReplicaDBInstanceIdentifiers: [String]
  ReadReplicaDBClusterIdentifiers: [String]
  LicenseModel: String
  Iops: Int
  OptionGroupMemberships: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceOptionGroupMembershipsInput]
  CharacterSetName: String
  SecondaryAvailabilityZone: String
  StatusInfos: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceStatusInfosInput]
  StorageType: String
  DomainMemberships: [AwsSecurityHubS8wInput]
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  PromotionTier: Int
  Timezone: String
  PerformanceInsightsEnabled: Boolean
  PerformanceInsightsKmsKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnabledCloudWatchLogsExports: [String]
  ProcessorFeatures: [AwsSecurityHubS8qInput]
  ListenerEndpoint: AwsSecurityHubS8fInput
  MaxAllocatedStorage: Int
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceAssociatedRolesInput {
  RoleArn: String
  FeatureName: String
  Status: String
}

input AwsSecurityHubS8fInput {
  Address: String
  Port: Int
  HostedZoneId: String
}

input AwsSecurityHubS8gInput {
  VpcSecurityGroupId: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbParameterGroupsInput {
  DbParameterGroupName: String
  ParameterApplyStatus: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupInput {
  DbSubnetGroupName: String
  DbSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsInput]
  DbSubnetGroupArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsInput {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsSubnetAvailabilityZoneInput
  SubnetStatus: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsSubnetAvailabilityZoneInput {
  Name: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesInput {
  DbInstanceClass: String
  AllocatedStorage: Int
  MasterUserPassword: String
  Port: Int
  BackupRetentionPeriod: Int
  MultiAZ: Boolean
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  DbInstanceIdentifier: String
  StorageType: String
  CaCertificateIdentifier: String
  DbSubnetGroupName: String
  PendingCloudWatchLogsExports: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesPendingCloudWatchLogsExportsInput
  ProcessorFeatures: [AwsSecurityHubS8qInput]
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesPendingCloudWatchLogsExportsInput {
  LogTypesToEnable: [String]
  LogTypesToDisable: [String]
}

input AwsSecurityHubS8qInput {
  Name: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceOptionGroupMembershipsInput {
  OptionGroupName: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceStatusInfosInput {
  StatusType: String
  Normal: Boolean
  Status: String
  Message: String
}

input AwsSecurityHubS8wInput {
  Domain: String
  Status: String
  Fqdn: String
  IamRoleName: String
}

input AwsSecurityHubSjResourcesDetailsAwsSnsTopicInput {
  KmsMasterKeyId: String
  Subscription: [AwsSecurityHubSjResourcesDetailsAwsSnsTopicSubscriptionInput]
  TopicName: String
  Owner: String
}

input AwsSecurityHubSjResourcesDetailsAwsSnsTopicSubscriptionInput {
  Endpoint: String
  Protocol: String
}

input AwsSecurityHubSjResourcesDetailsAwsSqsQueueInput {
  KmsDataKeyReusePeriodSeconds: Int
  KmsMasterKeyId: String
  QueueName: String
  DeadLetterTargetArn: String
}

input AwsSecurityHubSjResourcesDetailsAwsWafWebAclInput {
  Name: String
  DefaultAction: String
  Rules: [AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesInput]
  WebAclId: String
}

input AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesInput {
  Action: AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesActionInput
  ExcludedRules: [AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesExcludedRulesInput]
  OverrideAction: AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesOverrideActionInput
  Priority: Int
  RuleId: String
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesActionInput {
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesExcludedRulesInput {
  RuleId: String
}

input AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesOverrideActionInput {
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbSnapshotInput {
  DbSnapshotIdentifier: String
  DbInstanceIdentifier: String
  SnapshotCreateTime: String
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  AvailabilityZone: String
  VpcId: String
  InstanceCreateTime: String
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  Iops: Int
  OptionGroupName: String
  PercentProgress: Int
  SourceRegion: String
  SourceDbSnapshotIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  Encrypted: Boolean
  KmsKeyId: String
  Timezone: String
  IamDatabaseAuthenticationEnabled: Boolean
  ProcessorFeatures: [AwsSecurityHubS8qInput]
  DbiResourceId: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterSnapshotInput {
  AvailabilityZones: [String]
  SnapshotCreateTime: String
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  VpcId: String
  ClusterCreateTime: String
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  PercentProgress: Int
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterIdentifier: String
  DbClusterSnapshotIdentifier: String
  IamDatabaseAuthenticationEnabled: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterInput {
  AllocatedStorage: Int
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  DatabaseName: String
  Status: String
  Endpoint: String
  ReaderEndpoint: String
  CustomEndpoints: [String]
  MultiAz: Boolean
  Engine: String
  EngineVersion: String
  Port: Int
  MasterUsername: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReadReplicaIdentifiers: [String]
  VpcSecurityGroups: [AwsSecurityHubS8gInput]
  HostedZoneId: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterResourceId: String
  AssociatedRoles: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterAssociatedRolesInput]
  ClusterCreateTime: String
  EnabledCloudWatchLogsExports: [String]
  EngineMode: String
  DeletionProtection: Boolean
  HttpEndpointEnabled: Boolean
  ActivityStreamStatus: String
  CopyTagsToSnapshot: Boolean
  CrossAccountClone: Boolean
  DomainMemberships: [AwsSecurityHubS8wInput]
  DbClusterParameterGroup: String
  DbSubnetGroup: String
  DbClusterOptionGroupMemberships: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterOptionGroupMembershipsInput]
  DbClusterIdentifier: String
  DbClusterMembers: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterMembersInput]
  IamDatabaseAuthenticationEnabled: Boolean
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterAssociatedRolesInput {
  RoleArn: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterOptionGroupMembershipsInput {
  DbClusterOptionGroupName: String
  Status: String
}

input AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterMembersInput {
  IsClusterWriter: Boolean
  PromotionTier: Int
  DbInstanceIdentifier: String
  DbClusterParameterGroupStatus: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterInput {
  CapacityProviders: [String]
  ClusterSettings: [AwsSecurityHubSjResourcesDetailsAwsEcsClusterClusterSettingsInput]
  Configuration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationInput
  DefaultCapacityProviderStrategy: [AwsSecurityHubSjResourcesDetailsAwsEcsClusterDefaultCapacityProviderStrategyInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterClusterSettingsInput {
  Name: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationInput {
  ExecuteCommandConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationInput
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationInput {
  KmsKeyId: String
  LogConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationInput
  Logging: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationInput {
  CloudWatchEncryptionEnabled: Boolean
  CloudWatchLogGroupName: String
  S3BucketName: String
  S3EncryptionEnabled: Boolean
  S3KeyPrefix: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsClusterDefaultCapacityProviderStrategyInput {
  Base: Int
  CapacityProvider: String
  Weight: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInput {
  ContainerDefinitions: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsInput]
  Cpu: String
  ExecutionRoleArn: String
  Family: String
  InferenceAccelerators: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInferenceAcceleratorsInput]
  IpcMode: String
  Memory: String
  NetworkMode: String
  PidMode: String
  PlacementConstraints: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionPlacementConstraintsInput]
  ProxyConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationInput
  RequiresCompatibilities: [String]
  TaskRoleArn: String
  Volumes: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsInput {
  Command: [String]
  Cpu: Int
  DependsOn: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsDependsOnInput]
  DisableNetworking: Boolean
  DnsSearchDomains: [String]
  DnsServers: [String]
  DockerLabels: JSON
  DockerSecurityOptions: [String]
  EntryPoint: [String]
  Environment: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentInput]
  EnvironmentFiles: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesInput]
  Essential: Boolean
  ExtraHosts: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsExtraHostsInput]
  FirelensConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationInput
  HealthCheck: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsHealthCheckInput
  Hostname: String
  Image: String
  Interactive: Boolean
  Links: [String]
  LinuxParameters: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersInput
  LogConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationInput
  Memory: Int
  MemoryReservation: Int
  MountPoints: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsMountPointsInput]
  Name: String
  PortMappings: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsPortMappingsInput]
  Privileged: Boolean
  PseudoTerminal: Boolean
  ReadonlyRootFilesystem: Boolean
  RepositoryCredentials: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsInput
  ResourceRequirements: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsInput]
  Secrets: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSecretsInput]
  StartTimeout: Int
  StopTimeout: Int
  SystemControls: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSystemControlsInput]
  Ulimits: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsUlimitsInput]
  User: String
  VolumesFrom: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsVolumesFromInput]
  WorkingDirectory: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsDependsOnInput {
  Condition: String
  ContainerName: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentInput {
  Name: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesInput {
  Type: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsExtraHostsInput {
  Hostname: String
  IpAddress: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationInput {
  Options: JSON
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsHealthCheckInput {
  Command: [String]
  Interval: Int
  Retries: Int
  StartPeriod: Int
  Timeout: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersInput {
  Capabilities: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesInput
  Devices: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesInput]
  InitProcessEnabled: Boolean
  MaxSwap: Int
  SharedMemorySize: Int
  Swappiness: Int
  Tmpfs: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesInput {
  Add: [String]
  Drop: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesInput {
  ContainerPath: String
  HostPath: String
  Permissions: [String]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsInput {
  ContainerPath: String
  MountOptions: [String]
  Size: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationInput {
  LogDriver: String
  Options: JSON
  SecretOptions: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsInput]
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsInput {
  Name: String
  ValueFrom: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsMountPointsInput {
  ContainerPath: String
  ReadOnly: Boolean
  SourceVolume: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsPortMappingsInput {
  ContainerPort: Int
  HostPort: Int
  Protocol: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsInput {
  CredentialsParameter: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsInput {
  Type: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSecretsInput {
  Name: String
  ValueFrom: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSystemControlsInput {
  Namespace: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsUlimitsInput {
  HardLimit: Int
  Name: String
  SoftLimit: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsVolumesFromInput {
  ReadOnly: Boolean
  SourceContainer: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInferenceAcceleratorsInput {
  DeviceName: String
  DeviceType: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionPlacementConstraintsInput {
  Expression: String
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationInput {
  ContainerName: String
  ProxyConfigurationProperties: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesInput]
  Type: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesInput {
  Name: String
  Value: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesInput {
  DockerVolumeConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationInput
  EfsVolumeConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationInput
  Host: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesHostInput
  Name: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesDockerVolumeConfigurationInput {
  Autoprovision: Boolean
  Driver: String
  DriverOpts: JSON
  Labels: JSON
  Scope: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationInput {
  AuthorizationConfig: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigInput
  FilesystemId: String
  RootDirectory: String
  TransitEncryption: String
  TransitEncryptionPort: Int
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigInput {
  AccessPointId: String
  Iam: String
}

input AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesHostInput {
  SourcePath: String
}

input AwsSecurityHubSjResourcesDetailsContainerInput {
  Name: String
  ImageId: String
  ImageName: String
  LaunchedAt: String
}

input AwsSecurityHubSjComplianceInput {
  Status: String
  RelatedRequirements: [String]
  StatusReasons: [AwsSecurityHubSjComplianceStatusReasonsInput]
}

input AwsSecurityHubSjComplianceStatusReasonsInput {
  ReasonCode: String!
  Description: String
}

input AwsSecurityHubSjWorkflowInput {
  Status: String
}

input AwsSecurityHubSbfInput {
  ProductArn: String!
  Id: String!
}

input AwsSecurityHubSjNoteInput {
  Text: String!
  UpdatedBy: String!
  UpdatedAt: String!
}

input AwsSecurityHubSjVulnerabilitiesInput {
  Id: String!
  VulnerablePackages: [AwsSecurityHubSjVulnerabilitiesVulnerablePackagesInput]
  Cvss: [AwsSecurityHubSjVulnerabilitiesCvssInput]
  RelatedVulnerabilities: [String]
  Vendor: AwsSecurityHubSjVulnerabilitiesVendorInput
  ReferenceUrls: [String]
}

input AwsSecurityHubSjVulnerabilitiesVulnerablePackagesInput {
  Name: String
  Version: String
  Epoch: String
  Release: String
  Architecture: String
}

input AwsSecurityHubSjVulnerabilitiesCvssInput {
  Version: String
  BaseScore: JSON
  BaseVector: String
}

input AwsSecurityHubSjVulnerabilitiesVendorInput {
  Name: String!
  Url: String
  VendorSeverity: String
  VendorCreatedAt: String
  VendorUpdatedAt: String
}

input AwsSecurityHubSjPatchSummaryInput {
  Id: String!
  InstalledCount: Int
  MissingCount: Int
  FailedCount: Int
  InstalledOtherCount: Int
  InstalledRejectedCount: Int
  InstalledPendingReboot: Int
  OperationStartTime: String
  OperationEndTime: String
  RebootOption: String
  Operation: String
}

input AwsSecurityHubSjActionInput {
  ActionType: String
  NetworkConnectionAction: AwsSecurityHubSjActionNetworkConnectionActionInput
  AwsApiCallAction: AwsSecurityHubSjActionAwsApiCallActionInput
  DnsRequestAction: AwsSecurityHubSjActionDnsRequestActionInput
  PortProbeAction: AwsSecurityHubSjActionPortProbeActionInput
}

input AwsSecurityHubSjActionNetworkConnectionActionInput {
  ConnectionDirection: String
  RemoteIpDetails: AwsSecurityHubSbsInput
  RemotePortDetails: AwsSecurityHubSjActionNetworkConnectionActionRemotePortDetailsInput
  LocalPortDetails: AwsSecurityHubSbyInput
  Protocol: String
  Blocked: Boolean
}

input AwsSecurityHubSbsInput {
  IpAddressV4: String
  Organization: AwsSecurityHubSbsOrganizationInput
  Country: AwsSecurityHubSbsCountryInput
  City: AwsSecurityHubSbsCityInput
  GeoLocation: AwsSecurityHubSbsGeoLocationInput
}

input AwsSecurityHubSbsOrganizationInput {
  Asn: Int
  AsnOrg: String
  Isp: String
  Org: String
}

input AwsSecurityHubSbsCountryInput {
  CountryCode: String
  CountryName: String
}

input AwsSecurityHubSbsCityInput {
  CityName: String
}

input AwsSecurityHubSbsGeoLocationInput {
  Lon: JSON
  Lat: JSON
}

input AwsSecurityHubSjActionNetworkConnectionActionRemotePortDetailsInput {
  Port: Int
  PortName: String
}

input AwsSecurityHubSbyInput {
  Port: Int
  PortName: String
}

input AwsSecurityHubSjActionAwsApiCallActionInput {
  Api: String
  ServiceName: String
  CallerType: String
  RemoteIpDetails: AwsSecurityHubSbsInput
  DomainDetails: AwsSecurityHubSjActionAwsApiCallActionDomainDetailsInput
  AffectedResources: JSON
  FirstSeen: String
  LastSeen: String
}

input AwsSecurityHubSjActionAwsApiCallActionDomainDetailsInput {
  Domain: String
}

input AwsSecurityHubSjActionDnsRequestActionInput {
  Domain: String
  Protocol: String
  Blocked: Boolean
}

input AwsSecurityHubSjActionPortProbeActionInput {
  PortProbeDetails: [AwsSecurityHubSjActionPortProbeActionPortProbeDetailsInput]
  Blocked: Boolean
}

input AwsSecurityHubSjActionPortProbeActionPortProbeDetailsInput {
  LocalPortDetails: AwsSecurityHubSbyInput
  LocalIpDetails: AwsSecurityHubSjActionPortProbeActionPortProbeDetailsLocalIpDetailsInput
  RemoteIpDetails: AwsSecurityHubSbsInput
}

input AwsSecurityHubSjActionPortProbeActionPortProbeDetailsLocalIpDetailsInput {
  IpAddressV4: String
}

input AwsSecurityHubSjFindingProviderFieldsInput {
  Confidence: Int
  Criticality: Int
  RelatedFindings: [AwsSecurityHubSbfInput]
  Severity: AwsSecurityHubSjFindingProviderFieldsSeverityInput
  Types: [String]
}

input AwsSecurityHubSjFindingProviderFieldsSeverityInput {
  Label: String
  Original: String
}

type AwsSecurityHubBatchUpdateFindingsOutput {
  ProcessedFindings: [AwsSecurityHubSce]!
  UnprocessedFindings: [AwsSecurityHubBatchUpdateFindingsOutputUnprocessedFindings]!
}

type AwsSecurityHubSce {
  Id: String!
  ProductArn: String!
}

type AwsSecurityHubBatchUpdateFindingsOutputUnprocessedFindings {
  FindingIdentifier: AwsSecurityHubSce!
  ErrorCode: String!
  ErrorMessage: String!
}

input AwsSecurityHubBatchUpdateFindingsInput {
  FindingIdentifiers: [AwsSecurityHubSceInput]!
  Note: AwsSecurityHubScfInput
  Severity: AwsSecurityHubBatchUpdateFindingsSeverityInput
  VerificationState: String
  Confidence: Int
  Criticality: Int
  Types: [String]
  UserDefinedFields: JSON
  Workflow: AwsSecurityHubBatchUpdateFindingsWorkflowInput
  RelatedFindings: [AwsSecurityHubSbfInput]
}

input AwsSecurityHubSceInput {
  Id: String!
  ProductArn: String!
}

input AwsSecurityHubScfInput {
  Text: String!
  UpdatedBy: String!
}

input AwsSecurityHubBatchUpdateFindingsSeverityInput {
  Normalized: Int
  Product: JSON
  Label: String
}

input AwsSecurityHubBatchUpdateFindingsWorkflowInput {
  Status: String
}

type AwsSecurityHubCreateActionTargetOutput {
  ActionTargetArn: String!
}

input AwsSecurityHubCreateActionTargetInput {
  Name: String!
  Description: String!
  Id: String!
}

type AwsSecurityHubCreateInsightOutput {
  InsightArn: String!
}

input AwsSecurityHubCreateInsightInput {
  Name: String!
  Filters: AwsSecurityHubScoInput!
  GroupByAttribute: String!
}

input AwsSecurityHubScoInput {
  ProductArn: [AwsSecurityHubScpInput]
  AwsAccountId: [AwsSecurityHubScpInput]
  Id: [AwsSecurityHubScpInput]
  GeneratorId: [AwsSecurityHubScpInput]
  Type: [AwsSecurityHubScpInput]
  FirstObservedAt: [AwsSecurityHubScsInput]
  LastObservedAt: [AwsSecurityHubScsInput]
  CreatedAt: [AwsSecurityHubScsInput]
  UpdatedAt: [AwsSecurityHubScsInput]
  SeverityProduct: [AwsSecurityHubScwInput]
  SeverityNormalized: [AwsSecurityHubScwInput]
  SeverityLabel: [AwsSecurityHubScpInput]
  Confidence: [AwsSecurityHubScwInput]
  Criticality: [AwsSecurityHubScwInput]
  Title: [AwsSecurityHubScpInput]
  Description: [AwsSecurityHubScpInput]
  RecommendationText: [AwsSecurityHubScpInput]
  SourceUrl: [AwsSecurityHubScpInput]
  ProductFields: [AwsSecurityHubScyInput]
  ProductName: [AwsSecurityHubScpInput]
  CompanyName: [AwsSecurityHubScpInput]
  UserDefinedFields: [AwsSecurityHubScyInput]
  MalwareName: [AwsSecurityHubScpInput]
  MalwareType: [AwsSecurityHubScpInput]
  MalwarePath: [AwsSecurityHubScpInput]
  MalwareState: [AwsSecurityHubScpInput]
  NetworkDirection: [AwsSecurityHubScpInput]
  NetworkProtocol: [AwsSecurityHubScpInput]
  NetworkSourceIpV4: [AwsSecurityHubSd1Input]
  NetworkSourceIpV6: [AwsSecurityHubSd1Input]
  NetworkSourcePort: [AwsSecurityHubScwInput]
  NetworkSourceDomain: [AwsSecurityHubScpInput]
  NetworkSourceMac: [AwsSecurityHubScpInput]
  NetworkDestinationIpV4: [AwsSecurityHubSd1Input]
  NetworkDestinationIpV6: [AwsSecurityHubSd1Input]
  NetworkDestinationPort: [AwsSecurityHubScwInput]
  NetworkDestinationDomain: [AwsSecurityHubScpInput]
  ProcessName: [AwsSecurityHubScpInput]
  ProcessPath: [AwsSecurityHubScpInput]
  ProcessPid: [AwsSecurityHubScwInput]
  ProcessParentPid: [AwsSecurityHubScwInput]
  ProcessLaunchedAt: [AwsSecurityHubScsInput]
  ProcessTerminatedAt: [AwsSecurityHubScsInput]
  ThreatIntelIndicatorType: [AwsSecurityHubScpInput]
  ThreatIntelIndicatorValue: [AwsSecurityHubScpInput]
  ThreatIntelIndicatorCategory: [AwsSecurityHubScpInput]
  ThreatIntelIndicatorLastObservedAt: [AwsSecurityHubScsInput]
  ThreatIntelIndicatorSource: [AwsSecurityHubScpInput]
  ThreatIntelIndicatorSourceUrl: [AwsSecurityHubScpInput]
  ResourceType: [AwsSecurityHubScpInput]
  ResourceId: [AwsSecurityHubScpInput]
  ResourcePartition: [AwsSecurityHubScpInput]
  ResourceRegion: [AwsSecurityHubScpInput]
  ResourceTags: [AwsSecurityHubScyInput]
  ResourceAwsEc2InstanceType: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceImageId: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceIpV4Addresses: [AwsSecurityHubSd1Input]
  ResourceAwsEc2InstanceIpV6Addresses: [AwsSecurityHubSd1Input]
  ResourceAwsEc2InstanceKeyName: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceIamInstanceProfileArn: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceVpcId: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceSubnetId: [AwsSecurityHubScpInput]
  ResourceAwsEc2InstanceLaunchedAt: [AwsSecurityHubScsInput]
  ResourceAwsS3BucketOwnerId: [AwsSecurityHubScpInput]
  ResourceAwsS3BucketOwnerName: [AwsSecurityHubScpInput]
  ResourceAwsIamAccessKeyUserName: [AwsSecurityHubScpInput]
  ResourceAwsIamAccessKeyStatus: [AwsSecurityHubScpInput]
  ResourceAwsIamAccessKeyCreatedAt: [AwsSecurityHubScsInput]
  ResourceContainerName: [AwsSecurityHubScpInput]
  ResourceContainerImageId: [AwsSecurityHubScpInput]
  ResourceContainerImageName: [AwsSecurityHubScpInput]
  ResourceContainerLaunchedAt: [AwsSecurityHubScsInput]
  ResourceDetailsOther: [AwsSecurityHubScyInput]
  ComplianceStatus: [AwsSecurityHubScpInput]
  VerificationState: [AwsSecurityHubScpInput]
  WorkflowState: [AwsSecurityHubScpInput]
  WorkflowStatus: [AwsSecurityHubScpInput]
  RecordState: [AwsSecurityHubScpInput]
  RelatedFindingsProductArn: [AwsSecurityHubScpInput]
  RelatedFindingsId: [AwsSecurityHubScpInput]
  NoteText: [AwsSecurityHubScpInput]
  NoteUpdatedAt: [AwsSecurityHubScsInput]
  NoteUpdatedBy: [AwsSecurityHubScpInput]
  Keyword: [AwsSecurityHubScoKeywordInput]
  FindingProviderFieldsConfidence: [AwsSecurityHubScwInput]
  FindingProviderFieldsCriticality: [AwsSecurityHubScwInput]
  FindingProviderFieldsRelatedFindingsId: [AwsSecurityHubScpInput]
  FindingProviderFieldsRelatedFindingsProductArn: [AwsSecurityHubScpInput]
  FindingProviderFieldsSeverityLabel: [AwsSecurityHubScpInput]
  FindingProviderFieldsSeverityOriginal: [AwsSecurityHubScpInput]
  FindingProviderFieldsTypes: [AwsSecurityHubScpInput]
}

input AwsSecurityHubScpInput {
  Value: String
  Comparison: String
}

input AwsSecurityHubScsInput {
  Start: String
  End: String
  DateRange: AwsSecurityHubScsDateRangeInput
}

input AwsSecurityHubScsDateRangeInput {
  Value: Int
  Unit: String
}

input AwsSecurityHubScwInput {
  Gte: JSON
  Lte: JSON
  Eq: JSON
}

input AwsSecurityHubScyInput {
  Key: String
  Value: String
  Comparison: String
}

input AwsSecurityHubSd1Input {
  Cidr: String
}

input AwsSecurityHubScoKeywordInput {
  Value: String
}

type AwsSecurityHubCreateMembersOutput {
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

type AwsSecurityHubSdb {
  AccountId: String
  ProcessingResult: String
}

input AwsSecurityHubCreateMembersInput {
  AccountDetails: [AwsSecurityHubCreateMembersAccountDetailsInput]!
}

input AwsSecurityHubCreateMembersAccountDetailsInput {
  AccountId: String!
  Email: String
}

type AwsSecurityHubDeclineInvitationsOutput {
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

input AwsSecurityHubDeclineInvitationsInput {
  AccountIds: [String]!
}

type AwsSecurityHubDeleteActionTargetOutput {
  ActionTargetArn: String!
}

input AwsSecurityHubDeleteActionTargetInput {
  ActionTargetArn: String!
}

type AwsSecurityHubDeleteInsightOutput {
  InsightArn: String!
}

input AwsSecurityHubDeleteInsightInput {
  InsightArn: String!
}

type AwsSecurityHubDeleteInvitationsOutput {
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

input AwsSecurityHubDeleteInvitationsInput {
  AccountIds: [String]!
}

type AwsSecurityHubDeleteMembersOutput {
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

input AwsSecurityHubDeleteMembersInput {
  AccountIds: [String]!
}

type AwsSecurityHubDescribeActionTargetsOutput {
  ActionTargets: [AwsSecurityHubDescribeActionTargetsOutputActionTargets]!
  NextToken: String
}

type AwsSecurityHubDescribeActionTargetsOutputActionTargets {
  ActionTargetArn: String!
  Name: String!
  Description: String!
}

input AwsSecurityHubDescribeActionTargetsInput {
  ActionTargetArns: [String]
  NextToken: String
  MaxResults: Int
}

type AwsSecurityHubDescribeHubOutput {
  HubArn: String
  SubscribedAt: String
  AutoEnableControls: Boolean
}

input AwsSecurityHubDescribeHubInput {
  HubArn: String
}

type AwsSecurityHubDescribeOrganizationConfigurationOutput {
  AutoEnable: Boolean
  MemberAccountLimitReached: Boolean
}

type AwsSecurityHubDescribeProductsOutput {
  Products: [AwsSecurityHubDescribeProductsOutputProducts]!
  NextToken: String
}

type AwsSecurityHubDescribeProductsOutputProducts {
  ProductArn: String!
  ProductName: String
  CompanyName: String
  Description: String
  Categories: [String]
  IntegrationTypes: [String]
  MarketplaceUrl: String
  ActivationUrl: String
  ProductSubscriptionResourcePolicy: String
}

input AwsSecurityHubDescribeProductsInput {
  NextToken: String
  MaxResults: Int
  ProductArn: String
}

type AwsSecurityHubDescribeStandardsOutput {
  Standards: [AwsSecurityHubDescribeStandardsOutputStandards]
  NextToken: String
}

type AwsSecurityHubDescribeStandardsOutputStandards {
  StandardsArn: String
  Name: String
  Description: String
  EnabledByDefault: Boolean
}

input AwsSecurityHubDescribeStandardsInput {
  NextToken: String
  MaxResults: Int
}

type AwsSecurityHubDescribeStandardsControlsOutput {
  Controls: [AwsSecurityHubDescribeStandardsControlsOutputControls]
  NextToken: String
}

type AwsSecurityHubDescribeStandardsControlsOutputControls {
  StandardsControlArn: String
  ControlStatus: String
  DisabledReason: String
  ControlStatusUpdatedAt: Date
  ControlId: String
  Title: String
  Description: String
  RemediationUrl: String
  SeverityRating: String
  RelatedRequirements: [String]
}

input AwsSecurityHubDescribeStandardsControlsInput {
  StandardsSubscriptionArn: String!
  NextToken: String
  MaxResults: Int
}

input AwsSecurityHubDisableImportFindingsForProductInput {
  ProductSubscriptionArn: String!
}

input AwsSecurityHubDisableOrganizationAdminAccountInput {
  AdminAccountId: String!
}

input AwsSecurityHubDisassociateMembersInput {
  AccountIds: [String]!
}

type AwsSecurityHubEnableImportFindingsForProductOutput {
  ProductSubscriptionArn: String
}

input AwsSecurityHubEnableImportFindingsForProductInput {
  ProductArn: String!
}

input AwsSecurityHubEnableOrganizationAdminAccountInput {
  AdminAccountId: String!
}

input AwsSecurityHubEnableSecurityHubInput {
  Tags: JSON
  EnableDefaultStandards: Boolean
}

type AwsSecurityHubGetAdministratorAccountOutput {
  Administrator: AwsSecurityHubSf4
}

type AwsSecurityHubSf4 {
  AccountId: String
  InvitationId: String
  InvitedAt: Date
  MemberStatus: String
}

type AwsSecurityHubGetEnabledStandardsOutput {
  StandardsSubscriptions: [AwsSecurityHubS9]
  NextToken: String
}

input AwsSecurityHubGetEnabledStandardsInput {
  StandardsSubscriptionArns: [String]
  NextToken: String
  MaxResults: Int
}

type AwsSecurityHubGetFindingsOutput {
  Findings: [AwsSecurityHubSj]!
  NextToken: String
}

type AwsSecurityHubSj {
  SchemaVersion: String!
  Id: String!
  ProductArn: String!
  GeneratorId: String!
  AwsAccountId: String!
  Types: [String]
  FirstObservedAt: String
  LastObservedAt: String
  CreatedAt: String!
  UpdatedAt: String!
  Severity: AwsSecurityHubSjSeverity
  Confidence: Int
  Criticality: Int
  Title: String!
  Description: String!
  Remediation: AwsSecurityHubSjRemediation
  SourceUrl: String
  ProductFields: JSON
  UserDefinedFields: JSON
  Malware: [AwsSecurityHubSjMalware]
  Network: AwsSecurityHubSjNetwork
  NetworkPath: [AwsSecurityHubSjNetworkPath]
  Process: AwsSecurityHubSjProcess
  ThreatIntelIndicators: [AwsSecurityHubSjThreatIntelIndicators]
  Resources: [AwsSecurityHubSjResources]!
  Compliance: AwsSecurityHubSjCompliance
  VerificationState: String
  WorkflowState: String
  Workflow: AwsSecurityHubSjWorkflow
  RecordState: String
  RelatedFindings: [AwsSecurityHubSbf]
  Note: AwsSecurityHubSjNote
  Vulnerabilities: [AwsSecurityHubSjVulnerabilities]
  PatchSummary: AwsSecurityHubSjPatchSummary
  Action: AwsSecurityHubSjAction
  FindingProviderFields: AwsSecurityHubSjFindingProviderFields
}

type AwsSecurityHubSjSeverity {
  Product: JSON
  Label: String
  Normalized: Int
  Original: String
}

type AwsSecurityHubSjRemediation {
  Recommendation: AwsSecurityHubSjRemediationRecommendation
}

type AwsSecurityHubSjRemediationRecommendation {
  Text: String
  Url: String
}

type AwsSecurityHubSjMalware {
  Name: String!
  Type: String
  Path: String
  State: String
}

type AwsSecurityHubSjNetwork {
  Direction: String
  Protocol: String
  OpenPortRange: AwsSecurityHubSy
  SourceIpV4: String
  SourceIpV6: String
  SourcePort: Int
  SourceDomain: String
  SourceMac: String
  DestinationIpV4: String
  DestinationIpV6: String
  DestinationPort: Int
  DestinationDomain: String
}

type AwsSecurityHubSy {
  Begin: Int
  End: Int
}

type AwsSecurityHubSjNetworkPath {
  ComponentId: String
  ComponentType: String
  Egress: AwsSecurityHubS11
  Ingress: AwsSecurityHubS11
}

type AwsSecurityHubS11 {
  Protocol: String
  Destination: AwsSecurityHubS12
  Source: AwsSecurityHubS12
}

type AwsSecurityHubS12 {
  Address: [String]
  PortRanges: [AwsSecurityHubSy]
}

type AwsSecurityHubSjProcess {
  Name: String
  Path: String
  Pid: Int
  ParentPid: Int
  LaunchedAt: String
  TerminatedAt: String
}

type AwsSecurityHubSjThreatIntelIndicators {
  Type: String
  Value: String
  Category: String
  LastObservedAt: String
  Source: String
  SourceUrl: String
}

type AwsSecurityHubSjResources {
  Type: String!
  Id: String!
  Partition: String
  Region: String
  ResourceRole: String
  Tags: JSON
  DataClassification: AwsSecurityHubSjResourcesDataClassification
  Details: AwsSecurityHubSjResourcesDetails
}

type AwsSecurityHubSjResourcesDataClassification {
  DetailedResultsLocation: String
  Result: AwsSecurityHubSjResourcesDataClassificationResult
}

type AwsSecurityHubSjResourcesDataClassificationResult {
  MimeType: String
  SizeClassified: JSON
  AdditionalOccurrences: Boolean
  Status: AwsSecurityHubSjResourcesDataClassificationResultStatus
  SensitiveData: [AwsSecurityHubSjResourcesDataClassificationResultSensitiveData]
  CustomDataIdentifiers: AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiers
}

type AwsSecurityHubSjResourcesDataClassificationResultStatus {
  Code: String
  Reason: String
}

type AwsSecurityHubSjResourcesDataClassificationResultSensitiveData {
  Category: String
  Detections: [AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataDetections]
  TotalCount: JSON
}

type AwsSecurityHubSjResourcesDataClassificationResultSensitiveDataDetections {
  Count: JSON
  Type: String
  Occurrences: AwsSecurityHubS1m
}

type AwsSecurityHubS1m {
  LineRanges: [AwsSecurityHubS1o]
  OffsetRanges: [AwsSecurityHubS1o]
  Pages: [AwsSecurityHubS1mPages]
  Records: [AwsSecurityHubS1mRecords]
  Cells: [AwsSecurityHubS1mCells]
}

type AwsSecurityHubS1o {
  Start: JSON
  End: JSON
  StartColumn: JSON
}

type AwsSecurityHubS1mPages {
  PageNumber: JSON
  LineRange: AwsSecurityHubS1o
  OffsetRange: AwsSecurityHubS1o
}

type AwsSecurityHubS1mRecords {
  JsonPath: String
  RecordIndex: JSON
}

type AwsSecurityHubS1mCells {
  Column: JSON
  Row: JSON
  ColumnName: String
  CellReference: String
}

type AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiers {
  Detections: [AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersDetections]
  TotalCount: JSON
}

type AwsSecurityHubSjResourcesDataClassificationResultCustomDataIdentifiersDetections {
  Count: JSON
  Arn: String
  Name: String
  Occurrences: AwsSecurityHubS1m
}

type AwsSecurityHubSjResourcesDetails {
  AwsAutoScalingAutoScalingGroup: AwsSecurityHubSjResourcesDetailsAwsAutoScalingAutoScalingGroup
  AwsCodeBuildProject: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProject
  AwsCloudFrontDistribution: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistribution
  AwsEc2Instance: AwsSecurityHubSjResourcesDetailsAwsEc2Instance
  AwsEc2NetworkInterface: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterface
  AwsEc2SecurityGroup: AwsSecurityHubSjResourcesDetailsAwsEc2SecurityGroup
  AwsEc2Volume: AwsSecurityHubSjResourcesDetailsAwsEc2Volume
  AwsEc2Vpc: AwsSecurityHubSjResourcesDetailsAwsEc2Vpc
  AwsEc2Eip: AwsSecurityHubSjResourcesDetailsAwsEc2Eip
  AwsEc2Subnet: AwsSecurityHubSjResourcesDetailsAwsEc2Subnet
  AwsEc2NetworkAcl: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAcl
  AwsElbv2LoadBalancer: AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancer
  AwsElasticBeanstalkEnvironment: AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironment
  AwsElasticsearchDomain: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomain
  AwsS3Bucket: AwsSecurityHubSjResourcesDetailsAwsS3Bucket
  AwsS3AccountPublicAccessBlock: AwsSecurityHubS4r
  AwsS3Object: AwsSecurityHubSjResourcesDetailsAwsS3Object
  AwsSecretsManagerSecret: AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecret
  AwsIamAccessKey: AwsSecurityHubSjResourcesDetailsAwsIamAccessKey
  AwsIamUser: AwsSecurityHubSjResourcesDetailsAwsIamUser
  AwsIamPolicy: AwsSecurityHubSjResourcesDetailsAwsIamPolicy
  AwsApiGatewayV2Stage: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2Stage
  AwsApiGatewayV2Api: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2Api
  AwsDynamoDbTable: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTable
  AwsApiGatewayStage: AwsSecurityHubSjResourcesDetailsAwsApiGatewayStage
  AwsApiGatewayRestApi: AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApi
  AwsCloudTrailTrail: AwsSecurityHubSjResourcesDetailsAwsCloudTrailTrail
  AwsSsmPatchCompliance: AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliance
  AwsCertificateManagerCertificate: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificate
  AwsRedshiftCluster: AwsSecurityHubSjResourcesDetailsAwsRedshiftCluster
  AwsElbLoadBalancer: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancer
  AwsIamGroup: AwsSecurityHubSjResourcesDetailsAwsIamGroup
  AwsIamRole: AwsSecurityHubSjResourcesDetailsAwsIamRole
  AwsKmsKey: AwsSecurityHubSjResourcesDetailsAwsKmsKey
  AwsLambdaFunction: AwsSecurityHubSjResourcesDetailsAwsLambdaFunction
  AwsLambdaLayerVersion: AwsSecurityHubSjResourcesDetailsAwsLambdaLayerVersion
  AwsRdsDbInstance: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstance
  AwsSnsTopic: AwsSecurityHubSjResourcesDetailsAwsSnsTopic
  AwsSqsQueue: AwsSecurityHubSjResourcesDetailsAwsSqsQueue
  AwsWafWebAcl: AwsSecurityHubSjResourcesDetailsAwsWafWebAcl
  AwsRdsDbSnapshot: AwsSecurityHubSjResourcesDetailsAwsRdsDbSnapshot
  AwsRdsDbClusterSnapshot: AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterSnapshot
  AwsRdsDbCluster: AwsSecurityHubSjResourcesDetailsAwsRdsDbCluster
  AwsEcsCluster: AwsSecurityHubSjResourcesDetailsAwsEcsCluster
  AwsEcsTaskDefinition: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinition
  Container: AwsSecurityHubSjResourcesDetailsContainer
  Other: JSON
}

type AwsSecurityHubSjResourcesDetailsAwsAutoScalingAutoScalingGroup {
  LaunchConfigurationName: String
  LoadBalancerNames: [String]
  HealthCheckType: String
  HealthCheckGracePeriod: Int
  CreatedTime: String
}

type AwsSecurityHubSjResourcesDetailsAwsCodeBuildProject {
  EncryptionKey: String
  Environment: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironment
  Name: String
  Source: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectSource
  ServiceRole: String
  VpcConfig: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectVpcConfig
}

type AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironment {
  Certificate: String
  ImagePullCredentialsType: String
  RegistryCredential: AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentRegistryCredential
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectEnvironmentRegistryCredential {
  Credential: String
  CredentialProvider: String
}

type AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectSource {
  Type: String
  Location: String
  GitCloneDepth: Int
  InsecureSsl: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsCodeBuildProjectVpcConfig {
  VpcId: String
  Subnets: [String]
  SecurityGroupIds: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistribution {
  CacheBehaviors: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviors
  DefaultCacheBehavior: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionDefaultCacheBehavior
  DefaultRootObject: String
  DomainName: String
  ETag: String
  LastModifiedTime: String
  Logging: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionLogging
  Origins: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOrigins
  OriginGroups: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroups
  Status: String
  WebAclId: String
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviors {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsItems]
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionCacheBehaviorsItems {
  ViewerProtocolPolicy: String
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionDefaultCacheBehavior {
  ViewerProtocolPolicy: String
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionLogging {
  Bucket: String
  Enabled: Boolean
  IncludeCookies: Boolean
  Prefix: String
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOrigins {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItems]
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItems {
  DomainName: String
  Id: String
  OriginPath: String
  S3OriginConfig: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsS3OriginConfig
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginsItemsS3OriginConfig {
  OriginAccessIdentity: String
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroups {
  Items: [AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItems]
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItems {
  FailoverCriteria: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteria
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteria {
  StatusCodes: AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaStatusCodes
}

type AwsSecurityHubSjResourcesDetailsAwsCloudFrontDistributionOriginGroupsItemsFailoverCriteriaStatusCodes {
  Items: [Int]
  Quantity: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEc2Instance {
  Type: String
  ImageId: String
  IpV4Addresses: [String]
  IpV6Addresses: [String]
  KeyName: String
  IamInstanceProfileArn: String
  VpcId: String
  SubnetId: String
  LaunchedAt: String
  NetworkInterfaces: [AwsSecurityHubSjResourcesDetailsAwsEc2InstanceNetworkInterfaces]
}

type AwsSecurityHubSjResourcesDetailsAwsEc2InstanceNetworkInterfaces {
  NetworkInterfaceId: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterface {
  Attachment: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceAttachment
  NetworkInterfaceId: String
  SecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceSecurityGroups]
  SourceDestCheck: Boolean
  IpV6Addresses: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceIpV6Addresses]
  PrivateIpAddresses: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfacePrivateIpAddresses]
  PublicDnsName: String
  PublicIp: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceAttachment {
  AttachTime: String
  AttachmentId: String
  DeleteOnTermination: Boolean
  DeviceIndex: Int
  InstanceId: String
  InstanceOwnerId: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceSecurityGroups {
  GroupName: String
  GroupId: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfaceIpV6Addresses {
  IpV6Address: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkInterfacePrivateIpAddresses {
  PrivateIpAddress: String
  PrivateDnsName: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2SecurityGroup {
  GroupName: String
  GroupId: String
  OwnerId: String
  VpcId: String
  IpPermissions: [AwsSecurityHubS2y]
  IpPermissionsEgress: [AwsSecurityHubS2y]
}

type AwsSecurityHubS2y {
  IpProtocol: String
  FromPort: Int
  ToPort: Int
  UserIdGroupPairs: [AwsSecurityHubS2yUserIdGroupPairs]
  IpRanges: [AwsSecurityHubS2yIpRanges]
  Ipv6Ranges: [AwsSecurityHubS2yIpv6Ranges]
  PrefixListIds: [AwsSecurityHubS2yPrefixListIds]
}

type AwsSecurityHubS2yUserIdGroupPairs {
  GroupId: String
  GroupName: String
  PeeringStatus: String
  UserId: String
  VpcId: String
  VpcPeeringConnectionId: String
}

type AwsSecurityHubS2yIpRanges {
  CidrIp: String
}

type AwsSecurityHubS2yIpv6Ranges {
  CidrIpv6: String
}

type AwsSecurityHubS2yPrefixListIds {
  PrefixListId: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2Volume {
  CreateTime: String
  Encrypted: Boolean
  Size: Int
  SnapshotId: String
  Status: String
  KmsKeyId: String
  Attachments: [AwsSecurityHubSjResourcesDetailsAwsEc2VolumeAttachments]
}

type AwsSecurityHubSjResourcesDetailsAwsEc2VolumeAttachments {
  AttachTime: String
  DeleteOnTermination: Boolean
  InstanceId: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2Vpc {
  CidrBlockAssociationSet: [AwsSecurityHubSjResourcesDetailsAwsEc2VpcCidrBlockAssociationSet]
  Ipv6CidrBlockAssociationSet: [AwsSecurityHubS3e]
  DhcpOptionsId: String
  State: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2VpcCidrBlockAssociationSet {
  AssociationId: String
  CidrBlock: String
  CidrBlockState: String
}

type AwsSecurityHubS3e {
  AssociationId: String
  Ipv6CidrBlock: String
  CidrBlockState: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2Eip {
  InstanceId: String
  PublicIp: String
  AllocationId: String
  AssociationId: String
  Domain: String
  PublicIpv4Pool: String
  NetworkBorderGroup: String
  NetworkInterfaceId: String
  NetworkInterfaceOwnerId: String
  PrivateIpAddress: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2Subnet {
  AssignIpv6AddressOnCreation: Boolean
  AvailabilityZone: String
  AvailabilityZoneId: String
  AvailableIpAddressCount: Int
  CidrBlock: String
  DefaultForAz: Boolean
  MapPublicIpOnLaunch: Boolean
  OwnerId: String
  State: String
  SubnetArn: String
  SubnetId: String
  VpcId: String
  Ipv6CidrBlockAssociationSet: [AwsSecurityHubS3e]
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAcl {
  IsDefault: Boolean
  NetworkAclId: String
  OwnerId: String
  VpcId: String
  Associations: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclAssociations]
  Entries: [AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntries]
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclAssociations {
  NetworkAclAssociationId: String
  NetworkAclId: String
  SubnetId: String
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntries {
  CidrBlock: String
  Egress: Boolean
  IcmpTypeCode: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesIcmpTypeCode
  Ipv6CidrBlock: String
  PortRange: AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesPortRange
  Protocol: String
  RuleAction: String
  RuleNumber: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesIcmpTypeCode {
  Code: Int
  Type: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEc2NetworkAclEntriesPortRange {
  From: Int
  To: Int
}

type AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancer {
  AvailabilityZones: [AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerAvailabilityZones]
  CanonicalHostedZoneId: String
  CreatedTime: String
  DNSName: String
  IpAddressType: String
  Scheme: String
  SecurityGroups: [String]
  State: AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerState
  Type: String
  VpcId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerAvailabilityZones {
  ZoneName: String
  SubnetId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbv2LoadBalancerState {
  Code: String
  Reason: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironment {
  ApplicationName: String
  Cname: String
  DateCreated: String
  DateUpdated: String
  Description: String
  EndpointUrl: String
  EnvironmentArn: String
  EnvironmentId: String
  EnvironmentLinks: [AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentEnvironmentLinks]
  EnvironmentName: String
  OptionSettings: [AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentOptionSettings]
  PlatformArn: String
  SolutionStackName: String
  Status: String
  Tier: AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentTier
  VersionLabel: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentEnvironmentLinks {
  EnvironmentName: String
  LinkName: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentOptionSettings {
  Namespace: String
  OptionName: String
  ResourceName: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticBeanstalkEnvironmentTier {
  Name: String
  Type: String
  Version: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomain {
  AccessPolicies: String
  DomainEndpointOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainDomainEndpointOptions
  DomainId: String
  DomainName: String
  Endpoint: String
  Endpoints: JSON
  ElasticsearchVersion: String
  EncryptionAtRestOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainEncryptionAtRestOptions
  LogPublishingOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainLogPublishingOptions
  NodeToNodeEncryptionOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainNodeToNodeEncryptionOptions
  ServiceSoftwareOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainServiceSoftwareOptions
  VPCOptions: AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainVPCOptions
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainDomainEndpointOptions {
  EnforceHTTPS: Boolean
  TLSSecurityPolicy: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainEncryptionAtRestOptions {
  Enabled: Boolean
  KmsKeyId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainLogPublishingOptions {
  IndexSlowLogs: AwsSecurityHubS44
  SearchSlowLogs: AwsSecurityHubS44
}

type AwsSecurityHubS44 {
  CloudWatchLogsLogGroupArn: String
  Enabled: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainNodeToNodeEncryptionOptions {
  Enabled: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainServiceSoftwareOptions {
  AutomatedUpdateDate: String
  Cancellable: Boolean
  CurrentVersion: String
  Description: String
  NewVersion: String
  UpdateAvailable: Boolean
  UpdateStatus: String
}

type AwsSecurityHubSjResourcesDetailsAwsElasticsearchDomainVPCOptions {
  AvailabilityZones: [String]
  SecurityGroupIds: [String]
  SubnetIds: [String]
  VPCId: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3Bucket {
  OwnerId: String
  OwnerName: String
  CreatedAt: String
  ServerSideEncryptionConfiguration: AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfiguration
  BucketLifecycleConfiguration: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfiguration
  PublicAccessBlockConfiguration: AwsSecurityHubS4r
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfiguration {
  Rules: [AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRules]
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRules {
  ApplyServerSideEncryptionByDefault: AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesApplyServerSideEncryptionByDefault
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketServerSideEncryptionConfigurationRulesApplyServerSideEncryptionByDefault {
  SSEAlgorithm: String
  KMSMasterKeyID: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfiguration {
  Rules: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRules]
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRules {
  AbortIncompleteMultipartUpload: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUpload
  ExpirationDate: String
  ExpirationInDays: Int
  ExpiredObjectDeleteMarker: Boolean
  Filter: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilter
  ID: String
  NoncurrentVersionExpirationInDays: Int
  NoncurrentVersionTransitions: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitions]
  Prefix: String
  Status: String
  Transitions: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesTransitions]
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUpload {
  DaysAfterInitiation: Int
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilter {
  Predicate: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicate
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicate {
  Operands: [AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperands]
  Prefix: String
  Tag: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTag
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperands {
  Prefix: String
  Tag: AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTag
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTag {
  Key: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTag {
  Key: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitions {
  Days: Int
  StorageClass: String
}

type AwsSecurityHubSjResourcesDetailsAwsS3BucketBucketLifecycleConfigurationRulesTransitions {
  Date: String
  Days: Int
  StorageClass: String
}

type AwsSecurityHubS4r {
  BlockPublicAcls: Boolean
  BlockPublicPolicy: Boolean
  IgnorePublicAcls: Boolean
  RestrictPublicBuckets: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsS3Object {
  LastModified: String
  ETag: String
  VersionId: String
  ContentType: String
  ServerSideEncryption: String
  SSEKMSKeyId: String
}

type AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecret {
  RotationRules: AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretRotationRules
  RotationOccurredWithinFrequency: Boolean
  KmsKeyId: String
  RotationEnabled: Boolean
  RotationLambdaArn: String
  Deleted: Boolean
  Name: String
  Description: String
}

type AwsSecurityHubSjResourcesDetailsAwsSecretsManagerSecretRotationRules {
  AutomaticallyAfterDays: Int
}

type AwsSecurityHubSjResourcesDetailsAwsIamAccessKey {
  UserName: String
  Status: String
  CreatedAt: String
  PrincipalId: String
  PrincipalType: String
  PrincipalName: String
  AccountId: String
  AccessKeyId: String
  SessionContext: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContext
}

type AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContext {
  Attributes: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextAttributes
  SessionIssuer: AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextSessionIssuer
}

type AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextAttributes {
  MfaAuthenticated: Boolean
  CreationDate: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamAccessKeySessionContextSessionIssuer {
  Type: String
  PrincipalId: String
  Arn: String
  AccountId: String
  UserName: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamUser {
  AttachedManagedPolicies: [AwsSecurityHubS51]
  CreateDate: String
  GroupList: [String]
  Path: String
  PermissionsBoundary: AwsSecurityHubS53
  UserId: String
  UserName: String
  UserPolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamUserUserPolicyList]
}

type AwsSecurityHubS51 {
  PolicyName: String
  PolicyArn: String
}

type AwsSecurityHubS53 {
  PermissionsBoundaryArn: String
  PermissionsBoundaryType: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamUserUserPolicyList {
  PolicyName: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamPolicy {
  AttachmentCount: Int
  CreateDate: String
  DefaultVersionId: String
  Description: String
  IsAttachable: Boolean
  Path: String
  PermissionsBoundaryUsageCount: Int
  PolicyId: String
  PolicyName: String
  PolicyVersionList: [AwsSecurityHubSjResourcesDetailsAwsIamPolicyPolicyVersionList]
  UpdateDate: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamPolicyPolicyVersionList {
  VersionId: String
  IsDefaultVersion: Boolean
  CreateDate: String
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2Stage {
  ClientCertificateId: String
  CreatedDate: String
  Description: String
  DefaultRouteSettings: AwsSecurityHubS5a
  DeploymentId: String
  LastUpdatedDate: String
  RouteSettings: AwsSecurityHubS5a
  StageName: String
  StageVariables: JSON
  AccessLogSettings: AwsSecurityHubS5b
  AutoDeploy: Boolean
  LastDeploymentStatusMessage: String
  ApiGatewayManaged: Boolean
}

type AwsSecurityHubS5a {
  DetailedMetricsEnabled: Boolean
  LoggingLevel: String
  DataTraceEnabled: Boolean
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
}

type AwsSecurityHubS5b {
  Format: String
  DestinationArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2Api {
  ApiEndpoint: String
  ApiId: String
  ApiKeySelectionExpression: String
  CreatedDate: String
  Description: String
  Version: String
  Name: String
  ProtocolType: String
  RouteSelectionExpression: String
  CorsConfiguration: AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiCorsConfiguration
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayV2ApiCorsConfiguration {
  AllowOrigins: [String]
  AllowCredentials: Boolean
  ExposeHeaders: [String]
  MaxAge: Int
  AllowMethods: [String]
  AllowHeaders: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTable {
  AttributeDefinitions: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableAttributeDefinitions]
  BillingModeSummary: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableBillingModeSummary
  CreationDateTime: String
  GlobalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableGlobalSecondaryIndexes]
  GlobalTableVersion: String
  ItemCount: Int
  KeySchema: [AwsSecurityHubS5l]
  LatestStreamArn: String
  LatestStreamLabel: String
  LocalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableLocalSecondaryIndexes]
  ProvisionedThroughput: AwsSecurityHubS5o
  Replicas: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicas]
  RestoreSummary: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableRestoreSummary
  SseDescription: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableSseDescription
  StreamSpecification: AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableStreamSpecification
  TableId: String
  TableName: String
  TableSizeBytes: JSON
  TableStatus: String
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableAttributeDefinitions {
  AttributeName: String
  AttributeType: String
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableBillingModeSummary {
  BillingMode: String
  LastUpdateToPayPerRequestDateTime: String
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableGlobalSecondaryIndexes {
  Backfilling: Boolean
  IndexArn: String
  IndexName: String
  IndexSizeBytes: JSON
  IndexStatus: String
  ItemCount: Int
  KeySchema: [AwsSecurityHubS5l]
  Projection: AwsSecurityHubS5n
  ProvisionedThroughput: AwsSecurityHubS5o
}

type AwsSecurityHubS5l {
  AttributeName: String
  KeyType: String
}

type AwsSecurityHubS5n {
  NonKeyAttributes: [String]
  ProjectionType: String
}

type AwsSecurityHubS5o {
  LastDecreaseDateTime: String
  LastIncreaseDateTime: String
  NumberOfDecreasesToday: Int
  ReadCapacityUnits: Int
  WriteCapacityUnits: Int
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableLocalSecondaryIndexes {
  IndexArn: String
  IndexName: String
  KeySchema: [AwsSecurityHubS5l]
  Projection: AwsSecurityHubS5n
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicas {
  GlobalSecondaryIndexes: [AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasGlobalSecondaryIndexes]
  KmsMasterKeyId: String
  ProvisionedThroughputOverride: AwsSecurityHubS5v
  RegionName: String
  ReplicaStatus: String
  ReplicaStatusDescription: String
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableReplicasGlobalSecondaryIndexes {
  IndexName: String
  ProvisionedThroughputOverride: AwsSecurityHubS5v
}

type AwsSecurityHubS5v {
  ReadCapacityUnits: Int
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableRestoreSummary {
  SourceBackupArn: String
  SourceTableArn: String
  RestoreDateTime: String
  RestoreInProgress: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableSseDescription {
  InaccessibleEncryptionDateTime: String
  Status: String
  SseType: String
  KmsMasterKeyArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsDynamoDbTableStreamSpecification {
  StreamEnabled: Boolean
  StreamViewType: String
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayStage {
  DeploymentId: String
  ClientCertificateId: String
  StageName: String
  Description: String
  CacheClusterEnabled: Boolean
  CacheClusterSize: String
  CacheClusterStatus: String
  MethodSettings: [AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageMethodSettings]
  Variables: JSON
  DocumentationVersion: String
  AccessLogSettings: AwsSecurityHubS5b
  CanarySettings: AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageCanarySettings
  TracingEnabled: Boolean
  CreatedDate: String
  LastUpdatedDate: String
  WebAclArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageMethodSettings {
  MetricsEnabled: Boolean
  LoggingLevel: String
  DataTraceEnabled: Boolean
  ThrottlingBurstLimit: Int
  ThrottlingRateLimit: JSON
  CachingEnabled: Boolean
  CacheTtlInSeconds: Int
  CacheDataEncrypted: Boolean
  RequireAuthorizationForCacheControl: Boolean
  UnauthorizedCacheControlHeaderStrategy: String
  HttpMethod: String
  ResourcePath: String
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayStageCanarySettings {
  PercentTraffic: JSON
  DeploymentId: String
  StageVariableOverrides: JSON
  UseStageCache: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApi {
  Id: String
  Name: String
  Description: String
  CreatedDate: String
  Version: String
  BinaryMediaTypes: [String]
  MinimumCompressionSize: Int
  ApiKeySource: String
  EndpointConfiguration: AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiEndpointConfiguration
}

type AwsSecurityHubSjResourcesDetailsAwsApiGatewayRestApiEndpointConfiguration {
  Types: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsCloudTrailTrail {
  CloudWatchLogsLogGroupArn: String
  CloudWatchLogsRoleArn: String
  HasCustomEventSelectors: Boolean
  HomeRegion: String
  IncludeGlobalServiceEvents: Boolean
  IsMultiRegionTrail: Boolean
  IsOrganizationTrail: Boolean
  KmsKeyId: String
  LogFileValidationEnabled: Boolean
  Name: String
  S3BucketName: String
  S3KeyPrefix: String
  SnsTopicArn: String
  SnsTopicName: String
  TrailArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliance {
  Patch: AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatch
}

type AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatch {
  ComplianceSummary: AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchComplianceSummary
}

type AwsSecurityHubSjResourcesDetailsAwsSsmPatchCompliancePatchComplianceSummary {
  Status: String
  CompliantCriticalCount: Int
  CompliantHighCount: Int
  CompliantMediumCount: Int
  ExecutionType: String
  NonCompliantCriticalCount: Int
  CompliantInformationalCount: Int
  NonCompliantInformationalCount: Int
  CompliantUnspecifiedCount: Int
  NonCompliantLowCount: Int
  NonCompliantHighCount: Int
  CompliantLowCount: Int
  ComplianceType: String
  PatchBaselineId: String
  OverallSeverity: String
  NonCompliantMediumCount: Int
  NonCompliantUnspecifiedCount: Int
  PatchGroup: String
}

type AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificate {
  CertificateAuthorityArn: String
  CreatedAt: String
  DomainName: String
  DomainValidationOptions: [AwsSecurityHubS6a]
  ExtendedKeyUsages: [AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateExtendedKeyUsages]
  FailureReason: String
  ImportedAt: String
  InUseBy: [String]
  IssuedAt: String
  Issuer: String
  KeyAlgorithm: String
  KeyUsages: [AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateKeyUsages]
  NotAfter: String
  NotBefore: String
  Options: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateOptions
  RenewalEligibility: String
  RenewalSummary: AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateRenewalSummary
  Serial: String
  SignatureAlgorithm: String
  Status: String
  Subject: String
  SubjectAlternativeNames: [String]
  Type: String
}

type AwsSecurityHubS6a {
  DomainName: String
  ResourceRecord: AwsSecurityHubS6aResourceRecord
  ValidationDomain: String
  ValidationEmails: [String]
  ValidationMethod: String
  ValidationStatus: String
}

type AwsSecurityHubS6aResourceRecord {
  Name: String
  Type: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateExtendedKeyUsages {
  Name: String
  OId: String
}

type AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateKeyUsages {
  Name: String
}

type AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateOptions {
  CertificateTransparencyLoggingPreference: String
}

type AwsSecurityHubSjResourcesDetailsAwsCertificateManagerCertificateRenewalSummary {
  DomainValidationOptions: [AwsSecurityHubS6a]
  RenewalStatus: String
  RenewalStatusReason: String
  UpdatedAt: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftCluster {
  AllowVersionUpgrade: Boolean
  AutomatedSnapshotRetentionPeriod: Int
  AvailabilityZone: String
  ClusterAvailabilityStatus: String
  ClusterCreateTime: String
  ClusterIdentifier: String
  ClusterNodes: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterNodes]
  ClusterParameterGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroups]
  ClusterPublicKey: String
  ClusterRevisionNumber: String
  ClusterSecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSecurityGroups]
  ClusterSnapshotCopyStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSnapshotCopyStatus
  ClusterStatus: String
  ClusterSubnetGroupName: String
  ClusterVersion: String
  DBName: String
  DeferredMaintenanceWindows: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterDeferredMaintenanceWindows]
  ElasticIpStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterElasticIpStatus
  ElasticResizeNumberOfNodeOptions: String
  Encrypted: Boolean
  Endpoint: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterEndpoint
  EnhancedVpcRouting: Boolean
  ExpectedNextSnapshotScheduleTime: String
  ExpectedNextSnapshotScheduleTimeStatus: String
  HsmStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterHsmStatus
  IamRoles: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterIamRoles]
  KmsKeyId: String
  MaintenanceTrackName: String
  ManualSnapshotRetentionPeriod: Int
  MasterUsername: String
  NextMaintenanceWindowStartTime: String
  NodeType: String
  NumberOfNodes: Int
  PendingActions: [String]
  PendingModifiedValues: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterPendingModifiedValues
  PreferredMaintenanceWindow: String
  PubliclyAccessible: Boolean
  ResizeInfo: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterResizeInfo
  RestoreStatus: AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterRestoreStatus
  SnapshotScheduleIdentifier: String
  SnapshotScheduleState: String
  VpcId: String
  VpcSecurityGroups: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterVpcSecurityGroups]
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterNodes {
  NodeRole: String
  PrivateIpAddress: String
  PublicIpAddress: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroups {
  ClusterParameterStatusList: [AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsClusterParameterStatusList]
  ParameterApplyStatus: String
  ParameterGroupName: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterParameterGroupsClusterParameterStatusList {
  ParameterName: String
  ParameterApplyStatus: String
  ParameterApplyErrorDescription: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSecurityGroups {
  ClusterSecurityGroupName: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterClusterSnapshotCopyStatus {
  DestinationRegion: String
  ManualSnapshotRetentionPeriod: Int
  RetentionPeriod: Int
  SnapshotCopyGrantName: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterDeferredMaintenanceWindows {
  DeferMaintenanceEndTime: String
  DeferMaintenanceIdentifier: String
  DeferMaintenanceStartTime: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterElasticIpStatus {
  ElasticIp: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterEndpoint {
  Address: String
  Port: Int
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterHsmStatus {
  HsmClientCertificateIdentifier: String
  HsmConfigurationIdentifier: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterIamRoles {
  ApplyStatus: String
  IamRoleArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterPendingModifiedValues {
  AutomatedSnapshotRetentionPeriod: Int
  ClusterIdentifier: String
  ClusterType: String
  ClusterVersion: String
  EncryptionType: String
  EnhancedVpcRouting: Boolean
  MaintenanceTrackName: String
  MasterUserPassword: String
  NodeType: String
  NumberOfNodes: Int
  PubliclyAccessible: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterResizeInfo {
  AllowCancelResize: Boolean
  ResizeType: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterRestoreStatus {
  CurrentRestoreRateInMegaBytesPerSecond: JSON
  ElapsedTimeInSeconds: JSON
  EstimatedTimeToCompletionInSeconds: JSON
  ProgressInMegaBytes: JSON
  SnapshotSizeInMegaBytes: JSON
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRedshiftClusterVpcSecurityGroups {
  Status: String
  VpcSecurityGroupId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancer {
  AvailabilityZones: [String]
  BackendServerDescriptions: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerBackendServerDescriptions]
  CanonicalHostedZoneName: String
  CanonicalHostedZoneNameID: String
  CreatedTime: String
  DnsName: String
  HealthCheck: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerHealthCheck
  Instances: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInstances]
  ListenerDescriptions: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptions]
  LoadBalancerAttributes: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributes
  LoadBalancerName: String
  Policies: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPolicies
  Scheme: String
  SecurityGroups: [String]
  SourceSecurityGroup: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerSourceSecurityGroup
  Subnets: [String]
  VpcId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerBackendServerDescriptions {
  InstancePort: Int
  PolicyNames: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerHealthCheck {
  HealthyThreshold: Int
  Interval: Int
  Target: String
  Timeout: Int
  UnhealthyThreshold: Int
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerInstances {
  InstanceId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptions {
  Listener: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsListener
  PolicyNames: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerListenerDescriptionsListener {
  InstancePort: Int
  InstanceProtocol: String
  LoadBalancerPort: Int
  Protocol: String
  SslCertificateId: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributes {
  AccessLog: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesAccessLog
  ConnectionDraining: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionDraining
  ConnectionSettings: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionSettings
  CrossZoneLoadBalancing: AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesCrossZoneLoadBalancing
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesAccessLog {
  EmitInterval: Int
  Enabled: Boolean
  S3BucketName: String
  S3BucketPrefix: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionDraining {
  Enabled: Boolean
  Timeout: Int
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesConnectionSettings {
  IdleTimeout: Int
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerLoadBalancerAttributesCrossZoneLoadBalancing {
  Enabled: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPolicies {
  AppCookieStickinessPolicies: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesAppCookieStickinessPolicies]
  LbCookieStickinessPolicies: [AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesLbCookieStickinessPolicies]
  OtherPolicies: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesAppCookieStickinessPolicies {
  CookieName: String
  PolicyName: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerPoliciesLbCookieStickinessPolicies {
  CookieExpirationPeriod: JSON
  PolicyName: String
}

type AwsSecurityHubSjResourcesDetailsAwsElbLoadBalancerSourceSecurityGroup {
  GroupName: String
  OwnerAlias: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamGroup {
  AttachedManagedPolicies: [AwsSecurityHubS51]
  CreateDate: String
  GroupId: String
  GroupName: String
  GroupPolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamGroupGroupPolicyList]
  Path: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamGroupGroupPolicyList {
  PolicyName: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamRole {
  AssumeRolePolicyDocument: String
  AttachedManagedPolicies: [AwsSecurityHubS51]
  CreateDate: String
  InstanceProfileList: [AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileList]
  PermissionsBoundary: AwsSecurityHubS53
  RoleId: String
  RoleName: String
  RolePolicyList: [AwsSecurityHubSjResourcesDetailsAwsIamRoleRolePolicyList]
  MaxSessionDuration: Int
  Path: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileList {
  Arn: String
  CreateDate: String
  InstanceProfileId: String
  InstanceProfileName: String
  Path: String
  Roles: [AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListRoles]
}

type AwsSecurityHubSjResourcesDetailsAwsIamRoleInstanceProfileListRoles {
  Arn: String
  AssumeRolePolicyDocument: String
  CreateDate: String
  Path: String
  RoleId: String
  RoleName: String
}

type AwsSecurityHubSjResourcesDetailsAwsIamRoleRolePolicyList {
  PolicyName: String
}

type AwsSecurityHubSjResourcesDetailsAwsKmsKey {
  AWSAccountId: String
  CreationDate: JSON
  KeyId: String
  KeyManager: String
  KeyState: String
  Origin: String
  Description: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunction {
  Code: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionCode
  CodeSha256: String
  DeadLetterConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionDeadLetterConfig
  Environment: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironment
  FunctionName: String
  Handler: String
  KmsKeyArn: String
  LastModified: String
  Layers: [AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionLayers]
  MasterArn: String
  MemorySize: Int
  RevisionId: String
  Role: String
  Runtime: String
  Timeout: Int
  TracingConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionTracingConfig
  VpcConfig: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionVpcConfig
  Version: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionCode {
  S3Bucket: String
  S3Key: String
  S3ObjectVersion: String
  ZipFile: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionDeadLetterConfig {
  TargetArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironment {
  Variables: JSON
  Error: AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentError
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionEnvironmentError {
  ErrorCode: String
  Message: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionLayers {
  Arn: String
  CodeSize: Int
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionTracingConfig {
  Mode: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaFunctionVpcConfig {
  SecurityGroupIds: [String]
  SubnetIds: [String]
  VpcId: String
}

type AwsSecurityHubSjResourcesDetailsAwsLambdaLayerVersion {
  Version: JSON
  CompatibleRuntimes: [String]
  CreatedDate: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstance {
  AssociatedRoles: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceAssociatedRoles]
  CACertificateIdentifier: String
  DBClusterIdentifier: String
  DBInstanceIdentifier: String
  DBInstanceClass: String
  DbInstancePort: Int
  DbiResourceId: String
  DBName: String
  DeletionProtection: Boolean
  Endpoint: AwsSecurityHubS8f
  Engine: String
  EngineVersion: String
  IAMDatabaseAuthenticationEnabled: Boolean
  InstanceCreateTime: String
  KmsKeyId: String
  PubliclyAccessible: Boolean
  StorageEncrypted: Boolean
  TdeCredentialArn: String
  VpcSecurityGroups: [AwsSecurityHubS8g]
  MultiAz: Boolean
  EnhancedMonitoringResourceArn: String
  DbInstanceStatus: String
  MasterUsername: String
  AllocatedStorage: Int
  PreferredBackupWindow: String
  BackupRetentionPeriod: Int
  DbSecurityGroups: [String]
  DbParameterGroups: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbParameterGroups]
  AvailabilityZone: String
  DbSubnetGroup: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroup
  PreferredMaintenanceWindow: String
  PendingModifiedValues: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValues
  LatestRestorableTime: String
  AutoMinorVersionUpgrade: Boolean
  ReadReplicaSourceDBInstanceIdentifier: String
  ReadReplicaDBInstanceIdentifiers: [String]
  ReadReplicaDBClusterIdentifiers: [String]
  LicenseModel: String
  Iops: Int
  OptionGroupMemberships: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceOptionGroupMemberships]
  CharacterSetName: String
  SecondaryAvailabilityZone: String
  StatusInfos: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceStatusInfos]
  StorageType: String
  DomainMemberships: [AwsSecurityHubS8w]
  CopyTagsToSnapshot: Boolean
  MonitoringInterval: Int
  MonitoringRoleArn: String
  PromotionTier: Int
  Timezone: String
  PerformanceInsightsEnabled: Boolean
  PerformanceInsightsKmsKeyId: String
  PerformanceInsightsRetentionPeriod: Int
  EnabledCloudWatchLogsExports: [String]
  ProcessorFeatures: [AwsSecurityHubS8q]
  ListenerEndpoint: AwsSecurityHubS8f
  MaxAllocatedStorage: Int
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceAssociatedRoles {
  RoleArn: String
  FeatureName: String
  Status: String
}

type AwsSecurityHubS8f {
  Address: String
  Port: Int
  HostedZoneId: String
}

type AwsSecurityHubS8g {
  VpcSecurityGroupId: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbParameterGroups {
  DbParameterGroupName: String
  ParameterApplyStatus: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroup {
  DbSubnetGroupName: String
  DbSubnetGroupDescription: String
  VpcId: String
  SubnetGroupStatus: String
  Subnets: [AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnets]
  DbSubnetGroupArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnets {
  SubnetIdentifier: String
  SubnetAvailabilityZone: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsSubnetAvailabilityZone
  SubnetStatus: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceDbSubnetGroupSubnetsSubnetAvailabilityZone {
  Name: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValues {
  DbInstanceClass: String
  AllocatedStorage: Int
  MasterUserPassword: String
  Port: Int
  BackupRetentionPeriod: Int
  MultiAZ: Boolean
  EngineVersion: String
  LicenseModel: String
  Iops: Int
  DbInstanceIdentifier: String
  StorageType: String
  CaCertificateIdentifier: String
  DbSubnetGroupName: String
  PendingCloudWatchLogsExports: AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesPendingCloudWatchLogsExports
  ProcessorFeatures: [AwsSecurityHubS8q]
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstancePendingModifiedValuesPendingCloudWatchLogsExports {
  LogTypesToEnable: [String]
  LogTypesToDisable: [String]
}

type AwsSecurityHubS8q {
  Name: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceOptionGroupMemberships {
  OptionGroupName: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbInstanceStatusInfos {
  StatusType: String
  Normal: Boolean
  Status: String
  Message: String
}

type AwsSecurityHubS8w {
  Domain: String
  Status: String
  Fqdn: String
  IamRoleName: String
}

type AwsSecurityHubSjResourcesDetailsAwsSnsTopic {
  KmsMasterKeyId: String
  Subscription: [AwsSecurityHubSjResourcesDetailsAwsSnsTopicSubscription]
  TopicName: String
  Owner: String
}

type AwsSecurityHubSjResourcesDetailsAwsSnsTopicSubscription {
  Endpoint: String
  Protocol: String
}

type AwsSecurityHubSjResourcesDetailsAwsSqsQueue {
  KmsDataKeyReusePeriodSeconds: Int
  KmsMasterKeyId: String
  QueueName: String
  DeadLetterTargetArn: String
}

type AwsSecurityHubSjResourcesDetailsAwsWafWebAcl {
  Name: String
  DefaultAction: String
  Rules: [AwsSecurityHubSjResourcesDetailsAwsWafWebAclRules]
  WebAclId: String
}

type AwsSecurityHubSjResourcesDetailsAwsWafWebAclRules {
  Action: AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesAction
  ExcludedRules: [AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesExcludedRules]
  OverrideAction: AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesOverrideAction
  Priority: Int
  RuleId: String
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesAction {
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesExcludedRules {
  RuleId: String
}

type AwsSecurityHubSjResourcesDetailsAwsWafWebAclRulesOverrideAction {
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbSnapshot {
  DbSnapshotIdentifier: String
  DbInstanceIdentifier: String
  SnapshotCreateTime: String
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  AvailabilityZone: String
  VpcId: String
  InstanceCreateTime: String
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  Iops: Int
  OptionGroupName: String
  PercentProgress: Int
  SourceRegion: String
  SourceDbSnapshotIdentifier: String
  StorageType: String
  TdeCredentialArn: String
  Encrypted: Boolean
  KmsKeyId: String
  Timezone: String
  IamDatabaseAuthenticationEnabled: Boolean
  ProcessorFeatures: [AwsSecurityHubS8q]
  DbiResourceId: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterSnapshot {
  AvailabilityZones: [String]
  SnapshotCreateTime: String
  Engine: String
  AllocatedStorage: Int
  Status: String
  Port: Int
  VpcId: String
  ClusterCreateTime: String
  MasterUsername: String
  EngineVersion: String
  LicenseModel: String
  SnapshotType: String
  PercentProgress: Int
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterIdentifier: String
  DbClusterSnapshotIdentifier: String
  IamDatabaseAuthenticationEnabled: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbCluster {
  AllocatedStorage: Int
  AvailabilityZones: [String]
  BackupRetentionPeriod: Int
  DatabaseName: String
  Status: String
  Endpoint: String
  ReaderEndpoint: String
  CustomEndpoints: [String]
  MultiAz: Boolean
  Engine: String
  EngineVersion: String
  Port: Int
  MasterUsername: String
  PreferredBackupWindow: String
  PreferredMaintenanceWindow: String
  ReadReplicaIdentifiers: [String]
  VpcSecurityGroups: [AwsSecurityHubS8g]
  HostedZoneId: String
  StorageEncrypted: Boolean
  KmsKeyId: String
  DbClusterResourceId: String
  AssociatedRoles: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterAssociatedRoles]
  ClusterCreateTime: String
  EnabledCloudWatchLogsExports: [String]
  EngineMode: String
  DeletionProtection: Boolean
  HttpEndpointEnabled: Boolean
  ActivityStreamStatus: String
  CopyTagsToSnapshot: Boolean
  CrossAccountClone: Boolean
  DomainMemberships: [AwsSecurityHubS8w]
  DbClusterParameterGroup: String
  DbSubnetGroup: String
  DbClusterOptionGroupMemberships: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterOptionGroupMemberships]
  DbClusterIdentifier: String
  DbClusterMembers: [AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterMembers]
  IamDatabaseAuthenticationEnabled: Boolean
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterAssociatedRoles {
  RoleArn: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterOptionGroupMemberships {
  DbClusterOptionGroupName: String
  Status: String
}

type AwsSecurityHubSjResourcesDetailsAwsRdsDbClusterDbClusterMembers {
  IsClusterWriter: Boolean
  PromotionTier: Int
  DbInstanceIdentifier: String
  DbClusterParameterGroupStatus: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsCluster {
  CapacityProviders: [String]
  ClusterSettings: [AwsSecurityHubSjResourcesDetailsAwsEcsClusterClusterSettings]
  Configuration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfiguration
  DefaultCapacityProviderStrategy: [AwsSecurityHubSjResourcesDetailsAwsEcsClusterDefaultCapacityProviderStrategy]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsClusterClusterSettings {
  Name: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfiguration {
  ExecuteCommandConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfiguration
}

type AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfiguration {
  KmsKeyId: String
  LogConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfiguration
  Logging: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsClusterConfigurationExecuteCommandConfigurationLogConfiguration {
  CloudWatchEncryptionEnabled: Boolean
  CloudWatchLogGroupName: String
  S3BucketName: String
  S3EncryptionEnabled: Boolean
  S3KeyPrefix: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsClusterDefaultCapacityProviderStrategy {
  Base: Int
  CapacityProvider: String
  Weight: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinition {
  ContainerDefinitions: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitions]
  Cpu: String
  ExecutionRoleArn: String
  Family: String
  InferenceAccelerators: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInferenceAccelerators]
  IpcMode: String
  Memory: String
  NetworkMode: String
  PidMode: String
  PlacementConstraints: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionPlacementConstraints]
  ProxyConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfiguration
  RequiresCompatibilities: [String]
  TaskRoleArn: String
  Volumes: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumes]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitions {
  Command: [String]
  Cpu: Int
  DependsOn: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsDependsOn]
  DisableNetworking: Boolean
  DnsSearchDomains: [String]
  DnsServers: [String]
  DockerLabels: JSON
  DockerSecurityOptions: [String]
  EntryPoint: [String]
  Environment: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironment]
  EnvironmentFiles: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFiles]
  Essential: Boolean
  ExtraHosts: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsExtraHosts]
  FirelensConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsFirelensConfiguration
  HealthCheck: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsHealthCheck
  Hostname: String
  Image: String
  Interactive: Boolean
  Links: [String]
  LinuxParameters: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParameters
  LogConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfiguration
  Memory: Int
  MemoryReservation: Int
  MountPoints: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsMountPoints]
  Name: String
  PortMappings: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsPortMappings]
  Privileged: Boolean
  PseudoTerminal: Boolean
  ReadonlyRootFilesystem: Boolean
  RepositoryCredentials: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentials
  ResourceRequirements: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsResourceRequirements]
  Secrets: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSecrets]
  StartTimeout: Int
  StopTimeout: Int
  SystemControls: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSystemControls]
  Ulimits: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsUlimits]
  User: String
  VolumesFrom: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsVolumesFrom]
  WorkingDirectory: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsDependsOn {
  Condition: String
  ContainerName: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironment {
  Name: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsEnvironmentFiles {
  Type: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsExtraHosts {
  Hostname: String
  IpAddress: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsFirelensConfiguration {
  Options: JSON
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsHealthCheck {
  Command: [String]
  Interval: Int
  Retries: Int
  StartPeriod: Int
  Timeout: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParameters {
  Capabilities: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilities
  Devices: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevices]
  InitProcessEnabled: Boolean
  MaxSwap: Int
  SharedMemorySize: Int
  Swappiness: Int
  Tmpfs: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfs]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilities {
  Add: [String]
  Drop: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevices {
  ContainerPath: String
  HostPath: String
  Permissions: [String]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfs {
  ContainerPath: String
  MountOptions: [String]
  Size: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfiguration {
  LogDriver: String
  Options: JSON
  SecretOptions: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptions]
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptions {
  Name: String
  ValueFrom: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsMountPoints {
  ContainerPath: String
  ReadOnly: Boolean
  SourceVolume: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsPortMappings {
  ContainerPort: Int
  HostPort: Int
  Protocol: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentials {
  CredentialsParameter: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsResourceRequirements {
  Type: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSecrets {
  Name: String
  ValueFrom: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsSystemControls {
  Namespace: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsUlimits {
  HardLimit: Int
  Name: String
  SoftLimit: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionContainerDefinitionsVolumesFrom {
  ReadOnly: Boolean
  SourceContainer: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionInferenceAccelerators {
  DeviceName: String
  DeviceType: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionPlacementConstraints {
  Expression: String
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfiguration {
  ContainerName: String
  ProxyConfigurationProperties: [AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationProperties]
  Type: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionProxyConfigurationProxyConfigurationProperties {
  Name: String
  Value: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumes {
  DockerVolumeConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesDockerVolumeConfiguration
  EfsVolumeConfiguration: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfiguration
  Host: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesHost
  Name: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesDockerVolumeConfiguration {
  Autoprovision: Boolean
  Driver: String
  DriverOpts: JSON
  Labels: JSON
  Scope: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfiguration {
  AuthorizationConfig: AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfig
  FilesystemId: String
  RootDirectory: String
  TransitEncryption: String
  TransitEncryptionPort: Int
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfig {
  AccessPointId: String
  Iam: String
}

type AwsSecurityHubSjResourcesDetailsAwsEcsTaskDefinitionVolumesHost {
  SourcePath: String
}

type AwsSecurityHubSjResourcesDetailsContainer {
  Name: String
  ImageId: String
  ImageName: String
  LaunchedAt: String
}

type AwsSecurityHubSjCompliance {
  Status: String
  RelatedRequirements: [String]
  StatusReasons: [AwsSecurityHubSjComplianceStatusReasons]
}

type AwsSecurityHubSjComplianceStatusReasons {
  ReasonCode: String!
  Description: String
}

type AwsSecurityHubSjWorkflow {
  Status: String
}

type AwsSecurityHubSbf {
  ProductArn: String!
  Id: String!
}

type AwsSecurityHubSjNote {
  Text: String!
  UpdatedBy: String!
  UpdatedAt: String!
}

type AwsSecurityHubSjVulnerabilities {
  Id: String!
  VulnerablePackages: [AwsSecurityHubSjVulnerabilitiesVulnerablePackages]
  Cvss: [AwsSecurityHubSjVulnerabilitiesCvss]
  RelatedVulnerabilities: [String]
  Vendor: AwsSecurityHubSjVulnerabilitiesVendor
  ReferenceUrls: [String]
}

type AwsSecurityHubSjVulnerabilitiesVulnerablePackages {
  Name: String
  Version: String
  Epoch: String
  Release: String
  Architecture: String
}

type AwsSecurityHubSjVulnerabilitiesCvss {
  Version: String
  BaseScore: JSON
  BaseVector: String
}

type AwsSecurityHubSjVulnerabilitiesVendor {
  Name: String!
  Url: String
  VendorSeverity: String
  VendorCreatedAt: String
  VendorUpdatedAt: String
}

type AwsSecurityHubSjPatchSummary {
  Id: String!
  InstalledCount: Int
  MissingCount: Int
  FailedCount: Int
  InstalledOtherCount: Int
  InstalledRejectedCount: Int
  InstalledPendingReboot: Int
  OperationStartTime: String
  OperationEndTime: String
  RebootOption: String
  Operation: String
}

type AwsSecurityHubSjAction {
  ActionType: String
  NetworkConnectionAction: AwsSecurityHubSjActionNetworkConnectionAction
  AwsApiCallAction: AwsSecurityHubSjActionAwsApiCallAction
  DnsRequestAction: AwsSecurityHubSjActionDnsRequestAction
  PortProbeAction: AwsSecurityHubSjActionPortProbeAction
}

type AwsSecurityHubSjActionNetworkConnectionAction {
  ConnectionDirection: String
  RemoteIpDetails: AwsSecurityHubSbs
  RemotePortDetails: AwsSecurityHubSjActionNetworkConnectionActionRemotePortDetails
  LocalPortDetails: AwsSecurityHubSby
  Protocol: String
  Blocked: Boolean
}

type AwsSecurityHubSbs {
  IpAddressV4: String
  Organization: AwsSecurityHubSbsOrganization
  Country: AwsSecurityHubSbsCountry
  City: AwsSecurityHubSbsCity
  GeoLocation: AwsSecurityHubSbsGeoLocation
}

type AwsSecurityHubSbsOrganization {
  Asn: Int
  AsnOrg: String
  Isp: String
  Org: String
}

type AwsSecurityHubSbsCountry {
  CountryCode: String
  CountryName: String
}

type AwsSecurityHubSbsCity {
  CityName: String
}

type AwsSecurityHubSbsGeoLocation {
  Lon: JSON
  Lat: JSON
}

type AwsSecurityHubSjActionNetworkConnectionActionRemotePortDetails {
  Port: Int
  PortName: String
}

type AwsSecurityHubSby {
  Port: Int
  PortName: String
}

type AwsSecurityHubSjActionAwsApiCallAction {
  Api: String
  ServiceName: String
  CallerType: String
  RemoteIpDetails: AwsSecurityHubSbs
  DomainDetails: AwsSecurityHubSjActionAwsApiCallActionDomainDetails
  AffectedResources: JSON
  FirstSeen: String
  LastSeen: String
}

type AwsSecurityHubSjActionAwsApiCallActionDomainDetails {
  Domain: String
}

type AwsSecurityHubSjActionDnsRequestAction {
  Domain: String
  Protocol: String
  Blocked: Boolean
}

type AwsSecurityHubSjActionPortProbeAction {
  PortProbeDetails: [AwsSecurityHubSjActionPortProbeActionPortProbeDetails]
  Blocked: Boolean
}

type AwsSecurityHubSjActionPortProbeActionPortProbeDetails {
  LocalPortDetails: AwsSecurityHubSby
  LocalIpDetails: AwsSecurityHubSjActionPortProbeActionPortProbeDetailsLocalIpDetails
  RemoteIpDetails: AwsSecurityHubSbs
}

type AwsSecurityHubSjActionPortProbeActionPortProbeDetailsLocalIpDetails {
  IpAddressV4: String
}

type AwsSecurityHubSjFindingProviderFields {
  Confidence: Int
  Criticality: Int
  RelatedFindings: [AwsSecurityHubSbf]
  Severity: AwsSecurityHubSjFindingProviderFieldsSeverity
  Types: [String]
}

type AwsSecurityHubSjFindingProviderFieldsSeverity {
  Label: String
  Original: String
}

input AwsSecurityHubGetFindingsInput {
  Filters: AwsSecurityHubScoInput
  SortCriteria: [AwsSecurityHubGetFindingsSortCriteriaInput]
  NextToken: String
  MaxResults: Int
}

input AwsSecurityHubGetFindingsSortCriteriaInput {
  Field: String
  SortOrder: String
}

type AwsSecurityHubGetInsightResultsOutput {
  InsightResults: AwsSecurityHubGetInsightResultsOutputInsightResults!
}

type AwsSecurityHubGetInsightResultsOutputInsightResults {
  InsightArn: String!
  GroupByAttribute: String!
  ResultValues: [AwsSecurityHubGetInsightResultsOutputInsightResultsResultValues]!
}

type AwsSecurityHubGetInsightResultsOutputInsightResultsResultValues {
  GroupByAttributeValue: String!
  Count: Int!
}

input AwsSecurityHubGetInsightResultsInput {
  InsightArn: String!
}

type AwsSecurityHubGetInsightsOutput {
  Insights: [AwsSecurityHubGetInsightsOutputInsights]!
  NextToken: String
}

type AwsSecurityHubGetInsightsOutputInsights {
  InsightArn: String!
  Name: String!
  Filters: AwsSecurityHubSco!
  GroupByAttribute: String!
}

type AwsSecurityHubSco {
  ProductArn: [AwsSecurityHubScp]
  AwsAccountId: [AwsSecurityHubScp]
  Id: [AwsSecurityHubScp]
  GeneratorId: [AwsSecurityHubScp]
  Type: [AwsSecurityHubScp]
  FirstObservedAt: [AwsSecurityHubScs]
  LastObservedAt: [AwsSecurityHubScs]
  CreatedAt: [AwsSecurityHubScs]
  UpdatedAt: [AwsSecurityHubScs]
  SeverityProduct: [AwsSecurityHubScw]
  SeverityNormalized: [AwsSecurityHubScw]
  SeverityLabel: [AwsSecurityHubScp]
  Confidence: [AwsSecurityHubScw]
  Criticality: [AwsSecurityHubScw]
  Title: [AwsSecurityHubScp]
  Description: [AwsSecurityHubScp]
  RecommendationText: [AwsSecurityHubScp]
  SourceUrl: [AwsSecurityHubScp]
  ProductFields: [AwsSecurityHubScy]
  ProductName: [AwsSecurityHubScp]
  CompanyName: [AwsSecurityHubScp]
  UserDefinedFields: [AwsSecurityHubScy]
  MalwareName: [AwsSecurityHubScp]
  MalwareType: [AwsSecurityHubScp]
  MalwarePath: [AwsSecurityHubScp]
  MalwareState: [AwsSecurityHubScp]
  NetworkDirection: [AwsSecurityHubScp]
  NetworkProtocol: [AwsSecurityHubScp]
  NetworkSourceIpV4: [AwsSecurityHubSd1]
  NetworkSourceIpV6: [AwsSecurityHubSd1]
  NetworkSourcePort: [AwsSecurityHubScw]
  NetworkSourceDomain: [AwsSecurityHubScp]
  NetworkSourceMac: [AwsSecurityHubScp]
  NetworkDestinationIpV4: [AwsSecurityHubSd1]
  NetworkDestinationIpV6: [AwsSecurityHubSd1]
  NetworkDestinationPort: [AwsSecurityHubScw]
  NetworkDestinationDomain: [AwsSecurityHubScp]
  ProcessName: [AwsSecurityHubScp]
  ProcessPath: [AwsSecurityHubScp]
  ProcessPid: [AwsSecurityHubScw]
  ProcessParentPid: [AwsSecurityHubScw]
  ProcessLaunchedAt: [AwsSecurityHubScs]
  ProcessTerminatedAt: [AwsSecurityHubScs]
  ThreatIntelIndicatorType: [AwsSecurityHubScp]
  ThreatIntelIndicatorValue: [AwsSecurityHubScp]
  ThreatIntelIndicatorCategory: [AwsSecurityHubScp]
  ThreatIntelIndicatorLastObservedAt: [AwsSecurityHubScs]
  ThreatIntelIndicatorSource: [AwsSecurityHubScp]
  ThreatIntelIndicatorSourceUrl: [AwsSecurityHubScp]
  ResourceType: [AwsSecurityHubScp]
  ResourceId: [AwsSecurityHubScp]
  ResourcePartition: [AwsSecurityHubScp]
  ResourceRegion: [AwsSecurityHubScp]
  ResourceTags: [AwsSecurityHubScy]
  ResourceAwsEc2InstanceType: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceImageId: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceIpV4Addresses: [AwsSecurityHubSd1]
  ResourceAwsEc2InstanceIpV6Addresses: [AwsSecurityHubSd1]
  ResourceAwsEc2InstanceKeyName: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceIamInstanceProfileArn: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceVpcId: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceSubnetId: [AwsSecurityHubScp]
  ResourceAwsEc2InstanceLaunchedAt: [AwsSecurityHubScs]
  ResourceAwsS3BucketOwnerId: [AwsSecurityHubScp]
  ResourceAwsS3BucketOwnerName: [AwsSecurityHubScp]
  ResourceAwsIamAccessKeyUserName: [AwsSecurityHubScp]
  ResourceAwsIamAccessKeyStatus: [AwsSecurityHubScp]
  ResourceAwsIamAccessKeyCreatedAt: [AwsSecurityHubScs]
  ResourceContainerName: [AwsSecurityHubScp]
  ResourceContainerImageId: [AwsSecurityHubScp]
  ResourceContainerImageName: [AwsSecurityHubScp]
  ResourceContainerLaunchedAt: [AwsSecurityHubScs]
  ResourceDetailsOther: [AwsSecurityHubScy]
  ComplianceStatus: [AwsSecurityHubScp]
  VerificationState: [AwsSecurityHubScp]
  WorkflowState: [AwsSecurityHubScp]
  WorkflowStatus: [AwsSecurityHubScp]
  RecordState: [AwsSecurityHubScp]
  RelatedFindingsProductArn: [AwsSecurityHubScp]
  RelatedFindingsId: [AwsSecurityHubScp]
  NoteText: [AwsSecurityHubScp]
  NoteUpdatedAt: [AwsSecurityHubScs]
  NoteUpdatedBy: [AwsSecurityHubScp]
  Keyword: [AwsSecurityHubScoKeyword]
  FindingProviderFieldsConfidence: [AwsSecurityHubScw]
  FindingProviderFieldsCriticality: [AwsSecurityHubScw]
  FindingProviderFieldsRelatedFindingsId: [AwsSecurityHubScp]
  FindingProviderFieldsRelatedFindingsProductArn: [AwsSecurityHubScp]
  FindingProviderFieldsSeverityLabel: [AwsSecurityHubScp]
  FindingProviderFieldsSeverityOriginal: [AwsSecurityHubScp]
  FindingProviderFieldsTypes: [AwsSecurityHubScp]
}

type AwsSecurityHubScp {
  Value: String
  Comparison: String
}

type AwsSecurityHubScs {
  Start: String
  End: String
  DateRange: AwsSecurityHubScsDateRange
}

type AwsSecurityHubScsDateRange {
  Value: Int
  Unit: String
}

type AwsSecurityHubScw {
  Gte: JSON
  Lte: JSON
  Eq: JSON
}

type AwsSecurityHubScy {
  Key: String
  Value: String
  Comparison: String
}

type AwsSecurityHubSd1 {
  Cidr: String
}

type AwsSecurityHubScoKeyword {
  Value: String
}

input AwsSecurityHubGetInsightsInput {
  InsightArns: [String]
  NextToken: String
  MaxResults: Int
}

type AwsSecurityHubGetInvitationsCountOutput {
  InvitationsCount: Int
}

type AwsSecurityHubGetMasterAccountOutput {
  Master: AwsSecurityHubSf4
}

type AwsSecurityHubGetMembersOutput {
  Members: [AwsSecurityHubSfs]
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

type AwsSecurityHubSfs {
  AccountId: String
  Email: String
  MasterId: String
  AdministratorId: String
  MemberStatus: String
  InvitedAt: Date
  UpdatedAt: Date
}

input AwsSecurityHubGetMembersInput {
  AccountIds: [String]!
}

type AwsSecurityHubInviteMembersOutput {
  UnprocessedAccounts: [AwsSecurityHubSdb]
}

input AwsSecurityHubInviteMembersInput {
  AccountIds: [String]!
}

type AwsSecurityHubListEnabledProductsForImportOutput {
  ProductSubscriptions: [String]
  NextToken: String
}

input AwsSecurityHubListEnabledProductsForImportInput {
  NextToken: String
  MaxResults: Int
}

type AwsSecurityHubListInvitationsOutput {
  Invitations: [AwsSecurityHubSf4]
  NextToken: String
}

input AwsSecurityHubListInvitationsInput {
  MaxResults: Int
  NextToken: String
}

type AwsSecurityHubListMembersOutput {
  Members: [AwsSecurityHubSfs]
  NextToken: String
}

input AwsSecurityHubListMembersInput {
  OnlyAssociated: Boolean
  MaxResults: Int
  NextToken: String
}

type AwsSecurityHubListOrganizationAdminAccountsOutput {
  AdminAccounts: [AwsSecurityHubListOrganizationAdminAccountsOutputAdminAccounts]
  NextToken: String
}

type AwsSecurityHubListOrganizationAdminAccountsOutputAdminAccounts {
  AccountId: String
  Status: String
}

input AwsSecurityHubListOrganizationAdminAccountsInput {
  MaxResults: Int
  NextToken: String
}

type AwsSecurityHubListTagsForResourceOutput {
  Tags: JSON
}

input AwsSecurityHubListTagsForResourceInput {
  ResourceArn: String!
}

input AwsSecurityHubTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsSecurityHubUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsSecurityHubUpdateActionTargetInput {
  ActionTargetArn: String!
  Name: String
  Description: String
}

input AwsSecurityHubUpdateFindingsInput {
  Filters: AwsSecurityHubScoInput!
  Note: AwsSecurityHubScfInput
  RecordState: String
}

input AwsSecurityHubUpdateInsightInput {
  InsightArn: String!
  Name: String
  Filters: AwsSecurityHubScoInput
  GroupByAttribute: String
}

input AwsSecurityHubUpdateOrganizationConfigurationInput {
  AutoEnable: Boolean!
}

input AwsSecurityHubUpdateSecurityHubConfigurationInput {
  AutoEnableControls: Boolean
}

input AwsSecurityHubUpdateStandardsControlInput {
  StandardsControlArn: String!
  ControlStatus: String
  DisabledReason: String
}

"""AWSServerlessApplicationRepository (2017-09-08)"""
type AwsServerlessApplicationRepository {
  createApplication(input: AwsServerlessApplicationRepositoryCreateApplicationInput!, config: AwsConfig): AwsServerlessApplicationRepositoryCreateApplicationOutput
  createApplicationVersion(input: AwsServerlessApplicationRepositoryCreateApplicationVersionInput!, config: AwsConfig): AwsServerlessApplicationRepositoryCreateApplicationVersionOutput
  createCloudFormationChangeSet(input: AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetInput!, config: AwsConfig): AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetOutput
  createCloudFormationTemplate(input: AwsServerlessApplicationRepositoryCreateCloudFormationTemplateInput!, config: AwsConfig): AwsServerlessApplicationRepositoryCreateCloudFormationTemplateOutput
  deleteApplication(input: AwsServerlessApplicationRepositoryDeleteApplicationInput!, config: AwsConfig): JSON
  getApplication(input: AwsServerlessApplicationRepositoryGetApplicationInput!, config: AwsConfig): AwsServerlessApplicationRepositoryGetApplicationOutput
  getApplicationPolicy(input: AwsServerlessApplicationRepositoryGetApplicationPolicyInput!, config: AwsConfig): AwsServerlessApplicationRepositoryGetApplicationPolicyOutput
  getCloudFormationTemplate(input: AwsServerlessApplicationRepositoryGetCloudFormationTemplateInput!, config: AwsConfig): AwsServerlessApplicationRepositoryGetCloudFormationTemplateOutput
  listApplicationDependencies(input: AwsServerlessApplicationRepositoryListApplicationDependenciesInput!, config: AwsConfig): AwsServerlessApplicationRepositoryListApplicationDependenciesOutput
  listApplicationVersions(input: AwsServerlessApplicationRepositoryListApplicationVersionsInput!, config: AwsConfig): AwsServerlessApplicationRepositoryListApplicationVersionsOutput
  listApplications(input: AwsServerlessApplicationRepositoryListApplicationsInput, config: AwsConfig): AwsServerlessApplicationRepositoryListApplicationsOutput
  putApplicationPolicy(input: AwsServerlessApplicationRepositoryPutApplicationPolicyInput!, config: AwsConfig): AwsServerlessApplicationRepositoryPutApplicationPolicyOutput
  unshareApplication(input: AwsServerlessApplicationRepositoryUnshareApplicationInput!, config: AwsConfig): JSON
  updateApplication(input: AwsServerlessApplicationRepositoryUpdateApplicationInput!, config: AwsConfig): AwsServerlessApplicationRepositoryUpdateApplicationOutput
}

type AwsServerlessApplicationRepositoryCreateApplicationOutput {
  ApplicationId: String
  Author: String
  CreationTime: String
  Description: String
  HomePageUrl: String
  IsVerifiedAuthor: Boolean
  Labels: [String]
  LicenseUrl: String
  Name: String
  ReadmeUrl: String
  SpdxLicenseId: String
  VerifiedAuthorUrl: String
  Version: AwsServerlessApplicationRepositoryS6
}

type AwsServerlessApplicationRepositoryS6 {
  ApplicationId: String!
  CreationTime: String!
  ParameterDefinitions: [AwsServerlessApplicationRepositoryS7]!
  RequiredCapabilities: [String]!
  ResourcesSupported: Boolean!
  SemanticVersion: String!
  SourceCodeArchiveUrl: String
  SourceCodeUrl: String
  TemplateUrl: String!
}

type AwsServerlessApplicationRepositoryS7 {
  AllowedPattern: String
  AllowedValues: [String]
  ConstraintDescription: String
  DefaultValue: String
  Description: String
  MaxLength: Int
  MaxValue: Int
  MinLength: Int
  MinValue: Int
  Name: String!
  NoEcho: Boolean
  ReferencedByResources: [String]!
  Type: String
}

input AwsServerlessApplicationRepositoryCreateApplicationInput {
  Author: String!
  Description: String!
  HomePageUrl: String
  Labels: [String]
  LicenseBody: String
  LicenseUrl: String
  Name: String!
  ReadmeBody: String
  ReadmeUrl: String
  SemanticVersion: String
  SourceCodeArchiveUrl: String
  SourceCodeUrl: String
  SpdxLicenseId: String
  TemplateBody: String
  TemplateUrl: String
}

type AwsServerlessApplicationRepositoryCreateApplicationVersionOutput {
  ApplicationId: String
  CreationTime: String
  ParameterDefinitions: [AwsServerlessApplicationRepositoryS7]
  RequiredCapabilities: [String]
  ResourcesSupported: Boolean
  SemanticVersion: String
  SourceCodeArchiveUrl: String
  SourceCodeUrl: String
  TemplateUrl: String
}

input AwsServerlessApplicationRepositoryCreateApplicationVersionInput {
  ApplicationId: String!
  SemanticVersion: String!
  SourceCodeArchiveUrl: String
  SourceCodeUrl: String
  TemplateBody: String
  TemplateUrl: String
}

type AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetOutput {
  ApplicationId: String
  ChangeSetId: String
  SemanticVersion: String
  StackId: String
}

input AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetInput {
  ApplicationId: String!
  Capabilities: [String]
  ChangeSetName: String
  ClientToken: String
  Description: String
  NotificationArns: [String]
  ParameterOverrides: [AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetParameterOverridesInput]
  ResourceTypes: [String]
  RollbackConfiguration: AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetRollbackConfigurationInput
  SemanticVersion: String
  StackName: String!
  Tags: [AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetTagsInput]
  TemplateId: String
}

input AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetParameterOverridesInput {
  Name: String!
  Value: String!
}

input AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetRollbackConfigurationInput {
  MonitoringTimeInMinutes: Int
  RollbackTriggers: [AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetRollbackConfigurationRollbackTriggersInput]
}

input AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetRollbackConfigurationRollbackTriggersInput {
  Arn: String!
  Type: String!
}

input AwsServerlessApplicationRepositoryCreateCloudFormationChangeSetTagsInput {
  Key: String!
  Value: String!
}

type AwsServerlessApplicationRepositoryCreateCloudFormationTemplateOutput {
  ApplicationId: String
  CreationTime: String
  ExpirationTime: String
  SemanticVersion: String
  Status: String
  TemplateId: String
  TemplateUrl: String
}

input AwsServerlessApplicationRepositoryCreateCloudFormationTemplateInput {
  ApplicationId: String!
  SemanticVersion: String
}

input AwsServerlessApplicationRepositoryDeleteApplicationInput {
  ApplicationId: String!
}

type AwsServerlessApplicationRepositoryGetApplicationOutput {
  ApplicationId: String
  Author: String
  CreationTime: String
  Description: String
  HomePageUrl: String
  IsVerifiedAuthor: Boolean
  Labels: [String]
  LicenseUrl: String
  Name: String
  ReadmeUrl: String
  SpdxLicenseId: String
  VerifiedAuthorUrl: String
  Version: AwsServerlessApplicationRepositoryS6
}

input AwsServerlessApplicationRepositoryGetApplicationInput {
  ApplicationId: String!
  SemanticVersion: String
}

type AwsServerlessApplicationRepositoryGetApplicationPolicyOutput {
  Statements: [AwsServerlessApplicationRepositorySv]
}

type AwsServerlessApplicationRepositorySv {
  Actions: [String]!
  PrincipalOrgIDs: [String]
  Principals: [String]!
  StatementId: String
}

input AwsServerlessApplicationRepositoryGetApplicationPolicyInput {
  ApplicationId: String!
}

type AwsServerlessApplicationRepositoryGetCloudFormationTemplateOutput {
  ApplicationId: String
  CreationTime: String
  ExpirationTime: String
  SemanticVersion: String
  Status: String
  TemplateId: String
  TemplateUrl: String
}

input AwsServerlessApplicationRepositoryGetCloudFormationTemplateInput {
  ApplicationId: String!
  TemplateId: String!
}

type AwsServerlessApplicationRepositoryListApplicationDependenciesOutput {
  Dependencies: [AwsServerlessApplicationRepositoryListApplicationDependenciesOutputDependencies]
  NextToken: String
}

type AwsServerlessApplicationRepositoryListApplicationDependenciesOutputDependencies {
  ApplicationId: String!
  SemanticVersion: String!
}

input AwsServerlessApplicationRepositoryListApplicationDependenciesInput {
  ApplicationId: String!
  MaxItems: Int
  NextToken: String
  SemanticVersion: String
}

type AwsServerlessApplicationRepositoryListApplicationVersionsOutput {
  NextToken: String
  Versions: [AwsServerlessApplicationRepositoryListApplicationVersionsOutputVersions]
}

type AwsServerlessApplicationRepositoryListApplicationVersionsOutputVersions {
  ApplicationId: String!
  CreationTime: String!
  SemanticVersion: String!
  SourceCodeUrl: String
}

input AwsServerlessApplicationRepositoryListApplicationVersionsInput {
  ApplicationId: String!
  MaxItems: Int
  NextToken: String
}

type AwsServerlessApplicationRepositoryListApplicationsOutput {
  Applications: [AwsServerlessApplicationRepositoryListApplicationsOutputApplications]
  NextToken: String
}

type AwsServerlessApplicationRepositoryListApplicationsOutputApplications {
  ApplicationId: String!
  Author: String!
  CreationTime: String
  Description: String!
  HomePageUrl: String
  Labels: [String]
  Name: String!
  SpdxLicenseId: String
}

input AwsServerlessApplicationRepositoryListApplicationsInput {
  MaxItems: Int
  NextToken: String
}

type AwsServerlessApplicationRepositoryPutApplicationPolicyOutput {
  Statements: [AwsServerlessApplicationRepositorySv]
}

input AwsServerlessApplicationRepositoryPutApplicationPolicyInput {
  ApplicationId: String!
  Statements: [AwsServerlessApplicationRepositorySvInput]!
}

input AwsServerlessApplicationRepositorySvInput {
  Actions: [String]!
  PrincipalOrgIDs: [String]
  Principals: [String]!
  StatementId: String
}

input AwsServerlessApplicationRepositoryUnshareApplicationInput {
  ApplicationId: String!
  OrganizationId: String!
}

type AwsServerlessApplicationRepositoryUpdateApplicationOutput {
  ApplicationId: String
  Author: String
  CreationTime: String
  Description: String
  HomePageUrl: String
  IsVerifiedAuthor: Boolean
  Labels: [String]
  LicenseUrl: String
  Name: String
  ReadmeUrl: String
  SpdxLicenseId: String
  VerifiedAuthorUrl: String
  Version: AwsServerlessApplicationRepositoryS6
}

input AwsServerlessApplicationRepositoryUpdateApplicationInput {
  ApplicationId: String!
  Author: String
  Description: String
  HomePageUrl: String
  Labels: [String]
  ReadmeBody: String
  ReadmeUrl: String
}

"""AWS Service Catalog (2015-12-10)"""
type AwsServiceCatalog {
  acceptPortfolioShare(input: AwsServiceCatalogAcceptPortfolioShareInput!, config: AwsConfig): JSON
  associateBudgetWithResource(input: AwsServiceCatalogAssociateBudgetWithResourceInput!, config: AwsConfig): JSON
  associatePrincipalWithPortfolio(input: AwsServiceCatalogAssociatePrincipalWithPortfolioInput!, config: AwsConfig): JSON
  associateProductWithPortfolio(input: AwsServiceCatalogAssociateProductWithPortfolioInput!, config: AwsConfig): JSON
  associateServiceActionWithProvisioningArtifact(input: AwsServiceCatalogAssociateServiceActionWithProvisioningArtifactInput!, config: AwsConfig): JSON
  associateTagOptionWithResource(input: AwsServiceCatalogAssociateTagOptionWithResourceInput!, config: AwsConfig): JSON
  batchAssociateServiceActionWithProvisioningArtifact(input: AwsServiceCatalogBatchAssociateServiceActionWithProvisioningArtifactInput!, config: AwsConfig): AwsServiceCatalogBatchAssociateServiceActionWithProvisioningArtifactOutput
  batchDisassociateServiceActionFromProvisioningArtifact(input: AwsServiceCatalogBatchDisassociateServiceActionFromProvisioningArtifactInput!, config: AwsConfig): AwsServiceCatalogBatchDisassociateServiceActionFromProvisioningArtifactOutput
  copyProduct(input: AwsServiceCatalogCopyProductInput!, config: AwsConfig): AwsServiceCatalogCopyProductOutput
  createConstraint(input: AwsServiceCatalogCreateConstraintInput!, config: AwsConfig): AwsServiceCatalogCreateConstraintOutput
  createPortfolio(input: AwsServiceCatalogCreatePortfolioInput!, config: AwsConfig): AwsServiceCatalogCreatePortfolioOutput
  createPortfolioShare(input: AwsServiceCatalogCreatePortfolioShareInput!, config: AwsConfig): AwsServiceCatalogCreatePortfolioShareOutput
  createProduct(input: AwsServiceCatalogCreateProductInput!, config: AwsConfig): AwsServiceCatalogCreateProductOutput
  createProvisionedProductPlan(input: AwsServiceCatalogCreateProvisionedProductPlanInput!, config: AwsConfig): AwsServiceCatalogCreateProvisionedProductPlanOutput
  createProvisioningArtifact(input: AwsServiceCatalogCreateProvisioningArtifactInput!, config: AwsConfig): AwsServiceCatalogCreateProvisioningArtifactOutput
  createServiceAction(input: AwsServiceCatalogCreateServiceActionInput!, config: AwsConfig): AwsServiceCatalogCreateServiceActionOutput
  createTagOption(input: AwsServiceCatalogCreateTagOptionInput!, config: AwsConfig): AwsServiceCatalogCreateTagOptionOutput
  deleteConstraint(input: AwsServiceCatalogDeleteConstraintInput!, config: AwsConfig): JSON
  deletePortfolio(input: AwsServiceCatalogDeletePortfolioInput!, config: AwsConfig): JSON
  deletePortfolioShare(input: AwsServiceCatalogDeletePortfolioShareInput!, config: AwsConfig): AwsServiceCatalogDeletePortfolioShareOutput
  deleteProduct(input: AwsServiceCatalogDeleteProductInput!, config: AwsConfig): JSON
  deleteProvisionedProductPlan(input: AwsServiceCatalogDeleteProvisionedProductPlanInput!, config: AwsConfig): JSON
  deleteProvisioningArtifact(input: AwsServiceCatalogDeleteProvisioningArtifactInput!, config: AwsConfig): JSON
  deleteServiceAction(input: AwsServiceCatalogDeleteServiceActionInput!, config: AwsConfig): JSON
  deleteTagOption(input: AwsServiceCatalogDeleteTagOptionInput!, config: AwsConfig): JSON
  describeConstraint(input: AwsServiceCatalogDescribeConstraintInput!, config: AwsConfig): AwsServiceCatalogDescribeConstraintOutput
  describeCopyProductStatus(input: AwsServiceCatalogDescribeCopyProductStatusInput!, config: AwsConfig): AwsServiceCatalogDescribeCopyProductStatusOutput
  describePortfolio(input: AwsServiceCatalogDescribePortfolioInput!, config: AwsConfig): AwsServiceCatalogDescribePortfolioOutput
  describePortfolioShareStatus(input: AwsServiceCatalogDescribePortfolioShareStatusInput!, config: AwsConfig): AwsServiceCatalogDescribePortfolioShareStatusOutput
  describePortfolioShares(input: AwsServiceCatalogDescribePortfolioSharesInput!, config: AwsConfig): AwsServiceCatalogDescribePortfolioSharesOutput
  describeProduct(input: AwsServiceCatalogDescribeProductInput, config: AwsConfig): AwsServiceCatalogDescribeProductOutput
  describeProductAsAdmin(input: AwsServiceCatalogDescribeProductAsAdminInput, config: AwsConfig): AwsServiceCatalogDescribeProductAsAdminOutput
  describeProductView(input: AwsServiceCatalogDescribeProductViewInput!, config: AwsConfig): AwsServiceCatalogDescribeProductViewOutput
  describeProvisionedProduct(input: AwsServiceCatalogDescribeProvisionedProductInput, config: AwsConfig): AwsServiceCatalogDescribeProvisionedProductOutput
  describeProvisionedProductPlan(input: AwsServiceCatalogDescribeProvisionedProductPlanInput!, config: AwsConfig): AwsServiceCatalogDescribeProvisionedProductPlanOutput
  describeProvisioningArtifact(input: AwsServiceCatalogDescribeProvisioningArtifactInput, config: AwsConfig): AwsServiceCatalogDescribeProvisioningArtifactOutput
  describeProvisioningParameters(input: AwsServiceCatalogDescribeProvisioningParametersInput, config: AwsConfig): AwsServiceCatalogDescribeProvisioningParametersOutput
  describeRecord(input: AwsServiceCatalogDescribeRecordInput!, config: AwsConfig): AwsServiceCatalogDescribeRecordOutput
  describeServiceAction(input: AwsServiceCatalogDescribeServiceActionInput!, config: AwsConfig): AwsServiceCatalogDescribeServiceActionOutput
  describeServiceActionExecutionParameters(input: AwsServiceCatalogDescribeServiceActionExecutionParametersInput!, config: AwsConfig): AwsServiceCatalogDescribeServiceActionExecutionParametersOutput
  describeTagOption(input: AwsServiceCatalogDescribeTagOptionInput!, config: AwsConfig): AwsServiceCatalogDescribeTagOptionOutput
  disableAWSOrganizationsAccess(input: JSON, config: AwsConfig): JSON
  disassociateBudgetFromResource(input: AwsServiceCatalogDisassociateBudgetFromResourceInput!, config: AwsConfig): JSON
  disassociatePrincipalFromPortfolio(input: AwsServiceCatalogDisassociatePrincipalFromPortfolioInput!, config: AwsConfig): JSON
  disassociateProductFromPortfolio(input: AwsServiceCatalogDisassociateProductFromPortfolioInput!, config: AwsConfig): JSON
  disassociateServiceActionFromProvisioningArtifact(input: AwsServiceCatalogDisassociateServiceActionFromProvisioningArtifactInput!, config: AwsConfig): JSON
  disassociateTagOptionFromResource(input: AwsServiceCatalogDisassociateTagOptionFromResourceInput!, config: AwsConfig): JSON
  enableAWSOrganizationsAccess(input: JSON, config: AwsConfig): JSON
  executeProvisionedProductPlan(input: AwsServiceCatalogExecuteProvisionedProductPlanInput!, config: AwsConfig): AwsServiceCatalogExecuteProvisionedProductPlanOutput
  executeProvisionedProductServiceAction(input: AwsServiceCatalogExecuteProvisionedProductServiceActionInput!, config: AwsConfig): AwsServiceCatalogExecuteProvisionedProductServiceActionOutput
  getAWSOrganizationsAccessStatus(input: JSON, config: AwsConfig): AwsServiceCatalogGetAWSOrganizationsAccessStatusOutput
  getProvisionedProductOutputs(input: AwsServiceCatalogGetProvisionedProductOutputsInput, config: AwsConfig): AwsServiceCatalogGetProvisionedProductOutputsOutput
  importAsProvisionedProduct(input: AwsServiceCatalogImportAsProvisionedProductInput!, config: AwsConfig): AwsServiceCatalogImportAsProvisionedProductOutput
  listAcceptedPortfolioShares(input: AwsServiceCatalogListAcceptedPortfolioSharesInput, config: AwsConfig): AwsServiceCatalogListAcceptedPortfolioSharesOutput
  listBudgetsForResource(input: AwsServiceCatalogListBudgetsForResourceInput!, config: AwsConfig): AwsServiceCatalogListBudgetsForResourceOutput
  listConstraintsForPortfolio(input: AwsServiceCatalogListConstraintsForPortfolioInput!, config: AwsConfig): AwsServiceCatalogListConstraintsForPortfolioOutput
  listLaunchPaths(input: AwsServiceCatalogListLaunchPathsInput!, config: AwsConfig): AwsServiceCatalogListLaunchPathsOutput
  listOrganizationPortfolioAccess(input: AwsServiceCatalogListOrganizationPortfolioAccessInput!, config: AwsConfig): AwsServiceCatalogListOrganizationPortfolioAccessOutput
  listPortfolioAccess(input: AwsServiceCatalogListPortfolioAccessInput!, config: AwsConfig): AwsServiceCatalogListPortfolioAccessOutput
  listPortfolios(input: AwsServiceCatalogListPortfoliosInput, config: AwsConfig): AwsServiceCatalogListPortfoliosOutput
  listPortfoliosForProduct(input: AwsServiceCatalogListPortfoliosForProductInput!, config: AwsConfig): AwsServiceCatalogListPortfoliosForProductOutput
  listPrincipalsForPortfolio(input: AwsServiceCatalogListPrincipalsForPortfolioInput!, config: AwsConfig): AwsServiceCatalogListPrincipalsForPortfolioOutput
  listProvisionedProductPlans(input: AwsServiceCatalogListProvisionedProductPlansInput, config: AwsConfig): AwsServiceCatalogListProvisionedProductPlansOutput
  listProvisioningArtifacts(input: AwsServiceCatalogListProvisioningArtifactsInput!, config: AwsConfig): AwsServiceCatalogListProvisioningArtifactsOutput
  listProvisioningArtifactsForServiceAction(input: AwsServiceCatalogListProvisioningArtifactsForServiceActionInput!, config: AwsConfig): AwsServiceCatalogListProvisioningArtifactsForServiceActionOutput
  listRecordHistory(input: AwsServiceCatalogListRecordHistoryInput, config: AwsConfig): AwsServiceCatalogListRecordHistoryOutput
  listResourcesForTagOption(input: AwsServiceCatalogListResourcesForTagOptionInput!, config: AwsConfig): AwsServiceCatalogListResourcesForTagOptionOutput
  listServiceActions(input: AwsServiceCatalogListServiceActionsInput, config: AwsConfig): AwsServiceCatalogListServiceActionsOutput
  listServiceActionsForProvisioningArtifact(input: AwsServiceCatalogListServiceActionsForProvisioningArtifactInput!, config: AwsConfig): AwsServiceCatalogListServiceActionsForProvisioningArtifactOutput
  listStackInstancesForProvisionedProduct(input: AwsServiceCatalogListStackInstancesForProvisionedProductInput!, config: AwsConfig): AwsServiceCatalogListStackInstancesForProvisionedProductOutput
  listTagOptions(input: AwsServiceCatalogListTagOptionsInput, config: AwsConfig): AwsServiceCatalogListTagOptionsOutput
  provisionProduct(input: AwsServiceCatalogProvisionProductInput!, config: AwsConfig): AwsServiceCatalogProvisionProductOutput
  rejectPortfolioShare(input: AwsServiceCatalogRejectPortfolioShareInput!, config: AwsConfig): JSON
  scanProvisionedProducts(input: AwsServiceCatalogScanProvisionedProductsInput, config: AwsConfig): AwsServiceCatalogScanProvisionedProductsOutput
  searchProducts(input: AwsServiceCatalogSearchProductsInput, config: AwsConfig): AwsServiceCatalogSearchProductsOutput
  searchProductsAsAdmin(input: AwsServiceCatalogSearchProductsAsAdminInput, config: AwsConfig): AwsServiceCatalogSearchProductsAsAdminOutput
  searchProvisionedProducts(input: AwsServiceCatalogSearchProvisionedProductsInput, config: AwsConfig): AwsServiceCatalogSearchProvisionedProductsOutput
  terminateProvisionedProduct(input: AwsServiceCatalogTerminateProvisionedProductInput!, config: AwsConfig): AwsServiceCatalogTerminateProvisionedProductOutput
  updateConstraint(input: AwsServiceCatalogUpdateConstraintInput!, config: AwsConfig): AwsServiceCatalogUpdateConstraintOutput
  updatePortfolio(input: AwsServiceCatalogUpdatePortfolioInput!, config: AwsConfig): AwsServiceCatalogUpdatePortfolioOutput
  updatePortfolioShare(input: AwsServiceCatalogUpdatePortfolioShareInput!, config: AwsConfig): AwsServiceCatalogUpdatePortfolioShareOutput
  updateProduct(input: AwsServiceCatalogUpdateProductInput!, config: AwsConfig): AwsServiceCatalogUpdateProductOutput
  updateProvisionedProduct(input: AwsServiceCatalogUpdateProvisionedProductInput!, config: AwsConfig): AwsServiceCatalogUpdateProvisionedProductOutput
  updateProvisionedProductProperties(input: AwsServiceCatalogUpdateProvisionedProductPropertiesInput!, config: AwsConfig): AwsServiceCatalogUpdateProvisionedProductPropertiesOutput
  updateProvisioningArtifact(input: AwsServiceCatalogUpdateProvisioningArtifactInput!, config: AwsConfig): AwsServiceCatalogUpdateProvisioningArtifactOutput
  updateServiceAction(input: AwsServiceCatalogUpdateServiceActionInput!, config: AwsConfig): AwsServiceCatalogUpdateServiceActionOutput
  updateTagOption(input: AwsServiceCatalogUpdateTagOptionInput!, config: AwsConfig): AwsServiceCatalogUpdateTagOptionOutput
}

input AwsServiceCatalogAcceptPortfolioShareInput {
  AcceptLanguage: String
  PortfolioId: String!
  PortfolioShareType: String
}

input AwsServiceCatalogAssociateBudgetWithResourceInput {
  BudgetName: String!
  ResourceId: String!
}

input AwsServiceCatalogAssociatePrincipalWithPortfolioInput {
  AcceptLanguage: String
  PortfolioId: String!
  PrincipalARN: String!
  PrincipalType: String!
}

input AwsServiceCatalogAssociateProductWithPortfolioInput {
  AcceptLanguage: String
  ProductId: String!
  PortfolioId: String!
  SourcePortfolioId: String
}

input AwsServiceCatalogAssociateServiceActionWithProvisioningArtifactInput {
  ProductId: String!
  ProvisioningArtifactId: String!
  ServiceActionId: String!
  AcceptLanguage: String
}

input AwsServiceCatalogAssociateTagOptionWithResourceInput {
  ResourceId: String!
  TagOptionId: String!
}

type AwsServiceCatalogBatchAssociateServiceActionWithProvisioningArtifactOutput {
  FailedServiceActionAssociations: [AwsServiceCatalogSp]
}

type AwsServiceCatalogSp {
  ServiceActionId: String
  ProductId: String
  ProvisioningArtifactId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsServiceCatalogBatchAssociateServiceActionWithProvisioningArtifactInput {
  ServiceActionAssociations: [AwsServiceCatalogSmInput]!
  AcceptLanguage: String
}

input AwsServiceCatalogSmInput {
  ServiceActionId: String!
  ProductId: String!
  ProvisioningArtifactId: String!
}

type AwsServiceCatalogBatchDisassociateServiceActionFromProvisioningArtifactOutput {
  FailedServiceActionAssociations: [AwsServiceCatalogSp]
}

input AwsServiceCatalogBatchDisassociateServiceActionFromProvisioningArtifactInput {
  ServiceActionAssociations: [AwsServiceCatalogSmInput]!
  AcceptLanguage: String
}

type AwsServiceCatalogCopyProductOutput {
  CopyProductToken: String
}

input AwsServiceCatalogCopyProductInput {
  AcceptLanguage: String
  SourceProductArn: String!
  TargetProductId: String
  TargetProductName: String
  SourceProvisioningArtifactIdentifiers: [JSON]
  CopyOptions: [String]
  IdempotencyToken: String!
}

type AwsServiceCatalogCreateConstraintOutput {
  ConstraintDetail: AwsServiceCatalogS1b
  ConstraintParameters: String
  Status: String
}

type AwsServiceCatalogS1b {
  ConstraintId: String
  Type: String
  Description: String
  Owner: String
  ProductId: String
  PortfolioId: String
}

input AwsServiceCatalogCreateConstraintInput {
  AcceptLanguage: String
  PortfolioId: String!
  ProductId: String!
  Parameters: String!
  Type: String!
  Description: String
  IdempotencyToken: String!
}

type AwsServiceCatalogCreatePortfolioOutput {
  PortfolioDetail: AwsServiceCatalogS1n
  Tags: [AwsServiceCatalogS1j]
}

type AwsServiceCatalogS1n {
  Id: String
  ARN: String
  DisplayName: String
  Description: String
  CreatedTime: Date
  ProviderName: String
}

type AwsServiceCatalogS1j {
  Key: String!
  Value: String!
}

input AwsServiceCatalogCreatePortfolioInput {
  AcceptLanguage: String
  DisplayName: String!
  Description: String
  ProviderName: String!
  Tags: [AwsServiceCatalogS1jInput]
  IdempotencyToken: String!
}

input AwsServiceCatalogS1jInput {
  Key: String!
  Value: String!
}

type AwsServiceCatalogCreatePortfolioShareOutput {
  PortfolioShareToken: String
}

input AwsServiceCatalogCreatePortfolioShareInput {
  AcceptLanguage: String
  PortfolioId: String!
  AccountId: String
  OrganizationNode: AwsServiceCatalogS1sInput
  ShareTagOptions: Boolean
}

input AwsServiceCatalogS1sInput {
  Type: String
  Value: String
}

type AwsServiceCatalogCreateProductOutput {
  ProductViewDetail: AwsServiceCatalogS2d
  ProvisioningArtifactDetail: AwsServiceCatalogS2i
  Tags: [AwsServiceCatalogS1j]
}

type AwsServiceCatalogS2d {
  ProductViewSummary: AwsServiceCatalogS2e
  Status: String
  ProductARN: String
  CreatedTime: Date
}

type AwsServiceCatalogS2e {
  Id: String
  ProductId: String
  Name: String
  Owner: String
  ShortDescription: String
  Type: String
  Distributor: String
  HasDefaultPath: Boolean
  SupportEmail: String
  SupportDescription: String
  SupportUrl: String
}

type AwsServiceCatalogS2i {
  Id: String
  Name: String
  Description: String
  Type: String
  CreatedTime: Date
  Active: Boolean
  Guidance: String
}

input AwsServiceCatalogCreateProductInput {
  AcceptLanguage: String
  Name: String!
  Owner: String!
  Description: String
  Distributor: String
  SupportDescription: String
  SupportEmail: String
  SupportUrl: String
  ProductType: String!
  Tags: [AwsServiceCatalogS1jInput]
  ProvisioningArtifactParameters: AwsServiceCatalogS24Input!
  IdempotencyToken: String!
}

input AwsServiceCatalogS24Input {
  Name: String
  Description: String
  Info: JSON!
  Type: String
  DisableTemplateValidation: Boolean
}

type AwsServiceCatalogCreateProvisionedProductPlanOutput {
  PlanName: String
  PlanId: String
  ProvisionProductId: String
  ProvisionedProductName: String
  ProvisioningArtifactId: String
}

input AwsServiceCatalogCreateProvisionedProductPlanInput {
  AcceptLanguage: String
  PlanName: String!
  PlanType: String!
  NotificationArns: [String]
  PathId: String
  ProductId: String!
  ProvisionedProductName: String!
  ProvisioningArtifactId: String!
  ProvisioningParameters: [AwsServiceCatalogS2rInput]
  IdempotencyToken: String!
  Tags: [AwsServiceCatalogS1jInput]
}

input AwsServiceCatalogS2rInput {
  Key: String
  Value: String
  UsePreviousValue: Boolean
}

type AwsServiceCatalogCreateProvisioningArtifactOutput {
  ProvisioningArtifactDetail: AwsServiceCatalogS2i
  Info: JSON
  Status: String
}

input AwsServiceCatalogCreateProvisioningArtifactInput {
  AcceptLanguage: String
  ProductId: String!
  Parameters: AwsServiceCatalogS24Input!
  IdempotencyToken: String!
}

type AwsServiceCatalogCreateServiceActionOutput {
  ServiceActionDetail: AwsServiceCatalogS37
}

type AwsServiceCatalogS37 {
  ServiceActionSummary: AwsServiceCatalogS38
  Definition: JSON
}

type AwsServiceCatalogS38 {
  Id: String
  Name: String
  Description: String
  DefinitionType: String
}

input AwsServiceCatalogCreateServiceActionInput {
  Name: String!
  DefinitionType: String!
  Definition: JSON!
  Description: String
  AcceptLanguage: String
  IdempotencyToken: String!
}

type AwsServiceCatalogCreateTagOptionOutput {
  TagOptionDetail: AwsServiceCatalogS3d
}

type AwsServiceCatalogS3d {
  Key: String
  Value: String
  Active: Boolean
  Id: String
  Owner: String
}

input AwsServiceCatalogCreateTagOptionInput {
  Key: String!
  Value: String!
}

input AwsServiceCatalogDeleteConstraintInput {
  AcceptLanguage: String
  Id: String!
}

input AwsServiceCatalogDeletePortfolioInput {
  AcceptLanguage: String
  Id: String!
}

type AwsServiceCatalogDeletePortfolioShareOutput {
  PortfolioShareToken: String
}

input AwsServiceCatalogDeletePortfolioShareInput {
  AcceptLanguage: String
  PortfolioId: String!
  AccountId: String
  OrganizationNode: AwsServiceCatalogS1sInput
}

input AwsServiceCatalogDeleteProductInput {
  AcceptLanguage: String
  Id: String!
}

input AwsServiceCatalogDeleteProvisionedProductPlanInput {
  AcceptLanguage: String
  PlanId: String!
  IgnoreErrors: Boolean
}

input AwsServiceCatalogDeleteProvisioningArtifactInput {
  AcceptLanguage: String
  ProductId: String!
  ProvisioningArtifactId: String!
}

input AwsServiceCatalogDeleteServiceActionInput {
  Id: String!
  AcceptLanguage: String
}

input AwsServiceCatalogDeleteTagOptionInput {
  Id: String!
}

type AwsServiceCatalogDescribeConstraintOutput {
  ConstraintDetail: AwsServiceCatalogS1b
  ConstraintParameters: String
  Status: String
}

input AwsServiceCatalogDescribeConstraintInput {
  AcceptLanguage: String
  Id: String!
}

type AwsServiceCatalogDescribeCopyProductStatusOutput {
  CopyProductStatus: String
  TargetProductId: String
  StatusDetail: String
}

input AwsServiceCatalogDescribeCopyProductStatusInput {
  AcceptLanguage: String
  CopyProductToken: String!
}

type AwsServiceCatalogDescribePortfolioOutput {
  PortfolioDetail: AwsServiceCatalogS1n
  Tags: [AwsServiceCatalogS1j]
  TagOptions: [AwsServiceCatalogS3d]
  Budgets: [AwsServiceCatalogS46]
}

type AwsServiceCatalogS46 {
  BudgetName: String
}

input AwsServiceCatalogDescribePortfolioInput {
  AcceptLanguage: String
  Id: String!
}

type AwsServiceCatalogDescribePortfolioShareStatusOutput {
  PortfolioShareToken: String
  PortfolioId: String
  OrganizationNodeValue: String
  Status: String
  ShareDetails: AwsServiceCatalogDescribePortfolioShareStatusOutputShareDetails
}

type AwsServiceCatalogDescribePortfolioShareStatusOutputShareDetails {
  SuccessfulShares: [String]
  ShareErrors: [AwsServiceCatalogDescribePortfolioShareStatusOutputShareDetailsShareErrors]
}

type AwsServiceCatalogDescribePortfolioShareStatusOutputShareDetailsShareErrors {
  Accounts: [String]
  Message: String
  Error: String
}

input AwsServiceCatalogDescribePortfolioShareStatusInput {
  PortfolioShareToken: String!
}

type AwsServiceCatalogDescribePortfolioSharesOutput {
  NextPageToken: String
  PortfolioShareDetails: [AwsServiceCatalogDescribePortfolioSharesOutputPortfolioShareDetails]
}

type AwsServiceCatalogDescribePortfolioSharesOutputPortfolioShareDetails {
  PrincipalId: String
  Type: String
  Accepted: Boolean
  ShareTagOptions: Boolean
}

input AwsServiceCatalogDescribePortfolioSharesInput {
  PortfolioId: String!
  Type: String!
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogDescribeProductOutput {
  ProductViewSummary: AwsServiceCatalogS2e
  ProvisioningArtifacts: [AwsServiceCatalogS4s]
  Budgets: [AwsServiceCatalogS46]
  LaunchPaths: [AwsServiceCatalogDescribeProductOutputLaunchPaths]
}

type AwsServiceCatalogS4s {
  Id: String
  Name: String
  Description: String
  CreatedTime: Date
  Guidance: String
}

type AwsServiceCatalogDescribeProductOutputLaunchPaths {
  Id: String
  Name: String
}

input AwsServiceCatalogDescribeProductInput {
  AcceptLanguage: String
  Id: String
  Name: String
}

type AwsServiceCatalogDescribeProductAsAdminOutput {
  ProductViewDetail: AwsServiceCatalogS2d
  ProvisioningArtifactSummaries: [AwsServiceCatalogDescribeProductAsAdminOutputProvisioningArtifactSummaries]
  Tags: [AwsServiceCatalogS1j]
  TagOptions: [AwsServiceCatalogS3d]
  Budgets: [AwsServiceCatalogS46]
}

type AwsServiceCatalogDescribeProductAsAdminOutputProvisioningArtifactSummaries {
  Id: String
  Name: String
  Description: String
  CreatedTime: Date
  ProvisioningArtifactMetadata: JSON
}

input AwsServiceCatalogDescribeProductAsAdminInput {
  AcceptLanguage: String
  Id: String
  Name: String
  SourcePortfolioId: String
}

type AwsServiceCatalogDescribeProductViewOutput {
  ProductViewSummary: AwsServiceCatalogS2e
  ProvisioningArtifacts: [AwsServiceCatalogS4s]
}

input AwsServiceCatalogDescribeProductViewInput {
  AcceptLanguage: String
  Id: String!
}

type AwsServiceCatalogDescribeProvisionedProductOutput {
  ProvisionedProductDetail: AwsServiceCatalogS55
  CloudWatchDashboards: [AwsServiceCatalogDescribeProvisionedProductOutputCloudWatchDashboards]
}

type AwsServiceCatalogS55 {
  Name: String
  Arn: String
  Type: String
  Id: String
  Status: String
  StatusMessage: String
  CreatedTime: Date
  IdempotencyToken: String
  LastRecordId: String
  LastProvisioningRecordId: String
  LastSuccessfulProvisioningRecordId: String
  ProductId: String
  ProvisioningArtifactId: String
  LaunchRoleArn: String
}

type AwsServiceCatalogDescribeProvisionedProductOutputCloudWatchDashboards {
  Name: String
}

input AwsServiceCatalogDescribeProvisionedProductInput {
  AcceptLanguage: String
  Id: String
  Name: String
}

type AwsServiceCatalogDescribeProvisionedProductPlanOutput {
  ProvisionedProductPlanDetails: AwsServiceCatalogDescribeProvisionedProductPlanOutputProvisionedProductPlanDetails
  ResourceChanges: [AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChanges]
  NextPageToken: String
}

type AwsServiceCatalogDescribeProvisionedProductPlanOutputProvisionedProductPlanDetails {
  CreatedTime: Date
  PathId: String
  ProductId: String
  PlanName: String
  PlanId: String
  ProvisionProductId: String
  ProvisionProductName: String
  PlanType: String
  ProvisioningArtifactId: String
  Status: String
  UpdatedTime: Date
  NotificationArns: [String]
  ProvisioningParameters: [AwsServiceCatalogS2r]
  Tags: [AwsServiceCatalogS1j]
  StatusMessage: String
}

type AwsServiceCatalogS2r {
  Key: String
  Value: String
  UsePreviousValue: Boolean
}

type AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChanges {
  Action: String
  LogicalResourceId: String
  PhysicalResourceId: String
  ResourceType: String
  Replacement: String
  Scope: [String]
  Details: [AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChangesDetails]
}

type AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChangesDetails {
  Target: AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChangesDetailsTarget
  Evaluation: String
  CausingEntity: String
}

type AwsServiceCatalogDescribeProvisionedProductPlanOutputResourceChangesDetailsTarget {
  Attribute: String
  Name: String
  RequiresRecreation: String
}

input AwsServiceCatalogDescribeProvisionedProductPlanInput {
  AcceptLanguage: String
  PlanId: String!
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogDescribeProvisioningArtifactOutput {
  ProvisioningArtifactDetail: AwsServiceCatalogS2i
  Info: JSON
  Status: String
}

input AwsServiceCatalogDescribeProvisioningArtifactInput {
  AcceptLanguage: String
  ProvisioningArtifactId: String
  ProductId: String
  ProvisioningArtifactName: String
  ProductName: String
  Verbose: Boolean
}

type AwsServiceCatalogDescribeProvisioningParametersOutput {
  ProvisioningArtifactParameters: [AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactParameters]
  ConstraintSummaries: [AwsServiceCatalogS6h]
  UsageInstructions: [AwsServiceCatalogDescribeProvisioningParametersOutputUsageInstructions]
  TagOptions: [AwsServiceCatalogDescribeProvisioningParametersOutputTagOptions]
  ProvisioningArtifactPreferences: AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactPreferences
  ProvisioningArtifactOutputs: [AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactOutputs]
}

type AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactParameters {
  ParameterKey: String
  DefaultValue: String
  ParameterType: String
  IsNoEcho: Boolean
  Description: String
  ParameterConstraints: AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactParametersParameterConstraints
}

type AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactParametersParameterConstraints {
  AllowedValues: [String]
  AllowedPattern: String
  ConstraintDescription: String
  MaxLength: String
  MinLength: String
  MaxValue: String
  MinValue: String
}

type AwsServiceCatalogS6h {
  Type: String
  Description: String
}

type AwsServiceCatalogDescribeProvisioningParametersOutputUsageInstructions {
  Type: String
  Value: String
}

type AwsServiceCatalogDescribeProvisioningParametersOutputTagOptions {
  Key: String
  Values: [String]
}

type AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactPreferences {
  StackSetAccounts: [String]
  StackSetRegions: [String]
}

type AwsServiceCatalogDescribeProvisioningParametersOutputProvisioningArtifactOutputs {
  Key: String
  Description: String
}

input AwsServiceCatalogDescribeProvisioningParametersInput {
  AcceptLanguage: String
  ProductId: String
  ProductName: String
  ProvisioningArtifactId: String
  ProvisioningArtifactName: String
  PathId: String
  PathName: String
}

type AwsServiceCatalogDescribeRecordOutput {
  RecordDetail: AwsServiceCatalogS70
  RecordOutputs: [AwsServiceCatalogS7b]
  NextPageToken: String
}

type AwsServiceCatalogS70 {
  RecordId: String
  ProvisionedProductName: String
  Status: String
  CreatedTime: Date
  UpdatedTime: Date
  ProvisionedProductType: String
  RecordType: String
  ProvisionedProductId: String
  ProductId: String
  ProvisioningArtifactId: String
  PathId: String
  RecordErrors: [AwsServiceCatalogS70RecordErrors]
  RecordTags: [AwsServiceCatalogS70RecordTags]
  LaunchRoleArn: String
}

type AwsServiceCatalogS70RecordErrors {
  Code: String
  Description: String
}

type AwsServiceCatalogS70RecordTags {
  Key: String
  Value: String
}

type AwsServiceCatalogS7b {
  OutputKey: String
  OutputValue: String
  Description: String
}

input AwsServiceCatalogDescribeRecordInput {
  AcceptLanguage: String
  Id: String!
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogDescribeServiceActionOutput {
  ServiceActionDetail: AwsServiceCatalogS37
}

input AwsServiceCatalogDescribeServiceActionInput {
  Id: String!
  AcceptLanguage: String
}

type AwsServiceCatalogDescribeServiceActionExecutionParametersOutput {
  ServiceActionParameters: [AwsServiceCatalogDescribeServiceActionExecutionParametersOutputServiceActionParameters]
}

type AwsServiceCatalogDescribeServiceActionExecutionParametersOutputServiceActionParameters {
  Name: String
  Type: String
  DefaultValues: [String]
}

input AwsServiceCatalogDescribeServiceActionExecutionParametersInput {
  ProvisionedProductId: String!
  ServiceActionId: String!
  AcceptLanguage: String
}

type AwsServiceCatalogDescribeTagOptionOutput {
  TagOptionDetail: AwsServiceCatalogS3d
}

input AwsServiceCatalogDescribeTagOptionInput {
  Id: String!
}

input AwsServiceCatalogDisassociateBudgetFromResourceInput {
  BudgetName: String!
  ResourceId: String!
}

input AwsServiceCatalogDisassociatePrincipalFromPortfolioInput {
  AcceptLanguage: String
  PortfolioId: String!
  PrincipalARN: String!
}

input AwsServiceCatalogDisassociateProductFromPortfolioInput {
  AcceptLanguage: String
  ProductId: String!
  PortfolioId: String!
}

input AwsServiceCatalogDisassociateServiceActionFromProvisioningArtifactInput {
  ProductId: String!
  ProvisioningArtifactId: String!
  ServiceActionId: String!
  AcceptLanguage: String
}

input AwsServiceCatalogDisassociateTagOptionFromResourceInput {
  ResourceId: String!
  TagOptionId: String!
}

type AwsServiceCatalogExecuteProvisionedProductPlanOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogExecuteProvisionedProductPlanInput {
  AcceptLanguage: String
  PlanId: String!
  IdempotencyToken: String!
}

type AwsServiceCatalogExecuteProvisionedProductServiceActionOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogExecuteProvisionedProductServiceActionInput {
  ProvisionedProductId: String!
  ServiceActionId: String!
  ExecuteToken: String!
  AcceptLanguage: String
  Parameters: JSON
}

type AwsServiceCatalogGetAWSOrganizationsAccessStatusOutput {
  AccessStatus: String
}

type AwsServiceCatalogGetProvisionedProductOutputsOutput {
  Outputs: [AwsServiceCatalogS7b]
  NextPageToken: String
}

input AwsServiceCatalogGetProvisionedProductOutputsInput {
  AcceptLanguage: String
  ProvisionedProductId: String
  ProvisionedProductName: String
  OutputKeys: [String]
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogImportAsProvisionedProductOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogImportAsProvisionedProductInput {
  AcceptLanguage: String
  ProductId: String!
  ProvisioningArtifactId: String!
  ProvisionedProductName: String!
  PhysicalId: String!
  IdempotencyToken: String!
}

type AwsServiceCatalogListAcceptedPortfolioSharesOutput {
  PortfolioDetails: [AwsServiceCatalogS1n]
  NextPageToken: String
}

input AwsServiceCatalogListAcceptedPortfolioSharesInput {
  AcceptLanguage: String
  PageToken: String
  PageSize: Int
  PortfolioShareType: String
}

type AwsServiceCatalogListBudgetsForResourceOutput {
  Budgets: [AwsServiceCatalogS46]
  NextPageToken: String
}

input AwsServiceCatalogListBudgetsForResourceInput {
  AcceptLanguage: String
  ResourceId: String!
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListConstraintsForPortfolioOutput {
  ConstraintDetails: [AwsServiceCatalogS1b]
  NextPageToken: String
}

input AwsServiceCatalogListConstraintsForPortfolioInput {
  AcceptLanguage: String
  PortfolioId: String!
  ProductId: String
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListLaunchPathsOutput {
  LaunchPathSummaries: [AwsServiceCatalogListLaunchPathsOutputLaunchPathSummaries]
  NextPageToken: String
}

type AwsServiceCatalogListLaunchPathsOutputLaunchPathSummaries {
  Id: String
  ConstraintSummaries: [AwsServiceCatalogS6h]
  Tags: [AwsServiceCatalogS1j]
  Name: String
}

input AwsServiceCatalogListLaunchPathsInput {
  AcceptLanguage: String
  ProductId: String!
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListOrganizationPortfolioAccessOutput {
  OrganizationNodes: [AwsServiceCatalogS1s]
  NextPageToken: String
}

type AwsServiceCatalogS1s {
  Type: String
  Value: String
}

input AwsServiceCatalogListOrganizationPortfolioAccessInput {
  AcceptLanguage: String
  PortfolioId: String!
  OrganizationNodeType: String!
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogListPortfolioAccessOutput {
  AccountIds: [String]
  NextPageToken: String
}

input AwsServiceCatalogListPortfolioAccessInput {
  AcceptLanguage: String
  PortfolioId: String!
  OrganizationParentId: String
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogListPortfoliosOutput {
  PortfolioDetails: [AwsServiceCatalogS1n]
  NextPageToken: String
}

input AwsServiceCatalogListPortfoliosInput {
  AcceptLanguage: String
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogListPortfoliosForProductOutput {
  PortfolioDetails: [AwsServiceCatalogS1n]
  NextPageToken: String
}

input AwsServiceCatalogListPortfoliosForProductInput {
  AcceptLanguage: String
  ProductId: String!
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogListPrincipalsForPortfolioOutput {
  Principals: [AwsServiceCatalogListPrincipalsForPortfolioOutputPrincipals]
  NextPageToken: String
}

type AwsServiceCatalogListPrincipalsForPortfolioOutputPrincipals {
  PrincipalARN: String
  PrincipalType: String
}

input AwsServiceCatalogListPrincipalsForPortfolioInput {
  AcceptLanguage: String
  PortfolioId: String!
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListProvisionedProductPlansOutput {
  ProvisionedProductPlans: [AwsServiceCatalogListProvisionedProductPlansOutputProvisionedProductPlans]
  NextPageToken: String
}

type AwsServiceCatalogListProvisionedProductPlansOutputProvisionedProductPlans {
  PlanName: String
  PlanId: String
  ProvisionProductId: String
  ProvisionProductName: String
  PlanType: String
  ProvisioningArtifactId: String
}

input AwsServiceCatalogListProvisionedProductPlansInput {
  AcceptLanguage: String
  ProvisionProductId: String
  PageSize: Int
  PageToken: String
  AccessLevelFilter: AwsServiceCatalogS9aInput
}

input AwsServiceCatalogS9aInput {
  Key: String
  Value: String
}

type AwsServiceCatalogListProvisioningArtifactsOutput {
  ProvisioningArtifactDetails: [AwsServiceCatalogS2i]
  NextPageToken: String
}

input AwsServiceCatalogListProvisioningArtifactsInput {
  AcceptLanguage: String
  ProductId: String!
}

type AwsServiceCatalogListProvisioningArtifactsForServiceActionOutput {
  ProvisioningArtifactViews: [AwsServiceCatalogListProvisioningArtifactsForServiceActionOutputProvisioningArtifactViews]
  NextPageToken: String
}

type AwsServiceCatalogListProvisioningArtifactsForServiceActionOutputProvisioningArtifactViews {
  ProductViewSummary: AwsServiceCatalogS2e
  ProvisioningArtifact: AwsServiceCatalogS4s
}

input AwsServiceCatalogListProvisioningArtifactsForServiceActionInput {
  ServiceActionId: String!
  PageSize: Int
  PageToken: String
  AcceptLanguage: String
}

type AwsServiceCatalogListRecordHistoryOutput {
  RecordDetails: [AwsServiceCatalogS70]
  NextPageToken: String
}

input AwsServiceCatalogListRecordHistoryInput {
  AcceptLanguage: String
  AccessLevelFilter: AwsServiceCatalogS9aInput
  SearchFilter: AwsServiceCatalogListRecordHistorySearchFilterInput
  PageSize: Int
  PageToken: String
}

input AwsServiceCatalogListRecordHistorySearchFilterInput {
  Key: String
  Value: String
}

type AwsServiceCatalogListResourcesForTagOptionOutput {
  ResourceDetails: [AwsServiceCatalogListResourcesForTagOptionOutputResourceDetails]
  PageToken: String
}

type AwsServiceCatalogListResourcesForTagOptionOutputResourceDetails {
  Id: String
  ARN: String
  Name: String
  Description: String
  CreatedTime: Date
}

input AwsServiceCatalogListResourcesForTagOptionInput {
  TagOptionId: String!
  ResourceType: String
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListServiceActionsOutput {
  ServiceActionSummaries: [AwsServiceCatalogS38]
  NextPageToken: String
}

input AwsServiceCatalogListServiceActionsInput {
  AcceptLanguage: String
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogListServiceActionsForProvisioningArtifactOutput {
  ServiceActionSummaries: [AwsServiceCatalogS38]
  NextPageToken: String
}

input AwsServiceCatalogListServiceActionsForProvisioningArtifactInput {
  ProductId: String!
  ProvisioningArtifactId: String!
  PageSize: Int
  PageToken: String
  AcceptLanguage: String
}

type AwsServiceCatalogListStackInstancesForProvisionedProductOutput {
  StackInstances: [AwsServiceCatalogListStackInstancesForProvisionedProductOutputStackInstances]
  NextPageToken: String
}

type AwsServiceCatalogListStackInstancesForProvisionedProductOutputStackInstances {
  Account: String
  Region: String
  StackInstanceStatus: String
}

input AwsServiceCatalogListStackInstancesForProvisionedProductInput {
  AcceptLanguage: String
  ProvisionedProductId: String!
  PageToken: String
  PageSize: Int
}

type AwsServiceCatalogListTagOptionsOutput {
  TagOptionDetails: [AwsServiceCatalogS3d]
  PageToken: String
}

input AwsServiceCatalogListTagOptionsInput {
  Filters: AwsServiceCatalogListTagOptionsFiltersInput
  PageSize: Int
  PageToken: String
}

input AwsServiceCatalogListTagOptionsFiltersInput {
  Key: String
  Value: String
  Active: Boolean
}

type AwsServiceCatalogProvisionProductOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogProvisionProductInput {
  AcceptLanguage: String
  ProductId: String
  ProductName: String
  ProvisioningArtifactId: String
  ProvisioningArtifactName: String
  PathId: String
  PathName: String
  ProvisionedProductName: String!
  ProvisioningParameters: [AwsServiceCatalogProvisionProductProvisioningParametersInput]
  ProvisioningPreferences: AwsServiceCatalogProvisionProductProvisioningPreferencesInput
  Tags: [AwsServiceCatalogS1jInput]
  NotificationArns: [String]
  ProvisionToken: String!
}

input AwsServiceCatalogProvisionProductProvisioningParametersInput {
  Key: String
  Value: String
}

input AwsServiceCatalogProvisionProductProvisioningPreferencesInput {
  StackSetAccounts: [String]
  StackSetRegions: [String]
  StackSetFailureToleranceCount: Int
  StackSetFailureTolerancePercentage: Int
  StackSetMaxConcurrencyCount: Int
  StackSetMaxConcurrencyPercentage: Int
}

input AwsServiceCatalogRejectPortfolioShareInput {
  AcceptLanguage: String
  PortfolioId: String!
  PortfolioShareType: String
}

type AwsServiceCatalogScanProvisionedProductsOutput {
  ProvisionedProducts: [AwsServiceCatalogS55]
  NextPageToken: String
}

input AwsServiceCatalogScanProvisionedProductsInput {
  AcceptLanguage: String
  AccessLevelFilter: AwsServiceCatalogS9aInput
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogSearchProductsOutput {
  ProductViewSummaries: [AwsServiceCatalogS2e]
  ProductViewAggregations: JSON
  NextPageToken: String
}

input AwsServiceCatalogSearchProductsInput {
  AcceptLanguage: String
  Filters: JSON
  PageSize: Int
  SortBy: String
  SortOrder: String
  PageToken: String
}

type AwsServiceCatalogSearchProductsAsAdminOutput {
  ProductViewDetails: [AwsServiceCatalogS2d]
  NextPageToken: String
}

input AwsServiceCatalogSearchProductsAsAdminInput {
  AcceptLanguage: String
  PortfolioId: String
  Filters: JSON
  SortBy: String
  SortOrder: String
  PageToken: String
  PageSize: Int
  ProductSource: String
}

type AwsServiceCatalogSearchProvisionedProductsOutput {
  ProvisionedProducts: [AwsServiceCatalogSearchProvisionedProductsOutputProvisionedProducts]
  TotalResultsCount: Int
  NextPageToken: String
}

type AwsServiceCatalogSearchProvisionedProductsOutputProvisionedProducts {
  Name: String
  Arn: String
  Type: String
  Id: String
  Status: String
  StatusMessage: String
  CreatedTime: Date
  IdempotencyToken: String
  LastRecordId: String
  LastProvisioningRecordId: String
  LastSuccessfulProvisioningRecordId: String
  Tags: [AwsServiceCatalogS1j]
  PhysicalId: String
  ProductId: String
  ProductName: String
  ProvisioningArtifactId: String
  ProvisioningArtifactName: String
  UserArn: String
  UserArnSession: String
}

input AwsServiceCatalogSearchProvisionedProductsInput {
  AcceptLanguage: String
  AccessLevelFilter: AwsServiceCatalogS9aInput
  Filters: JSON
  SortBy: String
  SortOrder: String
  PageSize: Int
  PageToken: String
}

type AwsServiceCatalogTerminateProvisionedProductOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogTerminateProvisionedProductInput {
  ProvisionedProductName: String
  ProvisionedProductId: String
  TerminateToken: String!
  IgnoreErrors: Boolean
  AcceptLanguage: String
  RetainPhysicalResources: Boolean
}

type AwsServiceCatalogUpdateConstraintOutput {
  ConstraintDetail: AwsServiceCatalogS1b
  ConstraintParameters: String
  Status: String
}

input AwsServiceCatalogUpdateConstraintInput {
  AcceptLanguage: String
  Id: String!
  Description: String
  Parameters: String
}

type AwsServiceCatalogUpdatePortfolioOutput {
  PortfolioDetail: AwsServiceCatalogS1n
  Tags: [AwsServiceCatalogS1j]
}

input AwsServiceCatalogUpdatePortfolioInput {
  AcceptLanguage: String
  Id: String!
  DisplayName: String
  Description: String
  ProviderName: String
  AddTags: [AwsServiceCatalogS1jInput]
  RemoveTags: [String]
}

type AwsServiceCatalogUpdatePortfolioShareOutput {
  PortfolioShareToken: String
  Status: String
}

input AwsServiceCatalogUpdatePortfolioShareInput {
  AcceptLanguage: String
  PortfolioId: String!
  AccountId: String
  OrganizationNode: AwsServiceCatalogS1sInput
  ShareTagOptions: Boolean
}

type AwsServiceCatalogUpdateProductOutput {
  ProductViewDetail: AwsServiceCatalogS2d
  Tags: [AwsServiceCatalogS1j]
}

input AwsServiceCatalogUpdateProductInput {
  AcceptLanguage: String
  Id: String!
  Name: String
  Owner: String
  Description: String
  Distributor: String
  SupportDescription: String
  SupportEmail: String
  SupportUrl: String
  AddTags: [AwsServiceCatalogS1jInput]
  RemoveTags: [String]
}

type AwsServiceCatalogUpdateProvisionedProductOutput {
  RecordDetail: AwsServiceCatalogS70
}

input AwsServiceCatalogUpdateProvisionedProductInput {
  AcceptLanguage: String
  ProvisionedProductName: String
  ProvisionedProductId: String
  ProductId: String
  ProductName: String
  ProvisioningArtifactId: String
  ProvisioningArtifactName: String
  PathId: String
  PathName: String
  ProvisioningParameters: [AwsServiceCatalogS2rInput]
  ProvisioningPreferences: AwsServiceCatalogUpdateProvisionedProductProvisioningPreferencesInput
  Tags: [AwsServiceCatalogS1jInput]
  UpdateToken: String!
}

input AwsServiceCatalogUpdateProvisionedProductProvisioningPreferencesInput {
  StackSetAccounts: [String]
  StackSetRegions: [String]
  StackSetFailureToleranceCount: Int
  StackSetFailureTolerancePercentage: Int
  StackSetMaxConcurrencyCount: Int
  StackSetMaxConcurrencyPercentage: Int
  StackSetOperationType: String
}

type AwsServiceCatalogUpdateProvisionedProductPropertiesOutput {
  ProvisionedProductId: String
  ProvisionedProductProperties: JSON
  RecordId: String
  Status: String
}

input AwsServiceCatalogUpdateProvisionedProductPropertiesInput {
  AcceptLanguage: String
  ProvisionedProductId: String!
  ProvisionedProductProperties: JSON!
  IdempotencyToken: String!
}

type AwsServiceCatalogUpdateProvisioningArtifactOutput {
  ProvisioningArtifactDetail: AwsServiceCatalogS2i
  Info: JSON
  Status: String
}

input AwsServiceCatalogUpdateProvisioningArtifactInput {
  AcceptLanguage: String
  ProductId: String!
  ProvisioningArtifactId: String!
  Name: String
  Description: String
  Active: Boolean
  Guidance: String
}

type AwsServiceCatalogUpdateServiceActionOutput {
  ServiceActionDetail: AwsServiceCatalogS37
}

input AwsServiceCatalogUpdateServiceActionInput {
  Id: String!
  Name: String
  Definition: JSON
  Description: String
  AcceptLanguage: String
}

type AwsServiceCatalogUpdateTagOptionOutput {
  TagOptionDetail: AwsServiceCatalogS3d
}

input AwsServiceCatalogUpdateTagOptionInput {
  Id: String!
  Value: String
  Active: Boolean
}

"""AWS Service Catalog App Registry (2020-06-24)"""
type AwsServiceCatalogAppRegistry {
  associateAttributeGroup(input: AwsServiceCatalogAppRegistryAssociateAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryAssociateAttributeGroupOutput
  associateResource(input: AwsServiceCatalogAppRegistryAssociateResourceInput!, config: AwsConfig): AwsServiceCatalogAppRegistryAssociateResourceOutput
  createApplication(input: AwsServiceCatalogAppRegistryCreateApplicationInput!, config: AwsConfig): AwsServiceCatalogAppRegistryCreateApplicationOutput
  createAttributeGroup(input: AwsServiceCatalogAppRegistryCreateAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryCreateAttributeGroupOutput
  deleteApplication(input: AwsServiceCatalogAppRegistryDeleteApplicationInput!, config: AwsConfig): AwsServiceCatalogAppRegistryDeleteApplicationOutput
  deleteAttributeGroup(input: AwsServiceCatalogAppRegistryDeleteAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryDeleteAttributeGroupOutput
  disassociateAttributeGroup(input: AwsServiceCatalogAppRegistryDisassociateAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryDisassociateAttributeGroupOutput
  disassociateResource(input: AwsServiceCatalogAppRegistryDisassociateResourceInput!, config: AwsConfig): AwsServiceCatalogAppRegistryDisassociateResourceOutput
  getApplication(input: AwsServiceCatalogAppRegistryGetApplicationInput!, config: AwsConfig): AwsServiceCatalogAppRegistryGetApplicationOutput
  getAttributeGroup(input: AwsServiceCatalogAppRegistryGetAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryGetAttributeGroupOutput
  listApplications(input: AwsServiceCatalogAppRegistryListApplicationsInput, config: AwsConfig): AwsServiceCatalogAppRegistryListApplicationsOutput
  listAssociatedAttributeGroups(input: AwsServiceCatalogAppRegistryListAssociatedAttributeGroupsInput!, config: AwsConfig): AwsServiceCatalogAppRegistryListAssociatedAttributeGroupsOutput
  listAssociatedResources(input: AwsServiceCatalogAppRegistryListAssociatedResourcesInput!, config: AwsConfig): AwsServiceCatalogAppRegistryListAssociatedResourcesOutput
  listAttributeGroups(input: AwsServiceCatalogAppRegistryListAttributeGroupsInput, config: AwsConfig): AwsServiceCatalogAppRegistryListAttributeGroupsOutput
  listTagsForResource(input: AwsServiceCatalogAppRegistryListTagsForResourceInput!, config: AwsConfig): AwsServiceCatalogAppRegistryListTagsForResourceOutput
  syncResource(input: AwsServiceCatalogAppRegistrySyncResourceInput!, config: AwsConfig): AwsServiceCatalogAppRegistrySyncResourceOutput
  tagResource(input: AwsServiceCatalogAppRegistryTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsServiceCatalogAppRegistryUntagResourceInput!, config: AwsConfig): JSON
  updateApplication(input: AwsServiceCatalogAppRegistryUpdateApplicationInput!, config: AwsConfig): AwsServiceCatalogAppRegistryUpdateApplicationOutput
  updateAttributeGroup(input: AwsServiceCatalogAppRegistryUpdateAttributeGroupInput!, config: AwsConfig): AwsServiceCatalogAppRegistryUpdateAttributeGroupOutput
}

type AwsServiceCatalogAppRegistryAssociateAttributeGroupOutput {
  applicationArn: String
  attributeGroupArn: String
}

input AwsServiceCatalogAppRegistryAssociateAttributeGroupInput {
  application: String!
  attributeGroup: String!
}

type AwsServiceCatalogAppRegistryAssociateResourceOutput {
  applicationArn: String
  resourceArn: String
}

input AwsServiceCatalogAppRegistryAssociateResourceInput {
  application: String!
  resourceType: String!
  resource: String!
}

type AwsServiceCatalogAppRegistryCreateApplicationOutput {
  application: AwsServiceCatalogAppRegistrySk
}

type AwsServiceCatalogAppRegistrySk {
  id: String
  arn: String
  name: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
  tags: JSON
}

input AwsServiceCatalogAppRegistryCreateApplicationInput {
  name: String!
  description: String
  tags: JSON
  clientToken: String!
}

type AwsServiceCatalogAppRegistryCreateAttributeGroupOutput {
  attributeGroup: AwsServiceCatalogAppRegistrySq
}

type AwsServiceCatalogAppRegistrySq {
  id: String
  arn: String
  name: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
  tags: JSON
}

input AwsServiceCatalogAppRegistryCreateAttributeGroupInput {
  name: String!
  description: String
  attributes: String!
  tags: JSON
  clientToken: String!
}

type AwsServiceCatalogAppRegistryDeleteApplicationOutput {
  application: AwsServiceCatalogAppRegistrySu
}

type AwsServiceCatalogAppRegistrySu {
  id: String
  arn: String
  name: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
}

input AwsServiceCatalogAppRegistryDeleteApplicationInput {
  application: String!
}

type AwsServiceCatalogAppRegistryDeleteAttributeGroupOutput {
  attributeGroup: AwsServiceCatalogAppRegistrySx
}

type AwsServiceCatalogAppRegistrySx {
  id: String
  arn: String
  name: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
}

input AwsServiceCatalogAppRegistryDeleteAttributeGroupInput {
  attributeGroup: String!
}

type AwsServiceCatalogAppRegistryDisassociateAttributeGroupOutput {
  applicationArn: String
  attributeGroupArn: String
}

input AwsServiceCatalogAppRegistryDisassociateAttributeGroupInput {
  application: String!
  attributeGroup: String!
}

type AwsServiceCatalogAppRegistryDisassociateResourceOutput {
  applicationArn: String
  resourceArn: String
}

input AwsServiceCatalogAppRegistryDisassociateResourceInput {
  application: String!
  resourceType: String!
  resource: String!
}

type AwsServiceCatalogAppRegistryGetApplicationOutput {
  id: String
  arn: String
  name: String
  description: String
  creationTime: Date
  lastUpdateTime: Date
  associatedResourceCount: Int
  tags: JSON
}

input AwsServiceCatalogAppRegistryGetApplicationInput {
  application: String!
}

type AwsServiceCatalogAppRegistryGetAttributeGroupOutput {
  id: String
  arn: String
  name: String
  description: String
  attributes: String
  creationTime: Date
  lastUpdateTime: Date
  tags: JSON
}

input AwsServiceCatalogAppRegistryGetAttributeGroupInput {
  attributeGroup: String!
}

type AwsServiceCatalogAppRegistryListApplicationsOutput {
  applications: [AwsServiceCatalogAppRegistrySu]
  nextToken: String
}

input AwsServiceCatalogAppRegistryListApplicationsInput {
  nextToken: String
  maxResults: Int
}

type AwsServiceCatalogAppRegistryListAssociatedAttributeGroupsOutput {
  attributeGroups: [String]
  nextToken: String
}

input AwsServiceCatalogAppRegistryListAssociatedAttributeGroupsInput {
  application: String!
  nextToken: String
  maxResults: Int
}

type AwsServiceCatalogAppRegistryListAssociatedResourcesOutput {
  resources: [AwsServiceCatalogAppRegistryListAssociatedResourcesOutputResources]
  nextToken: String
}

type AwsServiceCatalogAppRegistryListAssociatedResourcesOutputResources {
  name: String
  arn: String
}

input AwsServiceCatalogAppRegistryListAssociatedResourcesInput {
  application: String!
  nextToken: String
  maxResults: Int
}

type AwsServiceCatalogAppRegistryListAttributeGroupsOutput {
  attributeGroups: [AwsServiceCatalogAppRegistrySx]
  nextToken: String
}

input AwsServiceCatalogAppRegistryListAttributeGroupsInput {
  nextToken: String
  maxResults: Int
}

type AwsServiceCatalogAppRegistryListTagsForResourceOutput {
  tags: JSON
}

input AwsServiceCatalogAppRegistryListTagsForResourceInput {
  resourceArn: String!
}

type AwsServiceCatalogAppRegistrySyncResourceOutput {
  applicationArn: String
  resourceArn: String
  actionTaken: String
}

input AwsServiceCatalogAppRegistrySyncResourceInput {
  resourceType: String!
  resource: String!
}

input AwsServiceCatalogAppRegistryTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsServiceCatalogAppRegistryUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsServiceCatalogAppRegistryUpdateApplicationOutput {
  application: AwsServiceCatalogAppRegistrySk
}

input AwsServiceCatalogAppRegistryUpdateApplicationInput {
  application: String!
  name: String
  description: String
}

type AwsServiceCatalogAppRegistryUpdateAttributeGroupOutput {
  attributeGroup: AwsServiceCatalogAppRegistrySq
}

input AwsServiceCatalogAppRegistryUpdateAttributeGroupInput {
  attributeGroup: String!
  name: String
  description: String
  attributes: String
}

"""AWS Cloud Map (2017-03-14)"""
type AwsServiceDiscovery {
  createHttpNamespace(input: AwsServiceDiscoveryCreateHttpNamespaceInput!, config: AwsConfig): AwsServiceDiscoveryCreateHttpNamespaceOutput
  createPrivateDnsNamespace(input: AwsServiceDiscoveryCreatePrivateDnsNamespaceInput!, config: AwsConfig): AwsServiceDiscoveryCreatePrivateDnsNamespaceOutput
  createPublicDnsNamespace(input: AwsServiceDiscoveryCreatePublicDnsNamespaceInput!, config: AwsConfig): AwsServiceDiscoveryCreatePublicDnsNamespaceOutput
  createService(input: AwsServiceDiscoveryCreateServiceInput!, config: AwsConfig): AwsServiceDiscoveryCreateServiceOutput
  deleteNamespace(input: AwsServiceDiscoveryDeleteNamespaceInput!, config: AwsConfig): AwsServiceDiscoveryDeleteNamespaceOutput
  deleteService(input: AwsServiceDiscoveryDeleteServiceInput!, config: AwsConfig): JSON
  deregisterInstance(input: AwsServiceDiscoveryDeregisterInstanceInput!, config: AwsConfig): AwsServiceDiscoveryDeregisterInstanceOutput
  discoverInstances(input: AwsServiceDiscoveryDiscoverInstancesInput!, config: AwsConfig): AwsServiceDiscoveryDiscoverInstancesOutput
  getInstance(input: AwsServiceDiscoveryGetInstanceInput!, config: AwsConfig): AwsServiceDiscoveryGetInstanceOutput
  getInstancesHealthStatus(input: AwsServiceDiscoveryGetInstancesHealthStatusInput!, config: AwsConfig): AwsServiceDiscoveryGetInstancesHealthStatusOutput
  getNamespace(input: AwsServiceDiscoveryGetNamespaceInput!, config: AwsConfig): AwsServiceDiscoveryGetNamespaceOutput
  getOperation(input: AwsServiceDiscoveryGetOperationInput!, config: AwsConfig): AwsServiceDiscoveryGetOperationOutput
  getService(input: AwsServiceDiscoveryGetServiceInput!, config: AwsConfig): AwsServiceDiscoveryGetServiceOutput
  listInstances(input: AwsServiceDiscoveryListInstancesInput!, config: AwsConfig): AwsServiceDiscoveryListInstancesOutput
  listNamespaces(input: AwsServiceDiscoveryListNamespacesInput, config: AwsConfig): AwsServiceDiscoveryListNamespacesOutput
  listOperations(input: AwsServiceDiscoveryListOperationsInput, config: AwsConfig): AwsServiceDiscoveryListOperationsOutput
  listServices(input: AwsServiceDiscoveryListServicesInput, config: AwsConfig): AwsServiceDiscoveryListServicesOutput
  listTagsForResource(input: AwsServiceDiscoveryListTagsForResourceInput!, config: AwsConfig): AwsServiceDiscoveryListTagsForResourceOutput
  registerInstance(input: AwsServiceDiscoveryRegisterInstanceInput!, config: AwsConfig): AwsServiceDiscoveryRegisterInstanceOutput
  tagResource(input: AwsServiceDiscoveryTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsServiceDiscoveryUntagResourceInput!, config: AwsConfig): JSON
  updateInstanceCustomHealthStatus(input: AwsServiceDiscoveryUpdateInstanceCustomHealthStatusInput!, config: AwsConfig): JSON
  updateService(input: AwsServiceDiscoveryUpdateServiceInput!, config: AwsConfig): AwsServiceDiscoveryUpdateServiceOutput
}

type AwsServiceDiscoveryCreateHttpNamespaceOutput {
  OperationId: String
}

input AwsServiceDiscoveryCreateHttpNamespaceInput {
  Name: String!
  CreatorRequestId: String
  Description: String
  Tags: [AwsServiceDiscoveryS5Input]
}

input AwsServiceDiscoveryS5Input {
  Key: String!
  Value: String!
}

type AwsServiceDiscoveryCreatePrivateDnsNamespaceOutput {
  OperationId: String
}

input AwsServiceDiscoveryCreatePrivateDnsNamespaceInput {
  Name: String!
  CreatorRequestId: String
  Description: String
  Vpc: String!
  Tags: [AwsServiceDiscoveryS5Input]
}

type AwsServiceDiscoveryCreatePublicDnsNamespaceOutput {
  OperationId: String
}

input AwsServiceDiscoveryCreatePublicDnsNamespaceInput {
  Name: String!
  CreatorRequestId: String
  Description: String
  Tags: [AwsServiceDiscoveryS5Input]
}

type AwsServiceDiscoveryCreateServiceOutput {
  Service: AwsServiceDiscoverySw
}

type AwsServiceDiscoverySw {
  Id: String
  Arn: String
  Name: String
  NamespaceId: String
  Description: String
  InstanceCount: Int
  DnsConfig: AwsServiceDiscoverySj
  Type: String
  HealthCheckConfig: AwsServiceDiscoverySp
  HealthCheckCustomConfig: AwsServiceDiscoverySt
  CreateDate: Date
  CreatorRequestId: String
}

type AwsServiceDiscoverySj {
  NamespaceId: String
  RoutingPolicy: String
  DnsRecords: [AwsServiceDiscoverySl]!
}

type AwsServiceDiscoverySl {
  Type: String!
  TTL: JSON!
}

type AwsServiceDiscoverySp {
  Type: String!
  ResourcePath: String
  FailureThreshold: Int
}

type AwsServiceDiscoverySt {
  FailureThreshold: Int
}

input AwsServiceDiscoveryCreateServiceInput {
  Name: String!
  NamespaceId: String
  CreatorRequestId: String
  Description: String
  DnsConfig: AwsServiceDiscoverySjInput
  HealthCheckConfig: AwsServiceDiscoverySpInput
  HealthCheckCustomConfig: AwsServiceDiscoveryStInput
  Tags: [AwsServiceDiscoveryS5Input]
  Type: String
}

input AwsServiceDiscoverySjInput {
  NamespaceId: String
  RoutingPolicy: String
  DnsRecords: [AwsServiceDiscoverySlInput]!
}

input AwsServiceDiscoverySlInput {
  Type: String!
  TTL: JSON!
}

input AwsServiceDiscoverySpInput {
  Type: String!
  ResourcePath: String
  FailureThreshold: Int
}

input AwsServiceDiscoveryStInput {
  FailureThreshold: Int
}

type AwsServiceDiscoveryDeleteNamespaceOutput {
  OperationId: String
}

input AwsServiceDiscoveryDeleteNamespaceInput {
  Id: String!
}

input AwsServiceDiscoveryDeleteServiceInput {
  Id: String!
}

type AwsServiceDiscoveryDeregisterInstanceOutput {
  OperationId: String
}

input AwsServiceDiscoveryDeregisterInstanceInput {
  ServiceId: String!
  InstanceId: String!
}

type AwsServiceDiscoveryDiscoverInstancesOutput {
  Instances: [AwsServiceDiscoveryDiscoverInstancesOutputInstances]
}

type AwsServiceDiscoveryDiscoverInstancesOutputInstances {
  InstanceId: String
  NamespaceName: String
  ServiceName: String
  HealthStatus: String
  Attributes: JSON
}

input AwsServiceDiscoveryDiscoverInstancesInput {
  NamespaceName: String!
  ServiceName: String!
  MaxResults: Int
  QueryParameters: JSON
  OptionalParameters: JSON
  HealthStatus: String
}

type AwsServiceDiscoveryGetInstanceOutput {
  Instance: AwsServiceDiscoveryGetInstanceOutputInstance
}

type AwsServiceDiscoveryGetInstanceOutputInstance {
  Id: String!
  CreatorRequestId: String
  Attributes: JSON
}

input AwsServiceDiscoveryGetInstanceInput {
  ServiceId: String!
  InstanceId: String!
}

type AwsServiceDiscoveryGetInstancesHealthStatusOutput {
  Status: JSON
  NextToken: String
}

input AwsServiceDiscoveryGetInstancesHealthStatusInput {
  ServiceId: String!
  Instances: [String]
  MaxResults: Int
  NextToken: String
}

type AwsServiceDiscoveryGetNamespaceOutput {
  Namespace: AwsServiceDiscoveryGetNamespaceOutputNamespace
}

type AwsServiceDiscoveryGetNamespaceOutputNamespace {
  Id: String
  Arn: String
  Name: String
  Type: String
  Description: String
  ServiceCount: Int
  Properties: AwsServiceDiscoveryS1v
  CreateDate: Date
  CreatorRequestId: String
}

type AwsServiceDiscoveryS1v {
  DnsProperties: AwsServiceDiscoveryS1vDnsProperties
  HttpProperties: AwsServiceDiscoveryS1vHttpProperties
}

type AwsServiceDiscoveryS1vDnsProperties {
  HostedZoneId: String
}

type AwsServiceDiscoveryS1vHttpProperties {
  HttpName: String
}

input AwsServiceDiscoveryGetNamespaceInput {
  Id: String!
}

type AwsServiceDiscoveryGetOperationOutput {
  Operation: AwsServiceDiscoveryGetOperationOutputOperation
}

type AwsServiceDiscoveryGetOperationOutputOperation {
  Id: String
  Type: String
  Status: String
  ErrorMessage: String
  ErrorCode: String
  CreateDate: Date
  UpdateDate: Date
  Targets: JSON
}

input AwsServiceDiscoveryGetOperationInput {
  OperationId: String!
}

type AwsServiceDiscoveryGetServiceOutput {
  Service: AwsServiceDiscoverySw
}

input AwsServiceDiscoveryGetServiceInput {
  Id: String!
}

type AwsServiceDiscoveryListInstancesOutput {
  Instances: [AwsServiceDiscoveryListInstancesOutputInstances]
  NextToken: String
}

type AwsServiceDiscoveryListInstancesOutputInstances {
  Id: String
  Attributes: JSON
}

input AwsServiceDiscoveryListInstancesInput {
  ServiceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsServiceDiscoveryListNamespacesOutput {
  Namespaces: [AwsServiceDiscoveryListNamespacesOutputNamespaces]
  NextToken: String
}

type AwsServiceDiscoveryListNamespacesOutputNamespaces {
  Id: String
  Arn: String
  Name: String
  Type: String
  Description: String
  ServiceCount: Int
  Properties: AwsServiceDiscoveryS1v
  CreateDate: Date
}

input AwsServiceDiscoveryListNamespacesInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsServiceDiscoveryListNamespacesFiltersInput]
}

input AwsServiceDiscoveryListNamespacesFiltersInput {
  Name: String!
  Values: [String]!
  Condition: String
}

type AwsServiceDiscoveryListOperationsOutput {
  Operations: [AwsServiceDiscoveryListOperationsOutputOperations]
  NextToken: String
}

type AwsServiceDiscoveryListOperationsOutputOperations {
  Id: String
  Status: String
}

input AwsServiceDiscoveryListOperationsInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsServiceDiscoveryListOperationsFiltersInput]
}

input AwsServiceDiscoveryListOperationsFiltersInput {
  Name: String!
  Values: [String]!
  Condition: String
}

type AwsServiceDiscoveryListServicesOutput {
  Services: [AwsServiceDiscoveryListServicesOutputServices]
  NextToken: String
}

type AwsServiceDiscoveryListServicesOutputServices {
  Id: String
  Arn: String
  Name: String
  Type: String
  Description: String
  InstanceCount: Int
  DnsConfig: AwsServiceDiscoverySj
  HealthCheckConfig: AwsServiceDiscoverySp
  HealthCheckCustomConfig: AwsServiceDiscoverySt
  CreateDate: Date
}

input AwsServiceDiscoveryListServicesInput {
  NextToken: String
  MaxResults: Int
  Filters: [AwsServiceDiscoveryListServicesFiltersInput]
}

input AwsServiceDiscoveryListServicesFiltersInput {
  Name: String!
  Values: [String]!
  Condition: String
}

type AwsServiceDiscoveryListTagsForResourceOutput {
  Tags: [AwsServiceDiscoveryS5]
}

type AwsServiceDiscoveryS5 {
  Key: String!
  Value: String!
}

input AwsServiceDiscoveryListTagsForResourceInput {
  ResourceARN: String!
}

type AwsServiceDiscoveryRegisterInstanceOutput {
  OperationId: String
}

input AwsServiceDiscoveryRegisterInstanceInput {
  ServiceId: String!
  InstanceId: String!
  CreatorRequestId: String
  Attributes: JSON!
}

input AwsServiceDiscoveryTagResourceInput {
  ResourceARN: String!
  Tags: [AwsServiceDiscoveryS5Input]!
}

input AwsServiceDiscoveryUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsServiceDiscoveryUpdateInstanceCustomHealthStatusInput {
  ServiceId: String!
  InstanceId: String!
  Status: String!
}

type AwsServiceDiscoveryUpdateServiceOutput {
  OperationId: String
}

input AwsServiceDiscoveryUpdateServiceInput {
  Id: String!
  Service: AwsServiceDiscoveryUpdateServiceServiceInput!
}

input AwsServiceDiscoveryUpdateServiceServiceInput {
  Description: String
  DnsConfig: AwsServiceDiscoveryUpdateServiceServiceDnsConfigInput
  HealthCheckConfig: AwsServiceDiscoverySpInput
}

input AwsServiceDiscoveryUpdateServiceServiceDnsConfigInput {
  DnsRecords: [AwsServiceDiscoverySlInput]!
}

"""Service Quotas (2019-06-24)"""
type AwsServiceQuotas {
  associateServiceQuotaTemplate(input: JSON, config: AwsConfig): JSON
  deleteServiceQuotaIncreaseRequestFromTemplate(input: AwsServiceQuotasDeleteServiceQuotaIncreaseRequestFromTemplateInput!, config: AwsConfig): JSON
  disassociateServiceQuotaTemplate(input: JSON, config: AwsConfig): JSON
  getAWSDefaultServiceQuota(input: AwsServiceQuotasGetAWSDefaultServiceQuotaInput!, config: AwsConfig): AwsServiceQuotasGetAWSDefaultServiceQuotaOutput
  getAssociationForServiceQuotaTemplate(input: JSON, config: AwsConfig): AwsServiceQuotasGetAssociationForServiceQuotaTemplateOutput
  getRequestedServiceQuotaChange(input: AwsServiceQuotasGetRequestedServiceQuotaChangeInput!, config: AwsConfig): AwsServiceQuotasGetRequestedServiceQuotaChangeOutput
  getServiceQuota(input: AwsServiceQuotasGetServiceQuotaInput!, config: AwsConfig): AwsServiceQuotasGetServiceQuotaOutput
  getServiceQuotaIncreaseRequestFromTemplate(input: AwsServiceQuotasGetServiceQuotaIncreaseRequestFromTemplateInput!, config: AwsConfig): AwsServiceQuotasGetServiceQuotaIncreaseRequestFromTemplateOutput
  listAWSDefaultServiceQuotas(input: AwsServiceQuotasListAWSDefaultServiceQuotasInput!, config: AwsConfig): AwsServiceQuotasListAWSDefaultServiceQuotasOutput
  listRequestedServiceQuotaChangeHistory(input: AwsServiceQuotasListRequestedServiceQuotaChangeHistoryInput, config: AwsConfig): AwsServiceQuotasListRequestedServiceQuotaChangeHistoryOutput
  listRequestedServiceQuotaChangeHistoryByQuota(input: AwsServiceQuotasListRequestedServiceQuotaChangeHistoryByQuotaInput!, config: AwsConfig): AwsServiceQuotasListRequestedServiceQuotaChangeHistoryByQuotaOutput
  listServiceQuotaIncreaseRequestsInTemplate(input: AwsServiceQuotasListServiceQuotaIncreaseRequestsInTemplateInput, config: AwsConfig): AwsServiceQuotasListServiceQuotaIncreaseRequestsInTemplateOutput
  listServiceQuotas(input: AwsServiceQuotasListServiceQuotasInput!, config: AwsConfig): AwsServiceQuotasListServiceQuotasOutput
  listServices(input: AwsServiceQuotasListServicesInput, config: AwsConfig): AwsServiceQuotasListServicesOutput
  listTagsForResource(input: AwsServiceQuotasListTagsForResourceInput!, config: AwsConfig): AwsServiceQuotasListTagsForResourceOutput
  putServiceQuotaIncreaseRequestIntoTemplate(input: AwsServiceQuotasPutServiceQuotaIncreaseRequestIntoTemplateInput!, config: AwsConfig): AwsServiceQuotasPutServiceQuotaIncreaseRequestIntoTemplateOutput
  requestServiceQuotaIncrease(input: AwsServiceQuotasRequestServiceQuotaIncreaseInput!, config: AwsConfig): AwsServiceQuotasRequestServiceQuotaIncreaseOutput
  tagResource(input: AwsServiceQuotasTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsServiceQuotasUntagResourceInput!, config: AwsConfig): JSON
}

input AwsServiceQuotasDeleteServiceQuotaIncreaseRequestFromTemplateInput {
  ServiceCode: String!
  QuotaCode: String!
  AwsRegion: String!
}

type AwsServiceQuotasGetAWSDefaultServiceQuotaOutput {
  Quota: AwsServiceQuotasSc
}

type AwsServiceQuotasSc {
  ServiceCode: String
  ServiceName: String
  QuotaArn: String
  QuotaCode: String
  QuotaName: String
  Value: JSON
  Unit: String
  Adjustable: Boolean
  GlobalQuota: Boolean
  UsageMetric: AwsServiceQuotasScUsageMetric
  Period: AwsServiceQuotasScPeriod
  ErrorReason: AwsServiceQuotasScErrorReason
}

type AwsServiceQuotasScUsageMetric {
  MetricNamespace: String
  MetricName: String
  MetricDimensions: JSON
  MetricStatisticRecommendation: String
}

type AwsServiceQuotasScPeriod {
  PeriodValue: Int
  PeriodUnit: String
}

type AwsServiceQuotasScErrorReason {
  ErrorCode: String
  ErrorMessage: String
}

input AwsServiceQuotasGetAWSDefaultServiceQuotaInput {
  ServiceCode: String!
  QuotaCode: String!
}

type AwsServiceQuotasGetAssociationForServiceQuotaTemplateOutput {
  ServiceQuotaTemplateAssociationStatus: String
}

type AwsServiceQuotasGetRequestedServiceQuotaChangeOutput {
  RequestedQuota: AwsServiceQuotasS13
}

type AwsServiceQuotasS13 {
  Id: String
  CaseId: String
  ServiceCode: String
  ServiceName: String
  QuotaCode: String
  QuotaName: String
  DesiredValue: JSON
  Status: String
  Created: Date
  LastUpdated: Date
  Requester: String
  QuotaArn: String
  GlobalQuota: Boolean
  Unit: String
}

input AwsServiceQuotasGetRequestedServiceQuotaChangeInput {
  RequestId: String!
}

type AwsServiceQuotasGetServiceQuotaOutput {
  Quota: AwsServiceQuotasSc
}

input AwsServiceQuotasGetServiceQuotaInput {
  ServiceCode: String!
  QuotaCode: String!
}

type AwsServiceQuotasGetServiceQuotaIncreaseRequestFromTemplateOutput {
  ServiceQuotaIncreaseRequestInTemplate: AwsServiceQuotasS1c
}

type AwsServiceQuotasS1c {
  ServiceCode: String
  ServiceName: String
  QuotaCode: String
  QuotaName: String
  DesiredValue: JSON
  AwsRegion: String
  Unit: String
  GlobalQuota: Boolean
}

input AwsServiceQuotasGetServiceQuotaIncreaseRequestFromTemplateInput {
  ServiceCode: String!
  QuotaCode: String!
  AwsRegion: String!
}

type AwsServiceQuotasListAWSDefaultServiceQuotasOutput {
  NextToken: String
  Quotas: [AwsServiceQuotasSc]
}

input AwsServiceQuotasListAWSDefaultServiceQuotasInput {
  ServiceCode: String!
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListRequestedServiceQuotaChangeHistoryOutput {
  NextToken: String
  RequestedQuotas: [AwsServiceQuotasS13]
}

input AwsServiceQuotasListRequestedServiceQuotaChangeHistoryInput {
  ServiceCode: String
  Status: String
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListRequestedServiceQuotaChangeHistoryByQuotaOutput {
  NextToken: String
  RequestedQuotas: [AwsServiceQuotasS13]
}

input AwsServiceQuotasListRequestedServiceQuotaChangeHistoryByQuotaInput {
  ServiceCode: String!
  QuotaCode: String!
  Status: String
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListServiceQuotaIncreaseRequestsInTemplateOutput {
  ServiceQuotaIncreaseRequestInTemplateList: [AwsServiceQuotasS1c]
  NextToken: String
}

input AwsServiceQuotasListServiceQuotaIncreaseRequestsInTemplateInput {
  ServiceCode: String
  AwsRegion: String
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListServiceQuotasOutput {
  NextToken: String
  Quotas: [AwsServiceQuotasSc]
}

input AwsServiceQuotasListServiceQuotasInput {
  ServiceCode: String!
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListServicesOutput {
  NextToken: String
  Services: [AwsServiceQuotasListServicesOutputServices]
}

type AwsServiceQuotasListServicesOutputServices {
  ServiceCode: String
  ServiceName: String
}

input AwsServiceQuotasListServicesInput {
  NextToken: String
  MaxResults: Int
}

type AwsServiceQuotasListTagsForResourceOutput {
  Tags: [AwsServiceQuotasS20]
}

type AwsServiceQuotasS20 {
  Key: String!
  Value: String!
}

input AwsServiceQuotasListTagsForResourceInput {
  ResourceARN: String!
}

type AwsServiceQuotasPutServiceQuotaIncreaseRequestIntoTemplateOutput {
  ServiceQuotaIncreaseRequestInTemplate: AwsServiceQuotasS1c
}

input AwsServiceQuotasPutServiceQuotaIncreaseRequestIntoTemplateInput {
  QuotaCode: String!
  ServiceCode: String!
  AwsRegion: String!
  DesiredValue: JSON!
}

type AwsServiceQuotasRequestServiceQuotaIncreaseOutput {
  RequestedQuota: AwsServiceQuotasS13
}

input AwsServiceQuotasRequestServiceQuotaIncreaseInput {
  ServiceCode: String!
  QuotaCode: String!
  DesiredValue: JSON!
}

input AwsServiceQuotasTagResourceInput {
  ResourceARN: String!
  Tags: [AwsServiceQuotasS20Input]!
}

input AwsServiceQuotasS20Input {
  Key: String!
  Value: String!
}

input AwsServiceQuotasUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

"""AWS Shield (2016-06-02)"""
type AwsShield {
  associateDRTLogBucket(input: AwsShieldAssociateDRTLogBucketInput!, config: AwsConfig): JSON
  associateDRTRole(input: AwsShieldAssociateDRTRoleInput!, config: AwsConfig): JSON
  associateHealthCheck(input: AwsShieldAssociateHealthCheckInput!, config: AwsConfig): JSON
  associateProactiveEngagementDetails(input: AwsShieldAssociateProactiveEngagementDetailsInput!, config: AwsConfig): JSON
  createProtection(input: AwsShieldCreateProtectionInput!, config: AwsConfig): AwsShieldCreateProtectionOutput
  createProtectionGroup(input: AwsShieldCreateProtectionGroupInput!, config: AwsConfig): JSON
  createSubscription(input: JSON, config: AwsConfig): JSON
  deleteProtection(input: AwsShieldDeleteProtectionInput!, config: AwsConfig): JSON
  deleteProtectionGroup(input: AwsShieldDeleteProtectionGroupInput!, config: AwsConfig): JSON
  deleteSubscription(input: JSON, config: AwsConfig): JSON
  describeAttack(input: AwsShieldDescribeAttackInput!, config: AwsConfig): AwsShieldDescribeAttackOutput
  describeAttackStatistics(input: JSON, config: AwsConfig): AwsShieldDescribeAttackStatisticsOutput
  describeDRTAccess(input: JSON, config: AwsConfig): AwsShieldDescribeDRTAccessOutput
  describeEmergencyContactSettings(input: JSON, config: AwsConfig): AwsShieldDescribeEmergencyContactSettingsOutput
  describeProtection(input: AwsShieldDescribeProtectionInput, config: AwsConfig): AwsShieldDescribeProtectionOutput
  describeProtectionGroup(input: AwsShieldDescribeProtectionGroupInput!, config: AwsConfig): AwsShieldDescribeProtectionGroupOutput
  describeSubscription(input: JSON, config: AwsConfig): AwsShieldDescribeSubscriptionOutput
  disableProactiveEngagement(input: JSON, config: AwsConfig): JSON
  disassociateDRTLogBucket(input: AwsShieldDisassociateDRTLogBucketInput!, config: AwsConfig): JSON
  disassociateDRTRole(input: JSON, config: AwsConfig): JSON
  disassociateHealthCheck(input: AwsShieldDisassociateHealthCheckInput!, config: AwsConfig): JSON
  enableProactiveEngagement(input: JSON, config: AwsConfig): JSON
  getSubscriptionState(input: JSON, config: AwsConfig): AwsShieldGetSubscriptionStateOutput
  listAttacks(input: AwsShieldListAttacksInput, config: AwsConfig): AwsShieldListAttacksOutput
  listProtectionGroups(input: AwsShieldListProtectionGroupsInput, config: AwsConfig): AwsShieldListProtectionGroupsOutput
  listProtections(input: AwsShieldListProtectionsInput, config: AwsConfig): AwsShieldListProtectionsOutput
  listResourcesInProtectionGroup(input: AwsShieldListResourcesInProtectionGroupInput!, config: AwsConfig): AwsShieldListResourcesInProtectionGroupOutput
  listTagsForResource(input: AwsShieldListTagsForResourceInput!, config: AwsConfig): AwsShieldListTagsForResourceOutput
  tagResource(input: AwsShieldTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsShieldUntagResourceInput!, config: AwsConfig): JSON
  updateEmergencyContactSettings(input: AwsShieldUpdateEmergencyContactSettingsInput, config: AwsConfig): JSON
  updateProtectionGroup(input: AwsShieldUpdateProtectionGroupInput!, config: AwsConfig): JSON
  updateSubscription(input: AwsShieldUpdateSubscriptionInput, config: AwsConfig): JSON
}

input AwsShieldAssociateDRTLogBucketInput {
  LogBucket: String!
}

input AwsShieldAssociateDRTRoleInput {
  RoleArn: String!
}

input AwsShieldAssociateHealthCheckInput {
  ProtectionId: String!
  HealthCheckArn: String!
}

input AwsShieldAssociateProactiveEngagementDetailsInput {
  EmergencyContactList: [AwsShieldScInput]!
}

input AwsShieldScInput {
  EmailAddress: String!
  PhoneNumber: String
  ContactNotes: String
}

type AwsShieldCreateProtectionOutput {
  ProtectionId: String
}

input AwsShieldCreateProtectionInput {
  Name: String!
  ResourceArn: String!
  Tags: [AwsShieldSlInput]
}

input AwsShieldSlInput {
  Key: String
  Value: String
}

input AwsShieldCreateProtectionGroupInput {
  ProtectionGroupId: String!
  Aggregation: String!
  Pattern: String!
  ResourceType: String
  Members: [String]
  Tags: [AwsShieldSlInput]
}

input AwsShieldDeleteProtectionInput {
  ProtectionId: String!
}

input AwsShieldDeleteProtectionGroupInput {
  ProtectionGroupId: String!
}

type AwsShieldDescribeAttackOutput {
  Attack: AwsShieldDescribeAttackOutputAttack
}

type AwsShieldDescribeAttackOutputAttack {
  AttackId: String
  ResourceArn: String
  SubResources: [AwsShieldDescribeAttackOutputAttackSubResources]
  StartTime: Date
  EndTime: Date
  AttackCounters: [AwsShieldS1f]
  AttackProperties: [AwsShieldDescribeAttackOutputAttackAttackProperties]
  Mitigations: [AwsShieldDescribeAttackOutputAttackMitigations]
}

type AwsShieldDescribeAttackOutputAttackSubResources {
  Type: String
  Id: String
  AttackVectors: [AwsShieldDescribeAttackOutputAttackSubResourcesAttackVectors]
  Counters: [AwsShieldS1f]
}

type AwsShieldDescribeAttackOutputAttackSubResourcesAttackVectors {
  VectorType: String!
  VectorCounters: [AwsShieldS1f]
}

type AwsShieldS1f {
  Name: String
  Max: JSON
  Average: JSON
  Sum: JSON
  N: Int
  Unit: String
}

type AwsShieldDescribeAttackOutputAttackAttackProperties {
  AttackLayer: String
  AttackPropertyIdentifier: String
  TopContributors: [AwsShieldDescribeAttackOutputAttackAttackPropertiesTopContributors]
  Unit: String
  Total: JSON
}

type AwsShieldDescribeAttackOutputAttackAttackPropertiesTopContributors {
  Name: String
  Value: JSON
}

type AwsShieldDescribeAttackOutputAttackMitigations {
  MitigationName: String
}

input AwsShieldDescribeAttackInput {
  AttackId: String!
}

type AwsShieldDescribeAttackStatisticsOutput {
  TimeRange: AwsShieldS1w!
  DataItems: [AwsShieldDescribeAttackStatisticsOutputDataItems]!
}

type AwsShieldS1w {
  FromInclusive: Date
  ToExclusive: Date
}

type AwsShieldDescribeAttackStatisticsOutputDataItems {
  AttackVolume: AwsShieldDescribeAttackStatisticsOutputDataItemsAttackVolume
  AttackCount: JSON!
}

type AwsShieldDescribeAttackStatisticsOutputDataItemsAttackVolume {
  BitsPerSecond: AwsShieldS20
  PacketsPerSecond: AwsShieldS20
  RequestsPerSecond: AwsShieldS20
}

type AwsShieldS20 {
  Max: JSON!
}

type AwsShieldDescribeDRTAccessOutput {
  RoleArn: String
  LogBucketList: [String]
}

type AwsShieldDescribeEmergencyContactSettingsOutput {
  EmergencyContactList: [AwsShieldSc]
}

type AwsShieldSc {
  EmailAddress: String!
  PhoneNumber: String
  ContactNotes: String
}

type AwsShieldDescribeProtectionOutput {
  Protection: AwsShieldS28
}

type AwsShieldS28 {
  Id: String
  Name: String
  ResourceArn: String
  HealthCheckIds: [String]
  ProtectionArn: String
}

input AwsShieldDescribeProtectionInput {
  ProtectionId: String
  ResourceArn: String
}

type AwsShieldDescribeProtectionGroupOutput {
  ProtectionGroup: AwsShieldS2d!
}

type AwsShieldS2d {
  ProtectionGroupId: String!
  Aggregation: String!
  Pattern: String!
  ResourceType: String
  Members: [String]!
  ProtectionGroupArn: String
}

input AwsShieldDescribeProtectionGroupInput {
  ProtectionGroupId: String!
}

type AwsShieldDescribeSubscriptionOutput {
  Subscription: AwsShieldDescribeSubscriptionOutputSubscription
}

type AwsShieldDescribeSubscriptionOutputSubscription {
  StartTime: Date
  EndTime: Date
  TimeCommitmentInSeconds: JSON
  AutoRenew: String
  Limits: [AwsShieldS2k]
  ProactiveEngagementStatus: String
  SubscriptionLimits: AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimits!
  SubscriptionArn: String
}

type AwsShieldS2k {
  Type: String
  Max: JSON
}

type AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimits {
  ProtectionLimits: AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionLimits!
  ProtectionGroupLimits: AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimits!
}

type AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionLimits {
  ProtectedResourceTypeLimits: [AwsShieldS2k]!
}

type AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimits {
  MaxProtectionGroups: JSON!
  PatternTypeLimits: AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimitsPatternTypeLimits!
}

type AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimitsPatternTypeLimits {
  ArbitraryPatternLimits: AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimitsPatternTypeLimitsArbitraryPatternLimits!
}

type AwsShieldDescribeSubscriptionOutputSubscriptionSubscriptionLimitsProtectionGroupLimitsPatternTypeLimitsArbitraryPatternLimits {
  MaxMembers: JSON!
}

input AwsShieldDisassociateDRTLogBucketInput {
  LogBucket: String!
}

input AwsShieldDisassociateHealthCheckInput {
  ProtectionId: String!
  HealthCheckArn: String!
}

type AwsShieldGetSubscriptionStateOutput {
  SubscriptionState: String!
}

type AwsShieldListAttacksOutput {
  AttackSummaries: [AwsShieldListAttacksOutputAttackSummaries]
  NextToken: String
}

type AwsShieldListAttacksOutputAttackSummaries {
  AttackId: String
  ResourceArn: String
  StartTime: Date
  EndTime: Date
  AttackVectors: [AwsShieldListAttacksOutputAttackSummariesAttackVectors]
}

type AwsShieldListAttacksOutputAttackSummariesAttackVectors {
  VectorType: String!
}

input AwsShieldListAttacksInput {
  ResourceArns: [String]
  StartTime: AwsShieldS1wInput
  EndTime: AwsShieldS1wInput
  NextToken: String
  MaxResults: Int
}

input AwsShieldS1wInput {
  FromInclusive: Date
  ToExclusive: Date
}

type AwsShieldListProtectionGroupsOutput {
  ProtectionGroups: [AwsShieldS2d]!
  NextToken: String
}

input AwsShieldListProtectionGroupsInput {
  NextToken: String
  MaxResults: Int
}

type AwsShieldListProtectionsOutput {
  Protections: [AwsShieldS28]
  NextToken: String
}

input AwsShieldListProtectionsInput {
  NextToken: String
  MaxResults: Int
}

type AwsShieldListResourcesInProtectionGroupOutput {
  ResourceArns: [String]!
  NextToken: String
}

input AwsShieldListResourcesInProtectionGroupInput {
  ProtectionGroupId: String!
  NextToken: String
  MaxResults: Int
}

type AwsShieldListTagsForResourceOutput {
  Tags: [AwsShieldSl]
}

type AwsShieldSl {
  Key: String
  Value: String
}

input AwsShieldListTagsForResourceInput {
  ResourceARN: String!
}

input AwsShieldTagResourceInput {
  ResourceARN: String!
  Tags: [AwsShieldSlInput]!
}

input AwsShieldUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsShieldUpdateEmergencyContactSettingsInput {
  EmergencyContactList: [AwsShieldScInput]
}

input AwsShieldUpdateProtectionGroupInput {
  ProtectionGroupId: String!
  Aggregation: String!
  Pattern: String!
  ResourceType: String
  Members: [String]
}

input AwsShieldUpdateSubscriptionInput {
  AutoRenew: String
}

"""AWS Signer (2017-08-25)"""
type AwsSigner {
  addProfilePermission(input: AwsSignerAddProfilePermissionInput!, config: AwsConfig): AwsSignerAddProfilePermissionOutput
  cancelSigningProfile(input: AwsSignerCancelSigningProfileInput!, config: AwsConfig): JSON
  describeSigningJob(input: AwsSignerDescribeSigningJobInput!, config: AwsConfig): AwsSignerDescribeSigningJobOutput
  getSigningPlatform(input: AwsSignerGetSigningPlatformInput!, config: AwsConfig): AwsSignerGetSigningPlatformOutput
  getSigningProfile(input: AwsSignerGetSigningProfileInput!, config: AwsConfig): AwsSignerGetSigningProfileOutput
  listProfilePermissions(input: AwsSignerListProfilePermissionsInput!, config: AwsConfig): AwsSignerListProfilePermissionsOutput
  listSigningJobs(input: AwsSignerListSigningJobsInput, config: AwsConfig): AwsSignerListSigningJobsOutput
  listSigningPlatforms(input: AwsSignerListSigningPlatformsInput, config: AwsConfig): AwsSignerListSigningPlatformsOutput
  listSigningProfiles(input: AwsSignerListSigningProfilesInput, config: AwsConfig): AwsSignerListSigningProfilesOutput
  listTagsForResource(input: AwsSignerListTagsForResourceInput!, config: AwsConfig): AwsSignerListTagsForResourceOutput
  putSigningProfile(input: AwsSignerPutSigningProfileInput!, config: AwsConfig): AwsSignerPutSigningProfileOutput
  removeProfilePermission(input: AwsSignerRemoveProfilePermissionInput!, config: AwsConfig): AwsSignerRemoveProfilePermissionOutput
  revokeSignature(input: AwsSignerRevokeSignatureInput!, config: AwsConfig): JSON
  revokeSigningProfile(input: AwsSignerRevokeSigningProfileInput!, config: AwsConfig): JSON
  startSigningJob(input: AwsSignerStartSigningJobInput!, config: AwsConfig): AwsSignerStartSigningJobOutput
  tagResource(input: AwsSignerTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSignerUntagResourceInput!, config: AwsConfig): JSON
}

type AwsSignerAddProfilePermissionOutput {
  revisionId: String
}

input AwsSignerAddProfilePermissionInput {
  profileName: String!
  profileVersion: String
  action: String!
  principal: String!
  revisionId: String
  statementId: String!
}

input AwsSignerCancelSigningProfileInput {
  profileName: String!
}

type AwsSignerDescribeSigningJobOutput {
  jobId: String
  source: AwsSignerSa
  signingMaterial: AwsSignerSf
  platformId: String
  platformDisplayName: String
  profileName: String
  profileVersion: String
  overrides: AwsSignerSj
  signingParameters: JSON
  createdAt: Date
  completedAt: Date
  signatureExpiresAt: Date
  requestedBy: String
  status: String
  statusReason: String
  revocationRecord: AwsSignerDescribeSigningJobOutputRevocationRecord
  signedObject: AwsSignerSw
  jobOwner: String
  jobInvoker: String
}

type AwsSignerSa {
  s3: AwsSignerSaS3
}

type AwsSignerSaS3 {
  bucketName: String!
  key: String!
  version: String!
}

type AwsSignerSf {
  certificateArn: String!
}

type AwsSignerSj {
  signingConfiguration: AwsSignerSjSigningConfiguration
  signingImageFormat: String
}

type AwsSignerSjSigningConfiguration {
  encryptionAlgorithm: String
  hashAlgorithm: String
}

type AwsSignerDescribeSigningJobOutputRevocationRecord {
  reason: String
  revokedAt: Date
  revokedBy: String
}

type AwsSignerSw {
  s3: AwsSignerSwS3
}

type AwsSignerSwS3 {
  bucketName: String
  key: String
}

input AwsSignerDescribeSigningJobInput {
  jobId: String!
}

type AwsSignerGetSigningPlatformOutput {
  platformId: String
  displayName: String
  partner: String
  target: String
  category: String
  signingConfiguration: AwsSignerS12
  signingImageFormat: AwsSignerS17
  maxSizeInMB: Int
  revocationSupported: Boolean
}

type AwsSignerS12 {
  encryptionAlgorithmOptions: AwsSignerS12EncryptionAlgorithmOptions!
  hashAlgorithmOptions: AwsSignerS12HashAlgorithmOptions!
}

type AwsSignerS12EncryptionAlgorithmOptions {
  allowedValues: [String]!
  defaultValue: String!
}

type AwsSignerS12HashAlgorithmOptions {
  allowedValues: [String]!
  defaultValue: String!
}

type AwsSignerS17 {
  supportedFormats: [String]!
  defaultFormat: String!
}

input AwsSignerGetSigningPlatformInput {
  platformId: String!
}

type AwsSignerGetSigningProfileOutput {
  profileName: String
  profileVersion: String
  profileVersionArn: String
  revocationRecord: AwsSignerGetSigningProfileOutputRevocationRecord
  signingMaterial: AwsSignerSf
  platformId: String
  platformDisplayName: String
  signatureValidityPeriod: AwsSignerS1f
  overrides: AwsSignerSj
  signingParameters: JSON
  status: String
  statusReason: String
  arn: String
  tags: JSON
}

type AwsSignerGetSigningProfileOutputRevocationRecord {
  revocationEffectiveFrom: Date
  revokedAt: Date
  revokedBy: String
}

type AwsSignerS1f {
  value: Int
  type: String
}

input AwsSignerGetSigningProfileInput {
  profileName: String!
  profileOwner: String
}

type AwsSignerListProfilePermissionsOutput {
  revisionId: String
  policySizeBytes: Int
  permissions: [AwsSignerListProfilePermissionsOutputPermissions]
  nextToken: String
}

type AwsSignerListProfilePermissionsOutputPermissions {
  action: String
  principal: String
  statementId: String
  profileVersion: String
}

input AwsSignerListProfilePermissionsInput {
  profileName: String!
  nextToken: String
}

type AwsSignerListSigningJobsOutput {
  jobs: [AwsSignerListSigningJobsOutputJobs]
  nextToken: String
}

type AwsSignerListSigningJobsOutputJobs {
  jobId: String
  source: AwsSignerSa
  signedObject: AwsSignerSw
  signingMaterial: AwsSignerSf
  createdAt: Date
  status: String
  isRevoked: Boolean
  profileName: String
  profileVersion: String
  platformId: String
  platformDisplayName: String
  signatureExpiresAt: Date
  jobOwner: String
  jobInvoker: String
}

input AwsSignerListSigningJobsInput {
  status: String
  platformId: String
  requestedBy: String
  maxResults: Int
  nextToken: String
  isRevoked: Boolean
  signatureExpiresBefore: Date
  signatureExpiresAfter: Date
  jobInvoker: String
}

type AwsSignerListSigningPlatformsOutput {
  platforms: [AwsSignerListSigningPlatformsOutputPlatforms]
  nextToken: String
}

type AwsSignerListSigningPlatformsOutputPlatforms {
  platformId: String
  displayName: String
  partner: String
  target: String
  category: String
  signingConfiguration: AwsSignerS12
  signingImageFormat: AwsSignerS17
  maxSizeInMB: Int
  revocationSupported: Boolean
}

input AwsSignerListSigningPlatformsInput {
  category: String
  partner: String
  target: String
  maxResults: Int
  nextToken: String
}

type AwsSignerListSigningProfilesOutput {
  profiles: [AwsSignerListSigningProfilesOutputProfiles]
  nextToken: String
}

type AwsSignerListSigningProfilesOutputProfiles {
  profileName: String
  profileVersion: String
  profileVersionArn: String
  signingMaterial: AwsSignerSf
  signatureValidityPeriod: AwsSignerS1f
  platformId: String
  platformDisplayName: String
  signingParameters: JSON
  status: String
  arn: String
  tags: JSON
}

input AwsSignerListSigningProfilesInput {
  includeCanceled: Boolean
  maxResults: Int
  nextToken: String
  platformId: String
  statuses: [String]
}

type AwsSignerListTagsForResourceOutput {
  tags: JSON
}

input AwsSignerListTagsForResourceInput {
  resourceArn: String!
}

type AwsSignerPutSigningProfileOutput {
  arn: String
  profileVersion: String
  profileVersionArn: String
}

input AwsSignerPutSigningProfileInput {
  profileName: String!
  signingMaterial: AwsSignerSfInput
  signatureValidityPeriod: AwsSignerS1fInput
  platformId: String!
  overrides: AwsSignerSjInput
  signingParameters: JSON
  tags: JSON
}

input AwsSignerSfInput {
  certificateArn: String!
}

input AwsSignerS1fInput {
  value: Int
  type: String
}

input AwsSignerSjInput {
  signingConfiguration: AwsSignerSjSigningConfigurationInput
  signingImageFormat: String
}

input AwsSignerSjSigningConfigurationInput {
  encryptionAlgorithm: String
  hashAlgorithm: String
}

type AwsSignerRemoveProfilePermissionOutput {
  revisionId: String
}

input AwsSignerRemoveProfilePermissionInput {
  profileName: String!
  revisionId: String!
  statementId: String!
}

input AwsSignerRevokeSignatureInput {
  jobId: String!
  jobOwner: String
  reason: String!
}

input AwsSignerRevokeSigningProfileInput {
  profileName: String!
  profileVersion: String!
  reason: String!
  effectiveTime: Date!
}

type AwsSignerStartSigningJobOutput {
  jobId: String
  jobOwner: String
}

input AwsSignerStartSigningJobInput {
  source: AwsSignerSaInput!
  destination: AwsSignerStartSigningJobDestinationInput!
  profileName: String!
  clientRequestToken: String!
  profileOwner: String
}

input AwsSignerSaInput {
  s3: AwsSignerSaS3Input
}

input AwsSignerSaS3Input {
  bucketName: String!
  key: String!
  version: String!
}

input AwsSignerStartSigningJobDestinationInput {
  s3: AwsSignerStartSigningJobDestinationS3Input
}

input AwsSignerStartSigningJobDestinationS3Input {
  bucketName: String
  prefix: String
}

input AwsSignerTagResourceInput {
  resourceArn: String!
  tags: JSON!
}

input AwsSignerUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

"""Amazon SimpleDB (2009-04-15)"""
type AwsSimpleDB {
  batchDeleteAttributes(input: AwsSimpleDBBatchDeleteAttributesInput!, config: AwsConfig): JSON
  batchPutAttributes(input: AwsSimpleDBBatchPutAttributesInput!, config: AwsConfig): JSON
  createDomain(input: AwsSimpleDBCreateDomainInput!, config: AwsConfig): JSON
  deleteAttributes(input: AwsSimpleDBDeleteAttributesInput!, config: AwsConfig): JSON
  deleteDomain(input: AwsSimpleDBDeleteDomainInput!, config: AwsConfig): JSON
  domainMetadata(input: AwsSimpleDBDomainMetadataInput!, config: AwsConfig): AwsSimpleDBDomainMetadataOutput
  getAttributes(input: AwsSimpleDBGetAttributesInput!, config: AwsConfig): AwsSimpleDBGetAttributesOutput
  listDomains(input: AwsSimpleDBListDomainsInput, config: AwsConfig): AwsSimpleDBListDomainsOutput
  putAttributes(input: AwsSimpleDBPutAttributesInput!, config: AwsConfig): JSON
  select(input: AwsSimpleDBSelectInput!, config: AwsConfig): AwsSimpleDBSelectOutput
}

input AwsSimpleDBBatchDeleteAttributesInput {
  DomainName: String!
  Items: [AwsSimpleDBBatchDeleteAttributesItemsInput]!
}

input AwsSimpleDBBatchDeleteAttributesItemsInput {
  Name: String!
  Attributes: [AwsSimpleDBS5Input]
}

input AwsSimpleDBS5Input {
  Name: String!
  Value: String
}

input AwsSimpleDBBatchPutAttributesInput {
  DomainName: String!
  Items: [AwsSimpleDBBatchPutAttributesItemsInput]!
}

input AwsSimpleDBBatchPutAttributesItemsInput {
  Name: String!
  Attributes: [AwsSimpleDBSaInput]!
}

input AwsSimpleDBSaInput {
  Name: String!
  Value: String!
  Replace: Boolean
}

input AwsSimpleDBCreateDomainInput {
  DomainName: String!
}

input AwsSimpleDBDeleteAttributesInput {
  DomainName: String!
  ItemName: String!
  Attributes: [AwsSimpleDBS5Input]
  Expected: AwsSimpleDBSfInput
}

input AwsSimpleDBSfInput {
  Name: String
  Value: String
  Exists: Boolean
}

input AwsSimpleDBDeleteDomainInput {
  DomainName: String!
}

type AwsSimpleDBDomainMetadataOutput {
  ItemCount: Int
  ItemNamesSizeBytes: JSON
  AttributeNameCount: Int
  AttributeNamesSizeBytes: JSON
  AttributeValueCount: Int
  AttributeValuesSizeBytes: JSON
  Timestamp: Int
}

input AwsSimpleDBDomainMetadataInput {
  DomainName: String!
}

type AwsSimpleDBGetAttributesOutput {
  Attributes: [AwsSimpleDBSo]
}

type AwsSimpleDBSo {
  Name: String!
  AlternateNameEncoding: String
  Value: String!
  AlternateValueEncoding: String
}

input AwsSimpleDBGetAttributesInput {
  DomainName: String!
  ItemName: String!
  AttributeNames: [String]
  ConsistentRead: Boolean
}

type AwsSimpleDBListDomainsOutput {
  DomainNames: [String]
  NextToken: String
}

input AwsSimpleDBListDomainsInput {
  MaxNumberOfDomains: Int
  NextToken: String
}

input AwsSimpleDBPutAttributesInput {
  DomainName: String!
  ItemName: String!
  Attributes: [AwsSimpleDBSaInput]!
  Expected: AwsSimpleDBSfInput
}

type AwsSimpleDBSelectOutput {
  Items: [AwsSimpleDBSelectOutputItems]
  NextToken: String
}

type AwsSimpleDBSelectOutputItems {
  Name: String!
  AlternateNameEncoding: String
  Attributes: [AwsSimpleDBSo]!
}

input AwsSimpleDBSelectInput {
  SelectExpression: String!
  NextToken: String
  ConsistentRead: Boolean
}

"""Amazon Import/Export Snowball (2016-06-30)"""
type AwsSnowball {
  cancelCluster(input: AwsSnowballCancelClusterInput!, config: AwsConfig): JSON
  cancelJob(input: AwsSnowballCancelJobInput!, config: AwsConfig): JSON
  createAddress(input: AwsSnowballCreateAddressInput!, config: AwsConfig): AwsSnowballCreateAddressOutput
  createCluster(input: AwsSnowballCreateClusterInput!, config: AwsConfig): AwsSnowballCreateClusterOutput
  createJob(input: AwsSnowballCreateJobInput, config: AwsConfig): AwsSnowballCreateJobOutput
  createLongTermPricing(input: AwsSnowballCreateLongTermPricingInput!, config: AwsConfig): AwsSnowballCreateLongTermPricingOutput
  createReturnShippingLabel(input: AwsSnowballCreateReturnShippingLabelInput!, config: AwsConfig): AwsSnowballCreateReturnShippingLabelOutput
  describeAddress(input: AwsSnowballDescribeAddressInput!, config: AwsConfig): AwsSnowballDescribeAddressOutput
  describeAddresses(input: AwsSnowballDescribeAddressesInput, config: AwsConfig): AwsSnowballDescribeAddressesOutput
  describeCluster(input: AwsSnowballDescribeClusterInput!, config: AwsConfig): AwsSnowballDescribeClusterOutput
  describeJob(input: AwsSnowballDescribeJobInput!, config: AwsConfig): AwsSnowballDescribeJobOutput
  describeReturnShippingLabel(input: AwsSnowballDescribeReturnShippingLabelInput!, config: AwsConfig): AwsSnowballDescribeReturnShippingLabelOutput
  getJobManifest(input: AwsSnowballGetJobManifestInput!, config: AwsConfig): AwsSnowballGetJobManifestOutput
  getJobUnlockCode(input: AwsSnowballGetJobUnlockCodeInput!, config: AwsConfig): AwsSnowballGetJobUnlockCodeOutput
  getSnowballUsage(input: JSON, config: AwsConfig): AwsSnowballGetSnowballUsageOutput
  getSoftwareUpdates(input: AwsSnowballGetSoftwareUpdatesInput!, config: AwsConfig): AwsSnowballGetSoftwareUpdatesOutput
  listClusterJobs(input: AwsSnowballListClusterJobsInput!, config: AwsConfig): AwsSnowballListClusterJobsOutput
  listClusters(input: AwsSnowballListClustersInput, config: AwsConfig): AwsSnowballListClustersOutput
  listCompatibleImages(input: AwsSnowballListCompatibleImagesInput, config: AwsConfig): AwsSnowballListCompatibleImagesOutput
  listJobs(input: AwsSnowballListJobsInput, config: AwsConfig): AwsSnowballListJobsOutput
  listLongTermPricing(input: AwsSnowballListLongTermPricingInput, config: AwsConfig): AwsSnowballListLongTermPricingOutput
  updateCluster(input: AwsSnowballUpdateClusterInput!, config: AwsConfig): JSON
  updateJob(input: AwsSnowballUpdateJobInput!, config: AwsConfig): JSON
  updateJobShipmentState(input: AwsSnowballUpdateJobShipmentStateInput!, config: AwsConfig): JSON
  updateLongTermPricing(input: AwsSnowballUpdateLongTermPricingInput!, config: AwsConfig): JSON
}

input AwsSnowballCancelClusterInput {
  ClusterId: String!
}

input AwsSnowballCancelJobInput {
  JobId: String!
}

type AwsSnowballCreateAddressOutput {
  AddressId: String
}

input AwsSnowballCreateAddressInput {
  Address: AwsSnowballS8Input!
}

input AwsSnowballS8Input {
  AddressId: String
  Name: String
  Company: String
  Street1: String
  Street2: String
  Street3: String
  City: String
  StateOrProvince: String
  PrefectureOrDistrict: String
  Landmark: String
  Country: String
  PostalCode: String
  PhoneNumber: String
  IsRestricted: Boolean
}

type AwsSnowballCreateClusterOutput {
  ClusterId: String
}

input AwsSnowballCreateClusterInput {
  JobType: String!
  Resources: AwsSnowballSfInput!
  OnDeviceServiceConfiguration: AwsSnowballSvInput
  Description: String
  AddressId: String!
  KmsKeyARN: String
  RoleARN: String!
  SnowballType: String!
  ShippingOption: String!
  Notification: AwsSnowballS13Input
  ForwardingAddressId: String
  TaxDocuments: AwsSnowballS17Input
  RemoteManagement: String
}

input AwsSnowballSfInput {
  S3Resources: [AwsSnowballSfS3ResourcesInput]
  LambdaResources: [AwsSnowballSfLambdaResourcesInput]
  Ec2AmiResources: [AwsSnowballSfEc2AmiResourcesInput]
}

input AwsSnowballSfS3ResourcesInput {
  BucketArn: String
  KeyRange: AwsSnowballSfS3ResourcesKeyRangeInput
  TargetOnDeviceServices: [AwsSnowballSfS3ResourcesTargetOnDeviceServicesInput]
}

input AwsSnowballSfS3ResourcesKeyRangeInput {
  BeginMarker: String
  EndMarker: String
}

input AwsSnowballSfS3ResourcesTargetOnDeviceServicesInput {
  ServiceName: String
  TransferOption: String
}

input AwsSnowballSfLambdaResourcesInput {
  LambdaArn: String
  EventTriggers: [AwsSnowballSfLambdaResourcesEventTriggersInput]
}

input AwsSnowballSfLambdaResourcesEventTriggersInput {
  EventResourceARN: String
}

input AwsSnowballSfEc2AmiResourcesInput {
  AmiId: String!
  SnowballAmiId: String
}

input AwsSnowballSvInput {
  NFSOnDeviceService: AwsSnowballSvNFSOnDeviceServiceInput
}

input AwsSnowballSvNFSOnDeviceServiceInput {
  StorageLimit: Int
  StorageUnit: String
}

input AwsSnowballS13Input {
  SnsTopicARN: String
  JobStatesToNotify: [String]
  NotifyAll: Boolean
}

input AwsSnowballS17Input {
  IND: AwsSnowballS17INDInput
}

input AwsSnowballS17INDInput {
  GSTIN: String
}

type AwsSnowballCreateJobOutput {
  JobId: String
}

input AwsSnowballCreateJobInput {
  JobType: String
  Resources: AwsSnowballSfInput
  OnDeviceServiceConfiguration: AwsSnowballSvInput
  Description: String
  AddressId: String
  KmsKeyARN: String
  RoleARN: String
  SnowballCapacityPreference: String
  ShippingOption: String
  Notification: AwsSnowballS13Input
  ClusterId: String
  SnowballType: String
  ForwardingAddressId: String
  TaxDocuments: AwsSnowballS17Input
  DeviceConfiguration: AwsSnowballS1eInput
  RemoteManagement: String
  LongTermPricingId: String
}

input AwsSnowballS1eInput {
  SnowconeDeviceConfiguration: AwsSnowballS1eSnowconeDeviceConfigurationInput
}

input AwsSnowballS1eSnowconeDeviceConfigurationInput {
  WirelessConnection: AwsSnowballS1eSnowconeDeviceConfigurationWirelessConnectionInput
}

input AwsSnowballS1eSnowconeDeviceConfigurationWirelessConnectionInput {
  IsWifiEnabled: Boolean
}

type AwsSnowballCreateLongTermPricingOutput {
  LongTermPricingId: String
}

input AwsSnowballCreateLongTermPricingInput {
  LongTermPricingType: String!
  IsLongTermPricingAutoRenew: Boolean
  SnowballType: String
}

type AwsSnowballCreateReturnShippingLabelOutput {
  Status: String
}

input AwsSnowballCreateReturnShippingLabelInput {
  JobId: String!
  ShippingOption: String
}

type AwsSnowballDescribeAddressOutput {
  Address: AwsSnowballS8
}

type AwsSnowballS8 {
  AddressId: String
  Name: String
  Company: String
  Street1: String
  Street2: String
  Street3: String
  City: String
  StateOrProvince: String
  PrefectureOrDistrict: String
  Landmark: String
  Country: String
  PostalCode: String
  PhoneNumber: String
  IsRestricted: Boolean
}

input AwsSnowballDescribeAddressInput {
  AddressId: String!
}

type AwsSnowballDescribeAddressesOutput {
  Addresses: [AwsSnowballS8]
  NextToken: String
}

input AwsSnowballDescribeAddressesInput {
  MaxResults: Int
  NextToken: String
}

type AwsSnowballDescribeClusterOutput {
  ClusterMetadata: AwsSnowballDescribeClusterOutputClusterMetadata
}

type AwsSnowballDescribeClusterOutputClusterMetadata {
  ClusterId: String
  Description: String
  KmsKeyARN: String
  RoleARN: String
  ClusterState: String
  JobType: String
  SnowballType: String
  CreationDate: Date
  Resources: AwsSnowballSf
  AddressId: String
  ShippingOption: String
  Notification: AwsSnowballS13
  ForwardingAddressId: String
  TaxDocuments: AwsSnowballS17
  OnDeviceServiceConfiguration: AwsSnowballSv
}

type AwsSnowballSf {
  S3Resources: [AwsSnowballSfS3Resources]
  LambdaResources: [AwsSnowballSfLambdaResources]
  Ec2AmiResources: [AwsSnowballSfEc2AmiResources]
}

type AwsSnowballSfS3Resources {
  BucketArn: String
  KeyRange: AwsSnowballSfS3ResourcesKeyRange
  TargetOnDeviceServices: [AwsSnowballSfS3ResourcesTargetOnDeviceServices]
}

type AwsSnowballSfS3ResourcesKeyRange {
  BeginMarker: String
  EndMarker: String
}

type AwsSnowballSfS3ResourcesTargetOnDeviceServices {
  ServiceName: String
  TransferOption: String
}

type AwsSnowballSfLambdaResources {
  LambdaArn: String
  EventTriggers: [AwsSnowballSfLambdaResourcesEventTriggers]
}

type AwsSnowballSfLambdaResourcesEventTriggers {
  EventResourceARN: String
}

type AwsSnowballSfEc2AmiResources {
  AmiId: String!
  SnowballAmiId: String
}

type AwsSnowballS13 {
  SnsTopicARN: String
  JobStatesToNotify: [String]
  NotifyAll: Boolean
}

type AwsSnowballS17 {
  IND: AwsSnowballS17IND
}

type AwsSnowballS17IND {
  GSTIN: String
}

type AwsSnowballSv {
  NFSOnDeviceService: AwsSnowballSvNFSOnDeviceService
}

type AwsSnowballSvNFSOnDeviceService {
  StorageLimit: Int
  StorageUnit: String
}

input AwsSnowballDescribeClusterInput {
  ClusterId: String!
}

type AwsSnowballDescribeJobOutput {
  JobMetadata: AwsSnowballS23
  SubJobMetadata: [AwsSnowballS23]
}

type AwsSnowballS23 {
  JobId: String
  JobState: String
  JobType: String
  SnowballType: String
  CreationDate: Date
  Resources: AwsSnowballSf
  Description: String
  KmsKeyARN: String
  RoleARN: String
  AddressId: String
  ShippingDetails: AwsSnowballS23ShippingDetails
  SnowballCapacityPreference: String
  Notification: AwsSnowballS13
  DataTransferProgress: AwsSnowballS23DataTransferProgress
  JobLogInfo: AwsSnowballS23JobLogInfo
  ClusterId: String
  ForwardingAddressId: String
  TaxDocuments: AwsSnowballS17
  DeviceConfiguration: AwsSnowballS1e
  RemoteManagement: String
  LongTermPricingId: String
  OnDeviceServiceConfiguration: AwsSnowballSv
}

type AwsSnowballS23ShippingDetails {
  ShippingOption: String
  InboundShipment: AwsSnowballS25
  OutboundShipment: AwsSnowballS25
}

type AwsSnowballS25 {
  Status: String
  TrackingNumber: String
}

type AwsSnowballS23DataTransferProgress {
  BytesTransferred: JSON
  ObjectsTransferred: JSON
  TotalBytes: JSON
  TotalObjects: JSON
}

type AwsSnowballS23JobLogInfo {
  JobCompletionReportURI: String
  JobSuccessLogURI: String
  JobFailureLogURI: String
}

type AwsSnowballS1e {
  SnowconeDeviceConfiguration: AwsSnowballS1eSnowconeDeviceConfiguration
}

type AwsSnowballS1eSnowconeDeviceConfiguration {
  WirelessConnection: AwsSnowballS1eSnowconeDeviceConfigurationWirelessConnection
}

type AwsSnowballS1eSnowconeDeviceConfigurationWirelessConnection {
  IsWifiEnabled: Boolean
}

input AwsSnowballDescribeJobInput {
  JobId: String!
}

type AwsSnowballDescribeReturnShippingLabelOutput {
  Status: String
  ExpirationDate: Date
}

input AwsSnowballDescribeReturnShippingLabelInput {
  JobId: String!
}

type AwsSnowballGetJobManifestOutput {
  ManifestURI: String
}

input AwsSnowballGetJobManifestInput {
  JobId: String!
}

type AwsSnowballGetJobUnlockCodeOutput {
  UnlockCode: String
}

input AwsSnowballGetJobUnlockCodeInput {
  JobId: String!
}

type AwsSnowballGetSnowballUsageOutput {
  SnowballLimit: Int
  SnowballsInUse: Int
}

type AwsSnowballGetSoftwareUpdatesOutput {
  UpdatesURI: String
}

input AwsSnowballGetSoftwareUpdatesInput {
  JobId: String!
}

type AwsSnowballListClusterJobsOutput {
  JobListEntries: [AwsSnowballS2n]
  NextToken: String
}

type AwsSnowballS2n {
  JobId: String
  JobState: String
  IsMaster: Boolean
  JobType: String
  SnowballType: String
  CreationDate: Date
  Description: String
}

input AwsSnowballListClusterJobsInput {
  ClusterId: String!
  MaxResults: Int
  NextToken: String
}

type AwsSnowballListClustersOutput {
  ClusterListEntries: [AwsSnowballListClustersOutputClusterListEntries]
  NextToken: String
}

type AwsSnowballListClustersOutputClusterListEntries {
  ClusterId: String
  ClusterState: String
  CreationDate: Date
  Description: String
}

input AwsSnowballListClustersInput {
  MaxResults: Int
  NextToken: String
}

type AwsSnowballListCompatibleImagesOutput {
  CompatibleImages: [AwsSnowballListCompatibleImagesOutputCompatibleImages]
  NextToken: String
}

type AwsSnowballListCompatibleImagesOutputCompatibleImages {
  AmiId: String
  Name: String
}

input AwsSnowballListCompatibleImagesInput {
  MaxResults: Int
  NextToken: String
}

type AwsSnowballListJobsOutput {
  JobListEntries: [AwsSnowballS2n]
  NextToken: String
}

input AwsSnowballListJobsInput {
  MaxResults: Int
  NextToken: String
}

type AwsSnowballListLongTermPricingOutput {
  LongTermPricingEntries: [AwsSnowballListLongTermPricingOutputLongTermPricingEntries]
  NextToken: String
}

type AwsSnowballListLongTermPricingOutputLongTermPricingEntries {
  LongTermPricingId: String
  LongTermPricingEndDate: Date
  LongTermPricingStartDate: Date
  LongTermPricingType: String
  CurrentActiveJob: String
  ReplacementJob: String
  IsLongTermPricingAutoRenew: Boolean
  LongTermPricingStatus: String
  SnowballType: String
  JobIds: [String]
}

input AwsSnowballListLongTermPricingInput {
  MaxResults: Int
  NextToken: String
}

input AwsSnowballUpdateClusterInput {
  ClusterId: String!
  RoleARN: String
  Description: String
  Resources: AwsSnowballSfInput
  OnDeviceServiceConfiguration: AwsSnowballSvInput
  AddressId: String
  ShippingOption: String
  Notification: AwsSnowballS13Input
  ForwardingAddressId: String
}

input AwsSnowballUpdateJobInput {
  JobId: String!
  RoleARN: String
  Notification: AwsSnowballS13Input
  Resources: AwsSnowballSfInput
  OnDeviceServiceConfiguration: AwsSnowballSvInput
  AddressId: String
  ShippingOption: String
  Description: String
  SnowballCapacityPreference: String
  ForwardingAddressId: String
}

input AwsSnowballUpdateJobShipmentStateInput {
  JobId: String!
  ShipmentState: String!
}

input AwsSnowballUpdateLongTermPricingInput {
  LongTermPricingId: String!
  ReplacementJob: String
  IsLongTermPricingAutoRenew: Boolean
}

"""AWS Step Functions (2016-11-23)"""
type AwsStepFunctions {
  createActivity(input: AwsStepFunctionsCreateActivityInput!, config: AwsConfig): AwsStepFunctionsCreateActivityOutput
  createStateMachine(input: AwsStepFunctionsCreateStateMachineInput!, config: AwsConfig): AwsStepFunctionsCreateStateMachineOutput
  deleteActivity(input: AwsStepFunctionsDeleteActivityInput!, config: AwsConfig): JSON
  deleteStateMachine(input: AwsStepFunctionsDeleteStateMachineInput!, config: AwsConfig): JSON
  describeActivity(input: AwsStepFunctionsDescribeActivityInput!, config: AwsConfig): AwsStepFunctionsDescribeActivityOutput
  describeExecution(input: AwsStepFunctionsDescribeExecutionInput!, config: AwsConfig): AwsStepFunctionsDescribeExecutionOutput
  describeStateMachine(input: AwsStepFunctionsDescribeStateMachineInput!, config: AwsConfig): AwsStepFunctionsDescribeStateMachineOutput
  describeStateMachineForExecution(input: AwsStepFunctionsDescribeStateMachineForExecutionInput!, config: AwsConfig): AwsStepFunctionsDescribeStateMachineForExecutionOutput
  getActivityTask(input: AwsStepFunctionsGetActivityTaskInput!, config: AwsConfig): AwsStepFunctionsGetActivityTaskOutput
  getExecutionHistory(input: AwsStepFunctionsGetExecutionHistoryInput!, config: AwsConfig): AwsStepFunctionsGetExecutionHistoryOutput
  listActivities(input: AwsStepFunctionsListActivitiesInput, config: AwsConfig): AwsStepFunctionsListActivitiesOutput
  listExecutions(input: AwsStepFunctionsListExecutionsInput!, config: AwsConfig): AwsStepFunctionsListExecutionsOutput
  listStateMachines(input: AwsStepFunctionsListStateMachinesInput, config: AwsConfig): AwsStepFunctionsListStateMachinesOutput
  listTagsForResource(input: AwsStepFunctionsListTagsForResourceInput!, config: AwsConfig): AwsStepFunctionsListTagsForResourceOutput
  sendTaskFailure(input: AwsStepFunctionsSendTaskFailureInput!, config: AwsConfig): JSON
  sendTaskHeartbeat(input: AwsStepFunctionsSendTaskHeartbeatInput!, config: AwsConfig): JSON
  sendTaskSuccess(input: AwsStepFunctionsSendTaskSuccessInput!, config: AwsConfig): JSON
  startExecution(input: AwsStepFunctionsStartExecutionInput!, config: AwsConfig): AwsStepFunctionsStartExecutionOutput
  startSyncExecution(input: AwsStepFunctionsStartSyncExecutionInput!, config: AwsConfig): AwsStepFunctionsStartSyncExecutionOutput
  stopExecution(input: AwsStepFunctionsStopExecutionInput!, config: AwsConfig): AwsStepFunctionsStopExecutionOutput
  tagResource(input: AwsStepFunctionsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsStepFunctionsUntagResourceInput!, config: AwsConfig): JSON
  updateStateMachine(input: AwsStepFunctionsUpdateStateMachineInput!, config: AwsConfig): AwsStepFunctionsUpdateStateMachineOutput
}

type AwsStepFunctionsCreateActivityOutput {
  activityArn: String!
  creationDate: Date!
}

input AwsStepFunctionsCreateActivityInput {
  name: String!
  tags: [AwsStepFunctionsS3Input]
}

input AwsStepFunctionsS3Input {
  key: String
  value: String
}

type AwsStepFunctionsCreateStateMachineOutput {
  stateMachineArn: String!
  creationDate: Date!
}

input AwsStepFunctionsCreateStateMachineInput {
  name: String!
  definition: String!
  roleArn: String!
  type: String
  loggingConfiguration: AwsStepFunctionsSdInput
  tags: [AwsStepFunctionsS3Input]
  tracingConfiguration: AwsStepFunctionsSjInput
}

input AwsStepFunctionsSdInput {
  level: String
  includeExecutionData: Boolean
  destinations: [AwsStepFunctionsSdDestinationsInput]
}

input AwsStepFunctionsSdDestinationsInput {
  cloudWatchLogsLogGroup: AwsStepFunctionsSdDestinationsCloudWatchLogsLogGroupInput
}

input AwsStepFunctionsSdDestinationsCloudWatchLogsLogGroupInput {
  logGroupArn: String
}

input AwsStepFunctionsSjInput {
  enabled: Boolean
}

input AwsStepFunctionsDeleteActivityInput {
  activityArn: String!
}

input AwsStepFunctionsDeleteStateMachineInput {
  stateMachineArn: String!
}

type AwsStepFunctionsDescribeActivityOutput {
  activityArn: String!
  name: String!
  creationDate: Date!
}

input AwsStepFunctionsDescribeActivityInput {
  activityArn: String!
}

type AwsStepFunctionsDescribeExecutionOutput {
  executionArn: String!
  stateMachineArn: String!
  name: String
  status: String!
  startDate: Date!
  stopDate: Date
  input: String
  inputDetails: AwsStepFunctionsSw
  output: String
  outputDetails: AwsStepFunctionsSw
  traceHeader: String
}

type AwsStepFunctionsSw {
  included: Boolean
}

input AwsStepFunctionsDescribeExecutionInput {
  executionArn: String!
}

type AwsStepFunctionsDescribeStateMachineOutput {
  stateMachineArn: String!
  name: String!
  status: String
  definition: String!
  roleArn: String!
  type: String!
  creationDate: Date!
  loggingConfiguration: AwsStepFunctionsSd
  tracingConfiguration: AwsStepFunctionsSj
}

type AwsStepFunctionsSd {
  level: String
  includeExecutionData: Boolean
  destinations: [AwsStepFunctionsSdDestinations]
}

type AwsStepFunctionsSdDestinations {
  cloudWatchLogsLogGroup: AwsStepFunctionsSdDestinationsCloudWatchLogsLogGroup
}

type AwsStepFunctionsSdDestinationsCloudWatchLogsLogGroup {
  logGroupArn: String
}

type AwsStepFunctionsSj {
  enabled: Boolean
}

input AwsStepFunctionsDescribeStateMachineInput {
  stateMachineArn: String!
}

type AwsStepFunctionsDescribeStateMachineForExecutionOutput {
  stateMachineArn: String!
  name: String!
  definition: String!
  roleArn: String!
  updateDate: Date!
  loggingConfiguration: AwsStepFunctionsSd
  tracingConfiguration: AwsStepFunctionsSj
}

input AwsStepFunctionsDescribeStateMachineForExecutionInput {
  executionArn: String!
}

type AwsStepFunctionsGetActivityTaskOutput {
  taskToken: String
  input: String
}

input AwsStepFunctionsGetActivityTaskInput {
  activityArn: String!
  workerName: String
}

type AwsStepFunctionsGetExecutionHistoryOutput {
  events: [AwsStepFunctionsGetExecutionHistoryOutputEvents]!
  nextToken: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEvents {
  timestamp: Date!
  type: String!
  id: JSON!
  previousEventId: JSON
  activityFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivityFailedEventDetails
  activityScheduleFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivityScheduleFailedEventDetails
  activityScheduledEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivityScheduledEventDetails
  activityStartedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivityStartedEventDetails
  activitySucceededEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivitySucceededEventDetails
  activityTimedOutEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsActivityTimedOutEventDetails
  taskFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskFailedEventDetails
  taskScheduledEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskScheduledEventDetails
  taskStartFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskStartFailedEventDetails
  taskStartedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskStartedEventDetails
  taskSubmitFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSubmitFailedEventDetails
  taskSubmittedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSubmittedEventDetails
  taskSucceededEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSucceededEventDetails
  taskTimedOutEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsTaskTimedOutEventDetails
  executionFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionFailedEventDetails
  executionStartedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionStartedEventDetails
  executionSucceededEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionSucceededEventDetails
  executionAbortedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionAbortedEventDetails
  executionTimedOutEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionTimedOutEventDetails
  mapStateStartedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsMapStateStartedEventDetails
  mapIterationStartedEventDetails: AwsStepFunctionsS2a
  mapIterationSucceededEventDetails: AwsStepFunctionsS2a
  mapIterationFailedEventDetails: AwsStepFunctionsS2a
  mapIterationAbortedEventDetails: AwsStepFunctionsS2a
  lambdaFunctionFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionFailedEventDetails
  lambdaFunctionScheduleFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionScheduleFailedEventDetails
  lambdaFunctionScheduledEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionScheduledEventDetails
  lambdaFunctionStartFailedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionStartFailedEventDetails
  lambdaFunctionSucceededEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionSucceededEventDetails
  lambdaFunctionTimedOutEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionTimedOutEventDetails
  stateEnteredEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsStateEnteredEventDetails
  stateExitedEventDetails: AwsStepFunctionsGetExecutionHistoryOutputEventsStateExitedEventDetails
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivityFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivityScheduleFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivityScheduledEventDetails {
  resource: String!
  input: String
  inputDetails: AwsStepFunctionsS1n
  timeoutInSeconds: JSON
  heartbeatInSeconds: JSON
}

type AwsStepFunctionsS1n {
  truncated: Boolean
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivityStartedEventDetails {
  workerName: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivitySucceededEventDetails {
  output: String
  outputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsActivityTimedOutEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskFailedEventDetails {
  resourceType: String!
  resource: String!
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskScheduledEventDetails {
  resourceType: String!
  resource: String!
  region: String!
  parameters: String!
  timeoutInSeconds: JSON
  heartbeatInSeconds: JSON
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskStartFailedEventDetails {
  resourceType: String!
  resource: String!
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskStartedEventDetails {
  resourceType: String!
  resource: String!
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSubmitFailedEventDetails {
  resourceType: String!
  resource: String!
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSubmittedEventDetails {
  resourceType: String!
  resource: String!
  output: String
  outputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskSucceededEventDetails {
  resourceType: String!
  resource: String!
  output: String
  outputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsTaskTimedOutEventDetails {
  resourceType: String!
  resource: String!
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionStartedEventDetails {
  input: String
  inputDetails: AwsStepFunctionsS1n
  roleArn: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionSucceededEventDetails {
  output: String
  outputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionAbortedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsExecutionTimedOutEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsMapStateStartedEventDetails {
  length: Int
}

type AwsStepFunctionsS2a {
  name: String
  index: Int
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionScheduleFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionScheduledEventDetails {
  resource: String!
  input: String
  inputDetails: AwsStepFunctionsS1n
  timeoutInSeconds: JSON
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionStartFailedEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionSucceededEventDetails {
  output: String
  outputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsLambdaFunctionTimedOutEventDetails {
  error: String
  cause: String
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsStateEnteredEventDetails {
  name: String!
  input: String
  inputDetails: AwsStepFunctionsS1n
}

type AwsStepFunctionsGetExecutionHistoryOutputEventsStateExitedEventDetails {
  name: String!
  output: String
  outputDetails: AwsStepFunctionsS1n
}

input AwsStepFunctionsGetExecutionHistoryInput {
  executionArn: String!
  maxResults: Int
  reverseOrder: Boolean
  nextToken: String
  includeExecutionData: Boolean
}

type AwsStepFunctionsListActivitiesOutput {
  activities: [AwsStepFunctionsListActivitiesOutputActivities]!
  nextToken: String
}

type AwsStepFunctionsListActivitiesOutputActivities {
  activityArn: String!
  name: String!
  creationDate: Date!
}

input AwsStepFunctionsListActivitiesInput {
  maxResults: Int
  nextToken: String
}

type AwsStepFunctionsListExecutionsOutput {
  executions: [AwsStepFunctionsListExecutionsOutputExecutions]!
  nextToken: String
}

type AwsStepFunctionsListExecutionsOutputExecutions {
  executionArn: String!
  stateMachineArn: String!
  name: String!
  status: String!
  startDate: Date!
  stopDate: Date
}

input AwsStepFunctionsListExecutionsInput {
  stateMachineArn: String!
  statusFilter: String
  maxResults: Int
  nextToken: String
}

type AwsStepFunctionsListStateMachinesOutput {
  stateMachines: [AwsStepFunctionsListStateMachinesOutputStateMachines]!
  nextToken: String
}

type AwsStepFunctionsListStateMachinesOutputStateMachines {
  stateMachineArn: String!
  name: String!
  type: String!
  creationDate: Date!
}

input AwsStepFunctionsListStateMachinesInput {
  maxResults: Int
  nextToken: String
}

type AwsStepFunctionsListTagsForResourceOutput {
  tags: [AwsStepFunctionsS3]
}

type AwsStepFunctionsS3 {
  key: String
  value: String
}

input AwsStepFunctionsListTagsForResourceInput {
  resourceArn: String!
}

input AwsStepFunctionsSendTaskFailureInput {
  taskToken: String!
  error: String
  cause: String
}

input AwsStepFunctionsSendTaskHeartbeatInput {
  taskToken: String!
}

input AwsStepFunctionsSendTaskSuccessInput {
  taskToken: String!
  output: String!
}

type AwsStepFunctionsStartExecutionOutput {
  executionArn: String!
  startDate: Date!
}

input AwsStepFunctionsStartExecutionInput {
  stateMachineArn: String!
  name: String
  input: String
  traceHeader: String
}

type AwsStepFunctionsStartSyncExecutionOutput {
  executionArn: String!
  stateMachineArn: String
  name: String
  startDate: Date!
  stopDate: Date!
  status: String!
  error: String
  cause: String
  input: String
  inputDetails: AwsStepFunctionsSw
  output: String
  outputDetails: AwsStepFunctionsSw
  traceHeader: String
  billingDetails: AwsStepFunctionsStartSyncExecutionOutputBillingDetails
}

type AwsStepFunctionsStartSyncExecutionOutputBillingDetails {
  billedMemoryUsedInMB: JSON
  billedDurationInMilliseconds: JSON
}

input AwsStepFunctionsStartSyncExecutionInput {
  stateMachineArn: String!
  name: String
  input: String
  traceHeader: String
}

type AwsStepFunctionsStopExecutionOutput {
  stopDate: Date!
}

input AwsStepFunctionsStopExecutionInput {
  executionArn: String!
  error: String
  cause: String
}

input AwsStepFunctionsTagResourceInput {
  resourceArn: String!
  tags: [AwsStepFunctionsS3Input]!
}

input AwsStepFunctionsUntagResourceInput {
  resourceArn: String!
  tagKeys: [String]!
}

type AwsStepFunctionsUpdateStateMachineOutput {
  updateDate: Date!
}

input AwsStepFunctionsUpdateStateMachineInput {
  stateMachineArn: String!
  definition: String
  roleArn: String
  loggingConfiguration: AwsStepFunctionsSdInput
  tracingConfiguration: AwsStepFunctionsSjInput
}

"""AWS Storage Gateway (2013-06-30)"""
type AwsStorageGateway {
  activateGateway(input: AwsStorageGatewayActivateGatewayInput!, config: AwsConfig): AwsStorageGatewayActivateGatewayOutput
  addCache(input: AwsStorageGatewayAddCacheInput!, config: AwsConfig): AwsStorageGatewayAddCacheOutput
  addTagsToResource(input: AwsStorageGatewayAddTagsToResourceInput!, config: AwsConfig): AwsStorageGatewayAddTagsToResourceOutput
  addUploadBuffer(input: AwsStorageGatewayAddUploadBufferInput!, config: AwsConfig): AwsStorageGatewayAddUploadBufferOutput
  addWorkingStorage(input: AwsStorageGatewayAddWorkingStorageInput!, config: AwsConfig): AwsStorageGatewayAddWorkingStorageOutput
  assignTapePool(input: AwsStorageGatewayAssignTapePoolInput!, config: AwsConfig): AwsStorageGatewayAssignTapePoolOutput
  associateFileSystem(input: AwsStorageGatewayAssociateFileSystemInput!, config: AwsConfig): AwsStorageGatewayAssociateFileSystemOutput
  attachVolume(input: AwsStorageGatewayAttachVolumeInput!, config: AwsConfig): AwsStorageGatewayAttachVolumeOutput
  cancelArchival(input: AwsStorageGatewayCancelArchivalInput!, config: AwsConfig): AwsStorageGatewayCancelArchivalOutput
  cancelRetrieval(input: AwsStorageGatewayCancelRetrievalInput!, config: AwsConfig): AwsStorageGatewayCancelRetrievalOutput
  createCachediSCSIVolume(input: AwsStorageGatewayCreateCachediSCSIVolumeInput!, config: AwsConfig): AwsStorageGatewayCreateCachediSCSIVolumeOutput
  createNFSFileShare(input: AwsStorageGatewayCreateNFSFileShareInput!, config: AwsConfig): AwsStorageGatewayCreateNFSFileShareOutput
  createSMBFileShare(input: AwsStorageGatewayCreateSMBFileShareInput!, config: AwsConfig): AwsStorageGatewayCreateSMBFileShareOutput
  createSnapshot(input: AwsStorageGatewayCreateSnapshotInput!, config: AwsConfig): AwsStorageGatewayCreateSnapshotOutput
  createSnapshotFromVolumeRecoveryPoint(input: AwsStorageGatewayCreateSnapshotFromVolumeRecoveryPointInput!, config: AwsConfig): AwsStorageGatewayCreateSnapshotFromVolumeRecoveryPointOutput
  createStorediSCSIVolume(input: AwsStorageGatewayCreateStorediSCSIVolumeInput!, config: AwsConfig): AwsStorageGatewayCreateStorediSCSIVolumeOutput
  createTapePool(input: AwsStorageGatewayCreateTapePoolInput!, config: AwsConfig): AwsStorageGatewayCreateTapePoolOutput
  createTapeWithBarcode(input: AwsStorageGatewayCreateTapeWithBarcodeInput!, config: AwsConfig): AwsStorageGatewayCreateTapeWithBarcodeOutput
  createTapes(input: AwsStorageGatewayCreateTapesInput!, config: AwsConfig): AwsStorageGatewayCreateTapesOutput
  deleteAutomaticTapeCreationPolicy(input: AwsStorageGatewayDeleteAutomaticTapeCreationPolicyInput!, config: AwsConfig): AwsStorageGatewayDeleteAutomaticTapeCreationPolicyOutput
  deleteBandwidthRateLimit(input: AwsStorageGatewayDeleteBandwidthRateLimitInput!, config: AwsConfig): AwsStorageGatewayDeleteBandwidthRateLimitOutput
  deleteChapCredentials(input: AwsStorageGatewayDeleteChapCredentialsInput!, config: AwsConfig): AwsStorageGatewayDeleteChapCredentialsOutput
  deleteFileShare(input: AwsStorageGatewayDeleteFileShareInput!, config: AwsConfig): AwsStorageGatewayDeleteFileShareOutput
  deleteGateway(input: AwsStorageGatewayDeleteGatewayInput!, config: AwsConfig): AwsStorageGatewayDeleteGatewayOutput
  deleteSnapshotSchedule(input: AwsStorageGatewayDeleteSnapshotScheduleInput!, config: AwsConfig): AwsStorageGatewayDeleteSnapshotScheduleOutput
  deleteTape(input: AwsStorageGatewayDeleteTapeInput!, config: AwsConfig): AwsStorageGatewayDeleteTapeOutput
  deleteTapeArchive(input: AwsStorageGatewayDeleteTapeArchiveInput!, config: AwsConfig): AwsStorageGatewayDeleteTapeArchiveOutput
  deleteTapePool(input: AwsStorageGatewayDeleteTapePoolInput!, config: AwsConfig): AwsStorageGatewayDeleteTapePoolOutput
  deleteVolume(input: AwsStorageGatewayDeleteVolumeInput!, config: AwsConfig): AwsStorageGatewayDeleteVolumeOutput
  describeAvailabilityMonitorTest(input: AwsStorageGatewayDescribeAvailabilityMonitorTestInput!, config: AwsConfig): AwsStorageGatewayDescribeAvailabilityMonitorTestOutput
  describeBandwidthRateLimit(input: AwsStorageGatewayDescribeBandwidthRateLimitInput!, config: AwsConfig): AwsStorageGatewayDescribeBandwidthRateLimitOutput
  describeBandwidthRateLimitSchedule(input: AwsStorageGatewayDescribeBandwidthRateLimitScheduleInput!, config: AwsConfig): AwsStorageGatewayDescribeBandwidthRateLimitScheduleOutput
  describeCache(input: AwsStorageGatewayDescribeCacheInput!, config: AwsConfig): AwsStorageGatewayDescribeCacheOutput
  describeCachediSCSIVolumes(input: AwsStorageGatewayDescribeCachediSCSIVolumesInput!, config: AwsConfig): AwsStorageGatewayDescribeCachediSCSIVolumesOutput
  describeChapCredentials(input: AwsStorageGatewayDescribeChapCredentialsInput!, config: AwsConfig): AwsStorageGatewayDescribeChapCredentialsOutput
  describeFileSystemAssociations(input: AwsStorageGatewayDescribeFileSystemAssociationsInput!, config: AwsConfig): AwsStorageGatewayDescribeFileSystemAssociationsOutput
  describeGatewayInformation(input: AwsStorageGatewayDescribeGatewayInformationInput!, config: AwsConfig): AwsStorageGatewayDescribeGatewayInformationOutput
  describeMaintenanceStartTime(input: AwsStorageGatewayDescribeMaintenanceStartTimeInput!, config: AwsConfig): AwsStorageGatewayDescribeMaintenanceStartTimeOutput
  describeNFSFileShares(input: AwsStorageGatewayDescribeNFSFileSharesInput!, config: AwsConfig): AwsStorageGatewayDescribeNFSFileSharesOutput
  describeSMBFileShares(input: AwsStorageGatewayDescribeSMBFileSharesInput!, config: AwsConfig): AwsStorageGatewayDescribeSMBFileSharesOutput
  describeSMBSettings(input: AwsStorageGatewayDescribeSMBSettingsInput!, config: AwsConfig): AwsStorageGatewayDescribeSMBSettingsOutput
  describeSnapshotSchedule(input: AwsStorageGatewayDescribeSnapshotScheduleInput!, config: AwsConfig): AwsStorageGatewayDescribeSnapshotScheduleOutput
  describeStorediSCSIVolumes(input: AwsStorageGatewayDescribeStorediSCSIVolumesInput!, config: AwsConfig): AwsStorageGatewayDescribeStorediSCSIVolumesOutput
  describeTapeArchives(input: AwsStorageGatewayDescribeTapeArchivesInput, config: AwsConfig): AwsStorageGatewayDescribeTapeArchivesOutput
  describeTapeRecoveryPoints(input: AwsStorageGatewayDescribeTapeRecoveryPointsInput!, config: AwsConfig): AwsStorageGatewayDescribeTapeRecoveryPointsOutput
  describeTapes(input: AwsStorageGatewayDescribeTapesInput!, config: AwsConfig): AwsStorageGatewayDescribeTapesOutput
  describeUploadBuffer(input: AwsStorageGatewayDescribeUploadBufferInput!, config: AwsConfig): AwsStorageGatewayDescribeUploadBufferOutput
  describeVTLDevices(input: AwsStorageGatewayDescribeVTLDevicesInput!, config: AwsConfig): AwsStorageGatewayDescribeVTLDevicesOutput
  describeWorkingStorage(input: AwsStorageGatewayDescribeWorkingStorageInput!, config: AwsConfig): AwsStorageGatewayDescribeWorkingStorageOutput
  detachVolume(input: AwsStorageGatewayDetachVolumeInput!, config: AwsConfig): AwsStorageGatewayDetachVolumeOutput
  disableGateway(input: AwsStorageGatewayDisableGatewayInput!, config: AwsConfig): AwsStorageGatewayDisableGatewayOutput
  disassociateFileSystem(input: AwsStorageGatewayDisassociateFileSystemInput!, config: AwsConfig): AwsStorageGatewayDisassociateFileSystemOutput
  joinDomain(input: AwsStorageGatewayJoinDomainInput!, config: AwsConfig): AwsStorageGatewayJoinDomainOutput
  listAutomaticTapeCreationPolicies(input: AwsStorageGatewayListAutomaticTapeCreationPoliciesInput, config: AwsConfig): AwsStorageGatewayListAutomaticTapeCreationPoliciesOutput
  listFileShares(input: AwsStorageGatewayListFileSharesInput, config: AwsConfig): AwsStorageGatewayListFileSharesOutput
  listFileSystemAssociations(input: AwsStorageGatewayListFileSystemAssociationsInput, config: AwsConfig): AwsStorageGatewayListFileSystemAssociationsOutput
  listGateways(input: AwsStorageGatewayListGatewaysInput, config: AwsConfig): AwsStorageGatewayListGatewaysOutput
  listLocalDisks(input: AwsStorageGatewayListLocalDisksInput!, config: AwsConfig): AwsStorageGatewayListLocalDisksOutput
  listTagsForResource(input: AwsStorageGatewayListTagsForResourceInput!, config: AwsConfig): AwsStorageGatewayListTagsForResourceOutput
  listTapePools(input: AwsStorageGatewayListTapePoolsInput, config: AwsConfig): AwsStorageGatewayListTapePoolsOutput
  listTapes(input: AwsStorageGatewayListTapesInput, config: AwsConfig): AwsStorageGatewayListTapesOutput
  listVolumeInitiators(input: AwsStorageGatewayListVolumeInitiatorsInput!, config: AwsConfig): AwsStorageGatewayListVolumeInitiatorsOutput
  listVolumeRecoveryPoints(input: AwsStorageGatewayListVolumeRecoveryPointsInput!, config: AwsConfig): AwsStorageGatewayListVolumeRecoveryPointsOutput
  listVolumes(input: AwsStorageGatewayListVolumesInput, config: AwsConfig): AwsStorageGatewayListVolumesOutput
  notifyWhenUploaded(input: AwsStorageGatewayNotifyWhenUploadedInput!, config: AwsConfig): AwsStorageGatewayNotifyWhenUploadedOutput
  refreshCache(input: AwsStorageGatewayRefreshCacheInput!, config: AwsConfig): AwsStorageGatewayRefreshCacheOutput
  removeTagsFromResource(input: AwsStorageGatewayRemoveTagsFromResourceInput!, config: AwsConfig): AwsStorageGatewayRemoveTagsFromResourceOutput
  resetCache(input: AwsStorageGatewayResetCacheInput!, config: AwsConfig): AwsStorageGatewayResetCacheOutput
  retrieveTapeArchive(input: AwsStorageGatewayRetrieveTapeArchiveInput!, config: AwsConfig): AwsStorageGatewayRetrieveTapeArchiveOutput
  retrieveTapeRecoveryPoint(input: AwsStorageGatewayRetrieveTapeRecoveryPointInput!, config: AwsConfig): AwsStorageGatewayRetrieveTapeRecoveryPointOutput
  setLocalConsolePassword(input: AwsStorageGatewaySetLocalConsolePasswordInput!, config: AwsConfig): AwsStorageGatewaySetLocalConsolePasswordOutput
  setSMBGuestPassword(input: AwsStorageGatewaySetSMBGuestPasswordInput!, config: AwsConfig): AwsStorageGatewaySetSMBGuestPasswordOutput
  shutdownGateway(input: AwsStorageGatewayShutdownGatewayInput!, config: AwsConfig): AwsStorageGatewayShutdownGatewayOutput
  startAvailabilityMonitorTest(input: AwsStorageGatewayStartAvailabilityMonitorTestInput!, config: AwsConfig): AwsStorageGatewayStartAvailabilityMonitorTestOutput
  startGateway(input: AwsStorageGatewayStartGatewayInput!, config: AwsConfig): AwsStorageGatewayStartGatewayOutput
  updateAutomaticTapeCreationPolicy(input: AwsStorageGatewayUpdateAutomaticTapeCreationPolicyInput!, config: AwsConfig): AwsStorageGatewayUpdateAutomaticTapeCreationPolicyOutput
  updateBandwidthRateLimit(input: AwsStorageGatewayUpdateBandwidthRateLimitInput!, config: AwsConfig): AwsStorageGatewayUpdateBandwidthRateLimitOutput
  updateBandwidthRateLimitSchedule(input: AwsStorageGatewayUpdateBandwidthRateLimitScheduleInput!, config: AwsConfig): AwsStorageGatewayUpdateBandwidthRateLimitScheduleOutput
  updateChapCredentials(input: AwsStorageGatewayUpdateChapCredentialsInput!, config: AwsConfig): AwsStorageGatewayUpdateChapCredentialsOutput
  updateFileSystemAssociation(input: AwsStorageGatewayUpdateFileSystemAssociationInput!, config: AwsConfig): AwsStorageGatewayUpdateFileSystemAssociationOutput
  updateGatewayInformation(input: AwsStorageGatewayUpdateGatewayInformationInput!, config: AwsConfig): AwsStorageGatewayUpdateGatewayInformationOutput
  updateGatewaySoftwareNow(input: AwsStorageGatewayUpdateGatewaySoftwareNowInput!, config: AwsConfig): AwsStorageGatewayUpdateGatewaySoftwareNowOutput
  updateMaintenanceStartTime(input: AwsStorageGatewayUpdateMaintenanceStartTimeInput!, config: AwsConfig): AwsStorageGatewayUpdateMaintenanceStartTimeOutput
  updateNFSFileShare(input: AwsStorageGatewayUpdateNFSFileShareInput!, config: AwsConfig): AwsStorageGatewayUpdateNFSFileShareOutput
  updateSMBFileShare(input: AwsStorageGatewayUpdateSMBFileShareInput!, config: AwsConfig): AwsStorageGatewayUpdateSMBFileShareOutput
  updateSMBFileShareVisibility(input: AwsStorageGatewayUpdateSMBFileShareVisibilityInput!, config: AwsConfig): AwsStorageGatewayUpdateSMBFileShareVisibilityOutput
  updateSMBSecurityStrategy(input: AwsStorageGatewayUpdateSMBSecurityStrategyInput!, config: AwsConfig): AwsStorageGatewayUpdateSMBSecurityStrategyOutput
  updateSnapshotSchedule(input: AwsStorageGatewayUpdateSnapshotScheduleInput!, config: AwsConfig): AwsStorageGatewayUpdateSnapshotScheduleOutput
  updateVTLDeviceType(input: AwsStorageGatewayUpdateVTLDeviceTypeInput!, config: AwsConfig): AwsStorageGatewayUpdateVTLDeviceTypeOutput
}

type AwsStorageGatewayActivateGatewayOutput {
  GatewayARN: String
}

input AwsStorageGatewayActivateGatewayInput {
  ActivationKey: String!
  GatewayName: String!
  GatewayTimezone: String!
  GatewayRegion: String!
  GatewayType: String
  TapeDriveType: String
  MediumChangerType: String
  Tags: [AwsStorageGatewayS9Input]
}

input AwsStorageGatewayS9Input {
  Key: String!
  Value: String!
}

type AwsStorageGatewayAddCacheOutput {
  GatewayARN: String
}

input AwsStorageGatewayAddCacheInput {
  GatewayARN: String!
  DiskIds: [String]!
}

type AwsStorageGatewayAddTagsToResourceOutput {
  ResourceARN: String
}

input AwsStorageGatewayAddTagsToResourceInput {
  ResourceARN: String!
  Tags: [AwsStorageGatewayS9Input]!
}

type AwsStorageGatewayAddUploadBufferOutput {
  GatewayARN: String
}

input AwsStorageGatewayAddUploadBufferInput {
  GatewayARN: String!
  DiskIds: [String]!
}

type AwsStorageGatewayAddWorkingStorageOutput {
  GatewayARN: String
}

input AwsStorageGatewayAddWorkingStorageInput {
  GatewayARN: String!
  DiskIds: [String]!
}

type AwsStorageGatewayAssignTapePoolOutput {
  TapeARN: String
}

input AwsStorageGatewayAssignTapePoolInput {
  TapeARN: String!
  PoolId: String!
  BypassGovernanceRetention: Boolean
}

type AwsStorageGatewayAssociateFileSystemOutput {
  FileSystemAssociationARN: String
}

input AwsStorageGatewayAssociateFileSystemInput {
  UserName: String!
  Password: String!
  ClientToken: String!
  GatewayARN: String!
  LocationARN: String!
  Tags: [AwsStorageGatewayS9Input]
  AuditDestinationARN: String
  CacheAttributes: AwsStorageGatewayS11Input
}

input AwsStorageGatewayS11Input {
  CacheStaleTimeoutInSeconds: Int
}

type AwsStorageGatewayAttachVolumeOutput {
  VolumeARN: String
  TargetARN: String
}

input AwsStorageGatewayAttachVolumeInput {
  GatewayARN: String!
  TargetName: String
  VolumeARN: String!
  NetworkInterfaceId: String!
  DiskId: String
}

type AwsStorageGatewayCancelArchivalOutput {
  TapeARN: String
}

input AwsStorageGatewayCancelArchivalInput {
  GatewayARN: String!
  TapeARN: String!
}

type AwsStorageGatewayCancelRetrievalOutput {
  TapeARN: String
}

input AwsStorageGatewayCancelRetrievalInput {
  GatewayARN: String!
  TapeARN: String!
}

type AwsStorageGatewayCreateCachediSCSIVolumeOutput {
  VolumeARN: String
  TargetARN: String
}

input AwsStorageGatewayCreateCachediSCSIVolumeInput {
  GatewayARN: String!
  VolumeSizeInBytes: JSON!
  SnapshotId: String
  TargetName: String!
  SourceVolumeARN: String
  NetworkInterfaceId: String!
  ClientToken: String!
  KMSEncrypted: Boolean
  KMSKey: String
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateNFSFileShareOutput {
  FileShareARN: String
}

input AwsStorageGatewayCreateNFSFileShareInput {
  ClientToken: String!
  NFSFileShareDefaults: AwsStorageGatewayS1mInput
  GatewayARN: String!
  KMSEncrypted: Boolean
  KMSKey: String
  Role: String!
  LocationARN: String!
  DefaultStorageClass: String
  ObjectACL: String
  ClientList: [String]
  Squash: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  Tags: [AwsStorageGatewayS9Input]
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11Input
  NotificationPolicy: String
}

input AwsStorageGatewayS1mInput {
  FileMode: String
  DirectoryMode: String
  GroupId: JSON
  OwnerId: JSON
}

type AwsStorageGatewayCreateSMBFileShareOutput {
  FileShareARN: String
}

input AwsStorageGatewayCreateSMBFileShareInput {
  ClientToken: String!
  GatewayARN: String!
  KMSEncrypted: Boolean
  KMSKey: String
  Role: String!
  LocationARN: String!
  DefaultStorageClass: String
  ObjectACL: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  SMBACLEnabled: Boolean
  AccessBasedEnumeration: Boolean
  AdminUserList: [String]
  ValidUserList: [String]
  InvalidUserList: [String]
  AuditDestinationARN: String
  Authentication: String
  CaseSensitivity: String
  Tags: [AwsStorageGatewayS9Input]
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11Input
  NotificationPolicy: String
}

type AwsStorageGatewayCreateSnapshotOutput {
  VolumeARN: String
  SnapshotId: String
}

input AwsStorageGatewayCreateSnapshotInput {
  VolumeARN: String!
  SnapshotDescription: String!
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateSnapshotFromVolumeRecoveryPointOutput {
  SnapshotId: String
  VolumeARN: String
  VolumeRecoveryPointTime: String
}

input AwsStorageGatewayCreateSnapshotFromVolumeRecoveryPointInput {
  VolumeARN: String!
  SnapshotDescription: String!
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateStorediSCSIVolumeOutput {
  VolumeARN: String
  VolumeSizeInBytes: JSON
  TargetARN: String
}

input AwsStorageGatewayCreateStorediSCSIVolumeInput {
  GatewayARN: String!
  DiskId: String!
  SnapshotId: String
  PreserveExistingData: Boolean!
  TargetName: String!
  NetworkInterfaceId: String!
  KMSEncrypted: Boolean
  KMSKey: String
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateTapePoolOutput {
  PoolARN: String
}

input AwsStorageGatewayCreateTapePoolInput {
  PoolName: String!
  StorageClass: String!
  RetentionLockType: String
  RetentionLockTimeInDays: Int
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateTapeWithBarcodeOutput {
  TapeARN: String
}

input AwsStorageGatewayCreateTapeWithBarcodeInput {
  GatewayARN: String!
  TapeSizeInBytes: JSON!
  TapeBarcode: String!
  KMSEncrypted: Boolean
  KMSKey: String
  PoolId: String
  Worm: Boolean
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayCreateTapesOutput {
  TapeARNs: [String]
}

input AwsStorageGatewayCreateTapesInput {
  GatewayARN: String!
  TapeSizeInBytes: JSON!
  ClientToken: String!
  NumTapesToCreate: Int!
  TapeBarcodePrefix: String!
  KMSEncrypted: Boolean
  KMSKey: String
  PoolId: String
  Worm: Boolean
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayDeleteAutomaticTapeCreationPolicyOutput {
  GatewayARN: String
}

input AwsStorageGatewayDeleteAutomaticTapeCreationPolicyInput {
  GatewayARN: String!
}

type AwsStorageGatewayDeleteBandwidthRateLimitOutput {
  GatewayARN: String
}

input AwsStorageGatewayDeleteBandwidthRateLimitInput {
  GatewayARN: String!
  BandwidthType: String!
}

type AwsStorageGatewayDeleteChapCredentialsOutput {
  TargetARN: String
  InitiatorName: String
}

input AwsStorageGatewayDeleteChapCredentialsInput {
  TargetARN: String!
  InitiatorName: String!
}

type AwsStorageGatewayDeleteFileShareOutput {
  FileShareARN: String
}

input AwsStorageGatewayDeleteFileShareInput {
  FileShareARN: String!
  ForceDelete: Boolean
}

type AwsStorageGatewayDeleteGatewayOutput {
  GatewayARN: String
}

input AwsStorageGatewayDeleteGatewayInput {
  GatewayARN: String!
}

type AwsStorageGatewayDeleteSnapshotScheduleOutput {
  VolumeARN: String
}

input AwsStorageGatewayDeleteSnapshotScheduleInput {
  VolumeARN: String!
}

type AwsStorageGatewayDeleteTapeOutput {
  TapeARN: String
}

input AwsStorageGatewayDeleteTapeInput {
  GatewayARN: String!
  TapeARN: String!
  BypassGovernanceRetention: Boolean
}

type AwsStorageGatewayDeleteTapeArchiveOutput {
  TapeARN: String
}

input AwsStorageGatewayDeleteTapeArchiveInput {
  TapeARN: String!
  BypassGovernanceRetention: Boolean
}

type AwsStorageGatewayDeleteTapePoolOutput {
  PoolARN: String
}

input AwsStorageGatewayDeleteTapePoolInput {
  PoolARN: String!
}

type AwsStorageGatewayDeleteVolumeOutput {
  VolumeARN: String
}

input AwsStorageGatewayDeleteVolumeInput {
  VolumeARN: String!
}

type AwsStorageGatewayDescribeAvailabilityMonitorTestOutput {
  GatewayARN: String
  Status: String
  StartTime: Date
}

input AwsStorageGatewayDescribeAvailabilityMonitorTestInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeBandwidthRateLimitOutput {
  GatewayARN: String
  AverageUploadRateLimitInBitsPerSec: JSON
  AverageDownloadRateLimitInBitsPerSec: JSON
}

input AwsStorageGatewayDescribeBandwidthRateLimitInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeBandwidthRateLimitScheduleOutput {
  GatewayARN: String
  BandwidthRateLimitIntervals: [AwsStorageGatewayS3q]
}

type AwsStorageGatewayS3q {
  StartHourOfDay: Int!
  StartMinuteOfHour: Int!
  EndHourOfDay: Int!
  EndMinuteOfHour: Int!
  DaysOfWeek: [Int]!
  AverageUploadRateLimitInBitsPerSec: JSON
  AverageDownloadRateLimitInBitsPerSec: JSON
}

input AwsStorageGatewayDescribeBandwidthRateLimitScheduleInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeCacheOutput {
  GatewayARN: String
  DiskIds: [String]
  CacheAllocatedInBytes: JSON
  CacheUsedPercentage: JSON
  CacheDirtyPercentage: JSON
  CacheHitPercentage: JSON
  CacheMissPercentage: JSON
}

input AwsStorageGatewayDescribeCacheInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeCachediSCSIVolumesOutput {
  CachediSCSIVolumes: [AwsStorageGatewayDescribeCachediSCSIVolumesOutputCachediSCSIVolumes]
}

type AwsStorageGatewayDescribeCachediSCSIVolumesOutputCachediSCSIVolumes {
  VolumeARN: String
  VolumeId: String
  VolumeType: String
  VolumeStatus: String
  VolumeAttachmentStatus: String
  VolumeSizeInBytes: JSON
  VolumeProgress: JSON
  SourceSnapshotId: String
  VolumeiSCSIAttributes: AwsStorageGatewayS49
  CreatedDate: Date
  VolumeUsedInBytes: JSON
  KMSKey: String
  TargetName: String
}

type AwsStorageGatewayS49 {
  TargetARN: String
  NetworkInterfaceId: String
  NetworkInterfacePort: Int
  LunNumber: Int
  ChapEnabled: Boolean
}

input AwsStorageGatewayDescribeCachediSCSIVolumesInput {
  VolumeARNs: [String]!
}

type AwsStorageGatewayDescribeChapCredentialsOutput {
  ChapCredentials: [AwsStorageGatewayDescribeChapCredentialsOutputChapCredentials]
}

type AwsStorageGatewayDescribeChapCredentialsOutputChapCredentials {
  TargetARN: String
  SecretToAuthenticateInitiator: String
  InitiatorName: String
  SecretToAuthenticateTarget: String
}

input AwsStorageGatewayDescribeChapCredentialsInput {
  TargetARN: String!
}

type AwsStorageGatewayDescribeFileSystemAssociationsOutput {
  FileSystemAssociationInfoList: [AwsStorageGatewayDescribeFileSystemAssociationsOutputFileSystemAssociationInfoList]
}

type AwsStorageGatewayDescribeFileSystemAssociationsOutputFileSystemAssociationInfoList {
  FileSystemAssociationARN: String
  LocationARN: String
  FileSystemAssociationStatus: String
  AuditDestinationARN: String
  GatewayARN: String
  Tags: [AwsStorageGatewayS9]
  CacheAttributes: AwsStorageGatewayS11
}

type AwsStorageGatewayS9 {
  Key: String!
  Value: String!
}

type AwsStorageGatewayS11 {
  CacheStaleTimeoutInSeconds: Int
}

input AwsStorageGatewayDescribeFileSystemAssociationsInput {
  FileSystemAssociationARNList: [String]!
}

type AwsStorageGatewayDescribeGatewayInformationOutput {
  GatewayARN: String
  GatewayId: String
  GatewayName: String
  GatewayTimezone: String
  GatewayState: String
  GatewayNetworkInterfaces: [AwsStorageGatewayDescribeGatewayInformationOutputGatewayNetworkInterfaces]
  GatewayType: String
  NextUpdateAvailabilityDate: String
  LastSoftwareUpdate: String
  Ec2InstanceId: String
  Ec2InstanceRegion: String
  Tags: [AwsStorageGatewayS9]
  VPCEndpoint: String
  CloudWatchLogGroupARN: String
  HostEnvironment: String
  EndpointType: String
  SoftwareUpdatesEndDate: String
  DeprecationDate: String
}

type AwsStorageGatewayDescribeGatewayInformationOutputGatewayNetworkInterfaces {
  Ipv4Address: String
  MacAddress: String
  Ipv6Address: String
}

input AwsStorageGatewayDescribeGatewayInformationInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeMaintenanceStartTimeOutput {
  GatewayARN: String
  HourOfDay: Int
  MinuteOfHour: Int
  DayOfWeek: Int
  DayOfMonth: Int
  Timezone: String
}

input AwsStorageGatewayDescribeMaintenanceStartTimeInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeNFSFileSharesOutput {
  NFSFileShareInfoList: [AwsStorageGatewayDescribeNFSFileSharesOutputNFSFileShareInfoList]
}

type AwsStorageGatewayDescribeNFSFileSharesOutputNFSFileShareInfoList {
  NFSFileShareDefaults: AwsStorageGatewayS1m
  FileShareARN: String
  FileShareId: String
  FileShareStatus: String
  GatewayARN: String
  KMSEncrypted: Boolean
  KMSKey: String
  Path: String
  Role: String
  LocationARN: String
  DefaultStorageClass: String
  ObjectACL: String
  ClientList: [String]
  Squash: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  Tags: [AwsStorageGatewayS9]
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11
  NotificationPolicy: String
}

type AwsStorageGatewayS1m {
  FileMode: String
  DirectoryMode: String
  GroupId: JSON
  OwnerId: JSON
}

input AwsStorageGatewayDescribeNFSFileSharesInput {
  FileShareARNList: [String]!
}

type AwsStorageGatewayDescribeSMBFileSharesOutput {
  SMBFileShareInfoList: [AwsStorageGatewayDescribeSMBFileSharesOutputSMBFileShareInfoList]
}

type AwsStorageGatewayDescribeSMBFileSharesOutputSMBFileShareInfoList {
  FileShareARN: String
  FileShareId: String
  FileShareStatus: String
  GatewayARN: String
  KMSEncrypted: Boolean
  KMSKey: String
  Path: String
  Role: String
  LocationARN: String
  DefaultStorageClass: String
  ObjectACL: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  SMBACLEnabled: Boolean
  AccessBasedEnumeration: Boolean
  AdminUserList: [String]
  ValidUserList: [String]
  InvalidUserList: [String]
  AuditDestinationARN: String
  Authentication: String
  CaseSensitivity: String
  Tags: [AwsStorageGatewayS9]
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11
  NotificationPolicy: String
}

input AwsStorageGatewayDescribeSMBFileSharesInput {
  FileShareARNList: [String]!
}

type AwsStorageGatewayDescribeSMBSettingsOutput {
  GatewayARN: String
  DomainName: String
  ActiveDirectoryStatus: String
  SMBGuestPasswordSet: Boolean
  SMBSecurityStrategy: String
  FileSharesVisible: Boolean
}

input AwsStorageGatewayDescribeSMBSettingsInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeSnapshotScheduleOutput {
  VolumeARN: String
  StartAt: Int
  RecurrenceInHours: Int
  Description: String
  Timezone: String
  Tags: [AwsStorageGatewayS9]
}

input AwsStorageGatewayDescribeSnapshotScheduleInput {
  VolumeARN: String!
}

type AwsStorageGatewayDescribeStorediSCSIVolumesOutput {
  StorediSCSIVolumes: [AwsStorageGatewayDescribeStorediSCSIVolumesOutputStorediSCSIVolumes]
}

type AwsStorageGatewayDescribeStorediSCSIVolumesOutputStorediSCSIVolumes {
  VolumeARN: String
  VolumeId: String
  VolumeType: String
  VolumeStatus: String
  VolumeAttachmentStatus: String
  VolumeSizeInBytes: JSON
  VolumeProgress: JSON
  VolumeDiskId: String
  SourceSnapshotId: String
  PreservedExistingData: Boolean
  VolumeiSCSIAttributes: AwsStorageGatewayS49
  CreatedDate: Date
  VolumeUsedInBytes: JSON
  KMSKey: String
  TargetName: String
}

input AwsStorageGatewayDescribeStorediSCSIVolumesInput {
  VolumeARNs: [String]!
}

type AwsStorageGatewayDescribeTapeArchivesOutput {
  TapeArchives: [AwsStorageGatewayDescribeTapeArchivesOutputTapeArchives]
  Marker: String
}

type AwsStorageGatewayDescribeTapeArchivesOutputTapeArchives {
  TapeARN: String
  TapeBarcode: String
  TapeCreatedDate: Date
  TapeSizeInBytes: JSON
  CompletionTime: Date
  RetrievedTo: String
  TapeStatus: String
  TapeUsedInBytes: JSON
  KMSKey: String
  PoolId: String
  Worm: Boolean
  RetentionStartDate: Date
  PoolEntryDate: Date
}

input AwsStorageGatewayDescribeTapeArchivesInput {
  TapeARNs: [String]
  Marker: String
  Limit: Int
}

type AwsStorageGatewayDescribeTapeRecoveryPointsOutput {
  GatewayARN: String
  TapeRecoveryPointInfos: [AwsStorageGatewayDescribeTapeRecoveryPointsOutputTapeRecoveryPointInfos]
  Marker: String
}

type AwsStorageGatewayDescribeTapeRecoveryPointsOutputTapeRecoveryPointInfos {
  TapeARN: String
  TapeRecoveryPointTime: Date
  TapeSizeInBytes: JSON
  TapeStatus: String
}

input AwsStorageGatewayDescribeTapeRecoveryPointsInput {
  GatewayARN: String!
  Marker: String
  Limit: Int
}

type AwsStorageGatewayDescribeTapesOutput {
  Tapes: [AwsStorageGatewayDescribeTapesOutputTapes]
  Marker: String
}

type AwsStorageGatewayDescribeTapesOutputTapes {
  TapeARN: String
  TapeBarcode: String
  TapeCreatedDate: Date
  TapeSizeInBytes: JSON
  TapeStatus: String
  VTLDevice: String
  Progress: JSON
  TapeUsedInBytes: JSON
  KMSKey: String
  PoolId: String
  Worm: Boolean
  RetentionStartDate: Date
  PoolEntryDate: Date
}

input AwsStorageGatewayDescribeTapesInput {
  GatewayARN: String!
  TapeARNs: [String]
  Marker: String
  Limit: Int
}

type AwsStorageGatewayDescribeUploadBufferOutput {
  GatewayARN: String
  DiskIds: [String]
  UploadBufferUsedInBytes: JSON
  UploadBufferAllocatedInBytes: JSON
}

input AwsStorageGatewayDescribeUploadBufferInput {
  GatewayARN: String!
}

type AwsStorageGatewayDescribeVTLDevicesOutput {
  GatewayARN: String
  VTLDevices: [AwsStorageGatewayDescribeVTLDevicesOutputVTLDevices]
  Marker: String
}

type AwsStorageGatewayDescribeVTLDevicesOutputVTLDevices {
  VTLDeviceARN: String
  VTLDeviceType: String
  VTLDeviceVendor: String
  VTLDeviceProductIdentifier: String
  DeviceiSCSIAttributes: AwsStorageGatewayDescribeVTLDevicesOutputVTLDevicesDeviceiSCSIAttributes
}

type AwsStorageGatewayDescribeVTLDevicesOutputVTLDevicesDeviceiSCSIAttributes {
  TargetARN: String
  NetworkInterfaceId: String
  NetworkInterfacePort: Int
  ChapEnabled: Boolean
}

input AwsStorageGatewayDescribeVTLDevicesInput {
  GatewayARN: String!
  VTLDeviceARNs: [String]
  Marker: String
  Limit: Int
}

type AwsStorageGatewayDescribeWorkingStorageOutput {
  GatewayARN: String
  DiskIds: [String]
  WorkingStorageUsedInBytes: JSON
  WorkingStorageAllocatedInBytes: JSON
}

input AwsStorageGatewayDescribeWorkingStorageInput {
  GatewayARN: String!
}

type AwsStorageGatewayDetachVolumeOutput {
  VolumeARN: String
}

input AwsStorageGatewayDetachVolumeInput {
  VolumeARN: String!
  ForceDetach: Boolean
}

type AwsStorageGatewayDisableGatewayOutput {
  GatewayARN: String
}

input AwsStorageGatewayDisableGatewayInput {
  GatewayARN: String!
}

type AwsStorageGatewayDisassociateFileSystemOutput {
  FileSystemAssociationARN: String
}

input AwsStorageGatewayDisassociateFileSystemInput {
  FileSystemAssociationARN: String!
  ForceDelete: Boolean
}

type AwsStorageGatewayJoinDomainOutput {
  GatewayARN: String
  ActiveDirectoryStatus: String
}

input AwsStorageGatewayJoinDomainInput {
  GatewayARN: String!
  DomainName: String!
  OrganizationalUnit: String
  DomainControllers: [String]
  TimeoutInSeconds: Int
  UserName: String!
  Password: String!
}

type AwsStorageGatewayListAutomaticTapeCreationPoliciesOutput {
  AutomaticTapeCreationPolicyInfos: [AwsStorageGatewayListAutomaticTapeCreationPoliciesOutputAutomaticTapeCreationPolicyInfos]
}

type AwsStorageGatewayListAutomaticTapeCreationPoliciesOutputAutomaticTapeCreationPolicyInfos {
  AutomaticTapeCreationRules: [AwsStorageGatewayS77]
  GatewayARN: String
}

type AwsStorageGatewayS77 {
  TapeBarcodePrefix: String!
  PoolId: String!
  TapeSizeInBytes: JSON!
  MinimumNumTapes: Int!
  Worm: Boolean
}

input AwsStorageGatewayListAutomaticTapeCreationPoliciesInput {
  GatewayARN: String
}

type AwsStorageGatewayListFileSharesOutput {
  Marker: String
  NextMarker: String
  FileShareInfoList: [AwsStorageGatewayListFileSharesOutputFileShareInfoList]
}

type AwsStorageGatewayListFileSharesOutputFileShareInfoList {
  FileShareType: String
  FileShareARN: String
  FileShareId: String
  FileShareStatus: String
  GatewayARN: String
}

input AwsStorageGatewayListFileSharesInput {
  GatewayARN: String
  Limit: Int
  Marker: String
}

type AwsStorageGatewayListFileSystemAssociationsOutput {
  Marker: String
  NextMarker: String
  FileSystemAssociationSummaryList: [AwsStorageGatewayListFileSystemAssociationsOutputFileSystemAssociationSummaryList]
}

type AwsStorageGatewayListFileSystemAssociationsOutputFileSystemAssociationSummaryList {
  FileSystemAssociationId: String
  FileSystemAssociationARN: String
  FileSystemAssociationStatus: String
  GatewayARN: String
}

input AwsStorageGatewayListFileSystemAssociationsInput {
  GatewayARN: String
  Limit: Int
  Marker: String
}

type AwsStorageGatewayListGatewaysOutput {
  Gateways: [AwsStorageGatewayListGatewaysOutputGateways]
  Marker: String
}

type AwsStorageGatewayListGatewaysOutputGateways {
  GatewayId: String
  GatewayARN: String
  GatewayType: String
  GatewayOperationalState: String
  GatewayName: String
  Ec2InstanceId: String
  Ec2InstanceRegion: String
}

input AwsStorageGatewayListGatewaysInput {
  Marker: String
  Limit: Int
}

type AwsStorageGatewayListLocalDisksOutput {
  GatewayARN: String
  Disks: [AwsStorageGatewayListLocalDisksOutputDisks]
}

type AwsStorageGatewayListLocalDisksOutputDisks {
  DiskId: String
  DiskPath: String
  DiskNode: String
  DiskStatus: String
  DiskSizeInBytes: JSON
  DiskAllocationType: String
  DiskAllocationResource: String
  DiskAttributeList: [String]
}

input AwsStorageGatewayListLocalDisksInput {
  GatewayARN: String!
}

type AwsStorageGatewayListTagsForResourceOutput {
  ResourceARN: String
  Marker: String
  Tags: [AwsStorageGatewayS9]
}

input AwsStorageGatewayListTagsForResourceInput {
  ResourceARN: String!
  Marker: String
  Limit: Int
}

type AwsStorageGatewayListTapePoolsOutput {
  PoolInfos: [AwsStorageGatewayListTapePoolsOutputPoolInfos]
  Marker: String
}

type AwsStorageGatewayListTapePoolsOutputPoolInfos {
  PoolARN: String
  PoolName: String
  StorageClass: String
  RetentionLockType: String
  RetentionLockTimeInDays: Int
  PoolStatus: String
}

input AwsStorageGatewayListTapePoolsInput {
  PoolARNs: [String]
  Marker: String
  Limit: Int
}

type AwsStorageGatewayListTapesOutput {
  TapeInfos: [AwsStorageGatewayListTapesOutputTapeInfos]
  Marker: String
}

type AwsStorageGatewayListTapesOutputTapeInfos {
  TapeARN: String
  TapeBarcode: String
  TapeSizeInBytes: JSON
  TapeStatus: String
  GatewayARN: String
  PoolId: String
  RetentionStartDate: Date
  PoolEntryDate: Date
}

input AwsStorageGatewayListTapesInput {
  TapeARNs: [String]
  Marker: String
  Limit: Int
}

type AwsStorageGatewayListVolumeInitiatorsOutput {
  Initiators: [String]
}

input AwsStorageGatewayListVolumeInitiatorsInput {
  VolumeARN: String!
}

type AwsStorageGatewayListVolumeRecoveryPointsOutput {
  GatewayARN: String
  VolumeRecoveryPointInfos: [AwsStorageGatewayListVolumeRecoveryPointsOutputVolumeRecoveryPointInfos]
}

type AwsStorageGatewayListVolumeRecoveryPointsOutputVolumeRecoveryPointInfos {
  VolumeARN: String
  VolumeSizeInBytes: JSON
  VolumeUsageInBytes: JSON
  VolumeRecoveryPointTime: String
}

input AwsStorageGatewayListVolumeRecoveryPointsInput {
  GatewayARN: String!
}

type AwsStorageGatewayListVolumesOutput {
  GatewayARN: String
  Marker: String
  VolumeInfos: [AwsStorageGatewayListVolumesOutputVolumeInfos]
}

type AwsStorageGatewayListVolumesOutputVolumeInfos {
  VolumeARN: String
  VolumeId: String
  GatewayARN: String
  GatewayId: String
  VolumeType: String
  VolumeSizeInBytes: JSON
  VolumeAttachmentStatus: String
}

input AwsStorageGatewayListVolumesInput {
  GatewayARN: String
  Marker: String
  Limit: Int
}

type AwsStorageGatewayNotifyWhenUploadedOutput {
  FileShareARN: String
  NotificationId: String
}

input AwsStorageGatewayNotifyWhenUploadedInput {
  FileShareARN: String!
}

type AwsStorageGatewayRefreshCacheOutput {
  FileShareARN: String
  NotificationId: String
}

input AwsStorageGatewayRefreshCacheInput {
  FileShareARN: String!
  FolderList: [String]
  Recursive: Boolean
}

type AwsStorageGatewayRemoveTagsFromResourceOutput {
  ResourceARN: String
}

input AwsStorageGatewayRemoveTagsFromResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsStorageGatewayResetCacheOutput {
  GatewayARN: String
}

input AwsStorageGatewayResetCacheInput {
  GatewayARN: String!
}

type AwsStorageGatewayRetrieveTapeArchiveOutput {
  TapeARN: String
}

input AwsStorageGatewayRetrieveTapeArchiveInput {
  TapeARN: String!
  GatewayARN: String!
}

type AwsStorageGatewayRetrieveTapeRecoveryPointOutput {
  TapeARN: String
}

input AwsStorageGatewayRetrieveTapeRecoveryPointInput {
  TapeARN: String!
  GatewayARN: String!
}

type AwsStorageGatewaySetLocalConsolePasswordOutput {
  GatewayARN: String
}

input AwsStorageGatewaySetLocalConsolePasswordInput {
  GatewayARN: String!
  LocalConsolePassword: String!
}

type AwsStorageGatewaySetSMBGuestPasswordOutput {
  GatewayARN: String
}

input AwsStorageGatewaySetSMBGuestPasswordInput {
  GatewayARN: String!
  Password: String!
}

type AwsStorageGatewayShutdownGatewayOutput {
  GatewayARN: String
}

input AwsStorageGatewayShutdownGatewayInput {
  GatewayARN: String!
}

type AwsStorageGatewayStartAvailabilityMonitorTestOutput {
  GatewayARN: String
}

input AwsStorageGatewayStartAvailabilityMonitorTestInput {
  GatewayARN: String!
}

type AwsStorageGatewayStartGatewayOutput {
  GatewayARN: String
}

input AwsStorageGatewayStartGatewayInput {
  GatewayARN: String!
}

type AwsStorageGatewayUpdateAutomaticTapeCreationPolicyOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateAutomaticTapeCreationPolicyInput {
  AutomaticTapeCreationRules: [AwsStorageGatewayS77Input]!
  GatewayARN: String!
}

input AwsStorageGatewayS77Input {
  TapeBarcodePrefix: String!
  PoolId: String!
  TapeSizeInBytes: JSON!
  MinimumNumTapes: Int!
  Worm: Boolean
}

type AwsStorageGatewayUpdateBandwidthRateLimitOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateBandwidthRateLimitInput {
  GatewayARN: String!
  AverageUploadRateLimitInBitsPerSec: JSON
  AverageDownloadRateLimitInBitsPerSec: JSON
}

type AwsStorageGatewayUpdateBandwidthRateLimitScheduleOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateBandwidthRateLimitScheduleInput {
  GatewayARN: String!
  BandwidthRateLimitIntervals: [AwsStorageGatewayS3qInput]!
}

input AwsStorageGatewayS3qInput {
  StartHourOfDay: Int!
  StartMinuteOfHour: Int!
  EndHourOfDay: Int!
  EndMinuteOfHour: Int!
  DaysOfWeek: [Int]!
  AverageUploadRateLimitInBitsPerSec: JSON
  AverageDownloadRateLimitInBitsPerSec: JSON
}

type AwsStorageGatewayUpdateChapCredentialsOutput {
  TargetARN: String
  InitiatorName: String
}

input AwsStorageGatewayUpdateChapCredentialsInput {
  TargetARN: String!
  SecretToAuthenticateInitiator: String!
  InitiatorName: String!
  SecretToAuthenticateTarget: String
}

type AwsStorageGatewayUpdateFileSystemAssociationOutput {
  FileSystemAssociationARN: String
}

input AwsStorageGatewayUpdateFileSystemAssociationInput {
  FileSystemAssociationARN: String!
  UserName: String
  Password: String
  AuditDestinationARN: String
  CacheAttributes: AwsStorageGatewayS11Input
}

type AwsStorageGatewayUpdateGatewayInformationOutput {
  GatewayARN: String
  GatewayName: String
}

input AwsStorageGatewayUpdateGatewayInformationInput {
  GatewayARN: String!
  GatewayName: String
  GatewayTimezone: String
  CloudWatchLogGroupARN: String
}

type AwsStorageGatewayUpdateGatewaySoftwareNowOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateGatewaySoftwareNowInput {
  GatewayARN: String!
}

type AwsStorageGatewayUpdateMaintenanceStartTimeOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateMaintenanceStartTimeInput {
  GatewayARN: String!
  HourOfDay: Int!
  MinuteOfHour: Int!
  DayOfWeek: Int
  DayOfMonth: Int
}

type AwsStorageGatewayUpdateNFSFileShareOutput {
  FileShareARN: String
}

input AwsStorageGatewayUpdateNFSFileShareInput {
  FileShareARN: String!
  KMSEncrypted: Boolean
  KMSKey: String
  NFSFileShareDefaults: AwsStorageGatewayS1mInput
  DefaultStorageClass: String
  ObjectACL: String
  ClientList: [String]
  Squash: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11Input
  NotificationPolicy: String
}

type AwsStorageGatewayUpdateSMBFileShareOutput {
  FileShareARN: String
}

input AwsStorageGatewayUpdateSMBFileShareInput {
  FileShareARN: String!
  KMSEncrypted: Boolean
  KMSKey: String
  DefaultStorageClass: String
  ObjectACL: String
  ReadOnly: Boolean
  GuessMIMETypeEnabled: Boolean
  RequesterPays: Boolean
  SMBACLEnabled: Boolean
  AccessBasedEnumeration: Boolean
  AdminUserList: [String]
  ValidUserList: [String]
  InvalidUserList: [String]
  AuditDestinationARN: String
  CaseSensitivity: String
  FileShareName: String
  CacheAttributes: AwsStorageGatewayS11Input
  NotificationPolicy: String
}

type AwsStorageGatewayUpdateSMBFileShareVisibilityOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateSMBFileShareVisibilityInput {
  GatewayARN: String!
  FileSharesVisible: Boolean!
}

type AwsStorageGatewayUpdateSMBSecurityStrategyOutput {
  GatewayARN: String
}

input AwsStorageGatewayUpdateSMBSecurityStrategyInput {
  GatewayARN: String!
  SMBSecurityStrategy: String!
}

type AwsStorageGatewayUpdateSnapshotScheduleOutput {
  VolumeARN: String
}

input AwsStorageGatewayUpdateSnapshotScheduleInput {
  VolumeARN: String!
  StartAt: Int!
  RecurrenceInHours: Int!
  Description: String
  Tags: [AwsStorageGatewayS9Input]
}

type AwsStorageGatewayUpdateVTLDeviceTypeOutput {
  VTLDeviceARN: String
}

input AwsStorageGatewayUpdateVTLDeviceTypeInput {
  VTLDeviceARN: String!
  DeviceType: String!
}

"""AWS Support (2013-04-15)"""
type AwsSupport {
  addAttachmentsToSet(input: AwsSupportAddAttachmentsToSetInput!, config: AwsConfig): AwsSupportAddAttachmentsToSetOutput
  addCommunicationToCase(input: AwsSupportAddCommunicationToCaseInput!, config: AwsConfig): AwsSupportAddCommunicationToCaseOutput
  createCase(input: AwsSupportCreateCaseInput!, config: AwsConfig): AwsSupportCreateCaseOutput
  describeAttachment(input: AwsSupportDescribeAttachmentInput!, config: AwsConfig): AwsSupportDescribeAttachmentOutput
  describeCases(input: AwsSupportDescribeCasesInput, config: AwsConfig): AwsSupportDescribeCasesOutput
  describeCommunications(input: AwsSupportDescribeCommunicationsInput!, config: AwsConfig): AwsSupportDescribeCommunicationsOutput
  describeServices(input: AwsSupportDescribeServicesInput, config: AwsConfig): AwsSupportDescribeServicesOutput
  describeSeverityLevels(input: AwsSupportDescribeSeverityLevelsInput, config: AwsConfig): AwsSupportDescribeSeverityLevelsOutput
  describeTrustedAdvisorCheckRefreshStatuses(input: AwsSupportDescribeTrustedAdvisorCheckRefreshStatusesInput!, config: AwsConfig): AwsSupportDescribeTrustedAdvisorCheckRefreshStatusesOutput
  describeTrustedAdvisorCheckResult(input: AwsSupportDescribeTrustedAdvisorCheckResultInput!, config: AwsConfig): AwsSupportDescribeTrustedAdvisorCheckResultOutput
  describeTrustedAdvisorCheckSummaries(input: AwsSupportDescribeTrustedAdvisorCheckSummariesInput!, config: AwsConfig): AwsSupportDescribeTrustedAdvisorCheckSummariesOutput
  describeTrustedAdvisorChecks(input: AwsSupportDescribeTrustedAdvisorChecksInput!, config: AwsConfig): AwsSupportDescribeTrustedAdvisorChecksOutput
  refreshTrustedAdvisorCheck(input: AwsSupportRefreshTrustedAdvisorCheckInput!, config: AwsConfig): AwsSupportRefreshTrustedAdvisorCheckOutput
  resolveCase(input: AwsSupportResolveCaseInput, config: AwsConfig): AwsSupportResolveCaseOutput
}

type AwsSupportAddAttachmentsToSetOutput {
  attachmentSetId: String
  expiryTime: String
}

input AwsSupportAddAttachmentsToSetInput {
  attachmentSetId: String
  attachments: [AwsSupportS4Input]!
}

input AwsSupportS4Input {
  fileName: String
  data: JSON
}

type AwsSupportAddCommunicationToCaseOutput {
  result: Boolean
}

input AwsSupportAddCommunicationToCaseInput {
  caseId: String
  communicationBody: String!
  ccEmailAddresses: [String]
  attachmentSetId: String
}

type AwsSupportCreateCaseOutput {
  caseId: String
}

input AwsSupportCreateCaseInput {
  subject: String!
  serviceCode: String
  severityCode: String
  categoryCode: String
  communicationBody: String!
  ccEmailAddresses: [String]
  language: String
  issueType: String
  attachmentSetId: String
}

type AwsSupportDescribeAttachmentOutput {
  attachment: AwsSupportS4
}

type AwsSupportS4 {
  fileName: String
  data: JSON
}

input AwsSupportDescribeAttachmentInput {
  attachmentId: String!
}

type AwsSupportDescribeCasesOutput {
  cases: [AwsSupportDescribeCasesOutputCases]
  nextToken: String
}

type AwsSupportDescribeCasesOutputCases {
  caseId: String
  displayId: String
  subject: String
  status: String
  serviceCode: String
  categoryCode: String
  severityCode: String
  submittedBy: String
  timeCreated: String
  recentCommunications: AwsSupportDescribeCasesOutputCasesRecentCommunications
  ccEmailAddresses: [String]
  language: String
}

type AwsSupportDescribeCasesOutputCasesRecentCommunications {
  communications: [AwsSupportS17]
  nextToken: String
}

type AwsSupportS17 {
  caseId: String
  body: String
  submittedBy: String
  timeCreated: String
  attachmentSet: [AwsSupportS17AttachmentSet]
}

type AwsSupportS17AttachmentSet {
  attachmentId: String
  fileName: String
}

input AwsSupportDescribeCasesInput {
  caseIdList: [String]
  displayId: String
  afterTime: String
  beforeTime: String
  includeResolvedCases: Boolean
  nextToken: String
  maxResults: Int
  language: String
  includeCommunications: Boolean
}

type AwsSupportDescribeCommunicationsOutput {
  communications: [AwsSupportS17]
  nextToken: String
}

input AwsSupportDescribeCommunicationsInput {
  caseId: String!
  beforeTime: String
  afterTime: String
  nextToken: String
  maxResults: Int
}

type AwsSupportDescribeServicesOutput {
  services: [AwsSupportDescribeServicesOutputServices]
}

type AwsSupportDescribeServicesOutputServices {
  code: String
  name: String
  categories: [AwsSupportDescribeServicesOutputServicesCategories]
}

type AwsSupportDescribeServicesOutputServicesCategories {
  code: String
  name: String
}

input AwsSupportDescribeServicesInput {
  serviceCodeList: [String]
  language: String
}

type AwsSupportDescribeSeverityLevelsOutput {
  severityLevels: [AwsSupportDescribeSeverityLevelsOutputSeverityLevels]
}

type AwsSupportDescribeSeverityLevelsOutputSeverityLevels {
  code: String
  name: String
}

input AwsSupportDescribeSeverityLevelsInput {
  language: String
}

type AwsSupportDescribeTrustedAdvisorCheckRefreshStatusesOutput {
  statuses: [AwsSupportS1x]!
}

type AwsSupportS1x {
  checkId: String!
  status: String!
  millisUntilNextRefreshable: JSON!
}

input AwsSupportDescribeTrustedAdvisorCheckRefreshStatusesInput {
  checkIds: [String]!
}

type AwsSupportDescribeTrustedAdvisorCheckResultOutput {
  result: AwsSupportDescribeTrustedAdvisorCheckResultOutputResult
}

type AwsSupportDescribeTrustedAdvisorCheckResultOutputResult {
  checkId: String!
  timestamp: String!
  status: String!
  resourcesSummary: AwsSupportS22!
  categorySpecificSummary: AwsSupportS23!
  flaggedResources: [AwsSupportDescribeTrustedAdvisorCheckResultOutputResultFlaggedResources]!
}

type AwsSupportS22 {
  resourcesProcessed: JSON!
  resourcesFlagged: JSON!
  resourcesIgnored: JSON!
  resourcesSuppressed: JSON!
}

type AwsSupportS23 {
  costOptimizing: AwsSupportS23CostOptimizing
}

type AwsSupportS23CostOptimizing {
  estimatedMonthlySavings: JSON!
  estimatedPercentMonthlySavings: JSON!
}

type AwsSupportDescribeTrustedAdvisorCheckResultOutputResultFlaggedResources {
  status: String!
  region: String
  resourceId: String!
  isSuppressed: Boolean
  metadata: [String]!
}

input AwsSupportDescribeTrustedAdvisorCheckResultInput {
  checkId: String!
  language: String
}

type AwsSupportDescribeTrustedAdvisorCheckSummariesOutput {
  summaries: [AwsSupportDescribeTrustedAdvisorCheckSummariesOutputSummaries]!
}

type AwsSupportDescribeTrustedAdvisorCheckSummariesOutputSummaries {
  checkId: String!
  timestamp: String!
  status: String!
  hasFlaggedResources: Boolean
  resourcesSummary: AwsSupportS22!
  categorySpecificSummary: AwsSupportS23!
}

input AwsSupportDescribeTrustedAdvisorCheckSummariesInput {
  checkIds: [String]!
}

type AwsSupportDescribeTrustedAdvisorChecksOutput {
  checks: [AwsSupportDescribeTrustedAdvisorChecksOutputChecks]!
}

type AwsSupportDescribeTrustedAdvisorChecksOutputChecks {
  id: String!
  name: String!
  description: String!
  category: String!
  metadata: [String]!
}

input AwsSupportDescribeTrustedAdvisorChecksInput {
  language: String!
}

type AwsSupportRefreshTrustedAdvisorCheckOutput {
  status: AwsSupportS1x!
}

input AwsSupportRefreshTrustedAdvisorCheckInput {
  checkId: String!
}

type AwsSupportResolveCaseOutput {
  initialCaseStatus: String
  finalCaseStatus: String
}

input AwsSupportResolveCaseInput {
  caseId: String
}

"""Synthetics (2017-10-11)"""
type AwsSynthetics {
  createCanary(input: AwsSyntheticsCreateCanaryInput!, config: AwsConfig): AwsSyntheticsCreateCanaryOutput
  deleteCanary(input: AwsSyntheticsDeleteCanaryInput!, config: AwsConfig): JSON
  describeCanaries(input: AwsSyntheticsDescribeCanariesInput, config: AwsConfig): AwsSyntheticsDescribeCanariesOutput
  describeCanariesLastRun(input: AwsSyntheticsDescribeCanariesLastRunInput, config: AwsConfig): AwsSyntheticsDescribeCanariesLastRunOutput
  describeRuntimeVersions(input: AwsSyntheticsDescribeRuntimeVersionsInput, config: AwsConfig): AwsSyntheticsDescribeRuntimeVersionsOutput
  getCanary(input: AwsSyntheticsGetCanaryInput!, config: AwsConfig): AwsSyntheticsGetCanaryOutput
  getCanaryRuns(input: AwsSyntheticsGetCanaryRunsInput!, config: AwsConfig): AwsSyntheticsGetCanaryRunsOutput
  listTagsForResource(input: AwsSyntheticsListTagsForResourceInput!, config: AwsConfig): AwsSyntheticsListTagsForResourceOutput
  startCanary(input: AwsSyntheticsStartCanaryInput!, config: AwsConfig): JSON
  stopCanary(input: AwsSyntheticsStopCanaryInput!, config: AwsConfig): JSON
  tagResource(input: AwsSyntheticsTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsSyntheticsUntagResourceInput!, config: AwsConfig): JSON
  updateCanary(input: AwsSyntheticsUpdateCanaryInput!, config: AwsConfig): JSON
}

type AwsSyntheticsCreateCanaryOutput {
  Canary: AwsSyntheticsSq
}

type AwsSyntheticsSq {
  Id: String
  Name: String
  Code: AwsSyntheticsSqCode
  ExecutionRoleArn: String
  Schedule: AwsSyntheticsSqSchedule
  RunConfig: AwsSyntheticsSqRunConfig
  SuccessRetentionPeriodInDays: Int
  FailureRetentionPeriodInDays: Int
  Status: AwsSyntheticsSqStatus
  Timeline: AwsSyntheticsSqTimeline
  ArtifactS3Location: String
  EngineArn: String
  RuntimeVersion: String
  VpcConfig: AwsSyntheticsSqVpcConfig
  Tags: JSON
}

type AwsSyntheticsSqCode {
  SourceLocationArn: String
  Handler: String
}

type AwsSyntheticsSqSchedule {
  Expression: String
  DurationInSeconds: JSON
}

type AwsSyntheticsSqRunConfig {
  TimeoutInSeconds: Int
  MemoryInMB: Int
  ActiveTracing: Boolean
}

type AwsSyntheticsSqStatus {
  State: String
  StateReason: String
  StateReasonCode: String
}

type AwsSyntheticsSqTimeline {
  Created: Date
  LastModified: Date
  LastStarted: Date
  LastStopped: Date
}

type AwsSyntheticsSqVpcConfig {
  VpcId: String
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsSyntheticsCreateCanaryInput {
  Name: String!
  Code: AwsSyntheticsS3Input!
  ArtifactS3Location: String!
  ExecutionRoleArn: String!
  Schedule: AwsSyntheticsS7Input!
  RunConfig: AwsSyntheticsS9Input
  SuccessRetentionPeriodInDays: Int
  FailureRetentionPeriodInDays: Int
  RuntimeVersion: String!
  VpcConfig: AwsSyntheticsShInput
  Tags: JSON
}

input AwsSyntheticsS3Input {
  S3Bucket: String
  S3Key: String
  S3Version: String
  ZipFile: JSON
  Handler: String!
}

input AwsSyntheticsS7Input {
  Expression: String!
  DurationInSeconds: JSON
}

input AwsSyntheticsS9Input {
  TimeoutInSeconds: Int
  MemoryInMB: Int
  ActiveTracing: Boolean
  EnvironmentVariables: JSON
}

input AwsSyntheticsShInput {
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsSyntheticsDeleteCanaryInput {
  Name: String!
}

type AwsSyntheticsDescribeCanariesOutput {
  Canaries: [AwsSyntheticsSq]
  NextToken: String
}

input AwsSyntheticsDescribeCanariesInput {
  NextToken: String
  MaxResults: Int
}

type AwsSyntheticsDescribeCanariesLastRunOutput {
  CanariesLastRun: [AwsSyntheticsDescribeCanariesLastRunOutputCanariesLastRun]
  NextToken: String
}

type AwsSyntheticsDescribeCanariesLastRunOutputCanariesLastRun {
  CanaryName: String
  LastRun: AwsSyntheticsS1f
}

type AwsSyntheticsS1f {
  Id: String
  Name: String
  Status: AwsSyntheticsS1fStatus
  Timeline: AwsSyntheticsS1fTimeline
  ArtifactS3Location: String
}

type AwsSyntheticsS1fStatus {
  State: String
  StateReason: String
  StateReasonCode: String
}

type AwsSyntheticsS1fTimeline {
  Started: Date
  Completed: Date
}

input AwsSyntheticsDescribeCanariesLastRunInput {
  NextToken: String
  MaxResults: Int
}

type AwsSyntheticsDescribeRuntimeVersionsOutput {
  RuntimeVersions: [AwsSyntheticsDescribeRuntimeVersionsOutputRuntimeVersions]
  NextToken: String
}

type AwsSyntheticsDescribeRuntimeVersionsOutputRuntimeVersions {
  VersionName: String
  Description: String
  ReleaseDate: Date
  DeprecationDate: Date
}

input AwsSyntheticsDescribeRuntimeVersionsInput {
  NextToken: String
  MaxResults: Int
}

type AwsSyntheticsGetCanaryOutput {
  Canary: AwsSyntheticsSq
}

input AwsSyntheticsGetCanaryInput {
  Name: String!
}

type AwsSyntheticsGetCanaryRunsOutput {
  CanaryRuns: [AwsSyntheticsS1f]
  NextToken: String
}

input AwsSyntheticsGetCanaryRunsInput {
  Name: String!
  NextToken: String
  MaxResults: Int
}

type AwsSyntheticsListTagsForResourceOutput {
  Tags: JSON
}

input AwsSyntheticsListTagsForResourceInput {
  ResourceArn: String!
}

input AwsSyntheticsStartCanaryInput {
  Name: String!
}

input AwsSyntheticsStopCanaryInput {
  Name: String!
}

input AwsSyntheticsTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsSyntheticsUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsSyntheticsUpdateCanaryInput {
  Name: String!
  Code: AwsSyntheticsS3Input
  ExecutionRoleArn: String
  RuntimeVersion: String
  Schedule: AwsSyntheticsS7Input
  RunConfig: AwsSyntheticsS9Input
  SuccessRetentionPeriodInDays: Int
  FailureRetentionPeriodInDays: Int
  VpcConfig: AwsSyntheticsShInput
}

"""Amazon Textract (2018-06-27)"""
type AwsTextract {
  analyzeDocument(input: AwsTextractAnalyzeDocumentInput!, config: AwsConfig): AwsTextractAnalyzeDocumentOutput
  detectDocumentText(input: AwsTextractDetectDocumentTextInput!, config: AwsConfig): AwsTextractDetectDocumentTextOutput
  getDocumentAnalysis(input: AwsTextractGetDocumentAnalysisInput!, config: AwsConfig): AwsTextractGetDocumentAnalysisOutput
  getDocumentTextDetection(input: AwsTextractGetDocumentTextDetectionInput!, config: AwsConfig): AwsTextractGetDocumentTextDetectionOutput
  startDocumentAnalysis(input: AwsTextractStartDocumentAnalysisInput!, config: AwsConfig): AwsTextractStartDocumentAnalysisOutput
  startDocumentTextDetection(input: AwsTextractStartDocumentTextDetectionInput!, config: AwsConfig): AwsTextractStartDocumentTextDetectionOutput
}

type AwsTextractAnalyzeDocumentOutput {
  DocumentMetadata: AwsTextractSh
  Blocks: [AwsTextractSj]
  HumanLoopActivationOutput: AwsTextractAnalyzeDocumentOutputHumanLoopActivationOutput
  AnalyzeDocumentModelVersion: String
}

type AwsTextractSh {
  Pages: Int
}

type AwsTextractSj {
  BlockType: String
  Confidence: Float
  Text: String
  TextType: String
  RowIndex: Int
  ColumnIndex: Int
  RowSpan: Int
  ColumnSpan: Int
  Geometry: AwsTextractSjGeometry
  Id: String
  Relationships: [AwsTextractSjRelationships]
  EntityTypes: [String]
  SelectionStatus: String
  Page: Int
}

type AwsTextractSjGeometry {
  BoundingBox: AwsTextractSjGeometryBoundingBox
  Polygon: [AwsTextractSjGeometryPolygon]
}

type AwsTextractSjGeometryBoundingBox {
  Width: Float
  Height: Float
  Left: Float
  Top: Float
}

type AwsTextractSjGeometryPolygon {
  X: Float
  Y: Float
}

type AwsTextractSjRelationships {
  Type: String
  Ids: [String]
}

type AwsTextractAnalyzeDocumentOutputHumanLoopActivationOutput {
  HumanLoopArn: String
  HumanLoopActivationReasons: [String]
  HumanLoopActivationConditionsEvaluationResults: String
}

input AwsTextractAnalyzeDocumentInput {
  Document: AwsTextractS2Input!
  FeatureTypes: [String]!
  HumanLoopConfig: AwsTextractAnalyzeDocumentHumanLoopConfigInput
}

input AwsTextractS2Input {
  Bytes: JSON
  S3Object: AwsTextractS4Input
}

input AwsTextractS4Input {
  Bucket: String
  Name: String
  Version: String
}

input AwsTextractAnalyzeDocumentHumanLoopConfigInput {
  HumanLoopName: String!
  FlowDefinitionArn: String!
  DataAttributes: AwsTextractAnalyzeDocumentHumanLoopConfigDataAttributesInput
}

input AwsTextractAnalyzeDocumentHumanLoopConfigDataAttributesInput {
  ContentClassifiers: [String]
}

type AwsTextractDetectDocumentTextOutput {
  DocumentMetadata: AwsTextractSh
  Blocks: [AwsTextractSj]
  DetectDocumentTextModelVersion: String
}

input AwsTextractDetectDocumentTextInput {
  Document: AwsTextractS2Input!
}

type AwsTextractGetDocumentAnalysisOutput {
  DocumentMetadata: AwsTextractSh
  JobStatus: String
  NextToken: String
  Blocks: [AwsTextractSj]
  Warnings: [AwsTextractS1f]
  StatusMessage: String
  AnalyzeDocumentModelVersion: String
}

type AwsTextractS1f {
  ErrorCode: String
  Pages: [Int]
}

input AwsTextractGetDocumentAnalysisInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
}

type AwsTextractGetDocumentTextDetectionOutput {
  DocumentMetadata: AwsTextractSh
  JobStatus: String
  NextToken: String
  Blocks: [AwsTextractSj]
  Warnings: [AwsTextractS1f]
  StatusMessage: String
  DetectDocumentTextModelVersion: String
}

input AwsTextractGetDocumentTextDetectionInput {
  JobId: String!
  MaxResults: Int
  NextToken: String
}

type AwsTextractStartDocumentAnalysisOutput {
  JobId: String
}

input AwsTextractStartDocumentAnalysisInput {
  DocumentLocation: AwsTextractS1nInput!
  FeatureTypes: [String]!
  ClientRequestToken: String
  JobTag: String
  NotificationChannel: AwsTextractS1qInput
  OutputConfig: AwsTextractS1tInput
  KMSKeyId: String
}

input AwsTextractS1nInput {
  S3Object: AwsTextractS4Input
}

input AwsTextractS1qInput {
  SNSTopicArn: String!
  RoleArn: String!
}

input AwsTextractS1tInput {
  S3Bucket: String!
  S3Prefix: String
}

type AwsTextractStartDocumentTextDetectionOutput {
  JobId: String
}

input AwsTextractStartDocumentTextDetectionInput {
  DocumentLocation: AwsTextractS1nInput!
  ClientRequestToken: String
  JobTag: String
  NotificationChannel: AwsTextractS1qInput
  OutputConfig: AwsTextractS1tInput
  KMSKeyId: String
}

"""Amazon Timestream Query (2018-11-01)"""
type AwsTimestreamQuery {
  cancelQuery(input: AwsTimestreamQueryCancelQueryInput!, config: AwsConfig): AwsTimestreamQueryCancelQueryOutput
  describeEndpoints(input: JSON, config: AwsConfig): AwsTimestreamQueryDescribeEndpointsOutput
  query(input: AwsTimestreamQueryQueryInput!, config: AwsConfig): AwsTimestreamQueryQueryOutput
}

type AwsTimestreamQueryCancelQueryOutput {
  CancellationMessage: String
}

input AwsTimestreamQueryCancelQueryInput {
  QueryId: String!
}

type AwsTimestreamQueryDescribeEndpointsOutput {
  Endpoints: [AwsTimestreamQueryDescribeEndpointsOutputEndpoints]!
}

type AwsTimestreamQueryDescribeEndpointsOutputEndpoints {
  Address: String!
  CachePeriodInMinutes: JSON!
}

type AwsTimestreamQueryQueryOutput {
  QueryId: String!
  NextToken: String
  Rows: [AwsTimestreamQuerySg]!
  ColumnInfo: [AwsTimestreamQuerySp]!
  QueryStatus: AwsTimestreamQueryQueryOutputQueryStatus
}

type AwsTimestreamQuerySg {
  Data: [AwsTimestreamQuerySi]!
}

type AwsTimestreamQuerySi {
  ScalarValue: String
  TimeSeriesValue: [AwsTimestreamQuerySiTimeSeriesValue]
  ArrayValue: JSON
  RowValue: JSON
  NullValue: Boolean
}

type AwsTimestreamQuerySiTimeSeriesValue {
  Time: String!
  Value: JSON!
}

type AwsTimestreamQuerySp {
  Name: String
  Type: AwsTimestreamQuerySpType!
}

type AwsTimestreamQuerySpType {
  ScalarType: String
  ArrayColumnInfo: JSON
  TimeSeriesMeasureValueColumnInfo: JSON
  RowColumnInfo: JSON
}

type AwsTimestreamQueryQueryOutputQueryStatus {
  ProgressPercentage: JSON
  CumulativeBytesScanned: JSON
  CumulativeBytesMetered: JSON
}

input AwsTimestreamQueryQueryInput {
  QueryString: String!
  ClientToken: String
  NextToken: String
  MaxRows: Int
}

"""Amazon Timestream Write (2018-11-01)"""
type AwsTimestreamWrite {
  createDatabase(input: AwsTimestreamWriteCreateDatabaseInput!, config: AwsConfig): AwsTimestreamWriteCreateDatabaseOutput
  createTable(input: AwsTimestreamWriteCreateTableInput!, config: AwsConfig): AwsTimestreamWriteCreateTableOutput
  deleteDatabase(input: AwsTimestreamWriteDeleteDatabaseInput!, config: AwsConfig): JSON
  deleteTable(input: AwsTimestreamWriteDeleteTableInput!, config: AwsConfig): JSON
  describeDatabase(input: AwsTimestreamWriteDescribeDatabaseInput!, config: AwsConfig): AwsTimestreamWriteDescribeDatabaseOutput
  describeEndpoints(input: JSON, config: AwsConfig): AwsTimestreamWriteDescribeEndpointsOutput
  describeTable(input: AwsTimestreamWriteDescribeTableInput!, config: AwsConfig): AwsTimestreamWriteDescribeTableOutput
  listDatabases(input: AwsTimestreamWriteListDatabasesInput, config: AwsConfig): AwsTimestreamWriteListDatabasesOutput
  listTables(input: AwsTimestreamWriteListTablesInput, config: AwsConfig): AwsTimestreamWriteListTablesOutput
  listTagsForResource(input: AwsTimestreamWriteListTagsForResourceInput!, config: AwsConfig): AwsTimestreamWriteListTagsForResourceOutput
  tagResource(input: AwsTimestreamWriteTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsTimestreamWriteUntagResourceInput!, config: AwsConfig): JSON
  updateDatabase(input: AwsTimestreamWriteUpdateDatabaseInput!, config: AwsConfig): AwsTimestreamWriteUpdateDatabaseOutput
  updateTable(input: AwsTimestreamWriteUpdateTableInput!, config: AwsConfig): AwsTimestreamWriteUpdateTableOutput
  writeRecords(input: AwsTimestreamWriteWriteRecordsInput!, config: AwsConfig): JSON
}

type AwsTimestreamWriteCreateDatabaseOutput {
  Database: AwsTimestreamWriteS9
}

type AwsTimestreamWriteS9 {
  Arn: String
  DatabaseName: String
  TableCount: JSON
  KmsKeyId: String
  CreationTime: Date
  LastUpdatedTime: Date
}

input AwsTimestreamWriteCreateDatabaseInput {
  DatabaseName: String!
  KmsKeyId: String
  Tags: [AwsTimestreamWriteS4Input]
}

input AwsTimestreamWriteS4Input {
  Key: String!
  Value: String!
}

type AwsTimestreamWriteCreateTableOutput {
  Table: AwsTimestreamWriteSi
}

type AwsTimestreamWriteSi {
  Arn: String
  TableName: String
  DatabaseName: String
  TableStatus: String
  RetentionProperties: AwsTimestreamWriteSe
  CreationTime: Date
  LastUpdatedTime: Date
}

type AwsTimestreamWriteSe {
  MemoryStoreRetentionPeriodInHours: JSON!
  MagneticStoreRetentionPeriodInDays: JSON!
}

input AwsTimestreamWriteCreateTableInput {
  DatabaseName: String!
  TableName: String!
  RetentionProperties: AwsTimestreamWriteSeInput
  Tags: [AwsTimestreamWriteS4Input]
}

input AwsTimestreamWriteSeInput {
  MemoryStoreRetentionPeriodInHours: JSON!
  MagneticStoreRetentionPeriodInDays: JSON!
}

input AwsTimestreamWriteDeleteDatabaseInput {
  DatabaseName: String!
}

input AwsTimestreamWriteDeleteTableInput {
  DatabaseName: String!
  TableName: String!
}

type AwsTimestreamWriteDescribeDatabaseOutput {
  Database: AwsTimestreamWriteS9
}

input AwsTimestreamWriteDescribeDatabaseInput {
  DatabaseName: String!
}

type AwsTimestreamWriteDescribeEndpointsOutput {
  Endpoints: [AwsTimestreamWriteDescribeEndpointsOutputEndpoints]!
}

type AwsTimestreamWriteDescribeEndpointsOutputEndpoints {
  Address: String!
  CachePeriodInMinutes: JSON!
}

type AwsTimestreamWriteDescribeTableOutput {
  Table: AwsTimestreamWriteSi
}

input AwsTimestreamWriteDescribeTableInput {
  DatabaseName: String!
  TableName: String!
}

type AwsTimestreamWriteListDatabasesOutput {
  Databases: [AwsTimestreamWriteS9]
  NextToken: String
}

input AwsTimestreamWriteListDatabasesInput {
  NextToken: String
  MaxResults: Int
}

type AwsTimestreamWriteListTablesOutput {
  Tables: [AwsTimestreamWriteSi]
  NextToken: String
}

input AwsTimestreamWriteListTablesInput {
  DatabaseName: String
  NextToken: String
  MaxResults: Int
}

type AwsTimestreamWriteListTagsForResourceOutput {
  Tags: [AwsTimestreamWriteS4]
}

type AwsTimestreamWriteS4 {
  Key: String!
  Value: String!
}

input AwsTimestreamWriteListTagsForResourceInput {
  ResourceARN: String!
}

input AwsTimestreamWriteTagResourceInput {
  ResourceARN: String!
  Tags: [AwsTimestreamWriteS4Input]!
}

input AwsTimestreamWriteUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsTimestreamWriteUpdateDatabaseOutput {
  Database: AwsTimestreamWriteS9
}

input AwsTimestreamWriteUpdateDatabaseInput {
  DatabaseName: String!
  KmsKeyId: String!
}

type AwsTimestreamWriteUpdateTableOutput {
  Table: AwsTimestreamWriteSi
}

input AwsTimestreamWriteUpdateTableInput {
  DatabaseName: String!
  TableName: String!
  RetentionProperties: AwsTimestreamWriteSeInput!
}

input AwsTimestreamWriteWriteRecordsInput {
  DatabaseName: String!
  TableName: String!
  CommonAttributes: AwsTimestreamWriteS1eInput
  Records: [AwsTimestreamWriteS1eInput]!
}

input AwsTimestreamWriteS1eInput {
  Dimensions: [AwsTimestreamWriteS1eDimensionsInput]
  MeasureName: String
  MeasureValue: String
  MeasureValueType: String
  Time: String
  TimeUnit: String
  Version: JSON
}

input AwsTimestreamWriteS1eDimensionsInput {
  Name: String!
  Value: String!
  DimensionValueType: String
}

"""Amazon Transcribe Service (2017-10-26)"""
type AwsTranscribeService {
  createLanguageModel(input: AwsTranscribeServiceCreateLanguageModelInput!, config: AwsConfig): AwsTranscribeServiceCreateLanguageModelOutput
  createMedicalVocabulary(input: AwsTranscribeServiceCreateMedicalVocabularyInput!, config: AwsConfig): AwsTranscribeServiceCreateMedicalVocabularyOutput
  createVocabulary(input: AwsTranscribeServiceCreateVocabularyInput!, config: AwsConfig): AwsTranscribeServiceCreateVocabularyOutput
  createVocabularyFilter(input: AwsTranscribeServiceCreateVocabularyFilterInput!, config: AwsConfig): AwsTranscribeServiceCreateVocabularyFilterOutput
  deleteLanguageModel(input: AwsTranscribeServiceDeleteLanguageModelInput!, config: AwsConfig): JSON
  deleteMedicalTranscriptionJob(input: AwsTranscribeServiceDeleteMedicalTranscriptionJobInput!, config: AwsConfig): JSON
  deleteMedicalVocabulary(input: AwsTranscribeServiceDeleteMedicalVocabularyInput!, config: AwsConfig): JSON
  deleteTranscriptionJob(input: AwsTranscribeServiceDeleteTranscriptionJobInput!, config: AwsConfig): JSON
  deleteVocabulary(input: AwsTranscribeServiceDeleteVocabularyInput!, config: AwsConfig): JSON
  deleteVocabularyFilter(input: AwsTranscribeServiceDeleteVocabularyFilterInput!, config: AwsConfig): JSON
  describeLanguageModel(input: AwsTranscribeServiceDescribeLanguageModelInput!, config: AwsConfig): AwsTranscribeServiceDescribeLanguageModelOutput
  getMedicalTranscriptionJob(input: AwsTranscribeServiceGetMedicalTranscriptionJobInput!, config: AwsConfig): AwsTranscribeServiceGetMedicalTranscriptionJobOutput
  getMedicalVocabulary(input: AwsTranscribeServiceGetMedicalVocabularyInput!, config: AwsConfig): AwsTranscribeServiceGetMedicalVocabularyOutput
  getTranscriptionJob(input: AwsTranscribeServiceGetTranscriptionJobInput!, config: AwsConfig): AwsTranscribeServiceGetTranscriptionJobOutput
  getVocabulary(input: AwsTranscribeServiceGetVocabularyInput!, config: AwsConfig): AwsTranscribeServiceGetVocabularyOutput
  getVocabularyFilter(input: AwsTranscribeServiceGetVocabularyFilterInput!, config: AwsConfig): AwsTranscribeServiceGetVocabularyFilterOutput
  listLanguageModels(input: AwsTranscribeServiceListLanguageModelsInput, config: AwsConfig): AwsTranscribeServiceListLanguageModelsOutput
  listMedicalTranscriptionJobs(input: AwsTranscribeServiceListMedicalTranscriptionJobsInput, config: AwsConfig): AwsTranscribeServiceListMedicalTranscriptionJobsOutput
  listMedicalVocabularies(input: AwsTranscribeServiceListMedicalVocabulariesInput, config: AwsConfig): AwsTranscribeServiceListMedicalVocabulariesOutput
  listTranscriptionJobs(input: AwsTranscribeServiceListTranscriptionJobsInput, config: AwsConfig): AwsTranscribeServiceListTranscriptionJobsOutput
  listVocabularies(input: AwsTranscribeServiceListVocabulariesInput, config: AwsConfig): AwsTranscribeServiceListVocabulariesOutput
  listVocabularyFilters(input: AwsTranscribeServiceListVocabularyFiltersInput, config: AwsConfig): AwsTranscribeServiceListVocabularyFiltersOutput
  startMedicalTranscriptionJob(input: AwsTranscribeServiceStartMedicalTranscriptionJobInput!, config: AwsConfig): AwsTranscribeServiceStartMedicalTranscriptionJobOutput
  startTranscriptionJob(input: AwsTranscribeServiceStartTranscriptionJobInput!, config: AwsConfig): AwsTranscribeServiceStartTranscriptionJobOutput
  updateMedicalVocabulary(input: AwsTranscribeServiceUpdateMedicalVocabularyInput!, config: AwsConfig): AwsTranscribeServiceUpdateMedicalVocabularyOutput
  updateVocabulary(input: AwsTranscribeServiceUpdateVocabularyInput!, config: AwsConfig): AwsTranscribeServiceUpdateVocabularyOutput
  updateVocabularyFilter(input: AwsTranscribeServiceUpdateVocabularyFilterInput!, config: AwsConfig): AwsTranscribeServiceUpdateVocabularyFilterOutput
}

type AwsTranscribeServiceCreateLanguageModelOutput {
  LanguageCode: String
  BaseModelName: String
  ModelName: String
  InputDataConfig: AwsTranscribeServiceS5
  ModelStatus: String
}

type AwsTranscribeServiceS5 {
  S3Uri: String!
  TuningDataS3Uri: String
  DataAccessRoleArn: String!
}

input AwsTranscribeServiceCreateLanguageModelInput {
  LanguageCode: String!
  BaseModelName: String!
  ModelName: String!
  InputDataConfig: AwsTranscribeServiceS5Input!
}

input AwsTranscribeServiceS5Input {
  S3Uri: String!
  TuningDataS3Uri: String
  DataAccessRoleArn: String!
}

type AwsTranscribeServiceCreateMedicalVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  VocabularyState: String
  LastModifiedTime: Date
  FailureReason: String
}

input AwsTranscribeServiceCreateMedicalVocabularyInput {
  VocabularyName: String!
  LanguageCode: String!
  VocabularyFileUri: String!
}

type AwsTranscribeServiceCreateVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  VocabularyState: String
  LastModifiedTime: Date
  FailureReason: String
}

input AwsTranscribeServiceCreateVocabularyInput {
  VocabularyName: String!
  LanguageCode: String!
  Phrases: [String]
  VocabularyFileUri: String
}

type AwsTranscribeServiceCreateVocabularyFilterOutput {
  VocabularyFilterName: String
  LanguageCode: String
  LastModifiedTime: Date
}

input AwsTranscribeServiceCreateVocabularyFilterInput {
  VocabularyFilterName: String!
  LanguageCode: String!
  Words: [String]
  VocabularyFilterFileUri: String
}

input AwsTranscribeServiceDeleteLanguageModelInput {
  ModelName: String!
}

input AwsTranscribeServiceDeleteMedicalTranscriptionJobInput {
  MedicalTranscriptionJobName: String!
}

input AwsTranscribeServiceDeleteMedicalVocabularyInput {
  VocabularyName: String!
}

input AwsTranscribeServiceDeleteTranscriptionJobInput {
  TranscriptionJobName: String!
}

input AwsTranscribeServiceDeleteVocabularyInput {
  VocabularyName: String!
}

input AwsTranscribeServiceDeleteVocabularyFilterInput {
  VocabularyFilterName: String!
}

type AwsTranscribeServiceDescribeLanguageModelOutput {
  LanguageModel: AwsTranscribeServiceSz
}

type AwsTranscribeServiceSz {
  ModelName: String
  CreateTime: Date
  LastModifiedTime: Date
  LanguageCode: String
  BaseModelName: String
  ModelStatus: String
  UpgradeAvailability: Boolean
  FailureReason: String
  InputDataConfig: AwsTranscribeServiceS5
}

input AwsTranscribeServiceDescribeLanguageModelInput {
  ModelName: String!
}

type AwsTranscribeServiceGetMedicalTranscriptionJobOutput {
  MedicalTranscriptionJob: AwsTranscribeServiceS13
}

type AwsTranscribeServiceS13 {
  MedicalTranscriptionJobName: String
  TranscriptionJobStatus: String
  LanguageCode: String
  MediaSampleRateHertz: Int
  MediaFormat: String
  Media: AwsTranscribeServiceS17
  Transcript: AwsTranscribeServiceS13Transcript
  StartTime: Date
  CreationTime: Date
  CompletionTime: Date
  FailureReason: String
  Settings: AwsTranscribeServiceS19
  ContentIdentificationType: String
  Specialty: String
  Type: String
}

type AwsTranscribeServiceS17 {
  MediaFileUri: String
}

type AwsTranscribeServiceS13Transcript {
  TranscriptFileUri: String
}

type AwsTranscribeServiceS19 {
  ShowSpeakerLabels: Boolean
  MaxSpeakerLabels: Int
  ChannelIdentification: Boolean
  ShowAlternatives: Boolean
  MaxAlternatives: Int
  VocabularyName: String
}

input AwsTranscribeServiceGetMedicalTranscriptionJobInput {
  MedicalTranscriptionJobName: String!
}

type AwsTranscribeServiceGetMedicalVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  VocabularyState: String
  LastModifiedTime: Date
  FailureReason: String
  DownloadUri: String
}

input AwsTranscribeServiceGetMedicalVocabularyInput {
  VocabularyName: String!
}

type AwsTranscribeServiceGetTranscriptionJobOutput {
  TranscriptionJob: AwsTranscribeServiceS1j
}

type AwsTranscribeServiceS1j {
  TranscriptionJobName: String
  TranscriptionJobStatus: String
  LanguageCode: String
  MediaSampleRateHertz: Int
  MediaFormat: String
  Media: AwsTranscribeServiceS17
  Transcript: AwsTranscribeServiceS1jTranscript
  StartTime: Date
  CreationTime: Date
  CompletionTime: Date
  FailureReason: String
  Settings: AwsTranscribeServiceS1l
  ModelSettings: AwsTranscribeServiceS1n
  JobExecutionSettings: AwsTranscribeServiceS1o
  ContentRedaction: AwsTranscribeServiceS1p
  IdentifyLanguage: Boolean
  LanguageOptions: [String]
  IdentifiedLanguageScore: Float
}

type AwsTranscribeServiceS1jTranscript {
  TranscriptFileUri: String
  RedactedTranscriptFileUri: String
}

type AwsTranscribeServiceS1l {
  VocabularyName: String
  ShowSpeakerLabels: Boolean
  MaxSpeakerLabels: Int
  ChannelIdentification: Boolean
  ShowAlternatives: Boolean
  MaxAlternatives: Int
  VocabularyFilterName: String
  VocabularyFilterMethod: String
}

type AwsTranscribeServiceS1n {
  LanguageModelName: String
}

type AwsTranscribeServiceS1o {
  AllowDeferredExecution: Boolean
  DataAccessRoleArn: String
}

type AwsTranscribeServiceS1p {
  RedactionType: String!
  RedactionOutput: String!
}

input AwsTranscribeServiceGetTranscriptionJobInput {
  TranscriptionJobName: String!
}

type AwsTranscribeServiceGetVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  VocabularyState: String
  LastModifiedTime: Date
  FailureReason: String
  DownloadUri: String
}

input AwsTranscribeServiceGetVocabularyInput {
  VocabularyName: String!
}

type AwsTranscribeServiceGetVocabularyFilterOutput {
  VocabularyFilterName: String
  LanguageCode: String
  LastModifiedTime: Date
  DownloadUri: String
}

input AwsTranscribeServiceGetVocabularyFilterInput {
  VocabularyFilterName: String!
}

type AwsTranscribeServiceListLanguageModelsOutput {
  NextToken: String
  Models: [AwsTranscribeServiceSz]
}

input AwsTranscribeServiceListLanguageModelsInput {
  StatusEquals: String
  NameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsTranscribeServiceListMedicalTranscriptionJobsOutput {
  Status: String
  NextToken: String
  MedicalTranscriptionJobSummaries: [AwsTranscribeServiceListMedicalTranscriptionJobsOutputMedicalTranscriptionJobSummaries]
}

type AwsTranscribeServiceListMedicalTranscriptionJobsOutputMedicalTranscriptionJobSummaries {
  MedicalTranscriptionJobName: String
  CreationTime: Date
  StartTime: Date
  CompletionTime: Date
  LanguageCode: String
  TranscriptionJobStatus: String
  FailureReason: String
  OutputLocationType: String
  Specialty: String
  ContentIdentificationType: String
  Type: String
}

input AwsTranscribeServiceListMedicalTranscriptionJobsInput {
  Status: String
  JobNameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsTranscribeServiceListMedicalVocabulariesOutput {
  Status: String
  NextToken: String
  Vocabularies: [AwsTranscribeServiceS2a]
}

type AwsTranscribeServiceS2a {
  VocabularyName: String
  LanguageCode: String
  LastModifiedTime: Date
  VocabularyState: String
}

input AwsTranscribeServiceListMedicalVocabulariesInput {
  NextToken: String
  MaxResults: Int
  StateEquals: String
  NameContains: String
}

type AwsTranscribeServiceListTranscriptionJobsOutput {
  Status: String
  NextToken: String
  TranscriptionJobSummaries: [AwsTranscribeServiceListTranscriptionJobsOutputTranscriptionJobSummaries]
}

type AwsTranscribeServiceListTranscriptionJobsOutputTranscriptionJobSummaries {
  TranscriptionJobName: String
  CreationTime: Date
  StartTime: Date
  CompletionTime: Date
  LanguageCode: String
  TranscriptionJobStatus: String
  FailureReason: String
  OutputLocationType: String
  ContentRedaction: AwsTranscribeServiceS1p
  ModelSettings: AwsTranscribeServiceS1n
  IdentifyLanguage: Boolean
  IdentifiedLanguageScore: Float
}

input AwsTranscribeServiceListTranscriptionJobsInput {
  Status: String
  JobNameContains: String
  NextToken: String
  MaxResults: Int
}

type AwsTranscribeServiceListVocabulariesOutput {
  Status: String
  NextToken: String
  Vocabularies: [AwsTranscribeServiceS2a]
}

input AwsTranscribeServiceListVocabulariesInput {
  NextToken: String
  MaxResults: Int
  StateEquals: String
  NameContains: String
}

type AwsTranscribeServiceListVocabularyFiltersOutput {
  NextToken: String
  VocabularyFilters: [AwsTranscribeServiceListVocabularyFiltersOutputVocabularyFilters]
}

type AwsTranscribeServiceListVocabularyFiltersOutputVocabularyFilters {
  VocabularyFilterName: String
  LanguageCode: String
  LastModifiedTime: Date
}

input AwsTranscribeServiceListVocabularyFiltersInput {
  NextToken: String
  MaxResults: Int
  NameContains: String
}

type AwsTranscribeServiceStartMedicalTranscriptionJobOutput {
  MedicalTranscriptionJob: AwsTranscribeServiceS13
}

input AwsTranscribeServiceStartMedicalTranscriptionJobInput {
  MedicalTranscriptionJobName: String!
  LanguageCode: String!
  MediaSampleRateHertz: Int
  MediaFormat: String
  Media: AwsTranscribeServiceS17Input!
  OutputBucketName: String!
  OutputKey: String
  OutputEncryptionKMSKeyId: String
  Settings: AwsTranscribeServiceS19Input
  ContentIdentificationType: String
  Specialty: String!
  Type: String!
}

input AwsTranscribeServiceS17Input {
  MediaFileUri: String
}

input AwsTranscribeServiceS19Input {
  ShowSpeakerLabels: Boolean
  MaxSpeakerLabels: Int
  ChannelIdentification: Boolean
  ShowAlternatives: Boolean
  MaxAlternatives: Int
  VocabularyName: String
}

type AwsTranscribeServiceStartTranscriptionJobOutput {
  TranscriptionJob: AwsTranscribeServiceS1j
}

input AwsTranscribeServiceStartTranscriptionJobInput {
  TranscriptionJobName: String!
  LanguageCode: String
  MediaSampleRateHertz: Int
  MediaFormat: String
  Media: AwsTranscribeServiceS17Input!
  OutputBucketName: String
  OutputKey: String
  OutputEncryptionKMSKeyId: String
  Settings: AwsTranscribeServiceS1lInput
  ModelSettings: AwsTranscribeServiceS1nInput
  JobExecutionSettings: AwsTranscribeServiceS1oInput
  ContentRedaction: AwsTranscribeServiceS1pInput
  IdentifyLanguage: Boolean
  LanguageOptions: [String]
}

input AwsTranscribeServiceS1lInput {
  VocabularyName: String
  ShowSpeakerLabels: Boolean
  MaxSpeakerLabels: Int
  ChannelIdentification: Boolean
  ShowAlternatives: Boolean
  MaxAlternatives: Int
  VocabularyFilterName: String
  VocabularyFilterMethod: String
}

input AwsTranscribeServiceS1nInput {
  LanguageModelName: String
}

input AwsTranscribeServiceS1oInput {
  AllowDeferredExecution: Boolean
  DataAccessRoleArn: String
}

input AwsTranscribeServiceS1pInput {
  RedactionType: String!
  RedactionOutput: String!
}

type AwsTranscribeServiceUpdateMedicalVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  LastModifiedTime: Date
  VocabularyState: String
}

input AwsTranscribeServiceUpdateMedicalVocabularyInput {
  VocabularyName: String!
  LanguageCode: String!
  VocabularyFileUri: String
}

type AwsTranscribeServiceUpdateVocabularyOutput {
  VocabularyName: String
  LanguageCode: String
  LastModifiedTime: Date
  VocabularyState: String
}

input AwsTranscribeServiceUpdateVocabularyInput {
  VocabularyName: String!
  LanguageCode: String!
  Phrases: [String]
  VocabularyFileUri: String
}

type AwsTranscribeServiceUpdateVocabularyFilterOutput {
  VocabularyFilterName: String
  LanguageCode: String
  LastModifiedTime: Date
}

input AwsTranscribeServiceUpdateVocabularyFilterInput {
  VocabularyFilterName: String!
  Words: [String]
  VocabularyFilterFileUri: String
}

"""AWS Transfer Family (2018-11-05)"""
type AwsTransfer {
  createAccess(input: AwsTransferCreateAccessInput!, config: AwsConfig): AwsTransferCreateAccessOutput
  createServer(input: AwsTransferCreateServerInput, config: AwsConfig): AwsTransferCreateServerOutput
  createUser(input: AwsTransferCreateUserInput!, config: AwsConfig): AwsTransferCreateUserOutput
  deleteAccess(input: AwsTransferDeleteAccessInput!, config: AwsConfig): JSON
  deleteServer(input: AwsTransferDeleteServerInput!, config: AwsConfig): JSON
  deleteSshPublicKey(input: AwsTransferDeleteSshPublicKeyInput!, config: AwsConfig): JSON
  deleteUser(input: AwsTransferDeleteUserInput!, config: AwsConfig): JSON
  describeAccess(input: AwsTransferDescribeAccessInput!, config: AwsConfig): AwsTransferDescribeAccessOutput
  describeSecurityPolicy(input: AwsTransferDescribeSecurityPolicyInput!, config: AwsConfig): AwsTransferDescribeSecurityPolicyOutput
  describeServer(input: AwsTransferDescribeServerInput!, config: AwsConfig): AwsTransferDescribeServerOutput
  describeUser(input: AwsTransferDescribeUserInput!, config: AwsConfig): AwsTransferDescribeUserOutput
  importSshPublicKey(input: AwsTransferImportSshPublicKeyInput!, config: AwsConfig): AwsTransferImportSshPublicKeyOutput
  listAccesses(input: AwsTransferListAccessesInput!, config: AwsConfig): AwsTransferListAccessesOutput
  listSecurityPolicies(input: AwsTransferListSecurityPoliciesInput, config: AwsConfig): AwsTransferListSecurityPoliciesOutput
  listServers(input: AwsTransferListServersInput, config: AwsConfig): AwsTransferListServersOutput
  listTagsForResource(input: AwsTransferListTagsForResourceInput!, config: AwsConfig): AwsTransferListTagsForResourceOutput
  listUsers(input: AwsTransferListUsersInput!, config: AwsConfig): AwsTransferListUsersOutput
  startServer(input: AwsTransferStartServerInput!, config: AwsConfig): JSON
  stopServer(input: AwsTransferStopServerInput!, config: AwsConfig): JSON
  tagResource(input: AwsTransferTagResourceInput!, config: AwsConfig): JSON
  testIdentityProvider(input: AwsTransferTestIdentityProviderInput!, config: AwsConfig): AwsTransferTestIdentityProviderOutput
  untagResource(input: AwsTransferUntagResourceInput!, config: AwsConfig): JSON
  updateAccess(input: AwsTransferUpdateAccessInput!, config: AwsConfig): AwsTransferUpdateAccessOutput
  updateServer(input: AwsTransferUpdateServerInput!, config: AwsConfig): AwsTransferUpdateServerOutput
  updateUser(input: AwsTransferUpdateUserInput!, config: AwsConfig): AwsTransferUpdateUserOutput
}

type AwsTransferCreateAccessOutput {
  ServerId: String!
  ExternalId: String!
}

input AwsTransferCreateAccessInput {
  HomeDirectory: String
  HomeDirectoryType: String
  HomeDirectoryMappings: [AwsTransferS4Input]
  Policy: String
  PosixProfile: AwsTransferS9Input
  Role: String!
  ServerId: String!
  ExternalId: String!
}

input AwsTransferS4Input {
  Entry: String!
  Target: String!
}

input AwsTransferS9Input {
  Uid: JSON!
  Gid: JSON!
  SecondaryGids: [JSON]
}

type AwsTransferCreateServerOutput {
  ServerId: String!
}

input AwsTransferCreateServerInput {
  Certificate: String
  Domain: String
  EndpointDetails: AwsTransferSjInput
  EndpointType: String
  HostKey: String
  IdentityProviderDetails: AwsTransferSuInput
  IdentityProviderType: String
  LoggingRole: String
  Protocols: [String]
  SecurityPolicyName: String
  Tags: [AwsTransferS11Input]
}

input AwsTransferSjInput {
  AddressAllocationIds: [String]
  SubnetIds: [String]
  VpcEndpointId: String
  VpcId: String
  SecurityGroupIds: [String]
}

input AwsTransferSuInput {
  Url: String
  InvocationRole: String
  DirectoryId: String
}

input AwsTransferS11Input {
  Key: String!
  Value: String!
}

type AwsTransferCreateUserOutput {
  ServerId: String!
  UserName: String!
}

input AwsTransferCreateUserInput {
  HomeDirectory: String
  HomeDirectoryType: String
  HomeDirectoryMappings: [AwsTransferS4Input]
  Policy: String
  PosixProfile: AwsTransferS9Input
  Role: String!
  ServerId: String!
  SshPublicKeyBody: String
  Tags: [AwsTransferS11Input]
  UserName: String!
}

input AwsTransferDeleteAccessInput {
  ServerId: String!
  ExternalId: String!
}

input AwsTransferDeleteServerInput {
  ServerId: String!
}

input AwsTransferDeleteSshPublicKeyInput {
  ServerId: String!
  SshPublicKeyId: String!
  UserName: String!
}

input AwsTransferDeleteUserInput {
  ServerId: String!
  UserName: String!
}

type AwsTransferDescribeAccessOutput {
  ServerId: String!
  Access: AwsTransferDescribeAccessOutputAccess!
}

type AwsTransferDescribeAccessOutputAccess {
  HomeDirectory: String
  HomeDirectoryMappings: [AwsTransferS4]
  HomeDirectoryType: String
  Policy: String
  PosixProfile: AwsTransferS9
  Role: String
  ExternalId: String
}

type AwsTransferS4 {
  Entry: String!
  Target: String!
}

type AwsTransferS9 {
  Uid: JSON!
  Gid: JSON!
  SecondaryGids: [JSON]
}

input AwsTransferDescribeAccessInput {
  ServerId: String!
  ExternalId: String!
}

type AwsTransferDescribeSecurityPolicyOutput {
  SecurityPolicy: AwsTransferDescribeSecurityPolicyOutputSecurityPolicy!
}

type AwsTransferDescribeSecurityPolicyOutputSecurityPolicy {
  Fips: Boolean
  SecurityPolicyName: String!
  SshCiphers: [String]
  SshKexs: [String]
  SshMacs: [String]
  TlsCiphers: [String]
}

input AwsTransferDescribeSecurityPolicyInput {
  SecurityPolicyName: String!
}

type AwsTransferDescribeServerOutput {
  Server: AwsTransferDescribeServerOutputServer!
}

type AwsTransferDescribeServerOutputServer {
  Arn: String!
  Certificate: String
  ProtocolDetails: AwsTransferS1s
  Domain: String
  EndpointDetails: AwsTransferSj
  EndpointType: String
  HostKeyFingerprint: String
  IdentityProviderDetails: AwsTransferSu
  IdentityProviderType: String
  LoggingRole: String
  Protocols: [String]
  SecurityPolicyName: String
  ServerId: String
  State: String
  Tags: [AwsTransferS11]
  UserCount: Int
}

type AwsTransferS1s {
  PassiveIp: String
}

type AwsTransferSj {
  AddressAllocationIds: [String]
  SubnetIds: [String]
  VpcEndpointId: String
  VpcId: String
  SecurityGroupIds: [String]
}

type AwsTransferSu {
  Url: String
  InvocationRole: String
  DirectoryId: String
}

type AwsTransferS11 {
  Key: String!
  Value: String!
}

input AwsTransferDescribeServerInput {
  ServerId: String!
}

type AwsTransferDescribeUserOutput {
  ServerId: String!
  User: AwsTransferDescribeUserOutputUser!
}

type AwsTransferDescribeUserOutputUser {
  Arn: String!
  HomeDirectory: String
  HomeDirectoryMappings: [AwsTransferS4]
  HomeDirectoryType: String
  Policy: String
  PosixProfile: AwsTransferS9
  Role: String
  SshPublicKeys: [AwsTransferDescribeUserOutputUserSshPublicKeys]
  Tags: [AwsTransferS11]
  UserName: String
}

type AwsTransferDescribeUserOutputUserSshPublicKeys {
  DateImported: Date!
  SshPublicKeyBody: String!
  SshPublicKeyId: String!
}

input AwsTransferDescribeUserInput {
  ServerId: String!
  UserName: String!
}

type AwsTransferImportSshPublicKeyOutput {
  ServerId: String!
  SshPublicKeyId: String!
  UserName: String!
}

input AwsTransferImportSshPublicKeyInput {
  ServerId: String!
  SshPublicKeyBody: String!
  UserName: String!
}

type AwsTransferListAccessesOutput {
  NextToken: String
  ServerId: String!
  Accesses: [AwsTransferListAccessesOutputAccesses]!
}

type AwsTransferListAccessesOutputAccesses {
  HomeDirectory: String
  HomeDirectoryType: String
  Role: String
  ExternalId: String
}

input AwsTransferListAccessesInput {
  MaxResults: Int
  NextToken: String
  ServerId: String!
}

type AwsTransferListSecurityPoliciesOutput {
  NextToken: String
  SecurityPolicyNames: [String]!
}

input AwsTransferListSecurityPoliciesInput {
  MaxResults: Int
  NextToken: String
}

type AwsTransferListServersOutput {
  NextToken: String
  Servers: [AwsTransferListServersOutputServers]!
}

type AwsTransferListServersOutputServers {
  Arn: String!
  Domain: String
  IdentityProviderType: String
  EndpointType: String
  LoggingRole: String
  ServerId: String
  State: String
  UserCount: Int
}

input AwsTransferListServersInput {
  MaxResults: Int
  NextToken: String
}

type AwsTransferListTagsForResourceOutput {
  Arn: String
  NextToken: String
  Tags: [AwsTransferS11]
}

input AwsTransferListTagsForResourceInput {
  Arn: String!
  MaxResults: Int
  NextToken: String
}

type AwsTransferListUsersOutput {
  NextToken: String
  ServerId: String!
  Users: [AwsTransferListUsersOutputUsers]!
}

type AwsTransferListUsersOutputUsers {
  Arn: String!
  HomeDirectory: String
  HomeDirectoryType: String
  Role: String
  SshPublicKeyCount: Int
  UserName: String
}

input AwsTransferListUsersInput {
  MaxResults: Int
  NextToken: String
  ServerId: String!
}

input AwsTransferStartServerInput {
  ServerId: String!
}

input AwsTransferStopServerInput {
  ServerId: String!
}

input AwsTransferTagResourceInput {
  Arn: String!
  Tags: [AwsTransferS11Input]!
}

type AwsTransferTestIdentityProviderOutput {
  Response: String
  StatusCode: Int!
  Message: String
  Url: String!
}

input AwsTransferTestIdentityProviderInput {
  ServerId: String!
  ServerProtocol: String
  SourceIp: String
  UserName: String!
  UserPassword: String
}

input AwsTransferUntagResourceInput {
  Arn: String!
  TagKeys: [String]!
}

type AwsTransferUpdateAccessOutput {
  ServerId: String!
  ExternalId: String!
}

input AwsTransferUpdateAccessInput {
  HomeDirectory: String
  HomeDirectoryType: String
  HomeDirectoryMappings: [AwsTransferS4Input]
  Policy: String
  PosixProfile: AwsTransferS9Input
  Role: String
  ServerId: String!
  ExternalId: String!
}

type AwsTransferUpdateServerOutput {
  ServerId: String!
}

input AwsTransferUpdateServerInput {
  Certificate: String
  ProtocolDetails: AwsTransferS1sInput
  EndpointDetails: AwsTransferSjInput
  EndpointType: String
  HostKey: String
  IdentityProviderDetails: AwsTransferSuInput
  LoggingRole: String
  Protocols: [String]
  SecurityPolicyName: String
  ServerId: String!
}

input AwsTransferS1sInput {
  PassiveIp: String
}

type AwsTransferUpdateUserOutput {
  ServerId: String!
  UserName: String!
}

input AwsTransferUpdateUserInput {
  HomeDirectory: String
  HomeDirectoryType: String
  HomeDirectoryMappings: [AwsTransferS4Input]
  Policy: String
  PosixProfile: AwsTransferS9Input
  Role: String
  ServerId: String!
  UserName: String!
}

"""Amazon Translate (2017-07-01)"""
type AwsTranslate {
  createParallelData(input: AwsTranslateCreateParallelDataInput!, config: AwsConfig): AwsTranslateCreateParallelDataOutput
  deleteParallelData(input: AwsTranslateDeleteParallelDataInput!, config: AwsConfig): AwsTranslateDeleteParallelDataOutput
  deleteTerminology(input: AwsTranslateDeleteTerminologyInput!, config: AwsConfig): JSON
  describeTextTranslationJob(input: AwsTranslateDescribeTextTranslationJobInput!, config: AwsConfig): AwsTranslateDescribeTextTranslationJobOutput
  getParallelData(input: AwsTranslateGetParallelDataInput!, config: AwsConfig): AwsTranslateGetParallelDataOutput
  getTerminology(input: AwsTranslateGetTerminologyInput!, config: AwsConfig): AwsTranslateGetTerminologyOutput
  importTerminology(input: AwsTranslateImportTerminologyInput!, config: AwsConfig): AwsTranslateImportTerminologyOutput
  listParallelData(input: AwsTranslateListParallelDataInput, config: AwsConfig): AwsTranslateListParallelDataOutput
  listTerminologies(input: AwsTranslateListTerminologiesInput, config: AwsConfig): AwsTranslateListTerminologiesOutput
  listTextTranslationJobs(input: AwsTranslateListTextTranslationJobsInput, config: AwsConfig): AwsTranslateListTextTranslationJobsOutput
  startTextTranslationJob(input: AwsTranslateStartTextTranslationJobInput!, config: AwsConfig): AwsTranslateStartTextTranslationJobOutput
  stopTextTranslationJob(input: AwsTranslateStopTextTranslationJobInput!, config: AwsConfig): AwsTranslateStopTextTranslationJobOutput
  translateText(input: AwsTranslateTranslateTextInput!, config: AwsConfig): AwsTranslateTranslateTextOutput
  updateParallelData(input: AwsTranslateUpdateParallelDataInput!, config: AwsConfig): AwsTranslateUpdateParallelDataOutput
}

type AwsTranslateCreateParallelDataOutput {
  Name: String
  Status: String
}

input AwsTranslateCreateParallelDataInput {
  Name: String!
  Description: String
  ParallelDataConfig: AwsTranslateS4Input!
  EncryptionKey: AwsTranslateS7Input
  ClientToken: String!
}

input AwsTranslateS4Input {
  S3Uri: String!
  Format: String!
}

input AwsTranslateS7Input {
  Type: String!
  Id: String!
}

type AwsTranslateDeleteParallelDataOutput {
  Name: String
  Status: String
}

input AwsTranslateDeleteParallelDataInput {
  Name: String!
}

input AwsTranslateDeleteTerminologyInput {
  Name: String!
}

type AwsTranslateDescribeTextTranslationJobOutput {
  TextTranslationJobProperties: AwsTranslateSj
}

type AwsTranslateSj {
  JobId: String
  JobName: String
  JobStatus: String
  JobDetails: AwsTranslateSjJobDetails
  SourceLanguageCode: String
  TargetLanguageCodes: [String]
  TerminologyNames: [String]
  ParallelDataNames: [String]
  Message: String
  SubmittedTime: Date
  EndTime: Date
  InputDataConfig: AwsTranslateSt
  OutputDataConfig: AwsTranslateSv
  DataAccessRoleArn: String
}

type AwsTranslateSjJobDetails {
  TranslatedDocumentsCount: Int
  DocumentsWithErrorsCount: Int
  InputDocumentsCount: Int
}

type AwsTranslateSt {
  S3Uri: String!
  ContentType: String!
}

type AwsTranslateSv {
  S3Uri: String!
}

input AwsTranslateDescribeTextTranslationJobInput {
  JobId: String!
}

type AwsTranslateGetParallelDataOutput {
  ParallelDataProperties: AwsTranslateSz
  DataLocation: AwsTranslateS13
  AuxiliaryDataLocation: AwsTranslateS13
  LatestUpdateAttemptAuxiliaryDataLocation: AwsTranslateS13
}

type AwsTranslateSz {
  Name: String
  Arn: String
  Description: String
  Status: String
  SourceLanguageCode: String
  TargetLanguageCodes: [String]
  ParallelDataConfig: AwsTranslateS4
  Message: String
  ImportedDataSize: JSON
  ImportedRecordCount: JSON
  FailedRecordCount: JSON
  SkippedRecordCount: JSON
  EncryptionKey: AwsTranslateS7
  CreatedAt: Date
  LastUpdatedAt: Date
  LatestUpdateAttemptStatus: String
  LatestUpdateAttemptAt: Date
}

type AwsTranslateS4 {
  S3Uri: String!
  Format: String!
}

type AwsTranslateS7 {
  Type: String!
  Id: String!
}

type AwsTranslateS13 {
  RepositoryType: String!
  Location: String!
}

input AwsTranslateGetParallelDataInput {
  Name: String!
}

type AwsTranslateGetTerminologyOutput {
  TerminologyProperties: AwsTranslateS18
  TerminologyDataLocation: AwsTranslateGetTerminologyOutputTerminologyDataLocation
}

type AwsTranslateS18 {
  Name: String
  Description: String
  Arn: String
  SourceLanguageCode: String
  TargetLanguageCodes: [String]
  EncryptionKey: AwsTranslateS7
  SizeBytes: Int
  TermCount: Int
  CreatedAt: Date
  LastUpdatedAt: Date
}

type AwsTranslateGetTerminologyOutputTerminologyDataLocation {
  RepositoryType: String!
  Location: String!
}

input AwsTranslateGetTerminologyInput {
  Name: String!
  TerminologyDataFormat: String!
}

type AwsTranslateImportTerminologyOutput {
  TerminologyProperties: AwsTranslateS18
}

input AwsTranslateImportTerminologyInput {
  Name: String!
  MergeStrategy: String!
  Description: String
  TerminologyData: AwsTranslateImportTerminologyTerminologyDataInput!
  EncryptionKey: AwsTranslateS7Input
}

input AwsTranslateImportTerminologyTerminologyDataInput {
  File: JSON!
  Format: String!
}

type AwsTranslateListParallelDataOutput {
  ParallelDataPropertiesList: [AwsTranslateSz]
  NextToken: String
}

input AwsTranslateListParallelDataInput {
  NextToken: String
  MaxResults: Int
}

type AwsTranslateListTerminologiesOutput {
  TerminologyPropertiesList: [AwsTranslateS18]
  NextToken: String
}

input AwsTranslateListTerminologiesInput {
  NextToken: String
  MaxResults: Int
}

type AwsTranslateListTextTranslationJobsOutput {
  TextTranslationJobPropertiesList: [AwsTranslateSj]
  NextToken: String
}

input AwsTranslateListTextTranslationJobsInput {
  Filter: AwsTranslateListTextTranslationJobsFilterInput
  NextToken: String
  MaxResults: Int
}

input AwsTranslateListTextTranslationJobsFilterInput {
  JobName: String
  JobStatus: String
  SubmittedBeforeTime: Date
  SubmittedAfterTime: Date
}

type AwsTranslateStartTextTranslationJobOutput {
  JobId: String
  JobStatus: String
}

input AwsTranslateStartTextTranslationJobInput {
  JobName: String
  InputDataConfig: AwsTranslateStInput!
  OutputDataConfig: AwsTranslateSvInput!
  DataAccessRoleArn: String!
  SourceLanguageCode: String!
  TargetLanguageCodes: [String]!
  TerminologyNames: [String]
  ParallelDataNames: [String]
  ClientToken: String!
}

input AwsTranslateStInput {
  S3Uri: String!
  ContentType: String!
}

input AwsTranslateSvInput {
  S3Uri: String!
}

type AwsTranslateStopTextTranslationJobOutput {
  JobId: String
  JobStatus: String
}

input AwsTranslateStopTextTranslationJobInput {
  JobId: String!
}

type AwsTranslateTranslateTextOutput {
  TranslatedText: String!
  SourceLanguageCode: String!
  TargetLanguageCode: String!
  AppliedTerminologies: [AwsTranslateTranslateTextOutputAppliedTerminologies]
}

type AwsTranslateTranslateTextOutputAppliedTerminologies {
  Name: String
  Terms: [AwsTranslateTranslateTextOutputAppliedTerminologiesTerms]
}

type AwsTranslateTranslateTextOutputAppliedTerminologiesTerms {
  SourceText: String
  TargetText: String
}

input AwsTranslateTranslateTextInput {
  Text: String!
  TerminologyNames: [String]
  SourceLanguageCode: String!
  TargetLanguageCode: String!
}

type AwsTranslateUpdateParallelDataOutput {
  Name: String
  Status: String
  LatestUpdateAttemptStatus: String
  LatestUpdateAttemptAt: Date
}

input AwsTranslateUpdateParallelDataInput {
  Name: String!
  Description: String
  ParallelDataConfig: AwsTranslateS4Input!
  ClientToken: String!
}

"""AWS WAF (2015-08-24)"""
type AwsWAF {
  createByteMatchSet(input: AwsWAFCreateByteMatchSetInput!, config: AwsConfig): AwsWAFCreateByteMatchSetOutput
  createGeoMatchSet(input: AwsWAFCreateGeoMatchSetInput!, config: AwsConfig): AwsWAFCreateGeoMatchSetOutput
  createIPSet(input: AwsWAFCreateIPSetInput!, config: AwsConfig): AwsWAFCreateIPSetOutput
  createRateBasedRule(input: AwsWAFCreateRateBasedRuleInput!, config: AwsConfig): AwsWAFCreateRateBasedRuleOutput
  createRegexMatchSet(input: AwsWAFCreateRegexMatchSetInput!, config: AwsConfig): AwsWAFCreateRegexMatchSetOutput
  createRegexPatternSet(input: AwsWAFCreateRegexPatternSetInput!, config: AwsConfig): AwsWAFCreateRegexPatternSetOutput
  createRule(input: AwsWAFCreateRuleInput!, config: AwsConfig): AwsWAFCreateRuleOutput
  createRuleGroup(input: AwsWAFCreateRuleGroupInput!, config: AwsConfig): AwsWAFCreateRuleGroupOutput
  createSizeConstraintSet(input: AwsWAFCreateSizeConstraintSetInput!, config: AwsConfig): AwsWAFCreateSizeConstraintSetOutput
  createSqlInjectionMatchSet(input: AwsWAFCreateSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFCreateSqlInjectionMatchSetOutput
  createWebACL(input: AwsWAFCreateWebACLInput!, config: AwsConfig): AwsWAFCreateWebACLOutput
  createWebACLMigrationStack(input: AwsWAFCreateWebACLMigrationStackInput!, config: AwsConfig): AwsWAFCreateWebACLMigrationStackOutput
  createXssMatchSet(input: AwsWAFCreateXssMatchSetInput!, config: AwsConfig): AwsWAFCreateXssMatchSetOutput
  deleteByteMatchSet(input: AwsWAFDeleteByteMatchSetInput!, config: AwsConfig): AwsWAFDeleteByteMatchSetOutput
  deleteGeoMatchSet(input: AwsWAFDeleteGeoMatchSetInput!, config: AwsConfig): AwsWAFDeleteGeoMatchSetOutput
  deleteIPSet(input: AwsWAFDeleteIPSetInput!, config: AwsConfig): AwsWAFDeleteIPSetOutput
  deleteLoggingConfiguration(input: AwsWAFDeleteLoggingConfigurationInput!, config: AwsConfig): JSON
  deletePermissionPolicy(input: AwsWAFDeletePermissionPolicyInput!, config: AwsConfig): JSON
  deleteRateBasedRule(input: AwsWAFDeleteRateBasedRuleInput!, config: AwsConfig): AwsWAFDeleteRateBasedRuleOutput
  deleteRegexMatchSet(input: AwsWAFDeleteRegexMatchSetInput!, config: AwsConfig): AwsWAFDeleteRegexMatchSetOutput
  deleteRegexPatternSet(input: AwsWAFDeleteRegexPatternSetInput!, config: AwsConfig): AwsWAFDeleteRegexPatternSetOutput
  deleteRule(input: AwsWAFDeleteRuleInput!, config: AwsConfig): AwsWAFDeleteRuleOutput
  deleteRuleGroup(input: AwsWAFDeleteRuleGroupInput!, config: AwsConfig): AwsWAFDeleteRuleGroupOutput
  deleteSizeConstraintSet(input: AwsWAFDeleteSizeConstraintSetInput!, config: AwsConfig): AwsWAFDeleteSizeConstraintSetOutput
  deleteSqlInjectionMatchSet(input: AwsWAFDeleteSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFDeleteSqlInjectionMatchSetOutput
  deleteWebACL(input: AwsWAFDeleteWebACLInput!, config: AwsConfig): AwsWAFDeleteWebACLOutput
  deleteXssMatchSet(input: AwsWAFDeleteXssMatchSetInput!, config: AwsConfig): AwsWAFDeleteXssMatchSetOutput
  getByteMatchSet(input: AwsWAFGetByteMatchSetInput!, config: AwsConfig): AwsWAFGetByteMatchSetOutput
  getChangeToken(input: JSON, config: AwsConfig): AwsWAFGetChangeTokenOutput
  getChangeTokenStatus(input: AwsWAFGetChangeTokenStatusInput!, config: AwsConfig): AwsWAFGetChangeTokenStatusOutput
  getGeoMatchSet(input: AwsWAFGetGeoMatchSetInput!, config: AwsConfig): AwsWAFGetGeoMatchSetOutput
  getIPSet(input: AwsWAFGetIPSetInput!, config: AwsConfig): AwsWAFGetIPSetOutput
  getLoggingConfiguration(input: AwsWAFGetLoggingConfigurationInput!, config: AwsConfig): AwsWAFGetLoggingConfigurationOutput
  getPermissionPolicy(input: AwsWAFGetPermissionPolicyInput!, config: AwsConfig): AwsWAFGetPermissionPolicyOutput
  getRateBasedRule(input: AwsWAFGetRateBasedRuleInput!, config: AwsConfig): AwsWAFGetRateBasedRuleOutput
  getRateBasedRuleManagedKeys(input: AwsWAFGetRateBasedRuleManagedKeysInput!, config: AwsConfig): AwsWAFGetRateBasedRuleManagedKeysOutput
  getRegexMatchSet(input: AwsWAFGetRegexMatchSetInput!, config: AwsConfig): AwsWAFGetRegexMatchSetOutput
  getRegexPatternSet(input: AwsWAFGetRegexPatternSetInput!, config: AwsConfig): AwsWAFGetRegexPatternSetOutput
  getRule(input: AwsWAFGetRuleInput!, config: AwsConfig): AwsWAFGetRuleOutput
  getRuleGroup(input: AwsWAFGetRuleGroupInput!, config: AwsConfig): AwsWAFGetRuleGroupOutput
  getSampledRequests(input: AwsWAFGetSampledRequestsInput!, config: AwsConfig): AwsWAFGetSampledRequestsOutput
  getSizeConstraintSet(input: AwsWAFGetSizeConstraintSetInput!, config: AwsConfig): AwsWAFGetSizeConstraintSetOutput
  getSqlInjectionMatchSet(input: AwsWAFGetSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFGetSqlInjectionMatchSetOutput
  getWebACL(input: AwsWAFGetWebACLInput!, config: AwsConfig): AwsWAFGetWebACLOutput
  getXssMatchSet(input: AwsWAFGetXssMatchSetInput!, config: AwsConfig): AwsWAFGetXssMatchSetOutput
  listActivatedRulesInRuleGroup(input: AwsWAFListActivatedRulesInRuleGroupInput, config: AwsConfig): AwsWAFListActivatedRulesInRuleGroupOutput
  listByteMatchSets(input: AwsWAFListByteMatchSetsInput, config: AwsConfig): AwsWAFListByteMatchSetsOutput
  listGeoMatchSets(input: AwsWAFListGeoMatchSetsInput, config: AwsConfig): AwsWAFListGeoMatchSetsOutput
  listIPSets(input: AwsWAFListIPSetsInput, config: AwsConfig): AwsWAFListIPSetsOutput
  listLoggingConfigurations(input: AwsWAFListLoggingConfigurationsInput, config: AwsConfig): AwsWAFListLoggingConfigurationsOutput
  listRateBasedRules(input: AwsWAFListRateBasedRulesInput, config: AwsConfig): AwsWAFListRateBasedRulesOutput
  listRegexMatchSets(input: AwsWAFListRegexMatchSetsInput, config: AwsConfig): AwsWAFListRegexMatchSetsOutput
  listRegexPatternSets(input: AwsWAFListRegexPatternSetsInput, config: AwsConfig): AwsWAFListRegexPatternSetsOutput
  listRuleGroups(input: AwsWAFListRuleGroupsInput, config: AwsConfig): AwsWAFListRuleGroupsOutput
  listRules(input: AwsWAFListRulesInput, config: AwsConfig): AwsWAFListRulesOutput
  listSizeConstraintSets(input: AwsWAFListSizeConstraintSetsInput, config: AwsConfig): AwsWAFListSizeConstraintSetsOutput
  listSqlInjectionMatchSets(input: AwsWAFListSqlInjectionMatchSetsInput, config: AwsConfig): AwsWAFListSqlInjectionMatchSetsOutput
  listSubscribedRuleGroups(input: AwsWAFListSubscribedRuleGroupsInput, config: AwsConfig): AwsWAFListSubscribedRuleGroupsOutput
  listTagsForResource(input: AwsWAFListTagsForResourceInput!, config: AwsConfig): AwsWAFListTagsForResourceOutput
  listWebACLs(input: AwsWAFListWebACLsInput, config: AwsConfig): AwsWAFListWebACLsOutput
  listXssMatchSets(input: AwsWAFListXssMatchSetsInput, config: AwsConfig): AwsWAFListXssMatchSetsOutput
  putLoggingConfiguration(input: AwsWAFPutLoggingConfigurationInput!, config: AwsConfig): AwsWAFPutLoggingConfigurationOutput
  putPermissionPolicy(input: AwsWAFPutPermissionPolicyInput!, config: AwsConfig): JSON
  tagResource(input: AwsWAFTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWAFUntagResourceInput!, config: AwsConfig): JSON
  updateByteMatchSet(input: AwsWAFUpdateByteMatchSetInput!, config: AwsConfig): AwsWAFUpdateByteMatchSetOutput
  updateGeoMatchSet(input: AwsWAFUpdateGeoMatchSetInput!, config: AwsConfig): AwsWAFUpdateGeoMatchSetOutput
  updateIPSet(input: AwsWAFUpdateIPSetInput!, config: AwsConfig): AwsWAFUpdateIPSetOutput
  updateRateBasedRule(input: AwsWAFUpdateRateBasedRuleInput!, config: AwsConfig): AwsWAFUpdateRateBasedRuleOutput
  updateRegexMatchSet(input: AwsWAFUpdateRegexMatchSetInput!, config: AwsConfig): AwsWAFUpdateRegexMatchSetOutput
  updateRegexPatternSet(input: AwsWAFUpdateRegexPatternSetInput!, config: AwsConfig): AwsWAFUpdateRegexPatternSetOutput
  updateRule(input: AwsWAFUpdateRuleInput!, config: AwsConfig): AwsWAFUpdateRuleOutput
  updateRuleGroup(input: AwsWAFUpdateRuleGroupInput!, config: AwsConfig): AwsWAFUpdateRuleGroupOutput
  updateSizeConstraintSet(input: AwsWAFUpdateSizeConstraintSetInput!, config: AwsConfig): AwsWAFUpdateSizeConstraintSetOutput
  updateSqlInjectionMatchSet(input: AwsWAFUpdateSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFUpdateSqlInjectionMatchSetOutput
  updateWebACL(input: AwsWAFUpdateWebACLInput!, config: AwsConfig): AwsWAFUpdateWebACLOutput
  updateXssMatchSet(input: AwsWAFUpdateXssMatchSetInput!, config: AwsConfig): AwsWAFUpdateXssMatchSetOutput
}

type AwsWAFCreateByteMatchSetOutput {
  ByteMatchSet: AwsWAFS5
  ChangeToken: String
}

type AwsWAFS5 {
  ByteMatchSetId: String!
  Name: String
  ByteMatchTuples: [AwsWAFS8]!
}

type AwsWAFS8 {
  FieldToMatch: AwsWAFS9!
  TargetString: JSON!
  TextTransformation: String!
  PositionalConstraint: String!
}

type AwsWAFS9 {
  Type: String!
  Data: String
}

input AwsWAFCreateByteMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateGeoMatchSetOutput {
  GeoMatchSet: AwsWAFSh
  ChangeToken: String
}

type AwsWAFSh {
  GeoMatchSetId: String!
  Name: String
  GeoMatchConstraints: [AwsWAFSj]!
}

type AwsWAFSj {
  Type: String!
  Value: String!
}

input AwsWAFCreateGeoMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateIPSetOutput {
  IPSet: AwsWAFSo
  ChangeToken: String
}

type AwsWAFSo {
  IPSetId: String!
  Name: String
  IPSetDescriptors: [AwsWAFSq]!
}

type AwsWAFSq {
  Type: String!
  Value: String!
}

input AwsWAFCreateIPSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateRateBasedRuleOutput {
  Rule: AwsWAFS12
  ChangeToken: String
}

type AwsWAFS12 {
  RuleId: String!
  Name: String
  MetricName: String
  MatchPredicates: [AwsWAFS14]!
  RateKey: String!
  RateLimit: JSON!
}

type AwsWAFS14 {
  Negated: Boolean!
  Type: String!
  DataId: String!
}

input AwsWAFCreateRateBasedRuleInput {
  Name: String!
  MetricName: String!
  RateKey: String!
  RateLimit: JSON!
  ChangeToken: String!
  Tags: [AwsWAFSxInput]
}

input AwsWAFSxInput {
  Key: String!
  Value: String!
}

type AwsWAFCreateRegexMatchSetOutput {
  RegexMatchSet: AwsWAFS19
  ChangeToken: String
}

type AwsWAFS19 {
  RegexMatchSetId: String
  Name: String
  RegexMatchTuples: [AwsWAFS1b]
}

type AwsWAFS1b {
  FieldToMatch: AwsWAFS9!
  TextTransformation: String!
  RegexPatternSetId: String!
}

input AwsWAFCreateRegexMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateRegexPatternSetOutput {
  RegexPatternSet: AwsWAFS1e
  ChangeToken: String
}

type AwsWAFS1e {
  RegexPatternSetId: String!
  Name: String
  RegexPatternStrings: [String]!
}

input AwsWAFCreateRegexPatternSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateRuleOutput {
  Rule: AwsWAFS1j
  ChangeToken: String
}

type AwsWAFS1j {
  RuleId: String!
  Name: String
  MetricName: String
  Predicates: [AwsWAFS14]!
}

input AwsWAFCreateRuleInput {
  Name: String!
  MetricName: String!
  ChangeToken: String!
  Tags: [AwsWAFSxInput]
}

type AwsWAFCreateRuleGroupOutput {
  RuleGroup: AwsWAFS1m
  ChangeToken: String
}

type AwsWAFS1m {
  RuleGroupId: String!
  Name: String
  MetricName: String
}

input AwsWAFCreateRuleGroupInput {
  Name: String!
  MetricName: String!
  ChangeToken: String!
  Tags: [AwsWAFSxInput]
}

type AwsWAFCreateSizeConstraintSetOutput {
  SizeConstraintSet: AwsWAFS1p
  ChangeToken: String
}

type AwsWAFS1p {
  SizeConstraintSetId: String!
  Name: String
  SizeConstraints: [AwsWAFS1r]!
}

type AwsWAFS1r {
  FieldToMatch: AwsWAFS9!
  TextTransformation: String!
  ComparisonOperator: String!
  Size: JSON!
}

input AwsWAFCreateSizeConstraintSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateSqlInjectionMatchSetOutput {
  SqlInjectionMatchSet: AwsWAFS1w
  ChangeToken: String
}

type AwsWAFS1w {
  SqlInjectionMatchSetId: String!
  Name: String
  SqlInjectionMatchTuples: [AwsWAFS1y]!
}

type AwsWAFS1y {
  FieldToMatch: AwsWAFS9!
  TextTransformation: String!
}

input AwsWAFCreateSqlInjectionMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFCreateWebACLOutput {
  WebACL: AwsWAFS23
  ChangeToken: String
}

type AwsWAFS23 {
  WebACLId: String!
  Name: String
  MetricName: String
  DefaultAction: AwsWAFS20!
  Rules: [AwsWAFS25]!
  WebACLArn: String
}

type AwsWAFS20 {
  Type: String!
}

type AwsWAFS25 {
  Priority: Int!
  RuleId: String!
  Action: AwsWAFS20
  OverrideAction: AwsWAFS25OverrideAction
  Type: String
  ExcludedRules: [AwsWAFS25ExcludedRules]
}

type AwsWAFS25OverrideAction {
  Type: String!
}

type AwsWAFS25ExcludedRules {
  RuleId: String!
}

input AwsWAFCreateWebACLInput {
  Name: String!
  MetricName: String!
  DefaultAction: AwsWAFS20Input!
  ChangeToken: String!
  Tags: [AwsWAFSxInput]
}

input AwsWAFS20Input {
  Type: String!
}

type AwsWAFCreateWebACLMigrationStackOutput {
  S3ObjectUrl: String!
}

input AwsWAFCreateWebACLMigrationStackInput {
  WebACLId: String!
  S3BucketName: String!
  IgnoreUnsupportedType: Boolean!
}

type AwsWAFCreateXssMatchSetOutput {
  XssMatchSet: AwsWAFS2k
  ChangeToken: String
}

type AwsWAFS2k {
  XssMatchSetId: String!
  Name: String
  XssMatchTuples: [AwsWAFS2m]!
}

type AwsWAFS2m {
  FieldToMatch: AwsWAFS9!
  TextTransformation: String!
}

input AwsWAFCreateXssMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFDeleteByteMatchSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteByteMatchSetInput {
  ByteMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteGeoMatchSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteGeoMatchSetInput {
  GeoMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteIPSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteIPSetInput {
  IPSetId: String!
  ChangeToken: String!
}

input AwsWAFDeleteLoggingConfigurationInput {
  ResourceArn: String!
}

input AwsWAFDeletePermissionPolicyInput {
  ResourceArn: String!
}

type AwsWAFDeleteRateBasedRuleOutput {
  ChangeToken: String
}

input AwsWAFDeleteRateBasedRuleInput {
  RuleId: String!
  ChangeToken: String!
}

type AwsWAFDeleteRegexMatchSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteRegexMatchSetInput {
  RegexMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteRegexPatternSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteRegexPatternSetInput {
  RegexPatternSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteRuleOutput {
  ChangeToken: String
}

input AwsWAFDeleteRuleInput {
  RuleId: String!
  ChangeToken: String!
}

type AwsWAFDeleteRuleGroupOutput {
  ChangeToken: String
}

input AwsWAFDeleteRuleGroupInput {
  RuleGroupId: String!
  ChangeToken: String!
}

type AwsWAFDeleteSizeConstraintSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteSizeConstraintSetInput {
  SizeConstraintSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteSqlInjectionMatchSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFDeleteWebACLOutput {
  ChangeToken: String
}

input AwsWAFDeleteWebACLInput {
  WebACLId: String!
  ChangeToken: String!
}

type AwsWAFDeleteXssMatchSetOutput {
  ChangeToken: String
}

input AwsWAFDeleteXssMatchSetInput {
  XssMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFGetByteMatchSetOutput {
  ByteMatchSet: AwsWAFS5
}

input AwsWAFGetByteMatchSetInput {
  ByteMatchSetId: String!
}

type AwsWAFGetChangeTokenOutput {
  ChangeToken: String
}

type AwsWAFGetChangeTokenStatusOutput {
  ChangeTokenStatus: String
}

input AwsWAFGetChangeTokenStatusInput {
  ChangeToken: String!
}

type AwsWAFGetGeoMatchSetOutput {
  GeoMatchSet: AwsWAFSh
}

input AwsWAFGetGeoMatchSetInput {
  GeoMatchSetId: String!
}

type AwsWAFGetIPSetOutput {
  IPSet: AwsWAFSo
}

input AwsWAFGetIPSetInput {
  IPSetId: String!
}

type AwsWAFGetLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFS3s
}

type AwsWAFS3s {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFS9]
}

input AwsWAFGetLoggingConfigurationInput {
  ResourceArn: String!
}

type AwsWAFGetPermissionPolicyOutput {
  Policy: String
}

input AwsWAFGetPermissionPolicyInput {
  ResourceArn: String!
}

type AwsWAFGetRateBasedRuleOutput {
  Rule: AwsWAFS12
}

input AwsWAFGetRateBasedRuleInput {
  RuleId: String!
}

type AwsWAFGetRateBasedRuleManagedKeysOutput {
  ManagedKeys: [String]
  NextMarker: String
}

input AwsWAFGetRateBasedRuleManagedKeysInput {
  RuleId: String!
  NextMarker: String
}

type AwsWAFGetRegexMatchSetOutput {
  RegexMatchSet: AwsWAFS19
}

input AwsWAFGetRegexMatchSetInput {
  RegexMatchSetId: String!
}

type AwsWAFGetRegexPatternSetOutput {
  RegexPatternSet: AwsWAFS1e
}

input AwsWAFGetRegexPatternSetInput {
  RegexPatternSetId: String!
}

type AwsWAFGetRuleOutput {
  Rule: AwsWAFS1j
}

input AwsWAFGetRuleInput {
  RuleId: String!
}

type AwsWAFGetRuleGroupOutput {
  RuleGroup: AwsWAFS1m
}

input AwsWAFGetRuleGroupInput {
  RuleGroupId: String!
}

type AwsWAFGetSampledRequestsOutput {
  SampledRequests: [AwsWAFGetSampledRequestsOutputSampledRequests]
  PopulationSize: JSON
  TimeWindow: AwsWAFS4e
}

type AwsWAFGetSampledRequestsOutputSampledRequests {
  Request: AwsWAFGetSampledRequestsOutputSampledRequestsRequest!
  Weight: JSON!
  Timestamp: Date
  Action: String
  RuleWithinRuleGroup: String
}

type AwsWAFGetSampledRequestsOutputSampledRequestsRequest {
  ClientIP: String
  Country: String
  URI: String
  Method: String
  HTTPVersion: String
  Headers: [AwsWAFGetSampledRequestsOutputSampledRequestsRequestHeaders]
}

type AwsWAFGetSampledRequestsOutputSampledRequestsRequestHeaders {
  Name: String
  Value: String
}

type AwsWAFS4e {
  StartTime: Date!
  EndTime: Date!
}

input AwsWAFGetSampledRequestsInput {
  WebAclId: String!
  RuleId: String!
  TimeWindow: AwsWAFS4eInput!
  MaxItems: JSON!
}

input AwsWAFS4eInput {
  StartTime: Date!
  EndTime: Date!
}

type AwsWAFGetSizeConstraintSetOutput {
  SizeConstraintSet: AwsWAFS1p
}

input AwsWAFGetSizeConstraintSetInput {
  SizeConstraintSetId: String!
}

type AwsWAFGetSqlInjectionMatchSetOutput {
  SqlInjectionMatchSet: AwsWAFS1w
}

input AwsWAFGetSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
}

type AwsWAFGetWebACLOutput {
  WebACL: AwsWAFS23
}

input AwsWAFGetWebACLInput {
  WebACLId: String!
}

type AwsWAFGetXssMatchSetOutput {
  XssMatchSet: AwsWAFS2k
}

input AwsWAFGetXssMatchSetInput {
  XssMatchSetId: String!
}

type AwsWAFListActivatedRulesInRuleGroupOutput {
  NextMarker: String
  ActivatedRules: [AwsWAFS25]
}

input AwsWAFListActivatedRulesInRuleGroupInput {
  RuleGroupId: String
  NextMarker: String
  Limit: Int
}

type AwsWAFListByteMatchSetsOutput {
  NextMarker: String
  ByteMatchSets: [AwsWAFListByteMatchSetsOutputByteMatchSets]
}

type AwsWAFListByteMatchSetsOutputByteMatchSets {
  ByteMatchSetId: String!
  Name: String!
}

input AwsWAFListByteMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListGeoMatchSetsOutput {
  NextMarker: String
  GeoMatchSets: [AwsWAFListGeoMatchSetsOutputGeoMatchSets]
}

type AwsWAFListGeoMatchSetsOutputGeoMatchSets {
  GeoMatchSetId: String!
  Name: String!
}

input AwsWAFListGeoMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListIPSetsOutput {
  NextMarker: String
  IPSets: [AwsWAFListIPSetsOutputIPSets]
}

type AwsWAFListIPSetsOutputIPSets {
  IPSetId: String!
  Name: String!
}

input AwsWAFListIPSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListLoggingConfigurationsOutput {
  LoggingConfigurations: [AwsWAFS3s]
  NextMarker: String
}

input AwsWAFListLoggingConfigurationsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListRateBasedRulesOutput {
  NextMarker: String
  Rules: [AwsWAFS5p]
}

type AwsWAFS5p {
  RuleId: String!
  Name: String!
}

input AwsWAFListRateBasedRulesInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListRegexMatchSetsOutput {
  NextMarker: String
  RegexMatchSets: [AwsWAFListRegexMatchSetsOutputRegexMatchSets]
}

type AwsWAFListRegexMatchSetsOutputRegexMatchSets {
  RegexMatchSetId: String!
  Name: String!
}

input AwsWAFListRegexMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListRegexPatternSetsOutput {
  NextMarker: String
  RegexPatternSets: [AwsWAFListRegexPatternSetsOutputRegexPatternSets]
}

type AwsWAFListRegexPatternSetsOutputRegexPatternSets {
  RegexPatternSetId: String!
  Name: String!
}

input AwsWAFListRegexPatternSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListRuleGroupsOutput {
  NextMarker: String
  RuleGroups: [AwsWAFListRuleGroupsOutputRuleGroups]
}

type AwsWAFListRuleGroupsOutputRuleGroups {
  RuleGroupId: String!
  Name: String!
}

input AwsWAFListRuleGroupsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListRulesOutput {
  NextMarker: String
  Rules: [AwsWAFS5p]
}

input AwsWAFListRulesInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListSizeConstraintSetsOutput {
  NextMarker: String
  SizeConstraintSets: [AwsWAFListSizeConstraintSetsOutputSizeConstraintSets]
}

type AwsWAFListSizeConstraintSetsOutputSizeConstraintSets {
  SizeConstraintSetId: String!
  Name: String!
}

input AwsWAFListSizeConstraintSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListSqlInjectionMatchSetsOutput {
  NextMarker: String
  SqlInjectionMatchSets: [AwsWAFListSqlInjectionMatchSetsOutputSqlInjectionMatchSets]
}

type AwsWAFListSqlInjectionMatchSetsOutputSqlInjectionMatchSets {
  SqlInjectionMatchSetId: String!
  Name: String!
}

input AwsWAFListSqlInjectionMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListSubscribedRuleGroupsOutput {
  NextMarker: String
  RuleGroups: [AwsWAFListSubscribedRuleGroupsOutputRuleGroups]
}

type AwsWAFListSubscribedRuleGroupsOutputRuleGroups {
  RuleGroupId: String!
  Name: String!
  MetricName: String!
}

input AwsWAFListSubscribedRuleGroupsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListTagsForResourceOutput {
  NextMarker: String
  TagInfoForResource: AwsWAFListTagsForResourceOutputTagInfoForResource
}

type AwsWAFListTagsForResourceOutputTagInfoForResource {
  ResourceARN: String
  TagList: [AwsWAFSx]
}

type AwsWAFSx {
  Key: String!
  Value: String!
}

input AwsWAFListTagsForResourceInput {
  NextMarker: String
  Limit: Int
  ResourceARN: String!
}

type AwsWAFListWebACLsOutput {
  NextMarker: String
  WebACLs: [AwsWAFListWebACLsOutputWebACLs]
}

type AwsWAFListWebACLsOutputWebACLs {
  WebACLId: String!
  Name: String!
}

input AwsWAFListWebACLsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFListXssMatchSetsOutput {
  NextMarker: String
  XssMatchSets: [AwsWAFListXssMatchSetsOutputXssMatchSets]
}

type AwsWAFListXssMatchSetsOutputXssMatchSets {
  XssMatchSetId: String!
  Name: String!
}

input AwsWAFListXssMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFPutLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFS3s
}

input AwsWAFPutLoggingConfigurationInput {
  LoggingConfiguration: AwsWAFS3sInput!
}

input AwsWAFS3sInput {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFS9Input]
}

input AwsWAFS9Input {
  Type: String!
  Data: String
}

input AwsWAFPutPermissionPolicyInput {
  ResourceArn: String!
  Policy: String!
}

input AwsWAFTagResourceInput {
  ResourceARN: String!
  Tags: [AwsWAFSxInput]!
}

input AwsWAFUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsWAFUpdateByteMatchSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateByteMatchSetInput {
  ByteMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateByteMatchSetUpdatesInput]!
}

input AwsWAFUpdateByteMatchSetUpdatesInput {
  Action: String!
  ByteMatchTuple: AwsWAFS8Input!
}

input AwsWAFS8Input {
  FieldToMatch: AwsWAFS9Input!
  TargetString: JSON!
  TextTransformation: String!
  PositionalConstraint: String!
}

type AwsWAFUpdateGeoMatchSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateGeoMatchSetInput {
  GeoMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateGeoMatchSetUpdatesInput]!
}

input AwsWAFUpdateGeoMatchSetUpdatesInput {
  Action: String!
  GeoMatchConstraint: AwsWAFSjInput!
}

input AwsWAFSjInput {
  Type: String!
  Value: String!
}

type AwsWAFUpdateIPSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateIPSetInput {
  IPSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateIPSetUpdatesInput]!
}

input AwsWAFUpdateIPSetUpdatesInput {
  Action: String!
  IPSetDescriptor: AwsWAFSqInput!
}

input AwsWAFSqInput {
  Type: String!
  Value: String!
}

type AwsWAFUpdateRateBasedRuleOutput {
  ChangeToken: String
}

input AwsWAFUpdateRateBasedRuleInput {
  RuleId: String!
  ChangeToken: String!
  Updates: [AwsWAFS7fInput]!
  RateLimit: JSON!
}

input AwsWAFS7fInput {
  Action: String!
  Predicate: AwsWAFS14Input!
}

input AwsWAFS14Input {
  Negated: Boolean!
  Type: String!
  DataId: String!
}

type AwsWAFUpdateRegexMatchSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateRegexMatchSetInput {
  RegexMatchSetId: String!
  Updates: [AwsWAFUpdateRegexMatchSetUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFUpdateRegexMatchSetUpdatesInput {
  Action: String!
  RegexMatchTuple: AwsWAFS1bInput!
}

input AwsWAFS1bInput {
  FieldToMatch: AwsWAFS9Input!
  TextTransformation: String!
  RegexPatternSetId: String!
}

type AwsWAFUpdateRegexPatternSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateRegexPatternSetInput {
  RegexPatternSetId: String!
  Updates: [AwsWAFUpdateRegexPatternSetUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFUpdateRegexPatternSetUpdatesInput {
  Action: String!
  RegexPatternString: String!
}

type AwsWAFUpdateRuleOutput {
  ChangeToken: String
}

input AwsWAFUpdateRuleInput {
  RuleId: String!
  ChangeToken: String!
  Updates: [AwsWAFS7fInput]!
}

type AwsWAFUpdateRuleGroupOutput {
  ChangeToken: String
}

input AwsWAFUpdateRuleGroupInput {
  RuleGroupId: String!
  Updates: [AwsWAFUpdateRuleGroupUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFUpdateRuleGroupUpdatesInput {
  Action: String!
  ActivatedRule: AwsWAFS25Input!
}

input AwsWAFS25Input {
  Priority: Int!
  RuleId: String!
  Action: AwsWAFS20Input
  OverrideAction: AwsWAFS25OverrideActionInput
  Type: String
  ExcludedRules: [AwsWAFS25ExcludedRulesInput]
}

input AwsWAFS25OverrideActionInput {
  Type: String!
}

input AwsWAFS25ExcludedRulesInput {
  RuleId: String!
}

type AwsWAFUpdateSizeConstraintSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateSizeConstraintSetInput {
  SizeConstraintSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateSizeConstraintSetUpdatesInput]!
}

input AwsWAFUpdateSizeConstraintSetUpdatesInput {
  Action: String!
  SizeConstraint: AwsWAFS1rInput!
}

input AwsWAFS1rInput {
  FieldToMatch: AwsWAFS9Input!
  TextTransformation: String!
  ComparisonOperator: String!
  Size: JSON!
}

type AwsWAFUpdateSqlInjectionMatchSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateSqlInjectionMatchSetUpdatesInput]!
}

input AwsWAFUpdateSqlInjectionMatchSetUpdatesInput {
  Action: String!
  SqlInjectionMatchTuple: AwsWAFS1yInput!
}

input AwsWAFS1yInput {
  FieldToMatch: AwsWAFS9Input!
  TextTransformation: String!
}

type AwsWAFUpdateWebACLOutput {
  ChangeToken: String
}

input AwsWAFUpdateWebACLInput {
  WebACLId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateWebACLUpdatesInput]
  DefaultAction: AwsWAFS20Input
}

input AwsWAFUpdateWebACLUpdatesInput {
  Action: String!
  ActivatedRule: AwsWAFS25Input!
}

type AwsWAFUpdateXssMatchSetOutput {
  ChangeToken: String
}

input AwsWAFUpdateXssMatchSetInput {
  XssMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFUpdateXssMatchSetUpdatesInput]!
}

input AwsWAFUpdateXssMatchSetUpdatesInput {
  Action: String!
  XssMatchTuple: AwsWAFS2mInput!
}

input AwsWAFS2mInput {
  FieldToMatch: AwsWAFS9Input!
  TextTransformation: String!
}

"""AWS WAF Regional (2016-11-28)"""
type AwsWAFRegional {
  associateWebACL(input: AwsWAFRegionalAssociateWebACLInput!, config: AwsConfig): JSON
  createByteMatchSet(input: AwsWAFRegionalCreateByteMatchSetInput!, config: AwsConfig): AwsWAFRegionalCreateByteMatchSetOutput
  createGeoMatchSet(input: AwsWAFRegionalCreateGeoMatchSetInput!, config: AwsConfig): AwsWAFRegionalCreateGeoMatchSetOutput
  createIPSet(input: AwsWAFRegionalCreateIPSetInput!, config: AwsConfig): AwsWAFRegionalCreateIPSetOutput
  createRateBasedRule(input: AwsWAFRegionalCreateRateBasedRuleInput!, config: AwsConfig): AwsWAFRegionalCreateRateBasedRuleOutput
  createRegexMatchSet(input: AwsWAFRegionalCreateRegexMatchSetInput!, config: AwsConfig): AwsWAFRegionalCreateRegexMatchSetOutput
  createRegexPatternSet(input: AwsWAFRegionalCreateRegexPatternSetInput!, config: AwsConfig): AwsWAFRegionalCreateRegexPatternSetOutput
  createRule(input: AwsWAFRegionalCreateRuleInput!, config: AwsConfig): AwsWAFRegionalCreateRuleOutput
  createRuleGroup(input: AwsWAFRegionalCreateRuleGroupInput!, config: AwsConfig): AwsWAFRegionalCreateRuleGroupOutput
  createSizeConstraintSet(input: AwsWAFRegionalCreateSizeConstraintSetInput!, config: AwsConfig): AwsWAFRegionalCreateSizeConstraintSetOutput
  createSqlInjectionMatchSet(input: AwsWAFRegionalCreateSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFRegionalCreateSqlInjectionMatchSetOutput
  createWebACL(input: AwsWAFRegionalCreateWebACLInput!, config: AwsConfig): AwsWAFRegionalCreateWebACLOutput
  createWebACLMigrationStack(input: AwsWAFRegionalCreateWebACLMigrationStackInput!, config: AwsConfig): AwsWAFRegionalCreateWebACLMigrationStackOutput
  createXssMatchSet(input: AwsWAFRegionalCreateXssMatchSetInput!, config: AwsConfig): AwsWAFRegionalCreateXssMatchSetOutput
  deleteByteMatchSet(input: AwsWAFRegionalDeleteByteMatchSetInput!, config: AwsConfig): AwsWAFRegionalDeleteByteMatchSetOutput
  deleteGeoMatchSet(input: AwsWAFRegionalDeleteGeoMatchSetInput!, config: AwsConfig): AwsWAFRegionalDeleteGeoMatchSetOutput
  deleteIPSet(input: AwsWAFRegionalDeleteIPSetInput!, config: AwsConfig): AwsWAFRegionalDeleteIPSetOutput
  deleteLoggingConfiguration(input: AwsWAFRegionalDeleteLoggingConfigurationInput!, config: AwsConfig): JSON
  deletePermissionPolicy(input: AwsWAFRegionalDeletePermissionPolicyInput!, config: AwsConfig): JSON
  deleteRateBasedRule(input: AwsWAFRegionalDeleteRateBasedRuleInput!, config: AwsConfig): AwsWAFRegionalDeleteRateBasedRuleOutput
  deleteRegexMatchSet(input: AwsWAFRegionalDeleteRegexMatchSetInput!, config: AwsConfig): AwsWAFRegionalDeleteRegexMatchSetOutput
  deleteRegexPatternSet(input: AwsWAFRegionalDeleteRegexPatternSetInput!, config: AwsConfig): AwsWAFRegionalDeleteRegexPatternSetOutput
  deleteRule(input: AwsWAFRegionalDeleteRuleInput!, config: AwsConfig): AwsWAFRegionalDeleteRuleOutput
  deleteRuleGroup(input: AwsWAFRegionalDeleteRuleGroupInput!, config: AwsConfig): AwsWAFRegionalDeleteRuleGroupOutput
  deleteSizeConstraintSet(input: AwsWAFRegionalDeleteSizeConstraintSetInput!, config: AwsConfig): AwsWAFRegionalDeleteSizeConstraintSetOutput
  deleteSqlInjectionMatchSet(input: AwsWAFRegionalDeleteSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFRegionalDeleteSqlInjectionMatchSetOutput
  deleteWebACL(input: AwsWAFRegionalDeleteWebACLInput!, config: AwsConfig): AwsWAFRegionalDeleteWebACLOutput
  deleteXssMatchSet(input: AwsWAFRegionalDeleteXssMatchSetInput!, config: AwsConfig): AwsWAFRegionalDeleteXssMatchSetOutput
  disassociateWebACL(input: AwsWAFRegionalDisassociateWebACLInput!, config: AwsConfig): JSON
  getByteMatchSet(input: AwsWAFRegionalGetByteMatchSetInput!, config: AwsConfig): AwsWAFRegionalGetByteMatchSetOutput
  getChangeToken(input: JSON, config: AwsConfig): AwsWAFRegionalGetChangeTokenOutput
  getChangeTokenStatus(input: AwsWAFRegionalGetChangeTokenStatusInput!, config: AwsConfig): AwsWAFRegionalGetChangeTokenStatusOutput
  getGeoMatchSet(input: AwsWAFRegionalGetGeoMatchSetInput!, config: AwsConfig): AwsWAFRegionalGetGeoMatchSetOutput
  getIPSet(input: AwsWAFRegionalGetIPSetInput!, config: AwsConfig): AwsWAFRegionalGetIPSetOutput
  getLoggingConfiguration(input: AwsWAFRegionalGetLoggingConfigurationInput!, config: AwsConfig): AwsWAFRegionalGetLoggingConfigurationOutput
  getPermissionPolicy(input: AwsWAFRegionalGetPermissionPolicyInput!, config: AwsConfig): AwsWAFRegionalGetPermissionPolicyOutput
  getRateBasedRule(input: AwsWAFRegionalGetRateBasedRuleInput!, config: AwsConfig): AwsWAFRegionalGetRateBasedRuleOutput
  getRateBasedRuleManagedKeys(input: AwsWAFRegionalGetRateBasedRuleManagedKeysInput!, config: AwsConfig): AwsWAFRegionalGetRateBasedRuleManagedKeysOutput
  getRegexMatchSet(input: AwsWAFRegionalGetRegexMatchSetInput!, config: AwsConfig): AwsWAFRegionalGetRegexMatchSetOutput
  getRegexPatternSet(input: AwsWAFRegionalGetRegexPatternSetInput!, config: AwsConfig): AwsWAFRegionalGetRegexPatternSetOutput
  getRule(input: AwsWAFRegionalGetRuleInput!, config: AwsConfig): AwsWAFRegionalGetRuleOutput
  getRuleGroup(input: AwsWAFRegionalGetRuleGroupInput!, config: AwsConfig): AwsWAFRegionalGetRuleGroupOutput
  getSampledRequests(input: AwsWAFRegionalGetSampledRequestsInput!, config: AwsConfig): AwsWAFRegionalGetSampledRequestsOutput
  getSizeConstraintSet(input: AwsWAFRegionalGetSizeConstraintSetInput!, config: AwsConfig): AwsWAFRegionalGetSizeConstraintSetOutput
  getSqlInjectionMatchSet(input: AwsWAFRegionalGetSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFRegionalGetSqlInjectionMatchSetOutput
  getWebACL(input: AwsWAFRegionalGetWebACLInput!, config: AwsConfig): AwsWAFRegionalGetWebACLOutput
  getWebACLForResource(input: AwsWAFRegionalGetWebACLForResourceInput!, config: AwsConfig): AwsWAFRegionalGetWebACLForResourceOutput
  getXssMatchSet(input: AwsWAFRegionalGetXssMatchSetInput!, config: AwsConfig): AwsWAFRegionalGetXssMatchSetOutput
  listActivatedRulesInRuleGroup(input: AwsWAFRegionalListActivatedRulesInRuleGroupInput, config: AwsConfig): AwsWAFRegionalListActivatedRulesInRuleGroupOutput
  listByteMatchSets(input: AwsWAFRegionalListByteMatchSetsInput, config: AwsConfig): AwsWAFRegionalListByteMatchSetsOutput
  listGeoMatchSets(input: AwsWAFRegionalListGeoMatchSetsInput, config: AwsConfig): AwsWAFRegionalListGeoMatchSetsOutput
  listIPSets(input: AwsWAFRegionalListIPSetsInput, config: AwsConfig): AwsWAFRegionalListIPSetsOutput
  listLoggingConfigurations(input: AwsWAFRegionalListLoggingConfigurationsInput, config: AwsConfig): AwsWAFRegionalListLoggingConfigurationsOutput
  listRateBasedRules(input: AwsWAFRegionalListRateBasedRulesInput, config: AwsConfig): AwsWAFRegionalListRateBasedRulesOutput
  listRegexMatchSets(input: AwsWAFRegionalListRegexMatchSetsInput, config: AwsConfig): AwsWAFRegionalListRegexMatchSetsOutput
  listRegexPatternSets(input: AwsWAFRegionalListRegexPatternSetsInput, config: AwsConfig): AwsWAFRegionalListRegexPatternSetsOutput
  listResourcesForWebACL(input: AwsWAFRegionalListResourcesForWebACLInput!, config: AwsConfig): AwsWAFRegionalListResourcesForWebACLOutput
  listRuleGroups(input: AwsWAFRegionalListRuleGroupsInput, config: AwsConfig): AwsWAFRegionalListRuleGroupsOutput
  listRules(input: AwsWAFRegionalListRulesInput, config: AwsConfig): AwsWAFRegionalListRulesOutput
  listSizeConstraintSets(input: AwsWAFRegionalListSizeConstraintSetsInput, config: AwsConfig): AwsWAFRegionalListSizeConstraintSetsOutput
  listSqlInjectionMatchSets(input: AwsWAFRegionalListSqlInjectionMatchSetsInput, config: AwsConfig): AwsWAFRegionalListSqlInjectionMatchSetsOutput
  listSubscribedRuleGroups(input: AwsWAFRegionalListSubscribedRuleGroupsInput, config: AwsConfig): AwsWAFRegionalListSubscribedRuleGroupsOutput
  listTagsForResource(input: AwsWAFRegionalListTagsForResourceInput!, config: AwsConfig): AwsWAFRegionalListTagsForResourceOutput
  listWebACLs(input: AwsWAFRegionalListWebACLsInput, config: AwsConfig): AwsWAFRegionalListWebACLsOutput
  listXssMatchSets(input: AwsWAFRegionalListXssMatchSetsInput, config: AwsConfig): AwsWAFRegionalListXssMatchSetsOutput
  putLoggingConfiguration(input: AwsWAFRegionalPutLoggingConfigurationInput!, config: AwsConfig): AwsWAFRegionalPutLoggingConfigurationOutput
  putPermissionPolicy(input: AwsWAFRegionalPutPermissionPolicyInput!, config: AwsConfig): JSON
  tagResource(input: AwsWAFRegionalTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWAFRegionalUntagResourceInput!, config: AwsConfig): JSON
  updateByteMatchSet(input: AwsWAFRegionalUpdateByteMatchSetInput!, config: AwsConfig): AwsWAFRegionalUpdateByteMatchSetOutput
  updateGeoMatchSet(input: AwsWAFRegionalUpdateGeoMatchSetInput!, config: AwsConfig): AwsWAFRegionalUpdateGeoMatchSetOutput
  updateIPSet(input: AwsWAFRegionalUpdateIPSetInput!, config: AwsConfig): AwsWAFRegionalUpdateIPSetOutput
  updateRateBasedRule(input: AwsWAFRegionalUpdateRateBasedRuleInput!, config: AwsConfig): AwsWAFRegionalUpdateRateBasedRuleOutput
  updateRegexMatchSet(input: AwsWAFRegionalUpdateRegexMatchSetInput!, config: AwsConfig): AwsWAFRegionalUpdateRegexMatchSetOutput
  updateRegexPatternSet(input: AwsWAFRegionalUpdateRegexPatternSetInput!, config: AwsConfig): AwsWAFRegionalUpdateRegexPatternSetOutput
  updateRule(input: AwsWAFRegionalUpdateRuleInput!, config: AwsConfig): AwsWAFRegionalUpdateRuleOutput
  updateRuleGroup(input: AwsWAFRegionalUpdateRuleGroupInput!, config: AwsConfig): AwsWAFRegionalUpdateRuleGroupOutput
  updateSizeConstraintSet(input: AwsWAFRegionalUpdateSizeConstraintSetInput!, config: AwsConfig): AwsWAFRegionalUpdateSizeConstraintSetOutput
  updateSqlInjectionMatchSet(input: AwsWAFRegionalUpdateSqlInjectionMatchSetInput!, config: AwsConfig): AwsWAFRegionalUpdateSqlInjectionMatchSetOutput
  updateWebACL(input: AwsWAFRegionalUpdateWebACLInput!, config: AwsConfig): AwsWAFRegionalUpdateWebACLOutput
  updateXssMatchSet(input: AwsWAFRegionalUpdateXssMatchSetInput!, config: AwsConfig): AwsWAFRegionalUpdateXssMatchSetOutput
}

input AwsWAFRegionalAssociateWebACLInput {
  WebACLId: String!
  ResourceArn: String!
}

type AwsWAFRegionalCreateByteMatchSetOutput {
  ByteMatchSet: AwsWAFRegionalS9
  ChangeToken: String
}

type AwsWAFRegionalS9 {
  ByteMatchSetId: String!
  Name: String
  ByteMatchTuples: [AwsWAFRegionalSb]!
}

type AwsWAFRegionalSb {
  FieldToMatch: AwsWAFRegionalSc!
  TargetString: JSON!
  TextTransformation: String!
  PositionalConstraint: String!
}

type AwsWAFRegionalSc {
  Type: String!
  Data: String
}

input AwsWAFRegionalCreateByteMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateGeoMatchSetOutput {
  GeoMatchSet: AwsWAFRegionalSk
  ChangeToken: String
}

type AwsWAFRegionalSk {
  GeoMatchSetId: String!
  Name: String
  GeoMatchConstraints: [AwsWAFRegionalSm]!
}

type AwsWAFRegionalSm {
  Type: String!
  Value: String!
}

input AwsWAFRegionalCreateGeoMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateIPSetOutput {
  IPSet: AwsWAFRegionalSr
  ChangeToken: String
}

type AwsWAFRegionalSr {
  IPSetId: String!
  Name: String
  IPSetDescriptors: [AwsWAFRegionalSt]!
}

type AwsWAFRegionalSt {
  Type: String!
  Value: String!
}

input AwsWAFRegionalCreateIPSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateRateBasedRuleOutput {
  Rule: AwsWAFRegionalS15
  ChangeToken: String
}

type AwsWAFRegionalS15 {
  RuleId: String!
  Name: String
  MetricName: String
  MatchPredicates: [AwsWAFRegionalS17]!
  RateKey: String!
  RateLimit: JSON!
}

type AwsWAFRegionalS17 {
  Negated: Boolean!
  Type: String!
  DataId: String!
}

input AwsWAFRegionalCreateRateBasedRuleInput {
  Name: String!
  MetricName: String!
  RateKey: String!
  RateLimit: JSON!
  ChangeToken: String!
  Tags: [AwsWAFRegionalS10Input]
}

input AwsWAFRegionalS10Input {
  Key: String!
  Value: String!
}

type AwsWAFRegionalCreateRegexMatchSetOutput {
  RegexMatchSet: AwsWAFRegionalS1c
  ChangeToken: String
}

type AwsWAFRegionalS1c {
  RegexMatchSetId: String
  Name: String
  RegexMatchTuples: [AwsWAFRegionalS1e]
}

type AwsWAFRegionalS1e {
  FieldToMatch: AwsWAFRegionalSc!
  TextTransformation: String!
  RegexPatternSetId: String!
}

input AwsWAFRegionalCreateRegexMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateRegexPatternSetOutput {
  RegexPatternSet: AwsWAFRegionalS1h
  ChangeToken: String
}

type AwsWAFRegionalS1h {
  RegexPatternSetId: String!
  Name: String
  RegexPatternStrings: [String]!
}

input AwsWAFRegionalCreateRegexPatternSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateRuleOutput {
  Rule: AwsWAFRegionalS1m
  ChangeToken: String
}

type AwsWAFRegionalS1m {
  RuleId: String!
  Name: String
  MetricName: String
  Predicates: [AwsWAFRegionalS17]!
}

input AwsWAFRegionalCreateRuleInput {
  Name: String!
  MetricName: String!
  ChangeToken: String!
  Tags: [AwsWAFRegionalS10Input]
}

type AwsWAFRegionalCreateRuleGroupOutput {
  RuleGroup: AwsWAFRegionalS1p
  ChangeToken: String
}

type AwsWAFRegionalS1p {
  RuleGroupId: String!
  Name: String
  MetricName: String
}

input AwsWAFRegionalCreateRuleGroupInput {
  Name: String!
  MetricName: String!
  ChangeToken: String!
  Tags: [AwsWAFRegionalS10Input]
}

type AwsWAFRegionalCreateSizeConstraintSetOutput {
  SizeConstraintSet: AwsWAFRegionalS1s
  ChangeToken: String
}

type AwsWAFRegionalS1s {
  SizeConstraintSetId: String!
  Name: String
  SizeConstraints: [AwsWAFRegionalS1u]!
}

type AwsWAFRegionalS1u {
  FieldToMatch: AwsWAFRegionalSc!
  TextTransformation: String!
  ComparisonOperator: String!
  Size: JSON!
}

input AwsWAFRegionalCreateSizeConstraintSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateSqlInjectionMatchSetOutput {
  SqlInjectionMatchSet: AwsWAFRegionalS1z
  ChangeToken: String
}

type AwsWAFRegionalS1z {
  SqlInjectionMatchSetId: String!
  Name: String
  SqlInjectionMatchTuples: [AwsWAFRegionalS21]!
}

type AwsWAFRegionalS21 {
  FieldToMatch: AwsWAFRegionalSc!
  TextTransformation: String!
}

input AwsWAFRegionalCreateSqlInjectionMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalCreateWebACLOutput {
  WebACL: AwsWAFRegionalS26
  ChangeToken: String
}

type AwsWAFRegionalS26 {
  WebACLId: String!
  Name: String
  MetricName: String
  DefaultAction: AwsWAFRegionalS23!
  Rules: [AwsWAFRegionalS28]!
  WebACLArn: String
}

type AwsWAFRegionalS23 {
  Type: String!
}

type AwsWAFRegionalS28 {
  Priority: Int!
  RuleId: String!
  Action: AwsWAFRegionalS23
  OverrideAction: AwsWAFRegionalS28OverrideAction
  Type: String
  ExcludedRules: [AwsWAFRegionalS28ExcludedRules]
}

type AwsWAFRegionalS28OverrideAction {
  Type: String!
}

type AwsWAFRegionalS28ExcludedRules {
  RuleId: String!
}

input AwsWAFRegionalCreateWebACLInput {
  Name: String!
  MetricName: String!
  DefaultAction: AwsWAFRegionalS23Input!
  ChangeToken: String!
  Tags: [AwsWAFRegionalS10Input]
}

input AwsWAFRegionalS23Input {
  Type: String!
}

type AwsWAFRegionalCreateWebACLMigrationStackOutput {
  S3ObjectUrl: String!
}

input AwsWAFRegionalCreateWebACLMigrationStackInput {
  WebACLId: String!
  S3BucketName: String!
  IgnoreUnsupportedType: Boolean!
}

type AwsWAFRegionalCreateXssMatchSetOutput {
  XssMatchSet: AwsWAFRegionalS2m
  ChangeToken: String
}

type AwsWAFRegionalS2m {
  XssMatchSetId: String!
  Name: String
  XssMatchTuples: [AwsWAFRegionalS2o]!
}

type AwsWAFRegionalS2o {
  FieldToMatch: AwsWAFRegionalSc!
  TextTransformation: String!
}

input AwsWAFRegionalCreateXssMatchSetInput {
  Name: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteByteMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteByteMatchSetInput {
  ByteMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteGeoMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteGeoMatchSetInput {
  GeoMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteIPSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteIPSetInput {
  IPSetId: String!
  ChangeToken: String!
}

input AwsWAFRegionalDeleteLoggingConfigurationInput {
  ResourceArn: String!
}

input AwsWAFRegionalDeletePermissionPolicyInput {
  ResourceArn: String!
}

type AwsWAFRegionalDeleteRateBasedRuleOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteRateBasedRuleInput {
  RuleId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteRegexMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteRegexMatchSetInput {
  RegexMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteRegexPatternSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteRegexPatternSetInput {
  RegexPatternSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteRuleOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteRuleInput {
  RuleId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteRuleGroupOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteRuleGroupInput {
  RuleGroupId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteSizeConstraintSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteSizeConstraintSetInput {
  SizeConstraintSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteSqlInjectionMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteWebACLOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteWebACLInput {
  WebACLId: String!
  ChangeToken: String!
}

type AwsWAFRegionalDeleteXssMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalDeleteXssMatchSetInput {
  XssMatchSetId: String!
  ChangeToken: String!
}

input AwsWAFRegionalDisassociateWebACLInput {
  ResourceArn: String!
}

type AwsWAFRegionalGetByteMatchSetOutput {
  ByteMatchSet: AwsWAFRegionalS9
}

input AwsWAFRegionalGetByteMatchSetInput {
  ByteMatchSetId: String!
}

type AwsWAFRegionalGetChangeTokenOutput {
  ChangeToken: String
}

type AwsWAFRegionalGetChangeTokenStatusOutput {
  ChangeTokenStatus: String
}

input AwsWAFRegionalGetChangeTokenStatusInput {
  ChangeToken: String!
}

type AwsWAFRegionalGetGeoMatchSetOutput {
  GeoMatchSet: AwsWAFRegionalSk
}

input AwsWAFRegionalGetGeoMatchSetInput {
  GeoMatchSetId: String!
}

type AwsWAFRegionalGetIPSetOutput {
  IPSet: AwsWAFRegionalSr
}

input AwsWAFRegionalGetIPSetInput {
  IPSetId: String!
}

type AwsWAFRegionalGetLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFRegionalS3w
}

type AwsWAFRegionalS3w {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFRegionalSc]
}

input AwsWAFRegionalGetLoggingConfigurationInput {
  ResourceArn: String!
}

type AwsWAFRegionalGetPermissionPolicyOutput {
  Policy: String
}

input AwsWAFRegionalGetPermissionPolicyInput {
  ResourceArn: String!
}

type AwsWAFRegionalGetRateBasedRuleOutput {
  Rule: AwsWAFRegionalS15
}

input AwsWAFRegionalGetRateBasedRuleInput {
  RuleId: String!
}

type AwsWAFRegionalGetRateBasedRuleManagedKeysOutput {
  ManagedKeys: [String]
  NextMarker: String
}

input AwsWAFRegionalGetRateBasedRuleManagedKeysInput {
  RuleId: String!
  NextMarker: String
}

type AwsWAFRegionalGetRegexMatchSetOutput {
  RegexMatchSet: AwsWAFRegionalS1c
}

input AwsWAFRegionalGetRegexMatchSetInput {
  RegexMatchSetId: String!
}

type AwsWAFRegionalGetRegexPatternSetOutput {
  RegexPatternSet: AwsWAFRegionalS1h
}

input AwsWAFRegionalGetRegexPatternSetInput {
  RegexPatternSetId: String!
}

type AwsWAFRegionalGetRuleOutput {
  Rule: AwsWAFRegionalS1m
}

input AwsWAFRegionalGetRuleInput {
  RuleId: String!
}

type AwsWAFRegionalGetRuleGroupOutput {
  RuleGroup: AwsWAFRegionalS1p
}

input AwsWAFRegionalGetRuleGroupInput {
  RuleGroupId: String!
}

type AwsWAFRegionalGetSampledRequestsOutput {
  SampledRequests: [AwsWAFRegionalGetSampledRequestsOutputSampledRequests]
  PopulationSize: JSON
  TimeWindow: AwsWAFRegionalS4i
}

type AwsWAFRegionalGetSampledRequestsOutputSampledRequests {
  Request: AwsWAFRegionalGetSampledRequestsOutputSampledRequestsRequest!
  Weight: JSON!
  Timestamp: Date
  Action: String
  RuleWithinRuleGroup: String
}

type AwsWAFRegionalGetSampledRequestsOutputSampledRequestsRequest {
  ClientIP: String
  Country: String
  URI: String
  Method: String
  HTTPVersion: String
  Headers: [AwsWAFRegionalGetSampledRequestsOutputSampledRequestsRequestHeaders]
}

type AwsWAFRegionalGetSampledRequestsOutputSampledRequestsRequestHeaders {
  Name: String
  Value: String
}

type AwsWAFRegionalS4i {
  StartTime: Date!
  EndTime: Date!
}

input AwsWAFRegionalGetSampledRequestsInput {
  WebAclId: String!
  RuleId: String!
  TimeWindow: AwsWAFRegionalS4iInput!
  MaxItems: JSON!
}

input AwsWAFRegionalS4iInput {
  StartTime: Date!
  EndTime: Date!
}

type AwsWAFRegionalGetSizeConstraintSetOutput {
  SizeConstraintSet: AwsWAFRegionalS1s
}

input AwsWAFRegionalGetSizeConstraintSetInput {
  SizeConstraintSetId: String!
}

type AwsWAFRegionalGetSqlInjectionMatchSetOutput {
  SqlInjectionMatchSet: AwsWAFRegionalS1z
}

input AwsWAFRegionalGetSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
}

type AwsWAFRegionalGetWebACLOutput {
  WebACL: AwsWAFRegionalS26
}

input AwsWAFRegionalGetWebACLInput {
  WebACLId: String!
}

type AwsWAFRegionalGetWebACLForResourceOutput {
  WebACLSummary: AwsWAFRegionalS59
}

type AwsWAFRegionalS59 {
  WebACLId: String!
  Name: String!
}

input AwsWAFRegionalGetWebACLForResourceInput {
  ResourceArn: String!
}

type AwsWAFRegionalGetXssMatchSetOutput {
  XssMatchSet: AwsWAFRegionalS2m
}

input AwsWAFRegionalGetXssMatchSetInput {
  XssMatchSetId: String!
}

type AwsWAFRegionalListActivatedRulesInRuleGroupOutput {
  NextMarker: String
  ActivatedRules: [AwsWAFRegionalS28]
}

input AwsWAFRegionalListActivatedRulesInRuleGroupInput {
  RuleGroupId: String
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListByteMatchSetsOutput {
  NextMarker: String
  ByteMatchSets: [AwsWAFRegionalListByteMatchSetsOutputByteMatchSets]
}

type AwsWAFRegionalListByteMatchSetsOutputByteMatchSets {
  ByteMatchSetId: String!
  Name: String!
}

input AwsWAFRegionalListByteMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListGeoMatchSetsOutput {
  NextMarker: String
  GeoMatchSets: [AwsWAFRegionalListGeoMatchSetsOutputGeoMatchSets]
}

type AwsWAFRegionalListGeoMatchSetsOutputGeoMatchSets {
  GeoMatchSetId: String!
  Name: String!
}

input AwsWAFRegionalListGeoMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListIPSetsOutput {
  NextMarker: String
  IPSets: [AwsWAFRegionalListIPSetsOutputIPSets]
}

type AwsWAFRegionalListIPSetsOutputIPSets {
  IPSetId: String!
  Name: String!
}

input AwsWAFRegionalListIPSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListLoggingConfigurationsOutput {
  LoggingConfigurations: [AwsWAFRegionalS3w]
  NextMarker: String
}

input AwsWAFRegionalListLoggingConfigurationsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListRateBasedRulesOutput {
  NextMarker: String
  Rules: [AwsWAFRegionalS5w]
}

type AwsWAFRegionalS5w {
  RuleId: String!
  Name: String!
}

input AwsWAFRegionalListRateBasedRulesInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListRegexMatchSetsOutput {
  NextMarker: String
  RegexMatchSets: [AwsWAFRegionalListRegexMatchSetsOutputRegexMatchSets]
}

type AwsWAFRegionalListRegexMatchSetsOutputRegexMatchSets {
  RegexMatchSetId: String!
  Name: String!
}

input AwsWAFRegionalListRegexMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListRegexPatternSetsOutput {
  NextMarker: String
  RegexPatternSets: [AwsWAFRegionalListRegexPatternSetsOutputRegexPatternSets]
}

type AwsWAFRegionalListRegexPatternSetsOutputRegexPatternSets {
  RegexPatternSetId: String!
  Name: String!
}

input AwsWAFRegionalListRegexPatternSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListResourcesForWebACLOutput {
  ResourceArns: [String]
}

input AwsWAFRegionalListResourcesForWebACLInput {
  WebACLId: String!
  ResourceType: String
}

type AwsWAFRegionalListRuleGroupsOutput {
  NextMarker: String
  RuleGroups: [AwsWAFRegionalListRuleGroupsOutputRuleGroups]
}

type AwsWAFRegionalListRuleGroupsOutputRuleGroups {
  RuleGroupId: String!
  Name: String!
}

input AwsWAFRegionalListRuleGroupsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListRulesOutput {
  NextMarker: String
  Rules: [AwsWAFRegionalS5w]
}

input AwsWAFRegionalListRulesInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListSizeConstraintSetsOutput {
  NextMarker: String
  SizeConstraintSets: [AwsWAFRegionalListSizeConstraintSetsOutputSizeConstraintSets]
}

type AwsWAFRegionalListSizeConstraintSetsOutputSizeConstraintSets {
  SizeConstraintSetId: String!
  Name: String!
}

input AwsWAFRegionalListSizeConstraintSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListSqlInjectionMatchSetsOutput {
  NextMarker: String
  SqlInjectionMatchSets: [AwsWAFRegionalListSqlInjectionMatchSetsOutputSqlInjectionMatchSets]
}

type AwsWAFRegionalListSqlInjectionMatchSetsOutputSqlInjectionMatchSets {
  SqlInjectionMatchSetId: String!
  Name: String!
}

input AwsWAFRegionalListSqlInjectionMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListSubscribedRuleGroupsOutput {
  NextMarker: String
  RuleGroups: [AwsWAFRegionalListSubscribedRuleGroupsOutputRuleGroups]
}

type AwsWAFRegionalListSubscribedRuleGroupsOutputRuleGroups {
  RuleGroupId: String!
  Name: String!
  MetricName: String!
}

input AwsWAFRegionalListSubscribedRuleGroupsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListTagsForResourceOutput {
  NextMarker: String
  TagInfoForResource: AwsWAFRegionalListTagsForResourceOutputTagInfoForResource
}

type AwsWAFRegionalListTagsForResourceOutputTagInfoForResource {
  ResourceARN: String
  TagList: [AwsWAFRegionalS10]
}

type AwsWAFRegionalS10 {
  Key: String!
  Value: String!
}

input AwsWAFRegionalListTagsForResourceInput {
  NextMarker: String
  Limit: Int
  ResourceARN: String!
}

type AwsWAFRegionalListWebACLsOutput {
  NextMarker: String
  WebACLs: [AwsWAFRegionalS59]
}

input AwsWAFRegionalListWebACLsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalListXssMatchSetsOutput {
  NextMarker: String
  XssMatchSets: [AwsWAFRegionalListXssMatchSetsOutputXssMatchSets]
}

type AwsWAFRegionalListXssMatchSetsOutputXssMatchSets {
  XssMatchSetId: String!
  Name: String!
}

input AwsWAFRegionalListXssMatchSetsInput {
  NextMarker: String
  Limit: Int
}

type AwsWAFRegionalPutLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFRegionalS3w
}

input AwsWAFRegionalPutLoggingConfigurationInput {
  LoggingConfiguration: AwsWAFRegionalS3wInput!
}

input AwsWAFRegionalS3wInput {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFRegionalScInput]
}

input AwsWAFRegionalScInput {
  Type: String!
  Data: String
}

input AwsWAFRegionalPutPermissionPolicyInput {
  ResourceArn: String!
  Policy: String!
}

input AwsWAFRegionalTagResourceInput {
  ResourceARN: String!
  Tags: [AwsWAFRegionalS10Input]!
}

input AwsWAFRegionalUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsWAFRegionalUpdateByteMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateByteMatchSetInput {
  ByteMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateByteMatchSetUpdatesInput]!
}

input AwsWAFRegionalUpdateByteMatchSetUpdatesInput {
  Action: String!
  ByteMatchTuple: AwsWAFRegionalSbInput!
}

input AwsWAFRegionalSbInput {
  FieldToMatch: AwsWAFRegionalScInput!
  TargetString: JSON!
  TextTransformation: String!
  PositionalConstraint: String!
}

type AwsWAFRegionalUpdateGeoMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateGeoMatchSetInput {
  GeoMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateGeoMatchSetUpdatesInput]!
}

input AwsWAFRegionalUpdateGeoMatchSetUpdatesInput {
  Action: String!
  GeoMatchConstraint: AwsWAFRegionalSmInput!
}

input AwsWAFRegionalSmInput {
  Type: String!
  Value: String!
}

type AwsWAFRegionalUpdateIPSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateIPSetInput {
  IPSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateIPSetUpdatesInput]!
}

input AwsWAFRegionalUpdateIPSetUpdatesInput {
  Action: String!
  IPSetDescriptor: AwsWAFRegionalStInput!
}

input AwsWAFRegionalStInput {
  Type: String!
  Value: String!
}

type AwsWAFRegionalUpdateRateBasedRuleOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateRateBasedRuleInput {
  RuleId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalS7pInput]!
  RateLimit: JSON!
}

input AwsWAFRegionalS7pInput {
  Action: String!
  Predicate: AwsWAFRegionalS17Input!
}

input AwsWAFRegionalS17Input {
  Negated: Boolean!
  Type: String!
  DataId: String!
}

type AwsWAFRegionalUpdateRegexMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateRegexMatchSetInput {
  RegexMatchSetId: String!
  Updates: [AwsWAFRegionalUpdateRegexMatchSetUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFRegionalUpdateRegexMatchSetUpdatesInput {
  Action: String!
  RegexMatchTuple: AwsWAFRegionalS1eInput!
}

input AwsWAFRegionalS1eInput {
  FieldToMatch: AwsWAFRegionalScInput!
  TextTransformation: String!
  RegexPatternSetId: String!
}

type AwsWAFRegionalUpdateRegexPatternSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateRegexPatternSetInput {
  RegexPatternSetId: String!
  Updates: [AwsWAFRegionalUpdateRegexPatternSetUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFRegionalUpdateRegexPatternSetUpdatesInput {
  Action: String!
  RegexPatternString: String!
}

type AwsWAFRegionalUpdateRuleOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateRuleInput {
  RuleId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalS7pInput]!
}

type AwsWAFRegionalUpdateRuleGroupOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateRuleGroupInput {
  RuleGroupId: String!
  Updates: [AwsWAFRegionalUpdateRuleGroupUpdatesInput]!
  ChangeToken: String!
}

input AwsWAFRegionalUpdateRuleGroupUpdatesInput {
  Action: String!
  ActivatedRule: AwsWAFRegionalS28Input!
}

input AwsWAFRegionalS28Input {
  Priority: Int!
  RuleId: String!
  Action: AwsWAFRegionalS23Input
  OverrideAction: AwsWAFRegionalS28OverrideActionInput
  Type: String
  ExcludedRules: [AwsWAFRegionalS28ExcludedRulesInput]
}

input AwsWAFRegionalS28OverrideActionInput {
  Type: String!
}

input AwsWAFRegionalS28ExcludedRulesInput {
  RuleId: String!
}

type AwsWAFRegionalUpdateSizeConstraintSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateSizeConstraintSetInput {
  SizeConstraintSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateSizeConstraintSetUpdatesInput]!
}

input AwsWAFRegionalUpdateSizeConstraintSetUpdatesInput {
  Action: String!
  SizeConstraint: AwsWAFRegionalS1uInput!
}

input AwsWAFRegionalS1uInput {
  FieldToMatch: AwsWAFRegionalScInput!
  TextTransformation: String!
  ComparisonOperator: String!
  Size: JSON!
}

type AwsWAFRegionalUpdateSqlInjectionMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateSqlInjectionMatchSetInput {
  SqlInjectionMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateSqlInjectionMatchSetUpdatesInput]!
}

input AwsWAFRegionalUpdateSqlInjectionMatchSetUpdatesInput {
  Action: String!
  SqlInjectionMatchTuple: AwsWAFRegionalS21Input!
}

input AwsWAFRegionalS21Input {
  FieldToMatch: AwsWAFRegionalScInput!
  TextTransformation: String!
}

type AwsWAFRegionalUpdateWebACLOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateWebACLInput {
  WebACLId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateWebACLUpdatesInput]
  DefaultAction: AwsWAFRegionalS23Input
}

input AwsWAFRegionalUpdateWebACLUpdatesInput {
  Action: String!
  ActivatedRule: AwsWAFRegionalS28Input!
}

type AwsWAFRegionalUpdateXssMatchSetOutput {
  ChangeToken: String
}

input AwsWAFRegionalUpdateXssMatchSetInput {
  XssMatchSetId: String!
  ChangeToken: String!
  Updates: [AwsWAFRegionalUpdateXssMatchSetUpdatesInput]!
}

input AwsWAFRegionalUpdateXssMatchSetUpdatesInput {
  Action: String!
  XssMatchTuple: AwsWAFRegionalS2oInput!
}

input AwsWAFRegionalS2oInput {
  FieldToMatch: AwsWAFRegionalScInput!
  TextTransformation: String!
}

"""AWS WAFV2 (2019-07-29)"""
type AwsWAFV2 {
  associateWebACL(input: AwsWAFV2AssociateWebACLInput!, config: AwsConfig): JSON
  checkCapacity(input: AwsWAFV2CheckCapacityInput!, config: AwsConfig): AwsWAFV2CheckCapacityOutput
  createIPSet(input: AwsWAFV2CreateIPSetInput!, config: AwsConfig): AwsWAFV2CreateIPSetOutput
  createRegexPatternSet(input: AwsWAFV2CreateRegexPatternSetInput!, config: AwsConfig): AwsWAFV2CreateRegexPatternSetOutput
  createRuleGroup(input: AwsWAFV2CreateRuleGroupInput!, config: AwsConfig): AwsWAFV2CreateRuleGroupOutput
  createWebACL(input: AwsWAFV2CreateWebACLInput!, config: AwsConfig): AwsWAFV2CreateWebACLOutput
  deleteFirewallManagerRuleGroups(input: AwsWAFV2DeleteFirewallManagerRuleGroupsInput!, config: AwsConfig): AwsWAFV2DeleteFirewallManagerRuleGroupsOutput
  deleteIPSet(input: AwsWAFV2DeleteIPSetInput!, config: AwsConfig): JSON
  deleteLoggingConfiguration(input: AwsWAFV2DeleteLoggingConfigurationInput!, config: AwsConfig): JSON
  deletePermissionPolicy(input: AwsWAFV2DeletePermissionPolicyInput!, config: AwsConfig): JSON
  deleteRegexPatternSet(input: AwsWAFV2DeleteRegexPatternSetInput!, config: AwsConfig): JSON
  deleteRuleGroup(input: AwsWAFV2DeleteRuleGroupInput!, config: AwsConfig): JSON
  deleteWebACL(input: AwsWAFV2DeleteWebACLInput!, config: AwsConfig): JSON
  describeManagedRuleGroup(input: AwsWAFV2DescribeManagedRuleGroupInput!, config: AwsConfig): AwsWAFV2DescribeManagedRuleGroupOutput
  disassociateWebACL(input: AwsWAFV2DisassociateWebACLInput!, config: AwsConfig): JSON
  getIPSet(input: AwsWAFV2GetIPSetInput!, config: AwsConfig): AwsWAFV2GetIPSetOutput
  getLoggingConfiguration(input: AwsWAFV2GetLoggingConfigurationInput!, config: AwsConfig): AwsWAFV2GetLoggingConfigurationOutput
  getPermissionPolicy(input: AwsWAFV2GetPermissionPolicyInput!, config: AwsConfig): AwsWAFV2GetPermissionPolicyOutput
  getRateBasedStatementManagedKeys(input: AwsWAFV2GetRateBasedStatementManagedKeysInput!, config: AwsConfig): AwsWAFV2GetRateBasedStatementManagedKeysOutput
  getRegexPatternSet(input: AwsWAFV2GetRegexPatternSetInput!, config: AwsConfig): AwsWAFV2GetRegexPatternSetOutput
  getRuleGroup(input: AwsWAFV2GetRuleGroupInput, config: AwsConfig): AwsWAFV2GetRuleGroupOutput
  getSampledRequests(input: AwsWAFV2GetSampledRequestsInput!, config: AwsConfig): AwsWAFV2GetSampledRequestsOutput
  getWebACL(input: AwsWAFV2GetWebACLInput!, config: AwsConfig): AwsWAFV2GetWebACLOutput
  getWebACLForResource(input: AwsWAFV2GetWebACLForResourceInput!, config: AwsConfig): AwsWAFV2GetWebACLForResourceOutput
  listAvailableManagedRuleGroups(input: AwsWAFV2ListAvailableManagedRuleGroupsInput!, config: AwsConfig): AwsWAFV2ListAvailableManagedRuleGroupsOutput
  listIPSets(input: AwsWAFV2ListIPSetsInput!, config: AwsConfig): AwsWAFV2ListIPSetsOutput
  listLoggingConfigurations(input: AwsWAFV2ListLoggingConfigurationsInput, config: AwsConfig): AwsWAFV2ListLoggingConfigurationsOutput
  listRegexPatternSets(input: AwsWAFV2ListRegexPatternSetsInput!, config: AwsConfig): AwsWAFV2ListRegexPatternSetsOutput
  listResourcesForWebACL(input: AwsWAFV2ListResourcesForWebACLInput!, config: AwsConfig): AwsWAFV2ListResourcesForWebACLOutput
  listRuleGroups(input: AwsWAFV2ListRuleGroupsInput!, config: AwsConfig): AwsWAFV2ListRuleGroupsOutput
  listTagsForResource(input: AwsWAFV2ListTagsForResourceInput!, config: AwsConfig): AwsWAFV2ListTagsForResourceOutput
  listWebACLs(input: AwsWAFV2ListWebACLsInput!, config: AwsConfig): AwsWAFV2ListWebACLsOutput
  putLoggingConfiguration(input: AwsWAFV2PutLoggingConfigurationInput!, config: AwsConfig): AwsWAFV2PutLoggingConfigurationOutput
  putPermissionPolicy(input: AwsWAFV2PutPermissionPolicyInput!, config: AwsConfig): JSON
  tagResource(input: AwsWAFV2TagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWAFV2UntagResourceInput!, config: AwsConfig): JSON
  updateIPSet(input: AwsWAFV2UpdateIPSetInput!, config: AwsConfig): AwsWAFV2UpdateIPSetOutput
  updateRegexPatternSet(input: AwsWAFV2UpdateRegexPatternSetInput!, config: AwsConfig): AwsWAFV2UpdateRegexPatternSetOutput
  updateRuleGroup(input: AwsWAFV2UpdateRuleGroupInput!, config: AwsConfig): AwsWAFV2UpdateRuleGroupOutput
  updateWebACL(input: AwsWAFV2UpdateWebACLInput!, config: AwsConfig): AwsWAFV2UpdateWebACLOutput
}

input AwsWAFV2AssociateWebACLInput {
  WebACLArn: String!
  ResourceArn: String!
}

type AwsWAFV2CheckCapacityOutput {
  Capacity: JSON
}

input AwsWAFV2CheckCapacityInput {
  Scope: String!
  Rules: [AwsWAFV2S6Input]!
}

input AwsWAFV2S6Input {
  Name: String!
  Priority: Int!
  Statement: AwsWAFV2SaInput!
  Action: AwsWAFV2S1sInput
  OverrideAction: AwsWAFV2S23Input
  RuleLabels: [AwsWAFV2S25Input]
  VisibilityConfig: AwsWAFV2S28Input!
}

input AwsWAFV2SaInput {
  ByteMatchStatement: AwsWAFV2SaByteMatchStatementInput
  SqliMatchStatement: AwsWAFV2SaSqliMatchStatementInput
  XssMatchStatement: AwsWAFV2SaXssMatchStatementInput
  SizeConstraintStatement: AwsWAFV2SaSizeConstraintStatementInput
  GeoMatchStatement: AwsWAFV2SaGeoMatchStatementInput
  RuleGroupReferenceStatement: AwsWAFV2S19Input
  IPSetReferenceStatement: AwsWAFV2SaIPSetReferenceStatementInput
  RegexPatternSetReferenceStatement: AwsWAFV2SaRegexPatternSetReferenceStatementInput
  RateBasedStatement: AwsWAFV2SaRateBasedStatementInput
  AndStatement: AwsWAFV2SaAndStatementInput
  OrStatement: AwsWAFV2SaOrStatementInput
  NotStatement: AwsWAFV2SaNotStatementInput
  ManagedRuleGroupStatement: AwsWAFV2S1nInput
  LabelMatchStatement: AwsWAFV2SaLabelMatchStatementInput
}

input AwsWAFV2SaByteMatchStatementInput {
  SearchString: JSON!
  FieldToMatch: AwsWAFV2SdInput!
  TextTransformations: [AwsWAFV2StInput]!
  PositionalConstraint: String!
}

input AwsWAFV2SdInput {
  SingleHeader: AwsWAFV2SdSingleHeaderInput
  SingleQueryArgument: AwsWAFV2SdSingleQueryArgumentInput
  AllQueryArguments: JSON
  UriPath: JSON
  QueryString: JSON
  Body: JSON
  Method: JSON
  JsonBody: AwsWAFV2SdJsonBodyInput
}

input AwsWAFV2SdSingleHeaderInput {
  Name: String!
}

input AwsWAFV2SdSingleQueryArgumentInput {
  Name: String!
}

input AwsWAFV2SdJsonBodyInput {
  MatchPattern: AwsWAFV2SdJsonBodyMatchPatternInput!
  MatchScope: String!
  InvalidFallbackBehavior: String
}

input AwsWAFV2SdJsonBodyMatchPatternInput {
  All: JSON
  IncludedPaths: [String]
}

input AwsWAFV2StInput {
  Priority: Int!
  Type: String!
}

input AwsWAFV2SaSqliMatchStatementInput {
  FieldToMatch: AwsWAFV2SdInput!
  TextTransformations: [AwsWAFV2StInput]!
}

input AwsWAFV2SaXssMatchStatementInput {
  FieldToMatch: AwsWAFV2SdInput!
  TextTransformations: [AwsWAFV2StInput]!
}

input AwsWAFV2SaSizeConstraintStatementInput {
  FieldToMatch: AwsWAFV2SdInput!
  ComparisonOperator: String!
  Size: JSON!
  TextTransformations: [AwsWAFV2StInput]!
}

input AwsWAFV2SaGeoMatchStatementInput {
  CountryCodes: [String]
  ForwardedIPConfig: AwsWAFV2S16Input
}

input AwsWAFV2S16Input {
  HeaderName: String!
  FallbackBehavior: String!
}

input AwsWAFV2S19Input {
  ARN: String!
  ExcludedRules: [AwsWAFV2S1aInput]
}

input AwsWAFV2S1aInput {
  Name: String!
}

input AwsWAFV2SaIPSetReferenceStatementInput {
  ARN: String!
  IPSetForwardedIPConfig: AwsWAFV2SaIPSetReferenceStatementIPSetForwardedIPConfigInput
}

input AwsWAFV2SaIPSetReferenceStatementIPSetForwardedIPConfigInput {
  HeaderName: String!
  FallbackBehavior: String!
  Position: String!
}

input AwsWAFV2SaRegexPatternSetReferenceStatementInput {
  ARN: String!
  FieldToMatch: AwsWAFV2SdInput!
  TextTransformations: [AwsWAFV2StInput]!
}

input AwsWAFV2SaRateBasedStatementInput {
  Limit: JSON!
  AggregateKeyType: String!
  ScopeDownStatement: JSON
  ForwardedIPConfig: AwsWAFV2S16Input
}

input AwsWAFV2SaAndStatementInput {
  Statements: [JSON]!
}

input AwsWAFV2SaOrStatementInput {
  Statements: [JSON]!
}

input AwsWAFV2SaNotStatementInput {
  Statement: JSON!
}

input AwsWAFV2S1nInput {
  VendorName: String!
  Name: String!
  ExcludedRules: [AwsWAFV2S1aInput]
  ScopeDownStatement: JSON
}

input AwsWAFV2SaLabelMatchStatementInput {
  Scope: String!
  Key: String!
}

input AwsWAFV2S1sInput {
  Block: AwsWAFV2S1tInput
  Allow: AwsWAFV2S20Input
  Count: AwsWAFV2S22Input
}

input AwsWAFV2S1tInput {
  CustomResponse: AwsWAFV2S1tCustomResponseInput
}

input AwsWAFV2S1tCustomResponseInput {
  ResponseCode: Int!
  CustomResponseBodyKey: String
  ResponseHeaders: [AwsWAFV2S1wInput]
}

input AwsWAFV2S1wInput {
  Name: String!
  Value: String!
}

input AwsWAFV2S20Input {
  CustomRequestHandling: AwsWAFV2S21Input
}

input AwsWAFV2S21Input {
  InsertHeaders: [AwsWAFV2S1wInput]!
}

input AwsWAFV2S22Input {
  CustomRequestHandling: AwsWAFV2S21Input
}

input AwsWAFV2S23Input {
  Count: AwsWAFV2S22Input
  None: JSON
}

input AwsWAFV2S25Input {
  Name: String!
}

input AwsWAFV2S28Input {
  SampledRequestsEnabled: Boolean!
  CloudWatchMetricsEnabled: Boolean!
  MetricName: String!
}

type AwsWAFV2CreateIPSetOutput {
  Summary: AwsWAFV2S2n
}

type AwsWAFV2S2n {
  Name: String
  Id: String
  Description: String
  LockToken: String
  ARN: String
}

input AwsWAFV2CreateIPSetInput {
  Name: String!
  Scope: String!
  Description: String
  IPAddressVersion: String!
  Addresses: [String]!
  Tags: [AwsWAFV2S2iInput]
}

input AwsWAFV2S2iInput {
  Key: String!
  Value: String!
}

type AwsWAFV2CreateRegexPatternSetOutput {
  Summary: AwsWAFV2S2v
}

type AwsWAFV2S2v {
  Name: String
  Id: String
  Description: String
  LockToken: String
  ARN: String
}

input AwsWAFV2CreateRegexPatternSetInput {
  Name: String!
  Scope: String!
  Description: String
  RegularExpressionList: [AwsWAFV2S2rInput]!
  Tags: [AwsWAFV2S2iInput]
}

input AwsWAFV2S2rInput {
  RegexString: String
}

type AwsWAFV2CreateRuleGroupOutput {
  Summary: AwsWAFV2S33
}

type AwsWAFV2S33 {
  Name: String
  Id: String
  Description: String
  LockToken: String
  ARN: String
}

input AwsWAFV2CreateRuleGroupInput {
  Name: String!
  Scope: String!
  Capacity: JSON!
  Description: String
  Rules: [AwsWAFV2S6Input]
  VisibilityConfig: AwsWAFV2S28Input!
  Tags: [AwsWAFV2S2iInput]
  CustomResponseBodies: JSON
}

type AwsWAFV2CreateWebACLOutput {
  Summary: AwsWAFV2S37
}

type AwsWAFV2S37 {
  Name: String
  Id: String
  Description: String
  LockToken: String
  ARN: String
}

input AwsWAFV2CreateWebACLInput {
  Name: String!
  Scope: String!
  DefaultAction: AwsWAFV2S35Input!
  Description: String
  Rules: [AwsWAFV2S6Input]
  VisibilityConfig: AwsWAFV2S28Input!
  Tags: [AwsWAFV2S2iInput]
  CustomResponseBodies: JSON
}

input AwsWAFV2S35Input {
  Block: AwsWAFV2S1tInput
  Allow: AwsWAFV2S20Input
}

type AwsWAFV2DeleteFirewallManagerRuleGroupsOutput {
  NextWebACLLockToken: String
}

input AwsWAFV2DeleteFirewallManagerRuleGroupsInput {
  WebACLArn: String!
  WebACLLockToken: String!
}

input AwsWAFV2DeleteIPSetInput {
  Name: String!
  Scope: String!
  Id: String!
  LockToken: String!
}

input AwsWAFV2DeleteLoggingConfigurationInput {
  ResourceArn: String!
}

input AwsWAFV2DeletePermissionPolicyInput {
  ResourceArn: String!
}

input AwsWAFV2DeleteRegexPatternSetInput {
  Name: String!
  Scope: String!
  Id: String!
  LockToken: String!
}

input AwsWAFV2DeleteRuleGroupInput {
  Name: String!
  Scope: String!
  Id: String!
  LockToken: String!
}

input AwsWAFV2DeleteWebACLInput {
  Name: String!
  Scope: String!
  Id: String!
  LockToken: String!
}

type AwsWAFV2DescribeManagedRuleGroupOutput {
  Capacity: JSON
  Rules: [AwsWAFV2DescribeManagedRuleGroupOutputRules]
  LabelNamespace: String
  AvailableLabels: [AwsWAFV2S3q]
  ConsumedLabels: [AwsWAFV2S3q]
}

type AwsWAFV2DescribeManagedRuleGroupOutputRules {
  Name: String
  Action: AwsWAFV2S1s
}

type AwsWAFV2S1s {
  Block: AwsWAFV2S1t
  Allow: AwsWAFV2S20
  Count: AwsWAFV2S22
}

type AwsWAFV2S1t {
  CustomResponse: AwsWAFV2S1tCustomResponse
}

type AwsWAFV2S1tCustomResponse {
  ResponseCode: Int!
  CustomResponseBodyKey: String
  ResponseHeaders: [AwsWAFV2S1w]
}

type AwsWAFV2S1w {
  Name: String!
  Value: String!
}

type AwsWAFV2S20 {
  CustomRequestHandling: AwsWAFV2S21
}

type AwsWAFV2S21 {
  InsertHeaders: [AwsWAFV2S1w]!
}

type AwsWAFV2S22 {
  CustomRequestHandling: AwsWAFV2S21
}

type AwsWAFV2S3q {
  Name: String
}

input AwsWAFV2DescribeManagedRuleGroupInput {
  VendorName: String!
  Name: String!
  Scope: String!
}

input AwsWAFV2DisassociateWebACLInput {
  ResourceArn: String!
}

type AwsWAFV2GetIPSetOutput {
  IPSet: AwsWAFV2GetIPSetOutputIPSet
  LockToken: String
}

type AwsWAFV2GetIPSetOutputIPSet {
  Name: String!
  Id: String!
  ARN: String!
  Description: String
  IPAddressVersion: String!
  Addresses: [String]!
}

input AwsWAFV2GetIPSetInput {
  Name: String!
  Scope: String!
  Id: String!
}

type AwsWAFV2GetLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFV2S3z
}

type AwsWAFV2S3z {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFV2Sd]
  ManagedByFirewallManager: Boolean
  LoggingFilter: AwsWAFV2S3zLoggingFilter
}

type AwsWAFV2Sd {
  SingleHeader: AwsWAFV2SdSingleHeader
  SingleQueryArgument: AwsWAFV2SdSingleQueryArgument
  AllQueryArguments: JSON
  UriPath: JSON
  QueryString: JSON
  Body: JSON
  Method: JSON
  JsonBody: AwsWAFV2SdJsonBody
}

type AwsWAFV2SdSingleHeader {
  Name: String!
}

type AwsWAFV2SdSingleQueryArgument {
  Name: String!
}

type AwsWAFV2SdJsonBody {
  MatchPattern: AwsWAFV2SdJsonBodyMatchPattern!
  MatchScope: String!
  InvalidFallbackBehavior: String
}

type AwsWAFV2SdJsonBodyMatchPattern {
  All: JSON
  IncludedPaths: [String]
}

type AwsWAFV2S3zLoggingFilter {
  Filters: [AwsWAFV2S3zLoggingFilterFilters]!
  DefaultBehavior: String!
}

type AwsWAFV2S3zLoggingFilterFilters {
  Behavior: String!
  Requirement: String!
  Conditions: [AwsWAFV2S3zLoggingFilterFiltersConditions]!
}

type AwsWAFV2S3zLoggingFilterFiltersConditions {
  ActionCondition: AwsWAFV2S3zLoggingFilterFiltersConditionsActionCondition
  LabelNameCondition: AwsWAFV2S3zLoggingFilterFiltersConditionsLabelNameCondition
}

type AwsWAFV2S3zLoggingFilterFiltersConditionsActionCondition {
  Action: String!
}

type AwsWAFV2S3zLoggingFilterFiltersConditionsLabelNameCondition {
  LabelName: String!
}

input AwsWAFV2GetLoggingConfigurationInput {
  ResourceArn: String!
}

type AwsWAFV2GetPermissionPolicyOutput {
  Policy: String
}

input AwsWAFV2GetPermissionPolicyInput {
  ResourceArn: String!
}

type AwsWAFV2GetRateBasedStatementManagedKeysOutput {
  ManagedKeysIPV4: AwsWAFV2S4h
  ManagedKeysIPV6: AwsWAFV2S4h
}

type AwsWAFV2S4h {
  IPAddressVersion: String
  Addresses: [String]
}

input AwsWAFV2GetRateBasedStatementManagedKeysInput {
  Scope: String!
  WebACLName: String!
  WebACLId: String!
  RuleName: String!
}

type AwsWAFV2GetRegexPatternSetOutput {
  RegexPatternSet: AwsWAFV2GetRegexPatternSetOutputRegexPatternSet
  LockToken: String
}

type AwsWAFV2GetRegexPatternSetOutputRegexPatternSet {
  Name: String
  Id: String
  ARN: String
  Description: String
  RegularExpressionList: [AwsWAFV2S2r]
}

type AwsWAFV2S2r {
  RegexString: String
}

input AwsWAFV2GetRegexPatternSetInput {
  Name: String!
  Scope: String!
  Id: String!
}

type AwsWAFV2GetRuleGroupOutput {
  RuleGroup: AwsWAFV2GetRuleGroupOutputRuleGroup
  LockToken: String
}

type AwsWAFV2GetRuleGroupOutputRuleGroup {
  Name: String!
  Id: String!
  Capacity: JSON!
  ARN: String!
  Description: String
  Rules: [AwsWAFV2S6]
  VisibilityConfig: AwsWAFV2S28!
  LabelNamespace: String
  CustomResponseBodies: JSON
  AvailableLabels: [AwsWAFV2S3q]
  ConsumedLabels: [AwsWAFV2S3q]
}

type AwsWAFV2S6 {
  Name: String!
  Priority: Int!
  Statement: AwsWAFV2Sa!
  Action: AwsWAFV2S1s
  OverrideAction: AwsWAFV2S23
  RuleLabels: [AwsWAFV2S25]
  VisibilityConfig: AwsWAFV2S28!
}

type AwsWAFV2Sa {
  ByteMatchStatement: AwsWAFV2SaByteMatchStatement
  SqliMatchStatement: AwsWAFV2SaSqliMatchStatement
  XssMatchStatement: AwsWAFV2SaXssMatchStatement
  SizeConstraintStatement: AwsWAFV2SaSizeConstraintStatement
  GeoMatchStatement: AwsWAFV2SaGeoMatchStatement
  RuleGroupReferenceStatement: AwsWAFV2S19
  IPSetReferenceStatement: AwsWAFV2SaIPSetReferenceStatement
  RegexPatternSetReferenceStatement: AwsWAFV2SaRegexPatternSetReferenceStatement
  RateBasedStatement: AwsWAFV2SaRateBasedStatement
  AndStatement: AwsWAFV2SaAndStatement
  OrStatement: AwsWAFV2SaOrStatement
  NotStatement: AwsWAFV2SaNotStatement
  ManagedRuleGroupStatement: AwsWAFV2S1n
  LabelMatchStatement: AwsWAFV2SaLabelMatchStatement
}

type AwsWAFV2SaByteMatchStatement {
  SearchString: JSON!
  FieldToMatch: AwsWAFV2Sd!
  TextTransformations: [AwsWAFV2St]!
  PositionalConstraint: String!
}

type AwsWAFV2St {
  Priority: Int!
  Type: String!
}

type AwsWAFV2SaSqliMatchStatement {
  FieldToMatch: AwsWAFV2Sd!
  TextTransformations: [AwsWAFV2St]!
}

type AwsWAFV2SaXssMatchStatement {
  FieldToMatch: AwsWAFV2Sd!
  TextTransformations: [AwsWAFV2St]!
}

type AwsWAFV2SaSizeConstraintStatement {
  FieldToMatch: AwsWAFV2Sd!
  ComparisonOperator: String!
  Size: JSON!
  TextTransformations: [AwsWAFV2St]!
}

type AwsWAFV2SaGeoMatchStatement {
  CountryCodes: [String]
  ForwardedIPConfig: AwsWAFV2S16
}

type AwsWAFV2S16 {
  HeaderName: String!
  FallbackBehavior: String!
}

type AwsWAFV2S19 {
  ARN: String!
  ExcludedRules: [AwsWAFV2S1a]
}

type AwsWAFV2S1a {
  Name: String!
}

type AwsWAFV2SaIPSetReferenceStatement {
  ARN: String!
  IPSetForwardedIPConfig: AwsWAFV2SaIPSetReferenceStatementIPSetForwardedIPConfig
}

type AwsWAFV2SaIPSetReferenceStatementIPSetForwardedIPConfig {
  HeaderName: String!
  FallbackBehavior: String!
  Position: String!
}

type AwsWAFV2SaRegexPatternSetReferenceStatement {
  ARN: String!
  FieldToMatch: AwsWAFV2Sd!
  TextTransformations: [AwsWAFV2St]!
}

type AwsWAFV2SaRateBasedStatement {
  Limit: JSON!
  AggregateKeyType: String!
  ScopeDownStatement: JSON
  ForwardedIPConfig: AwsWAFV2S16
}

type AwsWAFV2SaAndStatement {
  Statements: [JSON]!
}

type AwsWAFV2SaOrStatement {
  Statements: [JSON]!
}

type AwsWAFV2SaNotStatement {
  Statement: JSON!
}

type AwsWAFV2S1n {
  VendorName: String!
  Name: String!
  ExcludedRules: [AwsWAFV2S1a]
  ScopeDownStatement: JSON
}

type AwsWAFV2SaLabelMatchStatement {
  Scope: String!
  Key: String!
}

type AwsWAFV2S23 {
  Count: AwsWAFV2S22
  None: JSON
}

type AwsWAFV2S25 {
  Name: String!
}

type AwsWAFV2S28 {
  SampledRequestsEnabled: Boolean!
  CloudWatchMetricsEnabled: Boolean!
  MetricName: String!
}

input AwsWAFV2GetRuleGroupInput {
  Name: String
  Scope: String
  Id: String
  ARN: String
}

type AwsWAFV2GetSampledRequestsOutput {
  SampledRequests: [AwsWAFV2GetSampledRequestsOutputSampledRequests]
  PopulationSize: JSON
  TimeWindow: AwsWAFV2S4p
}

type AwsWAFV2GetSampledRequestsOutputSampledRequests {
  Request: AwsWAFV2GetSampledRequestsOutputSampledRequestsRequest!
  Weight: JSON!
  Timestamp: Date
  Action: String
  RuleNameWithinRuleGroup: String
  RequestHeadersInserted: [AwsWAFV2S51]
  ResponseCodeSent: Int
  Labels: [AwsWAFV2S25]
}

type AwsWAFV2GetSampledRequestsOutputSampledRequestsRequest {
  ClientIP: String
  Country: String
  URI: String
  Method: String
  HTTPVersion: String
  Headers: [AwsWAFV2S51]
}

type AwsWAFV2S51 {
  Name: String
  Value: String
}

type AwsWAFV2S4p {
  StartTime: Date!
  EndTime: Date!
}

input AwsWAFV2GetSampledRequestsInput {
  WebAclArn: String!
  RuleMetricName: String!
  Scope: String!
  TimeWindow: AwsWAFV2S4pInput!
  MaxItems: JSON!
}

input AwsWAFV2S4pInput {
  StartTime: Date!
  EndTime: Date!
}

type AwsWAFV2GetWebACLOutput {
  WebACL: AwsWAFV2S5a
  LockToken: String
}

type AwsWAFV2S5a {
  Name: String!
  Id: String!
  ARN: String!
  DefaultAction: AwsWAFV2S35!
  Description: String
  Rules: [AwsWAFV2S6]
  VisibilityConfig: AwsWAFV2S28!
  Capacity: JSON
  PreProcessFirewallManagerRuleGroups: [AwsWAFV2S5b]
  PostProcessFirewallManagerRuleGroups: [AwsWAFV2S5b]
  ManagedByFirewallManager: Boolean
  LabelNamespace: String
  CustomResponseBodies: JSON
}

type AwsWAFV2S35 {
  Block: AwsWAFV2S1t
  Allow: AwsWAFV2S20
}

type AwsWAFV2S5b {
  Name: String!
  Priority: Int!
  FirewallManagerStatement: AwsWAFV2S5bFirewallManagerStatement!
  OverrideAction: AwsWAFV2S23!
  VisibilityConfig: AwsWAFV2S28!
}

type AwsWAFV2S5bFirewallManagerStatement {
  ManagedRuleGroupStatement: AwsWAFV2S1n
  RuleGroupReferenceStatement: AwsWAFV2S19
}

input AwsWAFV2GetWebACLInput {
  Name: String!
  Scope: String!
  Id: String!
}

type AwsWAFV2GetWebACLForResourceOutput {
  WebACL: AwsWAFV2S5a
}

input AwsWAFV2GetWebACLForResourceInput {
  ResourceArn: String!
}

type AwsWAFV2ListAvailableManagedRuleGroupsOutput {
  NextMarker: String
  ManagedRuleGroups: [AwsWAFV2ListAvailableManagedRuleGroupsOutputManagedRuleGroups]
}

type AwsWAFV2ListAvailableManagedRuleGroupsOutputManagedRuleGroups {
  VendorName: String
  Name: String
  Description: String
}

input AwsWAFV2ListAvailableManagedRuleGroupsInput {
  Scope: String!
  NextMarker: String
  Limit: Int
}

type AwsWAFV2ListIPSetsOutput {
  NextMarker: String
  IPSets: [AwsWAFV2S2n]
}

input AwsWAFV2ListIPSetsInput {
  Scope: String!
  NextMarker: String
  Limit: Int
}

type AwsWAFV2ListLoggingConfigurationsOutput {
  LoggingConfigurations: [AwsWAFV2S3z]
  NextMarker: String
}

input AwsWAFV2ListLoggingConfigurationsInput {
  Scope: String
  NextMarker: String
  Limit: Int
}

type AwsWAFV2ListRegexPatternSetsOutput {
  NextMarker: String
  RegexPatternSets: [AwsWAFV2S2v]
}

input AwsWAFV2ListRegexPatternSetsInput {
  Scope: String!
  NextMarker: String
  Limit: Int
}

type AwsWAFV2ListResourcesForWebACLOutput {
  ResourceArns: [String]
}

input AwsWAFV2ListResourcesForWebACLInput {
  WebACLArn: String!
  ResourceType: String
}

type AwsWAFV2ListRuleGroupsOutput {
  NextMarker: String
  RuleGroups: [AwsWAFV2S33]
}

input AwsWAFV2ListRuleGroupsInput {
  Scope: String!
  NextMarker: String
  Limit: Int
}

type AwsWAFV2ListTagsForResourceOutput {
  NextMarker: String
  TagInfoForResource: AwsWAFV2ListTagsForResourceOutputTagInfoForResource
}

type AwsWAFV2ListTagsForResourceOutputTagInfoForResource {
  ResourceARN: String
  TagList: [AwsWAFV2S2i]
}

type AwsWAFV2S2i {
  Key: String!
  Value: String!
}

input AwsWAFV2ListTagsForResourceInput {
  NextMarker: String
  Limit: Int
  ResourceARN: String!
}

type AwsWAFV2ListWebACLsOutput {
  NextMarker: String
  WebACLs: [AwsWAFV2S37]
}

input AwsWAFV2ListWebACLsInput {
  Scope: String!
  NextMarker: String
  Limit: Int
}

type AwsWAFV2PutLoggingConfigurationOutput {
  LoggingConfiguration: AwsWAFV2S3z
}

input AwsWAFV2PutLoggingConfigurationInput {
  LoggingConfiguration: AwsWAFV2S3zInput!
}

input AwsWAFV2S3zInput {
  ResourceArn: String!
  LogDestinationConfigs: [String]!
  RedactedFields: [AwsWAFV2SdInput]
  ManagedByFirewallManager: Boolean
  LoggingFilter: AwsWAFV2S3zLoggingFilterInput
}

input AwsWAFV2S3zLoggingFilterInput {
  Filters: [AwsWAFV2S3zLoggingFilterFiltersInput]!
  DefaultBehavior: String!
}

input AwsWAFV2S3zLoggingFilterFiltersInput {
  Behavior: String!
  Requirement: String!
  Conditions: [AwsWAFV2S3zLoggingFilterFiltersConditionsInput]!
}

input AwsWAFV2S3zLoggingFilterFiltersConditionsInput {
  ActionCondition: AwsWAFV2S3zLoggingFilterFiltersConditionsActionConditionInput
  LabelNameCondition: AwsWAFV2S3zLoggingFilterFiltersConditionsLabelNameConditionInput
}

input AwsWAFV2S3zLoggingFilterFiltersConditionsActionConditionInput {
  Action: String!
}

input AwsWAFV2S3zLoggingFilterFiltersConditionsLabelNameConditionInput {
  LabelName: String!
}

input AwsWAFV2PutPermissionPolicyInput {
  ResourceArn: String!
  Policy: String!
}

input AwsWAFV2TagResourceInput {
  ResourceARN: String!
  Tags: [AwsWAFV2S2iInput]!
}

input AwsWAFV2UntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsWAFV2UpdateIPSetOutput {
  NextLockToken: String
}

input AwsWAFV2UpdateIPSetInput {
  Name: String!
  Scope: String!
  Id: String!
  Description: String
  Addresses: [String]!
  LockToken: String!
}

type AwsWAFV2UpdateRegexPatternSetOutput {
  NextLockToken: String
}

input AwsWAFV2UpdateRegexPatternSetInput {
  Name: String!
  Scope: String!
  Id: String!
  Description: String
  RegularExpressionList: [AwsWAFV2S2rInput]!
  LockToken: String!
}

type AwsWAFV2UpdateRuleGroupOutput {
  NextLockToken: String
}

input AwsWAFV2UpdateRuleGroupInput {
  Name: String!
  Scope: String!
  Id: String!
  Description: String
  Rules: [AwsWAFV2S6Input]
  VisibilityConfig: AwsWAFV2S28Input!
  LockToken: String!
  CustomResponseBodies: JSON
}

type AwsWAFV2UpdateWebACLOutput {
  NextLockToken: String
}

input AwsWAFV2UpdateWebACLInput {
  Name: String!
  Scope: String!
  Id: String!
  DefaultAction: AwsWAFV2S35Input!
  Description: String
  Rules: [AwsWAFV2S6Input]
  VisibilityConfig: AwsWAFV2S28Input!
  LockToken: String!
  CustomResponseBodies: JSON
}

"""AWS Well-Architected Tool (2020-03-31)"""
type AwsWellArchitected {
  associateLenses(input: AwsWellArchitectedAssociateLensesInput!, config: AwsConfig): JSON
  createMilestone(input: AwsWellArchitectedCreateMilestoneInput!, config: AwsConfig): AwsWellArchitectedCreateMilestoneOutput
  createWorkload(input: AwsWellArchitectedCreateWorkloadInput!, config: AwsConfig): AwsWellArchitectedCreateWorkloadOutput
  createWorkloadShare(input: AwsWellArchitectedCreateWorkloadShareInput!, config: AwsConfig): AwsWellArchitectedCreateWorkloadShareOutput
  deleteWorkload(input: AwsWellArchitectedDeleteWorkloadInput!, config: AwsConfig): JSON
  deleteWorkloadShare(input: AwsWellArchitectedDeleteWorkloadShareInput!, config: AwsConfig): JSON
  disassociateLenses(input: AwsWellArchitectedDisassociateLensesInput!, config: AwsConfig): JSON
  getAnswer(input: AwsWellArchitectedGetAnswerInput!, config: AwsConfig): AwsWellArchitectedGetAnswerOutput
  getLensReview(input: AwsWellArchitectedGetLensReviewInput!, config: AwsConfig): AwsWellArchitectedGetLensReviewOutput
  getLensReviewReport(input: AwsWellArchitectedGetLensReviewReportInput!, config: AwsConfig): AwsWellArchitectedGetLensReviewReportOutput
  getLensVersionDifference(input: AwsWellArchitectedGetLensVersionDifferenceInput!, config: AwsConfig): AwsWellArchitectedGetLensVersionDifferenceOutput
  getMilestone(input: AwsWellArchitectedGetMilestoneInput!, config: AwsConfig): AwsWellArchitectedGetMilestoneOutput
  getWorkload(input: AwsWellArchitectedGetWorkloadInput!, config: AwsConfig): AwsWellArchitectedGetWorkloadOutput
  listAnswers(input: AwsWellArchitectedListAnswersInput!, config: AwsConfig): AwsWellArchitectedListAnswersOutput
  listLensReviewImprovements(input: AwsWellArchitectedListLensReviewImprovementsInput!, config: AwsConfig): AwsWellArchitectedListLensReviewImprovementsOutput
  listLensReviews(input: AwsWellArchitectedListLensReviewsInput!, config: AwsConfig): AwsWellArchitectedListLensReviewsOutput
  listLenses(input: AwsWellArchitectedListLensesInput, config: AwsConfig): AwsWellArchitectedListLensesOutput
  listMilestones(input: AwsWellArchitectedListMilestonesInput!, config: AwsConfig): AwsWellArchitectedListMilestonesOutput
  listNotifications(input: AwsWellArchitectedListNotificationsInput, config: AwsConfig): AwsWellArchitectedListNotificationsOutput
  listShareInvitations(input: AwsWellArchitectedListShareInvitationsInput, config: AwsConfig): AwsWellArchitectedListShareInvitationsOutput
  listTagsForResource(input: AwsWellArchitectedListTagsForResourceInput!, config: AwsConfig): AwsWellArchitectedListTagsForResourceOutput
  listWorkloadShares(input: AwsWellArchitectedListWorkloadSharesInput!, config: AwsConfig): AwsWellArchitectedListWorkloadSharesOutput
  listWorkloads(input: AwsWellArchitectedListWorkloadsInput, config: AwsConfig): AwsWellArchitectedListWorkloadsOutput
  tagResource(input: AwsWellArchitectedTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWellArchitectedUntagResourceInput!, config: AwsConfig): JSON
  updateAnswer(input: AwsWellArchitectedUpdateAnswerInput!, config: AwsConfig): AwsWellArchitectedUpdateAnswerOutput
  updateLensReview(input: AwsWellArchitectedUpdateLensReviewInput!, config: AwsConfig): AwsWellArchitectedUpdateLensReviewOutput
  updateShareInvitation(input: AwsWellArchitectedUpdateShareInvitationInput!, config: AwsConfig): AwsWellArchitectedUpdateShareInvitationOutput
  updateWorkload(input: AwsWellArchitectedUpdateWorkloadInput!, config: AwsConfig): AwsWellArchitectedUpdateWorkloadOutput
  updateWorkloadShare(input: AwsWellArchitectedUpdateWorkloadShareInput!, config: AwsConfig): AwsWellArchitectedUpdateWorkloadShareOutput
  upgradeLensReview(input: AwsWellArchitectedUpgradeLensReviewInput!, config: AwsConfig): JSON
}

input AwsWellArchitectedAssociateLensesInput {
  WorkloadId: String!
  LensAliases: [String]!
}

type AwsWellArchitectedCreateMilestoneOutput {
  WorkloadId: String
  MilestoneNumber: Int
}

input AwsWellArchitectedCreateMilestoneInput {
  WorkloadId: String!
  MilestoneName: String!
  ClientRequestToken: String!
}

type AwsWellArchitectedCreateWorkloadOutput {
  WorkloadId: String
  WorkloadArn: String
}

input AwsWellArchitectedCreateWorkloadInput {
  WorkloadName: String!
  Description: String!
  Environment: String!
  AccountIds: [String]
  AwsRegions: [String]
  NonAwsRegions: [String]
  PillarPriorities: [String]
  ArchitecturalDesign: String
  ReviewOwner: String!
  IndustryType: String
  Industry: String
  Lenses: [String]!
  Notes: String
  ClientRequestToken: String!
  Tags: JSON
}

type AwsWellArchitectedCreateWorkloadShareOutput {
  WorkloadId: String
  ShareId: String
}

input AwsWellArchitectedCreateWorkloadShareInput {
  WorkloadId: String!
  SharedWith: String!
  PermissionType: String!
  ClientRequestToken: String!
}

input AwsWellArchitectedDeleteWorkloadInput {
  WorkloadId: String!
  ClientRequestToken: String!
}

input AwsWellArchitectedDeleteWorkloadShareInput {
  ShareId: String!
  WorkloadId: String!
  ClientRequestToken: String!
}

input AwsWellArchitectedDisassociateLensesInput {
  WorkloadId: String!
  LensAliases: [String]!
}

type AwsWellArchitectedGetAnswerOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensAlias: String
  Answer: AwsWellArchitectedS18
}

type AwsWellArchitectedS18 {
  QuestionId: String
  PillarId: String
  QuestionTitle: String
  QuestionDescription: String
  ImprovementPlanUrl: String
  HelpfulResourceUrl: String
  Choices: [AwsWellArchitectedS1d]
  SelectedChoices: [String]
  IsApplicable: Boolean
  Risk: String
  Notes: String
}

type AwsWellArchitectedS1d {
  ChoiceId: String
  Title: String
  Description: String
}

input AwsWellArchitectedGetAnswerInput {
  WorkloadId: String!
  LensAlias: String!
  QuestionId: String!
  MilestoneNumber: Int
}

type AwsWellArchitectedGetLensReviewOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensReview: AwsWellArchitectedS1n
}

type AwsWellArchitectedS1n {
  LensAlias: String
  LensVersion: String
  LensName: String
  LensStatus: String
  PillarReviewSummaries: [AwsWellArchitectedS1nPillarReviewSummaries]
  UpdatedAt: Date
  Notes: String
  RiskCounts: JSON
  NextToken: String
}

type AwsWellArchitectedS1nPillarReviewSummaries {
  PillarId: String
  PillarName: String
  Notes: String
  RiskCounts: JSON
}

input AwsWellArchitectedGetLensReviewInput {
  WorkloadId: String!
  LensAlias: String!
  MilestoneNumber: Int
}

type AwsWellArchitectedGetLensReviewReportOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensReviewReport: AwsWellArchitectedGetLensReviewReportOutputLensReviewReport
}

type AwsWellArchitectedGetLensReviewReportOutputLensReviewReport {
  LensAlias: String
  Base64String: String
}

input AwsWellArchitectedGetLensReviewReportInput {
  WorkloadId: String!
  LensAlias: String!
  MilestoneNumber: Int
}

type AwsWellArchitectedGetLensVersionDifferenceOutput {
  LensAlias: String
  BaseLensVersion: String
  LatestLensVersion: String
  VersionDifferences: AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferences
}

type AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferences {
  PillarDifferences: [AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferencesPillarDifferences]
}

type AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferencesPillarDifferences {
  PillarId: String
  DifferenceStatus: String
  QuestionDifferences: [AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferencesPillarDifferencesQuestionDifferences]
}

type AwsWellArchitectedGetLensVersionDifferenceOutputVersionDifferencesPillarDifferencesQuestionDifferences {
  QuestionId: String
  QuestionTitle: String
  DifferenceStatus: String
}

input AwsWellArchitectedGetLensVersionDifferenceInput {
  LensAlias: String!
  BaseLensVersion: String!
}

type AwsWellArchitectedGetMilestoneOutput {
  WorkloadId: String
  Milestone: AwsWellArchitectedGetMilestoneOutputMilestone
}

type AwsWellArchitectedGetMilestoneOutputMilestone {
  MilestoneNumber: Int
  MilestoneName: String
  RecordedAt: Date
  Workload: AwsWellArchitectedS2d
}

type AwsWellArchitectedS2d {
  WorkloadId: String
  WorkloadArn: String
  WorkloadName: String
  Description: String
  Environment: String
  UpdatedAt: Date
  AccountIds: [String]
  AwsRegions: [String]
  NonAwsRegions: [String]
  ArchitecturalDesign: String
  ReviewOwner: String
  ReviewRestrictionDate: Date
  IsReviewOwnerUpdateAcknowledged: Boolean
  IndustryType: String
  Industry: String
  Notes: String
  ImprovementStatus: String
  RiskCounts: JSON
  PillarPriorities: [String]
  Lenses: [String]
  Owner: String
  ShareInvitationId: String
  Tags: JSON
}

input AwsWellArchitectedGetMilestoneInput {
  WorkloadId: String!
  MilestoneNumber: Int!
}

type AwsWellArchitectedGetWorkloadOutput {
  Workload: AwsWellArchitectedS2d
}

input AwsWellArchitectedGetWorkloadInput {
  WorkloadId: String!
}

type AwsWellArchitectedListAnswersOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensAlias: String
  AnswerSummaries: [AwsWellArchitectedListAnswersOutputAnswerSummaries]
  NextToken: String
}

type AwsWellArchitectedListAnswersOutputAnswerSummaries {
  QuestionId: String
  PillarId: String
  QuestionTitle: String
  Choices: [AwsWellArchitectedS1d]
  SelectedChoices: [String]
  IsApplicable: Boolean
  Risk: String
}

input AwsWellArchitectedListAnswersInput {
  WorkloadId: String!
  LensAlias: String!
  PillarId: String
  MilestoneNumber: Int
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListLensReviewImprovementsOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensAlias: String
  ImprovementSummaries: [AwsWellArchitectedListLensReviewImprovementsOutputImprovementSummaries]
  NextToken: String
}

type AwsWellArchitectedListLensReviewImprovementsOutputImprovementSummaries {
  QuestionId: String
  PillarId: String
  QuestionTitle: String
  Risk: String
  ImprovementPlanUrl: String
}

input AwsWellArchitectedListLensReviewImprovementsInput {
  WorkloadId: String!
  LensAlias: String!
  PillarId: String
  MilestoneNumber: Int
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListLensReviewsOutput {
  WorkloadId: String
  MilestoneNumber: Int
  LensReviewSummaries: [AwsWellArchitectedListLensReviewsOutputLensReviewSummaries]
  NextToken: String
}

type AwsWellArchitectedListLensReviewsOutputLensReviewSummaries {
  LensAlias: String
  LensVersion: String
  LensName: String
  LensStatus: String
  UpdatedAt: Date
  RiskCounts: JSON
}

input AwsWellArchitectedListLensReviewsInput {
  WorkloadId: String!
  MilestoneNumber: Int
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListLensesOutput {
  LensSummaries: [AwsWellArchitectedListLensesOutputLensSummaries]
  NextToken: String
}

type AwsWellArchitectedListLensesOutputLensSummaries {
  LensAlias: String
  LensVersion: String
  LensName: String
  Description: String
}

input AwsWellArchitectedListLensesInput {
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListMilestonesOutput {
  WorkloadId: String
  MilestoneSummaries: [AwsWellArchitectedListMilestonesOutputMilestoneSummaries]
  NextToken: String
}

type AwsWellArchitectedListMilestonesOutputMilestoneSummaries {
  MilestoneNumber: Int
  MilestoneName: String
  RecordedAt: Date
  WorkloadSummary: AwsWellArchitectedS37
}

type AwsWellArchitectedS37 {
  WorkloadId: String
  WorkloadArn: String
  WorkloadName: String
  Owner: String
  UpdatedAt: Date
  Lenses: [String]
  RiskCounts: JSON
  ImprovementStatus: String
}

input AwsWellArchitectedListMilestonesInput {
  WorkloadId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListNotificationsOutput {
  NotificationSummaries: [AwsWellArchitectedListNotificationsOutputNotificationSummaries]
  NextToken: String
}

type AwsWellArchitectedListNotificationsOutputNotificationSummaries {
  Type: String
  LensUpgradeSummary: AwsWellArchitectedListNotificationsOutputNotificationSummariesLensUpgradeSummary
}

type AwsWellArchitectedListNotificationsOutputNotificationSummariesLensUpgradeSummary {
  WorkloadId: String
  WorkloadName: String
  LensAlias: String
  CurrentLensVersion: String
  LatestLensVersion: String
}

input AwsWellArchitectedListNotificationsInput {
  WorkloadId: String
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListShareInvitationsOutput {
  ShareInvitationSummaries: [AwsWellArchitectedListShareInvitationsOutputShareInvitationSummaries]
  NextToken: String
}

type AwsWellArchitectedListShareInvitationsOutputShareInvitationSummaries {
  ShareInvitationId: String
  SharedBy: String
  SharedWith: String
  PermissionType: String
  WorkloadName: String
  WorkloadId: String
}

input AwsWellArchitectedListShareInvitationsInput {
  WorkloadNamePrefix: String
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListTagsForResourceOutput {
  Tags: JSON
}

input AwsWellArchitectedListTagsForResourceInput {
  WorkloadArn: String!
}

type AwsWellArchitectedListWorkloadSharesOutput {
  WorkloadId: String
  WorkloadShareSummaries: [AwsWellArchitectedListWorkloadSharesOutputWorkloadShareSummaries]
  NextToken: String
}

type AwsWellArchitectedListWorkloadSharesOutputWorkloadShareSummaries {
  ShareId: String
  SharedWith: String
  PermissionType: String
  Status: String
}

input AwsWellArchitectedListWorkloadSharesInput {
  WorkloadId: String!
  SharedWithPrefix: String
  NextToken: String
  MaxResults: Int
}

type AwsWellArchitectedListWorkloadsOutput {
  WorkloadSummaries: [AwsWellArchitectedS37]
  NextToken: String
}

input AwsWellArchitectedListWorkloadsInput {
  WorkloadNamePrefix: String
  NextToken: String
  MaxResults: Int
}

input AwsWellArchitectedTagResourceInput {
  WorkloadArn: String!
  Tags: JSON!
}

input AwsWellArchitectedUntagResourceInput {
  WorkloadArn: String!
  TagKeys: [String]!
}

type AwsWellArchitectedUpdateAnswerOutput {
  WorkloadId: String
  LensAlias: String
  Answer: AwsWellArchitectedS18
}

input AwsWellArchitectedUpdateAnswerInput {
  WorkloadId: String!
  LensAlias: String!
  QuestionId: String!
  SelectedChoices: [String]
  Notes: String
  IsApplicable: Boolean
}

type AwsWellArchitectedUpdateLensReviewOutput {
  WorkloadId: String
  LensReview: AwsWellArchitectedS1n
}

input AwsWellArchitectedUpdateLensReviewInput {
  WorkloadId: String!
  LensAlias: String!
  LensNotes: String
  PillarNotes: JSON
}

type AwsWellArchitectedUpdateShareInvitationOutput {
  ShareInvitation: AwsWellArchitectedUpdateShareInvitationOutputShareInvitation
}

type AwsWellArchitectedUpdateShareInvitationOutputShareInvitation {
  ShareInvitationId: String
  WorkloadId: String
}

input AwsWellArchitectedUpdateShareInvitationInput {
  ShareInvitationId: String!
  ShareInvitationAction: String!
}

type AwsWellArchitectedUpdateWorkloadOutput {
  Workload: AwsWellArchitectedS2d
}

input AwsWellArchitectedUpdateWorkloadInput {
  WorkloadId: String!
  WorkloadName: String
  Description: String
  Environment: String
  AccountIds: [String]
  AwsRegions: [String]
  NonAwsRegions: [String]
  PillarPriorities: [String]
  ArchitecturalDesign: String
  ReviewOwner: String
  IsReviewOwnerUpdateAcknowledged: Boolean
  IndustryType: String
  Industry: String
  Notes: String
  ImprovementStatus: String
}

type AwsWellArchitectedUpdateWorkloadShareOutput {
  WorkloadId: String
  WorkloadShare: AwsWellArchitectedUpdateWorkloadShareOutputWorkloadShare
}

type AwsWellArchitectedUpdateWorkloadShareOutputWorkloadShare {
  ShareId: String
  SharedBy: String
  SharedWith: String
  PermissionType: String
  Status: String
  WorkloadName: String
  WorkloadId: String
}

input AwsWellArchitectedUpdateWorkloadShareInput {
  ShareId: String!
  WorkloadId: String!
  PermissionType: String!
}

input AwsWellArchitectedUpgradeLensReviewInput {
  WorkloadId: String!
  LensAlias: String!
  MilestoneName: String!
  ClientRequestToken: String
}

"""Amazon WorkDocs (2016-05-01)"""
type AwsWorkDocs {
  abortDocumentVersionUpload(input: AwsWorkDocsAbortDocumentVersionUploadInput!, config: AwsConfig): JSON
  activateUser(input: AwsWorkDocsActivateUserInput!, config: AwsConfig): AwsWorkDocsActivateUserOutput
  addResourcePermissions(input: AwsWorkDocsAddResourcePermissionsInput!, config: AwsConfig): AwsWorkDocsAddResourcePermissionsOutput
  createComment(input: AwsWorkDocsCreateCommentInput!, config: AwsConfig): AwsWorkDocsCreateCommentOutput
  createCustomMetadata(input: AwsWorkDocsCreateCustomMetadataInput!, config: AwsConfig): JSON
  createFolder(input: AwsWorkDocsCreateFolderInput!, config: AwsConfig): AwsWorkDocsCreateFolderOutput
  createLabels(input: AwsWorkDocsCreateLabelsInput!, config: AwsConfig): JSON
  createNotificationSubscription(input: AwsWorkDocsCreateNotificationSubscriptionInput!, config: AwsConfig): AwsWorkDocsCreateNotificationSubscriptionOutput
  createUser(input: AwsWorkDocsCreateUserInput!, config: AwsConfig): AwsWorkDocsCreateUserOutput
  deactivateUser(input: AwsWorkDocsDeactivateUserInput!, config: AwsConfig): JSON
  deleteComment(input: AwsWorkDocsDeleteCommentInput!, config: AwsConfig): JSON
  deleteCustomMetadata(input: AwsWorkDocsDeleteCustomMetadataInput!, config: AwsConfig): JSON
  deleteDocument(input: AwsWorkDocsDeleteDocumentInput!, config: AwsConfig): JSON
  deleteFolder(input: AwsWorkDocsDeleteFolderInput!, config: AwsConfig): JSON
  deleteFolderContents(input: AwsWorkDocsDeleteFolderContentsInput!, config: AwsConfig): JSON
  deleteLabels(input: AwsWorkDocsDeleteLabelsInput!, config: AwsConfig): JSON
  deleteNotificationSubscription(input: AwsWorkDocsDeleteNotificationSubscriptionInput!, config: AwsConfig): JSON
  deleteUser(input: AwsWorkDocsDeleteUserInput!, config: AwsConfig): JSON
  describeActivities(input: AwsWorkDocsDescribeActivitiesInput, config: AwsConfig): AwsWorkDocsDescribeActivitiesOutput
  describeComments(input: AwsWorkDocsDescribeCommentsInput!, config: AwsConfig): AwsWorkDocsDescribeCommentsOutput
  describeDocumentVersions(input: AwsWorkDocsDescribeDocumentVersionsInput!, config: AwsConfig): AwsWorkDocsDescribeDocumentVersionsOutput
  describeFolderContents(input: AwsWorkDocsDescribeFolderContentsInput!, config: AwsConfig): AwsWorkDocsDescribeFolderContentsOutput
  describeGroups(input: AwsWorkDocsDescribeGroupsInput!, config: AwsConfig): AwsWorkDocsDescribeGroupsOutput
  describeNotificationSubscriptions(input: AwsWorkDocsDescribeNotificationSubscriptionsInput!, config: AwsConfig): AwsWorkDocsDescribeNotificationSubscriptionsOutput
  describeResourcePermissions(input: AwsWorkDocsDescribeResourcePermissionsInput!, config: AwsConfig): AwsWorkDocsDescribeResourcePermissionsOutput
  describeRootFolders(input: AwsWorkDocsDescribeRootFoldersInput!, config: AwsConfig): AwsWorkDocsDescribeRootFoldersOutput
  describeUsers(input: AwsWorkDocsDescribeUsersInput, config: AwsConfig): AwsWorkDocsDescribeUsersOutput
  getCurrentUser(input: AwsWorkDocsGetCurrentUserInput!, config: AwsConfig): AwsWorkDocsGetCurrentUserOutput
  getDocument(input: AwsWorkDocsGetDocumentInput!, config: AwsConfig): AwsWorkDocsGetDocumentOutput
  getDocumentPath(input: AwsWorkDocsGetDocumentPathInput!, config: AwsConfig): AwsWorkDocsGetDocumentPathOutput
  getDocumentVersion(input: AwsWorkDocsGetDocumentVersionInput!, config: AwsConfig): AwsWorkDocsGetDocumentVersionOutput
  getFolder(input: AwsWorkDocsGetFolderInput!, config: AwsConfig): AwsWorkDocsGetFolderOutput
  getFolderPath(input: AwsWorkDocsGetFolderPathInput!, config: AwsConfig): AwsWorkDocsGetFolderPathOutput
  getResources(input: AwsWorkDocsGetResourcesInput, config: AwsConfig): AwsWorkDocsGetResourcesOutput
  initiateDocumentVersionUpload(input: AwsWorkDocsInitiateDocumentVersionUploadInput!, config: AwsConfig): AwsWorkDocsInitiateDocumentVersionUploadOutput
  removeAllResourcePermissions(input: AwsWorkDocsRemoveAllResourcePermissionsInput!, config: AwsConfig): JSON
  removeResourcePermission(input: AwsWorkDocsRemoveResourcePermissionInput!, config: AwsConfig): JSON
  updateDocument(input: AwsWorkDocsUpdateDocumentInput!, config: AwsConfig): JSON
  updateDocumentVersion(input: AwsWorkDocsUpdateDocumentVersionInput!, config: AwsConfig): JSON
  updateFolder(input: AwsWorkDocsUpdateFolderInput!, config: AwsConfig): JSON
  updateUser(input: AwsWorkDocsUpdateUserInput!, config: AwsConfig): AwsWorkDocsUpdateUserOutput
}

input AwsWorkDocsAbortDocumentVersionUploadInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
}

type AwsWorkDocsActivateUserOutput {
  User: AwsWorkDocsS8
}

type AwsWorkDocsS8 {
  Id: String
  Username: String
  EmailAddress: String
  GivenName: String
  Surname: String
  OrganizationId: String
  RootFolderId: String
  RecycleBinFolderId: String
  Status: String
  Type: String
  CreatedTimestamp: Date
  ModifiedTimestamp: Date
  TimeZoneId: String
  Locale: String
  Storage: AwsWorkDocsS8Storage
}

type AwsWorkDocsS8Storage {
  StorageUtilizedInBytes: JSON
  StorageRule: AwsWorkDocsSj
}

type AwsWorkDocsSj {
  StorageAllocatedInBytes: JSON
  StorageType: String
}

input AwsWorkDocsActivateUserInput {
  UserId: String!
  AuthenticationToken: String
}

type AwsWorkDocsAddResourcePermissionsOutput {
  ShareResults: [AwsWorkDocsAddResourcePermissionsOutputShareResults]
}

type AwsWorkDocsAddResourcePermissionsOutputShareResults {
  PrincipalId: String
  InviteePrincipalId: String
  Role: String
  Status: String
  ShareId: String
  StatusMessage: String
}

input AwsWorkDocsAddResourcePermissionsInput {
  AuthenticationToken: String
  ResourceId: String!
  Principals: [AwsWorkDocsAddResourcePermissionsPrincipalsInput]!
  NotificationOptions: AwsWorkDocsAddResourcePermissionsNotificationOptionsInput
}

input AwsWorkDocsAddResourcePermissionsPrincipalsInput {
  Id: String!
  Type: String!
  Role: String!
}

input AwsWorkDocsAddResourcePermissionsNotificationOptionsInput {
  SendEmail: Boolean
  EmailMessage: String
}

type AwsWorkDocsCreateCommentOutput {
  Comment: AwsWorkDocsS13
}

type AwsWorkDocsS13 {
  CommentId: String!
  ParentId: String
  ThreadId: String
  Text: String
  Contributor: AwsWorkDocsS8
  CreatedTimestamp: Date
  Status: String
  Visibility: String
  RecipientId: String
}

input AwsWorkDocsCreateCommentInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
  ParentId: String
  ThreadId: String
  Text: String!
  Visibility: String
  NotifyCollaborators: Boolean
}

input AwsWorkDocsCreateCustomMetadataInput {
  AuthenticationToken: String
  ResourceId: String!
  VersionId: String
  CustomMetadata: JSON!
}

type AwsWorkDocsCreateFolderOutput {
  Metadata: AwsWorkDocsS1d
}

type AwsWorkDocsS1d {
  Id: String
  Name: String
  CreatorId: String
  ParentFolderId: String
  CreatedTimestamp: Date
  ModifiedTimestamp: Date
  ResourceState: String
  Signature: String
  Labels: [String]
  Size: JSON
  LatestVersionSize: JSON
}

input AwsWorkDocsCreateFolderInput {
  AuthenticationToken: String
  Name: String
  ParentFolderId: String!
}

input AwsWorkDocsCreateLabelsInput {
  ResourceId: String!
  Labels: [String]!
  AuthenticationToken: String
}

type AwsWorkDocsCreateNotificationSubscriptionOutput {
  Subscription: AwsWorkDocsS1p
}

type AwsWorkDocsS1p {
  SubscriptionId: String
  EndPoint: String
  Protocol: String
}

input AwsWorkDocsCreateNotificationSubscriptionInput {
  OrganizationId: String!
  Endpoint: String!
  Protocol: String!
  SubscriptionType: String!
}

type AwsWorkDocsCreateUserOutput {
  User: AwsWorkDocsS8
}

input AwsWorkDocsCreateUserInput {
  OrganizationId: String
  Username: String!
  EmailAddress: String
  GivenName: String!
  Surname: String!
  Password: String!
  TimeZoneId: String
  StorageRule: AwsWorkDocsSjInput
  AuthenticationToken: String
}

input AwsWorkDocsSjInput {
  StorageAllocatedInBytes: JSON
  StorageType: String
}

input AwsWorkDocsDeactivateUserInput {
  UserId: String!
  AuthenticationToken: String
}

input AwsWorkDocsDeleteCommentInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
  CommentId: String!
}

input AwsWorkDocsDeleteCustomMetadataInput {
  AuthenticationToken: String
  ResourceId: String!
  VersionId: String
  Keys: [String]
  DeleteAll: Boolean
}

input AwsWorkDocsDeleteDocumentInput {
  AuthenticationToken: String
  DocumentId: String!
}

input AwsWorkDocsDeleteFolderInput {
  AuthenticationToken: String
  FolderId: String!
}

input AwsWorkDocsDeleteFolderContentsInput {
  AuthenticationToken: String
  FolderId: String!
}

input AwsWorkDocsDeleteLabelsInput {
  ResourceId: String!
  AuthenticationToken: String
  Labels: [String]
  DeleteAll: Boolean
}

input AwsWorkDocsDeleteNotificationSubscriptionInput {
  SubscriptionId: String!
  OrganizationId: String!
}

input AwsWorkDocsDeleteUserInput {
  AuthenticationToken: String
  UserId: String!
}

type AwsWorkDocsDescribeActivitiesOutput {
  UserActivities: [AwsWorkDocsDescribeActivitiesOutputUserActivities]
  Marker: String
}

type AwsWorkDocsDescribeActivitiesOutputUserActivities {
  Type: String
  TimeStamp: Date
  IsIndirectActivity: Boolean
  OrganizationId: String
  Initiator: AwsWorkDocsS2d
  Participants: AwsWorkDocsDescribeActivitiesOutputUserActivitiesParticipants
  ResourceMetadata: AwsWorkDocsS2j
  OriginalParent: AwsWorkDocsS2j
  CommentMetadata: AwsWorkDocsDescribeActivitiesOutputUserActivitiesCommentMetadata
}

type AwsWorkDocsS2d {
  Id: String
  Username: String
  GivenName: String
  Surname: String
  EmailAddress: String
}

type AwsWorkDocsDescribeActivitiesOutputUserActivitiesParticipants {
  Users: [AwsWorkDocsS2d]
  Groups: [AwsWorkDocsS2g]
}

type AwsWorkDocsS2g {
  Id: String
  Name: String
}

type AwsWorkDocsS2j {
  Type: String
  Name: String
  OriginalName: String
  Id: String
  VersionId: String
  Owner: AwsWorkDocsS2d
  ParentId: String
}

type AwsWorkDocsDescribeActivitiesOutputUserActivitiesCommentMetadata {
  CommentId: String
  Contributor: AwsWorkDocsS8
  CreatedTimestamp: Date
  CommentStatus: String
  RecipientId: String
}

input AwsWorkDocsDescribeActivitiesInput {
  AuthenticationToken: String
  StartTime: Date
  EndTime: Date
  OrganizationId: String
  ActivityTypes: String
  ResourceId: String
  UserId: String
  IncludeIndirectActivities: Boolean
  Limit: Int
  Marker: String
}

type AwsWorkDocsDescribeCommentsOutput {
  Comments: [AwsWorkDocsS13]
  Marker: String
}

input AwsWorkDocsDescribeCommentsInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
  Limit: Int
  Marker: String
}

type AwsWorkDocsDescribeDocumentVersionsOutput {
  DocumentVersions: [AwsWorkDocsS2u]
  Marker: String
}

type AwsWorkDocsS2u {
  Id: String
  Name: String
  ContentType: String
  Size: JSON
  Signature: String
  Status: String
  CreatedTimestamp: Date
  ModifiedTimestamp: Date
  ContentCreatedTimestamp: Date
  ContentModifiedTimestamp: Date
  CreatorId: String
  Thumbnail: JSON
  Source: JSON
}

input AwsWorkDocsDescribeDocumentVersionsInput {
  AuthenticationToken: String
  DocumentId: String!
  Marker: String
  Limit: Int
  Include: String
  Fields: String
}

type AwsWorkDocsDescribeFolderContentsOutput {
  Folders: [AwsWorkDocsS1d]
  Documents: [AwsWorkDocsS39]
  Marker: String
}

type AwsWorkDocsS39 {
  Id: String
  CreatorId: String
  ParentFolderId: String
  CreatedTimestamp: Date
  ModifiedTimestamp: Date
  LatestVersionMetadata: AwsWorkDocsS2u
  ResourceState: String
  Labels: [String]
}

input AwsWorkDocsDescribeFolderContentsInput {
  AuthenticationToken: String
  FolderId: String!
  Sort: String
  Order: String
  Limit: Int
  Marker: String
  Type: String
  Include: String
}

type AwsWorkDocsDescribeGroupsOutput {
  Groups: [AwsWorkDocsS2g]
  Marker: String
}

input AwsWorkDocsDescribeGroupsInput {
  AuthenticationToken: String
  SearchQuery: String!
  OrganizationId: String
  Marker: String
  Limit: Int
}

type AwsWorkDocsDescribeNotificationSubscriptionsOutput {
  Subscriptions: [AwsWorkDocsS1p]
  Marker: String
}

input AwsWorkDocsDescribeNotificationSubscriptionsInput {
  OrganizationId: String!
  Marker: String
  Limit: Int
}

type AwsWorkDocsDescribeResourcePermissionsOutput {
  Principals: [AwsWorkDocsDescribeResourcePermissionsOutputPrincipals]
  Marker: String
}

type AwsWorkDocsDescribeResourcePermissionsOutputPrincipals {
  Id: String
  Type: String
  Roles: [AwsWorkDocsDescribeResourcePermissionsOutputPrincipalsRoles]
}

type AwsWorkDocsDescribeResourcePermissionsOutputPrincipalsRoles {
  Role: String
  Type: String
}

input AwsWorkDocsDescribeResourcePermissionsInput {
  AuthenticationToken: String
  ResourceId: String!
  PrincipalId: String
  Limit: Int
  Marker: String
}

type AwsWorkDocsDescribeRootFoldersOutput {
  Folders: [AwsWorkDocsS1d]
  Marker: String
}

input AwsWorkDocsDescribeRootFoldersInput {
  AuthenticationToken: String!
  Limit: Int
  Marker: String
}

type AwsWorkDocsDescribeUsersOutput {
  Users: [AwsWorkDocsS8]
  TotalNumberOfUsers: JSON
  Marker: String
}

input AwsWorkDocsDescribeUsersInput {
  AuthenticationToken: String
  OrganizationId: String
  UserIds: String
  Query: String
  Include: String
  Order: String
  Sort: String
  Marker: String
  Limit: Int
  Fields: String
}

type AwsWorkDocsGetCurrentUserOutput {
  User: AwsWorkDocsS8
}

input AwsWorkDocsGetCurrentUserInput {
  AuthenticationToken: String!
}

type AwsWorkDocsGetDocumentOutput {
  Metadata: AwsWorkDocsS39
  CustomMetadata: JSON
}

input AwsWorkDocsGetDocumentInput {
  AuthenticationToken: String
  DocumentId: String!
  IncludeCustomMetadata: Boolean
}

type AwsWorkDocsGetDocumentPathOutput {
  Path: AwsWorkDocsS42
}

type AwsWorkDocsS42 {
  Components: [AwsWorkDocsS42Components]
}

type AwsWorkDocsS42Components {
  Id: String
  Name: String
}

input AwsWorkDocsGetDocumentPathInput {
  AuthenticationToken: String
  DocumentId: String!
  Limit: Int
  Fields: String
  Marker: String
}

type AwsWorkDocsGetDocumentVersionOutput {
  Metadata: AwsWorkDocsS2u
  CustomMetadata: JSON
}

input AwsWorkDocsGetDocumentVersionInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
  Fields: String
  IncludeCustomMetadata: Boolean
}

type AwsWorkDocsGetFolderOutput {
  Metadata: AwsWorkDocsS1d
  CustomMetadata: JSON
}

input AwsWorkDocsGetFolderInput {
  AuthenticationToken: String
  FolderId: String!
  IncludeCustomMetadata: Boolean
}

type AwsWorkDocsGetFolderPathOutput {
  Path: AwsWorkDocsS42
}

input AwsWorkDocsGetFolderPathInput {
  AuthenticationToken: String
  FolderId: String!
  Limit: Int
  Fields: String
  Marker: String
}

type AwsWorkDocsGetResourcesOutput {
  Folders: [AwsWorkDocsS1d]
  Documents: [AwsWorkDocsS39]
  Marker: String
}

input AwsWorkDocsGetResourcesInput {
  AuthenticationToken: String
  UserId: String
  CollectionType: String
  Limit: Int
  Marker: String
}

type AwsWorkDocsInitiateDocumentVersionUploadOutput {
  Metadata: AwsWorkDocsS39
  UploadMetadata: AwsWorkDocsInitiateDocumentVersionUploadOutputUploadMetadata
}

type AwsWorkDocsInitiateDocumentVersionUploadOutputUploadMetadata {
  UploadUrl: String
  SignedHeaders: JSON
}

input AwsWorkDocsInitiateDocumentVersionUploadInput {
  AuthenticationToken: String
  Id: String
  Name: String
  ContentCreatedTimestamp: Date
  ContentModifiedTimestamp: Date
  ContentType: String
  DocumentSizeInBytes: JSON
  ParentFolderId: String!
}

input AwsWorkDocsRemoveAllResourcePermissionsInput {
  AuthenticationToken: String
  ResourceId: String!
}

input AwsWorkDocsRemoveResourcePermissionInput {
  AuthenticationToken: String
  ResourceId: String!
  PrincipalId: String!
  PrincipalType: String
}

input AwsWorkDocsUpdateDocumentInput {
  AuthenticationToken: String
  DocumentId: String!
  Name: String
  ParentFolderId: String
  ResourceState: String
}

input AwsWorkDocsUpdateDocumentVersionInput {
  AuthenticationToken: String
  DocumentId: String!
  VersionId: String!
  VersionStatus: String
}

input AwsWorkDocsUpdateFolderInput {
  AuthenticationToken: String
  FolderId: String!
  Name: String
  ParentFolderId: String
  ResourceState: String
}

type AwsWorkDocsUpdateUserOutput {
  User: AwsWorkDocsS8
}

input AwsWorkDocsUpdateUserInput {
  AuthenticationToken: String
  UserId: String!
  GivenName: String
  Surname: String
  Type: String
  StorageRule: AwsWorkDocsSjInput
  TimeZoneId: String
  Locale: String
  GrantPoweruserPrivileges: String
}

"""Amazon WorkLink (2018-09-25)"""
type AwsWorkLink {
  associateDomain(input: AwsWorkLinkAssociateDomainInput!, config: AwsConfig): JSON
  associateWebsiteAuthorizationProvider(input: AwsWorkLinkAssociateWebsiteAuthorizationProviderInput!, config: AwsConfig): AwsWorkLinkAssociateWebsiteAuthorizationProviderOutput
  associateWebsiteCertificateAuthority(input: AwsWorkLinkAssociateWebsiteCertificateAuthorityInput!, config: AwsConfig): AwsWorkLinkAssociateWebsiteCertificateAuthorityOutput
  createFleet(input: AwsWorkLinkCreateFleetInput!, config: AwsConfig): AwsWorkLinkCreateFleetOutput
  deleteFleet(input: AwsWorkLinkDeleteFleetInput!, config: AwsConfig): JSON
  describeAuditStreamConfiguration(input: AwsWorkLinkDescribeAuditStreamConfigurationInput!, config: AwsConfig): AwsWorkLinkDescribeAuditStreamConfigurationOutput
  describeCompanyNetworkConfiguration(input: AwsWorkLinkDescribeCompanyNetworkConfigurationInput!, config: AwsConfig): AwsWorkLinkDescribeCompanyNetworkConfigurationOutput
  describeDevice(input: AwsWorkLinkDescribeDeviceInput!, config: AwsConfig): AwsWorkLinkDescribeDeviceOutput
  describeDevicePolicyConfiguration(input: AwsWorkLinkDescribeDevicePolicyConfigurationInput!, config: AwsConfig): AwsWorkLinkDescribeDevicePolicyConfigurationOutput
  describeDomain(input: AwsWorkLinkDescribeDomainInput!, config: AwsConfig): AwsWorkLinkDescribeDomainOutput
  describeFleetMetadata(input: AwsWorkLinkDescribeFleetMetadataInput!, config: AwsConfig): AwsWorkLinkDescribeFleetMetadataOutput
  describeIdentityProviderConfiguration(input: AwsWorkLinkDescribeIdentityProviderConfigurationInput!, config: AwsConfig): AwsWorkLinkDescribeIdentityProviderConfigurationOutput
  describeWebsiteCertificateAuthority(input: AwsWorkLinkDescribeWebsiteCertificateAuthorityInput!, config: AwsConfig): AwsWorkLinkDescribeWebsiteCertificateAuthorityOutput
  disassociateDomain(input: AwsWorkLinkDisassociateDomainInput!, config: AwsConfig): JSON
  disassociateWebsiteAuthorizationProvider(input: AwsWorkLinkDisassociateWebsiteAuthorizationProviderInput!, config: AwsConfig): JSON
  disassociateWebsiteCertificateAuthority(input: AwsWorkLinkDisassociateWebsiteCertificateAuthorityInput!, config: AwsConfig): JSON
  listDevices(input: AwsWorkLinkListDevicesInput!, config: AwsConfig): AwsWorkLinkListDevicesOutput
  listDomains(input: AwsWorkLinkListDomainsInput!, config: AwsConfig): AwsWorkLinkListDomainsOutput
  listFleets(input: AwsWorkLinkListFleetsInput, config: AwsConfig): AwsWorkLinkListFleetsOutput
  listTagsForResource(input: AwsWorkLinkListTagsForResourceInput!, config: AwsConfig): AwsWorkLinkListTagsForResourceOutput
  listWebsiteAuthorizationProviders(input: AwsWorkLinkListWebsiteAuthorizationProvidersInput!, config: AwsConfig): AwsWorkLinkListWebsiteAuthorizationProvidersOutput
  listWebsiteCertificateAuthorities(input: AwsWorkLinkListWebsiteCertificateAuthoritiesInput!, config: AwsConfig): AwsWorkLinkListWebsiteCertificateAuthoritiesOutput
  restoreDomainAccess(input: AwsWorkLinkRestoreDomainAccessInput!, config: AwsConfig): JSON
  revokeDomainAccess(input: AwsWorkLinkRevokeDomainAccessInput!, config: AwsConfig): JSON
  signOutUser(input: AwsWorkLinkSignOutUserInput!, config: AwsConfig): JSON
  tagResource(input: AwsWorkLinkTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWorkLinkUntagResourceInput!, config: AwsConfig): JSON
  updateAuditStreamConfiguration(input: AwsWorkLinkUpdateAuditStreamConfigurationInput!, config: AwsConfig): JSON
  updateCompanyNetworkConfiguration(input: AwsWorkLinkUpdateCompanyNetworkConfigurationInput!, config: AwsConfig): JSON
  updateDevicePolicyConfiguration(input: AwsWorkLinkUpdateDevicePolicyConfigurationInput!, config: AwsConfig): JSON
  updateDomainMetadata(input: AwsWorkLinkUpdateDomainMetadataInput!, config: AwsConfig): JSON
  updateFleetMetadata(input: AwsWorkLinkUpdateFleetMetadataInput!, config: AwsConfig): JSON
  updateIdentityProviderConfiguration(input: AwsWorkLinkUpdateIdentityProviderConfigurationInput!, config: AwsConfig): JSON
}

input AwsWorkLinkAssociateDomainInput {
  FleetArn: String!
  DomainName: String!
  DisplayName: String
  AcmCertificateArn: String!
}

type AwsWorkLinkAssociateWebsiteAuthorizationProviderOutput {
  AuthorizationProviderId: String
}

input AwsWorkLinkAssociateWebsiteAuthorizationProviderInput {
  FleetArn: String!
  AuthorizationProviderType: String!
  DomainName: String
}

type AwsWorkLinkAssociateWebsiteCertificateAuthorityOutput {
  WebsiteCaId: String
}

input AwsWorkLinkAssociateWebsiteCertificateAuthorityInput {
  FleetArn: String!
  Certificate: String!
  DisplayName: String
}

type AwsWorkLinkCreateFleetOutput {
  FleetArn: String
}

input AwsWorkLinkCreateFleetInput {
  FleetName: String!
  DisplayName: String
  OptimizeForEndUserLocation: Boolean
  Tags: JSON
}

input AwsWorkLinkDeleteFleetInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeAuditStreamConfigurationOutput {
  AuditStreamArn: String
}

input AwsWorkLinkDescribeAuditStreamConfigurationInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeCompanyNetworkConfigurationOutput {
  VpcId: String
  SubnetIds: [String]
  SecurityGroupIds: [String]
}

input AwsWorkLinkDescribeCompanyNetworkConfigurationInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeDeviceOutput {
  Status: String
  Model: String
  Manufacturer: String
  OperatingSystem: String
  OperatingSystemVersion: String
  PatchLevel: String
  FirstAccessedTime: Date
  LastAccessedTime: Date
  Username: String
}

input AwsWorkLinkDescribeDeviceInput {
  FleetArn: String!
  DeviceId: String!
}

type AwsWorkLinkDescribeDevicePolicyConfigurationOutput {
  DeviceCaCertificate: String
}

input AwsWorkLinkDescribeDevicePolicyConfigurationInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeDomainOutput {
  DomainName: String
  DisplayName: String
  CreatedTime: Date
  DomainStatus: String
  AcmCertificateArn: String
}

input AwsWorkLinkDescribeDomainInput {
  FleetArn: String!
  DomainName: String!
}

type AwsWorkLinkDescribeFleetMetadataOutput {
  CreatedTime: Date
  LastUpdatedTime: Date
  FleetName: String
  DisplayName: String
  OptimizeForEndUserLocation: Boolean
  CompanyCode: String
  FleetStatus: String
  Tags: JSON
}

input AwsWorkLinkDescribeFleetMetadataInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeIdentityProviderConfigurationOutput {
  IdentityProviderType: String
  ServiceProviderSamlMetadata: String
  IdentityProviderSamlMetadata: String
}

input AwsWorkLinkDescribeIdentityProviderConfigurationInput {
  FleetArn: String!
}

type AwsWorkLinkDescribeWebsiteCertificateAuthorityOutput {
  Certificate: String
  CreatedTime: Date
  DisplayName: String
}

input AwsWorkLinkDescribeWebsiteCertificateAuthorityInput {
  FleetArn: String!
  WebsiteCaId: String!
}

input AwsWorkLinkDisassociateDomainInput {
  FleetArn: String!
  DomainName: String!
}

input AwsWorkLinkDisassociateWebsiteAuthorizationProviderInput {
  FleetArn: String!
  AuthorizationProviderId: String!
}

input AwsWorkLinkDisassociateWebsiteCertificateAuthorityInput {
  FleetArn: String!
  WebsiteCaId: String!
}

type AwsWorkLinkListDevicesOutput {
  Devices: [AwsWorkLinkListDevicesOutputDevices]
  NextToken: String
}

type AwsWorkLinkListDevicesOutputDevices {
  DeviceId: String
  DeviceStatus: String
}

input AwsWorkLinkListDevicesInput {
  FleetArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkLinkListDomainsOutput {
  Domains: [AwsWorkLinkListDomainsOutputDomains]
  NextToken: String
}

type AwsWorkLinkListDomainsOutputDomains {
  DomainName: String!
  DisplayName: String
  CreatedTime: Date!
  DomainStatus: String!
}

input AwsWorkLinkListDomainsInput {
  FleetArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkLinkListFleetsOutput {
  FleetSummaryList: [AwsWorkLinkListFleetsOutputFleetSummaryList]
  NextToken: String
}

type AwsWorkLinkListFleetsOutputFleetSummaryList {
  FleetArn: String
  CreatedTime: Date
  LastUpdatedTime: Date
  FleetName: String
  DisplayName: String
  CompanyCode: String
  FleetStatus: String
  Tags: JSON
}

input AwsWorkLinkListFleetsInput {
  NextToken: String
  MaxResults: Int
}

type AwsWorkLinkListTagsForResourceOutput {
  Tags: JSON
}

input AwsWorkLinkListTagsForResourceInput {
  ResourceArn: String!
}

type AwsWorkLinkListWebsiteAuthorizationProvidersOutput {
  WebsiteAuthorizationProviders: [AwsWorkLinkListWebsiteAuthorizationProvidersOutputWebsiteAuthorizationProviders]
  NextToken: String
}

type AwsWorkLinkListWebsiteAuthorizationProvidersOutputWebsiteAuthorizationProviders {
  AuthorizationProviderId: String
  AuthorizationProviderType: String!
  DomainName: String
  CreatedTime: Date
}

input AwsWorkLinkListWebsiteAuthorizationProvidersInput {
  FleetArn: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkLinkListWebsiteCertificateAuthoritiesOutput {
  WebsiteCertificateAuthorities: [AwsWorkLinkListWebsiteCertificateAuthoritiesOutputWebsiteCertificateAuthorities]
  NextToken: String
}

type AwsWorkLinkListWebsiteCertificateAuthoritiesOutputWebsiteCertificateAuthorities {
  WebsiteCaId: String
  CreatedTime: Date
  DisplayName: String
}

input AwsWorkLinkListWebsiteCertificateAuthoritiesInput {
  FleetArn: String!
  MaxResults: Int
  NextToken: String
}

input AwsWorkLinkRestoreDomainAccessInput {
  FleetArn: String!
  DomainName: String!
}

input AwsWorkLinkRevokeDomainAccessInput {
  FleetArn: String!
  DomainName: String!
}

input AwsWorkLinkSignOutUserInput {
  FleetArn: String!
  Username: String!
}

input AwsWorkLinkTagResourceInput {
  ResourceArn: String!
  Tags: JSON!
}

input AwsWorkLinkUntagResourceInput {
  ResourceArn: String!
  TagKeys: [String]!
}

input AwsWorkLinkUpdateAuditStreamConfigurationInput {
  FleetArn: String!
  AuditStreamArn: String
}

input AwsWorkLinkUpdateCompanyNetworkConfigurationInput {
  FleetArn: String!
  VpcId: String!
  SubnetIds: [String]!
  SecurityGroupIds: [String]!
}

input AwsWorkLinkUpdateDevicePolicyConfigurationInput {
  FleetArn: String!
  DeviceCaCertificate: String
}

input AwsWorkLinkUpdateDomainMetadataInput {
  FleetArn: String!
  DomainName: String!
  DisplayName: String
}

input AwsWorkLinkUpdateFleetMetadataInput {
  FleetArn: String!
  DisplayName: String
  OptimizeForEndUserLocation: Boolean
}

input AwsWorkLinkUpdateIdentityProviderConfigurationInput {
  FleetArn: String!
  IdentityProviderType: String!
  IdentityProviderSamlMetadata: String
}

"""Amazon WorkMail (2017-10-01)"""
type AwsWorkMail {
  associateDelegateToResource(input: AwsWorkMailAssociateDelegateToResourceInput!, config: AwsConfig): JSON
  associateMemberToGroup(input: AwsWorkMailAssociateMemberToGroupInput!, config: AwsConfig): JSON
  cancelMailboxExportJob(input: AwsWorkMailCancelMailboxExportJobInput!, config: AwsConfig): JSON
  createAlias(input: AwsWorkMailCreateAliasInput!, config: AwsConfig): JSON
  createGroup(input: AwsWorkMailCreateGroupInput!, config: AwsConfig): AwsWorkMailCreateGroupOutput
  createMobileDeviceAccessRule(input: AwsWorkMailCreateMobileDeviceAccessRuleInput!, config: AwsConfig): AwsWorkMailCreateMobileDeviceAccessRuleOutput
  createOrganization(input: AwsWorkMailCreateOrganizationInput!, config: AwsConfig): AwsWorkMailCreateOrganizationOutput
  createResource(input: AwsWorkMailCreateResourceInput!, config: AwsConfig): AwsWorkMailCreateResourceOutput
  createUser(input: AwsWorkMailCreateUserInput!, config: AwsConfig): AwsWorkMailCreateUserOutput
  deleteAccessControlRule(input: AwsWorkMailDeleteAccessControlRuleInput!, config: AwsConfig): JSON
  deleteAlias(input: AwsWorkMailDeleteAliasInput!, config: AwsConfig): JSON
  deleteGroup(input: AwsWorkMailDeleteGroupInput!, config: AwsConfig): JSON
  deleteMailboxPermissions(input: AwsWorkMailDeleteMailboxPermissionsInput!, config: AwsConfig): JSON
  deleteMobileDeviceAccessRule(input: AwsWorkMailDeleteMobileDeviceAccessRuleInput!, config: AwsConfig): JSON
  deleteOrganization(input: AwsWorkMailDeleteOrganizationInput!, config: AwsConfig): AwsWorkMailDeleteOrganizationOutput
  deleteResource(input: AwsWorkMailDeleteResourceInput!, config: AwsConfig): JSON
  deleteRetentionPolicy(input: AwsWorkMailDeleteRetentionPolicyInput!, config: AwsConfig): JSON
  deleteUser(input: AwsWorkMailDeleteUserInput!, config: AwsConfig): JSON
  deregisterFromWorkMail(input: AwsWorkMailDeregisterFromWorkMailInput!, config: AwsConfig): JSON
  describeGroup(input: AwsWorkMailDescribeGroupInput!, config: AwsConfig): AwsWorkMailDescribeGroupOutput
  describeMailboxExportJob(input: AwsWorkMailDescribeMailboxExportJobInput!, config: AwsConfig): AwsWorkMailDescribeMailboxExportJobOutput
  describeOrganization(input: AwsWorkMailDescribeOrganizationInput!, config: AwsConfig): AwsWorkMailDescribeOrganizationOutput
  describeResource(input: AwsWorkMailDescribeResourceInput!, config: AwsConfig): AwsWorkMailDescribeResourceOutput
  describeUser(input: AwsWorkMailDescribeUserInput!, config: AwsConfig): AwsWorkMailDescribeUserOutput
  disassociateDelegateFromResource(input: AwsWorkMailDisassociateDelegateFromResourceInput!, config: AwsConfig): JSON
  disassociateMemberFromGroup(input: AwsWorkMailDisassociateMemberFromGroupInput!, config: AwsConfig): JSON
  getAccessControlEffect(input: AwsWorkMailGetAccessControlEffectInput!, config: AwsConfig): AwsWorkMailGetAccessControlEffectOutput
  getDefaultRetentionPolicy(input: AwsWorkMailGetDefaultRetentionPolicyInput!, config: AwsConfig): AwsWorkMailGetDefaultRetentionPolicyOutput
  getMailboxDetails(input: AwsWorkMailGetMailboxDetailsInput!, config: AwsConfig): AwsWorkMailGetMailboxDetailsOutput
  getMobileDeviceAccessEffect(input: AwsWorkMailGetMobileDeviceAccessEffectInput!, config: AwsConfig): AwsWorkMailGetMobileDeviceAccessEffectOutput
  listAccessControlRules(input: AwsWorkMailListAccessControlRulesInput!, config: AwsConfig): AwsWorkMailListAccessControlRulesOutput
  listAliases(input: AwsWorkMailListAliasesInput!, config: AwsConfig): AwsWorkMailListAliasesOutput
  listGroupMembers(input: AwsWorkMailListGroupMembersInput!, config: AwsConfig): AwsWorkMailListGroupMembersOutput
  listGroups(input: AwsWorkMailListGroupsInput!, config: AwsConfig): AwsWorkMailListGroupsOutput
  listMailboxExportJobs(input: AwsWorkMailListMailboxExportJobsInput!, config: AwsConfig): AwsWorkMailListMailboxExportJobsOutput
  listMailboxPermissions(input: AwsWorkMailListMailboxPermissionsInput!, config: AwsConfig): AwsWorkMailListMailboxPermissionsOutput
  listMobileDeviceAccessRules(input: AwsWorkMailListMobileDeviceAccessRulesInput!, config: AwsConfig): AwsWorkMailListMobileDeviceAccessRulesOutput
  listOrganizations(input: AwsWorkMailListOrganizationsInput, config: AwsConfig): AwsWorkMailListOrganizationsOutput
  listResourceDelegates(input: AwsWorkMailListResourceDelegatesInput!, config: AwsConfig): AwsWorkMailListResourceDelegatesOutput
  listResources(input: AwsWorkMailListResourcesInput!, config: AwsConfig): AwsWorkMailListResourcesOutput
  listTagsForResource(input: AwsWorkMailListTagsForResourceInput!, config: AwsConfig): AwsWorkMailListTagsForResourceOutput
  listUsers(input: AwsWorkMailListUsersInput!, config: AwsConfig): AwsWorkMailListUsersOutput
  putAccessControlRule(input: AwsWorkMailPutAccessControlRuleInput!, config: AwsConfig): JSON
  putMailboxPermissions(input: AwsWorkMailPutMailboxPermissionsInput!, config: AwsConfig): JSON
  putRetentionPolicy(input: AwsWorkMailPutRetentionPolicyInput!, config: AwsConfig): JSON
  registerToWorkMail(input: AwsWorkMailRegisterToWorkMailInput!, config: AwsConfig): JSON
  resetPassword(input: AwsWorkMailResetPasswordInput!, config: AwsConfig): JSON
  startMailboxExportJob(input: AwsWorkMailStartMailboxExportJobInput!, config: AwsConfig): AwsWorkMailStartMailboxExportJobOutput
  tagResource(input: AwsWorkMailTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsWorkMailUntagResourceInput!, config: AwsConfig): JSON
  updateMailboxQuota(input: AwsWorkMailUpdateMailboxQuotaInput!, config: AwsConfig): JSON
  updateMobileDeviceAccessRule(input: AwsWorkMailUpdateMobileDeviceAccessRuleInput!, config: AwsConfig): JSON
  updatePrimaryEmailAddress(input: AwsWorkMailUpdatePrimaryEmailAddressInput!, config: AwsConfig): JSON
  updateResource(input: AwsWorkMailUpdateResourceInput!, config: AwsConfig): JSON
}

input AwsWorkMailAssociateDelegateToResourceInput {
  OrganizationId: String!
  ResourceId: String!
  EntityId: String!
}

input AwsWorkMailAssociateMemberToGroupInput {
  OrganizationId: String!
  GroupId: String!
  MemberId: String!
}

input AwsWorkMailCancelMailboxExportJobInput {
  ClientToken: String!
  JobId: String!
  OrganizationId: String!
}

input AwsWorkMailCreateAliasInput {
  OrganizationId: String!
  EntityId: String!
  Alias: String!
}

type AwsWorkMailCreateGroupOutput {
  GroupId: String
}

input AwsWorkMailCreateGroupInput {
  OrganizationId: String!
  Name: String!
}

type AwsWorkMailCreateMobileDeviceAccessRuleOutput {
  MobileDeviceAccessRuleId: String
}

input AwsWorkMailCreateMobileDeviceAccessRuleInput {
  OrganizationId: String!
  ClientToken: String
  Name: String!
  Description: String
  Effect: String!
  DeviceTypes: [String]
  NotDeviceTypes: [String]
  DeviceModels: [String]
  NotDeviceModels: [String]
  DeviceOperatingSystems: [String]
  NotDeviceOperatingSystems: [String]
  DeviceUserAgents: [String]
  NotDeviceUserAgents: [String]
}

type AwsWorkMailCreateOrganizationOutput {
  OrganizationId: String
}

input AwsWorkMailCreateOrganizationInput {
  DirectoryId: String
  Alias: String!
  ClientToken: String
  Domains: [AwsWorkMailCreateOrganizationDomainsInput]
  KmsKeyArn: String
  EnableInteroperability: Boolean
}

input AwsWorkMailCreateOrganizationDomainsInput {
  DomainName: String
  HostedZoneId: String
}

type AwsWorkMailCreateResourceOutput {
  ResourceId: String
}

input AwsWorkMailCreateResourceInput {
  OrganizationId: String!
  Name: String!
  Type: String!
}

type AwsWorkMailCreateUserOutput {
  UserId: String
}

input AwsWorkMailCreateUserInput {
  OrganizationId: String!
  Name: String!
  DisplayName: String!
  Password: String!
}

input AwsWorkMailDeleteAccessControlRuleInput {
  OrganizationId: String!
  Name: String!
}

input AwsWorkMailDeleteAliasInput {
  OrganizationId: String!
  EntityId: String!
  Alias: String!
}

input AwsWorkMailDeleteGroupInput {
  OrganizationId: String!
  GroupId: String!
}

input AwsWorkMailDeleteMailboxPermissionsInput {
  OrganizationId: String!
  EntityId: String!
  GranteeId: String!
}

input AwsWorkMailDeleteMobileDeviceAccessRuleInput {
  OrganizationId: String!
  MobileDeviceAccessRuleId: String!
}

type AwsWorkMailDeleteOrganizationOutput {
  OrganizationId: String
  State: String
}

input AwsWorkMailDeleteOrganizationInput {
  ClientToken: String
  OrganizationId: String!
  DeleteDirectory: Boolean!
}

input AwsWorkMailDeleteResourceInput {
  OrganizationId: String!
  ResourceId: String!
}

input AwsWorkMailDeleteRetentionPolicyInput {
  OrganizationId: String!
  Id: String!
}

input AwsWorkMailDeleteUserInput {
  OrganizationId: String!
  UserId: String!
}

input AwsWorkMailDeregisterFromWorkMailInput {
  OrganizationId: String!
  EntityId: String!
}

type AwsWorkMailDescribeGroupOutput {
  GroupId: String
  Name: String
  Email: String
  State: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailDescribeGroupInput {
  OrganizationId: String!
  GroupId: String!
}

type AwsWorkMailDescribeMailboxExportJobOutput {
  EntityId: String
  Description: String
  RoleArn: String
  KmsKeyArn: String
  S3BucketName: String
  S3Prefix: String
  S3Path: String
  EstimatedProgress: Int
  State: String
  ErrorInfo: String
  StartTime: Date
  EndTime: Date
}

input AwsWorkMailDescribeMailboxExportJobInput {
  JobId: String!
  OrganizationId: String!
}

type AwsWorkMailDescribeOrganizationOutput {
  OrganizationId: String
  Alias: String
  State: String
  DirectoryId: String
  DirectoryType: String
  DefaultMailDomain: String
  CompletedDate: Date
  ErrorMessage: String
  ARN: String
}

input AwsWorkMailDescribeOrganizationInput {
  OrganizationId: String!
}

type AwsWorkMailDescribeResourceOutput {
  ResourceId: String
  Email: String
  Name: String
  Type: String
  BookingOptions: AwsWorkMailS2j
  State: String
  EnabledDate: Date
  DisabledDate: Date
}

type AwsWorkMailS2j {
  AutoAcceptRequests: Boolean
  AutoDeclineRecurringRequests: Boolean
  AutoDeclineConflictingRequests: Boolean
}

input AwsWorkMailDescribeResourceInput {
  OrganizationId: String!
  ResourceId: String!
}

type AwsWorkMailDescribeUserOutput {
  UserId: String
  Name: String
  Email: String
  DisplayName: String
  State: String
  UserRole: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailDescribeUserInput {
  OrganizationId: String!
  UserId: String!
}

input AwsWorkMailDisassociateDelegateFromResourceInput {
  OrganizationId: String!
  ResourceId: String!
  EntityId: String!
}

input AwsWorkMailDisassociateMemberFromGroupInput {
  OrganizationId: String!
  GroupId: String!
  MemberId: String!
}

type AwsWorkMailGetAccessControlEffectOutput {
  Effect: String
  MatchedRules: [String]
}

input AwsWorkMailGetAccessControlEffectInput {
  OrganizationId: String!
  IpAddress: String!
  Action: String!
  UserId: String!
}

type AwsWorkMailGetDefaultRetentionPolicyOutput {
  Id: String
  Name: String
  Description: String
  FolderConfigurations: [AwsWorkMailS2z]
}

type AwsWorkMailS2z {
  Name: String!
  Action: String!
  Period: Int
}

input AwsWorkMailGetDefaultRetentionPolicyInput {
  OrganizationId: String!
}

type AwsWorkMailGetMailboxDetailsOutput {
  MailboxQuota: Int
  MailboxSize: JSON
}

input AwsWorkMailGetMailboxDetailsInput {
  OrganizationId: String!
  UserId: String!
}

type AwsWorkMailGetMobileDeviceAccessEffectOutput {
  Effect: String
  MatchedRules: [AwsWorkMailGetMobileDeviceAccessEffectOutputMatchedRules]
}

type AwsWorkMailGetMobileDeviceAccessEffectOutputMatchedRules {
  MobileDeviceAccessRuleId: String
  Name: String
}

input AwsWorkMailGetMobileDeviceAccessEffectInput {
  OrganizationId: String!
  DeviceType: String
  DeviceModel: String
  DeviceOperatingSystem: String
  DeviceUserAgent: String
}

type AwsWorkMailListAccessControlRulesOutput {
  Rules: [AwsWorkMailListAccessControlRulesOutputRules]
}

type AwsWorkMailListAccessControlRulesOutputRules {
  Name: String
  Effect: String
  Description: String
  IpRanges: [String]
  NotIpRanges: [String]
  Actions: [String]
  NotActions: [String]
  UserIds: [String]
  NotUserIds: [String]
  DateCreated: Date
  DateModified: Date
}

input AwsWorkMailListAccessControlRulesInput {
  OrganizationId: String!
}

type AwsWorkMailListAliasesOutput {
  Aliases: [String]
  NextToken: String
}

input AwsWorkMailListAliasesInput {
  OrganizationId: String!
  EntityId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListGroupMembersOutput {
  Members: [AwsWorkMailListGroupMembersOutputMembers]
  NextToken: String
}

type AwsWorkMailListGroupMembersOutputMembers {
  Id: String
  Name: String
  Type: String
  State: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailListGroupMembersInput {
  OrganizationId: String!
  GroupId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListGroupsOutput {
  Groups: [AwsWorkMailListGroupsOutputGroups]
  NextToken: String
}

type AwsWorkMailListGroupsOutputGroups {
  Id: String
  Email: String
  Name: String
  State: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailListGroupsInput {
  OrganizationId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListMailboxExportJobsOutput {
  Jobs: [AwsWorkMailListMailboxExportJobsOutputJobs]
  NextToken: String
}

type AwsWorkMailListMailboxExportJobsOutputJobs {
  JobId: String
  EntityId: String
  Description: String
  S3BucketName: String
  S3Path: String
  EstimatedProgress: Int
  State: String
  StartTime: Date
  EndTime: Date
}

input AwsWorkMailListMailboxExportJobsInput {
  OrganizationId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListMailboxPermissionsOutput {
  Permissions: [AwsWorkMailListMailboxPermissionsOutputPermissions]
  NextToken: String
}

type AwsWorkMailListMailboxPermissionsOutputPermissions {
  GranteeId: String!
  GranteeType: String!
  PermissionValues: [String]!
}

input AwsWorkMailListMailboxPermissionsInput {
  OrganizationId: String!
  EntityId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListMobileDeviceAccessRulesOutput {
  Rules: [AwsWorkMailListMobileDeviceAccessRulesOutputRules]
}

type AwsWorkMailListMobileDeviceAccessRulesOutputRules {
  MobileDeviceAccessRuleId: String
  Name: String
  Description: String
  Effect: String
  DeviceTypes: [String]
  NotDeviceTypes: [String]
  DeviceModels: [String]
  NotDeviceModels: [String]
  DeviceOperatingSystems: [String]
  NotDeviceOperatingSystems: [String]
  DeviceUserAgents: [String]
  NotDeviceUserAgents: [String]
  DateCreated: Date
  DateModified: Date
}

input AwsWorkMailListMobileDeviceAccessRulesInput {
  OrganizationId: String!
}

type AwsWorkMailListOrganizationsOutput {
  OrganizationSummaries: [AwsWorkMailListOrganizationsOutputOrganizationSummaries]
  NextToken: String
}

type AwsWorkMailListOrganizationsOutputOrganizationSummaries {
  OrganizationId: String
  Alias: String
  DefaultMailDomain: String
  ErrorMessage: String
  State: String
}

input AwsWorkMailListOrganizationsInput {
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListResourceDelegatesOutput {
  Delegates: [AwsWorkMailListResourceDelegatesOutputDelegates]
  NextToken: String
}

type AwsWorkMailListResourceDelegatesOutputDelegates {
  Id: String!
  Type: String!
}

input AwsWorkMailListResourceDelegatesInput {
  OrganizationId: String!
  ResourceId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListResourcesOutput {
  Resources: [AwsWorkMailListResourcesOutputResources]
  NextToken: String
}

type AwsWorkMailListResourcesOutputResources {
  Id: String
  Email: String
  Name: String
  Type: String
  State: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailListResourcesInput {
  OrganizationId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkMailListTagsForResourceOutput {
  Tags: [AwsWorkMailS4r]
}

type AwsWorkMailS4r {
  Key: String!
  Value: String!
}

input AwsWorkMailListTagsForResourceInput {
  ResourceARN: String!
}

type AwsWorkMailListUsersOutput {
  Users: [AwsWorkMailListUsersOutputUsers]
  NextToken: String
}

type AwsWorkMailListUsersOutputUsers {
  Id: String
  Email: String
  Name: String
  DisplayName: String
  State: String
  UserRole: String
  EnabledDate: Date
  DisabledDate: Date
}

input AwsWorkMailListUsersInput {
  OrganizationId: String!
  NextToken: String
  MaxResults: Int
}

input AwsWorkMailPutAccessControlRuleInput {
  Name: String!
  Effect: String!
  Description: String!
  IpRanges: [String]
  NotIpRanges: [String]
  Actions: [String]
  NotActions: [String]
  UserIds: [String]
  NotUserIds: [String]
  OrganizationId: String!
}

input AwsWorkMailPutMailboxPermissionsInput {
  OrganizationId: String!
  EntityId: String!
  GranteeId: String!
  PermissionValues: [String]!
}

input AwsWorkMailPutRetentionPolicyInput {
  OrganizationId: String!
  Id: String
  Name: String!
  Description: String
  FolderConfigurations: [AwsWorkMailS2zInput]!
}

input AwsWorkMailS2zInput {
  Name: String!
  Action: String!
  Period: Int
}

input AwsWorkMailRegisterToWorkMailInput {
  OrganizationId: String!
  EntityId: String!
  Email: String!
}

input AwsWorkMailResetPasswordInput {
  OrganizationId: String!
  UserId: String!
  Password: String!
}

type AwsWorkMailStartMailboxExportJobOutput {
  JobId: String
}

input AwsWorkMailStartMailboxExportJobInput {
  ClientToken: String!
  OrganizationId: String!
  EntityId: String!
  Description: String
  RoleArn: String!
  KmsKeyArn: String!
  S3BucketName: String!
  S3Prefix: String!
}

input AwsWorkMailTagResourceInput {
  ResourceARN: String!
  Tags: [AwsWorkMailS4rInput]!
}

input AwsWorkMailS4rInput {
  Key: String!
  Value: String!
}

input AwsWorkMailUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

input AwsWorkMailUpdateMailboxQuotaInput {
  OrganizationId: String!
  UserId: String!
  MailboxQuota: Int!
}

input AwsWorkMailUpdateMobileDeviceAccessRuleInput {
  OrganizationId: String!
  MobileDeviceAccessRuleId: String!
  Name: String!
  Description: String
  Effect: String!
  DeviceTypes: [String]
  NotDeviceTypes: [String]
  DeviceModels: [String]
  NotDeviceModels: [String]
  DeviceOperatingSystems: [String]
  NotDeviceOperatingSystems: [String]
  DeviceUserAgents: [String]
  NotDeviceUserAgents: [String]
}

input AwsWorkMailUpdatePrimaryEmailAddressInput {
  OrganizationId: String!
  EntityId: String!
  Email: String!
}

input AwsWorkMailUpdateResourceInput {
  OrganizationId: String!
  ResourceId: String!
  Name: String
  BookingOptions: AwsWorkMailS2jInput
}

input AwsWorkMailS2jInput {
  AutoAcceptRequests: Boolean
  AutoDeclineRecurringRequests: Boolean
  AutoDeclineConflictingRequests: Boolean
}

"""Amazon WorkMail Message Flow (2019-05-01)"""
type AwsWorkMailMessageFlow {
  getRawMessageContent(input: AwsWorkMailMessageFlowGetRawMessageContentInput!, config: AwsConfig): AwsWorkMailMessageFlowGetRawMessageContentOutput
  putRawMessageContent(input: AwsWorkMailMessageFlowPutRawMessageContentInput!, config: AwsConfig): JSON
}

type AwsWorkMailMessageFlowGetRawMessageContentOutput {
  messageContent: JSON!
}

input AwsWorkMailMessageFlowGetRawMessageContentInput {
  messageId: String!
}

input AwsWorkMailMessageFlowPutRawMessageContentInput {
  messageId: String!
  content: AwsWorkMailMessageFlowPutRawMessageContentContentInput!
}

input AwsWorkMailMessageFlowPutRawMessageContentContentInput {
  s3Reference: AwsWorkMailMessageFlowPutRawMessageContentContentS3ReferenceInput!
}

input AwsWorkMailMessageFlowPutRawMessageContentContentS3ReferenceInput {
  bucket: String!
  key: String!
  objectVersion: String
}

"""Amazon WorkSpaces (2015-04-08)"""
type AwsWorkSpaces {
  associateConnectionAlias(input: AwsWorkSpacesAssociateConnectionAliasInput!, config: AwsConfig): AwsWorkSpacesAssociateConnectionAliasOutput
  associateIpGroups(input: AwsWorkSpacesAssociateIpGroupsInput!, config: AwsConfig): JSON
  authorizeIpRules(input: AwsWorkSpacesAuthorizeIpRulesInput!, config: AwsConfig): JSON
  copyWorkspaceImage(input: AwsWorkSpacesCopyWorkspaceImageInput!, config: AwsConfig): AwsWorkSpacesCopyWorkspaceImageOutput
  createConnectionAlias(input: AwsWorkSpacesCreateConnectionAliasInput!, config: AwsConfig): AwsWorkSpacesCreateConnectionAliasOutput
  createIpGroup(input: AwsWorkSpacesCreateIpGroupInput!, config: AwsConfig): AwsWorkSpacesCreateIpGroupOutput
  createTags(input: AwsWorkSpacesCreateTagsInput!, config: AwsConfig): JSON
  createWorkspaceBundle(input: AwsWorkSpacesCreateWorkspaceBundleInput!, config: AwsConfig): AwsWorkSpacesCreateWorkspaceBundleOutput
  createWorkspaces(input: AwsWorkSpacesCreateWorkspacesInput!, config: AwsConfig): AwsWorkSpacesCreateWorkspacesOutput
  deleteConnectionAlias(input: AwsWorkSpacesDeleteConnectionAliasInput!, config: AwsConfig): JSON
  deleteIpGroup(input: AwsWorkSpacesDeleteIpGroupInput!, config: AwsConfig): JSON
  deleteTags(input: AwsWorkSpacesDeleteTagsInput!, config: AwsConfig): JSON
  deleteWorkspaceBundle(input: AwsWorkSpacesDeleteWorkspaceBundleInput, config: AwsConfig): JSON
  deleteWorkspaceImage(input: AwsWorkSpacesDeleteWorkspaceImageInput!, config: AwsConfig): JSON
  deregisterWorkspaceDirectory(input: AwsWorkSpacesDeregisterWorkspaceDirectoryInput!, config: AwsConfig): JSON
  describeAccount(input: JSON, config: AwsConfig): AwsWorkSpacesDescribeAccountOutput
  describeAccountModifications(input: AwsWorkSpacesDescribeAccountModificationsInput, config: AwsConfig): AwsWorkSpacesDescribeAccountModificationsOutput
  describeClientProperties(input: AwsWorkSpacesDescribeClientPropertiesInput!, config: AwsConfig): AwsWorkSpacesDescribeClientPropertiesOutput
  describeConnectionAliasPermissions(input: AwsWorkSpacesDescribeConnectionAliasPermissionsInput!, config: AwsConfig): AwsWorkSpacesDescribeConnectionAliasPermissionsOutput
  describeConnectionAliases(input: AwsWorkSpacesDescribeConnectionAliasesInput, config: AwsConfig): AwsWorkSpacesDescribeConnectionAliasesOutput
  describeIpGroups(input: AwsWorkSpacesDescribeIpGroupsInput, config: AwsConfig): AwsWorkSpacesDescribeIpGroupsOutput
  describeTags(input: AwsWorkSpacesDescribeTagsInput!, config: AwsConfig): AwsWorkSpacesDescribeTagsOutput
  describeWorkspaceBundles(input: AwsWorkSpacesDescribeWorkspaceBundlesInput, config: AwsConfig): AwsWorkSpacesDescribeWorkspaceBundlesOutput
  describeWorkspaceDirectories(input: AwsWorkSpacesDescribeWorkspaceDirectoriesInput, config: AwsConfig): AwsWorkSpacesDescribeWorkspaceDirectoriesOutput
  describeWorkspaceImagePermissions(input: AwsWorkSpacesDescribeWorkspaceImagePermissionsInput!, config: AwsConfig): AwsWorkSpacesDescribeWorkspaceImagePermissionsOutput
  describeWorkspaceImages(input: AwsWorkSpacesDescribeWorkspaceImagesInput, config: AwsConfig): AwsWorkSpacesDescribeWorkspaceImagesOutput
  describeWorkspaceSnapshots(input: AwsWorkSpacesDescribeWorkspaceSnapshotsInput!, config: AwsConfig): AwsWorkSpacesDescribeWorkspaceSnapshotsOutput
  describeWorkspaces(input: AwsWorkSpacesDescribeWorkspacesInput, config: AwsConfig): AwsWorkSpacesDescribeWorkspacesOutput
  describeWorkspacesConnectionStatus(input: AwsWorkSpacesDescribeWorkspacesConnectionStatusInput, config: AwsConfig): AwsWorkSpacesDescribeWorkspacesConnectionStatusOutput
  disassociateConnectionAlias(input: AwsWorkSpacesDisassociateConnectionAliasInput!, config: AwsConfig): JSON
  disassociateIpGroups(input: AwsWorkSpacesDisassociateIpGroupsInput!, config: AwsConfig): JSON
  importWorkspaceImage(input: AwsWorkSpacesImportWorkspaceImageInput!, config: AwsConfig): AwsWorkSpacesImportWorkspaceImageOutput
  listAvailableManagementCidrRanges(input: AwsWorkSpacesListAvailableManagementCidrRangesInput!, config: AwsConfig): AwsWorkSpacesListAvailableManagementCidrRangesOutput
  migrateWorkspace(input: AwsWorkSpacesMigrateWorkspaceInput!, config: AwsConfig): AwsWorkSpacesMigrateWorkspaceOutput
  modifyAccount(input: AwsWorkSpacesModifyAccountInput, config: AwsConfig): JSON
  modifyClientProperties(input: AwsWorkSpacesModifyClientPropertiesInput!, config: AwsConfig): JSON
  modifySelfservicePermissions(input: AwsWorkSpacesModifySelfservicePermissionsInput!, config: AwsConfig): JSON
  modifyWorkspaceAccessProperties(input: AwsWorkSpacesModifyWorkspaceAccessPropertiesInput!, config: AwsConfig): JSON
  modifyWorkspaceCreationProperties(input: AwsWorkSpacesModifyWorkspaceCreationPropertiesInput!, config: AwsConfig): JSON
  modifyWorkspaceProperties(input: AwsWorkSpacesModifyWorkspacePropertiesInput!, config: AwsConfig): JSON
  modifyWorkspaceState(input: AwsWorkSpacesModifyWorkspaceStateInput!, config: AwsConfig): JSON
  rebootWorkspaces(input: AwsWorkSpacesRebootWorkspacesInput!, config: AwsConfig): AwsWorkSpacesRebootWorkspacesOutput
  rebuildWorkspaces(input: AwsWorkSpacesRebuildWorkspacesInput!, config: AwsConfig): AwsWorkSpacesRebuildWorkspacesOutput
  registerWorkspaceDirectory(input: AwsWorkSpacesRegisterWorkspaceDirectoryInput!, config: AwsConfig): JSON
  restoreWorkspace(input: AwsWorkSpacesRestoreWorkspaceInput!, config: AwsConfig): JSON
  revokeIpRules(input: AwsWorkSpacesRevokeIpRulesInput!, config: AwsConfig): JSON
  startWorkspaces(input: AwsWorkSpacesStartWorkspacesInput!, config: AwsConfig): AwsWorkSpacesStartWorkspacesOutput
  stopWorkspaces(input: AwsWorkSpacesStopWorkspacesInput!, config: AwsConfig): AwsWorkSpacesStopWorkspacesOutput
  terminateWorkspaces(input: AwsWorkSpacesTerminateWorkspacesInput!, config: AwsConfig): AwsWorkSpacesTerminateWorkspacesOutput
  updateConnectionAliasPermission(input: AwsWorkSpacesUpdateConnectionAliasPermissionInput!, config: AwsConfig): JSON
  updateRulesOfIpGroup(input: AwsWorkSpacesUpdateRulesOfIpGroupInput!, config: AwsConfig): JSON
  updateWorkspaceBundle(input: AwsWorkSpacesUpdateWorkspaceBundleInput, config: AwsConfig): JSON
  updateWorkspaceImagePermission(input: AwsWorkSpacesUpdateWorkspaceImagePermissionInput!, config: AwsConfig): JSON
}

type AwsWorkSpacesAssociateConnectionAliasOutput {
  ConnectionIdentifier: String
}

input AwsWorkSpacesAssociateConnectionAliasInput {
  AliasId: String!
  ResourceId: String!
}

input AwsWorkSpacesAssociateIpGroupsInput {
  DirectoryId: String!
  GroupIds: [String]!
}

input AwsWorkSpacesAuthorizeIpRulesInput {
  GroupId: String!
  UserRules: [AwsWorkSpacesScInput]!
}

input AwsWorkSpacesScInput {
  ipRule: String
  ruleDesc: String
}

type AwsWorkSpacesCopyWorkspaceImageOutput {
  ImageId: String
}

input AwsWorkSpacesCopyWorkspaceImageInput {
  Name: String!
  Description: String
  SourceImageId: String!
  SourceRegion: String!
  Tags: [AwsWorkSpacesSmInput]
}

input AwsWorkSpacesSmInput {
  Key: String!
  Value: String
}

type AwsWorkSpacesCreateConnectionAliasOutput {
  AliasId: String
}

input AwsWorkSpacesCreateConnectionAliasInput {
  ConnectionString: String!
  Tags: [AwsWorkSpacesSmInput]
}

type AwsWorkSpacesCreateIpGroupOutput {
  GroupId: String
}

input AwsWorkSpacesCreateIpGroupInput {
  GroupName: String!
  GroupDesc: String
  UserRules: [AwsWorkSpacesScInput]
  Tags: [AwsWorkSpacesSmInput]
}

input AwsWorkSpacesCreateTagsInput {
  ResourceId: String!
  Tags: [AwsWorkSpacesSmInput]!
}

type AwsWorkSpacesCreateWorkspaceBundleOutput {
  WorkspaceBundle: AwsWorkSpacesS18
}

type AwsWorkSpacesS18 {
  BundleId: String
  Name: String
  Owner: String
  Description: String
  ImageId: String
  RootStorage: AwsWorkSpacesS16
  UserStorage: AwsWorkSpacesS15
  ComputeType: AwsWorkSpacesS13
  LastUpdatedTime: Date
  CreationTime: Date
}

type AwsWorkSpacesS16 {
  Capacity: String
}

type AwsWorkSpacesS15 {
  Capacity: String
}

type AwsWorkSpacesS13 {
  Name: String
}

input AwsWorkSpacesCreateWorkspaceBundleInput {
  BundleName: String!
  BundleDescription: String!
  ImageId: String!
  ComputeType: AwsWorkSpacesS13Input!
  UserStorage: AwsWorkSpacesS15Input!
  RootStorage: AwsWorkSpacesS16Input
  Tags: [AwsWorkSpacesSmInput]
}

input AwsWorkSpacesS13Input {
  Name: String
}

input AwsWorkSpacesS15Input {
  Capacity: String
}

input AwsWorkSpacesS16Input {
  Capacity: String
}

type AwsWorkSpacesCreateWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesCreateWorkspacesOutputFailedRequests]
  PendingRequests: [AwsWorkSpacesS1s]
}

type AwsWorkSpacesCreateWorkspacesOutputFailedRequests {
  WorkspaceRequest: AwsWorkSpacesS1f
  ErrorCode: String
  ErrorMessage: String
}

type AwsWorkSpacesS1f {
  DirectoryId: String!
  UserName: String!
  BundleId: String!
  VolumeEncryptionKey: String
  UserVolumeEncryptionEnabled: Boolean
  RootVolumeEncryptionEnabled: Boolean
  WorkspaceProperties: AwsWorkSpacesS1j
  Tags: [AwsWorkSpacesSm]
}

type AwsWorkSpacesS1j {
  RunningMode: String
  RunningModeAutoStopTimeoutInMinutes: Int
  RootVolumeSizeGib: Int
  UserVolumeSizeGib: Int
  ComputeTypeName: String
}

type AwsWorkSpacesSm {
  Key: String!
  Value: String
}

type AwsWorkSpacesS1s {
  WorkspaceId: String
  DirectoryId: String
  UserName: String
  IpAddress: String
  State: String
  BundleId: String
  SubnetId: String
  ErrorMessage: String
  ErrorCode: String
  ComputerName: String
  VolumeEncryptionKey: String
  UserVolumeEncryptionEnabled: Boolean
  RootVolumeEncryptionEnabled: Boolean
  WorkspaceProperties: AwsWorkSpacesS1j
  ModificationStates: [AwsWorkSpacesS1sModificationStates]
}

type AwsWorkSpacesS1sModificationStates {
  Resource: String
  State: String
}

input AwsWorkSpacesCreateWorkspacesInput {
  Workspaces: [AwsWorkSpacesS1fInput]!
}

input AwsWorkSpacesS1fInput {
  DirectoryId: String!
  UserName: String!
  BundleId: String!
  VolumeEncryptionKey: String
  UserVolumeEncryptionEnabled: Boolean
  RootVolumeEncryptionEnabled: Boolean
  WorkspaceProperties: AwsWorkSpacesS1jInput
  Tags: [AwsWorkSpacesSmInput]
}

input AwsWorkSpacesS1jInput {
  RunningMode: String
  RunningModeAutoStopTimeoutInMinutes: Int
  RootVolumeSizeGib: Int
  UserVolumeSizeGib: Int
  ComputeTypeName: String
}

input AwsWorkSpacesDeleteConnectionAliasInput {
  AliasId: String!
}

input AwsWorkSpacesDeleteIpGroupInput {
  GroupId: String!
}

input AwsWorkSpacesDeleteTagsInput {
  ResourceId: String!
  TagKeys: [String]!
}

input AwsWorkSpacesDeleteWorkspaceBundleInput {
  BundleId: String
}

input AwsWorkSpacesDeleteWorkspaceImageInput {
  ImageId: String!
}

input AwsWorkSpacesDeregisterWorkspaceDirectoryInput {
  DirectoryId: String!
}

type AwsWorkSpacesDescribeAccountOutput {
  DedicatedTenancySupport: String
  DedicatedTenancyManagementCidrRange: String
}

type AwsWorkSpacesDescribeAccountModificationsOutput {
  AccountModifications: [AwsWorkSpacesDescribeAccountModificationsOutputAccountModifications]
  NextToken: String
}

type AwsWorkSpacesDescribeAccountModificationsOutputAccountModifications {
  ModificationState: String
  DedicatedTenancySupport: String
  DedicatedTenancyManagementCidrRange: String
  StartTime: Date
  ErrorCode: String
  ErrorMessage: String
}

input AwsWorkSpacesDescribeAccountModificationsInput {
  NextToken: String
}

type AwsWorkSpacesDescribeClientPropertiesOutput {
  ClientPropertiesList: [AwsWorkSpacesDescribeClientPropertiesOutputClientPropertiesList]
}

type AwsWorkSpacesDescribeClientPropertiesOutputClientPropertiesList {
  ResourceId: String
  ClientProperties: AwsWorkSpacesS2w
}

type AwsWorkSpacesS2w {
  ReconnectEnabled: String
}

input AwsWorkSpacesDescribeClientPropertiesInput {
  ResourceIds: [String]!
}

type AwsWorkSpacesDescribeConnectionAliasPermissionsOutput {
  AliasId: String
  ConnectionAliasPermissions: [AwsWorkSpacesS32]
  NextToken: String
}

type AwsWorkSpacesS32 {
  SharedAccountId: String!
  AllowAssociation: Boolean!
}

input AwsWorkSpacesDescribeConnectionAliasPermissionsInput {
  AliasId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkSpacesDescribeConnectionAliasesOutput {
  ConnectionAliases: [AwsWorkSpacesDescribeConnectionAliasesOutputConnectionAliases]
  NextToken: String
}

type AwsWorkSpacesDescribeConnectionAliasesOutputConnectionAliases {
  ConnectionString: String
  AliasId: String
  State: String
  OwnerAccountId: String
  Associations: [AwsWorkSpacesDescribeConnectionAliasesOutputConnectionAliasesAssociations]
}

type AwsWorkSpacesDescribeConnectionAliasesOutputConnectionAliasesAssociations {
  AssociationStatus: String
  AssociatedAccountId: String
  ResourceId: String
  ConnectionIdentifier: String
}

input AwsWorkSpacesDescribeConnectionAliasesInput {
  AliasIds: [String]
  ResourceId: String
  Limit: Int
  NextToken: String
}

type AwsWorkSpacesDescribeIpGroupsOutput {
  Result: [AwsWorkSpacesDescribeIpGroupsOutputResult]
  NextToken: String
}

type AwsWorkSpacesDescribeIpGroupsOutputResult {
  groupId: String
  groupName: String
  groupDesc: String
  userRules: [AwsWorkSpacesSc]
}

type AwsWorkSpacesSc {
  ipRule: String
  ruleDesc: String
}

input AwsWorkSpacesDescribeIpGroupsInput {
  GroupIds: [String]
  NextToken: String
  MaxResults: Int
}

type AwsWorkSpacesDescribeTagsOutput {
  TagList: [AwsWorkSpacesSm]
}

input AwsWorkSpacesDescribeTagsInput {
  ResourceId: String!
}

type AwsWorkSpacesDescribeWorkspaceBundlesOutput {
  Bundles: [AwsWorkSpacesS18]
  NextToken: String
}

input AwsWorkSpacesDescribeWorkspaceBundlesInput {
  BundleIds: [String]
  Owner: String
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspaceDirectoriesOutput {
  Directories: [AwsWorkSpacesDescribeWorkspaceDirectoriesOutputDirectories]
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspaceDirectoriesOutputDirectories {
  DirectoryId: String
  Alias: String
  DirectoryName: String
  RegistrationCode: String
  SubnetIds: [String]
  DnsIpAddresses: [String]
  CustomerUserName: String
  IamRoleId: String
  DirectoryType: String
  WorkspaceSecurityGroupId: String
  State: String
  WorkspaceCreationProperties: AwsWorkSpacesDescribeWorkspaceDirectoriesOutputDirectoriesWorkspaceCreationProperties
  ipGroupIds: [String]
  WorkspaceAccessProperties: AwsWorkSpacesS43
  Tenancy: String
  SelfservicePermissions: AwsWorkSpacesS46
}

type AwsWorkSpacesDescribeWorkspaceDirectoriesOutputDirectoriesWorkspaceCreationProperties {
  EnableWorkDocs: Boolean
  EnableInternetAccess: Boolean
  DefaultOu: String
  CustomSecurityGroupId: String
  UserEnabledAsLocalAdministrator: Boolean
  EnableMaintenanceMode: Boolean
}

type AwsWorkSpacesS43 {
  DeviceTypeWindows: String
  DeviceTypeOsx: String
  DeviceTypeWeb: String
  DeviceTypeIos: String
  DeviceTypeAndroid: String
  DeviceTypeChromeOs: String
  DeviceTypeZeroClient: String
  DeviceTypeLinux: String
}

type AwsWorkSpacesS46 {
  RestartWorkspace: String
  IncreaseVolumeSize: String
  ChangeComputeType: String
  SwitchRunningMode: String
  RebuildWorkspace: String
}

input AwsWorkSpacesDescribeWorkspaceDirectoriesInput {
  DirectoryIds: [String]
  Limit: Int
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspaceImagePermissionsOutput {
  ImageId: String
  ImagePermissions: [AwsWorkSpacesDescribeWorkspaceImagePermissionsOutputImagePermissions]
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspaceImagePermissionsOutputImagePermissions {
  SharedAccountId: String
}

input AwsWorkSpacesDescribeWorkspaceImagePermissionsInput {
  ImageId: String!
  NextToken: String
  MaxResults: Int
}

type AwsWorkSpacesDescribeWorkspaceImagesOutput {
  Images: [AwsWorkSpacesDescribeWorkspaceImagesOutputImages]
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspaceImagesOutputImages {
  ImageId: String
  Name: String
  Description: String
  OperatingSystem: AwsWorkSpacesDescribeWorkspaceImagesOutputImagesOperatingSystem
  State: String
  RequiredTenancy: String
  ErrorCode: String
  ErrorMessage: String
  Created: Date
  OwnerAccountId: String
}

type AwsWorkSpacesDescribeWorkspaceImagesOutputImagesOperatingSystem {
  Type: String
}

input AwsWorkSpacesDescribeWorkspaceImagesInput {
  ImageIds: [String]
  ImageType: String
  NextToken: String
  MaxResults: Int
}

type AwsWorkSpacesDescribeWorkspaceSnapshotsOutput {
  RebuildSnapshots: [AwsWorkSpacesS4o]
  RestoreSnapshots: [AwsWorkSpacesS4o]
}

type AwsWorkSpacesS4o {
  SnapshotTime: Date
}

input AwsWorkSpacesDescribeWorkspaceSnapshotsInput {
  WorkspaceId: String!
}

type AwsWorkSpacesDescribeWorkspacesOutput {
  Workspaces: [AwsWorkSpacesS1s]
  NextToken: String
}

input AwsWorkSpacesDescribeWorkspacesInput {
  WorkspaceIds: [String]
  DirectoryId: String
  UserName: String
  BundleId: String
  Limit: Int
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspacesConnectionStatusOutput {
  WorkspacesConnectionStatus: [AwsWorkSpacesDescribeWorkspacesConnectionStatusOutputWorkspacesConnectionStatus]
  NextToken: String
}

type AwsWorkSpacesDescribeWorkspacesConnectionStatusOutputWorkspacesConnectionStatus {
  WorkspaceId: String
  ConnectionState: String
  ConnectionStateCheckTimestamp: Date
  LastKnownUserConnectionTimestamp: Date
}

input AwsWorkSpacesDescribeWorkspacesConnectionStatusInput {
  WorkspaceIds: [String]
  NextToken: String
}

input AwsWorkSpacesDisassociateConnectionAliasInput {
  AliasId: String!
}

input AwsWorkSpacesDisassociateIpGroupsInput {
  DirectoryId: String!
  GroupIds: [String]!
}

type AwsWorkSpacesImportWorkspaceImageOutput {
  ImageId: String
}

input AwsWorkSpacesImportWorkspaceImageInput {
  Ec2ImageId: String!
  IngestionProcess: String!
  ImageName: String!
  ImageDescription: String!
  Tags: [AwsWorkSpacesSmInput]
  Applications: [String]
}

type AwsWorkSpacesListAvailableManagementCidrRangesOutput {
  ManagementCidrRanges: [String]
  NextToken: String
}

input AwsWorkSpacesListAvailableManagementCidrRangesInput {
  ManagementCidrRangeConstraint: String!
  MaxResults: Int
  NextToken: String
}

type AwsWorkSpacesMigrateWorkspaceOutput {
  SourceWorkspaceId: String
  TargetWorkspaceId: String
}

input AwsWorkSpacesMigrateWorkspaceInput {
  SourceWorkspaceId: String!
  BundleId: String!
}

input AwsWorkSpacesModifyAccountInput {
  DedicatedTenancySupport: String
  DedicatedTenancyManagementCidrRange: String
}

input AwsWorkSpacesModifyClientPropertiesInput {
  ResourceId: String!
  ClientProperties: AwsWorkSpacesS2wInput!
}

input AwsWorkSpacesS2wInput {
  ReconnectEnabled: String
}

input AwsWorkSpacesModifySelfservicePermissionsInput {
  ResourceId: String!
  SelfservicePermissions: AwsWorkSpacesS46Input!
}

input AwsWorkSpacesS46Input {
  RestartWorkspace: String
  IncreaseVolumeSize: String
  ChangeComputeType: String
  SwitchRunningMode: String
  RebuildWorkspace: String
}

input AwsWorkSpacesModifyWorkspaceAccessPropertiesInput {
  ResourceId: String!
  WorkspaceAccessProperties: AwsWorkSpacesS43Input!
}

input AwsWorkSpacesS43Input {
  DeviceTypeWindows: String
  DeviceTypeOsx: String
  DeviceTypeWeb: String
  DeviceTypeIos: String
  DeviceTypeAndroid: String
  DeviceTypeChromeOs: String
  DeviceTypeZeroClient: String
  DeviceTypeLinux: String
}

input AwsWorkSpacesModifyWorkspaceCreationPropertiesInput {
  ResourceId: String!
  WorkspaceCreationProperties: AwsWorkSpacesModifyWorkspaceCreationPropertiesWorkspaceCreationPropertiesInput!
}

input AwsWorkSpacesModifyWorkspaceCreationPropertiesWorkspaceCreationPropertiesInput {
  EnableWorkDocs: Boolean
  EnableInternetAccess: Boolean
  DefaultOu: String
  CustomSecurityGroupId: String
  UserEnabledAsLocalAdministrator: Boolean
  EnableMaintenanceMode: Boolean
}

input AwsWorkSpacesModifyWorkspacePropertiesInput {
  WorkspaceId: String!
  WorkspaceProperties: AwsWorkSpacesS1jInput!
}

input AwsWorkSpacesModifyWorkspaceStateInput {
  WorkspaceId: String!
  WorkspaceState: String!
}

type AwsWorkSpacesRebootWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesS61]
}

type AwsWorkSpacesS61 {
  WorkspaceId: String
  ErrorCode: String
  ErrorMessage: String
}

input AwsWorkSpacesRebootWorkspacesInput {
  RebootWorkspaceRequests: [AwsWorkSpacesRebootWorkspacesRebootWorkspaceRequestsInput]!
}

input AwsWorkSpacesRebootWorkspacesRebootWorkspaceRequestsInput {
  WorkspaceId: String!
}

type AwsWorkSpacesRebuildWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesS61]
}

input AwsWorkSpacesRebuildWorkspacesInput {
  RebuildWorkspaceRequests: [AwsWorkSpacesRebuildWorkspacesRebuildWorkspaceRequestsInput]!
}

input AwsWorkSpacesRebuildWorkspacesRebuildWorkspaceRequestsInput {
  WorkspaceId: String!
}

input AwsWorkSpacesRegisterWorkspaceDirectoryInput {
  DirectoryId: String!
  SubnetIds: [String]
  EnableWorkDocs: Boolean!
  EnableSelfService: Boolean
  Tenancy: String
  Tags: [AwsWorkSpacesSmInput]
}

input AwsWorkSpacesRestoreWorkspaceInput {
  WorkspaceId: String!
}

input AwsWorkSpacesRevokeIpRulesInput {
  GroupId: String!
  UserRules: [String]!
}

type AwsWorkSpacesStartWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesS61]
}

input AwsWorkSpacesStartWorkspacesInput {
  StartWorkspaceRequests: [AwsWorkSpacesStartWorkspacesStartWorkspaceRequestsInput]!
}

input AwsWorkSpacesStartWorkspacesStartWorkspaceRequestsInput {
  WorkspaceId: String
}

type AwsWorkSpacesStopWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesS61]
}

input AwsWorkSpacesStopWorkspacesInput {
  StopWorkspaceRequests: [AwsWorkSpacesStopWorkspacesStopWorkspaceRequestsInput]!
}

input AwsWorkSpacesStopWorkspacesStopWorkspaceRequestsInput {
  WorkspaceId: String
}

type AwsWorkSpacesTerminateWorkspacesOutput {
  FailedRequests: [AwsWorkSpacesS61]
}

input AwsWorkSpacesTerminateWorkspacesInput {
  TerminateWorkspaceRequests: [AwsWorkSpacesTerminateWorkspacesTerminateWorkspaceRequestsInput]!
}

input AwsWorkSpacesTerminateWorkspacesTerminateWorkspaceRequestsInput {
  WorkspaceId: String!
}

input AwsWorkSpacesUpdateConnectionAliasPermissionInput {
  AliasId: String!
  ConnectionAliasPermission: AwsWorkSpacesS32Input!
}

input AwsWorkSpacesS32Input {
  SharedAccountId: String!
  AllowAssociation: Boolean!
}

input AwsWorkSpacesUpdateRulesOfIpGroupInput {
  GroupId: String!
  UserRules: [AwsWorkSpacesScInput]!
}

input AwsWorkSpacesUpdateWorkspaceBundleInput {
  BundleId: String
  ImageId: String
}

input AwsWorkSpacesUpdateWorkspaceImagePermissionInput {
  ImageId: String!
  AllowCopyImage: Boolean!
  SharedAccountId: String!
}

"""AWS X-Ray (2016-04-12)"""
type AwsXRay {
  batchGetTraces(input: AwsXRayBatchGetTracesInput!, config: AwsConfig): AwsXRayBatchGetTracesOutput
  createGroup(input: AwsXRayCreateGroupInput!, config: AwsConfig): AwsXRayCreateGroupOutput
  createSamplingRule(input: AwsXRayCreateSamplingRuleInput!, config: AwsConfig): AwsXRayCreateSamplingRuleOutput
  deleteGroup(input: AwsXRayDeleteGroupInput, config: AwsConfig): JSON
  deleteSamplingRule(input: AwsXRayDeleteSamplingRuleInput, config: AwsConfig): AwsXRayDeleteSamplingRuleOutput
  getEncryptionConfig(input: JSON, config: AwsConfig): AwsXRayGetEncryptionConfigOutput
  getGroup(input: AwsXRayGetGroupInput, config: AwsConfig): AwsXRayGetGroupOutput
  getGroups(input: AwsXRayGetGroupsInput, config: AwsConfig): AwsXRayGetGroupsOutput
  getInsight(input: AwsXRayGetInsightInput!, config: AwsConfig): AwsXRayGetInsightOutput
  getInsightEvents(input: AwsXRayGetInsightEventsInput!, config: AwsConfig): AwsXRayGetInsightEventsOutput
  getInsightImpactGraph(input: AwsXRayGetInsightImpactGraphInput!, config: AwsConfig): AwsXRayGetInsightImpactGraphOutput
  getInsightSummaries(input: AwsXRayGetInsightSummariesInput!, config: AwsConfig): AwsXRayGetInsightSummariesOutput
  getSamplingRules(input: AwsXRayGetSamplingRulesInput, config: AwsConfig): AwsXRayGetSamplingRulesOutput
  getSamplingStatisticSummaries(input: AwsXRayGetSamplingStatisticSummariesInput, config: AwsConfig): AwsXRayGetSamplingStatisticSummariesOutput
  getSamplingTargets(input: AwsXRayGetSamplingTargetsInput!, config: AwsConfig): AwsXRayGetSamplingTargetsOutput
  getServiceGraph(input: AwsXRayGetServiceGraphInput!, config: AwsConfig): AwsXRayGetServiceGraphOutput
  getTimeSeriesServiceStatistics(input: AwsXRayGetTimeSeriesServiceStatisticsInput!, config: AwsConfig): AwsXRayGetTimeSeriesServiceStatisticsOutput
  getTraceGraph(input: AwsXRayGetTraceGraphInput!, config: AwsConfig): AwsXRayGetTraceGraphOutput
  getTraceSummaries(input: AwsXRayGetTraceSummariesInput!, config: AwsConfig): AwsXRayGetTraceSummariesOutput
  listTagsForResource(input: AwsXRayListTagsForResourceInput!, config: AwsConfig): AwsXRayListTagsForResourceOutput
  putEncryptionConfig(input: AwsXRayPutEncryptionConfigInput!, config: AwsConfig): AwsXRayPutEncryptionConfigOutput
  putTelemetryRecords(input: AwsXRayPutTelemetryRecordsInput!, config: AwsConfig): JSON
  putTraceSegments(input: AwsXRayPutTraceSegmentsInput!, config: AwsConfig): AwsXRayPutTraceSegmentsOutput
  tagResource(input: AwsXRayTagResourceInput!, config: AwsConfig): JSON
  untagResource(input: AwsXRayUntagResourceInput!, config: AwsConfig): JSON
  updateGroup(input: AwsXRayUpdateGroupInput, config: AwsConfig): AwsXRayUpdateGroupOutput
  updateSamplingRule(input: AwsXRayUpdateSamplingRuleInput!, config: AwsConfig): AwsXRayUpdateSamplingRuleOutput
}

type AwsXRayBatchGetTracesOutput {
  Traces: [AwsXRayBatchGetTracesOutputTraces]
  UnprocessedTraceIds: [String]
  NextToken: String
}

type AwsXRayBatchGetTracesOutputTraces {
  Id: String
  Duration: JSON
  LimitExceeded: Boolean
  Segments: [AwsXRayBatchGetTracesOutputTracesSegments]
}

type AwsXRayBatchGetTracesOutputTracesSegments {
  Id: String
  Document: String
}

input AwsXRayBatchGetTracesInput {
  TraceIds: [String]!
  NextToken: String
}

type AwsXRayCreateGroupOutput {
  Group: AwsXRaySo
}

type AwsXRaySo {
  GroupName: String
  GroupARN: String
  FilterExpression: String
  InsightsConfiguration: AwsXRaySi
}

type AwsXRaySi {
  InsightsEnabled: Boolean
  NotificationsEnabled: Boolean
}

input AwsXRayCreateGroupInput {
  GroupName: String!
  FilterExpression: String
  InsightsConfiguration: AwsXRaySiInput
  Tags: [AwsXRaySjInput]
}

input AwsXRaySiInput {
  InsightsEnabled: Boolean
  NotificationsEnabled: Boolean
}

input AwsXRaySjInput {
  Key: String!
  Value: String!
}

type AwsXRayCreateSamplingRuleOutput {
  SamplingRuleRecord: AwsXRayS16
}

type AwsXRayS16 {
  SamplingRule: AwsXRaySq
  CreatedAt: Date
  ModifiedAt: Date
}

type AwsXRaySq {
  RuleName: String
  RuleARN: String
  ResourceARN: String!
  Priority: Int!
  FixedRate: JSON!
  ReservoirSize: Int!
  ServiceName: String!
  ServiceType: String!
  Host: String!
  HTTPMethod: String!
  URLPath: String!
  Version: Int!
  Attributes: JSON
}

input AwsXRayCreateSamplingRuleInput {
  SamplingRule: AwsXRaySqInput!
  Tags: [AwsXRaySjInput]
}

input AwsXRaySqInput {
  RuleName: String
  RuleARN: String
  ResourceARN: String!
  Priority: Int!
  FixedRate: JSON!
  ReservoirSize: Int!
  ServiceName: String!
  ServiceType: String!
  Host: String!
  HTTPMethod: String!
  URLPath: String!
  Version: Int!
  Attributes: JSON
}

input AwsXRayDeleteGroupInput {
  GroupName: String
  GroupARN: String
}

type AwsXRayDeleteSamplingRuleOutput {
  SamplingRuleRecord: AwsXRayS16
}

input AwsXRayDeleteSamplingRuleInput {
  RuleName: String
  RuleARN: String
}

type AwsXRayGetEncryptionConfigOutput {
  EncryptionConfig: AwsXRayS1f
}

type AwsXRayS1f {
  KeyId: String
  Status: String
  Type: String
}

type AwsXRayGetGroupOutput {
  Group: AwsXRaySo
}

input AwsXRayGetGroupInput {
  GroupName: String
  GroupARN: String
}

type AwsXRayGetGroupsOutput {
  Groups: [AwsXRayGetGroupsOutputGroups]
  NextToken: String
}

type AwsXRayGetGroupsOutputGroups {
  GroupName: String
  GroupARN: String
  FilterExpression: String
  InsightsConfiguration: AwsXRaySi
}

input AwsXRayGetGroupsInput {
  NextToken: String
}

type AwsXRayGetInsightOutput {
  Insight: AwsXRayGetInsightOutputInsight
}

type AwsXRayGetInsightOutputInsight {
  InsightId: String
  GroupARN: String
  GroupName: String
  RootCauseServiceId: AwsXRayS1t
  Categories: [String]
  State: String
  StartTime: Date
  EndTime: Date
  Summary: String
  ClientRequestImpactStatistics: AwsXRayS1z
  RootCauseServiceRequestImpactStatistics: AwsXRayS1z
  TopAnomalousServices: [AwsXRayS21]
}

type AwsXRayS1t {
  Name: String
  Names: [String]
  AccountId: String
  Type: String
}

type AwsXRayS1z {
  FaultCount: JSON
  OkCount: JSON
  TotalCount: JSON
}

type AwsXRayS21 {
  ServiceId: AwsXRayS1t
}

input AwsXRayGetInsightInput {
  InsightId: String!
}

type AwsXRayGetInsightEventsOutput {
  InsightEvents: [AwsXRayGetInsightEventsOutputInsightEvents]
  NextToken: String
}

type AwsXRayGetInsightEventsOutputInsightEvents {
  Summary: String
  EventTime: Date
  ClientRequestImpactStatistics: AwsXRayS1z
  RootCauseServiceRequestImpactStatistics: AwsXRayS1z
  TopAnomalousServices: [AwsXRayS21]
}

input AwsXRayGetInsightEventsInput {
  InsightId: String!
  MaxResults: Int
  NextToken: String
}

type AwsXRayGetInsightImpactGraphOutput {
  InsightId: String
  StartTime: Date
  EndTime: Date
  ServiceGraphStartTime: Date
  ServiceGraphEndTime: Date
  Services: [AwsXRayGetInsightImpactGraphOutputServices]
  NextToken: String
}

type AwsXRayGetInsightImpactGraphOutputServices {
  ReferenceId: Int
  Type: String
  Name: String
  Names: [String]
  AccountId: String
  Edges: [AwsXRayGetInsightImpactGraphOutputServicesEdges]
}

type AwsXRayGetInsightImpactGraphOutputServicesEdges {
  ReferenceId: Int
}

input AwsXRayGetInsightImpactGraphInput {
  InsightId: String!
  StartTime: Date!
  EndTime: Date!
  NextToken: String
}

type AwsXRayGetInsightSummariesOutput {
  InsightSummaries: [AwsXRayGetInsightSummariesOutputInsightSummaries]
  NextToken: String
}

type AwsXRayGetInsightSummariesOutputInsightSummaries {
  InsightId: String
  GroupARN: String
  GroupName: String
  RootCauseServiceId: AwsXRayS1t
  Categories: [String]
  State: String
  StartTime: Date
  EndTime: Date
  Summary: String
  ClientRequestImpactStatistics: AwsXRayS1z
  RootCauseServiceRequestImpactStatistics: AwsXRayS1z
  TopAnomalousServices: [AwsXRayS21]
  LastUpdateTime: Date
}

input AwsXRayGetInsightSummariesInput {
  States: [String]
  GroupARN: String
  GroupName: String
  StartTime: Date!
  EndTime: Date!
  MaxResults: Int
  NextToken: String
}

type AwsXRayGetSamplingRulesOutput {
  SamplingRuleRecords: [AwsXRayS16]
  NextToken: String
}

input AwsXRayGetSamplingRulesInput {
  NextToken: String
}

type AwsXRayGetSamplingStatisticSummariesOutput {
  SamplingStatisticSummaries: [AwsXRayGetSamplingStatisticSummariesOutputSamplingStatisticSummaries]
  NextToken: String
}

type AwsXRayGetSamplingStatisticSummariesOutputSamplingStatisticSummaries {
  RuleName: String
  Timestamp: Date
  RequestCount: Int
  BorrowCount: Int
  SampledCount: Int
}

input AwsXRayGetSamplingStatisticSummariesInput {
  NextToken: String
}

type AwsXRayGetSamplingTargetsOutput {
  SamplingTargetDocuments: [AwsXRayGetSamplingTargetsOutputSamplingTargetDocuments]
  LastRuleModification: Date
  UnprocessedStatistics: [AwsXRayGetSamplingTargetsOutputUnprocessedStatistics]
}

type AwsXRayGetSamplingTargetsOutputSamplingTargetDocuments {
  RuleName: String
  FixedRate: JSON
  ReservoirQuota: Int
  ReservoirQuotaTTL: Date
  Interval: Int
}

type AwsXRayGetSamplingTargetsOutputUnprocessedStatistics {
  RuleName: String
  ErrorCode: String
  Message: String
}

input AwsXRayGetSamplingTargetsInput {
  SamplingStatisticsDocuments: [AwsXRayGetSamplingTargetsSamplingStatisticsDocumentsInput]!
}

input AwsXRayGetSamplingTargetsSamplingStatisticsDocumentsInput {
  RuleName: String!
  ClientID: String!
  Timestamp: Date!
  RequestCount: Int!
  SampledCount: Int!
  BorrowCount: Int
}

type AwsXRayGetServiceGraphOutput {
  StartTime: Date
  EndTime: Date
  Services: [AwsXRayS3a]
  ContainsOldGroupVersions: Boolean
  NextToken: String
}

type AwsXRayS3a {
  ReferenceId: Int
  Name: String
  Names: [String]
  Root: Boolean
  AccountId: String
  Type: String
  State: String
  StartTime: Date
  EndTime: Date
  Edges: [AwsXRayS3aEdges]
  SummaryStatistics: AwsXRayS3m
  DurationHistogram: [AwsXRayS3h]
  ResponseTimeHistogram: [AwsXRayS3h]
}

type AwsXRayS3aEdges {
  ReferenceId: Int
  StartTime: Date
  EndTime: Date
  SummaryStatistics: AwsXRayS3e
  ResponseTimeHistogram: [AwsXRayS3h]
  Aliases: [AwsXRayS3aEdgesAliases]
}

type AwsXRayS3e {
  OkCount: JSON
  ErrorStatistics: AwsXRayS3f
  FaultStatistics: AwsXRayS3g
  TotalCount: JSON
  TotalResponseTime: JSON
}

type AwsXRayS3f {
  ThrottleCount: JSON
  OtherCount: JSON
  TotalCount: JSON
}

type AwsXRayS3g {
  OtherCount: JSON
  TotalCount: JSON
}

type AwsXRayS3h {
  Value: JSON
  Count: Int
}

type AwsXRayS3aEdgesAliases {
  Name: String
  Names: [String]
  Type: String
}

type AwsXRayS3m {
  OkCount: JSON
  ErrorStatistics: AwsXRayS3f
  FaultStatistics: AwsXRayS3g
  TotalCount: JSON
  TotalResponseTime: JSON
}

input AwsXRayGetServiceGraphInput {
  StartTime: Date!
  EndTime: Date!
  GroupName: String
  GroupARN: String
  NextToken: String
}

type AwsXRayGetTimeSeriesServiceStatisticsOutput {
  TimeSeriesServiceStatistics: [AwsXRayGetTimeSeriesServiceStatisticsOutputTimeSeriesServiceStatistics]
  ContainsOldGroupVersions: Boolean
  NextToken: String
}

type AwsXRayGetTimeSeriesServiceStatisticsOutputTimeSeriesServiceStatistics {
  Timestamp: Date
  EdgeSummaryStatistics: AwsXRayS3e
  ServiceSummaryStatistics: AwsXRayS3m
  ServiceForecastStatistics: AwsXRayGetTimeSeriesServiceStatisticsOutputTimeSeriesServiceStatisticsServiceForecastStatistics
  ResponseTimeHistogram: [AwsXRayS3h]
}

type AwsXRayGetTimeSeriesServiceStatisticsOutputTimeSeriesServiceStatisticsServiceForecastStatistics {
  FaultCountHigh: JSON
  FaultCountLow: JSON
}

input AwsXRayGetTimeSeriesServiceStatisticsInput {
  StartTime: Date!
  EndTime: Date!
  GroupName: String
  GroupARN: String
  EntitySelectorExpression: String
  Period: Int
  ForecastStatistics: Boolean
  NextToken: String
}

type AwsXRayGetTraceGraphOutput {
  Services: [AwsXRayS3a]
  NextToken: String
}

input AwsXRayGetTraceGraphInput {
  TraceIds: [String]!
  NextToken: String
}

type AwsXRayGetTraceSummariesOutput {
  TraceSummaries: [AwsXRayGetTraceSummariesOutputTraceSummaries]
  ApproximateTime: Date
  TracesProcessedCount: JSON
  NextToken: String
}

type AwsXRayGetTraceSummariesOutputTraceSummaries {
  Id: String
  Duration: JSON
  ResponseTime: JSON
  HasFault: Boolean
  HasError: Boolean
  HasThrottle: Boolean
  IsPartial: Boolean
  Http: AwsXRayGetTraceSummariesOutputTraceSummariesHttp
  Annotations: JSON
  Users: [AwsXRayGetTraceSummariesOutputTraceSummariesUsers]
  ServiceIds: [AwsXRayS1t]
  ResourceARNs: [AwsXRayGetTraceSummariesOutputTraceSummariesResourceARNs]
  InstanceIds: [AwsXRayGetTraceSummariesOutputTraceSummariesInstanceIds]
  AvailabilityZones: [AwsXRayGetTraceSummariesOutputTraceSummariesAvailabilityZones]
  EntryPoint: AwsXRayS1t
  FaultRootCauses: [AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCauses]
  ErrorRootCauses: [AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCauses]
  ResponseTimeRootCauses: [AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCauses]
  Revision: Int
  MatchedEventTime: Date
}

type AwsXRayGetTraceSummariesOutputTraceSummariesHttp {
  HttpURL: String
  HttpStatus: Int
  HttpMethod: String
  UserAgent: String
  ClientIp: String
}

type AwsXRayGetTraceSummariesOutputTraceSummariesUsers {
  UserName: String
  ServiceIds: [AwsXRayS1t]
}

type AwsXRayGetTraceSummariesOutputTraceSummariesResourceARNs {
  ARN: String
}

type AwsXRayGetTraceSummariesOutputTraceSummariesInstanceIds {
  Id: String
}

type AwsXRayGetTraceSummariesOutputTraceSummariesAvailabilityZones {
  Name: String
}

type AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCauses {
  Services: [AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCausesServices]
  ClientImpacting: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCausesServices {
  Name: String
  Names: [String]
  Type: String
  AccountId: String
  EntityPath: [AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCausesServicesEntityPath]
  Inferred: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesFaultRootCausesServicesEntityPath {
  Name: String
  Exceptions: [AwsXRayS4o]
  Remote: Boolean
}

type AwsXRayS4o {
  Name: String
  Message: String
}

type AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCauses {
  Services: [AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCausesServices]
  ClientImpacting: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCausesServices {
  Name: String
  Names: [String]
  Type: String
  AccountId: String
  EntityPath: [AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCausesServicesEntityPath]
  Inferred: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesErrorRootCausesServicesEntityPath {
  Name: String
  Exceptions: [AwsXRayS4o]
  Remote: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCauses {
  Services: [AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCausesServices]
  ClientImpacting: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCausesServices {
  Name: String
  Names: [String]
  Type: String
  AccountId: String
  EntityPath: [AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCausesServicesEntityPath]
  Inferred: Boolean
}

type AwsXRayGetTraceSummariesOutputTraceSummariesResponseTimeRootCausesServicesEntityPath {
  Name: String
  Coverage: JSON
  Remote: Boolean
}

input AwsXRayGetTraceSummariesInput {
  StartTime: Date!
  EndTime: Date!
  TimeRangeType: String
  Sampling: Boolean
  SamplingStrategy: AwsXRayGetTraceSummariesSamplingStrategyInput
  FilterExpression: String
  NextToken: String
}

input AwsXRayGetTraceSummariesSamplingStrategyInput {
  Name: String
  Value: JSON
}

type AwsXRayListTagsForResourceOutput {
  Tags: [AwsXRaySj]
  NextToken: String
}

type AwsXRaySj {
  Key: String!
  Value: String!
}

input AwsXRayListTagsForResourceInput {
  ResourceARN: String!
  NextToken: String
}

type AwsXRayPutEncryptionConfigOutput {
  EncryptionConfig: AwsXRayS1f
}

input AwsXRayPutEncryptionConfigInput {
  KeyId: String
  Type: String!
}

input AwsXRayPutTelemetryRecordsInput {
  TelemetryRecords: [AwsXRayPutTelemetryRecordsTelemetryRecordsInput]!
  EC2InstanceId: String
  Hostname: String
  ResourceARN: String
}

input AwsXRayPutTelemetryRecordsTelemetryRecordsInput {
  Timestamp: Date!
  SegmentsReceivedCount: Int
  SegmentsSentCount: Int
  SegmentsSpilloverCount: Int
  SegmentsRejectedCount: Int
  BackendConnectionErrors: AwsXRayPutTelemetryRecordsTelemetryRecordsBackendConnectionErrorsInput
}

input AwsXRayPutTelemetryRecordsTelemetryRecordsBackendConnectionErrorsInput {
  TimeoutCount: Int
  ConnectionRefusedCount: Int
  HTTPCode4XXCount: Int
  HTTPCode5XXCount: Int
  UnknownHostCount: Int
  OtherCount: Int
}

type AwsXRayPutTraceSegmentsOutput {
  UnprocessedTraceSegments: [AwsXRayPutTraceSegmentsOutputUnprocessedTraceSegments]
}

type AwsXRayPutTraceSegmentsOutputUnprocessedTraceSegments {
  Id: String
  ErrorCode: String
  Message: String
}

input AwsXRayPutTraceSegmentsInput {
  TraceSegmentDocuments: [String]!
}

input AwsXRayTagResourceInput {
  ResourceARN: String!
  Tags: [AwsXRaySjInput]!
}

input AwsXRayUntagResourceInput {
  ResourceARN: String!
  TagKeys: [String]!
}

type AwsXRayUpdateGroupOutput {
  Group: AwsXRaySo
}

input AwsXRayUpdateGroupInput {
  GroupName: String
  GroupARN: String
  FilterExpression: String
  InsightsConfiguration: AwsXRaySiInput
}

type AwsXRayUpdateSamplingRuleOutput {
  SamplingRuleRecord: AwsXRayS16
}

input AwsXRayUpdateSamplingRuleInput {
  SamplingRuleUpdate: AwsXRayUpdateSamplingRuleSamplingRuleUpdateInput!
}

input AwsXRayUpdateSamplingRuleSamplingRuleUpdateInput {
  RuleName: String
  RuleARN: String
  ResourceARN: String
  Priority: Int
  FixedRate: JSON
  ReservoirSize: Int
  Host: String
  ServiceName: String
  ServiceType: String
  HTTPMethod: String
  URLPath: String
  Attributes: JSON
}