{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2014-11-06",
    "endpointPrefix":"ssm",
    "jsonVersion":"1.1",
    "protocol":"json",
    "serviceAbbreviation":"Amazon SSM",
    "serviceFullName":"Amazon Simple Systems Manager (SSM)",
    "serviceId":"SSM",
    "signatureVersion":"v4",
    "targetPrefix":"AmazonSSM",
    "uid":"ssm-2014-11-06"
  },
  "operations":{
    "AddTagsToResource":{
      "name":"AddTagsToResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"AddTagsToResourceRequest"},
      "output":{"shape":"AddTagsToResourceResult"},
      "errors":[
        {"shape":"InvalidResourceType"},
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"},
        {"shape":"TooManyTagsError"},
        {"shape":"TooManyUpdates"}
      ],
      "documentation":"<p>Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.</p> <p>Each resource can have a maximum of 50 tags. </p> <p>We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to Amazon EC2 and are interpreted strictly as a string of characters. </p> <p>For more information about tags, see <a href=\"http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tagging Your Amazon EC2 Resources</a> in the <i>Amazon EC2 User Guide</i>.</p>"
    },
    "CancelCommand":{
      "name":"CancelCommand",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CancelCommandRequest"},
      "output":{"shape":"CancelCommandResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidCommandId"},
        {"shape":"InvalidInstanceId"},
        {"shape":"DuplicateInstanceId"}
      ],
      "documentation":"<p>Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.</p>"
    },
    "CancelMaintenanceWindowExecution":{
      "name":"CancelMaintenanceWindowExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CancelMaintenanceWindowExecutionRequest"},
      "output":{"shape":"CancelMaintenanceWindowExecutionResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"DoesNotExistException"}
      ],
      "documentation":"<p>Stops a Maintenance Window execution that is already in progress and cancels any tasks in the window that have not already starting running. (Tasks already in progress will continue to completion.)</p>"
    },
    "CreateActivation":{
      "name":"CreateActivation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateActivationRequest"},
      "output":{"shape":"CreateActivationResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Registers your on-premises server or virtual machine with Amazon EC2 so that you can manage these resources using Run Command. An on-premises server or virtual machine that has been registered with EC2 is called a managed instance. For more information about activations, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html\">Setting Up Systems Manager in Hybrid Environments</a>.</p>"
    },
    "CreateAssociation":{
      "name":"CreateAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateAssociationRequest"},
      "output":{"shape":"CreateAssociationResult"},
      "errors":[
        {"shape":"AssociationAlreadyExists"},
        {"shape":"AssociationLimitExceeded"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"InvalidInstanceId"},
        {"shape":"UnsupportedPlatformType"},
        {"shape":"InvalidOutputLocation"},
        {"shape":"InvalidParameters"},
        {"shape":"InvalidTarget"},
        {"shape":"InvalidSchedule"}
      ],
      "documentation":"<p>Associates the specified Systems Manager document with the specified instances or targets.</p> <p>When you associate a document with one or more instances using instance IDs or tags, SSM Agent running on the instance processes the document and configures the instance as specified.</p> <p>If you associate a document with an instance that already has an associated document, the system returns the AssociationAlreadyExists exception.</p>"
    },
    "CreateAssociationBatch":{
      "name":"CreateAssociationBatch",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateAssociationBatchRequest"},
      "output":{"shape":"CreateAssociationBatchResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidParameters"},
        {"shape":"DuplicateInstanceId"},
        {"shape":"AssociationLimitExceeded"},
        {"shape":"UnsupportedPlatformType"},
        {"shape":"InvalidOutputLocation"},
        {"shape":"InvalidTarget"},
        {"shape":"InvalidSchedule"}
      ],
      "documentation":"<p>Associates the specified Systems Manager document with the specified instances or targets.</p> <p>When you associate a document with one or more instances using instance IDs or tags, SSM Agent running on the instance processes the document and configures the instance as specified.</p> <p>If you associate a document with an instance that already has an associated document, the system returns the AssociationAlreadyExists exception.</p>"
    },
    "CreateDocument":{
      "name":"CreateDocument",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateDocumentRequest"},
      "output":{"shape":"CreateDocumentResult"},
      "errors":[
        {"shape":"DocumentAlreadyExists"},
        {"shape":"MaxDocumentSizeExceeded"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocumentContent"},
        {"shape":"DocumentLimitExceeded"},
        {"shape":"InvalidDocumentSchemaVersion"}
      ],
      "documentation":"<p>Creates a Systems Manager document.</p> <p>After you create a document, you can use CreateAssociation to associate it with one or more running instances.</p>"
    },
    "CreateMaintenanceWindow":{
      "name":"CreateMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateMaintenanceWindowRequest"},
      "output":{"shape":"CreateMaintenanceWindowResult"},
      "errors":[
        {"shape":"IdempotentParameterMismatch"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Creates a new Maintenance Window.</p>"
    },
    "CreatePatchBaseline":{
      "name":"CreatePatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreatePatchBaselineRequest"},
      "output":{"shape":"CreatePatchBaselineResult"},
      "errors":[
        {"shape":"IdempotentParameterMismatch"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Creates a patch baseline.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html\">PatchFilter</a>.</p> </note>"
    },
    "CreateResourceDataSync":{
      "name":"CreateResourceDataSync",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateResourceDataSyncRequest"},
      "output":{"shape":"CreateResourceDataSyncResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"ResourceDataSyncCountExceededException"},
        {"shape":"ResourceDataSyncAlreadyExistsException"},
        {"shape":"ResourceDataSyncInvalidConfigurationException"}
      ],
      "documentation":"<p>Creates a resource data sync configuration to a single bucket in Amazon S3. This is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data to the Amazon S3 bucket. To check the status of the sync, use the <a>ListResourceDataSync</a>.</p> <p>By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. To view an example of a restrictive Amazon S3 bucket policy for Resource Data Sync, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync-create.html\">Create a Resource Data Sync for Inventory</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
    },
    "DeleteActivation":{
      "name":"DeleteActivation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteActivationRequest"},
      "output":{"shape":"DeleteActivationResult"},
      "errors":[
        {"shape":"InvalidActivationId"},
        {"shape":"InvalidActivation"},
        {"shape":"InternalServerError"},
        {"shape":"TooManyUpdates"}
      ],
      "documentation":"<p>Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances.</p>"
    },
    "DeleteAssociation":{
      "name":"DeleteAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteAssociationRequest"},
      "output":{"shape":"DeleteAssociationResult"},
      "errors":[
        {"shape":"AssociationDoesNotExist"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidInstanceId"},
        {"shape":"TooManyUpdates"}
      ],
      "documentation":"<p>Disassociates the specified Systems Manager document from the specified instance.</p> <p>When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance.</p>"
    },
    "DeleteDocument":{
      "name":"DeleteDocument",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteDocumentRequest"},
      "output":{"shape":"DeleteDocumentResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentOperation"},
        {"shape":"AssociatedInstances"}
      ],
      "documentation":"<p>Deletes the Systems Manager document and all instance associations to the document.</p> <p>Before you delete the document, we recommend that you use <a>DeleteAssociation</a> to disassociate all instances that are associated with the document.</p>"
    },
    "DeleteInventory":{
      "name":"DeleteInventory",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteInventoryRequest"},
      "output":{"shape":"DeleteInventoryResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidTypeNameException"},
        {"shape":"InvalidOptionException"},
        {"shape":"InvalidDeleteInventoryParametersException"},
        {"shape":"InvalidInventoryRequestException"}
      ],
      "documentation":"<p>Delete a custom inventory type, or the data associated with a custom Inventory type. Deleting a custom inventory type is also referred to as deleting a custom inventory schema.</p>"
    },
    "DeleteMaintenanceWindow":{
      "name":"DeleteMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteMaintenanceWindowRequest"},
      "output":{"shape":"DeleteMaintenanceWindowResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Deletes a Maintenance Window.</p>"
    },
    "DeleteParameter":{
      "name":"DeleteParameter",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteParameterRequest"},
      "output":{"shape":"DeleteParameterResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"ParameterNotFound"}
      ],
      "documentation":"<p>Delete a parameter from the system.</p>"
    },
    "DeleteParameters":{
      "name":"DeleteParameters",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteParametersRequest"},
      "output":{"shape":"DeleteParametersResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Delete a list of parameters. This API is used to delete parameters by using the Amazon EC2 console.</p>"
    },
    "DeletePatchBaseline":{
      "name":"DeletePatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeletePatchBaselineRequest"},
      "output":{"shape":"DeletePatchBaselineResult"},
      "errors":[
        {"shape":"ResourceInUseException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Deletes a patch baseline.</p>"
    },
    "DeleteResourceDataSync":{
      "name":"DeleteResourceDataSync",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteResourceDataSyncRequest"},
      "output":{"shape":"DeleteResourceDataSyncResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"ResourceDataSyncNotFoundException"}
      ],
      "documentation":"<p>Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to inventory data on managed instances are no longer synced with the target Amazon S3 bucket. Deleting a sync configuration does not delete data in the target Amazon S3 bucket.</p>"
    },
    "DeregisterManagedInstance":{
      "name":"DeregisterManagedInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeregisterManagedInstanceRequest"},
      "output":{"shape":"DeregisterManagedInstanceResult"},
      "errors":[
        {"shape":"InvalidInstanceId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling SSM Agent first.</p>"
    },
    "DeregisterPatchBaselineForPatchGroup":{
      "name":"DeregisterPatchBaselineForPatchGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeregisterPatchBaselineForPatchGroupRequest"},
      "output":{"shape":"DeregisterPatchBaselineForPatchGroupResult"},
      "errors":[
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Removes a patch group from a patch baseline.</p>"
    },
    "DeregisterTargetFromMaintenanceWindow":{
      "name":"DeregisterTargetFromMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeregisterTargetFromMaintenanceWindowRequest"},
      "output":{"shape":"DeregisterTargetFromMaintenanceWindowResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"},
        {"shape":"TargetInUseException"}
      ],
      "documentation":"<p>Removes a target from a Maintenance Window.</p>"
    },
    "DeregisterTaskFromMaintenanceWindow":{
      "name":"DeregisterTaskFromMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeregisterTaskFromMaintenanceWindowRequest"},
      "output":{"shape":"DeregisterTaskFromMaintenanceWindowResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Removes a task from a Maintenance Window.</p>"
    },
    "DescribeActivations":{
      "name":"DescribeActivations",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeActivationsRequest"},
      "output":{"shape":"DescribeActivationsResult"},
      "errors":[
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Details about the activation, including: the date and time the activation was created, the expiration date, the IAM role assigned to the instances in the activation, and the number of instances activated by this registration.</p>"
    },
    "DescribeAssociation":{
      "name":"DescribeAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAssociationRequest"},
      "output":{"shape":"DescribeAssociationResult"},
      "errors":[
        {"shape":"AssociationDoesNotExist"},
        {"shape":"InvalidAssociationVersion"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidInstanceId"}
      ],
      "documentation":"<p>Describes the association for the specified target or instance. If you created the association by using the <code>Targets</code> parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID. </p>"
    },
    "DescribeAssociationExecutionTargets":{
      "name":"DescribeAssociationExecutionTargets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAssociationExecutionTargetsRequest"},
      "output":{"shape":"DescribeAssociationExecutionTargetsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"AssociationDoesNotExist"},
        {"shape":"InvalidNextToken"},
        {"shape":"AssociationExecutionDoesNotExist"}
      ],
      "documentation":"<p>Use this API action to view information about a specific execution of a specific association.</p>"
    },
    "DescribeAssociationExecutions":{
      "name":"DescribeAssociationExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAssociationExecutionsRequest"},
      "output":{"shape":"DescribeAssociationExecutionsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"AssociationDoesNotExist"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Use this API action to view all executions for a specific association ID. </p>"
    },
    "DescribeAutomationExecutions":{
      "name":"DescribeAutomationExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAutomationExecutionsRequest"},
      "output":{"shape":"DescribeAutomationExecutionsResult"},
      "errors":[
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidFilterValue"},
        {"shape":"InvalidNextToken"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Provides details about all active and terminated Automation executions.</p>"
    },
    "DescribeAutomationStepExecutions":{
      "name":"DescribeAutomationStepExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAutomationStepExecutionsRequest"},
      "output":{"shape":"DescribeAutomationStepExecutionsResult"},
      "errors":[
        {"shape":"AutomationExecutionNotFoundException"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidFilterValue"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Information about all active and terminated step executions in an Automation workflow.</p>"
    },
    "DescribeAvailablePatches":{
      "name":"DescribeAvailablePatches",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeAvailablePatchesRequest"},
      "output":{"shape":"DescribeAvailablePatchesResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists all patches that could possibly be included in a patch baseline.</p>"
    },
    "DescribeDocument":{
      "name":"DescribeDocument",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeDocumentRequest"},
      "output":{"shape":"DescribeDocumentResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"}
      ],
      "documentation":"<p>Describes the specified Systems Manager document.</p>"
    },
    "DescribeDocumentPermission":{
      "name":"DescribeDocumentPermission",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeDocumentPermissionRequest"},
      "output":{"shape":"DescribeDocumentPermissionResponse"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidPermissionType"}
      ],
      "documentation":"<p>Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (<i>All</i>). </p>"
    },
    "DescribeEffectiveInstanceAssociations":{
      "name":"DescribeEffectiveInstanceAssociations",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeEffectiveInstanceAssociationsRequest"},
      "output":{"shape":"DescribeEffectiveInstanceAssociationsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>All associations for the instance(s).</p>"
    },
    "DescribeEffectivePatchesForPatchBaseline":{
      "name":"DescribeEffectivePatchesForPatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeEffectivePatchesForPatchBaselineRequest"},
      "output":{"shape":"DescribeEffectivePatchesForPatchBaselineResult"},
      "errors":[
        {"shape":"InvalidResourceId"},
        {"shape":"DoesNotExistException"},
        {"shape":"UnsupportedOperatingSystem"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.</p>"
    },
    "DescribeInstanceAssociationsStatus":{
      "name":"DescribeInstanceAssociationsStatus",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInstanceAssociationsStatusRequest"},
      "output":{"shape":"DescribeInstanceAssociationsStatusResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>The status of the associations for the instance(s).</p>"
    },
    "DescribeInstanceInformation":{
      "name":"DescribeInstanceInformation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInstanceInformationRequest"},
      "output":{"shape":"DescribeInstanceInformationResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidInstanceInformationFilterValue"},
        {"shape":"InvalidFilterKey"}
      ],
      "documentation":"<p>Describes one or more of your instances. You can use this to get information about instances like the operating system platform, the SSM Agent version (Linux), status etc. If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error. </p> <note> <p>The IamRole field for this API action is the Amazon Identity and Access Management (IAM) role assigned to on-premises instances. This call does not return the IAM role for Amazon EC2 instances.</p> </note>"
    },
    "DescribeInstancePatchStates":{
      "name":"DescribeInstancePatchStates",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInstancePatchStatesRequest"},
      "output":{"shape":"DescribeInstancePatchStatesResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Retrieves the high-level patch state of one or more instances.</p>"
    },
    "DescribeInstancePatchStatesForPatchGroup":{
      "name":"DescribeInstancePatchStatesForPatchGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInstancePatchStatesForPatchGroupRequest"},
      "output":{"shape":"DescribeInstancePatchStatesForPatchGroupResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Retrieves the high-level patch state for the instances in the specified patch group.</p>"
    },
    "DescribeInstancePatches":{
      "name":"DescribeInstancePatches",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInstancePatchesRequest"},
      "output":{"shape":"DescribeInstancePatchesResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance.</p>"
    },
    "DescribeInventoryDeletions":{
      "name":"DescribeInventoryDeletions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeInventoryDeletionsRequest"},
      "output":{"shape":"DescribeInventoryDeletionsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDeletionIdException"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Describes a specific delete inventory operation.</p>"
    },
    "DescribeMaintenanceWindowExecutionTaskInvocations":{
      "name":"DescribeMaintenanceWindowExecutionTaskInvocations",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowExecutionTaskInvocationsRequest"},
      "output":{"shape":"DescribeMaintenanceWindowExecutionTaskInvocationsResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the individual task executions (one per target) for a particular task executed as part of a Maintenance Window execution.</p>"
    },
    "DescribeMaintenanceWindowExecutionTasks":{
      "name":"DescribeMaintenanceWindowExecutionTasks",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowExecutionTasksRequest"},
      "output":{"shape":"DescribeMaintenanceWindowExecutionTasksResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>For a given Maintenance Window execution, lists the tasks that were executed.</p>"
    },
    "DescribeMaintenanceWindowExecutions":{
      "name":"DescribeMaintenanceWindowExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowExecutionsRequest"},
      "output":{"shape":"DescribeMaintenanceWindowExecutionsResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists the executions of a Maintenance Window. This includes information about when the Maintenance Window was scheduled to be active, and information about tasks registered and run with the Maintenance Window.</p>"
    },
    "DescribeMaintenanceWindowSchedule":{
      "name":"DescribeMaintenanceWindowSchedule",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowScheduleRequest"},
      "output":{"shape":"DescribeMaintenanceWindowScheduleResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"DoesNotExistException"}
      ],
      "documentation":"<p>Retrieves information about upcoming executions of a Maintenance Window.</p>"
    },
    "DescribeMaintenanceWindowTargets":{
      "name":"DescribeMaintenanceWindowTargets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowTargetsRequest"},
      "output":{"shape":"DescribeMaintenanceWindowTargetsResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists the targets registered with the Maintenance Window.</p>"
    },
    "DescribeMaintenanceWindowTasks":{
      "name":"DescribeMaintenanceWindowTasks",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowTasksRequest"},
      "output":{"shape":"DescribeMaintenanceWindowTasksResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists the tasks in a Maintenance Window.</p>"
    },
    "DescribeMaintenanceWindows":{
      "name":"DescribeMaintenanceWindows",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowsRequest"},
      "output":{"shape":"DescribeMaintenanceWindowsResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the Maintenance Windows in an AWS account.</p>"
    },
    "DescribeMaintenanceWindowsForTarget":{
      "name":"DescribeMaintenanceWindowsForTarget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeMaintenanceWindowsForTargetRequest"},
      "output":{"shape":"DescribeMaintenanceWindowsForTargetResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves information about the Maintenance Windows targets or tasks that an instance is associated with.</p>"
    },
    "DescribeParameters":{
      "name":"DescribeParameters",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeParametersRequest"},
      "output":{"shape":"DescribeParametersResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidFilterOption"},
        {"shape":"InvalidFilterValue"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Get information about a parameter.</p> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p>"
    },
    "DescribePatchBaselines":{
      "name":"DescribePatchBaselines",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribePatchBaselinesRequest"},
      "output":{"shape":"DescribePatchBaselinesResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists the patch baselines in your AWS account.</p>"
    },
    "DescribePatchGroupState":{
      "name":"DescribePatchGroupState",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribePatchGroupStateRequest"},
      "output":{"shape":"DescribePatchGroupStateResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Returns high-level aggregated patch compliance state for a patch group.</p>"
    },
    "DescribePatchGroups":{
      "name":"DescribePatchGroups",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribePatchGroupsRequest"},
      "output":{"shape":"DescribePatchGroupsResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists all patch groups that have been registered with patch baselines.</p>"
    },
    "DescribeSessions":{
      "name":"DescribeSessions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeSessionsRequest"},
      "output":{"shape":"DescribeSessionsResponse"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Retrieves a list of all active sessions (both connected and disconnected) or terminated sessions from the past 30 days.</p>"
    },
    "GetAutomationExecution":{
      "name":"GetAutomationExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetAutomationExecutionRequest"},
      "output":{"shape":"GetAutomationExecutionResult"},
      "errors":[
        {"shape":"AutomationExecutionNotFoundException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Get detailed information about a particular Automation execution.</p>"
    },
    "GetCommandInvocation":{
      "name":"GetCommandInvocation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetCommandInvocationRequest"},
      "output":{"shape":"GetCommandInvocationResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidCommandId"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidPluginName"},
        {"shape":"InvocationDoesNotExist"}
      ],
      "documentation":"<p>Returns detailed information about command execution for an invocation or plugin. </p>"
    },
    "GetConnectionStatus":{
      "name":"GetConnectionStatus",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetConnectionStatusRequest"},
      "output":{"shape":"GetConnectionStatusResponse"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the Session Manager connection status for an instance to determine whether it is connected and ready to receive Session Manager connections.</p>"
    },
    "GetDefaultPatchBaseline":{
      "name":"GetDefaultPatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetDefaultPatchBaselineRequest"},
      "output":{"shape":"GetDefaultPatchBaselineResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.</p> <p>If you do not specify an operating system value, the default patch baseline for Windows is returned.</p>"
    },
    "GetDeployablePatchSnapshotForInstance":{
      "name":"GetDeployablePatchSnapshotForInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetDeployablePatchSnapshotForInstanceRequest"},
      "output":{"shape":"GetDeployablePatchSnapshotForInstanceResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"UnsupportedOperatingSystem"}
      ],
      "documentation":"<p>Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. </p>"
    },
    "GetDocument":{
      "name":"GetDocument",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetDocumentRequest"},
      "output":{"shape":"GetDocumentResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"}
      ],
      "documentation":"<p>Gets the contents of the specified Systems Manager document.</p>"
    },
    "GetInventory":{
      "name":"GetInventory",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetInventoryRequest"},
      "output":{"shape":"GetInventoryResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilter"},
        {"shape":"InvalidInventoryGroupException"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidTypeNameException"},
        {"shape":"InvalidAggregatorException"},
        {"shape":"InvalidResultAttributeException"}
      ],
      "documentation":"<p>Query inventory information.</p>"
    },
    "GetInventorySchema":{
      "name":"GetInventorySchema",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetInventorySchemaRequest"},
      "output":{"shape":"GetInventorySchemaResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidTypeNameException"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type. </p>"
    },
    "GetMaintenanceWindow":{
      "name":"GetMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetMaintenanceWindowRequest"},
      "output":{"shape":"GetMaintenanceWindowResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves a Maintenance Window.</p>"
    },
    "GetMaintenanceWindowExecution":{
      "name":"GetMaintenanceWindowExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetMaintenanceWindowExecutionRequest"},
      "output":{"shape":"GetMaintenanceWindowExecutionResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves details about a specific task executed as part of a Maintenance Window execution.</p>"
    },
    "GetMaintenanceWindowExecutionTask":{
      "name":"GetMaintenanceWindowExecutionTask",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetMaintenanceWindowExecutionTaskRequest"},
      "output":{"shape":"GetMaintenanceWindowExecutionTaskResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the details about a specific task executed as part of a Maintenance Window execution.</p>"
    },
    "GetMaintenanceWindowExecutionTaskInvocation":{
      "name":"GetMaintenanceWindowExecutionTaskInvocation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetMaintenanceWindowExecutionTaskInvocationRequest"},
      "output":{"shape":"GetMaintenanceWindowExecutionTaskInvocationResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves a task invocation. A task invocation is a specific task executing on a specific target. Maintenance Windows report status for all invocations. </p>"
    },
    "GetMaintenanceWindowTask":{
      "name":"GetMaintenanceWindowTask",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetMaintenanceWindowTaskRequest"},
      "output":{"shape":"GetMaintenanceWindowTaskResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Lists the tasks in a Maintenance Window.</p>"
    },
    "GetParameter":{
      "name":"GetParameter",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetParameterRequest"},
      "output":{"shape":"GetParameterResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidKeyId"},
        {"shape":"ParameterNotFound"},
        {"shape":"ParameterVersionNotFound"}
      ],
      "documentation":"<p>Get information about a parameter by using the parameter name. Don't confuse this API action with the <a>GetParameters</a> API action.</p>"
    },
    "GetParameterHistory":{
      "name":"GetParameterHistory",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetParameterHistoryRequest"},
      "output":{"shape":"GetParameterHistoryResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"ParameterNotFound"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidKeyId"}
      ],
      "documentation":"<p>Query a list of all parameters used by the AWS account.</p>"
    },
    "GetParameters":{
      "name":"GetParameters",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetParametersRequest"},
      "output":{"shape":"GetParametersResult"},
      "errors":[
        {"shape":"InvalidKeyId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Get details of a parameter. Don't confuse this API action with the <a>GetParameter</a> API action.</p>"
    },
    "GetParametersByPath":{
      "name":"GetParametersByPath",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetParametersByPathRequest"},
      "output":{"shape":"GetParametersByPathResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidFilterOption"},
        {"shape":"InvalidFilterValue"},
        {"shape":"InvalidKeyId"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Retrieve parameters in a specific hierarchy. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html\">Working with Systems Manager Parameters</a> in the <i>AWS Systems Manager User Guide</i>. </p> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p> <note> <p>This API action doesn't support filtering by tags. </p> </note>"
    },
    "GetPatchBaseline":{
      "name":"GetPatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPatchBaselineRequest"},
      "output":{"shape":"GetPatchBaselineResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves information about a patch baseline.</p>"
    },
    "GetPatchBaselineForPatchGroup":{
      "name":"GetPatchBaselineForPatchGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetPatchBaselineForPatchGroupRequest"},
      "output":{"shape":"GetPatchBaselineForPatchGroupResult"},
      "errors":[
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Retrieves the patch baseline that should be used for the specified patch group.</p>"
    },
    "LabelParameterVersion":{
      "name":"LabelParameterVersion",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"LabelParameterVersionRequest"},
      "output":{"shape":"LabelParameterVersionResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"TooManyUpdates"},
        {"shape":"ParameterNotFound"},
        {"shape":"ParameterVersionNotFound"},
        {"shape":"ParameterVersionLabelLimitExceeded"}
      ],
      "documentation":"<p>A parameter label is a user-defined alias to help you manage different versions of a parameter. When you modify a parameter, Systems Manager automatically saves a new version and increments the version number by one. A label can help you remember the purpose of a parameter when there are multiple versions. </p> <p>Parameter labels have the following requirements and restrictions.</p> <ul> <li> <p>A version of a parameter can have a maximum of 10 labels.</p> </li> <li> <p>You can't attach the same label to different versions of the same parameter. For example, if version 1 has the label Production, then you can't attach Production to version 2.</p> </li> <li> <p>You can move a label from one version of a parameter to another.</p> </li> <li> <p>You can't create a label when you create a new parameter. You must attach a label to a specific version of a parameter.</p> </li> <li> <p>You can't delete a parameter label. If you no longer want to use a parameter label, then you must move it to a different version of a parameter.</p> </li> <li> <p>A label can have a maximum of 100 characters.</p> </li> <li> <p>Labels can contain letters (case sensitive), numbers, periods (.), hyphens (-), or underscores (_).</p> </li> <li> <p>Labels can't begin with a number, \"aws,\" or \"ssm\" (not case sensitive). If a label fails to meet these requirements, then the label is not associated with a parameter and the system displays it in the list of InvalidLabels.</p> </li> </ul>"
    },
    "ListAssociationVersions":{
      "name":"ListAssociationVersions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListAssociationVersionsRequest"},
      "output":{"shape":"ListAssociationVersionsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"},
        {"shape":"AssociationDoesNotExist"}
      ],
      "documentation":"<p>Retrieves all versions of an association for a specific association ID.</p>"
    },
    "ListAssociations":{
      "name":"ListAssociations",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListAssociationsRequest"},
      "output":{"shape":"ListAssociationsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Lists the associations for the specified Systems Manager document or instance.</p>"
    },
    "ListCommandInvocations":{
      "name":"ListCommandInvocations",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListCommandInvocationsRequest"},
      "output":{"shape":"ListCommandInvocationsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidCommandId"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.</p>"
    },
    "ListCommands":{
      "name":"ListCommands",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListCommandsRequest"},
      "output":{"shape":"ListCommandsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidCommandId"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidFilterKey"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Lists the commands requested by users of the AWS account.</p>"
    },
    "ListComplianceItems":{
      "name":"ListComplianceItems",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListComplianceItemsRequest"},
      "output":{"shape":"ListComplianceItemsResult"},
      "errors":[
        {"shape":"InvalidResourceType"},
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter. </p>"
    },
    "ListComplianceSummaries":{
      "name":"ListComplianceSummaries",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListComplianceSummariesRequest"},
      "output":{"shape":"ListComplianceSummariesResult"},
      "errors":[
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify. </p>"
    },
    "ListDocumentVersions":{
      "name":"ListDocumentVersions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListDocumentVersionsRequest"},
      "output":{"shape":"ListDocumentVersionsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidDocument"}
      ],
      "documentation":"<p>List all versions for a document.</p>"
    },
    "ListDocuments":{
      "name":"ListDocuments",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListDocumentsRequest"},
      "output":{"shape":"ListDocumentsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"},
        {"shape":"InvalidFilterKey"}
      ],
      "documentation":"<p>Describes one or more of your Systems Manager documents.</p>"
    },
    "ListInventoryEntries":{
      "name":"ListInventoryEntries",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListInventoryEntriesRequest"},
      "output":{"shape":"ListInventoryEntriesResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidTypeNameException"},
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>A list of inventory items returned by the request.</p>"
    },
    "ListResourceComplianceSummaries":{
      "name":"ListResourceComplianceSummaries",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListResourceComplianceSummariesRequest"},
      "output":{"shape":"ListResourceComplianceSummariesResult"},
      "errors":[
        {"shape":"InvalidFilter"},
        {"shape":"InvalidNextToken"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.</p>"
    },
    "ListResourceDataSync":{
      "name":"ListResourceDataSync",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListResourceDataSyncRequest"},
      "output":{"shape":"ListResourceDataSyncResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidNextToken"}
      ],
      "documentation":"<p>Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed.</p> <p>The number of sync configurations might be too large to return using a single call to <code>ListResourceDataSync</code>. You can limit the number of sync configurations returned by using the <code>MaxResults</code> parameter. To determine whether there are more sync configurations to list, check the value of <code>NextToken</code> in the output. If there are more sync configurations to list, you can request them by specifying the <code>NextToken</code> returned in the call to the parameter of a subsequent call. </p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResult"},
      "errors":[
        {"shape":"InvalidResourceType"},
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Returns a list of the tags assigned to the specified resource.</p>"
    },
    "ModifyDocumentPermission":{
      "name":"ModifyDocumentPermission",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyDocumentPermissionRequest"},
      "output":{"shape":"ModifyDocumentPermissionResponse"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidPermissionType"},
        {"shape":"DocumentPermissionLimit"},
        {"shape":"DocumentLimitExceeded"}
      ],
      "documentation":"<p>Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify <i>All</i> as the account ID.</p>"
    },
    "PutComplianceItems":{
      "name":"PutComplianceItems",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"PutComplianceItemsRequest"},
      "output":{"shape":"PutComplianceItemsResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidItemContentException"},
        {"shape":"TotalSizeLimitExceededException"},
        {"shape":"ItemSizeLimitExceededException"},
        {"shape":"ComplianceTypeCountLimitExceededException"},
        {"shape":"InvalidResourceType"},
        {"shape":"InvalidResourceId"}
      ],
      "documentation":"<p>Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.</p> <p>ComplianceType can be one of the following:</p> <ul> <li> <p>ExecutionId: The execution ID when the patch, association, or custom compliance item was applied.</p> </li> <li> <p>ExecutionType: Specify patch, association, or Custom:<code>string</code>.</p> </li> <li> <p>ExecutionTime. The time the patch, association, or custom compliance item was applied to the instance.</p> </li> <li> <p>Id: The patch, association, or custom compliance ID.</p> </li> <li> <p>Title: A title.</p> </li> <li> <p>Status: The status of the compliance item. For example, <code>approved</code> for patches, or <code>Failed</code> for associations.</p> </li> <li> <p>Severity: A patch severity. For example, <code>critical</code>.</p> </li> <li> <p>DocumentName: A SSM document name. For example, AWS-RunPatchBaseline.</p> </li> <li> <p>DocumentVersion: An SSM document version number. For example, 4.</p> </li> <li> <p>Classification: A patch classification. For example, <code>security updates</code>.</p> </li> <li> <p>PatchBaselineId: A patch baseline ID.</p> </li> <li> <p>PatchSeverity: A patch severity. For example, <code>Critical</code>.</p> </li> <li> <p>PatchState: A patch state. For example, <code>InstancesWithFailedPatches</code>.</p> </li> <li> <p>PatchGroup: The name of a patch group.</p> </li> <li> <p>InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z'</p> </li> </ul>"
    },
    "PutInventory":{
      "name":"PutInventory",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"PutInventoryRequest"},
      "output":{"shape":"PutInventoryResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidTypeNameException"},
        {"shape":"InvalidItemContentException"},
        {"shape":"TotalSizeLimitExceededException"},
        {"shape":"ItemSizeLimitExceededException"},
        {"shape":"ItemContentMismatchException"},
        {"shape":"CustomSchemaCountLimitExceededException"},
        {"shape":"UnsupportedInventorySchemaVersionException"},
        {"shape":"UnsupportedInventoryItemContextException"},
        {"shape":"InvalidInventoryItemContextException"},
        {"shape":"SubTypeCountLimitExceededException"}
      ],
      "documentation":"<p>Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.</p>"
    },
    "PutParameter":{
      "name":"PutParameter",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"PutParameterRequest"},
      "output":{"shape":"PutParameterResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidKeyId"},
        {"shape":"ParameterLimitExceeded"},
        {"shape":"TooManyUpdates"},
        {"shape":"ParameterAlreadyExists"},
        {"shape":"HierarchyLevelLimitExceededException"},
        {"shape":"HierarchyTypeMismatchException"},
        {"shape":"InvalidAllowedPatternException"},
        {"shape":"ParameterMaxVersionLimitExceeded"},
        {"shape":"ParameterPatternMismatchException"},
        {"shape":"UnsupportedParameterType"}
      ],
      "documentation":"<p>Add a parameter to the system.</p>"
    },
    "RegisterDefaultPatchBaseline":{
      "name":"RegisterDefaultPatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RegisterDefaultPatchBaselineRequest"},
      "output":{"shape":"RegisterDefaultPatchBaselineResult"},
      "errors":[
        {"shape":"InvalidResourceId"},
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Defines the default patch baseline.</p>"
    },
    "RegisterPatchBaselineForPatchGroup":{
      "name":"RegisterPatchBaselineForPatchGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RegisterPatchBaselineForPatchGroupRequest"},
      "output":{"shape":"RegisterPatchBaselineForPatchGroupResult"},
      "errors":[
        {"shape":"AlreadyExistsException"},
        {"shape":"DoesNotExistException"},
        {"shape":"InvalidResourceId"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Registers a patch baseline for a patch group.</p>"
    },
    "RegisterTargetWithMaintenanceWindow":{
      "name":"RegisterTargetWithMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RegisterTargetWithMaintenanceWindowRequest"},
      "output":{"shape":"RegisterTargetWithMaintenanceWindowResult"},
      "errors":[
        {"shape":"IdempotentParameterMismatch"},
        {"shape":"DoesNotExistException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Registers a target with a Maintenance Window.</p>"
    },
    "RegisterTaskWithMaintenanceWindow":{
      "name":"RegisterTaskWithMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RegisterTaskWithMaintenanceWindowRequest"},
      "output":{"shape":"RegisterTaskWithMaintenanceWindowResult"},
      "errors":[
        {"shape":"IdempotentParameterMismatch"},
        {"shape":"DoesNotExistException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"FeatureNotAvailableException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Adds a new task to a Maintenance Window.</p>"
    },
    "RemoveTagsFromResource":{
      "name":"RemoveTagsFromResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RemoveTagsFromResourceRequest"},
      "output":{"shape":"RemoveTagsFromResourceResult"},
      "errors":[
        {"shape":"InvalidResourceType"},
        {"shape":"InvalidResourceId"},
        {"shape":"InternalServerError"},
        {"shape":"TooManyUpdates"}
      ],
      "documentation":"<p>Removes all tags from the specified resource.</p>"
    },
    "ResumeSession":{
      "name":"ResumeSession",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ResumeSessionRequest"},
      "output":{"shape":"ResumeSessionResponse"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Reconnects a session to an instance after it has been disconnected. Connections can be resumed for disconnected sessions, but not terminated sessions.</p> <note> <p>This command is primarily for use by client machines to automatically reconnect during intermittent network issues. It is not intended for any other use.</p> </note>"
    },
    "SendAutomationSignal":{
      "name":"SendAutomationSignal",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"SendAutomationSignalRequest"},
      "output":{"shape":"SendAutomationSignalResult"},
      "errors":[
        {"shape":"AutomationExecutionNotFoundException"},
        {"shape":"AutomationStepNotFoundException"},
        {"shape":"InvalidAutomationSignalException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Sends a signal to an Automation execution to change the current behavior or status of the execution. </p>"
    },
    "SendCommand":{
      "name":"SendCommand",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"SendCommandRequest"},
      "output":{"shape":"SendCommandResult"},
      "errors":[
        {"shape":"DuplicateInstanceId"},
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"InvalidOutputFolder"},
        {"shape":"InvalidParameters"},
        {"shape":"UnsupportedPlatformType"},
        {"shape":"MaxDocumentSizeExceeded"},
        {"shape":"InvalidRole"},
        {"shape":"InvalidNotificationConfig"}
      ],
      "documentation":"<p>Executes commands on one or more managed instances.</p>"
    },
    "StartAssociationsOnce":{
      "name":"StartAssociationsOnce",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"StartAssociationsOnceRequest"},
      "output":{"shape":"StartAssociationsOnceResult"},
      "errors":[
        {"shape":"InvalidAssociation"},
        {"shape":"AssociationDoesNotExist"}
      ],
      "documentation":"<p>Use this API action to execute an association immediately and only one time. This action can be helpful when troubleshooting associations.</p>"
    },
    "StartAutomationExecution":{
      "name":"StartAutomationExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"StartAutomationExecutionRequest"},
      "output":{"shape":"StartAutomationExecutionResult"},
      "errors":[
        {"shape":"AutomationDefinitionNotFoundException"},
        {"shape":"InvalidAutomationExecutionParametersException"},
        {"shape":"AutomationExecutionLimitExceededException"},
        {"shape":"AutomationDefinitionVersionNotFoundException"},
        {"shape":"IdempotentParameterMismatch"},
        {"shape":"InvalidTarget"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Initiates execution of an Automation document.</p>"
    },
    "StartSession":{
      "name":"StartSession",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"StartSessionRequest"},
      "output":{"shape":"StartSessionResponse"},
      "errors":[
        {"shape":"InvalidDocument"},
        {"shape":"TargetNotConnected"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Initiates a connection to a target (for example, an instance) for a Session Manager session. Returns a URL and token that can be used to open a WebSocket connection for sending input and receiving outputs.</p> <note> <p>AWS CLI usage: <code>start-session</code> is an interactive command that requires the Session Manager plugin to be installed on the client machine making the call. For information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html\"> Install the Session Manager Plugin for the AWS CLI</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note>"
    },
    "StopAutomationExecution":{
      "name":"StopAutomationExecution",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"StopAutomationExecutionRequest"},
      "output":{"shape":"StopAutomationExecutionResult"},
      "errors":[
        {"shape":"AutomationExecutionNotFoundException"},
        {"shape":"InvalidAutomationStatusUpdateException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Stop an Automation that is currently executing.</p>"
    },
    "TerminateSession":{
      "name":"TerminateSession",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"TerminateSessionRequest"},
      "output":{"shape":"TerminateSessionResponse"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Permanently ends a session and closes the data connection between the Session Manager client and SSM Agent on the instance. A terminated session cannot be resumed.</p>"
    },
    "UpdateAssociation":{
      "name":"UpdateAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateAssociationRequest"},
      "output":{"shape":"UpdateAssociationResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidSchedule"},
        {"shape":"InvalidParameters"},
        {"shape":"InvalidOutputLocation"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"AssociationDoesNotExist"},
        {"shape":"InvalidUpdate"},
        {"shape":"TooManyUpdates"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidTarget"},
        {"shape":"InvalidAssociationVersion"},
        {"shape":"AssociationVersionLimitExceeded"}
      ],
      "documentation":"<p>Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output.</p>"
    },
    "UpdateAssociationStatus":{
      "name":"UpdateAssociationStatus",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateAssociationStatusRequest"},
      "output":{"shape":"UpdateAssociationStatusResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidInstanceId"},
        {"shape":"InvalidDocument"},
        {"shape":"AssociationDoesNotExist"},
        {"shape":"StatusUnchanged"},
        {"shape":"TooManyUpdates"}
      ],
      "documentation":"<p>Updates the status of the Systems Manager document associated with the specified instance.</p>"
    },
    "UpdateDocument":{
      "name":"UpdateDocument",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateDocumentRequest"},
      "output":{"shape":"UpdateDocumentResult"},
      "errors":[
        {"shape":"MaxDocumentSizeExceeded"},
        {"shape":"DocumentVersionLimitExceeded"},
        {"shape":"InternalServerError"},
        {"shape":"DuplicateDocumentContent"},
        {"shape":"DuplicateDocumentVersionName"},
        {"shape":"InvalidDocumentContent"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"InvalidDocumentSchemaVersion"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentOperation"}
      ],
      "documentation":"<p>The document you want to update.</p>"
    },
    "UpdateDocumentDefaultVersion":{
      "name":"UpdateDocumentDefaultVersion",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateDocumentDefaultVersionRequest"},
      "output":{"shape":"UpdateDocumentDefaultVersionResult"},
      "errors":[
        {"shape":"InternalServerError"},
        {"shape":"InvalidDocument"},
        {"shape":"InvalidDocumentVersion"},
        {"shape":"InvalidDocumentSchemaVersion"}
      ],
      "documentation":"<p>Set the default version of a document. </p>"
    },
    "UpdateMaintenanceWindow":{
      "name":"UpdateMaintenanceWindow",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateMaintenanceWindowRequest"},
      "output":{"shape":"UpdateMaintenanceWindowResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Updates an existing Maintenance Window. Only specified parameters are modified.</p>"
    },
    "UpdateMaintenanceWindowTarget":{
      "name":"UpdateMaintenanceWindowTarget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateMaintenanceWindowTargetRequest"},
      "output":{"shape":"UpdateMaintenanceWindowTargetResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Modifies the target of an existing Maintenance Window. You can't change the target type, but you can change the following:</p> <p>The target from being an ID target to a Tag target, or a Tag target to an ID target.</p> <p>IDs for an ID target.</p> <p>Tags for a Tag target.</p> <p>Owner.</p> <p>Name.</p> <p>Description.</p> <p>If a parameter is null, then the corresponding field is not modified.</p>"
    },
    "UpdateMaintenanceWindowTask":{
      "name":"UpdateMaintenanceWindowTask",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateMaintenanceWindowTaskRequest"},
      "output":{"shape":"UpdateMaintenanceWindowTaskResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Modifies a task assigned to a Maintenance Window. You can't change the task type, but you can change the following values:</p> <ul> <li> <p>TaskARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript.</p> </li> <li> <p>ServiceRoleArn</p> </li> <li> <p>TaskInvocationParameters</p> </li> <li> <p>Priority</p> </li> <li> <p>MaxConcurrency</p> </li> <li> <p>MaxErrors</p> </li> </ul> <p>If a parameter is null, then the corresponding field is not modified. Also, if you set Replace to true, then all fields required by the <a>RegisterTaskWithMaintenanceWindow</a> action are required for this request. Optional fields that aren't specified are set to null.</p>"
    },
    "UpdateManagedInstanceRole":{
      "name":"UpdateManagedInstanceRole",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateManagedInstanceRoleRequest"},
      "output":{"shape":"UpdateManagedInstanceRoleResult"},
      "errors":[
        {"shape":"InvalidInstanceId"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Assigns or changes an Amazon Identity and Access Management (IAM) role to the managed instance.</p>"
    },
    "UpdatePatchBaseline":{
      "name":"UpdatePatchBaseline",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdatePatchBaselineRequest"},
      "output":{"shape":"UpdatePatchBaselineResult"},
      "errors":[
        {"shape":"DoesNotExistException"},
        {"shape":"InternalServerError"}
      ],
      "documentation":"<p>Modifies an existing patch baseline. Fields not specified in the request are left unchanged.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html\">PatchFilter</a>.</p> </note>"
    }
  },
  "shapes":{
    "Account":{"type":"string"},
    "AccountId":{
      "type":"string",
      "pattern":"(?i)all|[0-9]{12}"
    },
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"AccountId"},
      "max":20
    },
    "Accounts":{
      "type":"list",
      "member":{"shape":"Account"},
      "max":50,
      "min":1
    },
    "Activation":{
      "type":"structure",
      "members":{
        "ActivationId":{
          "shape":"ActivationId",
          "documentation":"<p>The ID created by Systems Manager when you submitted the activation.</p>"
        },
        "Description":{
          "shape":"ActivationDescription",
          "documentation":"<p>A user defined description of the activation.</p>"
        },
        "DefaultInstanceName":{
          "shape":"DefaultInstanceName",
          "documentation":"<p>A name for the managed instance when it is created.</p>"
        },
        "IamRole":{
          "shape":"IamRole",
          "documentation":"<p>The Amazon Identity and Access Management (IAM) role to assign to the managed instance.</p>"
        },
        "RegistrationLimit":{
          "shape":"RegistrationLimit",
          "documentation":"<p>The maximum number of managed instances that can be registered using this activation.</p>"
        },
        "RegistrationsCount":{
          "shape":"RegistrationsCount",
          "documentation":"<p>The number of managed instances already registered with this activation.</p>"
        },
        "ExpirationDate":{
          "shape":"ExpirationDate",
          "documentation":"<p>The date when this activation can no longer be used to register managed instances.</p>"
        },
        "Expired":{
          "shape":"Boolean",
          "documentation":"<p>Whether or not the activation is expired.</p>"
        },
        "CreatedDate":{
          "shape":"CreatedDate",
          "documentation":"<p>The date the activation was created.</p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Tags assigned to the activation.</p>"
        }
      },
      "documentation":"<p>An activation registers one or more on-premises servers or virtual machines (VMs) with AWS so that you can configure those servers or VMs using Run Command. A server or VM that has been registered with AWS is called a managed instance.</p>"
    },
    "ActivationCode":{
      "type":"string",
      "max":250,
      "min":20
    },
    "ActivationDescription":{
      "type":"string",
      "max":256,
      "min":0
    },
    "ActivationId":{
      "type":"string",
      "pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "ActivationList":{
      "type":"list",
      "member":{"shape":"Activation"}
    },
    "AddTagsToResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceType",
        "ResourceId",
        "Tags"
      ],
      "members":{
        "ResourceType":{
          "shape":"ResourceTypeForTagging",
          "documentation":"<p>Specifies the type of resource you are tagging.</p> <note> <p>The ManagedInstance type for this API action is for on-premises managed instances. You must specify the the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note>"
        },
        "ResourceId":{
          "shape":"ResourceId",
          "documentation":"<p>The resource ID you want to tag.</p> <p>Use the ID of the resource. Here are some examples:</p> <p>ManagedInstance: mi-012345abcde</p> <p>MaintenanceWindow: mw-012345abcde</p> <p>PatchBaseline: pb-012345abcde</p> <p>For the Document and Parameter values, use the name of the resource.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. You must specify the the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p> One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string. </p> <important> <p>Do not enter personally identifiable information in this field.</p> </important>"
        }
      }
    },
    "AddTagsToResourceResult":{
      "type":"structure",
      "members":{
      }
    },
    "AgentErrorCode":{
      "type":"string",
      "max":10
    },
    "AggregatorSchemaOnly":{"type":"boolean"},
    "AllowedPattern":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "AlreadyExistsException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Error returned if an attempt is made to register a patch group with a patch baseline that is already registered with a different patch baseline.</p>",
      "exception":true
    },
    "ApproveAfterDays":{
      "type":"integer",
      "max":100,
      "min":0
    },
    "AssociatedInstances":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>You must disassociate a document from all instances before you can delete it.</p>",
      "exception":true
    },
    "Association":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance.</p>"
        },
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The ID created by the system when you create an association. An association is a binding between a document and a set of targets with a schedule.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The association version.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of the document used in the association.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The instances targeted by the request to create an association. </p>"
        },
        "LastExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date on which the association was last run.</p>"
        },
        "Overview":{
          "shape":"AssociationOverview",
          "documentation":"<p>Information about the association.</p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>A cron expression that specifies a schedule when the association runs.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>The association name.</p>"
        }
      },
      "documentation":"<p>Describes an association of a Systems Manager document and an instance.</p>"
    },
    "AssociationAlreadyExists":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The specified association already exists.</p>",
      "exception":true
    },
    "AssociationComplianceSeverity":{
      "type":"string",
      "enum":[
        "CRITICAL",
        "HIGH",
        "MEDIUM",
        "LOW",
        "UNSPECIFIED"
      ]
    },
    "AssociationDescription":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The association version.</p>"
        },
        "Date":{
          "shape":"DateTime",
          "documentation":"<p>The date when the association was made.</p>"
        },
        "LastUpdateAssociationDate":{
          "shape":"DateTime",
          "documentation":"<p>The date when the association was last updated.</p>"
        },
        "Status":{
          "shape":"AssociationStatus",
          "documentation":"<p>The association status.</p>"
        },
        "Overview":{
          "shape":"AssociationOverview",
          "documentation":"<p>Information about the association.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "AutomationTargetParameterName":{
          "shape":"AutomationTargetParameterName",
          "documentation":"<p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>A description of the parameters for a document. </p>"
        },
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The instances targeted by the request. </p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>A cron expression that specifies a schedule when the association runs.</p>"
        },
        "OutputLocation":{
          "shape":"InstanceAssociationOutputLocation",
          "documentation":"<p>An Amazon S3 bucket where you want to store the output details of the request.</p>"
        },
        "LastExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date on which the association was last run.</p>"
        },
        "LastSuccessfulExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The last date on which the association was successfully run.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>The association name.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to execute an association while Systems Manager is executing MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>"
        },
        "ComplianceSeverity":{
          "shape":"AssociationComplianceSeverity",
          "documentation":"<p>The severity level that is assigned to the association.</p>"
        }
      },
      "documentation":"<p>Describes the parameters for a document.</p>"
    },
    "AssociationDescriptionList":{
      "type":"list",
      "member":{"shape":"AssociationDescription"}
    },
    "AssociationDoesNotExist":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified association does not exist.</p>",
      "exception":true
    },
    "AssociationExecution":{
      "type":"structure",
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The association version.</p>"
        },
        "ExecutionId":{
          "shape":"AssociationExecutionId",
          "documentation":"<p>The execution ID for the association. If the association does not run at intervals or according to a schedule, then the ExecutionID is the same as the AssociationID.</p>"
        },
        "Status":{
          "shape":"StatusName",
          "documentation":"<p>The status of the association execution.</p>"
        },
        "DetailedStatus":{
          "shape":"StatusName",
          "documentation":"<p>Detailed status information about the execution.</p>"
        },
        "CreatedTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution started.</p>"
        },
        "LastExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date of the last execution.</p>"
        },
        "ResourceCountByStatus":{
          "shape":"ResourceCountByStatus",
          "documentation":"<p>An aggregate status of the resources in the execution based on the status type.</p>"
        }
      },
      "documentation":"<p>Includes information about the specified association.</p>"
    },
    "AssociationExecutionDoesNotExist":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified execution ID does not exist. Verify the ID number and try again.</p>",
      "exception":true
    },
    "AssociationExecutionFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Value",
        "Type"
      ],
      "members":{
        "Key":{
          "shape":"AssociationExecutionFilterKey",
          "documentation":"<p>The key value used in the request.</p>"
        },
        "Value":{
          "shape":"AssociationExecutionFilterValue",
          "documentation":"<p>The value specified for the key.</p>"
        },
        "Type":{
          "shape":"AssociationFilterOperatorType",
          "documentation":"<p>The filter type specified in the request.</p>"
        }
      },
      "documentation":"<p>Filters used in the request.</p>"
    },
    "AssociationExecutionFilterKey":{
      "type":"string",
      "enum":[
        "ExecutionId",
        "Status",
        "CreatedTime"
      ]
    },
    "AssociationExecutionFilterList":{
      "type":"list",
      "member":{"shape":"AssociationExecutionFilter"},
      "min":1
    },
    "AssociationExecutionFilterValue":{
      "type":"string",
      "min":1
    },
    "AssociationExecutionId":{
      "type":"string",
      "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "AssociationExecutionTarget":{
      "type":"structure",
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The association version.</p>"
        },
        "ExecutionId":{
          "shape":"AssociationExecutionId",
          "documentation":"<p>The execution ID. If the association does not run at intervals or according to a schedule, then the ExecutionID is the same as the AssociationID.</p>"
        },
        "ResourceId":{
          "shape":"AssociationResourceId",
          "documentation":"<p>The resource ID, for example, the instance ID where the association ran.</p>"
        },
        "ResourceType":{
          "shape":"AssociationResourceType",
          "documentation":"<p>The resource type, for example, instance.</p>"
        },
        "Status":{
          "shape":"StatusName",
          "documentation":"<p>The association execution status.</p>"
        },
        "DetailedStatus":{
          "shape":"StatusName",
          "documentation":"<p>Detailed information about the execution status.</p>"
        },
        "LastExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date of the last execution.</p>"
        },
        "OutputSource":{
          "shape":"OutputSource",
          "documentation":"<p>The location where the association details are saved.</p>"
        }
      },
      "documentation":"<p>Includes information about the specified association execution.</p>"
    },
    "AssociationExecutionTargetsFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Value"
      ],
      "members":{
        "Key":{
          "shape":"AssociationExecutionTargetsFilterKey",
          "documentation":"<p>The key value used in the request.</p>"
        },
        "Value":{
          "shape":"AssociationExecutionTargetsFilterValue",
          "documentation":"<p>The value specified for the key.</p>"
        }
      },
      "documentation":"<p>Filters for the association execution.</p>"
    },
    "AssociationExecutionTargetsFilterKey":{
      "type":"string",
      "enum":[
        "Status",
        "ResourceId",
        "ResourceType"
      ]
    },
    "AssociationExecutionTargetsFilterList":{
      "type":"list",
      "member":{"shape":"AssociationExecutionTargetsFilter"},
      "min":1
    },
    "AssociationExecutionTargetsFilterValue":{
      "type":"string",
      "min":1
    },
    "AssociationExecutionTargetsList":{
      "type":"list",
      "member":{"shape":"AssociationExecutionTarget"}
    },
    "AssociationExecutionsList":{
      "type":"list",
      "member":{"shape":"AssociationExecution"}
    },
    "AssociationFilter":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"AssociationFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "value":{
          "shape":"AssociationFilterValue",
          "documentation":"<p>The filter value.</p>"
        }
      },
      "documentation":"<p>Describes a filter.</p>"
    },
    "AssociationFilterKey":{
      "type":"string",
      "enum":[
        "InstanceId",
        "Name",
        "AssociationId",
        "AssociationStatusName",
        "LastExecutedBefore",
        "LastExecutedAfter",
        "AssociationName"
      ]
    },
    "AssociationFilterList":{
      "type":"list",
      "member":{"shape":"AssociationFilter"},
      "min":1
    },
    "AssociationFilterOperatorType":{
      "type":"string",
      "enum":[
        "EQUAL",
        "LESS_THAN",
        "GREATER_THAN"
      ]
    },
    "AssociationFilterValue":{
      "type":"string",
      "min":1
    },
    "AssociationId":{
      "type":"string",
      "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "AssociationIdList":{
      "type":"list",
      "member":{"shape":"AssociationId"},
      "max":10,
      "min":1
    },
    "AssociationLimitExceeded":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>You can have at most 2,000 active associations.</p>",
      "exception":true
    },
    "AssociationList":{
      "type":"list",
      "member":{"shape":"Association"}
    },
    "AssociationName":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$"
    },
    "AssociationOverview":{
      "type":"structure",
      "members":{
        "Status":{
          "shape":"StatusName",
          "documentation":"<p>The status of the association. Status can be: Pending, Success, or Failed.</p>"
        },
        "DetailedStatus":{
          "shape":"StatusName",
          "documentation":"<p>A detailed status of the association.</p>"
        },
        "AssociationStatusAggregatedCount":{
          "shape":"AssociationStatusAggregatedCount",
          "documentation":"<p>Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.</p>"
        }
      },
      "documentation":"<p>Information about the association.</p>"
    },
    "AssociationResourceId":{
      "type":"string",
      "max":100,
      "min":1
    },
    "AssociationResourceType":{
      "type":"string",
      "max":50,
      "min":1
    },
    "AssociationStatus":{
      "type":"structure",
      "required":[
        "Date",
        "Name",
        "Message"
      ],
      "members":{
        "Date":{
          "shape":"DateTime",
          "documentation":"<p>The date when the status changed.</p>"
        },
        "Name":{
          "shape":"AssociationStatusName",
          "documentation":"<p>The status.</p>"
        },
        "Message":{
          "shape":"StatusMessage",
          "documentation":"<p>The reason for the status.</p>"
        },
        "AdditionalInfo":{
          "shape":"StatusAdditionalInfo",
          "documentation":"<p>A user-defined string.</p>"
        }
      },
      "documentation":"<p>Describes an association status.</p>"
    },
    "AssociationStatusAggregatedCount":{
      "type":"map",
      "key":{"shape":"StatusName"},
      "value":{"shape":"InstanceCount"}
    },
    "AssociationStatusName":{
      "type":"string",
      "enum":[
        "Pending",
        "Success",
        "Failed"
      ]
    },
    "AssociationVersion":{
      "type":"string",
      "pattern":"([$]LATEST)|([1-9][0-9]*)"
    },
    "AssociationVersionInfo":{
      "type":"structure",
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The ID created by the system when the association was created.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The association version.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the association version was created.</p>"
        },
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name specified when the association was created.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of a Systems Manager document used when the association version was created.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>Parameters specified when the association version was created.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets specified for the association when the association version was created. </p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>The cron or rate schedule specified for the association when the association version was created.</p>"
        },
        "OutputLocation":{
          "shape":"InstanceAssociationOutputLocation",
          "documentation":"<p>The location in Amazon S3 specified for the association when the association version was created.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>The name specified for the association version when the association version was created.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to execute an association while Systems Manager is executing MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>"
        },
        "ComplianceSeverity":{
          "shape":"AssociationComplianceSeverity",
          "documentation":"<p>The severity level that is assigned to the association.</p>"
        }
      },
      "documentation":"<p>Information about the association version.</p>"
    },
    "AssociationVersionLimitExceeded":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You have reached the maximum number versions allowed for an association. Each association has a limit of 1,000 versions. </p>",
      "exception":true
    },
    "AssociationVersionList":{
      "type":"list",
      "member":{"shape":"AssociationVersionInfo"},
      "min":1
    },
    "AttachmentContent":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"AttachmentName",
          "documentation":"<p>The name of an attachment.</p>"
        },
        "Size":{
          "shape":"ContentLength",
          "documentation":"<p>The size of an attachment in bytes.</p>"
        },
        "Hash":{
          "shape":"AttachmentHash",
          "documentation":"<p>The cryptographic hash value of the document content.</p>"
        },
        "HashType":{
          "shape":"AttachmentHashType",
          "documentation":"<p>The hash algorithm used to calculate the hash value.</p>"
        },
        "Url":{
          "shape":"AttachmentUrl",
          "documentation":"<p>The URL location of the attachment content.</p>"
        }
      },
      "documentation":"<p>A structure that includes attributes that describe a document attachment.</p>"
    },
    "AttachmentContentList":{
      "type":"list",
      "member":{"shape":"AttachmentContent"}
    },
    "AttachmentHash":{
      "type":"string",
      "max":256
    },
    "AttachmentHashType":{
      "type":"string",
      "enum":["Sha256"]
    },
    "AttachmentInformation":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"AttachmentName",
          "documentation":"<p>The name of the attachment.</p>"
        }
      },
      "documentation":"<p>An attribute of an attachment, such as the attachment name.</p>"
    },
    "AttachmentInformationList":{
      "type":"list",
      "member":{"shape":"AttachmentInformation"}
    },
    "AttachmentName":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$"
    },
    "AttachmentUrl":{"type":"string"},
    "AttachmentsSource":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"AttachmentsSourceKey",
          "documentation":"<p>The key of a key and value pair that identifies the location of an attachment to a document.</p>"
        },
        "Values":{
          "shape":"AttachmentsSourceValues",
          "documentation":"<p>The URL of the location of a document attachment, such as the URL of an Amazon S3 bucket.</p>"
        }
      },
      "documentation":"<p>A key and value pair that identifies the location of an attachment to a document.</p>"
    },
    "AttachmentsSourceKey":{
      "type":"string",
      "enum":["SourceUrl"]
    },
    "AttachmentsSourceList":{
      "type":"list",
      "member":{"shape":"AttachmentsSource"},
      "max":1,
      "min":0
    },
    "AttachmentsSourceValue":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "AttachmentsSourceValues":{
      "type":"list",
      "member":{"shape":"AttachmentsSourceValue"},
      "max":1,
      "min":1
    },
    "AttributeName":{
      "type":"string",
      "max":64,
      "min":1
    },
    "AttributeValue":{
      "type":"string",
      "max":4096,
      "min":0
    },
    "AutomationActionName":{
      "type":"string",
      "pattern":"^aws:[a-zA-Z]{3,25}$"
    },
    "AutomationDefinitionNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>An Automation document with the specified name could not be found.</p>",
      "exception":true
    },
    "AutomationDefinitionVersionNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>An Automation document with the specified name and version could not be found.</p>",
      "exception":true
    },
    "AutomationExecution":{
      "type":"structure",
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The execution ID.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Automation document used during the execution.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of the document to use during execution.</p>"
        },
        "ExecutionStartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution started.</p>"
        },
        "ExecutionEndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution finished.</p>"
        },
        "AutomationExecutionStatus":{
          "shape":"AutomationExecutionStatus",
          "documentation":"<p>The execution status of the Automation.</p>"
        },
        "StepExecutions":{
          "shape":"StepExecutionList",
          "documentation":"<p>A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are executed in order.</p>"
        },
        "StepExecutionsTruncated":{
          "shape":"Boolean",
          "documentation":"<p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions.</p>"
        },
        "Parameters":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>The key-value map of execution parameters, which were supplied when calling StartAutomationExecution.</p>"
        },
        "Outputs":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>The list of execution outputs as defined in the automation document.</p>"
        },
        "FailureMessage":{
          "shape":"String",
          "documentation":"<p>A message describing why an execution has failed, if the status is set to Failed.</p>"
        },
        "Mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The automation execution mode.</p>"
        },
        "ParentAutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The AutomationExecutionId of the parent automation.</p>"
        },
        "ExecutedBy":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the user who executed the automation.</p>"
        },
        "CurrentStepName":{
          "shape":"String",
          "documentation":"<p>The name of the currently executing step.</p>"
        },
        "CurrentAction":{
          "shape":"String",
          "documentation":"<p>The action of the currently executing step.</p>"
        },
        "TargetParameterName":{
          "shape":"AutomationParameterKey",
          "documentation":"<p>The parameter name.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The specified targets.</p>"
        },
        "TargetMaps":{
          "shape":"TargetMaps",
          "documentation":"<p>The specified key-value mapping of document parameters to target resources.</p>"
        },
        "ResolvedTargets":{
          "shape":"ResolvedTargets",
          "documentation":"<p>A list of resolved targets in the rate control execution.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The MaxConcurrency value specified by the user when the execution started.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The MaxErrors value specified by the user when the execution started.</p>"
        },
        "Target":{
          "shape":"String",
          "documentation":"<p>The target of the execution.</p>"
        },
        "TargetLocations":{
          "shape":"TargetLocations",
          "documentation":"<p>The combination of AWS Regions and/or AWS accounts where you want to execute the Automation.</p>",
          "box":true
        },
        "ProgressCounters":{
          "shape":"ProgressCounters",
          "documentation":"<p>An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.</p>"
        }
      },
      "documentation":"<p>Detailed information about the current state of an individual Automation execution.</p>"
    },
    "AutomationExecutionFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"AutomationExecutionFilterKey",
          "documentation":"<p>One or more keys to limit the results. Valid filter keys include the following: DocumentNamePrefix, ExecutionStatus, ExecutionId, ParentExecutionId, CurrentAction, StartTimeBefore, StartTimeAfter.</p>"
        },
        "Values":{
          "shape":"AutomationExecutionFilterValueList",
          "documentation":"<p>The values used to limit the execution information associated with the filter's key.</p>"
        }
      },
      "documentation":"<p>A filter used to match specific automation executions. This is used to limit the scope of Automation execution information returned.</p>"
    },
    "AutomationExecutionFilterKey":{
      "type":"string",
      "enum":[
        "DocumentNamePrefix",
        "ExecutionStatus",
        "ExecutionId",
        "ParentExecutionId",
        "CurrentAction",
        "StartTimeBefore",
        "StartTimeAfter",
        "AutomationType"
      ]
    },
    "AutomationExecutionFilterList":{
      "type":"list",
      "member":{"shape":"AutomationExecutionFilter"},
      "max":10,
      "min":1
    },
    "AutomationExecutionFilterValue":{
      "type":"string",
      "max":150,
      "min":1
    },
    "AutomationExecutionFilterValueList":{
      "type":"list",
      "member":{"shape":"AutomationExecutionFilterValue"},
      "max":10,
      "min":1
    },
    "AutomationExecutionId":{
      "type":"string",
      "max":36,
      "min":36
    },
    "AutomationExecutionLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The number of simultaneously running Automation executions exceeded the allowable limit.</p>",
      "exception":true
    },
    "AutomationExecutionMetadata":{
      "type":"structure",
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The execution ID.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Automation document used during execution.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version used during the execution.</p>"
        },
        "AutomationExecutionStatus":{
          "shape":"AutomationExecutionStatus",
          "documentation":"<p>The status of the execution. Valid values include: Running, Succeeded, Failed, Timed out, or Cancelled.</p>"
        },
        "ExecutionStartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution started.&gt;</p>"
        },
        "ExecutionEndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution finished. This is not populated if the execution is still in progress.</p>"
        },
        "ExecutedBy":{
          "shape":"String",
          "documentation":"<p>The IAM role ARN of the user who executed the Automation.</p>"
        },
        "LogFile":{
          "shape":"String",
          "documentation":"<p>An Amazon S3 bucket where execution information is stored.</p>"
        },
        "Outputs":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>The list of execution outputs as defined in the Automation document.</p>"
        },
        "Mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The Automation execution mode.</p>"
        },
        "ParentAutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The ExecutionId of the parent Automation.</p>"
        },
        "CurrentStepName":{
          "shape":"String",
          "documentation":"<p>The name of the currently executing step.</p>"
        },
        "CurrentAction":{
          "shape":"String",
          "documentation":"<p>The action of the currently executing step.</p>"
        },
        "FailureMessage":{
          "shape":"String",
          "documentation":"<p>The list of execution outputs as defined in the Automation document.</p>"
        },
        "TargetParameterName":{
          "shape":"AutomationParameterKey",
          "documentation":"<p>The list of execution outputs as defined in the Automation document.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets defined by the user when starting the Automation.</p>"
        },
        "TargetMaps":{
          "shape":"TargetMaps",
          "documentation":"<p>The specified key-value mapping of document parameters to target resources.</p>"
        },
        "ResolvedTargets":{
          "shape":"ResolvedTargets",
          "documentation":"<p>A list of targets that resolved during the execution.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The MaxConcurrency value specified by the user when starting the Automation.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The MaxErrors value specified by the user when starting the Automation.</p>"
        },
        "Target":{
          "shape":"String",
          "documentation":"<p>The list of execution outputs as defined in the Automation document.</p>"
        },
        "AutomationType":{
          "shape":"AutomationType",
          "documentation":"<p>Use this filter with <a>DescribeAutomationExecutions</a>. Specify either Local or CrossAccount. CrossAccount is an Automation that executes in multiple AWS Regions and accounts. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html\">Concurrently Executing Automations in Multiple AWS Regions and Accounts</a> in the <i>AWS Systems Manager User Guide</i>. </p>"
        }
      },
      "documentation":"<p>Details about a specific Automation execution.</p>"
    },
    "AutomationExecutionMetadataList":{
      "type":"list",
      "member":{"shape":"AutomationExecutionMetadata"}
    },
    "AutomationExecutionNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>There is no automation execution information for the requested automation execution ID.</p>",
      "exception":true
    },
    "AutomationExecutionStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Waiting",
        "Success",
        "TimedOut",
        "Cancelling",
        "Cancelled",
        "Failed"
      ]
    },
    "AutomationParameterKey":{
      "type":"string",
      "max":30,
      "min":1
    },
    "AutomationParameterMap":{
      "type":"map",
      "key":{"shape":"AutomationParameterKey"},
      "value":{"shape":"AutomationParameterValueList"},
      "max":200,
      "min":1
    },
    "AutomationParameterValue":{
      "type":"string",
      "max":512,
      "min":1
    },
    "AutomationParameterValueList":{
      "type":"list",
      "member":{"shape":"AutomationParameterValue"},
      "max":10,
      "min":0
    },
    "AutomationStepNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified step name and execution ID don't exist. Verify the information and try again.</p>",
      "exception":true
    },
    "AutomationTargetParameterName":{
      "type":"string",
      "max":50,
      "min":1
    },
    "AutomationType":{
      "type":"string",
      "enum":[
        "CrossAccount",
        "Local"
      ]
    },
    "BaselineDescription":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "BaselineId":{
      "type":"string",
      "max":128,
      "min":20,
      "pattern":"^[a-zA-Z0-9_\\-:/]{20,128}$"
    },
    "BaselineName":{
      "type":"string",
      "max":128,
      "min":3,
      "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$"
    },
    "BatchErrorMessage":{"type":"string"},
    "Boolean":{"type":"boolean"},
    "CancelCommandRequest":{
      "type":"structure",
      "required":["CommandId"],
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>The ID of the command you want to cancel.</p>"
        },
        "InstanceIds":{
          "shape":"InstanceIdList",
          "documentation":"<p>(Optional) A list of instance IDs on which you want to cancel the command. If not provided, the command is canceled on every instance on which it was requested.</p>"
        }
      },
      "documentation":"<p/>"
    },
    "CancelCommandResult":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>Whether or not the command was successfully canceled. There is no guarantee that a request can be canceled.</p>"
    },
    "CancelMaintenanceWindowExecutionRequest":{
      "type":"structure",
      "required":["WindowExecutionId"],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution to stop.</p>"
        }
      }
    },
    "CancelMaintenanceWindowExecutionResult":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that has been stopped.</p>"
        }
      }
    },
    "ClientToken":{
      "type":"string",
      "max":64,
      "min":1
    },
    "CloudWatchLogGroupName":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"[\\.\\-_/#A-Za-z0-9]+"
    },
    "CloudWatchOutputConfig":{
      "type":"structure",
      "members":{
        "CloudWatchLogGroupName":{
          "shape":"CloudWatchLogGroupName",
          "documentation":"<p>The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/<i>SystemsManagerDocumentName</i>.</p>"
        },
        "CloudWatchOutputEnabled":{
          "shape":"CloudWatchOutputEnabled",
          "documentation":"<p>Enables Systems Manager to send command output to CloudWatch Logs.</p>"
        }
      },
      "documentation":"<p>Configuration options for sending command output to CloudWatch Logs.</p>"
    },
    "CloudWatchOutputEnabled":{"type":"boolean"},
    "Command":{
      "type":"structure",
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>A unique identifier for this command.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document requested for execution.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The SSM document version.</p>"
        },
        "Comment":{
          "shape":"Comment",
          "documentation":"<p>User-specified information about the command, such as a brief description of what the command should do.</p>"
        },
        "ExpiresAfter":{
          "shape":"DateTime",
          "documentation":"<p>If this time is reached and the command has not already started executing, it will not run. Calculated based on the ExpiresAfter user input provided as part of the SendCommand API.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>The parameter values to be inserted in the document when executing the command.</p>"
        },
        "InstanceIds":{
          "shape":"InstanceIdList",
          "documentation":"<p>The instance IDs against which this command was requested.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call.</p>"
        },
        "RequestedDateTime":{
          "shape":"DateTime",
          "documentation":"<p>The date and time the command was requested.</p>"
        },
        "Status":{
          "shape":"CommandStatus",
          "documentation":"<p>The status of the command.</p>"
        },
        "StatusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>A detailed status of the command execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html\">Understanding Command Statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to any instances.</p> </li> <li> <p>In Progress: The command has been sent to at least one instance but has not reached a final state on all instances.</p> </li> <li> <p>Success: The command successfully executed on all invocations. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p> </li> <li> <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p> </li> <li> <p>Incomplete: The command was attempted on all instances and one or more invocations does not have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Rate Exceeded: The number of instances targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before executing it on any instance. This is a terminal state.</p> </li> </ul>"
        },
        "OutputS3Region":{
          "shape":"S3Region",
          "documentation":"<p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon S3 bucket region.</p>"
        },
        "OutputS3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>"
        },
        "OutputS3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of instances that are allowed to execute the command at the same time. You can specify a number of instances, such as 10, or a percentage of instances, such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html\">Executing Commands Using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is 0. For more information about how to use MaxErrors, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html\">Executing Commands Using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "TargetCount":{
          "shape":"TargetCount",
          "documentation":"<p>The number of targets for the command.</p>"
        },
        "CompletedCount":{
          "shape":"CompletedCount",
          "documentation":"<p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Canceled, Terminated, or Undeliverable.</p>"
        },
        "ErrorCount":{
          "shape":"ErrorCount",
          "documentation":"<p>The number of targets for which the status is Failed or Execution Timed Out.</p>"
        },
        "DeliveryTimedOutCount":{
          "shape":"DeliveryTimedOutCount",
          "documentation":"<p>The number of targets for which the status is Delivery Timed Out.</p>"
        },
        "ServiceRole":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes. </p>"
        },
        "NotificationConfig":{
          "shape":"NotificationConfig",
          "documentation":"<p>Configurations for sending notifications about command status changes. </p>"
        },
        "CloudWatchOutputConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p>CloudWatch Logs information where you want Systems Manager to send the command output.</p>"
        }
      },
      "documentation":"<p>Describes a command request.</p>"
    },
    "CommandFilter":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"CommandFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "value":{
          "shape":"CommandFilterValue",
          "documentation":"<p>The filter value. Valid values for each filter key are as follows:</p> <ul> <li> <p> <b>InvokedAfter</b>: Specify a timestamp to limit your results. For example, specify <code>2018-07-07T00:00:00Z</code> to see a list of command executions occurring July 7, 2018, and later.</p> </li> <li> <p> <b>InvokedBefore</b>: Specify a timestamp to limit your results. For example, specify <code>2018-07-07T00:00:00Z</code> to see a list of command executions from before July 7, 2018.</p> </li> <li> <p> <b>Status</b>: Specify a valid command status to see a list of all command executions with that status. Status values you can specify include:</p> <ul> <li> <p> <code>Pending</code> </p> </li> <li> <p> <code>InProgress</code> </p> </li> <li> <p> <code>Success</code> </p> </li> <li> <p> <code>Cancelled</code> </p> </li> <li> <p> <code>Failed</code> </p> </li> <li> <p> <code>TimedOut</code> </p> </li> <li> <p> <code>Cancelling</code> </p> </li> </ul> </li> <li> <p> <b>DocumentName</b>: Specify name of the SSM document for which you want to see command execution results. For example, specify <code>AWS-RunPatchBaseline</code> to see command executions that used this SSM document to perform security patching operations on instances. </p> </li> <li> <p> <b>ExecutionStage</b>: Specify one of the following values:</p> <ul> <li> <p> <code>Executing</code>: Returns a list of command executions that are currently still running.</p> </li> <li> <p> <code>Complete</code>: Returns a list of command executions that have already completed. </p> </li> </ul> </li> </ul>"
        }
      },
      "documentation":"<p>Describes a command filter.</p>"
    },
    "CommandFilterKey":{
      "type":"string",
      "enum":[
        "InvokedAfter",
        "InvokedBefore",
        "Status",
        "ExecutionStage",
        "DocumentName"
      ]
    },
    "CommandFilterList":{
      "type":"list",
      "member":{"shape":"CommandFilter"},
      "max":5,
      "min":1
    },
    "CommandFilterValue":{
      "type":"string",
      "max":128,
      "min":1
    },
    "CommandId":{
      "type":"string",
      "max":36,
      "min":36
    },
    "CommandInvocation":{
      "type":"structure",
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>The command against which this invocation was requested.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID in which this invocation was requested.</p>"
        },
        "InstanceName":{
          "shape":"InstanceTagName",
          "documentation":"<p>The name of the invocation target. For Amazon EC2 instances this is the value for the aws:Name tag. For on-premises instances, this is the name of the instance.</p>"
        },
        "Comment":{
          "shape":"Comment",
          "documentation":"<p>User-specified information about the command, such as a brief description of what the command should do.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The document name that was requested for execution.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The SSM document version.</p>"
        },
        "RequestedDateTime":{
          "shape":"DateTime",
          "documentation":"<p>The time and date the request was sent to this instance.</p>"
        },
        "Status":{
          "shape":"CommandInvocationStatus",
          "documentation":"<p>Whether or not the invocation succeeded, failed, or is pending.</p>"
        },
        "StatusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>A detailed status of the command execution for each invocation (each instance targeted by the command). StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html\">Understanding Command Statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Success: The execution of the command or plugin was successfully completed. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: Command execution started on the instance, but the execution was not complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command was not successful on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul>"
        },
        "TraceOutput":{
          "shape":"InvocationTraceOutput",
          "documentation":"<p> Gets the trace output sent by the agent. </p>"
        },
        "StandardOutputUrl":{
          "shape":"Url",
          "documentation":"<p>The URL to the plugin's StdOut file in Amazon S3, if the Amazon S3 bucket was defined for the parent command. For an invocation, StandardOutputUrl is populated if there is just one plugin defined for the command, and the Amazon S3 bucket was defined for the command.</p>"
        },
        "StandardErrorUrl":{
          "shape":"Url",
          "documentation":"<p>The URL to the plugin's StdErr file in Amazon S3, if the Amazon S3 bucket was defined for the parent command. For an invocation, StandardErrorUrl is populated if there is just one plugin defined for the command, and the Amazon S3 bucket was defined for the command.</p>"
        },
        "CommandPlugins":{"shape":"CommandPluginList"},
        "ServiceRole":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes on a per instance basis.</p>"
        },
        "NotificationConfig":{
          "shape":"NotificationConfig",
          "documentation":"<p>Configurations for sending notifications about command status changes on a per instance basis.</p>"
        },
        "CloudWatchOutputConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p>CloudWatch Logs information where you want Systems Manager to send the command output.</p>"
        }
      },
      "documentation":"<p>An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user executes SendCommand against three instances, then a command invocation is created for each requested instance ID. A command invocation returns status and detail information about a command you executed. </p>"
    },
    "CommandInvocationList":{
      "type":"list",
      "member":{"shape":"CommandInvocation"}
    },
    "CommandInvocationStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Delayed",
        "Success",
        "Cancelled",
        "TimedOut",
        "Failed",
        "Cancelling"
      ]
    },
    "CommandList":{
      "type":"list",
      "member":{"shape":"Command"}
    },
    "CommandMaxResults":{
      "type":"integer",
      "max":50,
      "min":1
    },
    "CommandPlugin":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"CommandPluginName",
          "documentation":"<p>The name of the plugin. Must be one of the following: aws:updateAgent, aws:domainjoin, aws:applications, aws:runPowerShellScript, aws:psmodule, aws:cloudWatch, aws:runShellScript, or aws:updateSSMAgent. </p>"
        },
        "Status":{
          "shape":"CommandPluginStatus",
          "documentation":"<p>The status of this plugin. You can execute a document with multiple plugins.</p>"
        },
        "StatusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>A detailed status of the plugin execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html\">Understanding Command Statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Success: The execution of the command or plugin was successfully completed. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: Command execution started on the instance, but the execution was not complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command was not successful on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist, or it might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit, and they don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul>"
        },
        "ResponseCode":{
          "shape":"ResponseCode",
          "documentation":"<p>A numeric response code generated after executing the plugin. </p>"
        },
        "ResponseStartDateTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the plugin started executing. </p>"
        },
        "ResponseFinishDateTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the plugin stopped executing. Could stop prematurely if, for example, a cancel command was sent. </p>"
        },
        "Output":{
          "shape":"CommandPluginOutput",
          "documentation":"<p>Output of the plugin execution.</p>"
        },
        "StandardOutputUrl":{
          "shape":"Url",
          "documentation":"<p>The URL for the complete text written by the plugin to stdout in Amazon S3. If the Amazon S3 bucket for the command was not specified, then this string is empty.</p>"
        },
        "StandardErrorUrl":{
          "shape":"Url",
          "documentation":"<p>The URL for the complete text written by the plugin to stderr. If execution is not yet complete, then this string is empty.</p>"
        },
        "OutputS3Region":{
          "shape":"S3Region",
          "documentation":"<p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon S3 bucket region.</p>"
        },
        "OutputS3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:</p> <p> test_folder/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-1234567876543/awsrunShellScript </p> <p>test_folder is the name of the Amazon S3 bucket;</p> <p> ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;</p> <p>i-1234567876543 is the instance ID;</p> <p>awsrunShellScript is the name of the plugin.</p>"
        },
        "OutputS3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:</p> <p> test_folder/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-1234567876543/awsrunShellScript </p> <p>test_folder is the name of the Amazon S3 bucket;</p> <p> ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;</p> <p>i-1234567876543 is the instance ID;</p> <p>awsrunShellScript is the name of the plugin.</p>"
        }
      },
      "documentation":"<p>Describes plugin details.</p>"
    },
    "CommandPluginList":{
      "type":"list",
      "member":{"shape":"CommandPlugin"}
    },
    "CommandPluginName":{
      "type":"string",
      "min":4
    },
    "CommandPluginOutput":{
      "type":"string",
      "max":2500
    },
    "CommandPluginStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Success",
        "TimedOut",
        "Cancelled",
        "Failed"
      ]
    },
    "CommandStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Success",
        "Cancelled",
        "Failed",
        "TimedOut",
        "Cancelling"
      ]
    },
    "Comment":{
      "type":"string",
      "max":100
    },
    "CompletedCount":{"type":"integer"},
    "ComplianceExecutionId":{
      "type":"string",
      "max":100
    },
    "ComplianceExecutionSummary":{
      "type":"structure",
      "required":["ExecutionTime"],
      "members":{
        "ExecutionTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution ran as a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>"
        },
        "ExecutionId":{
          "shape":"ComplianceExecutionId",
          "documentation":"<p>An ID created by the system when <code>PutComplianceItems</code> was called. For example, <code>CommandID</code> is a valid execution ID. You can use this ID in subsequent calls.</p>"
        },
        "ExecutionType":{
          "shape":"ComplianceExecutionType",
          "documentation":"<p>The type of execution. For example, <code>Command</code> is a valid execution type.</p>"
        }
      },
      "documentation":"<p>A summary of the call execution that includes an execution ID, the type of execution (for example, <code>Command</code>), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>"
    },
    "ComplianceExecutionType":{
      "type":"string",
      "max":50
    },
    "ComplianceFilterValue":{"type":"string"},
    "ComplianceItem":{
      "type":"structure",
      "members":{
        "ComplianceType":{
          "shape":"ComplianceTypeName",
          "documentation":"<p>The compliance type. For example, Association (for a State Manager association), Patch, or Custom:<code>string</code> are all valid compliance types.</p>"
        },
        "ResourceType":{
          "shape":"ComplianceResourceType",
          "documentation":"<p>The type of resource. <code>ManagedInstance</code> is currently the only supported resource type.</p>"
        },
        "ResourceId":{
          "shape":"ComplianceResourceId",
          "documentation":"<p>An ID for the resource. For a managed instance, this is the instance ID.</p>"
        },
        "Id":{
          "shape":"ComplianceItemId",
          "documentation":"<p>An ID for the compliance item. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article; for example: KB4010320.</p>"
        },
        "Title":{
          "shape":"ComplianceItemTitle",
          "documentation":"<p>A title for the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch; for example: Security Update for Active Directory Federation Services.</p>"
        },
        "Status":{
          "shape":"ComplianceStatus",
          "documentation":"<p>The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT.</p>"
        },
        "Severity":{
          "shape":"ComplianceSeverity",
          "documentation":"<p>The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.</p>"
        },
        "ExecutionSummary":{
          "shape":"ComplianceExecutionSummary",
          "documentation":"<p>A summary for the compliance item. The summary includes an execution ID, the execution type (for example, command), and the execution time.</p>"
        },
        "Details":{
          "shape":"ComplianceItemDetails",
          "documentation":"<p>A \"Key\": \"Value\" tag combination for the compliance item.</p>"
        }
      },
      "documentation":"<p>Information about the compliance as defined by the resource type. For example, for a patch resource type, <code>Items</code> includes information about the PatchSeverity, Classification, etc.</p>"
    },
    "ComplianceItemContentHash":{
      "type":"string",
      "max":256
    },
    "ComplianceItemDetails":{
      "type":"map",
      "key":{"shape":"AttributeName"},
      "value":{"shape":"AttributeValue"}
    },
    "ComplianceItemEntry":{
      "type":"structure",
      "required":[
        "Severity",
        "Status"
      ],
      "members":{
        "Id":{
          "shape":"ComplianceItemId",
          "documentation":"<p>The compliance item ID. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article.</p>"
        },
        "Title":{
          "shape":"ComplianceItemTitle",
          "documentation":"<p>The title of the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch; for example: Security Update for Active Directory Federation Services. </p>"
        },
        "Severity":{
          "shape":"ComplianceSeverity",
          "documentation":"<p>The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.</p>"
        },
        "Status":{
          "shape":"ComplianceStatus",
          "documentation":"<p>The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT.</p>"
        },
        "Details":{
          "shape":"ComplianceItemDetails",
          "documentation":"<p>A \"Key\": \"Value\" tag combination for the compliance item.</p>"
        }
      },
      "documentation":"<p>Information about a compliance item.</p>"
    },
    "ComplianceItemEntryList":{
      "type":"list",
      "member":{"shape":"ComplianceItemEntry"},
      "max":10000,
      "min":0
    },
    "ComplianceItemId":{
      "type":"string",
      "max":100,
      "min":1
    },
    "ComplianceItemList":{
      "type":"list",
      "member":{"shape":"ComplianceItem"}
    },
    "ComplianceItemTitle":{
      "type":"string",
      "max":500
    },
    "ComplianceQueryOperatorType":{
      "type":"string",
      "enum":[
        "EQUAL",
        "NOT_EQUAL",
        "BEGIN_WITH",
        "LESS_THAN",
        "GREATER_THAN"
      ]
    },
    "ComplianceResourceId":{
      "type":"string",
      "max":100,
      "min":1
    },
    "ComplianceResourceIdList":{
      "type":"list",
      "member":{"shape":"ComplianceResourceId"},
      "min":1
    },
    "ComplianceResourceType":{
      "type":"string",
      "max":50,
      "min":1
    },
    "ComplianceResourceTypeList":{
      "type":"list",
      "member":{"shape":"ComplianceResourceType"},
      "min":1
    },
    "ComplianceSeverity":{
      "type":"string",
      "enum":[
        "CRITICAL",
        "HIGH",
        "MEDIUM",
        "LOW",
        "INFORMATIONAL",
        "UNSPECIFIED"
      ]
    },
    "ComplianceStatus":{
      "type":"string",
      "enum":[
        "COMPLIANT",
        "NON_COMPLIANT"
      ]
    },
    "ComplianceStringFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"ComplianceStringFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "Values":{
          "shape":"ComplianceStringFilterValueList",
          "documentation":"<p>The value for which to search.</p>"
        },
        "Type":{
          "shape":"ComplianceQueryOperatorType",
          "documentation":"<p>The type of comparison that should be performed for the value: Equal, NotEqual, BeginWith, LessThan, or GreaterThan.</p>"
        }
      },
      "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
    },
    "ComplianceStringFilterKey":{
      "type":"string",
      "max":200,
      "min":1
    },
    "ComplianceStringFilterList":{
      "type":"list",
      "member":{"shape":"ComplianceStringFilter"}
    },
    "ComplianceStringFilterValueList":{
      "type":"list",
      "member":{"shape":"ComplianceFilterValue"},
      "max":20,
      "min":1
    },
    "ComplianceSummaryCount":{"type":"integer"},
    "ComplianceSummaryItem":{
      "type":"structure",
      "members":{
        "ComplianceType":{
          "shape":"ComplianceTypeName",
          "documentation":"<p>The type of compliance item. For example, the compliance type can be Association, Patch, or Custom:string.</p>"
        },
        "CompliantSummary":{
          "shape":"CompliantSummary",
          "documentation":"<p>A list of COMPLIANT items for the specified compliance type.</p>"
        },
        "NonCompliantSummary":{
          "shape":"NonCompliantSummary",
          "documentation":"<p>A list of NON_COMPLIANT items for the specified compliance type.</p>"
        }
      },
      "documentation":"<p>A summary of compliance information by compliance type.</p>"
    },
    "ComplianceSummaryItemList":{
      "type":"list",
      "member":{"shape":"ComplianceSummaryItem"}
    },
    "ComplianceTypeCountLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You specified too many custom compliance types. You can specify a maximum of 10 different types. </p>",
      "exception":true
    },
    "ComplianceTypeName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[A-Za-z0-9_\\-]\\w+|Custom:[a-zA-Z0-9_\\-]\\w+"
    },
    "CompliantSummary":{
      "type":"structure",
      "members":{
        "CompliantCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources that are compliant.</p>"
        },
        "SeveritySummary":{
          "shape":"SeveritySummary",
          "documentation":"<p>A summary of the compliance severity by compliance type.</p>"
        }
      },
      "documentation":"<p>A summary of resources that are compliant. The summary is organized according to the resource count for each compliance type.</p>"
    },
    "ComputerName":{
      "type":"string",
      "max":255,
      "min":1
    },
    "ConnectionStatus":{
      "type":"string",
      "enum":[
        "Connected",
        "NotConnected"
      ]
    },
    "ContentLength":{"type":"long"},
    "CreateActivationRequest":{
      "type":"structure",
      "required":["IamRole"],
      "members":{
        "Description":{
          "shape":"ActivationDescription",
          "documentation":"<p>A user-defined description of the resource that you want to register with Amazon EC2. </p> <important> <p>Do not enter personally identifiable information in this field.</p> </important>"
        },
        "DefaultInstanceName":{
          "shape":"DefaultInstanceName",
          "documentation":"<p>The name of the registered, managed instance as it will appear in the Amazon EC2 console or when you use the AWS command line tools to list EC2 resources.</p> <important> <p>Do not enter personally identifiable information in this field.</p> </important>"
        },
        "IamRole":{
          "shape":"IamRole",
          "documentation":"<p>The Amazon Identity and Access Management (IAM) role that you want to assign to the managed instance. </p>"
        },
        "RegistrationLimit":{
          "shape":"RegistrationLimit",
          "documentation":"<p>Specify the maximum number of managed instances you want to register. The default value is 1 instance.</p>",
          "box":true
        },
        "ExpirationDate":{
          "shape":"ExpirationDate",
          "documentation":"<p>The date by which this activation request should expire. The default value is 24 hours.</p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an activation to identify which servers or virtual machines (VMs) in your on-premises environment you intend to activate. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <important> <p>When you install SSM Agent on your on-premises servers and VMs, you specify an activation ID and code. When you specify the activation ID and code, tags assigned to the activation are automatically applied to the on-premises servers or VMs.</p> </important> <p>You can't add tags to or delete tags from an existing activation. You can tag your on-premises servers and VMs after they connect to Systems Manager for the first time and are assigned a managed instance ID. This means they are listed in the AWS Systems Manager console with an ID that is prefixed with \"mi-\". For information about how to add tags to your managed instances, see <a>AddTagsToResource</a>. For information about how to remove tags from your managed instances, see <a>RemoveTagsFromResource</a>.</p>"
        }
      }
    },
    "CreateActivationResult":{
      "type":"structure",
      "members":{
        "ActivationId":{
          "shape":"ActivationId",
          "documentation":"<p>The ID number generated by the system when it processed the activation. The activation ID functions like a user name.</p>"
        },
        "ActivationCode":{
          "shape":"ActivationCode",
          "documentation":"<p>The code the system generates when it processes the activation. The activation code functions like a password to validate the activation ID. </p>"
        }
      }
    },
    "CreateAssociationBatchRequest":{
      "type":"structure",
      "required":["Entries"],
      "members":{
        "Entries":{
          "shape":"CreateAssociationBatchRequestEntries",
          "documentation":"<p>One or more associations.</p>"
        }
      }
    },
    "CreateAssociationBatchRequestEntries":{
      "type":"list",
      "member":{"shape":"CreateAssociationBatchRequestEntry"},
      "min":1
    },
    "CreateAssociationBatchRequestEntry":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the configuration document. </p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance. </p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>A description of the parameters for a document. </p>"
        },
        "AutomationTargetParameterName":{
          "shape":"AutomationTargetParameterName",
          "documentation":"<p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The instances targeted by the request.</p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>A cron expression that specifies a schedule when the association runs.</p>"
        },
        "OutputLocation":{
          "shape":"InstanceAssociationOutputLocation",
          "documentation":"<p>An Amazon S3 bucket where you want to store the results of this request.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>Specify a descriptive name for the association.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to execute an association while Systems Manager is executing MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>"
        },
        "ComplianceSeverity":{
          "shape":"AssociationComplianceSeverity",
          "documentation":"<p>The severity level to assign to the association.</p>"
        }
      },
      "documentation":"<p>Describes the association of a Systems Manager SSM document and an instance.</p>"
    },
    "CreateAssociationBatchResult":{
      "type":"structure",
      "members":{
        "Successful":{
          "shape":"AssociationDescriptionList",
          "documentation":"<p>Information about the associations that succeeded.</p>"
        },
        "Failed":{
          "shape":"FailedCreateAssociationList",
          "documentation":"<p>Information about the associations that failed.</p>"
        }
      }
    },
    "CreateAssociationRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version you want to associate with the target(s). Can be a specific version or the default version.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>The parameters for the documents runtime configuration. </p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or tags) for the association.</p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>A cron expression when the association will be applied to the target(s).</p>"
        },
        "OutputLocation":{
          "shape":"InstanceAssociationOutputLocation",
          "documentation":"<p>An Amazon S3 bucket where you want to store the output details of the request.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>Specify a descriptive name for the association.</p>"
        },
        "AutomationTargetParameterName":{
          "shape":"AutomationTargetParameterName",
          "documentation":"<p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to execute an association while Systems Manager is executing MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>"
        },
        "ComplianceSeverity":{
          "shape":"AssociationComplianceSeverity",
          "documentation":"<p>The severity level to assign to the association.</p>"
        }
      }
    },
    "CreateAssociationResult":{
      "type":"structure",
      "members":{
        "AssociationDescription":{
          "shape":"AssociationDescription",
          "documentation":"<p>Information about the association.</p>"
        }
      }
    },
    "CreateDocumentRequest":{
      "type":"structure",
      "required":[
        "Content",
        "Name"
      ],
      "members":{
        "Content":{
          "shape":"DocumentContent",
          "documentation":"<p>A valid JSON or YAML string.</p>"
        },
        "Attachments":{
          "shape":"AttachmentsSourceList",
          "documentation":"<p>A list of key and value pairs that describe attachments to a version of a document.</p>"
        },
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>A name for the Systems Manager document.</p> <important> <p>Do not use the following to begin the names of documents you create. They are reserved by AWS for use as document prefixes:</p> <ul> <li> <p> <code>aws</code> </p> </li> <li> <p> <code>amazon</code> </p> </li> <li> <p> <code>amzn</code> </p> </li> </ul> </important>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>An optional field specifying the version of the artifact you are creating with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "DocumentType":{
          "shape":"DocumentType",
          "documentation":"<p>The type of document to create. Valid document types include: <code>Command</code>, <code>Policy</code>, <code>Automation</code>, <code>Session</code>, and <code>Package</code>.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.</p>"
        },
        "TargetType":{
          "shape":"TargetType",
          "documentation":"<p>Specify a target type to define the kinds of resources the document can run on. For example, to run a document on EC2 instances, specify the following value: /AWS::EC2::Instance. If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\">AWS Resource Types Reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an SSM document to identify the types of targets or the environment where it will run. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <note> <p>To add tags to an existing SSM document, use the <a>AddTagsToResource</a> action.</p> </note>"
        }
      }
    },
    "CreateDocumentResult":{
      "type":"structure",
      "members":{
        "DocumentDescription":{
          "shape":"DocumentDescription",
          "documentation":"<p>Information about the Systems Manager document.</p>"
        }
      }
    },
    "CreateMaintenanceWindowRequest":{
      "type":"structure",
      "required":[
        "Name",
        "Schedule",
        "Duration",
        "Cutoff",
        "AllowUnassociatedTargets"
      ],
      "members":{
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description for the Maintenance Window. We recommend specifying a description to help you organize your Maintenance Windows. </p>"
        },
        "StartDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when you want the Maintenance Window to become active. StartDate allows you to delay activation of the Maintenance Window until the specified future date.</p>"
        },
        "EndDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when you want the Maintenance Window to become inactive. EndDate allows you to set a date and time in the future when the Maintenance Window will no longer run.</p>"
        },
        "Schedule":{
          "shape":"MaintenanceWindowSchedule",
          "documentation":"<p>The schedule of the Maintenance Window in the form of a cron or rate expression.</p>"
        },
        "ScheduleTimezone":{
          "shape":"MaintenanceWindowTimezone",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"etc/UTC\", or \"Asia/Seoul\". For more information, see the <a href=\"https://www.iana.org/time-zones\">Time Zone Database</a> on the IANA website.</p>"
        },
        "Duration":{
          "shape":"MaintenanceWindowDurationHours",
          "documentation":"<p>The duration of the Maintenance Window in hours.</p>"
        },
        "Cutoff":{
          "shape":"MaintenanceWindowCutoff",
          "documentation":"<p>The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.</p>"
        },
        "AllowUnassociatedTargets":{
          "shape":"MaintenanceWindowAllowUnassociatedTargets",
          "documentation":"<p>Enables a Maintenance Window task to execute on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the Maintenance Window </p> <p>If you don't enable this option, then you must specify previously-registered targets when you register a task with the Maintenance Window. </p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>User-provided idempotency token.</p>",
          "idempotencyToken":true
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a Maintenance Window to identify the type of tasks it will run, the types of targets, and the environment it will run in. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=TaskType,Value=AgentUpdate</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <note> <p>To add tags to an existing Maintenance Window, use the <a>AddTagsToResource</a> action.</p> </note>"
        }
      }
    },
    "CreateMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the created Maintenance Window.</p>"
        }
      }
    },
    "CreatePatchBaselineRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>Defines the operating system the patch baseline applies to. The Default value is WINDOWS.</p>"
        },
        "Name":{
          "shape":"BaselineName",
          "documentation":"<p>The name of the patch baseline.</p>"
        },
        "GlobalFilters":{
          "shape":"PatchFilterGroup",
          "documentation":"<p>A set of global filters used to exclude patches from the baseline.</p>"
        },
        "ApprovalRules":{
          "shape":"PatchRuleGroup",
          "documentation":"<p>A set of rules used to include patches in the baseline.</p>"
        },
        "ApprovedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly approved patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html\">Package Name Formats for Approved and Rejected Patch Lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "ApprovedPatchesComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. The default value is UNSPECIFIED.</p>"
        },
        "ApprovedPatchesEnableNonSecurity":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>",
          "box":true
        },
        "RejectedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly rejected patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html\">Package Name Formats for Approved and Rejected Patch Lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "RejectedPatchesAction":{
          "shape":"PatchAction",
          "documentation":"<p>The action for Patch Manager to take on patches included in the RejectedPackages list.</p> <ul> <li> <p> <b>ALLOW_AS_DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified.</p> </li> <li> <p> <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>.</p> </li> </ul>"
        },
        "Description":{
          "shape":"BaselineDescription",
          "documentation":"<p>A description of the patch baseline.</p>"
        },
        "Sources":{
          "shape":"PatchSourceList",
          "documentation":"<p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>User-provided idempotency token.</p>",
          "idempotencyToken":true
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=PatchSeverity,Value=Critical</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> </ul> <note> <p>To add tags to an existing patch baseline, use the <a>AddTagsToResource</a> action.</p> </note>"
        }
      }
    },
    "CreatePatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the created patch baseline.</p>"
        }
      }
    },
    "CreateResourceDataSyncRequest":{
      "type":"structure",
      "required":[
        "SyncName",
        "S3Destination"
      ],
      "members":{
        "SyncName":{
          "shape":"ResourceDataSyncName",
          "documentation":"<p>A name for the configuration.</p>"
        },
        "S3Destination":{
          "shape":"ResourceDataSyncS3Destination",
          "documentation":"<p>Amazon S3 configuration details for the sync.</p>"
        }
      }
    },
    "CreateResourceDataSyncResult":{
      "type":"structure",
      "members":{
      }
    },
    "CreatedDate":{"type":"timestamp"},
    "CustomSchemaCountLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You have exceeded the limit for custom schemas. Delete one or more custom schemas and try again.</p>",
      "exception":true
    },
    "DateTime":{"type":"timestamp"},
    "DefaultBaseline":{"type":"boolean"},
    "DefaultInstanceName":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "DeleteActivationRequest":{
      "type":"structure",
      "required":["ActivationId"],
      "members":{
        "ActivationId":{
          "shape":"ActivationId",
          "documentation":"<p>The ID of the activation that you want to delete.</p>"
        }
      }
    },
    "DeleteActivationResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteAssociationRequest":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance.</p>"
        },
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID that you want to delete.</p>"
        }
      }
    },
    "DeleteAssociationResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteDocumentRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document.</p>"
        }
      }
    },
    "DeleteDocumentResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteInventoryRequest":{
      "type":"structure",
      "required":["TypeName"],
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the custom inventory type for which you want to delete either all previously collected data, or the inventory type itself. </p>"
        },
        "SchemaDeleteOption":{
          "shape":"InventorySchemaDeleteOption",
          "documentation":"<p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type (schema). If you don't choose this option, the system only deletes existing inventory data associated with the custom inventory type. Choose one of the following options:</p> <p>DisableSchema: If you choose this option, the system ignores all inventory data for the specified version, and any earlier versions. To enable this schema again, you must call the <code>PutInventory</code> action for a version greater than the disbled version.</p> <p>DeleteSchema: This option deletes the specified custom type from the Inventory service. You can recreate the schema later, if you want.</p>"
        },
        "DryRun":{
          "shape":"DryRun",
          "documentation":"<p>Use this option to view a summary of the deletion request without deleting any data or the data type. This option is useful when you only want to understand what will be deleted. Once you validate that the data to be deleted is what you intend to delete, you can run the same command without specifying the <code>DryRun</code> option.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>User-provided idempotency token.</p>",
          "idempotencyToken":true
        }
      }
    },
    "DeleteInventoryResult":{
      "type":"structure",
      "members":{
        "DeletionId":{
          "shape":"InventoryDeletionId",
          "documentation":"<p>Every <code>DeleteInventory</code> action is assigned a unique ID. This option returns a unique ID. You can use this ID to query the status of a delete operation. This option is useful for ensuring that a delete operation has completed before you begin other actions. </p>"
        },
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the inventory data type specified in the request.</p>"
        },
        "DeletionSummary":{
          "shape":"InventoryDeletionSummary",
          "documentation":"<p>A summary of the delete operation. For more information about this summary, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-delete.html#sysman-inventory-delete-summary\">Understanding the Delete Inventory Summary</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        }
      }
    },
    "DeleteMaintenanceWindowRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window to delete.</p>"
        }
      }
    },
    "DeleteMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the deleted Maintenance Window.</p>"
        }
      }
    },
    "DeleteParameterRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The name of the parameter to delete.</p>"
        }
      }
    },
    "DeleteParameterResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteParametersRequest":{
      "type":"structure",
      "required":["Names"],
      "members":{
        "Names":{
          "shape":"ParameterNameList",
          "documentation":"<p>The names of the parameters to delete.</p>"
        }
      }
    },
    "DeleteParametersResult":{
      "type":"structure",
      "members":{
        "DeletedParameters":{
          "shape":"ParameterNameList",
          "documentation":"<p>The names of the deleted parameters.</p>"
        },
        "InvalidParameters":{
          "shape":"ParameterNameList",
          "documentation":"<p>The names of parameters that weren't deleted because the parameters are not valid.</p>"
        }
      }
    },
    "DeletePatchBaselineRequest":{
      "type":"structure",
      "required":["BaselineId"],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to delete.</p>"
        }
      }
    },
    "DeletePatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the deleted patch baseline.</p>"
        }
      }
    },
    "DeleteResourceDataSyncRequest":{
      "type":"structure",
      "required":["SyncName"],
      "members":{
        "SyncName":{
          "shape":"ResourceDataSyncName",
          "documentation":"<p>The name of the configuration to delete.</p>"
        }
      }
    },
    "DeleteResourceDataSyncResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeliveryTimedOutCount":{"type":"integer"},
    "DeregisterManagedInstanceRequest":{
      "type":"structure",
      "required":["InstanceId"],
      "members":{
        "InstanceId":{
          "shape":"ManagedInstanceId",
          "documentation":"<p>The ID assigned to the managed instance when you registered it using the activation process. </p>"
        }
      }
    },
    "DeregisterManagedInstanceResult":{
      "type":"structure",
      "members":{
      }
    },
    "DeregisterPatchBaselineForPatchGroupRequest":{
      "type":"structure",
      "required":[
        "BaselineId",
        "PatchGroup"
      ],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to deregister the patch group from.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group that should be deregistered from the patch baseline.</p>"
        }
      }
    },
    "DeregisterPatchBaselineForPatchGroupResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline the patch group was deregistered from.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group deregistered from the patch baseline.</p>"
        }
      }
    },
    "DeregisterTargetFromMaintenanceWindowRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "WindowTargetId"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the target should be removed from.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The ID of the target definition to remove.</p>"
        },
        "Safe":{
          "shape":"Boolean",
          "documentation":"<p>The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the Maintenance Window.</p>",
          "box":true
        }
      }
    },
    "DeregisterTargetFromMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the target was removed from.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The ID of the removed target definition.</p>"
        }
      }
    },
    "DeregisterTaskFromMaintenanceWindowRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "WindowTaskId"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the task should be removed from.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The ID of the task to remove from the Maintenance Window.</p>"
        }
      }
    },
    "DeregisterTaskFromMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the task was removed from.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The ID of the task removed from the Maintenance Window.</p>"
        }
      }
    },
    "DescribeActivationsFilter":{
      "type":"structure",
      "members":{
        "FilterKey":{
          "shape":"DescribeActivationsFilterKeys",
          "documentation":"<p>The name of the filter.</p>"
        },
        "FilterValues":{
          "shape":"StringList",
          "documentation":"<p>The filter values.</p>"
        }
      },
      "documentation":"<p>Filter for the DescribeActivation API.</p>"
    },
    "DescribeActivationsFilterKeys":{
      "type":"string",
      "enum":[
        "ActivationIds",
        "DefaultInstanceName",
        "IamRole"
      ]
    },
    "DescribeActivationsFilterList":{
      "type":"list",
      "member":{"shape":"DescribeActivationsFilter"}
    },
    "DescribeActivationsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"DescribeActivationsFilterList",
          "documentation":"<p>A filter to view information about your activations.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        }
      }
    },
    "DescribeActivationsResult":{
      "type":"structure",
      "members":{
        "ActivationList":{
          "shape":"ActivationList",
          "documentation":"<p>A list of activations for your AWS account.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results. </p>"
        }
      }
    },
    "DescribeAssociationExecutionTargetsRequest":{
      "type":"structure",
      "required":[
        "AssociationId",
        "ExecutionId"
      ],
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID that includes the execution for which you want to view details.</p>"
        },
        "ExecutionId":{
          "shape":"AssociationExecutionId",
          "documentation":"<p>The execution ID for which you want to view details.</p>"
        },
        "Filters":{
          "shape":"AssociationExecutionTargetsFilterList",
          "documentation":"<p>Filters for the request. You can specify the following filters and values.</p> <p>Status (EQUAL)</p> <p>ResourceId (EQUAL)</p> <p>ResourceType (EQUAL)</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        }
      }
    },
    "DescribeAssociationExecutionTargetsResult":{
      "type":"structure",
      "members":{
        "AssociationExecutionTargets":{
          "shape":"AssociationExecutionTargetsList",
          "documentation":"<p>Information about the execution.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "DescribeAssociationExecutionsRequest":{
      "type":"structure",
      "required":["AssociationId"],
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID for which you want to view execution history details.</p>"
        },
        "Filters":{
          "shape":"AssociationExecutionFilterList",
          "documentation":"<p>Filters for the request. You can specify the following filters and values.</p> <p>ExecutionId (EQUAL)</p> <p>Status (EQUAL)</p> <p>CreatedTime (EQUAL, GREATER_THAN, LESS_THAN)</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        }
      }
    },
    "DescribeAssociationExecutionsResult":{
      "type":"structure",
      "members":{
        "AssociationExecutions":{
          "shape":"AssociationExecutionsList",
          "documentation":"<p>A list of the executions for the specified association ID.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "DescribeAssociationRequest":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID.</p>"
        },
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID for which you want information.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>Specify the association version to retrieve. To view the latest version, either specify <code>$LATEST</code> for this parameter, or omit this parameter. To view a list of all associations for an instance, use <a>ListAssociations</a>. To get a list of versions for a specific association, use <a>ListAssociationVersions</a>. </p>"
        }
      }
    },
    "DescribeAssociationResult":{
      "type":"structure",
      "members":{
        "AssociationDescription":{
          "shape":"AssociationDescription",
          "documentation":"<p>Information about the association.</p>"
        }
      }
    },
    "DescribeAutomationExecutionsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"AutomationExecutionFilterList",
          "documentation":"<p>Filters used to limit the scope of executions that are requested.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeAutomationExecutionsResult":{
      "type":"structure",
      "members":{
        "AutomationExecutionMetadataList":{
          "shape":"AutomationExecutionMetadataList",
          "documentation":"<p>The list of details about each automation execution which has occurred which matches the filter specification, if any.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeAutomationStepExecutionsRequest":{
      "type":"structure",
      "required":["AutomationExecutionId"],
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The Automation execution ID for which you want step execution descriptions.</p>"
        },
        "Filters":{
          "shape":"StepExecutionFilterList",
          "documentation":"<p>One or more filters to limit the number of step executions returned by the request.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "ReverseOrder":{
          "shape":"Boolean",
          "documentation":"<p>A boolean that indicates whether to list step executions in reverse order by start time. The default value is false.</p>",
          "box":true
        }
      }
    },
    "DescribeAutomationStepExecutionsResult":{
      "type":"structure",
      "members":{
        "StepExecutions":{
          "shape":"StepExecutionList",
          "documentation":"<p>A list of details about the current state of all steps that make up an execution.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeAvailablePatchesRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"PatchOrchestratorFilterList",
          "documentation":"<p>Filters used to scope down the returned patches.</p>"
        },
        "MaxResults":{
          "shape":"PatchBaselineMaxResults",
          "documentation":"<p>The maximum number of patches to return (per page).</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeAvailablePatchesResult":{
      "type":"structure",
      "members":{
        "Patches":{
          "shape":"PatchList",
          "documentation":"<p>An array of patches. Each entry in the array is a patch structure.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeDocumentPermissionRequest":{
      "type":"structure",
      "required":[
        "Name",
        "PermissionType"
      ],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document for which you are the owner.</p>"
        },
        "PermissionType":{
          "shape":"DocumentPermissionType",
          "documentation":"<p>The permission type for the document. The permission type can be <i>Share</i>.</p>"
        }
      }
    },
    "DescribeDocumentPermissionResponse":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>The account IDs that have permission to use this document. The ID can be either an AWS account or <i>All</i>.</p>"
        }
      }
    },
    "DescribeDocumentRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version for which you want information. Can be a specific version or the default version.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        }
      }
    },
    "DescribeDocumentResult":{
      "type":"structure",
      "members":{
        "Document":{
          "shape":"DocumentDescription",
          "documentation":"<p>Information about the Systems Manager document.</p>"
        }
      }
    },
    "DescribeEffectiveInstanceAssociationsRequest":{
      "type":"structure",
      "required":["InstanceId"],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID for which you want to view all associations.</p>"
        },
        "MaxResults":{
          "shape":"EffectiveInstanceAssociationMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeEffectiveInstanceAssociationsResult":{
      "type":"structure",
      "members":{
        "Associations":{
          "shape":"InstanceAssociationList",
          "documentation":"<p>The associations for the requested instance.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeEffectivePatchesForPatchBaselineRequest":{
      "type":"structure",
      "required":["BaselineId"],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to retrieve the effective patches for.</p>"
        },
        "MaxResults":{
          "shape":"PatchBaselineMaxResults",
          "documentation":"<p>The maximum number of patches to return (per page).</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeEffectivePatchesForPatchBaselineResult":{
      "type":"structure",
      "members":{
        "EffectivePatches":{
          "shape":"EffectivePatchList",
          "documentation":"<p>An array of patches and patch status.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeInstanceAssociationsStatusRequest":{
      "type":"structure",
      "required":["InstanceId"],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance IDs for which you want association status information.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeInstanceAssociationsStatusResult":{
      "type":"structure",
      "members":{
        "InstanceAssociationStatusInfos":{
          "shape":"InstanceAssociationStatusInfos",
          "documentation":"<p>Status information about the association.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeInstanceInformationRequest":{
      "type":"structure",
      "members":{
        "InstanceInformationFilterList":{
          "shape":"InstanceInformationFilterList",
          "documentation":"<p>This is a legacy method. We recommend that you don't use this method. Instead, use the <a>InstanceInformationFilter</a> action. The <code>InstanceInformationFilter</code> action enables you to return instance information by using tags that are specified as a key-value mapping. </p> <p>If you do use this method, then you can't use the <code>InstanceInformationFilter</code> action. Using this method and the <code>InstanceInformationFilter</code> action causes an exception error. </p>"
        },
        "Filters":{
          "shape":"InstanceInformationStringFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of instances. You can filter on Amazon EC2 tag. Specify tags by using a key-value mapping.</p>"
        },
        "MaxResults":{
          "shape":"MaxResultsEC2Compatible",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. </p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeInstanceInformationResult":{
      "type":"structure",
      "members":{
        "InstanceInformationList":{
          "shape":"InstanceInformationList",
          "documentation":"<p>The instance information list.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. </p>"
        }
      }
    },
    "DescribeInstancePatchStatesForPatchGroupRequest":{
      "type":"structure",
      "required":["PatchGroup"],
      "members":{
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group for which the patch state information should be retrieved.</p>"
        },
        "Filters":{
          "shape":"InstancePatchStateFilterList",
          "documentation":"<p>Each entry in the array is a structure containing:</p> <p>Key (string between 1 and 200 characters)</p> <p> Values (array containing a single string)</p> <p> Type (string \"Equal\", \"NotEqual\", \"LessThan\", \"GreaterThan\")</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"PatchComplianceMaxResults",
          "documentation":"<p>The maximum number of patches to return (per page).</p>",
          "box":true
        }
      }
    },
    "DescribeInstancePatchStatesForPatchGroupResult":{
      "type":"structure",
      "members":{
        "InstancePatchStates":{
          "shape":"InstancePatchStatesList",
          "documentation":"<p>The high-level patch state for the requested instances. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeInstancePatchStatesRequest":{
      "type":"structure",
      "required":["InstanceIds"],
      "members":{
        "InstanceIds":{
          "shape":"InstanceIdList",
          "documentation":"<p>The ID of the instance whose patch state information should be retrieved.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"PatchComplianceMaxResults",
          "documentation":"<p>The maximum number of instances to return (per page).</p>",
          "box":true
        }
      }
    },
    "DescribeInstancePatchStatesResult":{
      "type":"structure",
      "members":{
        "InstancePatchStates":{
          "shape":"InstancePatchStateList",
          "documentation":"<p>The high-level patch state for the requested instances.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeInstancePatchesRequest":{
      "type":"structure",
      "required":["InstanceId"],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance whose patch state information should be retrieved.</p>"
        },
        "Filters":{
          "shape":"PatchOrchestratorFilterList",
          "documentation":"<p>Each entry in the array is a structure containing:</p> <p>Key (string, between 1 and 128 characters)</p> <p>Values (array of strings, each string between 1 and 256 characters)</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"PatchComplianceMaxResults",
          "documentation":"<p>The maximum number of patches to return (per page).</p>",
          "box":true
        }
      }
    },
    "DescribeInstancePatchesResult":{
      "type":"structure",
      "members":{
        "Patches":{
          "shape":"PatchComplianceDataList",
          "documentation":"<p>Each entry in the array is a structure containing:</p> <p>Title (string)</p> <p>KBId (string)</p> <p>Classification (string)</p> <p>Severity (string)</p> <p>State (string, such as \"INSTALLED\" or \"FAILED\")</p> <p>InstalledTime (DateTime)</p> <p>InstalledBy (string)</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeInventoryDeletionsRequest":{
      "type":"structure",
      "members":{
        "DeletionId":{
          "shape":"InventoryDeletionId",
          "documentation":"<p>Specify the delete inventory ID for which you want information. This ID was returned by the <code>DeleteInventory</code> action.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "DescribeInventoryDeletionsResult":{
      "type":"structure",
      "members":{
        "InventoryDeletions":{
          "shape":"InventoryDeletionsList",
          "documentation":"<p>A list of status items for deleted inventory.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionTaskInvocationsRequest":{
      "type":"structure",
      "required":[
        "WindowExecutionId",
        "TaskId"
      ],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution the task is part of.</p>"
        },
        "TaskId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task in the Maintenance Window task that should be retrieved.</p>"
        },
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Optional filters used to scope down the returned task invocations. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionTaskInvocationsResult":{
      "type":"structure",
      "members":{
        "WindowExecutionTaskInvocationIdentities":{
          "shape":"MaintenanceWindowExecutionTaskInvocationIdentityList",
          "documentation":"<p>Information about the task invocation results per invocation.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionTasksRequest":{
      "type":"structure",
      "required":["WindowExecutionId"],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution whose task executions should be retrieved.</p>"
        },
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Optional filters used to scope down the returned tasks. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED. </p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionTasksResult":{
      "type":"structure",
      "members":{
        "WindowExecutionTaskIdentities":{
          "shape":"MaintenanceWindowExecutionTaskIdentityList",
          "documentation":"<p>Information about the task executions.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionsRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window whose executions should be retrieved.</p>"
        },
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Each entry in the array is a structure containing:</p> <p>Key (string, between 1 and 128 characters)</p> <p>Values (array of strings, each string is between 1 and 256 characters)</p> <p>The supported Keys are ExecutedBefore and ExecutedAfter with the value being a date/time string such as 2016-11-04T05:00:00Z.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowExecutionsResult":{
      "type":"structure",
      "members":{
        "WindowExecutions":{
          "shape":"MaintenanceWindowExecutionList",
          "documentation":"<p>Information about the Maintenance Windows execution.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowScheduleRequest":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window to retrieve information about.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The instance ID or key/value pair to retrieve information about.</p>"
        },
        "ResourceType":{
          "shape":"MaintenanceWindowResourceType",
          "documentation":"<p>The type of resource you want to retrieve information about. For example, \"INSTANCE\".</p>"
        },
        "Filters":{
          "shape":"PatchOrchestratorFilterList",
          "documentation":"<p>Filters used to limit the range of results. For example, you can limit Maintenance Window executions to only those scheduled before or after a certain date and time.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowSearchMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowScheduleResult":{
      "type":"structure",
      "members":{
        "ScheduledWindowExecutions":{
          "shape":"ScheduledWindowExecutionList",
          "documentation":"<p>Information about Maintenance Window executions scheduled for the specified time range.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You use this token in the next call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowTargetsRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window whose targets should be retrieved.</p>"
        },
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Optional filters that can be used to narrow down the scope of the returned window targets. The supported filter keys are Type, WindowTargetId and OwnerInformation.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowTargetsResult":{
      "type":"structure",
      "members":{
        "Targets":{
          "shape":"MaintenanceWindowTargetList",
          "documentation":"<p>Information about the targets in the Maintenance Window.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowTasksRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window whose tasks should be retrieved.</p>"
        },
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Optional filters used to narrow down the scope of the returned tasks. The supported filter keys are WindowTaskId, TaskArn, Priority, and TaskType.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowTasksResult":{
      "type":"structure",
      "members":{
        "Tasks":{
          "shape":"MaintenanceWindowTaskList",
          "documentation":"<p>Information about the tasks in the Maintenance Window.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeMaintenanceWindowsForTargetRequest":{
      "type":"structure",
      "required":[
        "Targets",
        "ResourceType"
      ],
      "members":{
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The instance ID or key/value pair to retrieve information about.</p>"
        },
        "ResourceType":{
          "shape":"MaintenanceWindowResourceType",
          "documentation":"<p>The type of resource you want to retrieve information about. For example, \"INSTANCE\".</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowSearchMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowsForTargetResult":{
      "type":"structure",
      "members":{
        "WindowIdentities":{
          "shape":"MaintenanceWindowsForTargetList",
          "documentation":"<p>Information about the Maintenance Window targets and tasks an instance is associated with.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You use this token in the next call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"MaintenanceWindowFilterList",
          "documentation":"<p>Optional filters used to narrow down the scope of the returned Maintenance Windows. Supported filter keys are <b>Name</b> and <b>Enabled</b>.</p>"
        },
        "MaxResults":{
          "shape":"MaintenanceWindowMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeMaintenanceWindowsResult":{
      "type":"structure",
      "members":{
        "WindowIdentities":{
          "shape":"MaintenanceWindowIdentityList",
          "documentation":"<p>Information about the Maintenance Windows.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeParametersRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"ParametersFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "ParameterFilters":{
          "shape":"ParameterStringFilterList",
          "documentation":"<p>Filters to limit the request results.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribeParametersResult":{
      "type":"structure",
      "members":{
        "Parameters":{
          "shape":"ParameterMetadataList",
          "documentation":"<p>Parameters returned by the request.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribePatchBaselinesRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"PatchOrchestratorFilterList",
          "documentation":"<p>Each element in the array is a structure containing: </p> <p>Key: (string, \"NAME_PREFIX\" or \"OWNER\")</p> <p>Value: (array of strings, exactly 1 entry, between 1 and 255 characters)</p>"
        },
        "MaxResults":{
          "shape":"PatchBaselineMaxResults",
          "documentation":"<p>The maximum number of patch baselines to return (per page).</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribePatchBaselinesResult":{
      "type":"structure",
      "members":{
        "BaselineIdentities":{
          "shape":"PatchBaselineIdentityList",
          "documentation":"<p>An array of PatchBaselineIdentity elements.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribePatchGroupStateRequest":{
      "type":"structure",
      "required":["PatchGroup"],
      "members":{
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group whose patch snapshot should be retrieved.</p>"
        }
      }
    },
    "DescribePatchGroupStateResult":{
      "type":"structure",
      "members":{
        "Instances":{
          "shape":"Integer",
          "documentation":"<p>The number of instances in the patch group.</p>"
        },
        "InstancesWithInstalledPatches":{
          "shape":"Integer",
          "documentation":"<p>The number of instances with installed patches.</p>"
        },
        "InstancesWithInstalledOtherPatches":{
          "shape":"Integer",
          "documentation":"<p>The number of instances with patches installed that aren't defined in the patch baseline.</p>"
        },
        "InstancesWithInstalledRejectedPatches":{
          "shape":"InstancesCount",
          "documentation":"<p>The number of instances with patches installed that are specified in a RejectedPatches list. Patches with a status of <i>INSTALLED_REJECTED</i> were typically installed before they were added to a RejectedPatches list.</p> <note> <p>If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of InstancesWithInstalledRejectedPatches will always be 0 (zero).</p> </note>",
          "box":true
        },
        "InstancesWithMissingPatches":{
          "shape":"Integer",
          "documentation":"<p>The number of instances with missing patches from the patch baseline.</p>"
        },
        "InstancesWithFailedPatches":{
          "shape":"Integer",
          "documentation":"<p>The number of instances with patches from the patch baseline that failed to install.</p>"
        },
        "InstancesWithNotApplicablePatches":{
          "shape":"Integer",
          "documentation":"<p>The number of instances with patches that aren't applicable.</p>"
        }
      }
    },
    "DescribePatchGroupsRequest":{
      "type":"structure",
      "members":{
        "MaxResults":{
          "shape":"PatchBaselineMaxResults",
          "documentation":"<p>The maximum number of patch groups to return (per page).</p>",
          "box":true
        },
        "Filters":{
          "shape":"PatchOrchestratorFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescribePatchGroupsResult":{
      "type":"structure",
      "members":{
        "Mappings":{
          "shape":"PatchGroupPatchBaselineMappingList",
          "documentation":"<p>Each entry in the array contains:</p> <p>PatchGroup: string (between 1 and 256 characters, Regex: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$)</p> <p>PatchBaselineIdentity: A PatchBaselineIdentity element. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "DescribeSessionsRequest":{
      "type":"structure",
      "required":["State"],
      "members":{
        "State":{
          "shape":"SessionState",
          "documentation":"<p>The session status to retrieve a list of sessions for. For example, \"Active\".</p>"
        },
        "MaxResults":{
          "shape":"SessionMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "Filters":{
          "shape":"SessionFilterList",
          "documentation":"<p>One or more filters to limit the type of sessions returned by the request.</p>"
        }
      }
    },
    "DescribeSessionsResponse":{
      "type":"structure",
      "members":{
        "Sessions":{
          "shape":"SessionList",
          "documentation":"<p>A list of sessions meeting the request parameters.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "DescriptionInDocument":{"type":"string"},
    "DocumentARN":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.:/]{3,128}$"
    },
    "DocumentAlreadyExists":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified document already exists.</p>",
      "exception":true
    },
    "DocumentContent":{
      "type":"string",
      "min":1
    },
    "DocumentDefaultVersionDescription":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document.</p>"
        },
        "DefaultVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The default version of the document.</p>"
        },
        "DefaultVersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>The default version of the artifact associated with the document.</p>"
        }
      },
      "documentation":"<p>A default version of a document.</p>"
    },
    "DocumentDescription":{
      "type":"structure",
      "members":{
        "Sha1":{
          "shape":"DocumentSha1",
          "documentation":"<p>The SHA1 hash of the document, which you can use for verification.</p>"
        },
        "Hash":{
          "shape":"DocumentHash",
          "documentation":"<p>The Sha256 or Sha1 hash created by the system when the document was created. </p> <note> <p>Sha1 hashes have been deprecated.</p> </note>"
        },
        "HashType":{
          "shape":"DocumentHashType",
          "documentation":"<p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p> <note> <p>Sha1 hashes have been deprecated.</p> </note>"
        },
        "Name":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>The version of the artifact associated with the document.</p>"
        },
        "Owner":{
          "shape":"DocumentOwner",
          "documentation":"<p>The AWS user account that created the document.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date when the document was created.</p>"
        },
        "Status":{
          "shape":"DocumentStatus",
          "documentation":"<p>The status of the Systems Manager document.</p>"
        },
        "StatusInformation":{
          "shape":"DocumentStatusInformation",
          "documentation":"<p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, \"The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct.\"</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "Description":{
          "shape":"DescriptionInDocument",
          "documentation":"<p>A description of the document. </p>"
        },
        "Parameters":{
          "shape":"DocumentParameterList",
          "documentation":"<p>A description of the parameters for a document.</p>"
        },
        "PlatformTypes":{
          "shape":"PlatformTypeList",
          "documentation":"<p>The list of OS platforms compatible with this Systems Manager document. </p>"
        },
        "DocumentType":{
          "shape":"DocumentType",
          "documentation":"<p>The type of document.</p>"
        },
        "SchemaVersion":{
          "shape":"DocumentSchemaVersion",
          "documentation":"<p>The schema version.</p>"
        },
        "LatestVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The latest version of the document.</p>"
        },
        "DefaultVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The default version.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>The document format, either JSON or YAML.</p>"
        },
        "TargetType":{
          "shape":"TargetType",
          "documentation":"<p>The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\">AWS Resource Types Reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>The tags, or metadata, that have been applied to the document.</p>"
        },
        "AttachmentsInformation":{
          "shape":"AttachmentInformationList",
          "documentation":"<p>Details about the document attachments, including names, locations, sizes, etc.</p>"
        }
      },
      "documentation":"<p>Describes a Systems Manager document. </p>"
    },
    "DocumentFilter":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"DocumentFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "value":{
          "shape":"DocumentFilterValue",
          "documentation":"<p>The value of the filter.</p>"
        }
      },
      "documentation":"<p>Describes a filter.</p>"
    },
    "DocumentFilterKey":{
      "type":"string",
      "enum":[
        "Name",
        "Owner",
        "PlatformTypes",
        "DocumentType"
      ]
    },
    "DocumentFilterList":{
      "type":"list",
      "member":{"shape":"DocumentFilter"},
      "min":1
    },
    "DocumentFilterValue":{
      "type":"string",
      "min":1
    },
    "DocumentFormat":{
      "type":"string",
      "enum":[
        "YAML",
        "JSON"
      ]
    },
    "DocumentHash":{
      "type":"string",
      "max":256
    },
    "DocumentHashType":{
      "type":"string",
      "enum":[
        "Sha256",
        "Sha1"
      ]
    },
    "DocumentIdentifier":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "Owner":{
          "shape":"DocumentOwner",
          "documentation":"<p>The AWS user account that created the document.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "PlatformTypes":{
          "shape":"PlatformTypeList",
          "documentation":"<p>The operating system platform. </p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "DocumentType":{
          "shape":"DocumentType",
          "documentation":"<p>The document type.</p>"
        },
        "SchemaVersion":{
          "shape":"DocumentSchemaVersion",
          "documentation":"<p>The schema version.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>The document format, either JSON or YAML.</p>"
        },
        "TargetType":{
          "shape":"TargetType",
          "documentation":"<p>The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\">AWS Resource Types Reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>The tags, or metadata, that have been applied to the document.</p>"
        }
      },
      "documentation":"<p>Describes the name of a Systems Manager document.</p>"
    },
    "DocumentIdentifierList":{
      "type":"list",
      "member":{"shape":"DocumentIdentifier"}
    },
    "DocumentKeyValuesFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"DocumentKeyValuesFilterKey",
          "documentation":"<p>The name of the filter key.</p>"
        },
        "Values":{
          "shape":"DocumentKeyValuesFilterValues",
          "documentation":"<p>The value for the filter key.</p>"
        }
      },
      "documentation":"<p>One or more filters. Use a filter to return a more specific list of documents.</p> <p>For keys, you can specify one or more tags that have been applied to a document. </p> <p>Other valid values include Owner, Name, PlatformTypes, and DocumentType.</p> <p>Note that only one Owner can be specified in a request. For example: <code>Key=Owner,Values=Self</code>.</p> <p>If you use Name as a key, you can use a name prefix to return a list of documents. For example, in the AWS CLI, to return a list of all documents that begin with <code>Te</code>, run the following command:</p> <p> <code>aws ssm list-documents --filters Key=Name,Values=Te</code> </p> <p>If you specify more than two keys, only documents that are identified by all the tags are returned in the results. If you specify more than two values for a key, documents that are identified by any of the values are returned in the results.</p> <p>To specify a custom key and value pair, use the format <code>Key=tag:[tagName],Values=[valueName]</code>.</p> <p>For example, if you created a Key called region and are using the AWS CLI to call the <code>list-documents</code> command: </p> <p> <code>aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self</code> </p>"
    },
    "DocumentKeyValuesFilterKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "DocumentKeyValuesFilterList":{
      "type":"list",
      "member":{"shape":"DocumentKeyValuesFilter"},
      "max":6,
      "min":0
    },
    "DocumentKeyValuesFilterValue":{
      "type":"string",
      "max":256,
      "min":1
    },
    "DocumentKeyValuesFilterValues":{
      "type":"list",
      "member":{"shape":"DocumentKeyValuesFilterValue"}
    },
    "DocumentLimitExceeded":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You can have at most 200 active Systems Manager documents.</p>",
      "exception":true
    },
    "DocumentName":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$"
    },
    "DocumentOwner":{"type":"string"},
    "DocumentParameter":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentParameterName",
          "documentation":"<p>The name of the parameter.</p>"
        },
        "Type":{
          "shape":"DocumentParameterType",
          "documentation":"<p>The type of parameter. The type can be either String or StringList.</p>"
        },
        "Description":{
          "shape":"DocumentParameterDescrption",
          "documentation":"<p>A description of what the parameter does, how to use it, the default value, and whether or not the parameter is optional.</p>"
        },
        "DefaultValue":{
          "shape":"DocumentParameterDefaultValue",
          "documentation":"<p>If specified, the default values for the parameters. Parameters without a default value are required. Parameters with a default value are optional.</p>"
        }
      },
      "documentation":"<p>Parameters specified in a System Manager document that execute on the server when the command is run. </p>"
    },
    "DocumentParameterDefaultValue":{"type":"string"},
    "DocumentParameterDescrption":{"type":"string"},
    "DocumentParameterList":{
      "type":"list",
      "member":{"shape":"DocumentParameter"}
    },
    "DocumentParameterName":{"type":"string"},
    "DocumentParameterType":{
      "type":"string",
      "enum":[
        "String",
        "StringList"
      ]
    },
    "DocumentPermissionLimit":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The document cannot be shared with more AWS user accounts. You can share a document with a maximum of 20 accounts. You can publicly share up to five documents. If you need to increase this limit, contact AWS Support.</p>",
      "exception":true
    },
    "DocumentPermissionType":{
      "type":"string",
      "enum":["Share"]
    },
    "DocumentSchemaVersion":{
      "type":"string",
      "pattern":"([0-9]+)\\.([0-9]+)"
    },
    "DocumentSha1":{"type":"string"},
    "DocumentStatus":{
      "type":"string",
      "documentation":"<p>The status of a document.</p>",
      "enum":[
        "Creating",
        "Active",
        "Updating",
        "Deleting",
        "Failed"
      ]
    },
    "DocumentStatusInformation":{"type":"string"},
    "DocumentType":{
      "type":"string",
      "enum":[
        "Command",
        "Policy",
        "Automation",
        "Session",
        "Package"
      ]
    },
    "DocumentVersion":{
      "type":"string",
      "pattern":"([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)"
    },
    "DocumentVersionInfo":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The document name.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>The version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the document was created.</p>"
        },
        "IsDefaultVersion":{
          "shape":"Boolean",
          "documentation":"<p>An identifier for the default version of the document.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>The document format, either JSON or YAML.</p>"
        },
        "Status":{
          "shape":"DocumentStatus",
          "documentation":"<p>The status of the Systems Manager document, such as <code>Creating</code>, <code>Active</code>, <code>Failed</code>, and <code>Deleting</code>.</p>"
        },
        "StatusInformation":{
          "shape":"DocumentStatusInformation",
          "documentation":"<p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, \"The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct.\"</p>"
        }
      },
      "documentation":"<p>Version information about the document.</p>"
    },
    "DocumentVersionLimitExceeded":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The document has too many versions. Delete one or more document versions and try again.</p>",
      "exception":true
    },
    "DocumentVersionList":{
      "type":"list",
      "member":{"shape":"DocumentVersionInfo"},
      "min":1
    },
    "DocumentVersionName":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.]{1,128}$"
    },
    "DocumentVersionNumber":{
      "type":"string",
      "pattern":"(^[1-9][0-9]*$)"
    },
    "DoesNotExistException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Error returned when the ID specified for a resource, such as a Maintenance Window or Patch baseline, doesn't exist.</p> <p>For information about resource limits in Systems Manager, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ssm\">AWS Systems Manager Limits</a>.</p>",
      "exception":true
    },
    "DryRun":{"type":"boolean"},
    "DuplicateDocumentContent":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The content of the association document matches another document. Change the content of the document and try again.</p>",
      "exception":true
    },
    "DuplicateDocumentVersionName":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The version name has already been used in this document. Specify a different version name, and then try again.</p>",
      "exception":true
    },
    "DuplicateInstanceId":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>You cannot specify an instance ID in more than one association.</p>",
      "exception":true
    },
    "EffectiveInstanceAssociationMaxResults":{
      "type":"integer",
      "max":5,
      "min":1
    },
    "EffectivePatch":{
      "type":"structure",
      "members":{
        "Patch":{
          "shape":"Patch",
          "documentation":"<p>Provides metadata for a patch, including information such as the KB ID, severity, classification and a URL for where more information can be obtained about the patch.</p>"
        },
        "PatchStatus":{
          "shape":"PatchStatus",
          "documentation":"<p>The status of the patch in a patch baseline. This includes information about whether the patch is currently approved, due to be approved by a rule, explicitly approved, or explicitly rejected and the date the patch was or will be approved.</p>"
        }
      },
      "documentation":"<p>The EffectivePatch structure defines metadata about a patch along with the approval state of the patch in a particular patch baseline. The approval state includes information about whether the patch is currently approved, due to be approved by a rule, explicitly approved, or explicitly rejected and the date the patch was or will be approved.</p>"
    },
    "EffectivePatchList":{
      "type":"list",
      "member":{"shape":"EffectivePatch"}
    },
    "ErrorCount":{"type":"integer"},
    "ExecutionMode":{
      "type":"string",
      "enum":[
        "Auto",
        "Interactive"
      ]
    },
    "ExecutionRoleName":{
      "type":"string",
      "max":64,
      "min":1
    },
    "ExpirationDate":{"type":"timestamp"},
    "FailedCreateAssociation":{
      "type":"structure",
      "members":{
        "Entry":{
          "shape":"CreateAssociationBatchRequestEntry",
          "documentation":"<p>The association.</p>"
        },
        "Message":{
          "shape":"BatchErrorMessage",
          "documentation":"<p>A description of the failure.</p>"
        },
        "Fault":{
          "shape":"Fault",
          "documentation":"<p>The source of the failure.</p>"
        }
      },
      "documentation":"<p>Describes a failed association.</p>"
    },
    "FailedCreateAssociationList":{
      "type":"list",
      "member":{"shape":"FailedCreateAssociation"}
    },
    "FailureDetails":{
      "type":"structure",
      "members":{
        "FailureStage":{
          "shape":"String",
          "documentation":"<p>The stage of the Automation execution when the failure occurred. The stages include the following: InputValidation, PreVerification, Invocation, PostVerification.</p>"
        },
        "FailureType":{
          "shape":"String",
          "documentation":"<p>The type of Automation failure. Failure types include the following: Action, Permission, Throttling, Verification, Internal.</p>"
        },
        "Details":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>Detailed information about the Automation step failure.</p>"
        }
      },
      "documentation":"<p>Information about an Automation failure.</p>"
    },
    "Fault":{
      "type":"string",
      "enum":[
        "Client",
        "Server",
        "Unknown"
      ]
    },
    "FeatureNotAvailableException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You attempted to register a LAMBDA or STEP_FUNCTION task in a region where the corresponding service is not available. </p>",
      "exception":true
    },
    "GetAutomationExecutionRequest":{
      "type":"structure",
      "required":["AutomationExecutionId"],
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The unique identifier for an existing automation execution to examine. The execution ID is returned by StartAutomationExecution when the execution of an Automation document is initiated.</p>"
        }
      }
    },
    "GetAutomationExecutionResult":{
      "type":"structure",
      "members":{
        "AutomationExecution":{
          "shape":"AutomationExecution",
          "documentation":"<p>Detailed information about the current state of an automation execution.</p>"
        }
      }
    },
    "GetCommandInvocationRequest":{
      "type":"structure",
      "required":[
        "CommandId",
        "InstanceId"
      ],
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>(Required) The parent command ID of the invocation plugin.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>(Required) The ID of the managed instance targeted by the command. A managed instance can be an Amazon EC2 instance or an instance in your hybrid environment that is configured for Systems Manager.</p>"
        },
        "PluginName":{
          "shape":"CommandPluginName",
          "documentation":"<p>(Optional) The name of the plugin for which you want detailed results. If the document contains only one plugin, the name can be omitted and the details will be returned.</p>"
        }
      }
    },
    "GetCommandInvocationResult":{
      "type":"structure",
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>The parent command ID of the invocation plugin.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the managed instance targeted by the command. A managed instance can be an Amazon EC2 instance or an instance in your hybrid environment that is configured for Systems Manager.</p>"
        },
        "Comment":{
          "shape":"Comment",
          "documentation":"<p>The comment text for the command.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document that was executed. For example, AWS-RunShellScript.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The SSM document version used in the request.</p>"
        },
        "PluginName":{
          "shape":"CommandPluginName",
          "documentation":"<p>The name of the plugin for which you want detailed results. For example, aws:RunShellScript is a plugin.</p>"
        },
        "ResponseCode":{
          "shape":"ResponseCode",
          "documentation":"<p>The error level response code for the plugin script. If the response code is -1, then the command has not started executing on the instance, or it was not received by the instance.</p>"
        },
        "ExecutionStartDateTime":{
          "shape":"StringDateTime",
          "documentation":"<p>The date and time the plugin started executing. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedBefore</code> filter.</p> <p> <code>aws ssm list-commands --filters key=InvokedBefore,value=2017-06-07T00:00:00Z</code> </p> <p>If the plugin has not started to execute, the string is empty.</p>"
        },
        "ExecutionElapsedTime":{
          "shape":"StringDateTime",
          "documentation":"<p>Duration since ExecutionStartDateTime.</p>"
        },
        "ExecutionEndDateTime":{
          "shape":"StringDateTime",
          "documentation":"<p>The date and time the plugin was finished executing. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedAfter</code> filter.</p> <p> <code>aws ssm list-commands --filters key=InvokedAfter,value=2017-06-07T00:00:00Z</code> </p> <p>If the plugin has not started to execute, the string is empty.</p>"
        },
        "Status":{
          "shape":"CommandInvocationStatus",
          "documentation":"<p>The status of this invocation plugin. This status can be different than StatusDetails.</p>"
        },
        "StatusDetails":{
          "shape":"StatusDetails",
          "documentation":"<p>A detailed status of the command execution for an invocation. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html\">Understanding Command Statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Delayed: The system attempted to send the command to the target, but the target was not available. The instance might not be available because of network issues, the instance was stopped, etc. The system will try to deliver the command again.</p> </li> <li> <p>Success: The command or plugin was executed successfully. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: The command started to execute on the instance, but the execution was not complete before the timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command wasn't executed successfully on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul>"
        },
        "StandardOutputContent":{
          "shape":"StandardOutputContent",
          "documentation":"<p>The first 24,000 characters written by the plugin to stdout. If the command has not finished executing, if ExecutionStatus is neither Succeeded nor Failed, then this string is empty.</p>"
        },
        "StandardOutputUrl":{
          "shape":"Url",
          "documentation":"<p>The URL for the complete text written by the plugin to stdout in Amazon S3. If an Amazon S3 bucket was not specified, then this string is empty.</p>"
        },
        "StandardErrorContent":{
          "shape":"StandardErrorContent",
          "documentation":"<p>The first 8,000 characters written by the plugin to stderr. If the command has not finished executing, then this string is empty.</p>"
        },
        "StandardErrorUrl":{
          "shape":"Url",
          "documentation":"<p>The URL for the complete text written by the plugin to stderr. If the command has not finished executing, then this string is empty.</p>"
        },
        "CloudWatchOutputConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p>CloudWatch Logs information where Systems Manager sent the command output.</p>"
        }
      }
    },
    "GetConnectionStatusRequest":{
      "type":"structure",
      "required":["Target"],
      "members":{
        "Target":{
          "shape":"SessionTarget",
          "documentation":"<p>The ID of the instance.</p>"
        }
      }
    },
    "GetConnectionStatusResponse":{
      "type":"structure",
      "members":{
        "Target":{
          "shape":"SessionTarget",
          "documentation":"<p>The ID of the instance to check connection status. </p>"
        },
        "Status":{
          "shape":"ConnectionStatus",
          "documentation":"<p>The status of the connection to the instance. For example, 'Connected' or 'Not Connected'.</p>"
        }
      }
    },
    "GetDefaultPatchBaselineRequest":{
      "type":"structure",
      "members":{
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>Returns the default patch baseline for the specified operating system.</p>"
        }
      }
    },
    "GetDefaultPatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the default patch baseline.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>The operating system for the returned patch baseline. </p>"
        }
      }
    },
    "GetDeployablePatchSnapshotForInstanceRequest":{
      "type":"structure",
      "required":[
        "InstanceId",
        "SnapshotId"
      ],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance for which the appropriate patch snapshot should be retrieved.</p>"
        },
        "SnapshotId":{
          "shape":"SnapshotId",
          "documentation":"<p>The user-defined snapshot ID.</p>"
        }
      }
    },
    "GetDeployablePatchSnapshotForInstanceResult":{
      "type":"structure",
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance.</p>"
        },
        "SnapshotId":{
          "shape":"SnapshotId",
          "documentation":"<p>The user-defined snapshot ID.</p>"
        },
        "SnapshotDownloadUrl":{
          "shape":"SnapshotDownloadUrl",
          "documentation":"<p>A pre-signed Amazon S3 URL that can be used to download the patch snapshot.</p>"
        },
        "Product":{
          "shape":"Product",
          "documentation":"<p>Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot.</p>"
        }
      }
    },
    "GetDocumentRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>An optional field specifying the version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version for which you want information.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>Returns the document in the specified format. The document format can be either JSON or YAML. JSON is the default format.</p>"
        }
      }
    },
    "GetDocumentResult":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>The version of the artifact associated with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version.</p>"
        },
        "Status":{
          "shape":"DocumentStatus",
          "documentation":"<p>The status of the Systems Manager document, such as <code>Creating</code>, <code>Active</code>, <code>Updating</code>, <code>Failed</code>, and <code>Deleting</code>.</p>"
        },
        "StatusInformation":{
          "shape":"DocumentStatusInformation",
          "documentation":"<p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, \"The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct.\"</p>"
        },
        "Content":{
          "shape":"DocumentContent",
          "documentation":"<p>The contents of the Systems Manager document.</p>"
        },
        "DocumentType":{
          "shape":"DocumentType",
          "documentation":"<p>The document type.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>The document format, either JSON or YAML.</p>"
        },
        "AttachmentsContent":{
          "shape":"AttachmentContentList",
          "documentation":"<p>A description of the document attachments, including names, locations, sizes, etc.</p>"
        }
      }
    },
    "GetInventoryRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"InventoryFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "Aggregators":{
          "shape":"InventoryAggregatorList",
          "documentation":"<p>Returns counts of inventory types based on one or more expressions. For example, if you aggregate by using an expression that uses the <code>AWS:InstanceInformation.PlatformType</code> type, you can see a count of how many Windows and Linux instances exist in your inventoried fleet.</p>"
        },
        "ResultAttributes":{
          "shape":"ResultAttributeList",
          "documentation":"<p>The list of inventory item types to return.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "GetInventoryResult":{
      "type":"structure",
      "members":{
        "Entities":{
          "shape":"InventoryResultEntityList",
          "documentation":"<p>Collection of inventory entities such as a collection of instance inventory. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "GetInventorySchemaMaxResults":{
      "type":"integer",
      "max":200,
      "min":50
    },
    "GetInventorySchemaRequest":{
      "type":"structure",
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeNameFilter",
          "documentation":"<p>The type of inventory item to return.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"GetInventorySchemaMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "Aggregator":{
          "shape":"AggregatorSchemaOnly",
          "documentation":"<p>Returns inventory schemas that support aggregation. For example, this call returns the <code>AWS:InstanceInformation</code> type, because it supports aggregation based on the <code>PlatformName</code>, <code>PlatformType</code>, and <code>PlatformVersion</code> attributes.</p>"
        },
        "SubType":{
          "shape":"IsSubTypeSchema",
          "documentation":"<p>Returns the sub-type schema for a specified inventory type.</p>",
          "box":true
        }
      }
    },
    "GetInventorySchemaResult":{
      "type":"structure",
      "members":{
        "Schemas":{
          "shape":"InventoryItemSchemaResultList",
          "documentation":"<p>Inventory schemas returned by the request.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionRequest":{
      "type":"structure",
      "required":["WindowExecutionId"],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that includes the task.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionResult":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution.</p>"
        },
        "TaskIds":{
          "shape":"MaintenanceWindowExecutionTaskIdList",
          "documentation":"<p>The ID of the task executions from the Maintenance Window execution.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The status of the Maintenance Window execution.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the Status. Only available for certain status values.</p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the Maintenance Window started executing.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the Maintenance Window finished executing.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionTaskInvocationRequest":{
      "type":"structure",
      "required":[
        "WindowExecutionId",
        "TaskId",
        "InvocationId"
      ],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution for which the task is a part.</p>"
        },
        "TaskId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task in the Maintenance Window task that should be retrieved. </p>"
        },
        "InvocationId":{
          "shape":"MaintenanceWindowExecutionTaskInvocationId",
          "documentation":"<p>The invocation ID to retrieve.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionTaskInvocationResult":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The Maintenance Window execution ID.</p>"
        },
        "TaskExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The task execution ID.</p>"
        },
        "InvocationId":{
          "shape":"MaintenanceWindowExecutionTaskInvocationId",
          "documentation":"<p>The invocation ID.</p>"
        },
        "ExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskExecutionId",
          "documentation":"<p>The execution ID.</p>"
        },
        "TaskType":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>Retrieves the task type for a Maintenance Window. Task types include the following: LAMBDA, STEP_FUNCTION, AUTOMATION, RUN_COMMAND.</p>"
        },
        "Parameters":{
          "shape":"MaintenanceWindowExecutionTaskInvocationParameters",
          "documentation":"<p>The parameters used at the time that the task executed.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The task status for an invocation.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the status. Details are only available for certain status values.</p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time that the task started executing on the target.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time that the task finished executing on the target.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>User-provided value to be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window. </p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTaskTargetId",
          "documentation":"<p>The Maintenance Window target ID.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionTaskRequest":{
      "type":"structure",
      "required":[
        "WindowExecutionId",
        "TaskId"
      ],
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that includes the task.</p>"
        },
        "TaskId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task execution in the Maintenance Window task that should be retrieved.</p>"
        }
      }
    },
    "GetMaintenanceWindowExecutionTaskResult":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that includes the task.</p>"
        },
        "TaskExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task execution in the Maintenance Window task that was retrieved.</p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The ARN of the executed task.</p>"
        },
        "ServiceRole":{
          "shape":"ServiceRole",
          "documentation":"<p>The role that was assumed when executing the task.</p>"
        },
        "Type":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The type of task executed.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParametersList",
          "documentation":"<p>The parameters passed to the task when it was executed.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note> <p>The map has the following format:</p> <p>Key: string, between 1 and 255 characters</p> <p>Value: an array of strings, each string is between 1 and 255 characters</p>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The priority of the task.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The defined maximum number of task executions that could be run in parallel.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The defined maximum number of task execution errors allowed before scheduling of the task execution would have been stopped.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The status of the task.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the Status. Only available for certain status values.</p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the task execution started.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the task execution completed.</p>"
        }
      }
    },
    "GetMaintenanceWindowRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the desired Maintenance Window.</p>"
        }
      }
    },
    "GetMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the created Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>The description of the Maintenance Window.</p>"
        },
        "StartDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become active. The Maintenance Window will not run before this specified time.</p>"
        },
        "EndDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become inactive. The Maintenance Window will not run after this specified time.</p>"
        },
        "Schedule":{
          "shape":"MaintenanceWindowSchedule",
          "documentation":"<p>The schedule of the Maintenance Window in the form of a cron or rate expression.</p>"
        },
        "ScheduleTimezone":{
          "shape":"MaintenanceWindowTimezone",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"etc/UTC\", or \"Asia/Seoul\". For more information, see the <a href=\"https://www.iana.org/time-zones\">Time Zone Database</a> on the IANA website.</p>"
        },
        "NextExecutionTime":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The next time the Maintenance Window will actually run, taking into account any specified times for the Maintenance Window to become active or inactive.</p>"
        },
        "Duration":{
          "shape":"MaintenanceWindowDurationHours",
          "documentation":"<p>The duration of the Maintenance Window in hours.</p>"
        },
        "Cutoff":{
          "shape":"MaintenanceWindowCutoff",
          "documentation":"<p>The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.</p>"
        },
        "AllowUnassociatedTargets":{
          "shape":"MaintenanceWindowAllowUnassociatedTargets",
          "documentation":"<p>Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.</p>"
        },
        "Enabled":{
          "shape":"MaintenanceWindowEnabled",
          "documentation":"<p>Whether the Maintenance Windows is enabled.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the Maintenance Window was created.</p>"
        },
        "ModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the Maintenance Window was last modified.</p>"
        }
      }
    },
    "GetMaintenanceWindowTaskRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "WindowTaskId"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID that includes the task to retrieve.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The Maintenance Window task ID to retrieve.</p>"
        }
      }
    },
    "GetMaintenanceWindowTaskResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The retrieved Maintenance Window ID.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The retrieved Maintenance Window task ID.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets where the task should execute.</p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTION tasks, the value is the state machine ARN.</p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM service role to assume during task execution.</p>"
        },
        "TaskType":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The type of task to execute.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParameters",
          "documentation":"<p>The parameters to pass to the task when it executes.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "TaskInvocationParameters":{
          "shape":"MaintenanceWindowTaskInvocationParameters",
          "documentation":"<p>The parameters to pass to the task when it executes.</p>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The priority of the task when it executes. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run this task in parallel.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maximum number of errors allowed before the task stops being scheduled.</p>"
        },
        "LoggingInfo":{
          "shape":"LoggingInfo",
          "documentation":"<p>The location in Amazon S3 where the task results are logged.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The retrieved task name.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>The retrieved task description.</p>"
        }
      }
    },
    "GetParameterHistoryRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The name of a parameter you want to query.</p>"
        },
        "WithDecryption":{
          "shape":"Boolean",
          "documentation":"<p>Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>",
          "box":true
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "GetParameterHistoryResult":{
      "type":"structure",
      "members":{
        "Parameters":{
          "shape":"ParameterHistoryList",
          "documentation":"<p>A list of parameters returned by the request.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "GetParameterRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The name of the parameter you want to query.</p>"
        },
        "WithDecryption":{
          "shape":"Boolean",
          "documentation":"<p>Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>",
          "box":true
        }
      }
    },
    "GetParameterResult":{
      "type":"structure",
      "members":{
        "Parameter":{
          "shape":"Parameter",
          "documentation":"<p>Information about a parameter.</p>"
        }
      }
    },
    "GetParametersByPathMaxResults":{
      "type":"integer",
      "max":10,
      "min":1
    },
    "GetParametersByPathRequest":{
      "type":"structure",
      "required":["Path"],
      "members":{
        "Path":{
          "shape":"PSParameterName",
          "documentation":"<p>The hierarchy for the parameter. Hierarchies start with a forward slash (/) and end with the parameter name. A parameter name hierarchy can have a maximum of 15 levels. Here is an example of a hierarchy: <code>/Finance/Prod/IAD/WinServ2016/license33</code> </p>"
        },
        "Recursive":{
          "shape":"Boolean",
          "documentation":"<p>Retrieve all parameters within a hierarchy.</p> <important> <p>If a user has access to a path, then the user can access all levels of that path. For example, if a user has permission to access path /a, then the user can also access /a/b. Even if a user has explicitly been denied access in IAM for parameter /a, they can still call the GetParametersByPath API action recursively and view /a/b.</p> </important>",
          "box":true
        },
        "ParameterFilters":{
          "shape":"ParameterStringFilterList",
          "documentation":"<p>Filters to limit the request results.</p> <note> <p>You can't filter using the parameter name.</p> </note>"
        },
        "WithDecryption":{
          "shape":"Boolean",
          "documentation":"<p>Retrieve all parameters in a hierarchy with their value decrypted.</p>",
          "box":true
        },
        "MaxResults":{
          "shape":"GetParametersByPathMaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        }
      }
    },
    "GetParametersByPathResult":{
      "type":"structure",
      "members":{
        "Parameters":{
          "shape":"ParameterList",
          "documentation":"<p>A list of parameters found in the specified hierarchy.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "GetParametersRequest":{
      "type":"structure",
      "required":["Names"],
      "members":{
        "Names":{
          "shape":"ParameterNameList",
          "documentation":"<p>Names of the parameters for which you want to query information.</p>"
        },
        "WithDecryption":{
          "shape":"Boolean",
          "documentation":"<p>Return decrypted secure string value. Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>",
          "box":true
        }
      }
    },
    "GetParametersResult":{
      "type":"structure",
      "members":{
        "Parameters":{
          "shape":"ParameterList",
          "documentation":"<p>A list of details for a parameter.</p>"
        },
        "InvalidParameters":{
          "shape":"ParameterNameList",
          "documentation":"<p>A list of parameters that are not formatted correctly or do not run when executed.</p>"
        }
      }
    },
    "GetPatchBaselineForPatchGroupRequest":{
      "type":"structure",
      "required":["PatchGroup"],
      "members":{
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group whose patch baseline should be retrieved.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>Returns he operating system rule specified for patch groups using the patch baseline.</p>"
        }
      }
    },
    "GetPatchBaselineForPatchGroupResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline that should be used for the patch group.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>The operating system rule specified for patch groups using the patch baseline.</p>"
        }
      }
    },
    "GetPatchBaselineRequest":{
      "type":"structure",
      "required":["BaselineId"],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to retrieve.</p>"
        }
      }
    },
    "GetPatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the retrieved patch baseline.</p>"
        },
        "Name":{
          "shape":"BaselineName",
          "documentation":"<p>The name of the patch baseline.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>Returns the operating system specified for the patch baseline.</p>"
        },
        "GlobalFilters":{
          "shape":"PatchFilterGroup",
          "documentation":"<p>A set of global filters used to exclude patches from the baseline.</p>"
        },
        "ApprovalRules":{
          "shape":"PatchRuleGroup",
          "documentation":"<p>A set of rules used to include patches in the baseline.</p>"
        },
        "ApprovedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly approved patches for the baseline.</p>"
        },
        "ApprovedPatchesComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>Returns the specified compliance severity level for approved patches in the patch baseline.</p>"
        },
        "ApprovedPatchesEnableNonSecurity":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>",
          "box":true
        },
        "RejectedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly rejected patches for the baseline.</p>"
        },
        "RejectedPatchesAction":{
          "shape":"PatchAction",
          "documentation":"<p>The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.</p>"
        },
        "PatchGroups":{
          "shape":"PatchGroupList",
          "documentation":"<p>Patch groups included in the patch baseline.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the patch baseline was created.</p>"
        },
        "ModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the patch baseline was last modified.</p>"
        },
        "Description":{
          "shape":"BaselineDescription",
          "documentation":"<p>A description of the patch baseline.</p>"
        },
        "Sources":{
          "shape":"PatchSourceList",
          "documentation":"<p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>"
        }
      }
    },
    "HierarchyLevelLimitExceededException":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A hierarchy can have a maximum of 15 levels. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html\">Requirements and Constraints for Parameter Names</a> in the <i>AWS Systems Manager User Guide</i>. </p>"
        }
      },
      "documentation":"<p>A hierarchy can have a maximum of 15 levels. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html\">Requirements and Constraints for Parameter Names</a> in the <i>AWS Systems Manager User Guide</i>. </p>",
      "exception":true
    },
    "HierarchyTypeMismatchException":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Parameter Store does not support changing a parameter type in a hierarchy. For example, you can't change a parameter from a String type to a SecureString type. You must create a new, unique parameter.</p>"
        }
      },
      "documentation":"<p>Parameter Store does not support changing a parameter type in a hierarchy. For example, you can't change a parameter from a String type to a SecureString type. You must create a new, unique parameter.</p>",
      "exception":true
    },
    "IPAddress":{
      "type":"string",
      "max":46,
      "min":1
    },
    "IamRole":{
      "type":"string",
      "max":64
    },
    "IdempotencyToken":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"
    },
    "IdempotentParameterMismatch":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>",
      "exception":true
    },
    "InstallOverrideList":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^https://.+$|^s3://([^/]+)/(.*?([^/]+))$"
    },
    "InstanceAggregatedAssociationOverview":{
      "type":"structure",
      "members":{
        "DetailedStatus":{
          "shape":"StatusName",
          "documentation":"<p>Detailed status information about the aggregated associations.</p>"
        },
        "InstanceAssociationStatusAggregatedCount":{
          "shape":"InstanceAssociationStatusAggregatedCount",
          "documentation":"<p>The number of associations for the instance(s).</p>"
        }
      },
      "documentation":"<p>Status information about the aggregated associations.</p>"
    },
    "InstanceAssociation":{
      "type":"structure",
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID.</p>"
        },
        "Content":{
          "shape":"DocumentContent",
          "documentation":"<p>The content of the association document for the instance(s).</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>Version information for the association on the instance.</p>"
        }
      },
      "documentation":"<p>One or more association documents on the instance. </p>"
    },
    "InstanceAssociationExecutionSummary":{
      "type":"string",
      "max":512,
      "min":1
    },
    "InstanceAssociationList":{
      "type":"list",
      "member":{"shape":"InstanceAssociation"}
    },
    "InstanceAssociationOutputLocation":{
      "type":"structure",
      "members":{
        "S3Location":{
          "shape":"S3OutputLocation",
          "documentation":"<p>An Amazon S3 bucket where you want to store the results of this request.</p>"
        }
      },
      "documentation":"<p>An Amazon S3 bucket where you want to store the results of this request.</p>"
    },
    "InstanceAssociationOutputUrl":{
      "type":"structure",
      "members":{
        "S3OutputUrl":{
          "shape":"S3OutputUrl",
          "documentation":"<p>The URL of Amazon S3 bucket where you want to store the results of this request.</p>"
        }
      },
      "documentation":"<p>The URL of Amazon S3 bucket where you want to store the results of this request.</p>"
    },
    "InstanceAssociationStatusAggregatedCount":{
      "type":"map",
      "key":{"shape":"StatusName"},
      "value":{"shape":"InstanceCount"}
    },
    "InstanceAssociationStatusInfo":{
      "type":"structure",
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID.</p>"
        },
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the association.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The association document verions.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>The version of the association applied to the instance.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID where the association was created.</p>"
        },
        "ExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the instance association executed. </p>"
        },
        "Status":{
          "shape":"StatusName",
          "documentation":"<p>Status information about the instance association.</p>"
        },
        "DetailedStatus":{
          "shape":"StatusName",
          "documentation":"<p>Detailed status information about the instance association.</p>"
        },
        "ExecutionSummary":{
          "shape":"InstanceAssociationExecutionSummary",
          "documentation":"<p>Summary information about association execution.</p>"
        },
        "ErrorCode":{
          "shape":"AgentErrorCode",
          "documentation":"<p>An error code returned by the request to create the association.</p>"
        },
        "OutputUrl":{
          "shape":"InstanceAssociationOutputUrl",
          "documentation":"<p>A URL for an Amazon S3 bucket where you want to store the results of this request.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>The name of the association applied to the instance.</p>"
        }
      },
      "documentation":"<p>Status information about the instance association.</p>"
    },
    "InstanceAssociationStatusInfos":{
      "type":"list",
      "member":{"shape":"InstanceAssociationStatusInfo"}
    },
    "InstanceCount":{"type":"integer"},
    "InstanceId":{
      "type":"string",
      "pattern":"(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)"
    },
    "InstanceIdList":{
      "type":"list",
      "member":{"shape":"InstanceId"},
      "max":50,
      "min":0
    },
    "InstanceInformation":{
      "type":"structure",
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID. </p>"
        },
        "PingStatus":{
          "shape":"PingStatus",
          "documentation":"<p>Connection status of SSM Agent. </p>"
        },
        "LastPingDateTime":{
          "shape":"DateTime",
          "documentation":"<p>The date and time when agent last pinged Systems Manager service. </p>",
          "box":true
        },
        "AgentVersion":{
          "shape":"Version",
          "documentation":"<p>The version of SSM Agent running on your Linux instance. </p>"
        },
        "IsLatestVersion":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether latest version of SSM Agent is running on your instance. Some older versions of Windows Server use the EC2Config service to process SSM requests. For this reason, this field does not indicate whether or not the latest version is installed on Windows managed instances.</p>",
          "box":true
        },
        "PlatformType":{
          "shape":"PlatformType",
          "documentation":"<p>The operating system platform type. </p>"
        },
        "PlatformName":{
          "shape":"String",
          "documentation":"<p>The name of the operating system platform running on your instance. </p>"
        },
        "PlatformVersion":{
          "shape":"String",
          "documentation":"<p>The version of the OS platform running on your instance. </p>"
        },
        "ActivationId":{
          "shape":"ActivationId",
          "documentation":"<p>The activation ID created by Systems Manager when the server or VM was registered.</p>"
        },
        "IamRole":{
          "shape":"IamRole",
          "documentation":"<p>The Amazon Identity and Access Management (IAM) role assigned to the on-premises Systems Manager managed instances. This call does not return the IAM role for Amazon EC2 instances. </p>"
        },
        "RegistrationDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the server or VM was registered with AWS as a managed instance.</p>",
          "box":true
        },
        "ResourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The type of instance. Instances are either EC2 instances or managed instances. </p>"
        },
        "Name":{
          "shape":"String",
          "documentation":"<p>The name of the managed instance.</p>"
        },
        "IPAddress":{
          "shape":"IPAddress",
          "documentation":"<p>The IP address of the managed instance.</p>"
        },
        "ComputerName":{
          "shape":"ComputerName",
          "documentation":"<p>The fully qualified host name of the managed instance.</p>"
        },
        "AssociationStatus":{
          "shape":"StatusName",
          "documentation":"<p>The status of the association.</p>"
        },
        "LastAssociationExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the association was last executed.</p>"
        },
        "LastSuccessfulAssociationExecutionDate":{
          "shape":"DateTime",
          "documentation":"<p>The last date the association was successfully run.</p>"
        },
        "AssociationOverview":{
          "shape":"InstanceAggregatedAssociationOverview",
          "documentation":"<p>Information about the association.</p>"
        }
      },
      "documentation":"<p>Describes a filter for a specific list of instances. </p>"
    },
    "InstanceInformationFilter":{
      "type":"structure",
      "required":[
        "key",
        "valueSet"
      ],
      "members":{
        "key":{
          "shape":"InstanceInformationFilterKey",
          "documentation":"<p>The name of the filter. </p>"
        },
        "valueSet":{
          "shape":"InstanceInformationFilterValueSet",
          "documentation":"<p>The filter values.</p>"
        }
      },
      "documentation":"<p>Describes a filter for a specific list of instances. You can filter instances information by using tags. You specify tags by using a key-value mapping.</p> <p>Use this action instead of the <a>DescribeInstanceInformationRequest$InstanceInformationFilterList</a> method. The <code>InstanceInformationFilterList</code> method is a legacy method and does not support tags. </p>"
    },
    "InstanceInformationFilterKey":{
      "type":"string",
      "enum":[
        "InstanceIds",
        "AgentVersion",
        "PingStatus",
        "PlatformTypes",
        "ActivationIds",
        "IamRole",
        "ResourceType",
        "AssociationStatus"
      ]
    },
    "InstanceInformationFilterList":{
      "type":"list",
      "member":{"shape":"InstanceInformationFilter"},
      "min":0
    },
    "InstanceInformationFilterValue":{
      "type":"string",
      "min":1
    },
    "InstanceInformationFilterValueSet":{
      "type":"list",
      "member":{"shape":"InstanceInformationFilterValue"},
      "max":100,
      "min":1
    },
    "InstanceInformationList":{
      "type":"list",
      "member":{"shape":"InstanceInformation"}
    },
    "InstanceInformationStringFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"InstanceInformationStringFilterKey",
          "documentation":"<p>The filter key name to describe your instances. For example:</p> <p>\"InstanceIds\"|\"AgentVersion\"|\"PingStatus\"|\"PlatformTypes\"|\"ActivationIds\"|\"IamRole\"|\"ResourceType\"|\"AssociationStatus\"|\"Tag Key\"</p>"
        },
        "Values":{
          "shape":"InstanceInformationFilterValueSet",
          "documentation":"<p>The filter values.</p>"
        }
      },
      "documentation":"<p>The filters to describe or get information about your managed instances.</p>"
    },
    "InstanceInformationStringFilterKey":{
      "type":"string",
      "min":1
    },
    "InstanceInformationStringFilterList":{
      "type":"list",
      "member":{"shape":"InstanceInformationStringFilter"},
      "min":0
    },
    "InstancePatchState":{
      "type":"structure",
      "required":[
        "InstanceId",
        "PatchGroup",
        "BaselineId",
        "OperationStartTime",
        "OperationEndTime",
        "Operation"
      ],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the managed instance the high-level patch compliance information was collected for.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group the managed instance belongs to.</p>"
        },
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline used to patch the instance.</p>"
        },
        "SnapshotId":{
          "shape":"SnapshotId",
          "documentation":"<p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>"
        },
        "InstallOverrideList":{
          "shape":"InstallOverrideList",
          "documentation":"<p>An https URL or an Amazon S3 path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an Amazon S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p> <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html\">About the SSM Document AWS-RunPatchBaseline</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>Placeholder information. This field will always be empty in the current release of the service.</p>"
        },
        "InstalledCount":{
          "shape":"PatchInstalledCount",
          "documentation":"<p>The number of patches from the patch baseline that are installed on the instance.</p>"
        },
        "InstalledOtherCount":{
          "shape":"PatchInstalledOtherCount",
          "documentation":"<p>The number of patches not specified in the patch baseline that are installed on the instance.</p>"
        },
        "InstalledRejectedCount":{
          "shape":"PatchInstalledRejectedCount",
          "documentation":"<p>The number of instances with patches installed that are specified in a RejectedPatches list. Patches with a status of <i>InstalledRejected</i> were typically installed before they were added to a RejectedPatches list.</p> <note> <p>If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of InstalledRejectedCount will always be 0 (zero).</p> </note>",
          "box":true
        },
        "MissingCount":{
          "shape":"PatchMissingCount",
          "documentation":"<p>The number of patches from the patch baseline that are applicable for the instance but aren't currently installed.</p>"
        },
        "FailedCount":{
          "shape":"PatchFailedCount",
          "documentation":"<p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>"
        },
        "NotApplicableCount":{
          "shape":"PatchNotApplicableCount",
          "documentation":"<p>The number of patches from the patch baseline that aren't applicable for the instance and hence aren't installed on the instance.</p>"
        },
        "OperationStartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the most recent patching operation was started on the instance.</p>"
        },
        "OperationEndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the most recent patching operation completed on the instance.</p>"
        },
        "Operation":{
          "shape":"PatchOperationType",
          "documentation":"<p>The type of patching operation that was performed: SCAN (assess patch compliance state) or INSTALL (install missing patches).</p>"
        }
      },
      "documentation":"<p>Defines the high-level patch compliance state for a managed instance, providing information about the number of installed, missing, not applicable, and failed patches along with metadata about the operation when this information was gathered for the instance.</p>"
    },
    "InstancePatchStateFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values",
        "Type"
      ],
      "members":{
        "Key":{
          "shape":"InstancePatchStateFilterKey",
          "documentation":"<p>The key for the filter. Supported values are FailedCount, InstalledCount, InstalledOtherCount, MissingCount and NotApplicableCount.</p>"
        },
        "Values":{
          "shape":"InstancePatchStateFilterValues",
          "documentation":"<p>The value for the filter, must be an integer greater than or equal to 0.</p>"
        },
        "Type":{
          "shape":"InstancePatchStateOperatorType",
          "documentation":"<p>The type of comparison that should be performed for the value: Equal, NotEqual, LessThan or GreaterThan.</p>"
        }
      },
      "documentation":"<p>Defines a filter used in DescribeInstancePatchStatesForPatchGroup used to scope down the information returned by the API.</p>"
    },
    "InstancePatchStateFilterKey":{
      "type":"string",
      "max":200,
      "min":1
    },
    "InstancePatchStateFilterList":{
      "type":"list",
      "member":{"shape":"InstancePatchStateFilter"},
      "max":4,
      "min":0
    },
    "InstancePatchStateFilterValue":{"type":"string"},
    "InstancePatchStateFilterValues":{
      "type":"list",
      "member":{"shape":"InstancePatchStateFilterValue"},
      "max":1,
      "min":1
    },
    "InstancePatchStateList":{
      "type":"list",
      "member":{"shape":"InstancePatchState"}
    },
    "InstancePatchStateOperatorType":{
      "type":"string",
      "enum":[
        "Equal",
        "NotEqual",
        "LessThan",
        "GreaterThan"
      ]
    },
    "InstancePatchStatesList":{
      "type":"list",
      "member":{"shape":"InstancePatchState"},
      "max":5,
      "min":1
    },
    "InstanceTagName":{
      "type":"string",
      "max":255
    },
    "InstancesCount":{"type":"integer"},
    "Integer":{"type":"integer"},
    "InternalServerError":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>An error occurred on the server side.</p>",
      "exception":true,
      "fault":true
    },
    "InvalidActivation":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The activation is not valid. The activation might have been deleted, or the ActivationId and the ActivationCode do not match.</p>",
      "exception":true
    },
    "InvalidActivationId":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The activation ID is not valid. Verify the you entered the correct ActivationId or ActivationCode and try again.</p>",
      "exception":true
    },
    "InvalidAggregatorException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified aggregator is not valid for inventory groups. Verify that the aggregator uses a valid inventory type such as <code>AWS:Application</code> or <code>AWS:InstanceInformation</code>.</p>",
      "exception":true
    },
    "InvalidAllowedPatternException":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The request does not meet the regular expression requirement.</p>"
        }
      },
      "documentation":"<p>The request does not meet the regular expression requirement.</p>",
      "exception":true
    },
    "InvalidAssociation":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The association is not valid or does not exist. </p>",
      "exception":true
    },
    "InvalidAssociationVersion":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The version you specified is not valid. Use ListAssociationVersions to view all versions of an association according to the association ID. Or, use the <code>$LATEST</code> parameter to view the latest version of the association.</p>",
      "exception":true
    },
    "InvalidAutomationExecutionParametersException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The supplied parameters for invoking the specified Automation document are incorrect. For example, they may not match the set of parameters permitted for the specified Automation document.</p>",
      "exception":true
    },
    "InvalidAutomationSignalException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The signal is not valid for the current Automation execution.</p>",
      "exception":true
    },
    "InvalidAutomationStatusUpdateException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified update status operation is not valid.</p>",
      "exception":true
    },
    "InvalidCommandId":{
      "type":"structure",
      "members":{
      },
      "exception":true
    },
    "InvalidDeleteInventoryParametersException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>One or more of the parameters specified for the delete operation is not valid. Verify all parameters and try again.</p>",
      "exception":true
    },
    "InvalidDeletionIdException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The ID specified for the delete operation does not exist or is not valide. Verify the ID and try again.</p>",
      "exception":true
    },
    "InvalidDocument":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"String",
          "documentation":"<p>The document does not exist or the document is not available to the user. This exception can be issued by CreateAssociation, CreateAssociationBatch, DeleteAssociation, DeleteDocument, DescribeAssociation, DescribeDocument, GetDocument, SendCommand, or UpdateAssociationStatus. </p>"
        }
      },
      "documentation":"<p>The specified document does not exist.</p>",
      "exception":true
    },
    "InvalidDocumentContent":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"String",
          "documentation":"<p>A description of the validation error.</p>"
        }
      },
      "documentation":"<p>The content for the document is not valid.</p>",
      "exception":true
    },
    "InvalidDocumentOperation":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You attempted to delete a document while it is still shared. You must stop sharing the document before you can delete it.</p>",
      "exception":true
    },
    "InvalidDocumentSchemaVersion":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The version of the document schema is not supported.</p>",
      "exception":true
    },
    "InvalidDocumentVersion":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The document version is not valid or does not exist.</p>",
      "exception":true
    },
    "InvalidFilter":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The filter name is not valid. Verify the you entered the correct name and try again.</p>",
      "exception":true
    },
    "InvalidFilterKey":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The specified key is not valid.</p>",
      "exception":true
    },
    "InvalidFilterOption":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The specified filter option is not valid. Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.</p>"
        }
      },
      "documentation":"<p>The specified filter option is not valid. Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.</p>",
      "exception":true
    },
    "InvalidFilterValue":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The filter value is not valid. Verify the value and try again.</p>",
      "exception":true
    },
    "InvalidInstanceId":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. On managed instances and Linux instances, verify that the SSM Agent is running. On EC2 Windows instances, verify that the EC2Config service is running.</p> <p>SSM Agent or EC2Config service is not registered to the SSM endpoint. Try reinstalling SSM Agent or EC2Config service.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>",
      "exception":true
    },
    "InvalidInstanceInformationFilterValue":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified filter value is not valid.</p>",
      "exception":true
    },
    "InvalidInventoryGroupException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified inventory group is not valid.</p>",
      "exception":true
    },
    "InvalidInventoryItemContextException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You specified invalid keys or values in the <code>Context</code> attribute for <code>InventoryItem</code>. Verify the keys and values, and try again.</p>",
      "exception":true
    },
    "InvalidInventoryRequestException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The request is not valid.</p>",
      "exception":true
    },
    "InvalidItemContentException":{
      "type":"structure",
      "members":{
        "TypeName":{"shape":"InventoryItemTypeName"},
        "Message":{"shape":"String"}
      },
      "documentation":"<p>One or more content items is not valid.</p>",
      "exception":true
    },
    "InvalidKeyId":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The query key ID is not valid.</p>",
      "exception":true
    },
    "InvalidNextToken":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified token is not valid.</p>",
      "exception":true
    },
    "InvalidNotificationConfig":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>One or more configuration items is not valid. Verify that a valid Amazon Resource Name (ARN) was provided for an Amazon SNS topic.</p>",
      "exception":true
    },
    "InvalidOptionException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The delete inventory option specified is not valid. Verify the option and try again.</p>",
      "exception":true
    },
    "InvalidOutputFolder":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The S3 bucket does not exist.</p>",
      "exception":true
    },
    "InvalidOutputLocation":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The output location is not valid or does not exist.</p>",
      "exception":true
    },
    "InvalidParameters":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.</p>",
      "exception":true
    },
    "InvalidPermissionType":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The permission type is not supported. <i>Share</i> is the only supported permission type.</p>",
      "exception":true
    },
    "InvalidPluginName":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The plugin name is not valid.</p>",
      "exception":true
    },
    "InvalidResourceId":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>",
      "exception":true
    },
    "InvalidResourceType":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>",
      "exception":true
    },
    "InvalidResultAttributeException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified inventory item result attribute is not valid.</p>",
      "exception":true
    },
    "InvalidRole":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The role name can't contain invalid characters. Also verify that you specified an IAM role for notifications that includes the required trust policy. For information about configuring the IAM role for Run Command notifications, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html\">Configuring Amazon SNS Notifications for Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>",
      "exception":true
    },
    "InvalidSchedule":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The schedule is invalid. Verify your cron or rate expression and try again.</p>",
      "exception":true
    },
    "InvalidTarget":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The target is not valid or does not exist. It might not be configured for EC2 Systems Manager or you might not have permission to perform the operation.</p>",
      "exception":true
    },
    "InvalidTypeNameException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The parameter type name is not valid.</p>",
      "exception":true
    },
    "InvalidUpdate":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The update is not valid.</p>",
      "exception":true
    },
    "InventoryAggregator":{
      "type":"structure",
      "members":{
        "Expression":{
          "shape":"InventoryAggregatorExpression",
          "documentation":"<p>The inventory type and attribute name for aggregation.</p>"
        },
        "Aggregators":{
          "shape":"InventoryAggregatorList",
          "documentation":"<p>Nested aggregators to further refine aggregation for an inventory type.</p>"
        },
        "Groups":{
          "shape":"InventoryGroupList",
          "documentation":"<p>A user-defined set of one or more filters on which to aggregate inventory data. Groups return a count of resources that match and don't match the specified criteria.</p>"
        }
      },
      "documentation":"<p>Specifies the inventory type and attribute for the aggregation execution.</p>"
    },
    "InventoryAggregatorExpression":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "InventoryAggregatorList":{
      "type":"list",
      "member":{"shape":"InventoryAggregator"},
      "max":10,
      "min":1
    },
    "InventoryAttributeDataType":{
      "type":"string",
      "enum":[
        "string",
        "number"
      ]
    },
    "InventoryDeletionId":{"type":"string"},
    "InventoryDeletionLastStatusMessage":{"type":"string"},
    "InventoryDeletionLastStatusUpdateTime":{"type":"timestamp"},
    "InventoryDeletionStartTime":{"type":"timestamp"},
    "InventoryDeletionStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Complete"
      ]
    },
    "InventoryDeletionStatusItem":{
      "type":"structure",
      "members":{
        "DeletionId":{
          "shape":"InventoryDeletionId",
          "documentation":"<p>The deletion ID returned by the <code>DeleteInventory</code> action.</p>"
        },
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the inventory data type.</p>"
        },
        "DeletionStartTime":{
          "shape":"InventoryDeletionStartTime",
          "documentation":"<p>The UTC timestamp when the delete operation started.</p>"
        },
        "LastStatus":{
          "shape":"InventoryDeletionStatus",
          "documentation":"<p>The status of the operation. Possible values are InProgress and Complete.</p>"
        },
        "LastStatusMessage":{
          "shape":"InventoryDeletionLastStatusMessage",
          "documentation":"<p>Information about the status.</p>"
        },
        "DeletionSummary":{
          "shape":"InventoryDeletionSummary",
          "documentation":"<p>Information about the delete operation. For more information about this summary, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-delete.html#sysman-inventory-delete-summary\">Understanding the Delete Inventory Summary</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "LastStatusUpdateTime":{
          "shape":"InventoryDeletionLastStatusUpdateTime",
          "documentation":"<p>The UTC timestamp of when the last status report.</p>"
        }
      },
      "documentation":"<p>Status information returned by the <code>DeleteInventory</code> action.</p>"
    },
    "InventoryDeletionSummary":{
      "type":"structure",
      "members":{
        "TotalCount":{
          "shape":"TotalCount",
          "documentation":"<p>The total number of items to delete. This count does not change during the delete operation.</p>"
        },
        "RemainingCount":{
          "shape":"RemainingCount",
          "documentation":"<p>Remaining number of items to delete.</p>"
        },
        "SummaryItems":{
          "shape":"InventoryDeletionSummaryItems",
          "documentation":"<p>A list of counts and versions for deleted items.</p>"
        }
      },
      "documentation":"<p>Information about the delete operation.</p>"
    },
    "InventoryDeletionSummaryItem":{
      "type":"structure",
      "members":{
        "Version":{
          "shape":"InventoryItemSchemaVersion",
          "documentation":"<p>The inventory type version.</p>"
        },
        "Count":{
          "shape":"ResourceCount",
          "documentation":"<p>A count of the number of deleted items.</p>"
        },
        "RemainingCount":{
          "shape":"RemainingCount",
          "documentation":"<p>The remaining number of items to delete.</p>"
        }
      },
      "documentation":"<p>Either a count, remaining count, or a version number in a delete inventory summary.</p>"
    },
    "InventoryDeletionSummaryItems":{
      "type":"list",
      "member":{"shape":"InventoryDeletionSummaryItem"}
    },
    "InventoryDeletionsList":{
      "type":"list",
      "member":{"shape":"InventoryDeletionStatusItem"}
    },
    "InventoryFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"InventoryFilterKey",
          "documentation":"<p>The name of the filter key.</p>"
        },
        "Values":{
          "shape":"InventoryFilterValueList",
          "documentation":"<p>Inventory filter values. Example: inventory filter where instance IDs are specified as values Key=AWS:InstanceInformation.InstanceId,Values= i-a12b3c4d5e6g, i-1a2b3c4d5e6,Type=Equal </p>"
        },
        "Type":{
          "shape":"InventoryQueryOperatorType",
          "documentation":"<p>The type of filter. Valid values include the following: \"Equal\"|\"NotEqual\"|\"BeginWith\"|\"LessThan\"|\"GreaterThan\"</p>"
        }
      },
      "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
    },
    "InventoryFilterKey":{
      "type":"string",
      "max":200,
      "min":1
    },
    "InventoryFilterList":{
      "type":"list",
      "member":{"shape":"InventoryFilter"},
      "max":5,
      "min":1
    },
    "InventoryFilterValue":{"type":"string"},
    "InventoryFilterValueList":{
      "type":"list",
      "member":{"shape":"InventoryFilterValue"},
      "max":40,
      "min":1
    },
    "InventoryGroup":{
      "type":"structure",
      "required":[
        "Name",
        "Filters"
      ],
      "members":{
        "Name":{
          "shape":"InventoryGroupName",
          "documentation":"<p>The name of the group.</p>"
        },
        "Filters":{
          "shape":"InventoryFilterList",
          "documentation":"<p>Filters define the criteria for the group. The <code>matchingCount</code> field displays the number of resources that match the criteria. The <code>notMatchingCount</code> field displays the number of resources that don't match the criteria. </p>"
        }
      },
      "documentation":"<p>A user-defined set of one or more filters on which to aggregate inventory data. Groups return a count of resources that match and don't match the specified criteria.</p>"
    },
    "InventoryGroupList":{
      "type":"list",
      "member":{"shape":"InventoryGroup"},
      "max":10,
      "min":1
    },
    "InventoryGroupName":{
      "type":"string",
      "max":200,
      "min":1
    },
    "InventoryItem":{
      "type":"structure",
      "required":[
        "TypeName",
        "SchemaVersion",
        "CaptureTime"
      ],
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate.</p>"
        },
        "SchemaVersion":{
          "shape":"InventoryItemSchemaVersion",
          "documentation":"<p>The schema version for the inventory item.</p>"
        },
        "CaptureTime":{
          "shape":"InventoryItemCaptureTime",
          "documentation":"<p>The time the inventory information was collected.</p>"
        },
        "ContentHash":{
          "shape":"InventoryItemContentHash",
          "documentation":"<p>MD5 hash of the inventory item type contents. The content hash is used to determine whether to update inventory information. The PutInventory API does not update the inventory item type contents if the MD5 hash has not changed since last update. </p>"
        },
        "Content":{
          "shape":"InventoryItemEntryList",
          "documentation":"<p>The inventory data of the inventory type.</p>"
        },
        "Context":{
          "shape":"InventoryItemContentContext",
          "documentation":"<p>A map of associated properties for a specified inventory type. For example, with this attribute, you can specify the <code>ExecutionId</code>, <code>ExecutionType</code>, <code>ComplianceType</code> properties of the <code>AWS:ComplianceItem</code> type.</p>"
        }
      },
      "documentation":"<p>Information collected from managed instances based on your inventory policy document</p>"
    },
    "InventoryItemAttribute":{
      "type":"structure",
      "required":[
        "Name",
        "DataType"
      ],
      "members":{
        "Name":{
          "shape":"InventoryItemAttributeName",
          "documentation":"<p>Name of the inventory item attribute.</p>"
        },
        "DataType":{
          "shape":"InventoryAttributeDataType",
          "documentation":"<p>The data type of the inventory item attribute. </p>"
        }
      },
      "documentation":"<p>Attributes are the entries within the inventory item content. It contains name and value.</p>"
    },
    "InventoryItemAttributeList":{
      "type":"list",
      "member":{"shape":"InventoryItemAttribute"},
      "max":50,
      "min":1
    },
    "InventoryItemAttributeName":{"type":"string"},
    "InventoryItemCaptureTime":{
      "type":"string",
      "pattern":"^(20)[0-9][0-9]-(0[1-9]|1[012])-([12][0-9]|3[01]|0[1-9])(T)(2[0-3]|[0-1][0-9])(:[0-5][0-9])(:[0-5][0-9])(Z)$"
    },
    "InventoryItemContentContext":{
      "type":"map",
      "key":{"shape":"AttributeName"},
      "value":{"shape":"AttributeValue"},
      "max":50,
      "min":0
    },
    "InventoryItemContentHash":{
      "type":"string",
      "max":256
    },
    "InventoryItemEntry":{
      "type":"map",
      "key":{"shape":"AttributeName"},
      "value":{"shape":"AttributeValue"},
      "max":50,
      "min":0
    },
    "InventoryItemEntryList":{
      "type":"list",
      "member":{"shape":"InventoryItemEntry"},
      "max":10000,
      "min":0
    },
    "InventoryItemList":{
      "type":"list",
      "member":{"shape":"InventoryItem"},
      "max":30,
      "min":1
    },
    "InventoryItemSchema":{
      "type":"structure",
      "required":[
        "TypeName",
        "Attributes"
      ],
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate.</p>"
        },
        "Version":{
          "shape":"InventoryItemSchemaVersion",
          "documentation":"<p>The schema version for the inventory item.</p>"
        },
        "Attributes":{
          "shape":"InventoryItemAttributeList",
          "documentation":"<p>The schema attributes for inventory. This contains data type and attribute name.</p>"
        },
        "DisplayName":{
          "shape":"InventoryTypeDisplayName",
          "documentation":"<p>The alias name of the inventory type. The alias name is used for display purposes.</p>"
        }
      },
      "documentation":"<p>The inventory item schema definition. Users can use this to compose inventory query filters.</p>"
    },
    "InventoryItemSchemaResultList":{
      "type":"list",
      "member":{"shape":"InventoryItemSchema"}
    },
    "InventoryItemSchemaVersion":{
      "type":"string",
      "pattern":"^([0-9]{1,6})(\\.[0-9]{1,6})$"
    },
    "InventoryItemTypeName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^(AWS|Custom):.*$"
    },
    "InventoryItemTypeNameFilter":{
      "type":"string",
      "max":100,
      "min":0
    },
    "InventoryQueryOperatorType":{
      "type":"string",
      "enum":[
        "Equal",
        "NotEqual",
        "BeginWith",
        "LessThan",
        "GreaterThan",
        "Exists"
      ]
    },
    "InventoryResultEntity":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"InventoryResultEntityId",
          "documentation":"<p>ID of the inventory result entity. For example, for managed instance inventory the result will be the managed instance ID. For EC2 instance inventory, the result will be the instance ID. </p>"
        },
        "Data":{
          "shape":"InventoryResultItemMap",
          "documentation":"<p>The data section in the inventory result entity JSON.</p>"
        }
      },
      "documentation":"<p>Inventory query results.</p>"
    },
    "InventoryResultEntityId":{"type":"string"},
    "InventoryResultEntityList":{
      "type":"list",
      "member":{"shape":"InventoryResultEntity"}
    },
    "InventoryResultItem":{
      "type":"structure",
      "required":[
        "TypeName",
        "SchemaVersion",
        "Content"
      ],
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The name of the inventory result item type.</p>"
        },
        "SchemaVersion":{
          "shape":"InventoryItemSchemaVersion",
          "documentation":"<p>The schema version for the inventory result item/</p>"
        },
        "CaptureTime":{
          "shape":"InventoryItemCaptureTime",
          "documentation":"<p>The time inventory item data was captured.</p>"
        },
        "ContentHash":{
          "shape":"InventoryItemContentHash",
          "documentation":"<p>MD5 hash of the inventory item type contents. The content hash is used to determine whether to update inventory information. The PutInventory API does not update the inventory item type contents if the MD5 hash has not changed since last update. </p>"
        },
        "Content":{
          "shape":"InventoryItemEntryList",
          "documentation":"<p>Contains all the inventory data of the item type. Results include attribute names and values. </p>"
        }
      },
      "documentation":"<p>The inventory result item.</p>"
    },
    "InventoryResultItemKey":{"type":"string"},
    "InventoryResultItemMap":{
      "type":"map",
      "key":{"shape":"InventoryResultItemKey"},
      "value":{"shape":"InventoryResultItem"}
    },
    "InventorySchemaDeleteOption":{
      "type":"string",
      "enum":[
        "DisableSchema",
        "DeleteSchema"
      ]
    },
    "InventoryTypeDisplayName":{"type":"string"},
    "InvocationDoesNotExist":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The command ID and instance ID you specified did not match any invocations. Verify the command ID adn the instance ID and try again. </p>",
      "exception":true
    },
    "InvocationTraceOutput":{
      "type":"string",
      "max":2500
    },
    "IsSubTypeSchema":{"type":"boolean"},
    "ItemContentMismatchException":{
      "type":"structure",
      "members":{
        "TypeName":{"shape":"InventoryItemTypeName"},
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The inventory item has invalid content. </p>",
      "exception":true
    },
    "ItemSizeLimitExceededException":{
      "type":"structure",
      "members":{
        "TypeName":{"shape":"InventoryItemTypeName"},
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The inventory item size has exceeded the size limit.</p>",
      "exception":true
    },
    "KeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "LabelParameterVersionRequest":{
      "type":"structure",
      "required":[
        "Name",
        "Labels"
      ],
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The parameter name on which you want to attach one or more labels.</p>"
        },
        "ParameterVersion":{
          "shape":"PSParameterVersion",
          "documentation":"<p>The specific version of the parameter on which you want to attach one or more labels. If no version is specified, the system attaches the label to the latest version.)</p>",
          "box":true
        },
        "Labels":{
          "shape":"ParameterLabelList",
          "documentation":"<p>One or more labels to attach to the specified parameter version.</p>"
        }
      }
    },
    "LabelParameterVersionResult":{
      "type":"structure",
      "members":{
        "InvalidLabels":{
          "shape":"ParameterLabelList",
          "documentation":"<p>The label does not meet the requirements. For information about parameter label requirements, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html\">Labeling Parameters</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        }
      }
    },
    "LastResourceDataSyncMessage":{"type":"string"},
    "LastResourceDataSyncStatus":{
      "type":"string",
      "enum":[
        "Successful",
        "Failed",
        "InProgress"
      ]
    },
    "LastResourceDataSyncTime":{"type":"timestamp"},
    "LastSuccessfulResourceDataSyncTime":{"type":"timestamp"},
    "ListAssociationVersionsRequest":{
      "type":"structure",
      "required":["AssociationId"],
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The association ID for which you want to view all versions.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        }
      }
    },
    "ListAssociationVersionsResult":{
      "type":"structure",
      "members":{
        "AssociationVersions":{
          "shape":"AssociationVersionList",
          "documentation":"<p>Information about all versions of the association for the specified association ID.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListAssociationsRequest":{
      "type":"structure",
      "members":{
        "AssociationFilterList":{
          "shape":"AssociationFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "ListAssociationsResult":{
      "type":"structure",
      "members":{
        "Associations":{
          "shape":"AssociationList",
          "documentation":"<p>The associations.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "ListCommandInvocationsRequest":{
      "type":"structure",
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>(Optional) The invocations for a specific command ID.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>(Optional) The command execution details for a specific instance ID.</p>"
        },
        "MaxResults":{
          "shape":"CommandMaxResults",
          "documentation":"<p>(Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "Filters":{
          "shape":"CommandFilterList",
          "documentation":"<p>(Optional) One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "Details":{
          "shape":"Boolean",
          "documentation":"<p>(Optional) If set this returns the response of the command executions and any command output. By default this is set to False. </p>"
        }
      }
    },
    "ListCommandInvocationsResult":{
      "type":"structure",
      "members":{
        "CommandInvocations":{
          "shape":"CommandInvocationList",
          "documentation":"<p>(Optional) A list of all invocations. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "ListCommandsRequest":{
      "type":"structure",
      "members":{
        "CommandId":{
          "shape":"CommandId",
          "documentation":"<p>(Optional) If provided, lists only the specified command.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>(Optional) Lists commands issued against this instance ID.</p>"
        },
        "MaxResults":{
          "shape":"CommandMaxResults",
          "documentation":"<p>(Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "Filters":{
          "shape":"CommandFilterList",
          "documentation":"<p>(Optional) One or more filters. Use a filter to return a more specific list of results. </p>"
        }
      }
    },
    "ListCommandsResult":{
      "type":"structure",
      "members":{
        "Commands":{
          "shape":"CommandList",
          "documentation":"<p>(Optional) The list of commands requested by the user. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "ListComplianceItemsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"ComplianceStringFilterList",
          "documentation":"<p>One or more compliance filters. Use a filter to return a more specific list of results.</p>"
        },
        "ResourceIds":{
          "shape":"ComplianceResourceIdList",
          "documentation":"<p>The ID for the resources from which to get compliance information. Currently, you can only specify one resource ID.</p>"
        },
        "ResourceTypes":{
          "shape":"ComplianceResourceTypeList",
          "documentation":"<p>The type of resource from which to get compliance information. Currently, the only supported resource type is <code>ManagedInstance</code>.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "ListComplianceItemsResult":{
      "type":"structure",
      "members":{
        "ComplianceItems":{
          "shape":"ComplianceItemList",
          "documentation":"<p>A list of compliance information for the specified resource ID. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListComplianceSummariesRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"ComplianceStringFilterList",
          "documentation":"<p>One or more compliance or inventory filters. Use a filter to return a more specific list of results.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. Currently, you can specify null or 50. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "ListComplianceSummariesResult":{
      "type":"structure",
      "members":{
        "ComplianceSummaryItems":{
          "shape":"ComplianceSummaryItemList",
          "documentation":"<p>A list of compliant and non-compliant summary counts based on compliance types. For example, this call returns State Manager associations, patches, or custom compliance types according to the filter criteria that you specified.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListDocumentVersionsRequest":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document about which you want version information.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "ListDocumentVersionsResult":{
      "type":"structure",
      "members":{
        "DocumentVersions":{
          "shape":"DocumentVersionList",
          "documentation":"<p>The document versions.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "ListDocumentsRequest":{
      "type":"structure",
      "members":{
        "DocumentFilterList":{
          "shape":"DocumentFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "Filters":{
          "shape":"DocumentKeyValuesFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        }
      }
    },
    "ListDocumentsResult":{
      "type":"structure",
      "members":{
        "DocumentIdentifiers":{
          "shape":"DocumentIdentifierList",
          "documentation":"<p>The names of the Systems Manager documents.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "ListInventoryEntriesRequest":{
      "type":"structure",
      "required":[
        "InstanceId",
        "TypeName"
      ],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID for which you want inventory information.</p>"
        },
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The type of inventory item for which you want information.</p>"
        },
        "Filters":{
          "shape":"InventoryFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "ListInventoryEntriesResult":{
      "type":"structure",
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>The type of inventory item returned by the request.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID targeted by the request to query inventory information.</p>"
        },
        "SchemaVersion":{
          "shape":"InventoryItemSchemaVersion",
          "documentation":"<p>The inventory schema version used by the instance(s).</p>"
        },
        "CaptureTime":{
          "shape":"InventoryItemCaptureTime",
          "documentation":"<p>The time that inventory information was collected for the instance(s).</p>"
        },
        "Entries":{
          "shape":"InventoryItemEntryList",
          "documentation":"<p>A list of inventory items on the instance(s).</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>"
        }
      }
    },
    "ListResourceComplianceSummariesRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"ComplianceStringFilterList",
          "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "ListResourceComplianceSummariesResult":{
      "type":"structure",
      "members":{
        "ResourceComplianceSummaryItems":{
          "shape":"ResourceComplianceSummaryItemList",
          "documentation":"<p>A summary count for specified or targeted managed instances. Summary count includes information about compliant and non-compliant State Manager associations, patch status, or custom items according to the filter criteria that you specify. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListResourceDataSyncRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
          "box":true
        }
      }
    },
    "ListResourceDataSyncResult":{
      "type":"structure",
      "members":{
        "ResourceDataSyncItems":{
          "shape":"ResourceDataSyncItemList",
          "documentation":"<p>A list of your current Resource Data Sync configurations and their statuses.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceType",
        "ResourceId"
      ],
      "members":{
        "ResourceType":{
          "shape":"ResourceTypeForTagging",
          "documentation":"<p>Returns a list of tags for a specific resource type.</p>"
        },
        "ResourceId":{
          "shape":"ResourceId",
          "documentation":"<p>The resource ID for which you want to see a list of tags.</p>"
        }
      }
    },
    "ListTagsForResourceResult":{
      "type":"structure",
      "members":{
        "TagList":{
          "shape":"TagList",
          "documentation":"<p>A list of tags.</p>"
        }
      }
    },
    "LoggingInfo":{
      "type":"structure",
      "required":[
        "S3BucketName",
        "S3Region"
      ],
      "members":{
        "S3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of an Amazon S3 bucket where execution logs are stored .</p>"
        },
        "S3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>(Optional) The Amazon S3 bucket subfolder. </p>"
        },
        "S3Region":{
          "shape":"S3Region",
          "documentation":"<p>The region where the Amazon S3 bucket is located.</p>"
        }
      },
      "documentation":"<p>Information about an Amazon S3 bucket to write instance-level logs to.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
    },
    "Long":{"type":"long"},
    "MaintenanceWindowAllowUnassociatedTargets":{"type":"boolean"},
    "MaintenanceWindowAutomationParameters":{
      "type":"structure",
      "members":{
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of an Automation document to use during task execution.</p>"
        },
        "Parameters":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>The parameters for the AUTOMATION task.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For AUTOMATION task types, Systems Manager ignores any values specified for these parameters.</p> </note>"
        }
      },
      "documentation":"<p>The parameters for an AUTOMATION task type.</p>"
    },
    "MaintenanceWindowCutoff":{
      "type":"integer",
      "max":23,
      "min":0
    },
    "MaintenanceWindowDescription":{
      "type":"string",
      "max":128,
      "min":1,
      "sensitive":true
    },
    "MaintenanceWindowDurationHours":{
      "type":"integer",
      "max":24,
      "min":1
    },
    "MaintenanceWindowEnabled":{"type":"boolean"},
    "MaintenanceWindowExecution":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window.</p>"
        },
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The status of the execution.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the Status. Only available for certain status values.</p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution started.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the execution finished.</p>"
        }
      },
      "documentation":"<p>Describes the information about an execution of a Maintenance Window. </p>"
    },
    "MaintenanceWindowExecutionId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$"
    },
    "MaintenanceWindowExecutionList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowExecution"}
    },
    "MaintenanceWindowExecutionStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "IN_PROGRESS",
        "SUCCESS",
        "FAILED",
        "TIMED_OUT",
        "CANCELLING",
        "CANCELLED",
        "SKIPPED_OVERLAPPING"
      ]
    },
    "MaintenanceWindowExecutionStatusDetails":{
      "type":"string",
      "max":250,
      "min":0
    },
    "MaintenanceWindowExecutionTaskExecutionId":{"type":"string"},
    "MaintenanceWindowExecutionTaskId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$"
    },
    "MaintenanceWindowExecutionTaskIdList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowExecutionTaskId"}
    },
    "MaintenanceWindowExecutionTaskIdentity":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that ran the task.</p>"
        },
        "TaskExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task execution in the Maintenance Window execution.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The status of the task execution.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the status of the task execution. Only available for certain status values.</p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the task execution started.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the task execution finished.</p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The ARN of the executed task.</p>"
        },
        "TaskType":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The type of executed task.</p>"
        }
      },
      "documentation":"<p>Information about a task execution performed as part of a Maintenance Window execution.</p>"
    },
    "MaintenanceWindowExecutionTaskIdentityList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowExecutionTaskIdentity"}
    },
    "MaintenanceWindowExecutionTaskInvocationId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$"
    },
    "MaintenanceWindowExecutionTaskInvocationIdentity":{
      "type":"structure",
      "members":{
        "WindowExecutionId":{
          "shape":"MaintenanceWindowExecutionId",
          "documentation":"<p>The ID of the Maintenance Window execution that ran the task.</p>"
        },
        "TaskExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskId",
          "documentation":"<p>The ID of the specific task execution in the Maintenance Window execution.</p>"
        },
        "InvocationId":{
          "shape":"MaintenanceWindowExecutionTaskInvocationId",
          "documentation":"<p>The ID of the task invocation.</p>"
        },
        "ExecutionId":{
          "shape":"MaintenanceWindowExecutionTaskExecutionId",
          "documentation":"<p>The ID of the action performed in the service that actually handled the task invocation. If the task type is RUN_COMMAND, this value is the command ID.</p>"
        },
        "TaskType":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The task type.</p>"
        },
        "Parameters":{
          "shape":"MaintenanceWindowExecutionTaskInvocationParameters",
          "documentation":"<p>The parameters that were provided for the invocation when it was executed.</p>"
        },
        "Status":{
          "shape":"MaintenanceWindowExecutionStatus",
          "documentation":"<p>The status of the task invocation.</p>"
        },
        "StatusDetails":{
          "shape":"MaintenanceWindowExecutionStatusDetails",
          "documentation":"<p>The details explaining the status of the task invocation. Only available for certain Status values. </p>"
        },
        "StartTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the invocation started.</p>"
        },
        "EndTime":{
          "shape":"DateTime",
          "documentation":"<p>The time the invocation finished.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>User-provided value that was specified when the target was registered with the Maintenance Window. This was also included in any CloudWatch events raised during the task invocation.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTaskTargetId",
          "documentation":"<p>The ID of the target definition in this Maintenance Window the invocation was performed for.</p>"
        }
      },
      "documentation":"<p>Describes the information about a task invocation for a particular target as part of a task execution performed as part of a Maintenance Window execution.</p>"
    },
    "MaintenanceWindowExecutionTaskInvocationIdentityList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowExecutionTaskInvocationIdentity"}
    },
    "MaintenanceWindowExecutionTaskInvocationParameters":{
      "type":"string",
      "sensitive":true
    },
    "MaintenanceWindowFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"MaintenanceWindowFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "Values":{
          "shape":"MaintenanceWindowFilterValues",
          "documentation":"<p>The filter values.</p>"
        }
      },
      "documentation":"<p>Filter used in the request. Supported filter keys are Name and Enabled.</p>"
    },
    "MaintenanceWindowFilterKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "MaintenanceWindowFilterList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowFilter"},
      "max":5,
      "min":0
    },
    "MaintenanceWindowFilterValue":{
      "type":"string",
      "max":256,
      "min":1
    },
    "MaintenanceWindowFilterValues":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowFilterValue"}
    },
    "MaintenanceWindowId":{
      "type":"string",
      "max":20,
      "min":20,
      "pattern":"^mw-[0-9a-f]{17}$"
    },
    "MaintenanceWindowIdentity":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>A description of the Maintenance Window.</p>"
        },
        "Enabled":{
          "shape":"MaintenanceWindowEnabled",
          "documentation":"<p>Whether the Maintenance Window is enabled.</p>"
        },
        "Duration":{
          "shape":"MaintenanceWindowDurationHours",
          "documentation":"<p>The duration of the Maintenance Window in hours.</p>"
        },
        "Cutoff":{
          "shape":"MaintenanceWindowCutoff",
          "documentation":"<p>The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.</p>"
        },
        "Schedule":{
          "shape":"MaintenanceWindowSchedule",
          "documentation":"<p>The schedule of the Maintenance Window in the form of a cron or rate expression.</p>"
        },
        "ScheduleTimezone":{
          "shape":"MaintenanceWindowTimezone",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format.</p>"
        },
        "EndDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become inactive.</p>"
        },
        "StartDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become active.</p>"
        },
        "NextExecutionTime":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The next time the Maintenance Window will actually run, taking into account any specified times for the Maintenance Window to become active or inactive.</p>"
        }
      },
      "documentation":"<p>Information about the Maintenance Window.</p>"
    },
    "MaintenanceWindowIdentityForTarget":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        }
      },
      "documentation":"<p>The Maintenance Window to which the specified target belongs.</p>"
    },
    "MaintenanceWindowIdentityList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowIdentity"}
    },
    "MaintenanceWindowLambdaClientContext":{
      "type":"string",
      "max":8000,
      "min":1
    },
    "MaintenanceWindowLambdaParameters":{
      "type":"structure",
      "members":{
        "ClientContext":{
          "shape":"MaintenanceWindowLambdaClientContext",
          "documentation":"<p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>"
        },
        "Qualifier":{
          "shape":"MaintenanceWindowLambdaQualifier",
          "documentation":"<p>(Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.</p>"
        },
        "Payload":{
          "shape":"MaintenanceWindowLambdaPayload",
          "documentation":"<p>JSON to provide to your Lambda function as input.</p>"
        }
      },
      "documentation":"<p>The parameters for a LAMBDA task type.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Lambda tasks, Systems Manager ignores any values specified for TaskParameters and LoggingInfo.</p> </note>"
    },
    "MaintenanceWindowLambdaPayload":{
      "type":"blob",
      "max":4096,
      "sensitive":true
    },
    "MaintenanceWindowLambdaQualifier":{
      "type":"string",
      "max":128,
      "min":1
    },
    "MaintenanceWindowMaxResults":{
      "type":"integer",
      "max":100,
      "min":10
    },
    "MaintenanceWindowName":{
      "type":"string",
      "max":128,
      "min":3,
      "pattern":"^[a-zA-Z0-9_\\-.]{3,128}$"
    },
    "MaintenanceWindowResourceType":{
      "type":"string",
      "enum":["INSTANCE"]
    },
    "MaintenanceWindowRunCommandParameters":{
      "type":"structure",
      "members":{
        "Comment":{
          "shape":"Comment",
          "documentation":"<p>Information about the command(s) to execute.</p>"
        },
        "DocumentHash":{
          "shape":"DocumentHash",
          "documentation":"<p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>"
        },
        "DocumentHashType":{
          "shape":"DocumentHashType",
          "documentation":"<p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>"
        },
        "NotificationConfig":{
          "shape":"NotificationConfig",
          "documentation":"<p>Configurations for sending notifications about command status changes on a per-instance basis.</p>"
        },
        "OutputS3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket.</p>"
        },
        "OutputS3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The Amazon S3 bucket subfolder.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>The parameters for the RUN_COMMAND task execution.</p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM service role to assume during task execution.</p>"
        },
        "TimeoutSeconds":{
          "shape":"TimeoutSeconds",
          "documentation":"<p>If this time is reached and the command has not already started executing, it doesn't run.</p>",
          "box":true
        }
      },
      "documentation":"<p>The parameters for a RUN_COMMAND task type.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Run Command tasks, Systems Manager uses specified values for <code>TaskParameters</code> and <code>LoggingInfo</code> only if no values are specified for <code>TaskInvocationParameters</code>. </p> </note>"
    },
    "MaintenanceWindowSchedule":{
      "type":"string",
      "max":256,
      "min":1
    },
    "MaintenanceWindowSearchMaxResults":{
      "type":"integer",
      "min":1
    },
    "MaintenanceWindowStepFunctionsInput":{
      "type":"string",
      "max":4096,
      "sensitive":true
    },
    "MaintenanceWindowStepFunctionsName":{
      "type":"string",
      "max":80,
      "min":1
    },
    "MaintenanceWindowStepFunctionsParameters":{
      "type":"structure",
      "members":{
        "Input":{
          "shape":"MaintenanceWindowStepFunctionsInput",
          "documentation":"<p>The inputs for the STEP_FUNCTION task.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowStepFunctionsName",
          "documentation":"<p>The name of the STEP_FUNCTION task.</p>"
        }
      },
      "documentation":"<p>The parameters for a STEP_FUNCTION task.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Step Functions tasks, Systems Manager ignores any values specified for <code>TaskParameters</code> and <code>LoggingInfo</code>.</p> </note>"
    },
    "MaintenanceWindowStringDateTime":{"type":"string"},
    "MaintenanceWindowTarget":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID where the target is registered.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The ID of the target.</p>"
        },
        "ResourceType":{
          "shape":"MaintenanceWindowResourceType",
          "documentation":"<p>The type of target.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or tags). Instances are specified using Key=instanceids,Values=&lt;instanceid1&gt;,&lt;instanceid2&gt;. Tags are specified using Key=&lt;tag name&gt;,Values=&lt;tag value&gt;.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The target name.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>A description of the target.</p>"
        }
      },
      "documentation":"<p>The target registered with the Maintenance Window.</p>"
    },
    "MaintenanceWindowTargetId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$"
    },
    "MaintenanceWindowTargetList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowTarget"}
    },
    "MaintenanceWindowTask":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID where the task is registered.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The task ID.</p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, <code>TaskArn</code> is the Systems Manager document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTION tasks, it's the state machine ARN.</p>"
        },
        "Type":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The type of task. The type can be one of the following: RUN_COMMAND, AUTOMATION, LAMBDA, or STEP_FUNCTION.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or tags). Instances are specified using Key=instanceids,Values=&lt;instanceid1&gt;,&lt;instanceid2&gt;. Tags are specified using Key=&lt;tag name&gt;,Values=&lt;tag value&gt;.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParameters",
          "documentation":"<p>The parameters that should be passed to the task when it is executed.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The priority of the task in the Maintenance Window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>"
        },
        "LoggingInfo":{
          "shape":"LoggingInfo",
          "documentation":"<p>Information about an Amazon S3 bucket to write task-level logs to.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The role that should be assumed when executing the task</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets this task can be run for in parallel.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maximum number of errors allowed before this task stops being scheduled.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The task name.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>A description of the task.</p>"
        }
      },
      "documentation":"<p>Information about a task defined for a Maintenance Window.</p>"
    },
    "MaintenanceWindowTaskArn":{
      "type":"string",
      "max":1600,
      "min":1
    },
    "MaintenanceWindowTaskId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}$"
    },
    "MaintenanceWindowTaskInvocationParameters":{
      "type":"structure",
      "members":{
        "RunCommand":{
          "shape":"MaintenanceWindowRunCommandParameters",
          "documentation":"<p>The parameters for a RUN_COMMAND task type.</p>"
        },
        "Automation":{
          "shape":"MaintenanceWindowAutomationParameters",
          "documentation":"<p>The parameters for an AUTOMATION task type.</p>"
        },
        "StepFunctions":{
          "shape":"MaintenanceWindowStepFunctionsParameters",
          "documentation":"<p>The parameters for a STEP_FUNCTION task type.</p>"
        },
        "Lambda":{
          "shape":"MaintenanceWindowLambdaParameters",
          "documentation":"<p>The parameters for a LAMBDA task type.</p>"
        }
      },
      "documentation":"<p>The parameters for task execution.</p>"
    },
    "MaintenanceWindowTaskList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowTask"}
    },
    "MaintenanceWindowTaskParameterName":{
      "type":"string",
      "max":255,
      "min":1
    },
    "MaintenanceWindowTaskParameterValue":{
      "type":"string",
      "max":255,
      "min":1,
      "sensitive":true
    },
    "MaintenanceWindowTaskParameterValueExpression":{
      "type":"structure",
      "members":{
        "Values":{
          "shape":"MaintenanceWindowTaskParameterValueList",
          "documentation":"<p>This field contains an array of 0 or more strings, each 1 to 255 characters in length.</p>"
        }
      },
      "documentation":"<p>Defines the values for a task parameter.</p>",
      "sensitive":true
    },
    "MaintenanceWindowTaskParameterValueList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowTaskParameterValue"},
      "sensitive":true
    },
    "MaintenanceWindowTaskParameters":{
      "type":"map",
      "key":{"shape":"MaintenanceWindowTaskParameterName"},
      "value":{"shape":"MaintenanceWindowTaskParameterValueExpression"},
      "sensitive":true
    },
    "MaintenanceWindowTaskParametersList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowTaskParameters"},
      "sensitive":true
    },
    "MaintenanceWindowTaskPriority":{
      "type":"integer",
      "min":0
    },
    "MaintenanceWindowTaskTargetId":{
      "type":"string",
      "max":36
    },
    "MaintenanceWindowTaskType":{
      "type":"string",
      "enum":[
        "RUN_COMMAND",
        "AUTOMATION",
        "STEP_FUNCTIONS",
        "LAMBDA"
      ]
    },
    "MaintenanceWindowTimezone":{"type":"string"},
    "MaintenanceWindowsForTargetList":{
      "type":"list",
      "member":{"shape":"MaintenanceWindowIdentityForTarget"}
    },
    "ManagedInstanceId":{
      "type":"string",
      "pattern":"^mi-[0-9a-f]{17}$"
    },
    "MaxConcurrency":{
      "type":"string",
      "max":7,
      "min":1,
      "pattern":"^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$"
    },
    "MaxDocumentSizeExceeded":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The size limit of a document is 64 KB.</p>",
      "exception":true
    },
    "MaxErrors":{
      "type":"string",
      "max":7,
      "min":1,
      "pattern":"^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$"
    },
    "MaxResults":{
      "type":"integer",
      "max":50,
      "min":1
    },
    "MaxResultsEC2Compatible":{
      "type":"integer",
      "max":50,
      "min":5
    },
    "ModifyDocumentPermissionRequest":{
      "type":"structure",
      "required":[
        "Name",
        "PermissionType"
      ],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document that you want to share.</p>"
        },
        "PermissionType":{
          "shape":"DocumentPermissionType",
          "documentation":"<p>The permission type for the document. The permission type can be <i>Share</i>.</p>"
        },
        "AccountIdsToAdd":{
          "shape":"AccountIdList",
          "documentation":"<p>The AWS user accounts that should have access to the document. The account IDs can either be a group of account IDs or <i>All</i>.</p>"
        },
        "AccountIdsToRemove":{
          "shape":"AccountIdList",
          "documentation":"<p>The AWS user accounts that should no longer have access to the document. The AWS user account can either be a group of account IDs or <i>All</i>. This action has a higher priority than <i>AccountIdsToAdd</i>. If you specify an account ID to add and the same ID to remove, the system removes access to the document.</p>"
        }
      }
    },
    "ModifyDocumentPermissionResponse":{
      "type":"structure",
      "members":{
      }
    },
    "NextToken":{"type":"string"},
    "NonCompliantSummary":{
      "type":"structure",
      "members":{
        "NonCompliantCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of compliance items that are not compliant.</p>"
        },
        "SeveritySummary":{
          "shape":"SeveritySummary",
          "documentation":"<p>A summary of the non-compliance severity by compliance type</p>"
        }
      },
      "documentation":"<p>A summary of resources that are not compliant. The summary is organized according to resource type.</p>"
    },
    "NormalStringMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "NotificationArn":{"type":"string"},
    "NotificationConfig":{
      "type":"structure",
      "members":{
        "NotificationArn":{
          "shape":"NotificationArn",
          "documentation":"<p>An Amazon Resource Name (ARN) for a Simple Notification Service (SNS) topic. Run Command pushes notifications about command status changes to this topic.</p>"
        },
        "NotificationEvents":{
          "shape":"NotificationEventList",
          "documentation":"<p>The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html\">Configuring Amazon SNS Notifications for Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "NotificationType":{
          "shape":"NotificationType",
          "documentation":"<p>Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. </p>"
        }
      },
      "documentation":"<p>Configurations for sending notifications.</p>"
    },
    "NotificationEvent":{
      "type":"string",
      "enum":[
        "All",
        "InProgress",
        "Success",
        "TimedOut",
        "Cancelled",
        "Failed"
      ]
    },
    "NotificationEventList":{
      "type":"list",
      "member":{"shape":"NotificationEvent"}
    },
    "NotificationType":{
      "type":"string",
      "enum":[
        "Command",
        "Invocation"
      ]
    },
    "OperatingSystem":{
      "type":"string",
      "enum":[
        "WINDOWS",
        "AMAZON_LINUX",
        "AMAZON_LINUX_2",
        "UBUNTU",
        "REDHAT_ENTERPRISE_LINUX",
        "SUSE",
        "CENTOS"
      ]
    },
    "OutputSource":{
      "type":"structure",
      "members":{
        "OutputSourceId":{
          "shape":"OutputSourceId",
          "documentation":"<p>The ID of the output source, for example the URL of an Amazon S3 bucket.</p>"
        },
        "OutputSourceType":{
          "shape":"OutputSourceType",
          "documentation":"<p>The type of source where the association execution details are stored, for example, Amazon S3.</p>"
        }
      },
      "documentation":"<p>Information about the source where the association execution details are stored.</p>"
    },
    "OutputSourceId":{
      "type":"string",
      "max":36,
      "min":36
    },
    "OutputSourceType":{"type":"string"},
    "OwnerInformation":{
      "type":"string",
      "max":128,
      "min":1,
      "sensitive":true
    },
    "PSParameterName":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "PSParameterSelector":{
      "type":"string",
      "max":128,
      "min":0
    },
    "PSParameterValue":{
      "type":"string",
      "max":4096,
      "min":1
    },
    "PSParameterVersion":{"type":"long"},
    "Parameter":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The name of the parameter.</p>"
        },
        "Type":{
          "shape":"ParameterType",
          "documentation":"<p>The type of parameter. Valid values include the following: String, String list, Secure string.</p>"
        },
        "Value":{
          "shape":"PSParameterValue",
          "documentation":"<p>The parameter value.</p>"
        },
        "Version":{
          "shape":"PSParameterVersion",
          "documentation":"<p>The parameter version.</p>"
        },
        "Selector":{
          "shape":"PSParameterSelector",
          "documentation":"<p>Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:</p> <p>parameter_name:version</p> <p>parameter_name:label</p>"
        },
        "SourceResult":{
          "shape":"String",
          "documentation":"<p>Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.</p>"
        },
        "LastModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>Date the parameter was last changed or updated and the parameter version was created.</p>"
        },
        "ARN":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the parameter.</p>"
        }
      },
      "documentation":"<p>An Amazon EC2 Systems Manager parameter in Parameter Store.</p>"
    },
    "ParameterAlreadyExists":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The parameter already exists. You can't create duplicate parameters.</p>",
      "exception":true
    },
    "ParameterDescription":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "ParameterHistory":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The name of the parameter.</p>"
        },
        "Type":{
          "shape":"ParameterType",
          "documentation":"<p>The type of parameter used.</p>"
        },
        "KeyId":{
          "shape":"ParameterKeyId",
          "documentation":"<p>The ID of the query key used for this parameter.</p>"
        },
        "LastModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>Date the parameter was last changed or updated.</p>"
        },
        "LastModifiedUser":{
          "shape":"String",
          "documentation":"<p>Amazon Resource Name (ARN) of the AWS user who last changed the parameter.</p>"
        },
        "Description":{
          "shape":"ParameterDescription",
          "documentation":"<p>Information about the parameter.</p>"
        },
        "Value":{
          "shape":"PSParameterValue",
          "documentation":"<p>The parameter value.</p>"
        },
        "AllowedPattern":{
          "shape":"AllowedPattern",
          "documentation":"<p>Parameter names can include the following letters and symbols.</p> <p>a-zA-Z0-9_.-</p>"
        },
        "Version":{
          "shape":"PSParameterVersion",
          "documentation":"<p>The parameter version.</p>"
        },
        "Labels":{
          "shape":"ParameterLabelList",
          "documentation":"<p>Labels assigned to the parameter version.</p>"
        }
      },
      "documentation":"<p>Information about parameter usage.</p>"
    },
    "ParameterHistoryList":{
      "type":"list",
      "member":{"shape":"ParameterHistory"}
    },
    "ParameterKeyId":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^([a-zA-Z0-9:/_-]+)$"
    },
    "ParameterLabel":{
      "type":"string",
      "max":100,
      "min":1
    },
    "ParameterLabelList":{
      "type":"list",
      "member":{"shape":"ParameterLabel"},
      "max":10,
      "min":1
    },
    "ParameterLimitExceeded":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You have exceeded the number of parameters for this AWS account. Delete one or more parameters and try again.</p>",
      "exception":true
    },
    "ParameterList":{
      "type":"list",
      "member":{"shape":"Parameter"}
    },
    "ParameterMaxVersionLimitExceeded":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The parameter exceeded the maximum number of allowed versions.</p>",
      "exception":true
    },
    "ParameterMetadata":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The parameter name.</p>"
        },
        "Type":{
          "shape":"ParameterType",
          "documentation":"<p>The type of parameter. Valid parameter types include the following: String, String list, Secure string.</p>"
        },
        "KeyId":{
          "shape":"ParameterKeyId",
          "documentation":"<p>The ID of the query key used for this parameter.</p>"
        },
        "LastModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>Date the parameter was last changed or updated.</p>"
        },
        "LastModifiedUser":{
          "shape":"String",
          "documentation":"<p>Amazon Resource Name (ARN) of the AWS user who last changed the parameter.</p>"
        },
        "Description":{
          "shape":"ParameterDescription",
          "documentation":"<p>Description of the parameter actions.</p>"
        },
        "AllowedPattern":{
          "shape":"AllowedPattern",
          "documentation":"<p>A parameter name can include only the following letters and symbols.</p> <p>a-zA-Z0-9_.-</p>"
        },
        "Version":{
          "shape":"PSParameterVersion",
          "documentation":"<p>The parameter version.</p>"
        }
      },
      "documentation":"<p>Metada includes information like the ARN of the last user and the date/time the parameter was last used.</p>"
    },
    "ParameterMetadataList":{
      "type":"list",
      "member":{"shape":"ParameterMetadata"}
    },
    "ParameterName":{"type":"string"},
    "ParameterNameList":{
      "type":"list",
      "member":{"shape":"PSParameterName"},
      "max":10,
      "min":1
    },
    "ParameterNotFound":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The parameter could not be found. Verify the name and try again.</p>",
      "exception":true
    },
    "ParameterPatternMismatchException":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The parameter name is not valid.</p>"
        }
      },
      "documentation":"<p>The parameter name is not valid.</p>",
      "exception":true
    },
    "ParameterStringFilter":{
      "type":"structure",
      "required":["Key"],
      "members":{
        "Key":{
          "shape":"ParameterStringFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "Option":{
          "shape":"ParameterStringQueryOption",
          "documentation":"<p>Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.</p>"
        },
        "Values":{
          "shape":"ParameterStringFilterValueList",
          "documentation":"<p>The value you want to search for.</p>"
        }
      },
      "documentation":"<p>One or more filters. Use a filter to return a more specific list of results.</p> <note> <p>The <code>Name</code> field can't be used with the <a>GetParametersByPath</a> API action.</p> </note>"
    },
    "ParameterStringFilterKey":{
      "type":"string",
      "max":132,
      "min":1,
      "pattern":"tag:.+|Name|Type|KeyId|Path|Label"
    },
    "ParameterStringFilterList":{
      "type":"list",
      "member":{"shape":"ParameterStringFilter"}
    },
    "ParameterStringFilterValue":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ParameterStringFilterValueList":{
      "type":"list",
      "member":{"shape":"ParameterStringFilterValue"},
      "max":50,
      "min":1
    },
    "ParameterStringQueryOption":{
      "type":"string",
      "max":10,
      "min":1
    },
    "ParameterType":{
      "type":"string",
      "enum":[
        "String",
        "StringList",
        "SecureString"
      ]
    },
    "ParameterValue":{"type":"string"},
    "ParameterValueList":{
      "type":"list",
      "member":{"shape":"ParameterValue"}
    },
    "ParameterVersionLabelLimitExceeded":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A parameter version can have a maximum of ten labels.</p>",
      "exception":true
    },
    "ParameterVersionNotFound":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified parameter version was not found. Verify the parameter name and version, and try again.</p>",
      "exception":true
    },
    "Parameters":{
      "type":"map",
      "key":{"shape":"ParameterName"},
      "value":{"shape":"ParameterValueList"}
    },
    "ParametersFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"ParametersFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "Values":{
          "shape":"ParametersFilterValueList",
          "documentation":"<p>The filter values.</p>"
        }
      },
      "documentation":"<p>This data type is deprecated. Instead, use <a>ParameterStringFilter</a>.</p>"
    },
    "ParametersFilterKey":{
      "type":"string",
      "enum":[
        "Name",
        "Type",
        "KeyId"
      ]
    },
    "ParametersFilterList":{
      "type":"list",
      "member":{"shape":"ParametersFilter"}
    },
    "ParametersFilterValue":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ParametersFilterValueList":{
      "type":"list",
      "member":{"shape":"ParametersFilterValue"},
      "max":50,
      "min":1
    },
    "Patch":{
      "type":"structure",
      "members":{
        "Id":{
          "shape":"PatchId",
          "documentation":"<p>The ID of the patch (this is different than the Microsoft Knowledge Base ID).</p>"
        },
        "ReleaseDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the patch was released.</p>"
        },
        "Title":{
          "shape":"PatchTitle",
          "documentation":"<p>The title of the patch.</p>"
        },
        "Description":{
          "shape":"PatchDescription",
          "documentation":"<p>The description of the patch.</p>"
        },
        "ContentUrl":{
          "shape":"PatchContentUrl",
          "documentation":"<p>The URL where more information can be obtained about the patch.</p>"
        },
        "Vendor":{
          "shape":"PatchVendor",
          "documentation":"<p>The name of the vendor providing the patch.</p>"
        },
        "ProductFamily":{
          "shape":"PatchProductFamily",
          "documentation":"<p>The product family the patch is applicable for (for example, Windows).</p>"
        },
        "Product":{
          "shape":"PatchProduct",
          "documentation":"<p>The specific product the patch is applicable for (for example, WindowsServer2016).</p>"
        },
        "Classification":{
          "shape":"PatchClassification",
          "documentation":"<p>The classification of the patch (for example, SecurityUpdates, Updates, CriticalUpdates).</p>"
        },
        "MsrcSeverity":{
          "shape":"PatchMsrcSeverity",
          "documentation":"<p>The severity of the patch (for example Critical, Important, Moderate).</p>"
        },
        "KbNumber":{
          "shape":"PatchKbNumber",
          "documentation":"<p>The Microsoft Knowledge Base ID of the patch.</p>"
        },
        "MsrcNumber":{
          "shape":"PatchMsrcNumber",
          "documentation":"<p>The ID of the MSRC bulletin the patch is related to.</p>"
        },
        "Language":{
          "shape":"PatchLanguage",
          "documentation":"<p>The language of the patch if it's language-specific.</p>"
        }
      },
      "documentation":"<p>Represents metadata about a patch.</p>"
    },
    "PatchAction":{
      "type":"string",
      "enum":[
        "ALLOW_AS_DEPENDENCY",
        "BLOCK"
      ]
    },
    "PatchBaselineIdentity":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline.</p>"
        },
        "BaselineName":{
          "shape":"BaselineName",
          "documentation":"<p>The name of the patch baseline.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>Defines the operating system the patch baseline applies to. The Default value is WINDOWS. </p>"
        },
        "BaselineDescription":{
          "shape":"BaselineDescription",
          "documentation":"<p>The description of the patch baseline.</p>"
        },
        "DefaultBaseline":{
          "shape":"DefaultBaseline",
          "documentation":"<p>Whether this is the default baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.</p>"
        }
      },
      "documentation":"<p>Defines the basic information about a patch baseline.</p>"
    },
    "PatchBaselineIdentityList":{
      "type":"list",
      "member":{"shape":"PatchBaselineIdentity"}
    },
    "PatchBaselineMaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "PatchClassification":{"type":"string"},
    "PatchComplianceData":{
      "type":"structure",
      "required":[
        "Title",
        "KBId",
        "Classification",
        "Severity",
        "State",
        "InstalledTime"
      ],
      "members":{
        "Title":{
          "shape":"PatchTitle",
          "documentation":"<p>The title of the patch.</p>"
        },
        "KBId":{
          "shape":"PatchKbNumber",
          "documentation":"<p>The operating system-specific ID of the patch.</p>"
        },
        "Classification":{
          "shape":"PatchClassification",
          "documentation":"<p>The classification of the patch (for example, SecurityUpdates, Updates, CriticalUpdates).</p>"
        },
        "Severity":{
          "shape":"PatchSeverity",
          "documentation":"<p>The severity of the patch (for example, Critical, Important, Moderate).</p>"
        },
        "State":{
          "shape":"PatchComplianceDataState",
          "documentation":"<p>The state of the patch on the instance, such as INSTALLED or FAILED.</p> <p>For descriptions of each patch state, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-compliance-about.html#sysman-compliance-monitor-patch\">About Patch Compliance</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "InstalledTime":{
          "shape":"DateTime",
          "documentation":"<p>The date/time the patch was installed on the instance. Note that not all operating systems provide this level of information.</p>"
        }
      },
      "documentation":"<p>Information about the state of a patch on a particular instance as it relates to the patch baseline used to patch the instance.</p>"
    },
    "PatchComplianceDataList":{
      "type":"list",
      "member":{"shape":"PatchComplianceData"}
    },
    "PatchComplianceDataState":{
      "type":"string",
      "enum":[
        "INSTALLED",
        "INSTALLED_OTHER",
        "INSTALLED_REJECTED",
        "MISSING",
        "NOT_APPLICABLE",
        "FAILED"
      ]
    },
    "PatchComplianceLevel":{
      "type":"string",
      "enum":[
        "CRITICAL",
        "HIGH",
        "MEDIUM",
        "LOW",
        "INFORMATIONAL",
        "UNSPECIFIED"
      ]
    },
    "PatchComplianceMaxResults":{
      "type":"integer",
      "max":100,
      "min":10
    },
    "PatchContentUrl":{"type":"string"},
    "PatchDeploymentStatus":{
      "type":"string",
      "enum":[
        "APPROVED",
        "PENDING_APPROVAL",
        "EXPLICIT_APPROVED",
        "EXPLICIT_REJECTED"
      ]
    },
    "PatchDescription":{"type":"string"},
    "PatchFailedCount":{"type":"integer"},
    "PatchFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"PatchFilterKey",
          "documentation":"<p>The key for the filter.</p> <p>See <a>PatchFilter</a> for lists of valid keys for each operating system type.</p>"
        },
        "Values":{
          "shape":"PatchFilterValueList",
          "documentation":"<p>The value for the filter key.</p> <p>See <a>PatchFilter</a> for lists of valid values for each key based on operating system type.</p>"
        }
      },
      "documentation":"<p>Defines a patch filter.</p> <p>A patch filter consists of key/value pairs, but not all keys are valid for all operating system types. For example, the key <code>PRODUCT</code> is valid for all supported operating system types. The key <code>MSRC_SEVERITY</code>, however, is valid only for Windows operating systems, and the key <code>SECTION</code> is valid only for Ubuntu operating systems.</p> <p>Refer to the following sections for information about which keys may be used with each major operating system, and which values are valid for each key.</p> <p> <b>Windows Operating Systems</b> </p> <p>The supported keys for Windows operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>MSRC_SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Windows7</code> </p> </li> <li> <p> <code>Windows8</code> </p> </li> <li> <p> <code>Windows8.1</code> </p> </li> <li> <p> <code>Windows8Embedded</code> </p> </li> <li> <p> <code>Windows10</code> </p> </li> <li> <p> <code>Windows10LTSB</code> </p> </li> <li> <p> <code>WindowsServer2008</code> </p> </li> <li> <p> <code>WindowsServer2008R2</code> </p> </li> <li> <p> <code>WindowsServer2012</code> </p> </li> <li> <p> <code>WindowsServer2012R2</code> </p> </li> <li> <p> <code>WindowsServer2016</code> </p> </li> <li> <p> <code>WindowsServer2019</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>CriticalUpdates</code> </p> </li> <li> <p> <code>DefinitionUpdates</code> </p> </li> <li> <p> <code>Drivers</code> </p> </li> <li> <p> <code>FeaturePacks</code> </p> </li> <li> <p> <code>SecurityUpdates</code> </p> </li> <li> <p> <code>ServicePacks</code> </p> </li> <li> <p> <code>Tools</code> </p> </li> <li> <p> <code>UpdateRollups</code> </p> </li> <li> <p> <code>Updates</code> </p> </li> <li> <p> <code>Upgrades</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>MSRC_SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Moderate</code> </p> </li> <li> <p> <code>Low</code> </p> </li> <li> <p> <code>Unspecified</code> </p> </li> </ul> <p> <b>Ubuntu Operating Systems</b> </p> <p>The supported keys for Ubuntu operating systems are <code>PRODUCT</code>, <code>PRIORITY</code>, and <code>SECTION</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Ubuntu14.04</code> </p> </li> <li> <p> <code>Ubuntu16.04</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>PRIORITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Required</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Standard</code> </p> </li> <li> <p> <code>Optional</code> </p> </li> <li> <p> <code>Extra</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SECTION</code> </p> <p>Only the length of the key value is validated. Minimum length is 1. Maximum length is 64.</p> <p> <b>Amazon Linux Operating Systems</b> </p> <p>The supported keys for Amazon Linux operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>AmazonLinux2012.03</code> </p> </li> <li> <p> <code>AmazonLinux2012.09</code> </p> </li> <li> <p> <code>AmazonLinux2013.03</code> </p> </li> <li> <p> <code>AmazonLinux2013.09</code> </p> </li> <li> <p> <code>AmazonLinux2014.03</code> </p> </li> <li> <p> <code>AmazonLinux2014.09</code> </p> </li> <li> <p> <code>AmazonLinux2015.03</code> </p> </li> <li> <p> <code>AmazonLinux2015.09</code> </p> </li> <li> <p> <code>AmazonLinux2016.03</code> </p> </li> <li> <p> <code>AmazonLinux2016.09</code> </p> </li> <li> <p> <code>AmazonLinux2017.03</code> </p> </li> <li> <p> <code>AmazonLinux2017.09</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Security</code> </p> </li> <li> <p> <code>Bugfix</code> </p> </li> <li> <p> <code>Enhancement</code> </p> </li> <li> <p> <code>Recommended</code> </p> </li> <li> <p> <code>Newpackage</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Medium</code> </p> </li> <li> <p> <code>Low</code> </p> </li> </ul> <p> <b>Amazon Linux 2 Operating Systems</b> </p> <p>The supported keys for Amazon Linux 2 operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>AmazonLinux2</code> </p> </li> <li> <p> <code>AmazonLinux2.0</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Security</code> </p> </li> <li> <p> <code>Bugfix</code> </p> </li> <li> <p> <code>Enhancement</code> </p> </li> <li> <p> <code>Recommended</code> </p> </li> <li> <p> <code>Newpackage</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Medium</code> </p> </li> <li> <p> <code>Low</code> </p> </li> </ul> <p> <b>RedHat Enterprise Linux (RHEL) Operating Systems</b> </p> <p>The supported keys for RedHat Enterprise Linux operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>RedhatEnterpriseLinux6.5</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux6.6</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux6.7</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux6.8</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux6.9</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.0</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.1</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.2</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.3</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.4</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.5</code> </p> </li> <li> <p> <code>RedhatEnterpriseLinux7.6</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Security</code> </p> </li> <li> <p> <code>Bugfix</code> </p> </li> <li> <p> <code>Enhancement</code> </p> </li> <li> <p> <code>Recommended</code> </p> </li> <li> <p> <code>Newpackage</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Medium</code> </p> </li> <li> <p> <code>Low</code> </p> </li> </ul> <p> <b>SUSE Linux Enterprise Server (SLES) Operating Systems</b> </p> <p>The supported keys for SLES operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Suse12.0</code> </p> </li> <li> <p> <code>Suse12.1</code> </p> </li> <li> <p> <code>Suse12.2</code> </p> </li> <li> <p> <code>Suse12.3</code> </p> </li> <li> <p> <code>Suse12.4</code> </p> </li> <li> <p> <code>Suse12.5</code> </p> </li> <li> <p> <code>Suse12.6</code> </p> </li> <li> <p> <code>Suse12.7</code> </p> </li> <li> <p> <code>Suse12.8</code> </p> </li> <li> <p> <code>Suse12.9</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Security</code> </p> </li> <li> <p> <code>Recommended</code> </p> </li> <li> <p> <code>Optional</code> </p> </li> <li> <p> <code>Feature</code> </p> </li> <li> <p> <code>Document</code> </p> </li> <li> <p> <code>Yast</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Moderate</code> </p> </li> <li> <p> <code>Low</code> </p> </li> </ul> <p> <b>CentOS Operating Systems</b> </p> <p>The supported keys for CentOS operating systems are <code>PRODUCT</code>, <code>CLASSIFICATION</code>, and <code>SEVERITY</code>. See the following lists for valid values for each of these keys.</p> <p> <i>Supported key:</i> <code>PRODUCT</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>CentOS6.5</code> </p> </li> <li> <p> <code>CentOS6.6</code> </p> </li> <li> <p> <code>CentOS6.7</code> </p> </li> <li> <p> <code>CentOS6.8</code> </p> </li> <li> <p> <code>CentOS6.9</code> </p> </li> <li> <p> <code>CentOS7.0</code> </p> </li> <li> <p> <code>CentOS7.1</code> </p> </li> <li> <p> <code>CentOS7.2</code> </p> </li> <li> <p> <code>CentOS7.3</code> </p> </li> <li> <p> <code>CentOS7.4</code> </p> </li> <li> <p> <code>*</code> </p> <p> <i>Use a wildcard character (*) to target all supported operating system versions.</i> </p> </li> </ul> <p> <i>Supported key:</i> <code>CLASSIFICATION</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Security</code> </p> </li> <li> <p> <code>Bugfix</code> </p> </li> <li> <p> <code>Enhancement</code> </p> </li> <li> <p> <code>Recommended</code> </p> </li> <li> <p> <code>Newpackage</code> </p> </li> </ul> <p> <i>Supported key:</i> <code>SEVERITY</code> </p> <p> <i>Supported values:</i> </p> <ul> <li> <p> <code>Critical</code> </p> </li> <li> <p> <code>Important</code> </p> </li> <li> <p> <code>Medium</code> </p> </li> <li> <p> <code>Low</code> </p> </li> </ul>"
    },
    "PatchFilterGroup":{
      "type":"structure",
      "required":["PatchFilters"],
      "members":{
        "PatchFilters":{
          "shape":"PatchFilterList",
          "documentation":"<p>The set of patch filters that make up the group.</p>"
        }
      },
      "documentation":"<p>A set of patch filters, typically used for approval rules.</p>"
    },
    "PatchFilterKey":{
      "type":"string",
      "enum":[
        "PRODUCT",
        "CLASSIFICATION",
        "MSRC_SEVERITY",
        "PATCH_ID",
        "SECTION",
        "PRIORITY",
        "SEVERITY"
      ]
    },
    "PatchFilterList":{
      "type":"list",
      "member":{"shape":"PatchFilter"},
      "max":4,
      "min":0
    },
    "PatchFilterValue":{
      "type":"string",
      "max":64,
      "min":1
    },
    "PatchFilterValueList":{
      "type":"list",
      "member":{"shape":"PatchFilterValue"},
      "max":20,
      "min":1
    },
    "PatchGroup":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "PatchGroupList":{
      "type":"list",
      "member":{"shape":"PatchGroup"}
    },
    "PatchGroupPatchBaselineMapping":{
      "type":"structure",
      "members":{
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group registered with the patch baseline.</p>"
        },
        "BaselineIdentity":{
          "shape":"PatchBaselineIdentity",
          "documentation":"<p>The patch baseline the patch group is registered with.</p>"
        }
      },
      "documentation":"<p>The mapping between a patch group and the patch baseline the patch group is registered with.</p>"
    },
    "PatchGroupPatchBaselineMappingList":{
      "type":"list",
      "member":{"shape":"PatchGroupPatchBaselineMapping"}
    },
    "PatchId":{
      "type":"string",
      "max":100,
      "min":1
    },
    "PatchIdList":{
      "type":"list",
      "member":{"shape":"PatchId"},
      "max":50,
      "min":0
    },
    "PatchInstalledCount":{"type":"integer"},
    "PatchInstalledOtherCount":{"type":"integer"},
    "PatchInstalledRejectedCount":{"type":"integer"},
    "PatchKbNumber":{"type":"string"},
    "PatchLanguage":{"type":"string"},
    "PatchList":{
      "type":"list",
      "member":{"shape":"Patch"}
    },
    "PatchMissingCount":{"type":"integer"},
    "PatchMsrcNumber":{"type":"string"},
    "PatchMsrcSeverity":{"type":"string"},
    "PatchNotApplicableCount":{"type":"integer"},
    "PatchOperationType":{
      "type":"string",
      "enum":[
        "Scan",
        "Install"
      ]
    },
    "PatchOrchestratorFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"PatchOrchestratorFilterKey",
          "documentation":"<p>The key for the filter.</p>"
        },
        "Values":{
          "shape":"PatchOrchestratorFilterValues",
          "documentation":"<p>The value for the filter.</p>"
        }
      },
      "documentation":"<p>Defines a filter used in Patch Manager APIs.</p>"
    },
    "PatchOrchestratorFilterKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "PatchOrchestratorFilterList":{
      "type":"list",
      "member":{"shape":"PatchOrchestratorFilter"},
      "max":5,
      "min":0
    },
    "PatchOrchestratorFilterValue":{
      "type":"string",
      "max":256,
      "min":1
    },
    "PatchOrchestratorFilterValues":{
      "type":"list",
      "member":{"shape":"PatchOrchestratorFilterValue"}
    },
    "PatchProduct":{"type":"string"},
    "PatchProductFamily":{"type":"string"},
    "PatchRule":{
      "type":"structure",
      "required":[
        "PatchFilterGroup",
        "ApproveAfterDays"
      ],
      "members":{
        "PatchFilterGroup":{
          "shape":"PatchFilterGroup",
          "documentation":"<p>The patch filter group that defines the criteria for the rule.</p>"
        },
        "ComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>A compliance severity level for all approved patches in a patch baseline. Valid compliance severity levels include the following: Unspecified, Critical, High, Medium, Low, and Informational.</p>"
        },
        "ApproveAfterDays":{
          "shape":"ApproveAfterDays",
          "documentation":"<p>The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline. For example, a value of <code>7</code> means that patches are approved seven days after they are released. </p>",
          "box":true
        },
        "EnableNonSecurity":{
          "shape":"Boolean",
          "documentation":"<p>For instances identified by the approval rule filters, enables a patch baseline to apply non-security updates available in the specified repository. The default value is 'false'. Applies to Linux instances only.</p>",
          "box":true
        }
      },
      "documentation":"<p>Defines an approval rule for a patch baseline.</p>"
    },
    "PatchRuleGroup":{
      "type":"structure",
      "required":["PatchRules"],
      "members":{
        "PatchRules":{
          "shape":"PatchRuleList",
          "documentation":"<p>The rules that make up the rule group.</p>"
        }
      },
      "documentation":"<p>A set of rules defining the approval rules for a patch baseline.</p>"
    },
    "PatchRuleList":{
      "type":"list",
      "member":{"shape":"PatchRule"},
      "max":10,
      "min":0
    },
    "PatchSeverity":{"type":"string"},
    "PatchSource":{
      "type":"structure",
      "required":[
        "Name",
        "Products",
        "Configuration"
      ],
      "members":{
        "Name":{
          "shape":"PatchSourceName",
          "documentation":"<p>The name specified to identify the patch source.</p>"
        },
        "Products":{
          "shape":"PatchSourceProductList",
          "documentation":"<p>The specific operating system versions a patch repository applies to, such as \"Ubuntu16.04\", \"AmazonLinux2016.09\", \"RedhatEnterpriseLinux7.2\" or \"Suse12.7\". For lists of supported product values, see <a>PatchFilter</a>.</p>"
        },
        "Configuration":{
          "shape":"PatchSourceConfiguration",
          "documentation":"<p>The value of the yum repo configuration. For example:</p> <p> <code>[main]</code> </p> <p> <code>cachedir=/var/cache/yum/$basesearch$releasever</code> </p> <p> <code>keepcache=0</code> </p> <p> <code>debuglevel=2</code> </p>"
        }
      },
      "documentation":"<p>Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.</p>"
    },
    "PatchSourceConfiguration":{
      "type":"string",
      "max":512,
      "min":1,
      "sensitive":true
    },
    "PatchSourceList":{
      "type":"list",
      "member":{"shape":"PatchSource"},
      "max":20,
      "min":0
    },
    "PatchSourceName":{
      "type":"string",
      "pattern":"^[a-zA-Z0-9_\\-.]{3,50}$"
    },
    "PatchSourceProduct":{
      "type":"string",
      "max":128,
      "min":1
    },
    "PatchSourceProductList":{
      "type":"list",
      "member":{"shape":"PatchSourceProduct"},
      "max":20,
      "min":1
    },
    "PatchStatus":{
      "type":"structure",
      "members":{
        "DeploymentStatus":{
          "shape":"PatchDeploymentStatus",
          "documentation":"<p>The approval status of a patch (APPROVED, PENDING_APPROVAL, EXPLICIT_APPROVED, EXPLICIT_REJECTED).</p>"
        },
        "ComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>The compliance severity level for a patch.</p>"
        },
        "ApprovalDate":{
          "shape":"DateTime",
          "documentation":"<p>The date the patch was approved (or will be approved if the status is PENDING_APPROVAL).</p>"
        }
      },
      "documentation":"<p>Information about the approval status of a patch.</p>"
    },
    "PatchTitle":{"type":"string"},
    "PatchVendor":{"type":"string"},
    "PingStatus":{
      "type":"string",
      "enum":[
        "Online",
        "ConnectionLost",
        "Inactive"
      ]
    },
    "PlatformType":{
      "type":"string",
      "enum":[
        "Windows",
        "Linux"
      ]
    },
    "PlatformTypeList":{
      "type":"list",
      "member":{"shape":"PlatformType"}
    },
    "Product":{"type":"string"},
    "ProgressCounters":{
      "type":"structure",
      "members":{
        "TotalSteps":{
          "shape":"Integer",
          "documentation":"<p>The total number of steps executed in all specified AWS Regions and accounts for the current Automation execution.</p>"
        },
        "SuccessSteps":{
          "shape":"Integer",
          "documentation":"<p>The total number of steps that successfully completed in all specified AWS Regions and accounts for the current Automation execution.</p>"
        },
        "FailedSteps":{
          "shape":"Integer",
          "documentation":"<p>The total number of steps that failed to execute in all specified AWS Regions and accounts for the current Automation execution.</p>"
        },
        "CancelledSteps":{
          "shape":"Integer",
          "documentation":"<p>The total number of steps that the system cancelled in all specified AWS Regions and accounts for the current Automation execution.</p>"
        },
        "TimedOutSteps":{
          "shape":"Integer",
          "documentation":"<p>The total number of steps that timed out in all specified AWS Regions and accounts for the current Automation execution.</p>"
        }
      },
      "documentation":"<p>An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.</p>"
    },
    "PutComplianceItemsRequest":{
      "type":"structure",
      "required":[
        "ResourceId",
        "ResourceType",
        "ComplianceType",
        "ExecutionSummary",
        "Items"
      ],
      "members":{
        "ResourceId":{
          "shape":"ComplianceResourceId",
          "documentation":"<p>Specify an ID for this resource. For a managed instance, this is the instance ID.</p>"
        },
        "ResourceType":{
          "shape":"ComplianceResourceType",
          "documentation":"<p>Specify the type of resource. <code>ManagedInstance</code> is currently the only supported resource type.</p>"
        },
        "ComplianceType":{
          "shape":"ComplianceTypeName",
          "documentation":"<p>Specify the compliance type. For example, specify Association (for a State Manager association), Patch, or Custom:<code>string</code>.</p>"
        },
        "ExecutionSummary":{
          "shape":"ComplianceExecutionSummary",
          "documentation":"<p>A summary of the call execution that includes an execution ID, the type of execution (for example, <code>Command</code>), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>"
        },
        "Items":{
          "shape":"ComplianceItemEntryList",
          "documentation":"<p>Information about the compliance as defined by the resource type. For example, for a patch compliance type, <code>Items</code> includes information about the PatchSeverity, Classification, etc.</p>"
        },
        "ItemContentHash":{
          "shape":"ComplianceItemContentHash",
          "documentation":"<p>MD5 or SHA-256 content hash. The content hash is used to determine if existing information should be overwritten or ignored. If the content hashes match, the request to put compliance information is ignored.</p>"
        }
      }
    },
    "PutComplianceItemsResult":{
      "type":"structure",
      "members":{
      }
    },
    "PutInventoryMessage":{"type":"string"},
    "PutInventoryRequest":{
      "type":"structure",
      "required":[
        "InstanceId",
        "Items"
      ],
      "members":{
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>One or more instance IDs where you want to add or update inventory items.</p>"
        },
        "Items":{
          "shape":"InventoryItemList",
          "documentation":"<p>The inventory items that you want to add or update on instances.</p>"
        }
      }
    },
    "PutInventoryResult":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"PutInventoryMessage",
          "documentation":"<p>Information about the request.</p>"
        }
      }
    },
    "PutParameterRequest":{
      "type":"structure",
      "required":[
        "Name",
        "Value",
        "Type"
      ],
      "members":{
        "Name":{
          "shape":"PSParameterName",
          "documentation":"<p>The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For example: <code>/Dev/DBServer/MySQL/db-string13</code> </p> <p>Naming Constraints:</p> <ul> <li> <p>Parameter names are case sensitive.</p> </li> <li> <p>A parameter name must be unique within an AWS Region</p> </li> <li> <p>A parameter name can't be prefixed with \"aws\" or \"ssm\" (case-insensitive).</p> </li> <li> <p>Parameter names can include only the following symbols and letters: <code>a-zA-Z0-9_.-/</code> </p> </li> <li> <p>A parameter name can't include spaces.</p> </li> <li> <p>Parameter hierarchies are limited to a maximum depth of fifteen levels.</p> </li> </ul> <p>For additional information about valid values for parameter names, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html\">Requirements and Constraints for Parameter Names</a> in the <i>AWS Systems Manager User Guide</i>.</p> <note> <p>The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for the fully qualified parameter name is 1011 characters. </p> </note>"
        },
        "Description":{
          "shape":"ParameterDescription",
          "documentation":"<p>Information about the parameter that you want to add to the system. Optional but recommended.</p> <important> <p>Do not enter personally identifiable information in this field.</p> </important>"
        },
        "Value":{
          "shape":"PSParameterValue",
          "documentation":"<p>The parameter value that you want to add to the system.</p>"
        },
        "Type":{
          "shape":"ParameterType",
          "documentation":"<p>The type of parameter that you want to add to the system.</p> <p>Items in a <code>StringList</code> must be separated by a comma (,). You can't use other punctuation or special character to escape items in the list. If you have a parameter value that requires a comma, then use the <code>String</code> data type.</p> <note> <p> <code>SecureString</code> is not currently supported for AWS CloudFormation templates or in the China Regions.</p> </note>"
        },
        "KeyId":{
          "shape":"ParameterKeyId",
          "documentation":"<p>The KMS Key ID that you want to use to encrypt a parameter. Either the default AWS Key Management Service (AWS KMS) key automatically assigned to your AWS account or a custom key. Required for parameters that use the <code>SecureString</code> data type.</p> <p>If you don't specify a key ID, the system uses the default key associated with your AWS account.</p> <ul> <li> <p>To use your default AWS KMS key, choose the <code>SecureString</code> data type, and do <i>not</i> specify the <code>Key ID</code> when you create the parameter. The system automatically populates <code>Key ID</code> with your default KMS key.</p> </li> <li> <p>To use a custom KMS key, choose the <code>SecureString</code> data type with the <code>Key ID</code> parameter.</p> </li> </ul>"
        },
        "Overwrite":{
          "shape":"Boolean",
          "documentation":"<p>Overwrite an existing parameter. If not specified, will default to \"false\".</p>",
          "box":true
        },
        "AllowedPattern":{
          "shape":"AllowedPattern",
          "documentation":"<p>A regular expression used to validate the parameter value. For example, for String types with values restricted to numbers, you can specify the following: AllowedPattern=^\\d+$ </p>"
        },
        "Tags":{
          "shape":"TagList",
          "documentation":"<p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=Resource,Value=S3bucket</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=ParameterType,Value=LicenseKey</code> </p> </li> </ul> <note> <p>To add tags to an existing Systems Manager parameter, use the <a>AddTagsToResource</a> action.</p> </note>"
        }
      }
    },
    "PutParameterResult":{
      "type":"structure",
      "members":{
        "Version":{
          "shape":"PSParameterVersion",
          "documentation":"<p>The new version number of a parameter. If you edit a parameter value, Parameter Store automatically creates a new version and assigns this new version a unique ID. You can reference a parameter version ID in API actions or in Systems Manager documents (SSM documents). By default, if you don't specify a specific version, the system returns the latest parameter value when a parameter is called.</p>"
        }
      }
    },
    "Region":{"type":"string"},
    "Regions":{
      "type":"list",
      "member":{"shape":"Region"},
      "max":50,
      "min":1
    },
    "RegisterDefaultPatchBaselineRequest":{
      "type":"structure",
      "required":["BaselineId"],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline that should be the default patch baseline.</p>"
        }
      }
    },
    "RegisterDefaultPatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the default patch baseline.</p>"
        }
      }
    },
    "RegisterPatchBaselineForPatchGroupRequest":{
      "type":"structure",
      "required":[
        "BaselineId",
        "PatchGroup"
      ],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to register the patch group with.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group that should be registered with the patch baseline.</p>"
        }
      }
    },
    "RegisterPatchBaselineForPatchGroupResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline the patch group was registered with.</p>"
        },
        "PatchGroup":{
          "shape":"PatchGroup",
          "documentation":"<p>The name of the patch group registered with the patch baseline.</p>"
        }
      }
    },
    "RegisterTargetWithMaintenanceWindowRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "ResourceType",
        "Targets"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the target should be registered with.</p>"
        },
        "ResourceType":{
          "shape":"MaintenanceWindowResourceType",
          "documentation":"<p>The type of target being registered with the Maintenance Window.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or tags). </p> <p>Specify instances using the following format:</p> <p> <code>Key=InstanceIds,Values=&lt;instance-id-1&gt;,&lt;instance-id-2&gt;</code> </p> <p>Specify tags using either of the following formats:</p> <p> <code>Key=tag:&lt;tag-key&gt;,Values=&lt;tag-value-1&gt;,&lt;tag-value-2&gt;</code> </p> <p> <code>Key=tag-key,Values=&lt;tag-key-1&gt;,&lt;tag-key-2&gt;</code> </p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>An optional name for the target.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description for the target.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>User-provided idempotency token.</p>",
          "idempotencyToken":true
        }
      }
    },
    "RegisterTargetWithMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The ID of the target definition in this Maintenance Window.</p>"
        }
      }
    },
    "RegisterTaskWithMaintenanceWindowRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "Targets",
        "TaskArn",
        "TaskType",
        "MaxConcurrency",
        "MaxErrors"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window the task should be added to.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or Maintenance Window targets).</p> <p>Specify instances using the following format: </p> <p> <code>Key=InstanceIds,Values=&lt;instance-id-1&gt;,&lt;instance-id-2&gt;</code> </p> <p>Specify Maintenance Window targets using the following format:</p> <p> <code>Key=&lt;WindowTargetIds&gt;,Values=&lt;window-target-id-1&gt;,&lt;window-target-id-2&gt;</code> </p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The ARN of the task to execute </p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The role to assume when running the Maintenance Window task.</p> <p>If you do not specify a service role ARN, Systems Manager will use your account's service-linked role for Systems Manager by default. If no service-linked role for Systems Manager exists in your account, it will be created when you run <code>RegisterTaskWithMaintenanceWindow</code> without specifying a service role ARN.</p> <p>For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions\">Service-Linked Role Permissions for Systems Manager</a> and <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role\">Should I Use a Service-Linked Role or a Custom Service Role to Run Maintenance Window Tasks? </a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "TaskType":{
          "shape":"MaintenanceWindowTaskType",
          "documentation":"<p>The type of task being registered.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParameters",
          "documentation":"<p>The parameters that should be passed to the task when it is executed.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "TaskInvocationParameters":{
          "shape":"MaintenanceWindowTaskInvocationParameters",
          "documentation":"<p>The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. </p>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.</p>",
          "box":true
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets this task can be run for in parallel.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maximum number of errors allowed before this task stops being scheduled.</p>"
        },
        "LoggingInfo":{
          "shape":"LoggingInfo",
          "documentation":"<p>A structure containing information about an Amazon S3 bucket to write instance-level logs to. </p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>An optional name for the task.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description for the task.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>User-provided idempotency token.</p>",
          "idempotencyToken":true
        }
      }
    },
    "RegisterTaskWithMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The ID of the task in the Maintenance Window.</p>"
        }
      }
    },
    "RegistrationLimit":{
      "type":"integer",
      "max":1000,
      "min":1
    },
    "RegistrationsCount":{
      "type":"integer",
      "max":1000,
      "min":1
    },
    "RemainingCount":{"type":"integer"},
    "RemoveTagsFromResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceType",
        "ResourceId",
        "TagKeys"
      ],
      "members":{
        "ResourceType":{
          "shape":"ResourceTypeForTagging",
          "documentation":"<p>The type of resource of which you want to remove a tag.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. You must specify the the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note>"
        },
        "ResourceId":{
          "shape":"ResourceId",
          "documentation":"<p>The resource ID for which you want to remove tags. Use the ID of the resource. Here are some examples:</p> <p>ManagedInstance: mi-012345abcde</p> <p>MaintenanceWindow: mw-012345abcde</p> <p>PatchBaseline: pb-012345abcde</p> <p>For the Document and Parameter values, use the name of the resource.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. You must specify the the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note>"
        },
        "TagKeys":{
          "shape":"KeyList",
          "documentation":"<p>Tag keys that you want to remove from the specified resource.</p>"
        }
      }
    },
    "RemoveTagsFromResourceResult":{
      "type":"structure",
      "members":{
      }
    },
    "ResolvedTargets":{
      "type":"structure",
      "members":{
        "ParameterValues":{
          "shape":"TargetParameterList",
          "documentation":"<p>A list of parameter values sent to targets that resolved during the Automation execution.</p>"
        },
        "Truncated":{
          "shape":"Boolean",
          "documentation":"<p>A boolean value indicating whether the resolved target list is truncated.</p>"
        }
      },
      "documentation":"<p>Information about targets that resolved during the Automation execution.</p>"
    },
    "ResourceComplianceSummaryItem":{
      "type":"structure",
      "members":{
        "ComplianceType":{
          "shape":"ComplianceTypeName",
          "documentation":"<p>The compliance type.</p>"
        },
        "ResourceType":{
          "shape":"ComplianceResourceType",
          "documentation":"<p>The resource type.</p>"
        },
        "ResourceId":{
          "shape":"ComplianceResourceId",
          "documentation":"<p>The resource ID.</p>"
        },
        "Status":{
          "shape":"ComplianceStatus",
          "documentation":"<p>The compliance status for the resource.</p>"
        },
        "OverallSeverity":{
          "shape":"ComplianceSeverity",
          "documentation":"<p>The highest severity item found for the resource. The resource is compliant for this item.</p>"
        },
        "ExecutionSummary":{
          "shape":"ComplianceExecutionSummary",
          "documentation":"<p>Information about the execution.</p>"
        },
        "CompliantSummary":{
          "shape":"CompliantSummary",
          "documentation":"<p>A list of items that are compliant for the resource.</p>"
        },
        "NonCompliantSummary":{
          "shape":"NonCompliantSummary",
          "documentation":"<p>A list of items that aren't compliant for the resource.</p>"
        }
      },
      "documentation":"<p>Compliance summary information for a specific resource. </p>"
    },
    "ResourceComplianceSummaryItemList":{
      "type":"list",
      "member":{"shape":"ResourceComplianceSummaryItem"}
    },
    "ResourceCount":{"type":"integer"},
    "ResourceCountByStatus":{"type":"string"},
    "ResourceDataSyncAWSKMSKeyARN":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"arn:.*"
    },
    "ResourceDataSyncAlreadyExistsException":{
      "type":"structure",
      "members":{
        "SyncName":{"shape":"ResourceDataSyncName"}
      },
      "documentation":"<p>A sync configuration with the same name already exists.</p>",
      "exception":true
    },
    "ResourceDataSyncCountExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You have exceeded the allowed maximum sync configurations.</p>",
      "exception":true
    },
    "ResourceDataSyncCreatedTime":{"type":"timestamp"},
    "ResourceDataSyncInvalidConfigurationException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified sync configuration is invalid.</p>",
      "exception":true
    },
    "ResourceDataSyncItem":{
      "type":"structure",
      "members":{
        "SyncName":{
          "shape":"ResourceDataSyncName",
          "documentation":"<p>The name of the Resource Data Sync.</p>"
        },
        "S3Destination":{
          "shape":"ResourceDataSyncS3Destination",
          "documentation":"<p>Configuration information for the target Amazon S3 bucket.</p>"
        },
        "LastSyncTime":{
          "shape":"LastResourceDataSyncTime",
          "documentation":"<p>The last time the configuration attempted to sync (UTC).</p>"
        },
        "LastSuccessfulSyncTime":{
          "shape":"LastSuccessfulResourceDataSyncTime",
          "documentation":"<p>The last time the sync operations returned a status of <code>SUCCESSFUL</code> (UTC).</p>"
        },
        "LastStatus":{
          "shape":"LastResourceDataSyncStatus",
          "documentation":"<p>The status reported by the last sync.</p>"
        },
        "SyncCreatedTime":{
          "shape":"ResourceDataSyncCreatedTime",
          "documentation":"<p>The date and time the configuration was created (UTC).</p>"
        },
        "LastSyncStatusMessage":{
          "shape":"LastResourceDataSyncMessage",
          "documentation":"<p>The status message details reported by the last sync.</p>"
        }
      },
      "documentation":"<p>Information about a Resource Data Sync configuration, including its current status and last successful sync.</p>"
    },
    "ResourceDataSyncItemList":{
      "type":"list",
      "member":{"shape":"ResourceDataSyncItem"}
    },
    "ResourceDataSyncName":{
      "type":"string",
      "max":64,
      "min":1
    },
    "ResourceDataSyncNotFoundException":{
      "type":"structure",
      "members":{
        "SyncName":{"shape":"ResourceDataSyncName"}
      },
      "documentation":"<p>The specified sync name was not found.</p>",
      "exception":true
    },
    "ResourceDataSyncS3BucketName":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ResourceDataSyncS3Destination":{
      "type":"structure",
      "required":[
        "BucketName",
        "SyncFormat",
        "Region"
      ],
      "members":{
        "BucketName":{
          "shape":"ResourceDataSyncS3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket where the aggregated data is stored.</p>"
        },
        "Prefix":{
          "shape":"ResourceDataSyncS3Prefix",
          "documentation":"<p>An Amazon S3 prefix for the bucket.</p>"
        },
        "SyncFormat":{
          "shape":"ResourceDataSyncS3Format",
          "documentation":"<p>A supported sync format. The following format is currently supported: JsonSerDe</p>"
        },
        "Region":{
          "shape":"ResourceDataSyncS3Region",
          "documentation":"<p>The AWS Region with the Amazon S3 bucket targeted by the Resource Data Sync.</p>"
        },
        "AWSKMSKeyARN":{
          "shape":"ResourceDataSyncAWSKMSKeyARN",
          "documentation":"<p>The ARN of an encryption key for a destination in Amazon S3. Must belong to the same region as the destination Amazon S3 bucket.</p>"
        }
      },
      "documentation":"<p>Information about the target Amazon S3 bucket for the Resource Data Sync.</p>"
    },
    "ResourceDataSyncS3Format":{
      "type":"string",
      "enum":["JsonSerDe"]
    },
    "ResourceDataSyncS3Prefix":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ResourceDataSyncS3Region":{
      "type":"string",
      "max":64,
      "min":1
    },
    "ResourceId":{"type":"string"},
    "ResourceInUseException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Error returned if an attempt is made to delete a patch baseline that is registered for a patch group.</p>",
      "exception":true
    },
    "ResourceLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Error returned when the caller has exceeded the default resource limits. For example, too many Maintenance Windows or Patch baselines have been created.</p> <p>For information about resource limits in Systems Manager, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ssm\">AWS Systems Manager Limits</a>.</p>",
      "exception":true
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "ManagedInstance",
        "Document",
        "EC2Instance"
      ]
    },
    "ResourceTypeForTagging":{
      "type":"string",
      "enum":[
        "Document",
        "ManagedInstance",
        "MaintenanceWindow",
        "Parameter",
        "PatchBaseline"
      ]
    },
    "ResponseCode":{"type":"integer"},
    "ResultAttribute":{
      "type":"structure",
      "required":["TypeName"],
      "members":{
        "TypeName":{
          "shape":"InventoryItemTypeName",
          "documentation":"<p>Name of the inventory item type. Valid value: AWS:InstanceInformation. Default Value: AWS:InstanceInformation.</p>"
        }
      },
      "documentation":"<p>The inventory item result attribute.</p>"
    },
    "ResultAttributeList":{
      "type":"list",
      "member":{"shape":"ResultAttribute"},
      "max":1,
      "min":1
    },
    "ResumeSessionRequest":{
      "type":"structure",
      "required":["SessionId"],
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the disconnected session to resume.</p>"
        }
      }
    },
    "ResumeSessionResponse":{
      "type":"structure",
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session.</p>"
        },
        "TokenValue":{
          "shape":"TokenValue",
          "documentation":"<p>An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.</p>"
        },
        "StreamUrl":{
          "shape":"StreamUrl",
          "documentation":"<p>A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssm-messages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code>.</p> <p> <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in the <a href=\"http://docs.aws.amazon.com/general/latest/gr/rande.html#ssm_region\">AWS Systems Manager table of regions and endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.</p>"
        }
      }
    },
    "S3BucketName":{
      "type":"string",
      "max":63,
      "min":3
    },
    "S3KeyPrefix":{
      "type":"string",
      "max":500
    },
    "S3OutputLocation":{
      "type":"structure",
      "members":{
        "OutputS3Region":{
          "shape":"S3Region",
          "documentation":"<p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon S3 bucket region.</p>"
        },
        "OutputS3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket.</p>"
        },
        "OutputS3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The Amazon S3 bucket subfolder.</p>"
        }
      },
      "documentation":"<p>An Amazon S3 bucket where you want to store the results of this request.</p>"
    },
    "S3OutputUrl":{
      "type":"structure",
      "members":{
        "OutputUrl":{
          "shape":"Url",
          "documentation":"<p>A URL for an Amazon S3 bucket where you want to store the results of this request.</p>"
        }
      },
      "documentation":"<p>A URL for the Amazon S3 bucket where you want to store the results of this request.</p>"
    },
    "S3Region":{
      "type":"string",
      "max":20,
      "min":3
    },
    "ScheduleExpression":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ScheduledWindowExecution":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window to be run.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window to be run.</p>"
        },
        "ExecutionTime":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The time, in ISO-8601 Extended format, that the Maintenance Window is scheduled to be run.</p>"
        }
      },
      "documentation":"<p>Information about a scheduled execution for a Maintenance Window.</p>"
    },
    "ScheduledWindowExecutionList":{
      "type":"list",
      "member":{"shape":"ScheduledWindowExecution"}
    },
    "SendAutomationSignalRequest":{
      "type":"structure",
      "required":[
        "AutomationExecutionId",
        "SignalType"
      ],
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>"
        },
        "SignalType":{
          "shape":"SignalType",
          "documentation":"<p>The type of signal. Valid signal types include the following: Approve and Reject </p>"
        },
        "Payload":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>The data sent with the signal. The data schema depends on the type of signal used in the request. </p>"
        }
      }
    },
    "SendAutomationSignalResult":{
      "type":"structure",
      "members":{
      }
    },
    "SendCommandRequest":{
      "type":"structure",
      "required":["DocumentName"],
      "members":{
        "InstanceIds":{
          "shape":"InstanceIdList",
          "documentation":"<p>The instance IDs where the command should execute. You can specify a maximum of 50 IDs. If you prefer not to list individual instance IDs, you can instead send commands to a fleet of instances using the Targets parameter, which accepts EC2 tags. For more information about how to use targets, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html\">Sending Commands to a Fleet</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>(Optional) An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call. For more information about how to use targets, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html\">Sending Commands to a Fleet</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "DocumentName":{
          "shape":"DocumentARN",
          "documentation":"<p>Required. The name of the Systems Manager document to execute. This can be a public document or a custom document.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you execute commands by using the AWS CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p> <p>--document-version \"\\$DEFAULT\"</p> <p>--document-version \"\\$LATEST\"</p> <p>--document-version \"3\"</p>"
        },
        "DocumentHash":{
          "shape":"DocumentHash",
          "documentation":"<p>The Sha256 or Sha1 hash created by the system when the document was created. </p> <note> <p>Sha1 hashes have been deprecated.</p> </note>"
        },
        "DocumentHashType":{
          "shape":"DocumentHashType",
          "documentation":"<p>Sha256 or Sha1.</p> <note> <p>Sha1 hashes have been deprecated.</p> </note>"
        },
        "TimeoutSeconds":{
          "shape":"TimeoutSeconds",
          "documentation":"<p>If this time is reached and the command has not already started executing, it will not run.</p>",
          "box":true
        },
        "Comment":{
          "shape":"Comment",
          "documentation":"<p>User-specified information about the command, such as a brief description of what the command should do.</p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>The required and optional parameters specified in the document being executed.</p>"
        },
        "OutputS3Region":{
          "shape":"S3Region",
          "documentation":"<p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon S3 bucket region.</p>"
        },
        "OutputS3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the S3 bucket where command execution responses should be stored.</p>"
        },
        "OutputS3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The directory structure within the S3 bucket where the responses should be stored.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>(Optional) The maximum number of instances that are allowed to execute the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity\">Using Concurrency Controls</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of MaxErrors, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is 0. For more information about how to use MaxErrors, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors\">Using Error Controls</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM role that Systems Manager uses to send notifications. </p>"
        },
        "NotificationConfig":{
          "shape":"NotificationConfig",
          "documentation":"<p>Configurations for sending notifications.</p>"
        },
        "CloudWatchOutputConfig":{
          "shape":"CloudWatchOutputConfig",
          "documentation":"<p>Enables Systems Manager to send Run Command output to Amazon CloudWatch Logs. </p>"
        }
      }
    },
    "SendCommandResult":{
      "type":"structure",
      "members":{
        "Command":{
          "shape":"Command",
          "documentation":"<p>The request as it was received by Systems Manager. Also provides the command ID which can be used future references to this request.</p>"
        }
      }
    },
    "ServiceRole":{"type":"string"},
    "Session":{
      "type":"structure",
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session.</p>"
        },
        "Target":{
          "shape":"SessionTarget",
          "documentation":"<p>The instance that the Session Manager session connected to.</p>"
        },
        "Status":{
          "shape":"SessionStatus",
          "documentation":"<p>The status of the session. For example, \"Connected\" or \"Terminated\".</p>"
        },
        "StartDate":{
          "shape":"DateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, when the session began.</p>"
        },
        "EndDate":{
          "shape":"DateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, when the session was terminated.</p>"
        },
        "DocumentName":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Session Manager SSM document used to define the parameters and plugin settings for the session. For example, <code>SSM-SessionManagerRunShell</code>.</p>"
        },
        "Owner":{
          "shape":"SessionOwner",
          "documentation":"<p>The ID of the AWS user account that started the session.</p>"
        },
        "Details":{
          "shape":"SessionDetails",
          "documentation":"<p>Reserved for future use.</p>"
        },
        "OutputUrl":{
          "shape":"SessionManagerOutputUrl",
          "documentation":"<p>Reserved for future use.</p>"
        }
      },
      "documentation":"<p>Information about a Session Manager connection to an instance.</p>"
    },
    "SessionDetails":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "SessionFilter":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"SessionFilterKey",
          "documentation":"<p>The name of the filter.</p>"
        },
        "value":{
          "shape":"SessionFilterValue",
          "documentation":"<p>The filter value. Valid values for each filter key are as follows:</p> <ul> <li> <p>InvokedAfter: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.</p> </li> <li> <p>InvokedBefore: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.</p> </li> <li> <p>Target: Specify an instance to which session connections have been made.</p> </li> <li> <p>Owner: Specify an AWS user account to see a list of sessions started by that user.</p> </li> <li> <p>Status: Specify a valid session status to see a list of all sessions with that status. Status values you can specify include:</p> <ul> <li> <p>Connected</p> </li> <li> <p>Connecting</p> </li> <li> <p>Disconnected</p> </li> <li> <p>Terminated</p> </li> <li> <p>Terminating</p> </li> <li> <p>Failed</p> </li> </ul> </li> </ul>"
        }
      },
      "documentation":"<p>Describes a filter for Session Manager information.</p>"
    },
    "SessionFilterKey":{
      "type":"string",
      "enum":[
        "InvokedAfter",
        "InvokedBefore",
        "Target",
        "Owner",
        "Status"
      ]
    },
    "SessionFilterList":{
      "type":"list",
      "member":{"shape":"SessionFilter"},
      "max":5,
      "min":1
    },
    "SessionFilterValue":{
      "type":"string",
      "max":200,
      "min":1
    },
    "SessionId":{
      "type":"string",
      "max":96,
      "min":1
    },
    "SessionList":{
      "type":"list",
      "member":{"shape":"Session"}
    },
    "SessionManagerCloudWatchOutputUrl":{
      "type":"string",
      "max":2083,
      "min":1
    },
    "SessionManagerOutputUrl":{
      "type":"structure",
      "members":{
        "S3OutputUrl":{
          "shape":"SessionManagerS3OutputUrl",
          "documentation":"<p>Reserved for future use.</p>"
        },
        "CloudWatchOutputUrl":{
          "shape":"SessionManagerCloudWatchOutputUrl",
          "documentation":"<p>Reserved for future use.</p>"
        }
      },
      "documentation":"<p>Reserved for future use.</p>"
    },
    "SessionManagerParameterName":{
      "type":"string",
      "max":255,
      "min":1
    },
    "SessionManagerParameterValue":{
      "type":"string",
      "max":65535,
      "min":1
    },
    "SessionManagerParameterValueList":{
      "type":"list",
      "member":{"shape":"SessionManagerParameterValue"}
    },
    "SessionManagerParameters":{
      "type":"map",
      "key":{"shape":"SessionManagerParameterName"},
      "value":{"shape":"SessionManagerParameterValueList"}
    },
    "SessionManagerS3OutputUrl":{
      "type":"string",
      "max":2083,
      "min":1
    },
    "SessionMaxResults":{
      "type":"integer",
      "max":200,
      "min":1
    },
    "SessionOwner":{
      "type":"string",
      "max":256,
      "min":1
    },
    "SessionState":{
      "type":"string",
      "enum":[
        "Active",
        "History"
      ]
    },
    "SessionStatus":{
      "type":"string",
      "enum":[
        "Connected",
        "Connecting",
        "Disconnected",
        "Terminated",
        "Terminating",
        "Failed"
      ]
    },
    "SessionTarget":{
      "type":"string",
      "max":50,
      "min":1
    },
    "SeveritySummary":{
      "type":"structure",
      "members":{
        "CriticalCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of critical. Critical severity is determined by the organization that published the compliance items.</p>"
        },
        "HighCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of high. High severity is determined by the organization that published the compliance items.</p>"
        },
        "MediumCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of medium. Medium severity is determined by the organization that published the compliance items.</p>"
        },
        "LowCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of low. Low severity is determined by the organization that published the compliance items.</p>"
        },
        "InformationalCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of informational. Informational severity is determined by the organization that published the compliance items.</p>"
        },
        "UnspecifiedCount":{
          "shape":"ComplianceSummaryCount",
          "documentation":"<p>The total number of resources or compliance items that have a severity level of unspecified. Unspecified severity is determined by the organization that published the compliance items.</p>"
        }
      },
      "documentation":"<p>The number of managed instances found for each patch severity level defined in the request filter.</p>"
    },
    "SignalType":{
      "type":"string",
      "enum":[
        "Approve",
        "Reject",
        "StartStep",
        "StopStep",
        "Resume"
      ]
    },
    "SnapshotDownloadUrl":{"type":"string"},
    "SnapshotId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    },
    "StandardErrorContent":{
      "type":"string",
      "max":8000
    },
    "StandardOutputContent":{
      "type":"string",
      "max":24000
    },
    "StartAssociationsOnceRequest":{
      "type":"structure",
      "required":["AssociationIds"],
      "members":{
        "AssociationIds":{
          "shape":"AssociationIdList",
          "documentation":"<p>The association IDs that you want to execute immediately and only one time.</p>"
        }
      }
    },
    "StartAssociationsOnceResult":{
      "type":"structure",
      "members":{
      }
    },
    "StartAutomationExecutionRequest":{
      "type":"structure",
      "required":["DocumentName"],
      "members":{
        "DocumentName":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the Automation document to use for this execution.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of the Automation document to use for this execution.</p>",
          "box":true
        },
        "Parameters":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>A key-value map of execution parameters, which match the declared parameters in the Automation document.</p>"
        },
        "ClientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>User-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.</p>"
        },
        "Mode":{
          "shape":"ExecutionMode",
          "documentation":"<p>The execution mode of the automation. Valid modes include the following: Auto and Interactive. The default mode is Auto.</p>"
        },
        "TargetParameterName":{
          "shape":"AutomationParameterKey",
          "documentation":"<p>The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify targets.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>A key-value mapping to target resources. Required if you specify TargetParameterName.</p>"
        },
        "TargetMaps":{
          "shape":"TargetMaps",
          "documentation":"<p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps cannot be specified together.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run this task in parallel. You can specify a number, such as 10, or a percentage, such as 10%. The default value is 10.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops running the automation on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops running the automation when the fourth error is received. If you specify 0, then the system stops running the automation on additional targets after the first error result is returned. If you run an automation on 50 resources and set max-errors to 10%, then the system stops running the automation on additional targets when the sixth error is received.</p> <p>Executions that are already running an automation when max-errors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set max-concurrency to 1 so the executions proceed one at a time.</p>"
        },
        "TargetLocations":{
          "shape":"TargetLocations",
          "documentation":"<p>A location is a combination of AWS Regions and/or AWS accounts where you want to execute the Automation. Use this action to start an Automation in multiple Regions and multiple accounts. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html\">Concurrently Executing Automations in Multiple AWS Regions and Accounts</a> in the <i>AWS Systems Manager User Guide</i>. </p>",
          "box":true
        }
      }
    },
    "StartAutomationExecutionResult":{
      "type":"structure",
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The unique ID of a newly scheduled automation execution.</p>"
        }
      }
    },
    "StartSessionRequest":{
      "type":"structure",
      "required":["Target"],
      "members":{
        "Target":{
          "shape":"SessionTarget",
          "documentation":"<p>The instance to connect to for the session.</p>"
        },
        "DocumentName":{
          "shape":"DocumentARN",
          "documentation":"<p>The name of the SSM document to define the parameters and plugin settings for the session. For example, <code>SSM-SessionManagerRunShell</code>. If no document name is provided, a shell to the instance is launched by default.</p>"
        },
        "Parameters":{
          "shape":"SessionManagerParameters",
          "documentation":"<p>Reserved for future use.</p>"
        }
      }
    },
    "StartSessionResponse":{
      "type":"structure",
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session.</p>"
        },
        "TokenValue":{
          "shape":"TokenValue",
          "documentation":"<p>An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.</p>"
        },
        "StreamUrl":{
          "shape":"StreamUrl",
          "documentation":"<p>A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssm-messages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code> </p> <p> <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in the <a href=\"http://docs.aws.amazon.com/general/latest/gr/rande.html#ssm_region\">AWS Systems Manager table of regions and endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.</p>"
        }
      }
    },
    "StatusAdditionalInfo":{
      "type":"string",
      "max":1024
    },
    "StatusDetails":{
      "type":"string",
      "max":100,
      "min":0
    },
    "StatusMessage":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "StatusName":{"type":"string"},
    "StatusUnchanged":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The updated status is the same as the current status.</p>",
      "exception":true
    },
    "StepExecution":{
      "type":"structure",
      "members":{
        "StepName":{
          "shape":"String",
          "documentation":"<p>The name of this execution step.</p>"
        },
        "Action":{
          "shape":"AutomationActionName",
          "documentation":"<p>The action this step performs. The action determines the behavior of the step.</p>"
        },
        "TimeoutSeconds":{
          "shape":"Long",
          "documentation":"<p>The timeout seconds of the step.</p>",
          "box":true
        },
        "OnFailure":{
          "shape":"String",
          "documentation":"<p>The action to take if the step fails. The default value is Abort.</p>"
        },
        "MaxAttempts":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of tries to run the action of the step. The default value is 1.</p>",
          "box":true
        },
        "ExecutionStartTime":{
          "shape":"DateTime",
          "documentation":"<p>If a step has begun execution, this contains the time the step started. If the step is in Pending status, this field is not populated.</p>"
        },
        "ExecutionEndTime":{
          "shape":"DateTime",
          "documentation":"<p>If a step has finished execution, this contains the time the execution ended. If the step has not yet concluded, this field is not populated.</p>"
        },
        "StepStatus":{
          "shape":"AutomationExecutionStatus",
          "documentation":"<p>The execution status for this step. Valid values include: Pending, InProgress, Success, Cancelled, Failed, and TimedOut.</p>"
        },
        "ResponseCode":{
          "shape":"String",
          "documentation":"<p>The response code returned by the execution of the step.</p>"
        },
        "Inputs":{
          "shape":"NormalStringMap",
          "documentation":"<p>Fully-resolved values passed into the step before execution.</p>"
        },
        "Outputs":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>Returned values from the execution of the step.</p>"
        },
        "Response":{
          "shape":"String",
          "documentation":"<p>A message associated with the response code for an execution.</p>"
        },
        "FailureMessage":{
          "shape":"String",
          "documentation":"<p>If a step failed, this message explains why the execution failed.</p>"
        },
        "FailureDetails":{
          "shape":"FailureDetails",
          "documentation":"<p>Information about the Automation failure.</p>"
        },
        "StepExecutionId":{
          "shape":"String",
          "documentation":"<p>The unique ID of a step execution.</p>"
        },
        "OverriddenParameters":{
          "shape":"AutomationParameterMap",
          "documentation":"<p>A user-specified list of parameters to override when executing a step.</p>"
        },
        "IsEnd":{
          "shape":"Boolean",
          "documentation":"<p>The flag which can be used to end automation no matter whether the step succeeds or fails.</p>",
          "box":true
        },
        "NextStep":{
          "shape":"String",
          "documentation":"<p>The next step after the step succeeds.</p>",
          "box":true
        },
        "IsCritical":{
          "shape":"Boolean",
          "documentation":"<p>The flag which can be used to help decide whether the failure of current step leads to the Automation failure.</p>",
          "box":true
        },
        "ValidNextSteps":{
          "shape":"ValidNextStepList",
          "documentation":"<p>Strategies used when step fails, we support Continue and Abort. Abort will fail the automation when the step fails. Continue will ignore the failure of current step and allow automation to execute the next step. With conditional branching, we add step:stepName to support the automation to go to another specific step.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets for the step execution.</p>",
          "box":true
        },
        "TargetLocation":{
          "shape":"TargetLocation",
          "documentation":"<p>The combination of AWS Regions and accounts targeted by the current Automation execution.</p>",
          "box":true
        }
      },
      "documentation":"<p>Detailed information about an the execution state of an Automation step.</p>"
    },
    "StepExecutionFilter":{
      "type":"structure",
      "required":[
        "Key",
        "Values"
      ],
      "members":{
        "Key":{
          "shape":"StepExecutionFilterKey",
          "documentation":"<p>One or more keys to limit the results. Valid filter keys include the following: StepName, Action, StepExecutionId, StepExecutionStatus, StartTimeBefore, StartTimeAfter.</p>"
        },
        "Values":{
          "shape":"StepExecutionFilterValueList",
          "documentation":"<p>The values of the filter key.</p>"
        }
      },
      "documentation":"<p>A filter to limit the amount of step execution information returned by the call.</p>"
    },
    "StepExecutionFilterKey":{
      "type":"string",
      "enum":[
        "StartTimeBefore",
        "StartTimeAfter",
        "StepExecutionStatus",
        "StepExecutionId",
        "StepName",
        "Action"
      ]
    },
    "StepExecutionFilterList":{
      "type":"list",
      "member":{"shape":"StepExecutionFilter"},
      "max":6,
      "min":1
    },
    "StepExecutionFilterValue":{
      "type":"string",
      "max":150,
      "min":1
    },
    "StepExecutionFilterValueList":{
      "type":"list",
      "member":{"shape":"StepExecutionFilterValue"},
      "max":10,
      "min":1
    },
    "StepExecutionList":{
      "type":"list",
      "member":{"shape":"StepExecution"}
    },
    "StopAutomationExecutionRequest":{
      "type":"structure",
      "required":["AutomationExecutionId"],
      "members":{
        "AutomationExecutionId":{
          "shape":"AutomationExecutionId",
          "documentation":"<p>The execution ID of the Automation to stop.</p>"
        },
        "Type":{
          "shape":"StopType",
          "documentation":"<p>The stop request type. Valid types include the following: Cancel and Complete. The default type is Cancel.</p>"
        }
      }
    },
    "StopAutomationExecutionResult":{
      "type":"structure",
      "members":{
      }
    },
    "StopType":{
      "type":"string",
      "enum":[
        "Complete",
        "Cancel"
      ]
    },
    "StreamUrl":{"type":"string"},
    "String":{"type":"string"},
    "StringDateTime":{
      "type":"string",
      "pattern":"^([\\-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d(?!:))?)?(\\17[0-5]\\d([\\.,]\\d)?)?([zZ]|([\\-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$"
    },
    "StringList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "SubTypeCountLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The sub-type count exceeded the limit for the inventory type.</p>",
      "exception":true
    },
    "Tag":{
      "type":"structure",
      "required":[
        "Key",
        "Value"
      ],
      "members":{
        "Key":{
          "shape":"TagKey",
          "documentation":"<p>The name of the tag.</p>"
        },
        "Value":{
          "shape":"TagValue",
          "documentation":"<p>The value of the tag.</p>"
        }
      },
      "documentation":"<p>Metadata that you assign to your AWS resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. In Systems Manager, you can apply tags to documents, managed instances, Maintenance Windows, Parameter Store parameters, and patch baselines.</p>"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"},
      "max":1000
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "Target":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"TargetKey",
          "documentation":"<p>User-defined criteria for sending commands that target instances that meet the criteria. Key can be tag:&lt;Amazon EC2 tag&gt; or InstanceIds. For more information about how to send commands that target instances using Key,Value parameters, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-targeting\">Targeting Multiple Instances</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "Values":{
          "shape":"TargetValues",
          "documentation":"<p>User-defined criteria that maps to Key. For example, if you specified tag:ServerRole, you could specify value:WebServer to execute a command on instances that include Amazon EC2 tags of ServerRole,WebServer. For more information about how to send commands that target instances using Key,Value parameters, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html\">Sending Commands to a Fleet</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        }
      },
      "documentation":"<p>An array of search criteria that targets instances using a Key,Value combination that you specify. <code>Targets</code> is required if you don't provide one or more instance IDs in the call.</p> <p/>"
    },
    "TargetCount":{"type":"integer"},
    "TargetInUseException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>You specified the <code>Safe</code> option for the DeregisterTargetFromMaintenanceWindow operation, but the target is still referenced in a task.</p>",
      "exception":true
    },
    "TargetKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$"
    },
    "TargetLocation":{
      "type":"structure",
      "members":{
        "Accounts":{
          "shape":"Accounts",
          "documentation":"<p>The AWS accounts targeted by the current Automation execution.</p>"
        },
        "Regions":{
          "shape":"Regions",
          "documentation":"<p>The AWS Regions targeted by the current Automation execution.</p>"
        },
        "TargetLocationMaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maxium number of AWS accounts and AWS regions allowed to run the Automation concurrently </p>",
          "box":true
        },
        "TargetLocationMaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The maxium number of errors allowed before the system stops queueing additional Automation executions for the currently executing Automation. </p>",
          "box":true
        },
        "ExecutionRoleName":{
          "shape":"ExecutionRoleName",
          "documentation":"<p>The Automation execution role used by the currently executing Automation.</p>",
          "box":true
        }
      },
      "documentation":"<p>The combination of AWS Regions and accounts targeted by the current Automation execution.</p>"
    },
    "TargetLocations":{
      "type":"list",
      "member":{"shape":"TargetLocation"},
      "max":100,
      "min":1
    },
    "TargetMap":{
      "type":"map",
      "key":{"shape":"TargetMapKey"},
      "value":{"shape":"TargetMapValueList"},
      "max":20,
      "min":1
    },
    "TargetMapKey":{
      "type":"string",
      "max":50,
      "min":1
    },
    "TargetMapValue":{
      "type":"string",
      "max":50,
      "min":1
    },
    "TargetMapValueList":{
      "type":"list",
      "member":{"shape":"TargetMapValue"},
      "max":25,
      "min":0
    },
    "TargetMaps":{
      "type":"list",
      "member":{"shape":"TargetMap"},
      "max":300,
      "min":0
    },
    "TargetNotConnected":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The specified target instance for the session is not fully configured for use with Session Manager. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html\">Getting Started with Session Manager</a> in the <i>AWS Systems Manager User Guide</i>.</p>",
      "exception":true
    },
    "TargetParameterList":{
      "type":"list",
      "member":{"shape":"ParameterValue"}
    },
    "TargetType":{
      "type":"string",
      "max":200,
      "pattern":"^\\/[\\w\\.\\-\\:\\/]*$"
    },
    "TargetValue":{"type":"string"},
    "TargetValues":{
      "type":"list",
      "member":{"shape":"TargetValue"},
      "max":50,
      "min":0
    },
    "Targets":{
      "type":"list",
      "member":{"shape":"Target"},
      "max":5,
      "min":0
    },
    "TerminateSessionRequest":{
      "type":"structure",
      "required":["SessionId"],
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session to terminate.</p>"
        }
      }
    },
    "TerminateSessionResponse":{
      "type":"structure",
      "members":{
        "SessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session that has been terminated.</p>"
        }
      }
    },
    "TimeoutSeconds":{
      "type":"integer",
      "max":2592000,
      "min":30
    },
    "TokenValue":{
      "type":"string",
      "max":300,
      "min":0
    },
    "TooManyTagsError":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>The Targets parameter includes too many tags. Remove one or more tags and try the command again.</p>",
      "exception":true
    },
    "TooManyUpdates":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>There are concurrent updates for a resource that supports one update at a time.</p>",
      "exception":true
    },
    "TotalCount":{"type":"integer"},
    "TotalSizeLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The size of inventory data has exceeded the total size limit for the resource.</p>",
      "exception":true
    },
    "UnsupportedInventoryItemContextException":{
      "type":"structure",
      "members":{
        "TypeName":{"shape":"InventoryItemTypeName"},
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The <code>Context</code> attribute that you specified for the <code>InventoryItem</code> is not allowed for this inventory type. You can only use the <code>Context</code> attribute with inventory types like <code>AWS:ComplianceItem</code>.</p>",
      "exception":true
    },
    "UnsupportedInventorySchemaVersionException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>Inventory item type schema version has to match supported versions in the service. Check output of GetInventorySchema to see the available schema version for each type.</p>",
      "exception":true
    },
    "UnsupportedOperatingSystem":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The operating systems you specified is not supported, or the operation is not supported for the operating system. Valid operating systems include: Windows, AmazonLinux, RedhatEnterpriseLinux, and Ubuntu.</p>",
      "exception":true
    },
    "UnsupportedParameterType":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The parameter type is not supported.</p>",
      "exception":true
    },
    "UnsupportedPlatformType":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p>The document does not support the platform type of the given instance ID(s). For example, you sent an document for a Windows instance to a Linux instance.</p>",
      "exception":true
    },
    "UpdateAssociationRequest":{
      "type":"structure",
      "required":["AssociationId"],
      "members":{
        "AssociationId":{
          "shape":"AssociationId",
          "documentation":"<p>The ID of the association you want to update. </p>"
        },
        "Parameters":{
          "shape":"Parameters",
          "documentation":"<p>The parameters you want to update for the association. If you create a parameter using Parameter Store, you can reference the parameter using {{ssm:parameter-name}}</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The document version you want update for the association. </p>"
        },
        "ScheduleExpression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>The cron expression used to schedule the association that you want to update.</p>"
        },
        "OutputLocation":{
          "shape":"InstanceAssociationOutputLocation",
          "documentation":"<p>An Amazon S3 bucket where you want to store the results of this request.</p>"
        },
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the association document.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets of the association.</p>"
        },
        "AssociationName":{
          "shape":"AssociationName",
          "documentation":"<p>The name of the association that you want to update.</p>"
        },
        "AssociationVersion":{
          "shape":"AssociationVersion",
          "documentation":"<p>This parameter is provided for concurrency control purposes. You must specify the latest association version in the service. If you want to ensure that this request succeeds, either specify <code>$LATEST</code>, or omit this parameter.</p>"
        },
        "AutomationTargetParameterName":{
          "shape":"AutomationTargetParameterName",
          "documentation":"<p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to execute an association while Systems Manager is executing MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>"
        },
        "ComplianceSeverity":{
          "shape":"AssociationComplianceSeverity",
          "documentation":"<p>The severity level to assign to the association.</p>"
        }
      }
    },
    "UpdateAssociationResult":{
      "type":"structure",
      "members":{
        "AssociationDescription":{
          "shape":"AssociationDescription",
          "documentation":"<p>The description of the association that was updated.</p>"
        }
      }
    },
    "UpdateAssociationStatusRequest":{
      "type":"structure",
      "required":[
        "Name",
        "InstanceId",
        "AssociationStatus"
      ],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the Systems Manager document.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The ID of the instance.</p>"
        },
        "AssociationStatus":{
          "shape":"AssociationStatus",
          "documentation":"<p>The association status.</p>"
        }
      }
    },
    "UpdateAssociationStatusResult":{
      "type":"structure",
      "members":{
        "AssociationDescription":{
          "shape":"AssociationDescription",
          "documentation":"<p>Information about the association.</p>"
        }
      }
    },
    "UpdateDocumentDefaultVersionRequest":{
      "type":"structure",
      "required":[
        "Name",
        "DocumentVersion"
      ],
      "members":{
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of a custom document that you want to set as the default version.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersionNumber",
          "documentation":"<p>The version of a custom document that you want to set as the default version.</p>"
        }
      }
    },
    "UpdateDocumentDefaultVersionResult":{
      "type":"structure",
      "members":{
        "Description":{
          "shape":"DocumentDefaultVersionDescription",
          "documentation":"<p>The description of a custom document that you want to set as the default version.</p>"
        }
      }
    },
    "UpdateDocumentRequest":{
      "type":"structure",
      "required":[
        "Content",
        "Name"
      ],
      "members":{
        "Content":{
          "shape":"DocumentContent",
          "documentation":"<p>A valid JSON or YAML string.</p>"
        },
        "Attachments":{
          "shape":"AttachmentsSourceList",
          "documentation":"<p>A list of key and value pairs that describe attachments to a version of a document.</p>"
        },
        "Name":{
          "shape":"DocumentName",
          "documentation":"<p>The name of the document that you want to update.</p>"
        },
        "VersionName":{
          "shape":"DocumentVersionName",
          "documentation":"<p>An optional field specifying the version of the artifact you are updating with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and cannot be changed.</p>"
        },
        "DocumentVersion":{
          "shape":"DocumentVersion",
          "documentation":"<p>The version of the document that you want to update.</p>"
        },
        "DocumentFormat":{
          "shape":"DocumentFormat",
          "documentation":"<p>Specify the document format for the new document version. Systems Manager supports JSON and YAML documents. JSON is the default format.</p>"
        },
        "TargetType":{
          "shape":"TargetType",
          "documentation":"<p>Specify a new target type for the document.</p>"
        }
      }
    },
    "UpdateDocumentResult":{
      "type":"structure",
      "members":{
        "DocumentDescription":{
          "shape":"DocumentDescription",
          "documentation":"<p>A description of the document that was updated.</p>"
        }
      }
    },
    "UpdateMaintenanceWindowRequest":{
      "type":"structure",
      "required":["WindowId"],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window to update.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description for the update request.</p>"
        },
        "StartDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"etc/UTC\", or \"Asia/Seoul\". For more information, see the <a href=\"https://www.iana.org/time-zones\">Time Zone Database</a> on the IANA website.</p>"
        },
        "EndDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when you want the Maintenance Window to become inactive. EndDate allows you to set a date and time in the future when the Maintenance Window will no longer run.</p>"
        },
        "Schedule":{
          "shape":"MaintenanceWindowSchedule",
          "documentation":"<p>The schedule of the Maintenance Window in the form of a cron or rate expression.</p>"
        },
        "ScheduleTimezone":{
          "shape":"MaintenanceWindowTimezone",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"etc/UTC\", or \"Asia/Seoul\". For more information, see the <a href=\"https://www.iana.org/time-zones\">Time Zone Database</a> on the IANA website.</p>"
        },
        "Duration":{
          "shape":"MaintenanceWindowDurationHours",
          "documentation":"<p>The duration of the Maintenance Window in hours.</p>",
          "box":true
        },
        "Cutoff":{
          "shape":"MaintenanceWindowCutoff",
          "documentation":"<p>The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.</p>",
          "box":true
        },
        "AllowUnassociatedTargets":{
          "shape":"MaintenanceWindowAllowUnassociatedTargets",
          "documentation":"<p>Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.</p>",
          "box":true
        },
        "Enabled":{
          "shape":"MaintenanceWindowEnabled",
          "documentation":"<p>Whether the Maintenance Window is enabled.</p>",
          "box":true
        },
        "Replace":{
          "shape":"Boolean",
          "documentation":"<p>If True, then all fields that are required by the CreateMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null. </p>",
          "box":true
        }
      }
    },
    "UpdateMaintenanceWindowResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the created Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The name of the Maintenance Window.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description of the update.</p>"
        },
        "StartDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become active. The Maintenance Window will not run before this specified time.</p>"
        },
        "EndDate":{
          "shape":"MaintenanceWindowStringDateTime",
          "documentation":"<p>The date and time, in ISO-8601 Extended format, for when the Maintenance Window is scheduled to become inactive. The Maintenance Window will not run after this specified time.</p>"
        },
        "Schedule":{
          "shape":"MaintenanceWindowSchedule",
          "documentation":"<p>The schedule of the Maintenance Window in the form of a cron or rate expression.</p>"
        },
        "ScheduleTimezone":{
          "shape":"MaintenanceWindowTimezone",
          "documentation":"<p>The time zone that the scheduled Maintenance Window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: \"America/Los_Angeles\", \"etc/UTC\", or \"Asia/Seoul\". For more information, see the <a href=\"https://www.iana.org/time-zones\">Time Zone Database</a> on the IANA website.</p>"
        },
        "Duration":{
          "shape":"MaintenanceWindowDurationHours",
          "documentation":"<p>The duration of the Maintenance Window in hours.</p>"
        },
        "Cutoff":{
          "shape":"MaintenanceWindowCutoff",
          "documentation":"<p>The number of hours before the end of the Maintenance Window that Systems Manager stops scheduling new tasks for execution.</p>"
        },
        "AllowUnassociatedTargets":{
          "shape":"MaintenanceWindowAllowUnassociatedTargets",
          "documentation":"<p>Whether targets must be registered with the Maintenance Window before tasks can be defined for those targets.</p>"
        },
        "Enabled":{
          "shape":"MaintenanceWindowEnabled",
          "documentation":"<p>Whether the Maintenance Window is enabled.</p>"
        }
      }
    },
    "UpdateMaintenanceWindowTargetRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "WindowTargetId"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID with which to modify the target.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The target ID to modify.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets to add or replace.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>A name for the update.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>An optional description for the update.</p>"
        },
        "Replace":{
          "shape":"Boolean",
          "documentation":"<p>If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.</p>",
          "box":true
        }
      }
    },
    "UpdateMaintenanceWindowTargetResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID specified in the update request.</p>"
        },
        "WindowTargetId":{
          "shape":"MaintenanceWindowTargetId",
          "documentation":"<p>The target ID specified in the update request.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The updated targets.</p>"
        },
        "OwnerInformation":{
          "shape":"OwnerInformation",
          "documentation":"<p>The updated owner.</p>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The updated name.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>The updated description.</p>"
        }
      }
    },
    "UpdateMaintenanceWindowTaskRequest":{
      "type":"structure",
      "required":[
        "WindowId",
        "WindowTaskId"
      ],
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The Maintenance Window ID that contains the task to modify.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The task ID to modify.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The targets (either instances or tags) to modify. Instances are specified using Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified using Key=tag_name,Values=tag_value. </p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The task ARN to modify.</p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The IAM service role ARN to modify. The system assumes this role during task execution.</p> <p>If you do not specify a service role ARN, Systems Manager will use your account's service-linked role for Systems Manager by default. If no service-linked role for Systems Manager exists in your account, it will be created when you run <code>RegisterTaskWithMaintenanceWindow</code> without specifying a service role ARN.</p> <p>For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions\">Service-Linked Role Permissions for Systems Manager</a> and <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role\">Should I Use a Service-Linked Role or a Custom Service Role to Run Maintenance Window Tasks? </a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParameters",
          "documentation":"<p>The parameters to modify.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note> <p>The map has the following format:</p> <p>Key: string, between 1 and 255 characters</p> <p>Value: an array of strings, each string is between 1 and 255 characters</p>"
        },
        "TaskInvocationParameters":{
          "shape":"MaintenanceWindowTaskInvocationParameters",
          "documentation":"<p>The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty.</p>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The new task priority to specify. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>",
          "box":true
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The new <code>MaxConcurrency</code> value you want to specify. <code>MaxConcurrency</code> is the number of targets that are allowed to run this task in parallel.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The new <code>MaxErrors</code> value to specify. <code>MaxErrors</code> is the maximum number of errors that are allowed before the task stops being scheduled.</p>"
        },
        "LoggingInfo":{
          "shape":"LoggingInfo",
          "documentation":"<p>The new logging location in Amazon S3 to specify.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The new task name to specify.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>The new task description to specify.</p>"
        },
        "Replace":{
          "shape":"Boolean",
          "documentation":"<p>If True, then all fields that are required by the RegisterTaskWithMaintenanceWndow action are also required for this API request. Optional fields that are not specified are set to null.</p>",
          "box":true
        }
      }
    },
    "UpdateMaintenanceWindowTaskResult":{
      "type":"structure",
      "members":{
        "WindowId":{
          "shape":"MaintenanceWindowId",
          "documentation":"<p>The ID of the Maintenance Window that was updated.</p>"
        },
        "WindowTaskId":{
          "shape":"MaintenanceWindowTaskId",
          "documentation":"<p>The task ID of the Maintenance Window that was updated.</p>"
        },
        "Targets":{
          "shape":"Targets",
          "documentation":"<p>The updated target values.</p>"
        },
        "TaskArn":{
          "shape":"MaintenanceWindowTaskArn",
          "documentation":"<p>The updated task ARN value.</p>"
        },
        "ServiceRoleArn":{
          "shape":"ServiceRole",
          "documentation":"<p>The updated service role ARN value.</p>"
        },
        "TaskParameters":{
          "shape":"MaintenanceWindowTaskParameters",
          "documentation":"<p>The updated parameter values.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "TaskInvocationParameters":{
          "shape":"MaintenanceWindowTaskInvocationParameters",
          "documentation":"<p>The updated parameter values.</p>"
        },
        "Priority":{
          "shape":"MaintenanceWindowTaskPriority",
          "documentation":"<p>The updated priority value.</p>"
        },
        "MaxConcurrency":{
          "shape":"MaxConcurrency",
          "documentation":"<p>The updated MaxConcurrency value.</p>"
        },
        "MaxErrors":{
          "shape":"MaxErrors",
          "documentation":"<p>The updated MaxErrors value.</p>"
        },
        "LoggingInfo":{
          "shape":"LoggingInfo",
          "documentation":"<p>The updated logging information in Amazon S3.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported Maintenance Window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note>"
        },
        "Name":{
          "shape":"MaintenanceWindowName",
          "documentation":"<p>The updated task name.</p>"
        },
        "Description":{
          "shape":"MaintenanceWindowDescription",
          "documentation":"<p>The updated task description.</p>"
        }
      }
    },
    "UpdateManagedInstanceRoleRequest":{
      "type":"structure",
      "required":[
        "InstanceId",
        "IamRole"
      ],
      "members":{
        "InstanceId":{
          "shape":"ManagedInstanceId",
          "documentation":"<p>The ID of the managed instance where you want to update the role.</p>"
        },
        "IamRole":{
          "shape":"IamRole",
          "documentation":"<p>The IAM role you want to assign or change.</p>"
        }
      }
    },
    "UpdateManagedInstanceRoleResult":{
      "type":"structure",
      "members":{
      }
    },
    "UpdatePatchBaselineRequest":{
      "type":"structure",
      "required":["BaselineId"],
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the patch baseline to update.</p>"
        },
        "Name":{
          "shape":"BaselineName",
          "documentation":"<p>The name of the patch baseline.</p>"
        },
        "GlobalFilters":{
          "shape":"PatchFilterGroup",
          "documentation":"<p>A set of global filters used to exclude patches from the baseline.</p>"
        },
        "ApprovalRules":{
          "shape":"PatchRuleGroup",
          "documentation":"<p>A set of rules used to include patches in the baseline.</p>"
        },
        "ApprovedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly approved patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html\">Package Name Formats for Approved and Rejected Patch Lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "ApprovedPatchesComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>Assigns a new compliance severity level to an existing patch baseline.</p>"
        },
        "ApprovedPatchesEnableNonSecurity":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>",
          "box":true
        },
        "RejectedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly rejected patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html\">Package Name Formats for Approved and Rejected Patch Lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>"
        },
        "RejectedPatchesAction":{
          "shape":"PatchAction",
          "documentation":"<p>The action for Patch Manager to take on patches included in the RejectedPackages list.</p> <ul> <li> <p> <b>ALLOW_AS_DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified.</p> </li> <li> <p> <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>.</p> </li> </ul>"
        },
        "Description":{
          "shape":"BaselineDescription",
          "documentation":"<p>A description of the patch baseline.</p>"
        },
        "Sources":{
          "shape":"PatchSourceList",
          "documentation":"<p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>"
        },
        "Replace":{
          "shape":"Boolean",
          "documentation":"<p>If True, then all fields that are required by the CreatePatchBaseline action are also required for this API request. Optional fields that are not specified are set to null.</p>",
          "box":true
        }
      }
    },
    "UpdatePatchBaselineResult":{
      "type":"structure",
      "members":{
        "BaselineId":{
          "shape":"BaselineId",
          "documentation":"<p>The ID of the deleted patch baseline.</p>"
        },
        "Name":{
          "shape":"BaselineName",
          "documentation":"<p>The name of the patch baseline.</p>"
        },
        "OperatingSystem":{
          "shape":"OperatingSystem",
          "documentation":"<p>The operating system rule used by the updated patch baseline.</p>"
        },
        "GlobalFilters":{
          "shape":"PatchFilterGroup",
          "documentation":"<p>A set of global filters used to exclude patches from the baseline.</p>"
        },
        "ApprovalRules":{
          "shape":"PatchRuleGroup",
          "documentation":"<p>A set of rules used to include patches in the baseline.</p>"
        },
        "ApprovedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly approved patches for the baseline.</p>"
        },
        "ApprovedPatchesComplianceLevel":{
          "shape":"PatchComplianceLevel",
          "documentation":"<p>The compliance severity level assigned to the patch baseline after the update completed.</p>"
        },
        "ApprovedPatchesEnableNonSecurity":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>",
          "box":true
        },
        "RejectedPatches":{
          "shape":"PatchIdList",
          "documentation":"<p>A list of explicitly rejected patches for the baseline.</p>"
        },
        "RejectedPatchesAction":{
          "shape":"PatchAction",
          "documentation":"<p>The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.</p>"
        },
        "CreatedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date when the patch baseline was created.</p>"
        },
        "ModifiedDate":{
          "shape":"DateTime",
          "documentation":"<p>The date when the patch baseline was last modified.</p>"
        },
        "Description":{
          "shape":"BaselineDescription",
          "documentation":"<p>A description of the Patch Baseline.</p>"
        },
        "Sources":{
          "shape":"PatchSourceList",
          "documentation":"<p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>"
        }
      }
    },
    "Url":{"type":"string"},
    "ValidNextStep":{
      "type":"string",
      "max":65535,
      "min":1
    },
    "ValidNextStepList":{
      "type":"list",
      "member":{"shape":"ValidNextStep"}
    },
    "Version":{
      "type":"string",
      "pattern":"^[0-9]{1,6}(\\.[0-9]{1,6}){2,3}$"
    }
  },
  "documentation":"<fullname>AWS Systems Manager</fullname> <p>AWS Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A <i>managed instance</i> is any Amazon EC2 instance or on-premises machine in your hybrid environment that has been configured for Systems Manager.</p> <p>This reference is intended to be used with the <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/\">AWS Systems Manager User Guide</a>.</p> <p>To get started, verify prerequisites and configure managed instances. For more information, see <a href=\"http://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html\">Systems Manager Prerequisites</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>For information about other API actions you can perform on Amazon EC2 instances, see the <a href=\"http://docs.aws.amazon.com/AWSEC2/latest/APIReference/\">Amazon EC2 API Reference</a>. For information about how to use a Query API, see <a href=\"http://docs.aws.amazon.com/AWSEC2/latest/APIReference/making-api-requests.html\">Making API Requests</a>. </p>"
}
