{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2023-04-19",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"networkflowmonitor",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Network Flow Monitor",
    "serviceId":"NetworkFlowMonitor",
    "signatureVersion":"v4",
    "signingName":"networkflowmonitor",
    "uid":"networkflowmonitor-2023-04-19"
  },
  "operations":{
    "CreateMonitor":{
      "name":"CreateMonitor",
      "http":{
        "method":"POST",
        "requestUri":"/monitors",
        "responseCode":200
      },
      "input":{"shape":"CreateMonitorInput"},
      "output":{"shape":"CreateMonitorOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Create a monitor for specific network flows between local and remote resources, so that you can monitor network performance for one or several of your workloads. For each monitor, Network Flow Monitor publishes detailed end-to-end performance metrics and a network health indicators (NHI) that informs you whether there were Amazon Web Services network issues for one or more of the network flows tracked by a monitor, during a time period that you choose. </p>",
      "idempotent":true
    },
    "CreateScope":{
      "name":"CreateScope",
      "http":{
        "method":"POST",
        "requestUri":"/scopes",
        "responseCode":200
      },
      "input":{"shape":"CreateScopeInput"},
      "output":{"shape":"CreateScopeOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Create a scope of resources that you want to be available for Network Flow Monitor to generate metrics for, when you have active agents on those resources sending metrics reports to the Network Flow Monitor backend. This call returns a scope ID to identify the scope.</p> <p>When you create a scope, you enable permissions for Network Flow Monitor. The scope is set to the resources for the Amazon Web Services that enables the feature.</p>",
      "idempotent":true
    },
    "DeleteMonitor":{
      "name":"DeleteMonitor",
      "http":{
        "method":"DELETE",
        "requestUri":"/monitors/{monitorName}",
        "responseCode":200
      },
      "input":{"shape":"DeleteMonitorInput"},
      "output":{"shape":"DeleteMonitorOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a monitor in Network Flow Monitor.</p>",
      "idempotent":true
    },
    "DeleteScope":{
      "name":"DeleteScope",
      "http":{
        "method":"DELETE",
        "requestUri":"/scopes/{scopeId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteScopeInput"},
      "output":{"shape":"DeleteScopeOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a scope that has been defined.</p>",
      "idempotent":true
    },
    "GetMonitor":{
      "name":"GetMonitor",
      "http":{
        "method":"GET",
        "requestUri":"/monitors/{monitorName}",
        "responseCode":200
      },
      "input":{"shape":"GetMonitorInput"},
      "output":{"shape":"GetMonitorOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a monitor in Network Flow Monitor based on a monitor name. The information returned includes the Amazon Resource Name (ARN), create time, modified time, resources included in the monitor, and status information.</p>"
    },
    "GetQueryResultsMonitorTopContributors":{
      "name":"GetQueryResultsMonitorTopContributors",
      "http":{
        "method":"GET",
        "requestUri":"/monitors/{monitorName}/topContributorsQueries/{queryId}/results",
        "responseCode":200
      },
      "input":{"shape":"GetQueryResultsMonitorTopContributorsInput"},
      "output":{"shape":"GetQueryResultsMonitorTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.</p> <p>Create a query ID for this call by calling the corresponding API call to start the query, <code>StartQueryMonitorTopContributors</code>. Use the scope ID that was returned for your account by <code>CreateScope</code>.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "GetQueryResultsWorkloadInsightsTopContributors":{
      "name":"GetQueryResultsWorkloadInsightsTopContributors",
      "http":{
        "method":"GET",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsQueries/{queryId}/results",
        "responseCode":200
      },
      "input":{"shape":"GetQueryResultsWorkloadInsightsTopContributorsInput"},
      "output":{"shape":"GetQueryResultsWorkloadInsightsTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Return the data for a query with the Network Flow Monitor query interface. You specify the query that you want to return results for by providing a query ID and a monitor name.</p> <p>This query returns the top contributors for a scope for workload insights. Workload insights provide a high level view of network flow performance data collected by agents. To return the data for the top contributors, see <code>GetQueryResultsWorkloadInsightsTopContributorsData</code>.</p> <p>Create a query ID for this call by calling the corresponding API call to start the query, <code>StartQueryWorkloadInsightsTopContributors</code>. Use the scope ID that was returned for your account by <code>CreateScope</code>.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "GetQueryResultsWorkloadInsightsTopContributorsData":{
      "name":"GetQueryResultsWorkloadInsightsTopContributorsData",
      "http":{
        "method":"GET",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsDataQueries/{queryId}/results",
        "responseCode":200
      },
      "input":{"shape":"GetQueryResultsWorkloadInsightsTopContributorsDataInput"},
      "output":{"shape":"GetQueryResultsWorkloadInsightsTopContributorsDataOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a scope ID.</p> <p>This query returns the data for top contributors for workload insights for a specific scope. Workload insights provide a high level view of network flow performance data collected by agents for a scope. To return just the top contributors, see <code>GetQueryResultsWorkloadInsightsTopContributors</code>.</p> <p>Create a query ID for this call by calling the corresponding API call to start the query, <code>StartQueryWorkloadInsightsTopContributorsData</code>. Use the scope ID that was returned for your account by <code>CreateScope</code>.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p> <p>The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.</p>"
    },
    "GetQueryStatusMonitorTopContributors":{
      "name":"GetQueryStatusMonitorTopContributors",
      "http":{
        "method":"GET",
        "requestUri":"/monitors/{monitorName}/topContributorsQueries/{queryId}/status",
        "responseCode":200
      },
      "input":{"shape":"GetQueryStatusMonitorTopContributorsInput"},
      "output":{"shape":"GetQueryStatusMonitorTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors for a monitor.</p> <p>When you start a query, use this call to check the status of the query to make sure that it has has <code>SUCCEEDED</code> before you reviewStartQueryWorkloadInsightsTopContributorsData the results. Use the same query ID that you used for the corresponding API call to start the query, <code>StartQueryMonitorTopContributors</code>.</p> <p>When you run a query, use this call to check the status of the query to make sure that the query has <code>SUCCEEDED</code> before you review the results.</p>"
    },
    "GetQueryStatusWorkloadInsightsTopContributors":{
      "name":"GetQueryStatusWorkloadInsightsTopContributors",
      "http":{
        "method":"GET",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsQueries/{queryId}/status",
        "responseCode":200
      },
      "input":{"shape":"GetQueryStatusWorkloadInsightsTopContributorsInput"},
      "output":{"shape":"GetQueryStatusWorkloadInsightsTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for workload insights.</p> <p>When you start a query, use this call to check the status of the query to make sure that it has has <code>SUCCEEDED</code> before you review the results. Use the same query ID that you used for the corresponding API call to start the query, <code>StartQueryWorkloadInsightsTopContributors</code>.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "GetQueryStatusWorkloadInsightsTopContributorsData":{
      "name":"GetQueryStatusWorkloadInsightsTopContributorsData",
      "http":{
        "method":"GET",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsDataQueries/{queryId}/status",
        "responseCode":200
      },
      "input":{"shape":"GetQueryStatusWorkloadInsightsTopContributorsDataInput"},
      "output":{"shape":"GetQueryStatusWorkloadInsightsTopContributorsDataOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns the current status of a query for the Network Flow Monitor query interface, for a specified query ID and monitor. This call returns the query status for the top contributors data for workload insights.</p> <p>When you start a query, use this call to check the status of the query to make sure that it has has <code>SUCCEEDED</code> before you review the results. Use the same query ID that you used for the corresponding API call to start the query, <code>StartQueryWorkloadInsightsTopContributorsData</code>.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p> <p>The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.</p>"
    },
    "GetScope":{
      "name":"GetScope",
      "http":{
        "method":"GET",
        "requestUri":"/scopes/{scopeId}",
        "responseCode":200
      },
      "input":{"shape":"GetScopeInput"},
      "output":{"shape":"GetScopeOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a scope, including the name, status, tags, and target details. The scope in Network Flow Monitor is an account.</p>"
    },
    "ListMonitors":{
      "name":"ListMonitors",
      "http":{
        "method":"GET",
        "requestUri":"/monitors",
        "responseCode":200
      },
      "input":{"shape":"ListMonitorsInput"},
      "output":{"shape":"ListMonitorsOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>List all monitors in an account. Optionally, you can list only monitors that have a specific status, by using the <code>STATUS</code> parameter.</p>"
    },
    "ListScopes":{
      "name":"ListScopes",
      "http":{
        "method":"GET",
        "requestUri":"/scopes",
        "responseCode":200
      },
      "input":{"shape":"ListScopesInput"},
      "output":{"shape":"ListScopesOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>List all the scopes for an account.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceInput"},
      "output":{"shape":"ListTagsForResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns all the tags for a resource.</p>"
    },
    "StartQueryMonitorTopContributors":{
      "name":"StartQueryMonitorTopContributors",
      "http":{
        "method":"POST",
        "requestUri":"/monitors/{monitorName}/topContributorsQueries",
        "responseCode":200
      },
      "input":{"shape":"StartQueryMonitorTopContributorsInput"},
      "output":{"shape":"StartQueryMonitorTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Start a query to return the data with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "StartQueryWorkloadInsightsTopContributors":{
      "name":"StartQueryWorkloadInsightsTopContributors",
      "http":{
        "method":"POST",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsQueries",
        "responseCode":200
      },
      "input":{"shape":"StartQueryWorkloadInsightsTopContributorsInput"},
      "output":{"shape":"StartQueryWorkloadInsightsTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Start a query to return the data with the Network Flow Monitor query interface. Specify the query that you want to start by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "StartQueryWorkloadInsightsTopContributorsData":{
      "name":"StartQueryWorkloadInsightsTopContributorsData",
      "http":{
        "method":"POST",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsDataQueries",
        "responseCode":200
      },
      "input":{"shape":"StartQueryWorkloadInsightsTopContributorsDataInput"},
      "output":{"shape":"StartQueryWorkloadInsightsTopContributorsDataOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Start a query to return the with the Network Flow Monitor query interface. Specify the query that you want to start by providing a query ID and a monitor name. This query returns the data for top contributors for workload insights.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "StopQueryMonitorTopContributors":{
      "name":"StopQueryMonitorTopContributors",
      "http":{
        "method":"DELETE",
        "requestUri":"/monitors/{monitorName}/topContributorsQueries/{queryId}",
        "responseCode":200
      },
      "input":{"shape":"StopQueryMonitorTopContributorsInput"},
      "output":{"shape":"StopQueryMonitorTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Stop a query with the Network Flow Monitor query interface. Specify the query that you want to stop by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>",
      "idempotent":true
    },
    "StopQueryWorkloadInsightsTopContributors":{
      "name":"StopQueryWorkloadInsightsTopContributors",
      "http":{
        "method":"DELETE",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsQueries/{queryId}",
        "responseCode":200
      },
      "input":{"shape":"StopQueryWorkloadInsightsTopContributorsInput"},
      "output":{"shape":"StopQueryWorkloadInsightsTopContributorsOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Stop a query with the Network Flow Monitor query interface. Specify the query that you want to stop by providing a query ID and a monitor name. This query returns the top contributors for a specific monitor.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p>"
    },
    "StopQueryWorkloadInsightsTopContributorsData":{
      "name":"StopQueryWorkloadInsightsTopContributorsData",
      "http":{
        "method":"DELETE",
        "requestUri":"/workloadInsights/{scopeId}/topContributorsDataQueries/{queryId}",
        "responseCode":200
      },
      "input":{"shape":"StopQueryWorkloadInsightsTopContributorsDataInput"},
      "output":{"shape":"StopQueryWorkloadInsightsTopContributorsDataOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Return the data for a query with the Network Flow Monitor query interface. Specify the query that you want to return results for by providing a query ID and a scope ID. This query returns data for the top contributors for workload insights. Workload insights provide a high level view of network flow performance data collected by agents for a scope.</p> <p>Top contributors in Network Flow Monitor are network flows with the highest values for a specific metric type, related to a scope (for workload insights) or a monitor.</p> <p>The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceInput"},
      "output":{"shape":"TagResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Adds a tag to a resource.</p>",
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceInput"},
      "output":{"shape":"UntagResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes a tag from a resource.</p>",
      "idempotent":true
    },
    "UpdateMonitor":{
      "name":"UpdateMonitor",
      "http":{
        "method":"PATCH",
        "requestUri":"/monitors/{monitorName}",
        "responseCode":200
      },
      "input":{"shape":"UpdateMonitorInput"},
      "output":{"shape":"UpdateMonitorOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Update a monitor to add or remove local or remote resources.</p>",
      "idempotent":true
    },
    "UpdateScope":{
      "name":"UpdateScope",
      "http":{
        "method":"PATCH",
        "requestUri":"/scopes/{scopeId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateScopeInput"},
      "output":{"shape":"UpdateScopeOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Update a scope to add or remove resources that you want to be available for Network Flow Monitor to generate metrics for, when you have active agents on those resources sending metrics reports to the Network Flow Monitor backend.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You don't have sufficient permission to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":1,
      "pattern":"[0-9]{12}"
    },
    "Arn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:.*"
    },
    "AvailabilityZone":{"type":"string"},
    "AwsRegion":{"type":"string"},
    "Component":{"type":"string"},
    "ComponentType":{"type":"string"},
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The requested resource is in use.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreateMonitorInput":{
      "type":"structure",
      "required":[
        "monitorName",
        "localResources",
        "scopeArn"
      ],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor. </p>"
        },
        "localResources":{
          "shape":"CreateMonitorInputLocalResourcesList",
          "documentation":"<p>The local resources to monitor. A local resource, in a bi-directional flow of a workload, is the host where the agent is installed. For example, if a workload consists of an interaction between a web service and a backend database (for example, Amazon Relational Database Service (RDS)), the EC2 instance hosting the web service, which also runs the agent, is the local resource.</p>"
        },
        "remoteResources":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remote resources to monitor. A remote resource is the other endpoint in the bi-directional flow of a workload, with a local resource. For example, Amazon Relational Database Service (RDS) can be a remote resource.</p>"
        },
        "scopeArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scope for the monitor.</p>"
        },
        "clientToken":{
          "shape":"UuidString",
          "documentation":"<p>A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a monitor. You can add a maximum of 200 tags.</p>"
        }
      }
    },
    "CreateMonitorInputLocalResourcesList":{
      "type":"list",
      "member":{"shape":"MonitorLocalResource"},
      "min":1
    },
    "CreateMonitorOutput":{
      "type":"structure",
      "required":[
        "monitorArn",
        "monitorName",
        "monitorStatus",
        "localResources",
        "remoteResources",
        "createdAt",
        "modifiedAt"
      ],
      "members":{
        "monitorArn":{
          "shape":"MonitorArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the monitor.</p>"
        },
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor. </p>"
        },
        "monitorStatus":{
          "shape":"MonitorStatus",
          "documentation":"<p>The status of a monitor. The status can be one of the following</p> <ul> <li> <p> <code>PENDING</code>: The monitor is in the process of being created.</p> </li> <li> <p> <code>ACTIVE</code>: The monitor is active.</p> </li> <li> <p> <code>INACTIVE</code>: The monitor is inactive.</p> </li> <li> <p> <code>ERROR</code>: Monitor creation failed due to an error.</p> </li> <li> <p> <code>DELETING</code>: The monitor is in the process of being deleted.</p> </li> </ul>"
        },
        "localResources":{
          "shape":"MonitorLocalResources",
          "documentation":"<p>The local resources to monitor. A local resource, in a bi-directional flow of a workload, is the host where the agent is installed. </p>"
        },
        "remoteResources":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remote resources to monitor. A remote resource is the other endpoint in the bi-directional flow of a workload, with a local resource. For example, Amazon Relational Database Service (RDS) can be a remote resource. The remote resource is identified by its ARN or an identifier.</p>"
        },
        "createdAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The date and time when the monitor was created.</p>"
        },
        "modifiedAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The last date and time that the monitor was modified.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a monitor.</p>"
        }
      }
    },
    "CreateScopeInput":{
      "type":"structure",
      "required":["targets"],
      "members":{
        "targets":{
          "shape":"CreateScopeInputTargetsList",
          "documentation":"<p>The targets to define the scope to be monitored. Currently, a target is an Amazon Web Services account.</p>"
        },
        "clientToken":{
          "shape":"UuidString",
          "documentation":"<p>A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a scope. You can add a maximum of 200 tags.</p>"
        }
      }
    },
    "CreateScopeInputTargetsList":{
      "type":"list",
      "member":{"shape":"TargetResource"},
      "max":100,
      "min":1
    },
    "CreateScopeOutput":{
      "type":"structure",
      "required":[
        "scopeId",
        "status",
        "scopeArn"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get metrics for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>"
        },
        "status":{
          "shape":"ScopeStatus",
          "documentation":"<p>The status for a call to create a scope. The status can be one of the following: <code>SUCCEEDED</code>, <code>IN_PROGRESS</code>, or <code>FAILED</code>.</p>"
        },
        "scopeArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scope.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a scope.</p>"
        }
      }
    },
    "DeleteMonitorInput":{
      "type":"structure",
      "required":["monitorName"],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor to delete.</p>",
          "location":"uri",
          "locationName":"monitorName"
        }
      }
    },
    "DeleteMonitorOutput":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteScopeInput":{
      "type":"structure",
      "required":["scopeId"],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        }
      }
    },
    "DeleteScopeOutput":{
      "type":"structure",
      "members":{
      }
    },
    "DestinationCategory":{
      "type":"string",
      "enum":[
        "INTRA_AZ",
        "INTER_AZ",
        "INTER_VPC",
        "UNCLASSIFIED",
        "AMAZON_S3",
        "AMAZON_DYNAMODB"
      ]
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "GetMonitorInput":{
      "type":"structure",
      "required":["monitorName"],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        }
      }
    },
    "GetMonitorOutput":{
      "type":"structure",
      "required":[
        "monitorArn",
        "monitorName",
        "monitorStatus",
        "localResources",
        "remoteResources",
        "createdAt",
        "modifiedAt"
      ],
      "members":{
        "monitorArn":{
          "shape":"MonitorArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the monitor.</p>"
        },
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>"
        },
        "monitorStatus":{
          "shape":"MonitorStatus",
          "documentation":"<p>The status of a monitor. The status can be one of the following</p> <ul> <li> <p> <code>PENDING</code>: The monitor is in the process of being created.</p> </li> <li> <p> <code>ACTIVE</code>: The monitor is active.</p> </li> <li> <p> <code>INACTIVE</code>: The monitor is inactive.</p> </li> <li> <p> <code>ERROR</code>: Monitor creation failed due to an error.</p> </li> <li> <p> <code>DELETING</code>: The monitor is in the process of being deleted.</p> </li> </ul>"
        },
        "localResources":{
          "shape":"MonitorLocalResources",
          "documentation":"<p>The local resources for this monitor.</p>"
        },
        "remoteResources":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remote resources for this monitor.</p>"
        },
        "createdAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The date and time when the monitor was created.</p>"
        },
        "modifiedAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The date and time when the monitor was last modified.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a monitor.</p>"
        }
      }
    },
    "GetQueryResultsMonitorTopContributorsInput":{
      "type":"structure",
      "required":[
        "monitorName",
        "queryId"
      ],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"Integer",
          "documentation":"<p>The number of query results that you want to return with this call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "GetQueryResultsMonitorTopContributorsOutput":{
      "type":"structure",
      "members":{
        "unit":{
          "shape":"MetricUnit",
          "documentation":"<p>The units for a metric returned by the query.</p>"
        },
        "topContributors":{
          "shape":"MonitorTopContributorsRowList",
          "documentation":"<p>The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>"
        }
      }
    },
    "GetQueryResultsWorkloadInsightsTopContributorsDataInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"Integer",
          "documentation":"<p>The number of query results that you want to return with this call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "GetQueryResultsWorkloadInsightsTopContributorsDataOutput":{
      "type":"structure",
      "required":[
        "unit",
        "datapoints"
      ],
      "members":{
        "unit":{
          "shape":"MetricUnit",
          "documentation":"<p>The units for a metric returned by the query.</p>"
        },
        "datapoints":{
          "shape":"WorkloadInsightsTopContributorsDataPoints",
          "documentation":"<p>The datapoints returned by the query.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>"
        }
      }
    },
    "GetQueryResultsWorkloadInsightsTopContributorsInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"Integer",
          "documentation":"<p>The number of query results that you want to return with this call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "GetQueryResultsWorkloadInsightsTopContributorsOutput":{
      "type":"structure",
      "members":{
        "topContributors":{
          "shape":"WorkloadInsightsTopContributorsRowList",
          "documentation":"<p>The top contributor network flows overall for a specific metric type, for example, the number of retransmissions.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>"
        }
      }
    },
    "GetQueryStatusMonitorTopContributorsInput":{
      "type":"structure",
      "required":[
        "monitorName",
        "queryId"
      ],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "GetQueryStatusMonitorTopContributorsOutput":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"QueryStatus",
          "documentation":"<p>When you run a query, use this call to check the status of the query to make sure that the query has <code>SUCCEEDED</code> before you review the results.</p> <ul> <li> <p> <code>QUEUED</code>: The query is scheduled to run.</p> </li> <li> <p> <code>RUNNING</code>: The query is in progress but not complete.</p> </li> <li> <p> <code>SUCCEEDED</code>: The query completed sucessfully.</p> </li> <li> <p> <code>FAILED</code>: The query failed due to an error.</p> </li> <li> <p> <code>CANCELED</code>: The query was canceled.</p> </li> </ul>"
        }
      }
    },
    "GetQueryStatusWorkloadInsightsTopContributorsDataInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. A scope ID is returned from a <code>CreateScope</code> API call.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "GetQueryStatusWorkloadInsightsTopContributorsDataOutput":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"QueryStatus",
          "documentation":"<p>The status of a query for top contributors data.</p> <ul> <li> <p> <code>QUEUED</code>: The query is scheduled to run.</p> </li> <li> <p> <code>RUNNING</code>: The query is in progress but not complete.</p> </li> <li> <p> <code>SUCCEEDED</code>: The query completed sucessfully.</p> </li> <li> <p> <code>FAILED</code>: The query failed due to an error.</p> </li> <li> <p> <code>CANCELED</code>: The query was canceled.</p> </li> </ul>"
        }
      }
    },
    "GetQueryStatusWorkloadInsightsTopContributorsInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "GetQueryStatusWorkloadInsightsTopContributorsOutput":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"QueryStatus",
          "documentation":"<p>When you run a query, use this call to check the status of the query to make sure that the query has <code>SUCCEEDED</code> before you review the results.</p> <ul> <li> <p> <code>QUEUED</code>: The query is scheduled to run.</p> </li> <li> <p> <code>RUNNING</code>: The query is in progress but not complete.</p> </li> <li> <p> <code>SUCCEEDED</code>: The query completed sucessfully.</p> </li> <li> <p> <code>FAILED</code>: The query failed due to an error.</p> </li> <li> <p> <code>CANCELED</code>: The query was canceled.</p> </li> </ul>"
        }
      }
    },
    "GetScopeInput":{
      "type":"structure",
      "required":["scopeId"],
      "members":{
        "scopeId":{
          "shape":"GetScopeInputScopeIdString",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. A scope ID is returned from a <code>CreateScope</code> API call.</p>",
          "location":"uri",
          "locationName":"scopeId"
        }
      }
    },
    "GetScopeInputScopeIdString":{
      "type":"string",
      "min":1
    },
    "GetScopeOutput":{
      "type":"structure",
      "required":[
        "scopeId",
        "status",
        "scopeArn",
        "targets"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. A scope ID is returned from a <code>CreateScope</code> API call.</p>"
        },
        "status":{
          "shape":"ScopeStatus",
          "documentation":"<p>The status of a scope. The status can be one of the following: <code>SUCCEEDED</code>, <code>IN_PROGRESS</code>, or <code>FAILED</code>.</p>"
        },
        "scopeArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scope.</p>"
        },
        "targets":{
          "shape":"TargetResourceList",
          "documentation":"<p>The targets for a scope</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a scope.</p>"
        }
      }
    },
    "InstanceArn":{"type":"string"},
    "InstanceId":{
      "type":"string",
      "pattern":"i-[a-zA-Z0-9]{8,32}"
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>An internal error occurred.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "Iso8601Timestamp":{"type":"timestamp"},
    "KubernetesMetadata":{
      "type":"structure",
      "members":{
        "localServiceName":{
          "shape":"String",
          "documentation":"<p>The service name for a local resource.</p>"
        },
        "localPodName":{
          "shape":"String",
          "documentation":"<p>The name of the pod for a local resource.</p>"
        },
        "localPodNamespace":{
          "shape":"String",
          "documentation":"<p>The namespace of the pod for a local resource.</p>"
        },
        "remoteServiceName":{
          "shape":"String",
          "documentation":"<p>The service name for a remote resource.</p>"
        },
        "remotePodName":{
          "shape":"String",
          "documentation":"<p>The name of the pod for a remote resource.</p>"
        },
        "remotePodNamespace":{
          "shape":"String",
          "documentation":"<p>The namespace of the pod for a remote resource.</p>"
        }
      },
      "documentation":"<p>Meta data about Kubernetes resources.</p>"
    },
    "Limit":{
      "type":"integer",
      "box":true,
      "max":500,
      "min":1
    },
    "ListMonitorsInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The number of query results that you want to return with this call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "monitorStatus":{
          "shape":"MonitorStatus",
          "documentation":"<p>The status of a monitor. The status can be one of the following</p> <ul> <li> <p> <code>PENDING</code>: The monitor is in the process of being created.</p> </li> <li> <p> <code>ACTIVE</code>: The monitor is active.</p> </li> <li> <p> <code>INACTIVE</code>: The monitor is inactive.</p> </li> <li> <p> <code>ERROR</code>: Monitor creation failed due to an error.</p> </li> <li> <p> <code>DELETING</code>: The monitor is in the process of being deleted.</p> </li> </ul>",
          "location":"querystring",
          "locationName":"monitorStatus"
        }
      }
    },
    "ListMonitorsOutput":{
      "type":"structure",
      "required":["monitors"],
      "members":{
        "monitors":{
          "shape":"MonitorList",
          "documentation":"<p>The monitors that are in an account.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>"
        }
      }
    },
    "ListScopesInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The number of query results that you want to return with this call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListScopesOutput":{
      "type":"structure",
      "required":["scopes"],
      "members":{
        "scopes":{
          "shape":"ScopeSummaryList",
          "documentation":"<p>The scopes returned by the call.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next set of results. You receive this token from a previous call.</p>"
        }
      }
    },
    "ListTagsForResourceInput":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceOutput":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a resource.</p>"
        }
      }
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":25,
      "min":1
    },
    "MetricUnit":{
      "type":"string",
      "enum":[
        "Seconds",
        "Microseconds",
        "Milliseconds",
        "Bytes",
        "Kilobytes",
        "Megabytes",
        "Gigabytes",
        "Terabytes",
        "Bits",
        "Kilobits",
        "Megabits",
        "Gigabits",
        "Terabits",
        "Percent",
        "Count",
        "Bytes/Second",
        "Kilobytes/Second",
        "Megabytes/Second",
        "Gigabytes/Second",
        "Terabytes/Second",
        "Bits/Second",
        "Kilobits/Second",
        "Megabits/Second",
        "Gigabits/Second",
        "Terabits/Second",
        "Count/Second",
        "None"
      ]
    },
    "MonitorArn":{
      "type":"string",
      "max":512,
      "min":20,
      "pattern":"arn:.*"
    },
    "MonitorList":{
      "type":"list",
      "member":{"shape":"MonitorSummary"}
    },
    "MonitorLocalResource":{
      "type":"structure",
      "required":[
        "type",
        "identifier"
      ],
      "members":{
        "type":{
          "shape":"MonitorLocalResourceType",
          "documentation":"<p>The type of the local resource. Valid values are <code>AWS::EC2::VPC</code> <code>AWS::AvailabilityZone</code> or <code>AWS::EC2::Subnet</code>.</p>"
        },
        "identifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the local resource, such as an ARN.</p>"
        }
      },
      "documentation":"<p>A local resource is the host where the agent is installed. Local resources can be a a subnet, a VPC, or an Availability Zone.</p>"
    },
    "MonitorLocalResourceType":{
      "type":"string",
      "enum":[
        "AWS::EC2::VPC",
        "AWS::AvailabilityZone",
        "AWS::EC2::Subnet"
      ]
    },
    "MonitorLocalResources":{
      "type":"list",
      "member":{"shape":"MonitorLocalResource"}
    },
    "MonitorMetric":{
      "type":"string",
      "enum":[
        "ROUND_TRIP_TIME",
        "TIMEOUTS",
        "RETRANSMISSIONS",
        "DATA_TRANSFERRED"
      ]
    },
    "MonitorRemoteResource":{
      "type":"structure",
      "required":[
        "type",
        "identifier"
      ],
      "members":{
        "type":{
          "shape":"MonitorRemoteResourceType",
          "documentation":"<p>The type of the remote resource. Valid values are <code>AWS::EC2::VPC</code> <code>AWS::AvailabilityZone</code>, <code>AWS::EC2::Subnet</code>, or <code>AWS::AWSService</code>.</p>"
        },
        "identifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the remote resource, such as an ARN.</p>"
        }
      },
      "documentation":"<p>A remote resource is the other endpoint in a network flow. That is, one endpoint is the local resource and the other is the remote resource. Remote resources can be a a subnet, a VPC, an Availability Zone, or an Amazon Web Services service. </p>"
    },
    "MonitorRemoteResourceType":{
      "type":"string",
      "enum":[
        "AWS::EC2::VPC",
        "AWS::AvailabilityZone",
        "AWS::EC2::Subnet",
        "AWS::AWSService"
      ]
    },
    "MonitorRemoteResources":{
      "type":"list",
      "member":{"shape":"MonitorRemoteResource"}
    },
    "MonitorStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "ACTIVE",
        "INACTIVE",
        "ERROR",
        "DELETING"
      ]
    },
    "MonitorSummary":{
      "type":"structure",
      "required":[
        "monitorArn",
        "monitorName",
        "monitorStatus"
      ],
      "members":{
        "monitorArn":{
          "shape":"MonitorArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the monitor.</p>"
        },
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>"
        },
        "monitorStatus":{
          "shape":"MonitorStatus",
          "documentation":"<p>The status of a monitor. The status can be one of the following</p> <ul> <li> <p> <code>PENDING</code>: The monitor is in the process of being created.</p> </li> <li> <p> <code>ACTIVE</code>: The monitor is active.</p> </li> <li> <p> <code>INACTIVE</code>: The monitor is inactive.</p> </li> <li> <p> <code>ERROR</code>: Monitor creation failed due to an error.</p> </li> <li> <p> <code>DELETING</code>: The monitor is in the process of being deleted.</p> </li> </ul>"
        }
      },
      "documentation":"<p>A summary of information about a monitor, includ the ARN, the name, and the status.</p>"
    },
    "MonitorTopContributorsRow":{
      "type":"structure",
      "members":{
        "localIp":{
          "shape":"String",
          "documentation":"<p>The IP address of the local resource for a top contributor network flow.</p>"
        },
        "snatIp":{
          "shape":"String",
          "documentation":"<p>The secure network address translation (SNAT) IP address for a top contributor network flow.</p>"
        },
        "localInstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance identifier for the local resource for a top contributor network flow.</p>"
        },
        "localVpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC ID for a top contributor network flow for the local resource.</p>"
        },
        "localRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The Amazon Web Services Region for the local resource for a top contributor network flow.</p>"
        },
        "localAz":{
          "shape":"AvailabilityZone",
          "documentation":"<p>The Availability Zone for the local resource for a top contributor network flow.</p>"
        },
        "localSubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The subnet ID for the local resource for a top contributor network flow.</p>"
        },
        "targetPort":{
          "shape":"Integer",
          "documentation":"<p>The target port.</p>"
        },
        "destinationCategory":{
          "shape":"DestinationCategory",
          "documentation":"<p>The destination category for a top contributors row. Destination categories can be one of the following: </p> <ul> <li> <p> <code>INTRA_AZ</code>: Top contributor network flows within a single Availability Zone</p> </li> <li> <p> <code>INTER_AZ</code>: Top contributor network flows between Availability Zones</p> </li> <li> <p> <code>INTER_VPC</code>: Top contributor network flows between VPCs</p> </li> <li> <p> <code>AWS_SERVICES</code>: Top contributor network flows to or from Amazon Web Services services</p> </li> <li> <p> <code>UNCLASSIFIED</code>: Top contributor network flows that do not have a bucket classification</p> </li> </ul>"
        },
        "remoteVpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC ID for a top contributor network flow for the remote resource.</p>"
        },
        "remoteRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The Amazon Web Services Region for the remote resource for a top contributor network flow.</p>"
        },
        "remoteAz":{
          "shape":"AvailabilityZone",
          "documentation":"<p>The Availability Zone for the remote resource for a top contributor network flow.</p>"
        },
        "remoteSubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The subnet ID for the remote resource for a top contributor network flow.</p>"
        },
        "remoteInstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance identifier for the remote resource for a top contributor network flow.</p>"
        },
        "remoteIp":{
          "shape":"String",
          "documentation":"<p>The IP address of the remote resource for a top contributor network flow.</p>"
        },
        "dnatIp":{
          "shape":"String",
          "documentation":"<p>The destination network address translation (DNAT) IP address for a top contributor network flow.</p>"
        },
        "value":{
          "shape":"Long",
          "documentation":"<p>The value of the metric for a top contributor network flow.</p>"
        },
        "traversedConstructs":{
          "shape":"TraversedConstructsList",
          "documentation":"<p>The constructs traversed by a network flow.</p>"
        },
        "kubernetesMetadata":{
          "shape":"KubernetesMetadata",
          "documentation":"<p>Meta data about Kubernetes resources.</p>"
        },
        "localInstanceArn":{
          "shape":"InstanceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a local resource.</p>"
        },
        "localSubnetArn":{
          "shape":"SubnetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a local subnet.</p>"
        },
        "localVpcArn":{
          "shape":"VpcArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a local VPC.</p>"
        },
        "remoteInstanceArn":{
          "shape":"InstanceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a remote resource.</p>"
        },
        "remoteSubnetArn":{
          "shape":"SubnetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a remote subnet.</p>"
        },
        "remoteVpcArn":{
          "shape":"VpcArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a remote VPC.</p>"
        }
      },
      "documentation":"<p>A set of information for a top contributor network flow in a monitor. In a monitor, Network Flow Monitor returns information about the network flows for top contributors for each metric. Top contributors are network flows with the top values for each metric type.</p>"
    },
    "MonitorTopContributorsRowList":{
      "type":"list",
      "member":{"shape":"MonitorTopContributorsRow"}
    },
    "QueryStatus":{
      "type":"string",
      "enum":[
        "QUEUED",
        "RUNNING",
        "SUCCEEDED",
        "FAILED",
        "CANCELED"
      ]
    },
    "ResourceName":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9_.-]+"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request specifies a resource that doesn't exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ScopeId":{"type":"string"},
    "ScopeStatus":{
      "type":"string",
      "enum":[
        "SUCCEEDED",
        "IN_PROGRESS",
        "FAILED"
      ]
    },
    "ScopeSummary":{
      "type":"structure",
      "required":[
        "scopeId",
        "status",
        "scopeArn"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>"
        },
        "status":{
          "shape":"ScopeStatus",
          "documentation":"<p>The status of a scope. The status can be one of the following, depending on the state of scope creation: <code>SUCCEEDED</code>, <code>IN_PROGRESS</code>, or <code>FAILED</code>.</p>"
        },
        "scopeArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scope.</p>"
        }
      },
      "documentation":"<p>A summary of information about a scope, including the ARN, target ID, and Amazon Web Services Region.</p>"
    },
    "ScopeSummaryList":{
      "type":"list",
      "member":{"shape":"ScopeSummary"}
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request exceeded a service quota.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "StartQueryMonitorTopContributorsInput":{
      "type":"structure",
      "required":[
        "monitorName",
        "startTime",
        "endTime",
        "metricName",
        "destinationCategory"
      ],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        },
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time beginning of the period that you want to retrieve results for with your query.</p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time end of the period that you want to retrieve results for with your query.</p>"
        },
        "metricName":{
          "shape":"MonitorMetric",
          "documentation":"<p>The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within a specific category, such as network flows between Availability Zones.</p>"
        },
        "destinationCategory":{
          "shape":"DestinationCategory",
          "documentation":"<p>The category that you want to query top contributors for, for a specific monitor. Destination categories can be one of the following: </p> <ul> <li> <p> <code>INTRA_AZ</code>: Top contributor network flows within a single Availability Zone</p> </li> <li> <p> <code>INTER_AZ</code>: Top contributor network flows between Availability Zones</p> </li> <li> <p> <code>INTER_VPC</code>: Top contributor network flows between VPCs</p> </li> <li> <p> <code>AMAZON_S3</code>: Top contributor network flows to or from Amazon S3</p> </li> <li> <p> <code>AMAZON_DYNAMODB</code>: Top contributor network flows to or from Amazon Dynamo DB</p> </li> <li> <p> <code>UNCLASSIFIED</code>: Top contributor network flows that do not have a bucket classification</p> </li> </ul>"
        },
        "limit":{
          "shape":"Limit",
          "documentation":"<p>The maximum number of top contributors to return.</p>"
        }
      }
    },
    "StartQueryMonitorTopContributorsOutput":{
      "type":"structure",
      "required":["queryId"],
      "members":{
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>"
        }
      }
    },
    "StartQueryWorkloadInsightsTopContributorsDataInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "startTime",
        "endTime",
        "metricName",
        "destinationCategory"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time beginning of the period that you want to retrieve results for with your query.</p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time end of the period that you want to retrieve results for with your query.</p>"
        },
        "metricName":{
          "shape":"WorkloadInsightsMetric",
          "documentation":"<p>The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within a specific category, such as network flows between Availability Zones.</p>"
        },
        "destinationCategory":{
          "shape":"DestinationCategory",
          "documentation":"<p>The destination category for a top contributors. Destination categories can be one of the following: </p> <ul> <li> <p> <code>INTRA_AZ</code>: Top contributor network flows within a single Availability Zone</p> </li> <li> <p> <code>INTER_AZ</code>: Top contributor network flows between Availability Zones</p> </li> <li> <p> <code>INTER_VPC</code>: Top contributor network flows between VPCs</p> </li> <li> <p> <code>AWS_SERVICES</code>: Top contributor network flows to or from Amazon Web Services services</p> </li> <li> <p> <code>UNCLASSIFIED</code>: Top contributor network flows that do not have a bucket classification</p> </li> </ul>"
        }
      }
    },
    "StartQueryWorkloadInsightsTopContributorsDataOutput":{
      "type":"structure",
      "required":["queryId"],
      "members":{
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>"
        }
      }
    },
    "StartQueryWorkloadInsightsTopContributorsInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "startTime",
        "endTime",
        "metricName",
        "destinationCategory"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. A scope ID is returned from a <code>CreateScope</code> API call.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time beginning of the period that you want to retrieve results for with your query.</p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp that is the date and time end of the period that you want to retrieve results for with your query.</p>"
        },
        "metricName":{
          "shape":"WorkloadInsightsMetric",
          "documentation":"<p>The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within a specific category, such as network flows between Availability Zones.</p>"
        },
        "destinationCategory":{
          "shape":"DestinationCategory",
          "documentation":"<p>The destination category for a top contributors row. Destination categories can be one of the following: </p> <ul> <li> <p> <code>INTRA_AZ</code>: Top contributor network flows within a single Availability Zone</p> </li> <li> <p> <code>INTER_AZ</code>: Top contributor network flows between Availability Zones</p> </li> <li> <p> <code>INTER_VPC</code>: Top contributor network flows between VPCs</p> </li> <li> <p> <code>AWS_SERVICES</code>: Top contributor network flows to or from Amazon Web Services services</p> </li> <li> <p> <code>UNCLASSIFIED</code>: Top contributor network flows that do not have a bucket classification</p> </li> </ul>"
        },
        "limit":{
          "shape":"Limit",
          "documentation":"<p>The maximum number of top contributors to return.</p>"
        }
      }
    },
    "StartQueryWorkloadInsightsTopContributorsOutput":{
      "type":"structure",
      "required":["queryId"],
      "members":{
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>"
        }
      }
    },
    "StopQueryMonitorTopContributorsInput":{
      "type":"structure",
      "required":[
        "monitorName",
        "queryId"
      ],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "StopQueryMonitorTopContributorsOutput":{
      "type":"structure",
      "members":{
      }
    },
    "StopQueryWorkloadInsightsTopContributorsDataInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "StopQueryWorkloadInsightsTopContributorsDataOutput":{
      "type":"structure",
      "members":{
      }
    },
    "StopQueryWorkloadInsightsTopContributorsInput":{
      "type":"structure",
      "required":[
        "scopeId",
        "queryId"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "queryId":{
          "shape":"String",
          "documentation":"<p>The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query.</p>",
          "location":"uri",
          "locationName":"queryId"
        }
      }
    },
    "StopQueryWorkloadInsightsTopContributorsOutput":{
      "type":"structure",
      "members":{
      }
    },
    "String":{"type":"string"},
    "SubnetArn":{"type":"string"},
    "SubnetId":{
      "type":"string",
      "pattern":"subnet-[a-zA-Z0-9]{8,32}"
    },
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":200,
      "min":0
    },
    "TagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a resource.</p>"
        }
      }
    },
    "TagResourceOutput":{
      "type":"structure",
      "members":{
      }
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TargetId":{
      "type":"structure",
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier for the account for a target.</p>"
        }
      },
      "documentation":"<p>A target ID is an internally-generated identifier for a target. A target allows you to identify all the resources in a Network Flow Monitor scope. Currently, a target is always an Amazon Web Services account.</p>",
      "union":true
    },
    "TargetIdentifier":{
      "type":"structure",
      "required":[
        "targetId",
        "targetType"
      ],
      "members":{
        "targetId":{
          "shape":"TargetId",
          "documentation":"<p>The identifier for a target.</p>"
        },
        "targetType":{
          "shape":"TargetType",
          "documentation":"<p>The type of a target. A target type is currently always <code>ACCOUNT</code> because a target is currently a single Amazon Web Services account.</p>"
        }
      },
      "documentation":"<p>A target identifier is a pair of identifying information for a resource that is included in a target. A target identifier includes the target ID and the target type.</p>"
    },
    "TargetResource":{
      "type":"structure",
      "required":[
        "targetIdentifier",
        "region"
      ],
      "members":{
        "targetIdentifier":{
          "shape":"TargetIdentifier",
          "documentation":"<p>A target identifier is a pair of identifying information for a resource that is included in a target. A target identifier includes the target ID and the target type.</p>"
        },
        "region":{
          "shape":"AwsRegion",
          "documentation":"<p>The Amazon Web Services Region where the target resource is located.</p>"
        }
      },
      "documentation":"<p>A target resource in a scope. The resource is identified by a Region and a target identifier, which includes a target ID and a target type.</p>"
    },
    "TargetResourceList":{
      "type":"list",
      "member":{"shape":"TargetResource"}
    },
    "TargetType":{
      "type":"string",
      "enum":["ACCOUNT"]
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":true}
    },
    "TraversedComponent":{
      "type":"structure",
      "members":{
        "componentId":{
          "shape":"Component",
          "documentation":"<p>The identifier for the traversed component.</p>"
        },
        "componentType":{
          "shape":"ComponentType",
          "documentation":"<p>The type of component that was traversed.</p>"
        },
        "componentArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a tranversed component.</p>"
        },
        "serviceName":{
          "shape":"String",
          "documentation":"<p>The service name for the traversed component.</p>"
        }
      },
      "documentation":"<p>A section of the network that a network flow has traveled through.</p>"
    },
    "TraversedConstructsList":{
      "type":"list",
      "member":{"shape":"TraversedComponent"}
    },
    "UntagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>Keys that you specified when you tagged a resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceOutput":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateMonitorInput":{
      "type":"structure",
      "required":["monitorName"],
      "members":{
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>",
          "location":"uri",
          "locationName":"monitorName"
        },
        "localResourcesToAdd":{
          "shape":"MonitorLocalResources",
          "documentation":"<p>The local resources to add, as an array of resources with identifiers and types.</p>"
        },
        "localResourcesToRemove":{
          "shape":"MonitorLocalResources",
          "documentation":"<p>The local resources to remove, as an array of resources with identifiers and types.</p>"
        },
        "remoteResourcesToAdd":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remove resources to add, as an array of resources with identifiers and types.</p>"
        },
        "remoteResourcesToRemove":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remove resources to remove, as an array of resources with identifiers and types.</p>"
        },
        "clientToken":{
          "shape":"UuidString",
          "documentation":"<p>A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateMonitorOutput":{
      "type":"structure",
      "required":[
        "monitorArn",
        "monitorName",
        "monitorStatus",
        "localResources",
        "remoteResources",
        "createdAt",
        "modifiedAt"
      ],
      "members":{
        "monitorArn":{
          "shape":"MonitorArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the monitor.</p>"
        },
        "monitorName":{
          "shape":"ResourceName",
          "documentation":"<p>The name of the monitor.</p>"
        },
        "monitorStatus":{
          "shape":"MonitorStatus",
          "documentation":"<p>The status of a monitor. The status can be one of the following</p> <ul> <li> <p> <code>PENDING</code>: The monitor is in the process of being created.</p> </li> <li> <p> <code>ACTIVE</code>: The monitor is active.</p> </li> <li> <p> <code>INACTIVE</code>: The monitor is inactive.</p> </li> <li> <p> <code>ERROR</code>: Monitor creation failed due to an error.</p> </li> <li> <p> <code>DELETING</code>: The monitor is in the process of being deleted.</p> </li> </ul>"
        },
        "localResources":{
          "shape":"MonitorLocalResources",
          "documentation":"<p>The local resources updated for a monitor, as an array of resources with identifiers and types.</p>"
        },
        "remoteResources":{
          "shape":"MonitorRemoteResources",
          "documentation":"<p>The remote resources updated for a monitor, as an array of resources with identifiers and types.</p>"
        },
        "createdAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The date and time when the monitor was created.</p>"
        },
        "modifiedAt":{
          "shape":"Iso8601Timestamp",
          "documentation":"<p>The last date and time that the monitor was modified.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a monitor.</p>"
        }
      }
    },
    "UpdateScopeInput":{
      "type":"structure",
      "required":["scopeId"],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>",
          "location":"uri",
          "locationName":"scopeId"
        },
        "resourcesToAdd":{
          "shape":"UpdateScopeInputResourcesToAddList",
          "documentation":"<p>A list of resources to add to a scope.</p>"
        },
        "resourcesToDelete":{
          "shape":"UpdateScopeInputResourcesToDeleteList",
          "documentation":"<p>A list of resources to delete from a scope.</p>"
        }
      }
    },
    "UpdateScopeInputResourcesToAddList":{
      "type":"list",
      "member":{"shape":"TargetResource"},
      "max":99,
      "min":1
    },
    "UpdateScopeInputResourcesToDeleteList":{
      "type":"list",
      "member":{"shape":"TargetResource"},
      "max":99,
      "min":1
    },
    "UpdateScopeOutput":{
      "type":"structure",
      "required":[
        "scopeId",
        "status",
        "scopeArn"
      ],
      "members":{
        "scopeId":{
          "shape":"ScopeId",
          "documentation":"<p>The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account.</p>"
        },
        "status":{
          "shape":"ScopeStatus",
          "documentation":"<p>The status for a call to update a scope. The status can be one of the following: <code>SUCCEEDED</code>, <code>IN_PROGRESS</code>, or <code>FAILED</code>.</p>"
        },
        "scopeArn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scope.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags for a scope.</p>"
        }
      }
    },
    "UuidString":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Invalid request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "VpcArn":{"type":"string"},
    "VpcId":{
      "type":"string",
      "pattern":"vpc-[a-zA-Z0-9]{8,32}"
    },
    "WorkloadInsightsMetric":{
      "type":"string",
      "enum":[
        "TIMEOUTS",
        "RETRANSMISSIONS",
        "DATA_TRANSFERRED"
      ]
    },
    "WorkloadInsightsTopContributorsDataPoint":{
      "type":"structure",
      "required":[
        "timestamps",
        "values",
        "label"
      ],
      "members":{
        "timestamps":{
          "shape":"WorkloadInsightsTopContributorsTimestampsList",
          "documentation":"<p>An array of the timestamps for the data point.</p>"
        },
        "values":{
          "shape":"WorkloadInsightsTopContributorsValuesList",
          "documentation":"<p>The values for the data point.</p>"
        },
        "label":{
          "shape":"String",
          "documentation":"<p>The label identifying the data point.</p>"
        }
      },
      "documentation":"<p>A data point for a top contributor network flow in a scope. Network Flow Monitor returns information about the network flows with the top values for each metric type, which are called top contributors.</p>"
    },
    "WorkloadInsightsTopContributorsDataPoints":{
      "type":"list",
      "member":{"shape":"WorkloadInsightsTopContributorsDataPoint"}
    },
    "WorkloadInsightsTopContributorsRow":{
      "type":"structure",
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID for a specific row of data.</p>"
        },
        "localSubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The subnet identifier for the local resource.</p>"
        },
        "localAz":{
          "shape":"AvailabilityZone",
          "documentation":"<p>The identifier for the Availability Zone where the local resource is located.</p>"
        },
        "localVpcId":{
          "shape":"VpcId",
          "documentation":"<p>The identifier for the VPC for the local resource.</p>"
        },
        "localRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The Amazon Web Services Region where the local resource is located.</p>"
        },
        "remoteIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of a remote resource.</p>"
        },
        "value":{
          "shape":"Long",
          "documentation":"<p>The value for a metric.</p>"
        },
        "localSubnetArn":{
          "shape":"SubnetArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a local subnet.</p>"
        },
        "localVpcArn":{
          "shape":"VpcArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of a local VPC.</p>"
        }
      },
      "documentation":"<p>A row for a top contributor for a scope.</p>"
    },
    "WorkloadInsightsTopContributorsRowList":{
      "type":"list",
      "member":{"shape":"WorkloadInsightsTopContributorsRow"}
    },
    "WorkloadInsightsTopContributorsTimestampsList":{
      "type":"list",
      "member":{"shape":"SyntheticTimestamp_date_time"}
    },
    "WorkloadInsightsTopContributorsValuesList":{
      "type":"list",
      "member":{"shape":"Double"}
    }
  },
  "documentation":"<p>Network Flow Monitor is a feature of Amazon CloudWatch Network Monitoring that provides visibility into the performance of network flows for your Amazon Web Services workloads, between instances in subnets, as well as to and from Amazon Web Services. Lightweight agents that you install on the instances capture performance metrics for your network flows, such as packet loss and latency, and send them to the Network Flow Monitor backend. Then, you can view and analyze metrics from the top contributors for each metric type, to help troubleshoot issues.</p> <p>In addition, when you create a monitor, Network Flow Monitor provides a network health indicator (NHI) that informs you whether there were Amazon Web Services network issues for one or more of the network flows tracked by a monitor, during a time period that you choose. By using this value, you can independently determine if the Amazon Web Services network is impacting your workload during a specific time frame, to help you focus troubleshooting efforts.</p> <p>To learn more about Network Flow Monitor, see the <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-NetworkFlowMonitor.html\">Network Flow Monitor User Guide</a> in the Amazon CloudWatch User Guide.</p>"
}
