{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-10-26",
    "endpointPrefix":"securityhub",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"AWS SecurityHub",
    "serviceId":"SecurityHub",
    "signatureVersion":"v4",
    "signingName":"securityhub",
    "uid":"securityhub-2018-10-26"
  },
  "operations":{
    "AcceptInvitation":{
      "name":"AcceptInvitation",
      "http":{
        "method":"POST",
        "requestUri":"/master"
      },
      "input":{"shape":"AcceptInvitationRequest"},
      "output":{"shape":"AcceptInvitationResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Accepts the invitation to be monitored by a master SecurityHub account.</p>"
    },
    "BatchDisableStandards":{
      "name":"BatchDisableStandards",
      "http":{
        "method":"POST",
        "requestUri":"/standards/deregister"
      },
      "input":{"shape":"BatchDisableStandardsRequest"},
      "output":{"shape":"BatchDisableStandardsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Disables the standards specified by the standards subscription ARNs. In the context of Security Hub, supported standards (for example, CIS AWS Foundations) are automated and continuous checks that help determine your compliance status against security industry (including AWS) best practices. </p>"
    },
    "BatchEnableStandards":{
      "name":"BatchEnableStandards",
      "http":{
        "method":"POST",
        "requestUri":"/standards/register"
      },
      "input":{"shape":"BatchEnableStandardsRequest"},
      "output":{"shape":"BatchEnableStandardsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Enables the standards specified by the standards ARNs. In the context of Security Hub, supported standards (for example, CIS AWS Foundations) are automated and continuous checks that help determine your compliance status against security industry (including AWS) best practices. </p>"
    },
    "BatchImportFindings":{
      "name":"BatchImportFindings",
      "http":{
        "method":"POST",
        "requestUri":"/findings/import"
      },
      "input":{"shape":"BatchImportFindingsRequest"},
      "output":{"shape":"BatchImportFindingsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Imports security findings that are generated by the integrated third-party products into Security Hub.</p>"
    },
    "CreateInsight":{
      "name":"CreateInsight",
      "http":{
        "method":"POST",
        "requestUri":"/insights"
      },
      "input":{"shape":"CreateInsightRequest"},
      "output":{"shape":"CreateInsightResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Creates an insight, which is a consolidation of findings that identifies a security area that requires attention or intervention.</p>"
    },
    "CreateMembers":{
      "name":"CreateMembers",
      "http":{
        "method":"POST",
        "requestUri":"/members"
      },
      "input":{"shape":"CreateMembersRequest"},
      "output":{"shape":"CreateMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Creates member Security Hub accounts in the current AWS account (which becomes the master Security Hub account) that has Security Hub enabled.</p>"
    },
    "DeclineInvitations":{
      "name":"DeclineInvitations",
      "http":{
        "method":"POST",
        "requestUri":"/invitations/decline"
      },
      "input":{"shape":"DeclineInvitationsRequest"},
      "output":{"shape":"DeclineInvitationsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Declines invitations that are sent to this AWS account (invitee) by the AWS accounts (inviters) that are specified by the account IDs. </p>"
    },
    "DeleteInsight":{
      "name":"DeleteInsight",
      "http":{
        "method":"DELETE",
        "requestUri":"/insights/{InsightArn+}"
      },
      "input":{"shape":"DeleteInsightRequest"},
      "output":{"shape":"DeleteInsightResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Deletes an insight that is specified by the insight ARN.</p>"
    },
    "DeleteInvitations":{
      "name":"DeleteInvitations",
      "http":{
        "method":"POST",
        "requestUri":"/invitations/delete"
      },
      "input":{"shape":"DeleteInvitationsRequest"},
      "output":{"shape":"DeleteInvitationsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes invitations that are sent to this AWS account (invitee) by the AWS accounts (inviters) that are specified by their account IDs. </p>"
    },
    "DeleteMembers":{
      "name":"DeleteMembers",
      "http":{
        "method":"POST",
        "requestUri":"/members/delete"
      },
      "input":{"shape":"DeleteMembersRequest"},
      "output":{"shape":"DeleteMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes the Security Hub member accounts that are specified by the account IDs.</p>"
    },
    "DisableImportFindingsForProduct":{
      "name":"DisableImportFindingsForProduct",
      "http":{
        "method":"DELETE",
        "requestUri":"/productSubscriptions/{ProductSubscriptionArn+}"
      },
      "input":{"shape":"DisableImportFindingsForProductRequest"},
      "output":{"shape":"DisableImportFindingsForProductResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Stops you from being able to import findings generated by integrated third-party providers into Security Hub.</p>"
    },
    "DisableSecurityHub":{
      "name":"DisableSecurityHub",
      "http":{
        "method":"DELETE",
        "requestUri":"/accounts"
      },
      "input":{"shape":"DisableSecurityHubRequest"},
      "output":{"shape":"DisableSecurityHubResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Disables the AWS Security Hub Service.</p>"
    },
    "DisassociateFromMasterAccount":{
      "name":"DisassociateFromMasterAccount",
      "http":{
        "method":"POST",
        "requestUri":"/master/disassociate"
      },
      "input":{"shape":"DisassociateFromMasterAccountRequest"},
      "output":{"shape":"DisassociateFromMasterAccountResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Disassociates the current Security Hub member account from its master account.</p>"
    },
    "DisassociateMembers":{
      "name":"DisassociateMembers",
      "http":{
        "method":"POST",
        "requestUri":"/members/disassociate"
      },
      "input":{"shape":"DisassociateMembersRequest"},
      "output":{"shape":"DisassociateMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Disassociates the Security Hub member accounts that are specified by the account IDs from their master account. </p>"
    },
    "EnableImportFindingsForProduct":{
      "name":"EnableImportFindingsForProduct",
      "http":{
        "method":"POST",
        "requestUri":"/productSubscriptions"
      },
      "input":{"shape":"EnableImportFindingsForProductRequest"},
      "output":{"shape":"EnableImportFindingsForProductResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"}
      ],
      "documentation":"<p>Enables you to import findings generated by integrated third-party providers into Security Hub.</p>"
    },
    "EnableSecurityHub":{
      "name":"EnableSecurityHub",
      "http":{
        "method":"POST",
        "requestUri":"/accounts"
      },
      "input":{"shape":"EnableSecurityHubRequest"},
      "output":{"shape":"EnableSecurityHubResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Enables the AWS Security Hub service.</p>"
    },
    "GetEnabledStandards":{
      "name":"GetEnabledStandards",
      "http":{
        "method":"POST",
        "requestUri":"/standards/get"
      },
      "input":{"shape":"GetEnabledStandardsRequest"},
      "output":{"shape":"GetEnabledStandardsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Lists and describes enabled standards.</p>"
    },
    "GetFindings":{
      "name":"GetFindings",
      "http":{
        "method":"POST",
        "requestUri":"/findings"
      },
      "input":{"shape":"GetFindingsRequest"},
      "output":{"shape":"GetFindingsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists and describes Security Hub-aggregated findings that are specified by filter attributes.</p>"
    },
    "GetInsightResults":{
      "name":"GetInsightResults",
      "http":{
        "method":"GET",
        "requestUri":"/insights/results/{InsightArn+}"
      },
      "input":{"shape":"GetInsightResultsRequest"},
      "output":{"shape":"GetInsightResultsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Lists the results of the Security Hub insight specified by the insight ARN.</p>"
    },
    "GetInsights":{
      "name":"GetInsights",
      "http":{
        "method":"POST",
        "requestUri":"/insights/get"
      },
      "input":{"shape":"GetInsightsRequest"},
      "output":{"shape":"GetInsightsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Lists and describes insights that are specified by insight ARNs.</p>"
    },
    "GetInvitationsCount":{
      "name":"GetInvitationsCount",
      "http":{
        "method":"GET",
        "requestUri":"/invitations/count"
      },
      "input":{"shape":"GetInvitationsCountRequest"},
      "output":{"shape":"GetInvitationsCountResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns the count of all Security Hub membership invitations that were sent to the current member account, not including the currently accepted invitation. </p>"
    },
    "GetMasterAccount":{
      "name":"GetMasterAccount",
      "http":{
        "method":"GET",
        "requestUri":"/master"
      },
      "input":{"shape":"GetMasterAccountRequest"},
      "output":{"shape":"GetMasterAccountResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Provides the details for the Security Hub master account to the current member account. </p>"
    },
    "GetMembers":{
      "name":"GetMembers",
      "http":{
        "method":"POST",
        "requestUri":"/members/get"
      },
      "input":{"shape":"GetMembersRequest"},
      "output":{"shape":"GetMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns the details on the Security Hub member accounts that are specified by the account IDs. </p>"
    },
    "InviteMembers":{
      "name":"InviteMembers",
      "http":{
        "method":"POST",
        "requestUri":"/members/invite"
      },
      "input":{"shape":"InviteMembersRequest"},
      "output":{"shape":"InviteMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Invites other AWS accounts to enable Security Hub and become Security Hub member accounts. When an account accepts the invitation and becomes a member account, the master account can view Security Hub findings of the member account. </p>"
    },
    "ListEnabledProductsForImport":{
      "name":"ListEnabledProductsForImport",
      "http":{
        "method":"GET",
        "requestUri":"/productSubscriptions"
      },
      "input":{"shape":"ListEnabledProductsForImportRequest"},
      "output":{"shape":"ListEnabledProductsForImportResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p>Lists all Security Hub-integrated third-party findings providers.</p>"
    },
    "ListInvitations":{
      "name":"ListInvitations",
      "http":{
        "method":"GET",
        "requestUri":"/invitations"
      },
      "input":{"shape":"ListInvitationsRequest"},
      "output":{"shape":"ListInvitationsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all Security Hub membership invitations that were sent to the current AWS account. </p>"
    },
    "ListMembers":{
      "name":"ListMembers",
      "http":{
        "method":"GET",
        "requestUri":"/members"
      },
      "input":{"shape":"ListMembersRequest"},
      "output":{"shape":"ListMembersResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists details about all member accounts for the current Security Hub master account.</p>"
    },
    "UpdateFindings":{
      "name":"UpdateFindings",
      "http":{
        "method":"PATCH",
        "requestUri":"/findings"
      },
      "input":{"shape":"UpdateFindingsRequest"},
      "output":{"shape":"UpdateFindingsResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates the AWS Security Hub-aggregated findings specified by the filter attributes.</p>"
    },
    "UpdateInsight":{
      "name":"UpdateInsight",
      "http":{
        "method":"PATCH",
        "requestUri":"/insights/{InsightArn+}"
      },
      "input":{"shape":"UpdateInsightRequest"},
      "output":{"shape":"UpdateInsightResponse"},
      "errors":[
        {"shape":"InternalException"},
        {"shape":"InvalidInputException"},
        {"shape":"LimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates the AWS Security Hub insight specified by the insight ARN.</p>"
    }
  },
  "shapes":{
    "AcceptInvitationRequest":{
      "type":"structure",
      "members":{
        "MasterId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The account ID of the master Security Hub account whose invitation you're accepting. </p>"
        },
        "InvitationId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ID of the invitation that is sent to the AWS account by the Security Hub master account. </p>"
        }
      }
    },
    "AcceptInvitationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "AccountDetails":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AccountId",
          "documentation":"<p>The ID of an AWS account.</p>"
        },
        "Email":{
          "shape":"NonEmptyString",
          "documentation":"<p>The email of an AWS account.</p>"
        }
      },
      "documentation":"<p>The details of an AWS account.</p>"
    },
    "AccountDetailsList":{
      "type":"list",
      "member":{"shape":"AccountDetails"}
    },
    "AccountId":{"type":"string"},
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"}
    },
    "ArnList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"}
    },
    "AwsEc2InstanceDetails":{
      "type":"structure",
      "members":{
        "Type":{
          "shape":"NonEmptyString",
          "documentation":"<p>The instance type of the instance. </p>"
        },
        "ImageId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The Amazon Machine Image (AMI) ID of the instance.</p>"
        },
        "IpV4Addresses":{
          "shape":"StringList",
          "documentation":"<p>The IPv4 addresses associated with the instance.</p>"
        },
        "IpV6Addresses":{
          "shape":"StringList",
          "documentation":"<p>The IPv6 addresses associated with the instance.</p>"
        },
        "KeyName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The key name associated with the instance.</p>"
        },
        "IamInstanceProfileArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The IAM profile ARN of the instance.</p>"
        },
        "VpcId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The identifier of the VPC in which the instance was launched.</p>"
        },
        "SubnetId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The identifier of the subnet in which the instance was launched.</p>"
        },
        "LaunchedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The date/time the instance was launched.</p>"
        }
      },
      "documentation":"<p>The details of an AWS EC2 instance.</p>"
    },
    "AwsIamAccessKeyDetails":{
      "type":"structure",
      "members":{
        "UserName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The user associated with the IAM access key related to a finding.</p>"
        },
        "Status":{
          "shape":"AwsIamAccessKeyStatus",
          "documentation":"<p>The status of the IAM access key related to a finding.</p>"
        },
        "CreatedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The creation date/time of the IAM access key related to a finding.</p>"
        }
      },
      "documentation":"<p>AWS IAM access key details related to a finding.</p>"
    },
    "AwsIamAccessKeyStatus":{
      "type":"string",
      "enum":[
        "Active",
        "Inactive"
      ]
    },
    "AwsS3BucketDetails":{
      "type":"structure",
      "members":{
        "OwnerId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The canonical user ID of the owner of the S3 bucket.</p>"
        },
        "OwnerName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The display name of the owner of the S3 bucket.</p>"
        }
      },
      "documentation":"<p>The details of an AWS S3 Bucket.</p>"
    },
    "AwsSecurityFinding":{
      "type":"structure",
      "required":[
        "SchemaVersion",
        "Id",
        "ProductArn",
        "GeneratorId",
        "AwsAccountId",
        "Types",
        "CreatedAt",
        "UpdatedAt",
        "Severity",
        "Resources"
      ],
      "members":{
        "SchemaVersion":{
          "shape":"NonEmptyString",
          "documentation":"<p>The schema version for which a finding is formatted.</p>"
        },
        "Id":{
          "shape":"NonEmptyString",
          "documentation":"<p>The security findings provider-specific identifier for a finding.</p>"
        },
        "ProductArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) once this provider's product (solution that generates findings) is registered with Security Hub. </p>"
        },
        "GeneratorId":{
          "shape":"NonEmptyString",
          "documentation":"<p>This is the identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security findings provider's solutions, this generator can be called a rule, a check, a detector, a plug-in, etc. </p>"
        },
        "AwsAccountId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The AWS account ID in which a finding is generated.</p>"
        },
        "Types":{
          "shape":"TypeList",
          "documentation":"<p>One or more finding types in the format of 'namespace/category/classifier' that classify a finding.</p> <p>Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications</p>"
        },
        "FirstObservedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was first observed by the security findings provider.</p>"
        },
        "LastObservedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was most recently observed by the security findings provider.</p>"
        },
        "CreatedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was created by the security findings provider.</p>"
        },
        "UpdatedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the finding record was last updated by the security findings provider. </p>"
        },
        "Severity":{
          "shape":"Severity",
          "documentation":"<p>A finding's severity.</p>"
        },
        "Confidence":{
          "shape":"Integer",
          "documentation":"<p>A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale. 0 equates zero percent confidence and 100 equates to 100 percent confidence.</p>"
        },
        "Criticality":{
          "shape":"Integer",
          "documentation":"<p>The level of importance assigned to the resources associated with the finding. A score of 0 means the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.</p>"
        },
        "Title":{
          "shape":"NonEmptyString",
          "documentation":"<p>A finding's title.</p>"
        },
        "Description":{
          "shape":"NonEmptyString",
          "documentation":"<p>A finding's description.</p>"
        },
        "Remediation":{
          "shape":"Remediation",
          "documentation":"<p>An data type that describes the remediation options for a finding.</p>"
        },
        "SourceUrl":{
          "shape":"NonEmptyString",
          "documentation":"<p>A URL that links to a page about the current finding in the security findings provider's solution.</p>"
        },
        "ProductFields":{
          "shape":"FieldMap",
          "documentation":"<p>A data type where security findings providers can include additional solution-specific details that are not part of the defined AwsSecurityFinding format.</p>"
        },
        "UserDefinedFields":{
          "shape":"FieldMap",
          "documentation":"<p>A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. </p>"
        },
        "Malware":{
          "shape":"MalwareList",
          "documentation":"<p>A list of malware related to a finding.</p>"
        },
        "Network":{
          "shape":"Network",
          "documentation":"<p>The details of network-related information about a finding.</p>"
        },
        "Process":{
          "shape":"ProcessDetails",
          "documentation":"<p>The details of process-related information about a finding.</p>"
        },
        "ThreatIntelIndicators":{
          "shape":"ThreatIntelIndicatorList",
          "documentation":"<p>Threat intel details related to a finding.</p>"
        },
        "Resources":{
          "shape":"ResourceList",
          "documentation":"<p>A set of resource data types that describe the resources to which the finding refers.</p>"
        },
        "Compliance":{
          "shape":"Compliance",
          "documentation":"<p>This data type is exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, AWS CIS Foundations). Contains compliance-related finding details.</p>"
        },
        "VerificationState":{
          "shape":"VerificationState",
          "documentation":"<p>Indicates the veracity of a finding. </p>"
        },
        "WorkflowState":{
          "shape":"WorkflowState",
          "documentation":"<p>The workflow state of a finding. </p>"
        },
        "RecordState":{
          "shape":"RecordState",
          "documentation":"<p>The record state of a finding.</p>"
        },
        "RelatedFindings":{
          "shape":"RelatedFindingList",
          "documentation":"<p>A list of related findings.</p>"
        },
        "Note":{
          "shape":"Note",
          "documentation":"<p>A user-defined note added to a finding.</p>"
        }
      },
      "documentation":"<p>Provides consistent format for the contents of the Security Hub-aggregated findings. AwsSecurityFinding format enables you to share findings between AWS security services and third-party solutions, and compliance checks.</p> <note> <p>A finding is a potential security issue generated either by AWS services (GuardDuty, Inspector, Macie) or by the integrated third-party solutions and compliance checks.</p> </note>"
    },
    "AwsSecurityFindingFilters":{
      "type":"structure",
      "members":{
        "ProductArn":{
          "shape":"StringFilterList",
          "documentation":"<p>The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) once this provider's product (solution that generates findings) is registered with Security Hub.</p>"
        },
        "AwsAccountId":{
          "shape":"StringFilterList",
          "documentation":"<p>The AWS account ID in which a finding is generated.</p>"
        },
        "Id":{
          "shape":"StringFilterList",
          "documentation":"<p>The security findings provider-specific identifier for a finding.</p>"
        },
        "GeneratorId":{
          "shape":"StringFilterList",
          "documentation":"<p>This is the identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security findings provider's solutions, this generator can be called a rule, a check, a detector, a plug-in, etc.</p>"
        },
        "Type":{
          "shape":"StringFilterList",
          "documentation":"<p>A finding type in the format of 'namespace/category/classifier' that classifies a finding.</p>"
        },
        "FirstObservedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was first observed by the security findings provider.</p>"
        },
        "LastObservedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was most recently observed by the security findings provider.</p>"
        },
        "CreatedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the potential security issue captured by a finding was created by the security findings provider.</p>"
        },
        "UpdatedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>An ISO8601-formatted timestamp that indicates when the finding record was last updated by the security findings provider. </p>"
        },
        "SeverityProduct":{
          "shape":"NumberFilterList",
          "documentation":"<p>The native severity as defined by the security findings provider's solution that generated the finding.</p>"
        },
        "SeverityNormalized":{
          "shape":"NumberFilterList",
          "documentation":"<p>The normalized severity of a finding.</p>"
        },
        "SeverityLabel":{
          "shape":"StringFilterList",
          "documentation":"<p>The label of a finding's severity.</p>"
        },
        "Confidence":{
          "shape":"NumberFilterList",
          "documentation":"<p>A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale. 0 equates zero percent confidence and 100 equates to 100 percent confidence.</p>"
        },
        "Criticality":{
          "shape":"NumberFilterList",
          "documentation":"<p>The level of importance assigned to the resources associated with the finding. A score of 0 means the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.</p>"
        },
        "Title":{
          "shape":"StringFilterList",
          "documentation":"<p>A finding's title.</p>"
        },
        "Description":{
          "shape":"StringFilterList",
          "documentation":"<p>A finding's description.</p>"
        },
        "RecommendationText":{
          "shape":"StringFilterList",
          "documentation":"<p>The recommendation of what to do about the issue described in a finding.</p>"
        },
        "SourceUrl":{
          "shape":"StringFilterList",
          "documentation":"<p>A URL that links to a page about the current finding in the security findings provider's solution.</p>"
        },
        "ProductFields":{
          "shape":"MapFilterList",
          "documentation":"<p>A data type where security findings providers can include additional solution-specific details that are not part of the defined AwsSecurityFinding format.</p>"
        },
        "ProductName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the solution (product) that generates findings.</p>"
        },
        "CompanyName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the findings provider (company) that owns the solution (product) that generates findings.</p>"
        },
        "UserDefinedFields":{
          "shape":"MapFilterList",
          "documentation":"<p>A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. </p>"
        },
        "MalwareName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the malware that was observed.</p>"
        },
        "MalwareType":{
          "shape":"StringFilterList",
          "documentation":"<p>The type of the malware that was observed.</p>"
        },
        "MalwarePath":{
          "shape":"StringFilterList",
          "documentation":"<p>The filesystem path of the malware that was observed.</p>"
        },
        "MalwareState":{
          "shape":"StringFilterList",
          "documentation":"<p>The state of the malware that was observed.</p>"
        },
        "NetworkDirection":{
          "shape":"StringFilterList",
          "documentation":"<p>Indicates the direction of network traffic associated with a finding.</p>"
        },
        "NetworkProtocol":{
          "shape":"StringFilterList",
          "documentation":"<p>The protocol of network-related information about a finding.</p>"
        },
        "NetworkSourceIpV4":{
          "shape":"IpFilterList",
          "documentation":"<p>The source IPv4 address of network-related information about a finding.</p>"
        },
        "NetworkSourceIpV6":{
          "shape":"IpFilterList",
          "documentation":"<p>The source IPv6 address of network-related information about a finding.</p>"
        },
        "NetworkSourcePort":{
          "shape":"NumberFilterList",
          "documentation":"<p>The source port of network-related information about a finding.</p>"
        },
        "NetworkSourceDomain":{
          "shape":"StringFilterList",
          "documentation":"<p>The source domain of network-related information about a finding.</p>"
        },
        "NetworkSourceMac":{
          "shape":"StringFilterList",
          "documentation":"<p>The source media access control (MAC) address of network-related information about a finding.</p>"
        },
        "NetworkDestinationIpV4":{
          "shape":"IpFilterList",
          "documentation":"<p>The destination IPv4 address of network-related information about a finding.</p>"
        },
        "NetworkDestinationIpV6":{
          "shape":"IpFilterList",
          "documentation":"<p>The destination IPv6 address of network-related information about a finding.</p>"
        },
        "NetworkDestinationPort":{
          "shape":"NumberFilterList",
          "documentation":"<p>The destination port of network-related information about a finding.</p>"
        },
        "NetworkDestinationDomain":{
          "shape":"StringFilterList",
          "documentation":"<p>The destination domain of network-related information about a finding.</p>"
        },
        "ProcessName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the process.</p>"
        },
        "ProcessPath":{
          "shape":"StringFilterList",
          "documentation":"<p>The path to the process executable.</p>"
        },
        "ProcessPid":{
          "shape":"NumberFilterList",
          "documentation":"<p>The process ID.</p>"
        },
        "ProcessParentPid":{
          "shape":"NumberFilterList",
          "documentation":"<p>The parent process ID.</p>"
        },
        "ProcessLaunchedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The date/time that the process was launched.</p>"
        },
        "ProcessTerminatedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The date/time that the process was terminated.</p>"
        },
        "ThreatIntelIndicatorType":{
          "shape":"StringFilterList",
          "documentation":"<p>The type of a threat intel indicator.</p>"
        },
        "ThreatIntelIndicatorValue":{
          "shape":"StringFilterList",
          "documentation":"<p>The value of a threat intel indicator.</p>"
        },
        "ThreatIntelIndicatorCategory":{
          "shape":"StringFilterList",
          "documentation":"<p>The category of a threat intel indicator.</p>"
        },
        "ThreatIntelIndicatorLastObservedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The date/time of the last observation of a threat intel indicator.</p>"
        },
        "ThreatIntelIndicatorSource":{
          "shape":"StringFilterList",
          "documentation":"<p>The source of the threat intel.</p>"
        },
        "ThreatIntelIndicatorSourceUrl":{
          "shape":"StringFilterList",
          "documentation":"<p>The URL for more details from the source of the threat intel.</p>"
        },
        "ResourceType":{
          "shape":"StringFilterList",
          "documentation":"<p>Specifies the type of the resource for which details are provided.</p>"
        },
        "ResourceId":{
          "shape":"StringFilterList",
          "documentation":"<p>The canonical identifier for the given resource type.</p>"
        },
        "ResourcePartition":{
          "shape":"StringFilterList",
          "documentation":"<p>The canonical AWS partition name to which the region is assigned.</p>"
        },
        "ResourceRegion":{
          "shape":"StringFilterList",
          "documentation":"<p>The canonical AWS external region name where this resource is located.</p>"
        },
        "ResourceTags":{
          "shape":"MapFilterList",
          "documentation":"<p>A list of AWS tags associated with a resource at the time the finding was processed.</p>"
        },
        "ResourceAwsEc2InstanceType":{
          "shape":"StringFilterList",
          "documentation":"<p>The instance type of the instance.</p>"
        },
        "ResourceAwsEc2InstanceImageId":{
          "shape":"StringFilterList",
          "documentation":"<p>The Amazon Machine Image (AMI) ID of the instance.</p>"
        },
        "ResourceAwsEc2InstanceIpV4Addresses":{
          "shape":"IpFilterList",
          "documentation":"<p>The IPv4 addresses associated with the instance.</p>"
        },
        "ResourceAwsEc2InstanceIpV6Addresses":{
          "shape":"IpFilterList",
          "documentation":"<p>The IPv6 addresses associated with the instance.</p>"
        },
        "ResourceAwsEc2InstanceKeyName":{
          "shape":"StringFilterList",
          "documentation":"<p>The key name associated with the instance.</p>"
        },
        "ResourceAwsEc2InstanceIamInstanceProfileArn":{
          "shape":"StringFilterList",
          "documentation":"<p>The IAM profile ARN of the instance.</p>"
        },
        "ResourceAwsEc2InstanceVpcId":{
          "shape":"StringFilterList",
          "documentation":"<p>The identifier of the VPC in which the instance was launched.</p>"
        },
        "ResourceAwsEc2InstanceSubnetId":{
          "shape":"StringFilterList",
          "documentation":"<p>The identifier of the subnet in which the instance was launched.</p>"
        },
        "ResourceAwsEc2InstanceLaunchedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The date/time the instance was launched.</p>"
        },
        "ResourceAwsS3BucketOwnerId":{
          "shape":"StringFilterList",
          "documentation":"<p>The canonical user ID of the owner of the S3 bucket.</p>"
        },
        "ResourceAwsS3BucketOwnerName":{
          "shape":"StringFilterList",
          "documentation":"<p>The display name of the owner of the S3 bucket.</p>"
        },
        "ResourceAwsIamAccessKeyUserName":{
          "shape":"StringFilterList",
          "documentation":"<p>The user associated with the IAM access key related to a finding.</p>"
        },
        "ResourceAwsIamAccessKeyStatus":{
          "shape":"StringFilterList",
          "documentation":"<p>The status of the IAM access key related to a finding.</p>"
        },
        "ResourceAwsIamAccessKeyCreatedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The creation date/time of the IAM access key related to a finding.</p>"
        },
        "ResourceContainerName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the container related to a finding.</p>"
        },
        "ResourceContainerImageId":{
          "shape":"StringFilterList",
          "documentation":"<p>The identifier of the image related to a finding.</p>"
        },
        "ResourceContainerImageName":{
          "shape":"StringFilterList",
          "documentation":"<p>The name of the image related to a finding.</p>"
        },
        "ResourceContainerLaunchedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The date/time that the container was started.</p>"
        },
        "ResourceDetailsOther":{
          "shape":"MapFilterList",
          "documentation":"<p>The details of a resource that does not have a specific sub-field for the resource type defined.</p>"
        },
        "ComplianceStatus":{
          "shape":"StringFilterList",
          "documentation":"<p>Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, AWS CIS Foundations). Contains compliance-related finding details.</p>"
        },
        "VerificationState":{
          "shape":"StringFilterList",
          "documentation":"<p>Indicates the veracity of a finding. </p>"
        },
        "WorkflowState":{
          "shape":"StringFilterList",
          "documentation":"<p>The workflow state of a finding.</p>"
        },
        "RecordState":{
          "shape":"StringFilterList",
          "documentation":"<p>The updated record state for the finding.</p>"
        },
        "RelatedFindingsProductArn":{
          "shape":"StringFilterList",
          "documentation":"<p>The ARN of the solution that generated a related finding.</p>"
        },
        "RelatedFindingsId":{
          "shape":"StringFilterList",
          "documentation":"<p>The solution-generated identifier for a related finding.</p>"
        },
        "NoteText":{
          "shape":"StringFilterList",
          "documentation":"<p>The text of a note.</p>"
        },
        "NoteUpdatedAt":{
          "shape":"DateFilterList",
          "documentation":"<p>The timestamp of when the note was updated.</p>"
        },
        "NoteUpdatedBy":{
          "shape":"StringFilterList",
          "documentation":"<p>The principal that created a note.</p>"
        },
        "Keyword":{
          "shape":"KeywordFilterList",
          "documentation":"<p>A keyword for a finding.</p>"
        }
      },
      "documentation":"<p>A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight. </p>"
    },
    "AwsSecurityFindingList":{
      "type":"list",
      "member":{"shape":"AwsSecurityFinding"}
    },
    "BatchDisableStandardsRequest":{
      "type":"structure",
      "required":["StandardsSubscriptionArns"],
      "members":{
        "StandardsSubscriptionArns":{
          "shape":"StandardsSubscriptionArns",
          "documentation":"<p>The ARNS of the standards subscriptions that you want to disable.</p>"
        }
      }
    },
    "BatchDisableStandardsResponse":{
      "type":"structure",
      "members":{
        "StandardsSubscriptions":{
          "shape":"StandardsSubscriptions",
          "documentation":"<p>The details of the standards subscriptions that were disabled.</p>"
        }
      }
    },
    "BatchEnableStandardsRequest":{
      "type":"structure",
      "required":["StandardsSubscriptionRequests"],
      "members":{
        "StandardsSubscriptionRequests":{
          "shape":"StandardsSubscriptionRequests",
          "documentation":"<p>The list of standards that you want to enable.</p>"
        }
      }
    },
    "BatchEnableStandardsResponse":{
      "type":"structure",
      "members":{
        "StandardsSubscriptions":{
          "shape":"StandardsSubscriptions",
          "documentation":"<p>The details of the standards subscriptions that were enabled.</p>"
        }
      }
    },
    "BatchImportFindingsRequest":{
      "type":"structure",
      "required":["Findings"],
      "members":{
        "Findings":{
          "shape":"AwsSecurityFindingList",
          "documentation":"<p>A list of findings that you want to import. Must be submitted in the AWSSecurityFinding format.</p>"
        }
      }
    },
    "BatchImportFindingsResponse":{
      "type":"structure",
      "required":[
        "FailedCount",
        "SuccessCount"
      ],
      "members":{
        "FailedCount":{
          "shape":"Integer",
          "documentation":"<p>The number of findings that cannot be imported.</p>"
        },
        "SuccessCount":{
          "shape":"Integer",
          "documentation":"<p>The number of findings that were successfully imported</p>"
        },
        "FailedFindings":{
          "shape":"ImportFindingsErrorList",
          "documentation":"<p>The list of the findings that cannot be imported.</p>"
        }
      }
    },
    "Boolean":{"type":"boolean"},
    "Compliance":{
      "type":"structure",
      "members":{
        "Status":{
          "shape":"ComplianceStatus",
          "documentation":"<p>Indicates the result of a compliance check.</p>"
        }
      },
      "documentation":"<p>Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, AWS CIS Foundations). Contains compliance-related finding details.</p>"
    },
    "ComplianceStatus":{
      "type":"string",
      "enum":[
        "PASSED",
        "WARNING",
        "FAILED",
        "NOT_AVAILABLE"
      ]
    },
    "ContainerDetails":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of the container related to a finding.</p>"
        },
        "ImageId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The identifier of the image related to a finding.</p>"
        },
        "ImageName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of the image related to a finding.</p>"
        },
        "LaunchedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The date/time that the container was started.</p>"
        }
      },
      "documentation":"<p>Container details related to a finding.</p>"
    },
    "CreateInsightRequest":{
      "type":"structure",
      "required":[
        "Name",
        "Filters",
        "GroupByAttribute"
      ],
      "members":{
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The user-defined name that identifies the insight that you want to create.</p>"
        },
        "Filters":{
          "shape":"AwsSecurityFindingFilters",
          "documentation":"<p>A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight.</p>"
        },
        "GroupByAttribute":{
          "shape":"NonEmptyString",
          "documentation":"<p>The attribute by which the insight's findings are grouped. This attribute is used as a findings aggregator for the purposes of viewing and managing multiple related findings under a single operand. </p>"
        }
      }
    },
    "CreateInsightResponse":{
      "type":"structure",
      "required":["InsightArn"],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN Of the created insight.</p>"
        }
      }
    },
    "CreateMembersRequest":{
      "type":"structure",
      "members":{
        "AccountDetails":{
          "shape":"AccountDetailsList",
          "documentation":"<p>A list of account ID and email address pairs of the accounts that you want to associate with the master Security Hub account.</p>"
        }
      }
    },
    "CreateMembersResponse":{
      "type":"structure",
      "members":{
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed.</p>"
        }
      }
    },
    "DateFilter":{
      "type":"structure",
      "members":{
        "Start":{
          "shape":"NonEmptyString",
          "documentation":"<p>A start date for the date filter.</p>"
        },
        "End":{
          "shape":"NonEmptyString",
          "documentation":"<p>An end date for the date filter.</p>"
        },
        "DateRange":{
          "shape":"DateRange",
          "documentation":"<p>A date range for the date filter.</p>"
        }
      },
      "documentation":"<p>A date filter for querying findings.</p>"
    },
    "DateFilterList":{
      "type":"list",
      "member":{"shape":"DateFilter"}
    },
    "DateRange":{
      "type":"structure",
      "members":{
        "Value":{
          "shape":"Integer",
          "documentation":"<p>A date range value for the date filter.</p>"
        },
        "Unit":{
          "shape":"DateRangeUnit",
          "documentation":"<p>A date range unit for the date filter.</p>"
        }
      },
      "documentation":"<p>A date range for the date filter.</p>"
    },
    "DateRangeUnit":{
      "type":"string",
      "enum":["DAYS"]
    },
    "DeclineInvitationsRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>A list of account IDs specifying accounts whose invitations to Security Hub you want to decline. </p>"
        }
      }
    },
    "DeclineInvitationsResponse":{
      "type":"structure",
      "members":{
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed. </p>"
        }
      }
    },
    "DeleteInsightRequest":{
      "type":"structure",
      "required":["InsightArn"],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the insight that you want to delete.</p>",
          "location":"uri",
          "locationName":"InsightArn"
        }
      }
    },
    "DeleteInsightResponse":{
      "type":"structure",
      "required":["InsightArn"],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the insight that was deleted.</p>"
        }
      }
    },
    "DeleteInvitationsRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>A list of account IDs specifying accounts whose invitations to Security Hub you want to delete. </p>"
        }
      }
    },
    "DeleteInvitationsResponse":{
      "type":"structure",
      "members":{
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed. </p>"
        }
      }
    },
    "DeleteMembersRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>A list of account IDs of the Security Hub member accounts that you want to delete. </p>"
        }
      }
    },
    "DeleteMembersResponse":{
      "type":"structure",
      "members":{
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed. </p>"
        }
      }
    },
    "DisableImportFindingsForProductRequest":{
      "type":"structure",
      "required":["ProductSubscriptionArn"],
      "members":{
        "ProductSubscriptionArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of a resource that represents your subscription to a supported product.</p>",
          "location":"uri",
          "locationName":"ProductSubscriptionArn"
        }
      }
    },
    "DisableImportFindingsForProductResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DisableSecurityHubRequest":{
      "type":"structure",
      "members":{
      }
    },
    "DisableSecurityHubResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DisassociateFromMasterAccountRequest":{
      "type":"structure",
      "members":{
      }
    },
    "DisassociateFromMasterAccountResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DisassociateMembersRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>The account IDs of the member accounts that you want to disassociate from the master account.</p>"
        }
      }
    },
    "DisassociateMembersResponse":{
      "type":"structure",
      "members":{
      }
    },
    "Double":{"type":"double"},
    "EnableImportFindingsForProductRequest":{
      "type":"structure",
      "required":["ProductArn"],
      "members":{
        "ProductArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the product that generates findings that you want to import into Security Hub.</p>"
        }
      }
    },
    "EnableImportFindingsForProductResponse":{
      "type":"structure",
      "members":{
        "ProductSubscriptionArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of a resource that represents your subscription to the product that generates the findings that you want to import into Security Hub.</p>"
        }
      }
    },
    "EnableSecurityHubRequest":{
      "type":"structure",
      "members":{
      }
    },
    "EnableSecurityHubResponse":{
      "type":"structure",
      "members":{
      }
    },
    "FieldMap":{
      "type":"map",
      "key":{"shape":"NonEmptyString"},
      "value":{"shape":"NonEmptyString"}
    },
    "GetEnabledStandardsRequest":{
      "type":"structure",
      "members":{
        "StandardsSubscriptionArns":{
          "shape":"StandardsSubscriptionArns",
          "documentation":"<p>The list of standards subscription ARNS that you want to list and describe.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the GetEnabledStandards operation. For subsequent calls to the operation, fill nextToken in the request with the value of nextToken from the previous response to continue listing data.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response.</p>"
        }
      }
    },
    "GetEnabledStandardsResponse":{
      "type":"structure",
      "members":{
        "StandardsSubscriptions":{
          "shape":"StandardsSubscriptions",
          "documentation":"<p>The standards subscription details returned by the operation.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "GetFindingsRequest":{
      "type":"structure",
      "members":{
        "Filters":{
          "shape":"AwsSecurityFindingFilters",
          "documentation":"<p>A collection of attributes that is use for querying findings.</p>"
        },
        "SortCriteria":{
          "shape":"SortCriteria",
          "documentation":"<p>A collection of attributes used for sorting findings.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the GetFindings operation. For subsequent calls to the operation, fill nextToken in the request with the value of nextToken from the previous response to continue listing data.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response.</p>"
        }
      }
    },
    "GetFindingsResponse":{
      "type":"structure",
      "required":["Findings"],
      "members":{
        "Findings":{
          "shape":"AwsSecurityFindingList",
          "documentation":"<p>Findings details returned by the operation.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "GetInsightResultsRequest":{
      "type":"structure",
      "required":["InsightArn"],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the insight whose results you want to see.</p>",
          "location":"uri",
          "locationName":"InsightArn"
        }
      }
    },
    "GetInsightResultsResponse":{
      "type":"structure",
      "required":["InsightResults"],
      "members":{
        "InsightResults":{
          "shape":"InsightResults",
          "documentation":"<p>The insight results returned by the operation.</p>"
        }
      }
    },
    "GetInsightsRequest":{
      "type":"structure",
      "members":{
        "InsightArns":{
          "shape":"ArnList",
          "documentation":"<p>The ARNS of the insights that you want to describe.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the GetInsights operation. For subsequent calls to the operation, fill nextToken in the request with the value of nextToken from the previous response to continue listing data.</p>"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response.</p>"
        }
      }
    },
    "GetInsightsResponse":{
      "type":"structure",
      "required":["Insights"],
      "members":{
        "Insights":{
          "shape":"InsightList",
          "documentation":"<p>The insights returned by the operation.</p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "GetInvitationsCountRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetInvitationsCountResponse":{
      "type":"structure",
      "members":{
        "InvitationsCount":{
          "shape":"Integer",
          "documentation":"<p>The number of all membership invitations sent to this Security Hub member account, not including the currently accepted invitation. </p>"
        }
      }
    },
    "GetMasterAccountRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetMasterAccountResponse":{
      "type":"structure",
      "members":{
        "Master":{
          "shape":"Invitation",
          "documentation":"<p>A list of details about the Security Hub master account for the current member account. </p>"
        }
      }
    },
    "GetMembersRequest":{
      "type":"structure",
      "required":["AccountIds"],
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>A list of account IDs for the Security Hub member accounts on which you want to return the details. </p>"
        }
      }
    },
    "GetMembersResponse":{
      "type":"structure",
      "members":{
        "Members":{
          "shape":"MemberList",
          "documentation":"<p>A list of details about the Security Hub member accounts.</p>"
        },
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed.</p>"
        }
      }
    },
    "ImportFindingsError":{
      "type":"structure",
      "required":[
        "Id",
        "ErrorCode",
        "ErrorMessage"
      ],
      "members":{
        "Id":{
          "shape":"NonEmptyString",
          "documentation":"<p>The id of the error made during the BatchImportFindings operation.</p>"
        },
        "ErrorCode":{
          "shape":"NonEmptyString",
          "documentation":"<p>The code of the error made during the BatchImportFindings operation. </p>"
        },
        "ErrorMessage":{
          "shape":"NonEmptyString",
          "documentation":"<p>The message of the error made during the BatchImportFindings operation. </p>"
        }
      },
      "documentation":"<p>Includes details of the list of the findings that cannot be imported. </p>"
    },
    "ImportFindingsErrorList":{
      "type":"list",
      "member":{"shape":"ImportFindingsError"}
    },
    "Insight":{
      "type":"structure",
      "required":[
        "InsightArn",
        "Name",
        "Filters",
        "GroupByAttribute"
      ],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of a Security Hub insight.</p>"
        },
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of a Security Hub insight.</p>"
        },
        "Filters":{
          "shape":"AwsSecurityFindingFilters",
          "documentation":"<p>A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight. </p>"
        },
        "GroupByAttribute":{
          "shape":"NonEmptyString",
          "documentation":"<p>The attribute by which the insight's findings are grouped. This attribute is used as a findings aggregator for the purposes of viewing and managing multiple related findings under a single operand.</p>"
        }
      },
      "documentation":"<p>Contains information about a Security Hub insight. </p>"
    },
    "InsightList":{
      "type":"list",
      "member":{"shape":"Insight"}
    },
    "InsightResultValue":{
      "type":"structure",
      "required":[
        "GroupByAttributeValue",
        "Count"
      ],
      "members":{
        "GroupByAttributeValue":{
          "shape":"NonEmptyString",
          "documentation":"<p>The value of the attribute by which the findings are grouped for the insight's whose results are returned by the GetInsightResults operation.</p>"
        },
        "Count":{
          "shape":"Integer",
          "documentation":"<p>The number of findings returned for each GroupByAttributeValue.</p>"
        }
      },
      "documentation":"<p>The insight result values returned by the GetInsightResults operation.</p>"
    },
    "InsightResultValueList":{
      "type":"list",
      "member":{"shape":"InsightResultValue"}
    },
    "InsightResults":{
      "type":"structure",
      "required":[
        "InsightArn",
        "GroupByAttribute",
        "ResultValues"
      ],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the insight whose results are returned by the GetInsightResults operation.</p>"
        },
        "GroupByAttribute":{
          "shape":"NonEmptyString",
          "documentation":"<p>The attribute by which the findings are grouped for the insight's whose results are returned by the GetInsightResults operation.</p>"
        },
        "ResultValues":{
          "shape":"InsightResultValueList",
          "documentation":"<p>The list of insight result values returned by the GetInsightResults operation.</p>"
        }
      },
      "documentation":"<p>The insight results returned by the GetInsightResults operation.</p>"
    },
    "Integer":{"type":"integer"},
    "InternalException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"NonEmptyString"},
        "Code":{"shape":"NonEmptyString"}
      },
      "documentation":"<p>Internal server error.</p>",
      "error":{"httpStatusCode":500},
      "exception":true
    },
    "InvalidInputException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"NonEmptyString"},
        "Code":{"shape":"NonEmptyString"}
      },
      "documentation":"<p>The request was rejected because an invalid or out-of-range value was supplied for an input parameter.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "Invitation":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the master Security Hub account who sent the invitation. </p>"
        },
        "InvitationId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ID of the invitation sent by the master Security Hub account.</p>"
        },
        "InvitedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the invitation was sent.</p>"
        },
        "MemberStatus":{
          "shape":"NonEmptyString",
          "documentation":"<p>The current relationship status between the inviter and invitee accounts.</p>"
        }
      },
      "documentation":"<p>The details of an invitation sent to an AWS account by the Security Hub master account. </p>"
    },
    "InvitationList":{
      "type":"list",
      "member":{"shape":"Invitation"}
    },
    "InviteMembersRequest":{
      "type":"structure",
      "members":{
        "AccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>A list of IDs of the AWS accounts that you want to invite to Security Hub as members. </p>"
        }
      }
    },
    "InviteMembersResponse":{
      "type":"structure",
      "members":{
        "UnprocessedAccounts":{
          "shape":"ResultList",
          "documentation":"<p>A list of account ID and email address pairs of the AWS accounts that could not be processed. </p>"
        }
      }
    },
    "IpFilter":{
      "type":"structure",
      "members":{
        "Cidr":{
          "shape":"NonEmptyString",
          "documentation":"<p>Finding's CIDR value.</p>"
        }
      },
      "documentation":"<p>The IP filter for querying findings.&gt;</p>"
    },
    "IpFilterList":{
      "type":"list",
      "member":{"shape":"IpFilter"}
    },
    "KeywordFilter":{
      "type":"structure",
      "members":{
        "Value":{
          "shape":"NonEmptyString",
          "documentation":"<p>A value for the keyword.</p>"
        }
      },
      "documentation":"<p>A keyword filter for querying findings.</p>"
    },
    "KeywordFilterList":{
      "type":"list",
      "member":{"shape":"KeywordFilter"}
    },
    "LimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"NonEmptyString"},
        "Code":{"shape":"NonEmptyString"}
      },
      "documentation":"<p>The request was rejected because it attempted to create resources beyond the current AWS account limits. The error code describes the limit exceeded.</p>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "ListEnabledProductsForImportRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the ListEnabledProductsForImport operation. For subsequent calls to the operation, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.</p>",
          "location":"querystring",
          "locationName":"NextToken"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response.</p>",
          "location":"querystring",
          "locationName":"MaxResults"
        }
      }
    },
    "ListEnabledProductsForImportResponse":{
      "type":"structure",
      "members":{
        "ProductSubscriptions":{
          "shape":"ProductSubscriptionArnList",
          "documentation":"<p>A list of ARNs for the resources that represent your subscriptions to products. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "ListInvitationsRequest":{
      "type":"structure",
      "members":{
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response. </p>",
          "location":"querystring",
          "locationName":"MaxResults"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the ListInvitations operation. For subsequent calls to the operation, fill nextToken in the request with the value of NextToken from the previous response to continue listing data. </p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "ListInvitationsResponse":{
      "type":"structure",
      "members":{
        "Invitations":{
          "shape":"InvitationList",
          "documentation":"<p>The details of the invitations returned by the operation.</p>"
        },
        "NextToken":{
          "shape":"NonEmptyString",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "ListMembersRequest":{
      "type":"structure",
      "members":{
        "OnlyAssociated":{
          "shape":"Boolean",
          "documentation":"<p>Specifies what member accounts the response includes based on their relationship status with the master account. The default value is TRUE. If onlyAssociated is set to TRUE, the response includes member accounts whose relationship status with the master is set to ENABLED or DISABLED. If onlyAssociated is set to FALSE, the response includes all existing member accounts. </p>",
          "location":"querystring",
          "locationName":"OnlyAssociated"
        },
        "MaxResults":{
          "shape":"MaxResults",
          "documentation":"<p>Indicates the maximum number of items that you want in the response. </p>",
          "location":"querystring",
          "locationName":"MaxResults"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p>Paginates results. Set the value of this parameter to NULL on your first call to the ListMembers operation. For subsequent calls to the operation, fill nextToken in the request with the value of NextToken from the previous response to continue listing data. </p>",
          "location":"querystring",
          "locationName":"NextToken"
        }
      }
    },
    "ListMembersResponse":{
      "type":"structure",
      "members":{
        "Members":{
          "shape":"MemberList",
          "documentation":"<p>Member details returned by the operation.</p>"
        },
        "NextToken":{
          "shape":"NonEmptyString",
          "documentation":"<p>The token that is required for pagination.</p>"
        }
      }
    },
    "Malware":{
      "type":"structure",
      "required":["Name"],
      "members":{
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of the malware that was observed.</p>"
        },
        "Type":{
          "shape":"MalwareType",
          "documentation":"<p>The type of the malware that was observed.</p>"
        },
        "Path":{
          "shape":"NonEmptyString",
          "documentation":"<p>The filesystem path of the malware that was observed.</p>"
        },
        "State":{
          "shape":"MalwareState",
          "documentation":"<p>The state of the malware that was observed.</p>"
        }
      },
      "documentation":"<p>A list of malware related to a finding.</p>"
    },
    "MalwareList":{
      "type":"list",
      "member":{"shape":"Malware"}
    },
    "MalwareState":{
      "type":"string",
      "enum":[
        "OBSERVED",
        "REMOVAL_FAILED",
        "REMOVED"
      ]
    },
    "MalwareType":{
      "type":"string",
      "enum":[
        "ADWARE",
        "BLENDED_THREAT",
        "BOTNET_AGENT",
        "COIN_MINER",
        "EXPLOIT_KIT",
        "KEYLOGGER",
        "MACRO",
        "POTENTIALLY_UNWANTED",
        "SPYWARE",
        "RANSOMWARE",
        "REMOTE_ACCESS",
        "ROOTKIT",
        "TROJAN",
        "VIRUS",
        "WORM"
      ]
    },
    "MapFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"NonEmptyString",
          "documentation":"<p>The key of the map filter.</p>"
        },
        "Value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The value for the key in the map filter.</p>"
        },
        "Comparison":{
          "shape":"MapFilterComparison",
          "documentation":"<p>Represents the condition to be applied to a key value when querying for findings with a map filter.</p>"
        }
      },
      "documentation":"<p>The map filter for querying findings.</p>"
    },
    "MapFilterComparison":{
      "type":"string",
      "enum":["CONTAINS"]
    },
    "MapFilterList":{
      "type":"list",
      "member":{"shape":"MapFilter"}
    },
    "MaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "Member":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID of a Security Hub member account.</p>"
        },
        "Email":{
          "shape":"NonEmptyString",
          "documentation":"<p>The email of a Security Hub member account.</p>"
        },
        "MasterId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The AWS account ID of the master Security Hub account to this member account.</p>"
        },
        "MemberStatus":{
          "shape":"NonEmptyString",
          "documentation":"<p>The status of the relationship between the member account and its master account. </p>"
        },
        "InvitedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Time stamp at which the member account was invited to Security Hub.</p>"
        },
        "UpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Time stamp at which this member account was updated.</p>"
        }
      },
      "documentation":"<p>The details for a Security Hub member account.</p>"
    },
    "MemberList":{
      "type":"list",
      "member":{"shape":"Member"}
    },
    "Network":{
      "type":"structure",
      "members":{
        "Direction":{
          "shape":"NetworkDirection",
          "documentation":"<p>Indicates the direction of network traffic associated with a finding.</p>"
        },
        "Protocol":{
          "shape":"NonEmptyString",
          "documentation":"<p>The protocol of network-related information about a finding.</p>"
        },
        "SourceIpV4":{
          "shape":"NonEmptyString",
          "documentation":"<p>The source IPv4 address of network-related information about a finding.</p>"
        },
        "SourceIpV6":{
          "shape":"NonEmptyString",
          "documentation":"<p>The source IPv6 address of network-related information about a finding.</p>"
        },
        "SourcePort":{
          "shape":"Integer",
          "documentation":"<p>The source port of network-related information about a finding.</p>"
        },
        "SourceDomain":{
          "shape":"NonEmptyString",
          "documentation":"<p>The source domain of network-related information about a finding.</p>"
        },
        "SourceMac":{
          "shape":"NonEmptyString",
          "documentation":"<p>The source media access control (MAC) address of network-related information about a finding.</p>"
        },
        "DestinationIpV4":{
          "shape":"NonEmptyString",
          "documentation":"<p>The destination IPv4 address of network-related information about a finding.</p>"
        },
        "DestinationIpV6":{
          "shape":"NonEmptyString",
          "documentation":"<p>The destination IPv6 address of network-related information about a finding.</p>"
        },
        "DestinationPort":{
          "shape":"Integer",
          "documentation":"<p>The destination port of network-related information about a finding.</p>"
        },
        "DestinationDomain":{
          "shape":"NonEmptyString",
          "documentation":"<p>The destination domain of network-related information about a finding.</p>"
        }
      },
      "documentation":"<p>The details of network-related information about a finding.</p>"
    },
    "NetworkDirection":{
      "type":"string",
      "enum":[
        "IN",
        "OUT"
      ]
    },
    "NextToken":{"type":"string"},
    "NonEmptyString":{
      "type":"string",
      "pattern":".*\\S.*"
    },
    "Note":{
      "type":"structure",
      "required":[
        "Text",
        "UpdatedBy",
        "UpdatedAt"
      ],
      "members":{
        "Text":{
          "shape":"NonEmptyString",
          "documentation":"<p>The text of a note.</p>"
        },
        "UpdatedBy":{
          "shape":"NonEmptyString",
          "documentation":"<p>The principal that created a note.</p>"
        },
        "UpdatedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The timestamp of when the note was updated.</p>"
        }
      },
      "documentation":"<p>A user-defined note added to a finding.</p>"
    },
    "NoteUpdate":{
      "type":"structure",
      "required":[
        "Text",
        "UpdatedBy"
      ],
      "members":{
        "Text":{
          "shape":"NonEmptyString",
          "documentation":"<p>The updated note text.</p>"
        },
        "UpdatedBy":{
          "shape":"NonEmptyString",
          "documentation":"<p>The principal that updated the note.</p>"
        }
      },
      "documentation":"<p>The updated note.</p>"
    },
    "NumberFilter":{
      "type":"structure",
      "members":{
        "Gte":{
          "shape":"Double",
          "documentation":"<p>Represents the \"greater than equal\" condition to be applied to a single field when querying for findings. </p>"
        },
        "Lte":{
          "shape":"Double",
          "documentation":"<p>Represents the \"less than equal\" condition to be applied to a single field when querying for findings. </p>"
        },
        "Eq":{
          "shape":"Double",
          "documentation":"<p>Represents the \"equal to\" condition to be applied to a single field when querying for findings.</p>"
        }
      },
      "documentation":"<p>A number filter for querying findings.</p>"
    },
    "NumberFilterList":{
      "type":"list",
      "member":{"shape":"NumberFilter"}
    },
    "Partition":{
      "type":"string",
      "enum":[
        "aws",
        "aws-cn",
        "aws-us-gov"
      ]
    },
    "ProcessDetails":{
      "type":"structure",
      "members":{
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of the process.</p>"
        },
        "Path":{
          "shape":"NonEmptyString",
          "documentation":"<p>The path to the process executable.</p>"
        },
        "Pid":{
          "shape":"Integer",
          "documentation":"<p>The process ID.</p>"
        },
        "ParentPid":{
          "shape":"Integer",
          "documentation":"<p>The parent process ID.</p>"
        },
        "LaunchedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The date/time that the process was launched.</p>"
        },
        "TerminatedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The date/time that the process was terminated.</p>"
        }
      },
      "documentation":"<p>The details of process-related information about a finding.</p>"
    },
    "ProductSubscriptionArnList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"}
    },
    "Recommendation":{
      "type":"structure",
      "members":{
        "Text":{
          "shape":"NonEmptyString",
          "documentation":"<p>The recommendation of what to do about the issue described in a finding. </p>"
        },
        "Url":{
          "shape":"NonEmptyString",
          "documentation":"<p>A URL to link to general remediation information for the finding type of a finding. </p>"
        }
      },
      "documentation":"<p>Provides a recommendation on how to remediate the issue identified within a finding.</p>"
    },
    "RecordState":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "ARCHIVED"
      ]
    },
    "RelatedFinding":{
      "type":"structure",
      "required":[
        "ProductArn",
        "Id"
      ],
      "members":{
        "ProductArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the solution that generated a related finding.</p>"
        },
        "Id":{
          "shape":"NonEmptyString",
          "documentation":"<p>The solution-generated identifier for a related finding.</p>"
        }
      },
      "documentation":"<p>Related finding's details.</p>"
    },
    "RelatedFindingList":{
      "type":"list",
      "member":{"shape":"RelatedFinding"}
    },
    "Remediation":{
      "type":"structure",
      "members":{
        "Recommendation":{
          "shape":"Recommendation",
          "documentation":"<p>Provides a recommendation on how to remediate the issue identified within a finding.</p>"
        }
      },
      "documentation":"<p>The remediation options for a finding. </p>"
    },
    "Resource":{
      "type":"structure",
      "required":[
        "Type",
        "Id"
      ],
      "members":{
        "Type":{
          "shape":"NonEmptyString",
          "documentation":"<p>Specifies the type of the resource for which details are provided.</p>"
        },
        "Id":{
          "shape":"NonEmptyString",
          "documentation":"<p>The canonical identifier for the given resource type.</p>"
        },
        "Partition":{
          "shape":"Partition",
          "documentation":"<p>The canonical AWS partition name to which the region is assigned.</p>"
        },
        "Region":{
          "shape":"NonEmptyString",
          "documentation":"<p>The canonical AWS external region name where this resource is located.</p>"
        },
        "Tags":{
          "shape":"FieldMap",
          "documentation":"<p>A list of AWS tags associated with a resource at the time the finding was processed.</p>"
        },
        "Details":{
          "shape":"ResourceDetails",
          "documentation":"<p>Provides additional details about the resource.</p>"
        }
      },
      "documentation":"<p>A resource data type that describes a resource to which the finding refers.</p>"
    },
    "ResourceDetails":{
      "type":"structure",
      "members":{
        "AwsEc2Instance":{
          "shape":"AwsEc2InstanceDetails",
          "documentation":"<p>The details of an AWS EC2 instance.</p>"
        },
        "AwsS3Bucket":{
          "shape":"AwsS3BucketDetails",
          "documentation":"<p>The details of an AWS S3 Bucket.</p>"
        },
        "AwsIamAccessKey":{
          "shape":"AwsIamAccessKeyDetails",
          "documentation":"<p>AWS IAM access key details related to a finding.</p>"
        },
        "Container":{
          "shape":"ContainerDetails",
          "documentation":"<p>Container details related to a finding.</p>"
        },
        "Other":{
          "shape":"FieldMap",
          "documentation":"<p>The details of a resource that does not have a specific sub-field for the resource type defined.</p>"
        }
      },
      "documentation":"<p>Provides additional details about the resource.</p>"
    },
    "ResourceList":{
      "type":"list",
      "member":{"shape":"Resource"}
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"NonEmptyString"},
        "Code":{"shape":"NonEmptyString"}
      },
      "documentation":"<p>The request was rejected because the specified resource cannot be found.</p>",
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "Result":{
      "type":"structure",
      "members":{
        "AccountId":{
          "shape":"AccountId",
          "documentation":"<p>An ID of the AWS account that could not be processed. </p>"
        },
        "ProcessingResult":{
          "shape":"NonEmptyString",
          "documentation":"<p>The reason for why an account could not be processed.</p>"
        }
      },
      "documentation":"<p>The account details that could not be processed.</p>"
    },
    "ResultList":{
      "type":"list",
      "member":{"shape":"Result"}
    },
    "Severity":{
      "type":"structure",
      "required":["Normalized"],
      "members":{
        "Product":{
          "shape":"Double",
          "documentation":"<p>The native severity as defined by the security findings provider's solution that generated the finding.</p>"
        },
        "Normalized":{
          "shape":"Integer",
          "documentation":"<p>The normalized severity of a finding.</p>"
        }
      },
      "documentation":"<p>A finding's severity.</p>"
    },
    "SortCriteria":{
      "type":"list",
      "member":{"shape":"SortCriterion"}
    },
    "SortCriterion":{
      "type":"structure",
      "members":{
        "Field":{
          "shape":"NonEmptyString",
          "documentation":"<p>The finding attribute used for sorting findings.</p>"
        },
        "SortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The order used for sorting findings.</p>"
        }
      },
      "documentation":"<p>A collection of attributes used for sorting findings.</p>"
    },
    "SortOrder":{
      "type":"string",
      "enum":[
        "asc",
        "desc"
      ]
    },
    "StandardsInputParameterMap":{
      "type":"map",
      "key":{"shape":"NonEmptyString"},
      "value":{"shape":"NonEmptyString"}
    },
    "StandardsStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "READY",
        "FAILED",
        "DELETING"
      ]
    },
    "StandardsSubscription":{
      "type":"structure",
      "required":[
        "StandardsSubscriptionArn",
        "StandardsArn",
        "StandardsInput",
        "StandardsStatus"
      ],
      "members":{
        "StandardsSubscriptionArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of a resource that represents your subscription to a supported standard.</p>"
        },
        "StandardsArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of a standard.</p>"
        },
        "StandardsInput":{
          "shape":"StandardsInputParameterMap",
          "documentation":"<p/>"
        },
        "StandardsStatus":{
          "shape":"StandardsStatus",
          "documentation":"<p>The standard's status.</p>"
        }
      },
      "documentation":"<p>A resource that represents your subscription to a supported standard.</p>"
    },
    "StandardsSubscriptionArns":{
      "type":"list",
      "member":{"shape":"NonEmptyString"},
      "max":25,
      "min":1
    },
    "StandardsSubscriptionRequest":{
      "type":"structure",
      "required":["StandardsArn"],
      "members":{
        "StandardsArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the standard that you want to enable.</p>"
        },
        "StandardsInput":{
          "shape":"StandardsInputParameterMap",
          "documentation":"<p/>"
        }
      },
      "documentation":"<p>The standard that you want to enable.</p>"
    },
    "StandardsSubscriptionRequests":{
      "type":"list",
      "member":{"shape":"StandardsSubscriptionRequest"},
      "max":25,
      "min":1
    },
    "StandardsSubscriptions":{
      "type":"list",
      "member":{"shape":"StandardsSubscription"}
    },
    "StringFilter":{
      "type":"structure",
      "members":{
        "Value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The string filter value.</p>"
        },
        "Comparison":{
          "shape":"StringFilterComparison",
          "documentation":"<p>Represents the condition to be applied to a string value when querying for findings. </p>"
        }
      },
      "documentation":"<p>A string filter for querying findings.</p>"
    },
    "StringFilterComparison":{
      "type":"string",
      "enum":[
        "EQUALS",
        "CONTAINS",
        "PREFIX"
      ]
    },
    "StringFilterList":{
      "type":"list",
      "member":{"shape":"StringFilter"}
    },
    "StringList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"}
    },
    "ThreatIntelIndicator":{
      "type":"structure",
      "members":{
        "Type":{
          "shape":"ThreatIntelIndicatorType",
          "documentation":"<p>The type of a threat intel indicator.</p>"
        },
        "Value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The value of a threat intel indicator.</p>"
        },
        "Category":{
          "shape":"ThreatIntelIndicatorCategory",
          "documentation":"<p>The category of a threat intel indicator.</p>"
        },
        "LastObservedAt":{
          "shape":"NonEmptyString",
          "documentation":"<p>The date/time of the last observation of a threat intel indicator.</p>"
        },
        "Source":{
          "shape":"NonEmptyString",
          "documentation":"<p>The source of the threat intel.</p>"
        },
        "SourceUrl":{
          "shape":"NonEmptyString",
          "documentation":"<p>The URL for more details from the source of the threat intel.</p>"
        }
      },
      "documentation":"<p>Threat intel details related to a finding.</p>"
    },
    "ThreatIntelIndicatorCategory":{
      "type":"string",
      "enum":[
        "BACKDOOR",
        "CARD_STEALER",
        "COMMAND_AND_CONTROL",
        "DROP_SITE",
        "EXPLOIT_SITE",
        "KEYLOGGER"
      ]
    },
    "ThreatIntelIndicatorList":{
      "type":"list",
      "member":{"shape":"ThreatIntelIndicator"}
    },
    "ThreatIntelIndicatorType":{
      "type":"string",
      "enum":[
        "DOMAIN",
        "EMAIL_ADDRESS",
        "HASH_MD5",
        "HASH_SHA1",
        "HASH_SHA256",
        "HASH_SHA512",
        "IPV4_ADDRESS",
        "IPV6_ADDRESS",
        "MUTEX",
        "PROCESS",
        "URL"
      ]
    },
    "Timestamp":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TypeList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"}
    },
    "UpdateFindingsRequest":{
      "type":"structure",
      "required":["Filters"],
      "members":{
        "Filters":{
          "shape":"AwsSecurityFindingFilters",
          "documentation":"<p>A collection of attributes that specify what findings you want to update.</p>"
        },
        "Note":{
          "shape":"NoteUpdate",
          "documentation":"<p>The updated note for the finding.</p>"
        },
        "RecordState":{
          "shape":"RecordState",
          "documentation":"<p>The updated record state for the finding.</p>"
        }
      }
    },
    "UpdateFindingsResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateInsightRequest":{
      "type":"structure",
      "required":["InsightArn"],
      "members":{
        "InsightArn":{
          "shape":"NonEmptyString",
          "documentation":"<p>The ARN of the insight that you want to update.</p>",
          "location":"uri",
          "locationName":"InsightArn"
        },
        "Name":{
          "shape":"NonEmptyString",
          "documentation":"<p>The updated name for the insight.</p>"
        },
        "Filters":{
          "shape":"AwsSecurityFindingFilters",
          "documentation":"<p>The updated filters that define this insight.</p>"
        },
        "GroupByAttribute":{
          "shape":"NonEmptyString",
          "documentation":"<p>The updated GroupBy attribute that defines this insight.</p>"
        }
      }
    },
    "UpdateInsightResponse":{
      "type":"structure",
      "members":{
      }
    },
    "VerificationState":{
      "type":"string",
      "enum":[
        "UNKNOWN",
        "TRUE_POSITIVE",
        "FALSE_POSITIVE",
        "BENIGN_POSITIVE"
      ]
    },
    "WorkflowState":{
      "type":"string",
      "enum":[
        "NEW",
        "ASSIGNED",
        "IN_PROGRESS",
        "DEFERRED",
        "RESOLVED"
      ]
    }
  },
  "documentation":"<p>AWS Security Hub provides you with a comprehensive view of your security state within AWS and your compliance with the security industry standards and best practices. Security Hub collects security data from across AWS accounts, services, and supported third-party partners and helps you analyze your security trends and identify the highest priority security issues. For more information, see <a href=\"\">AWS Security Hub User Guide</a>. </p>"
}
