{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2020-08-01",
    "endpointPrefix":"aps",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon Prometheus Service",
    "serviceId":"amp",
    "signatureVersion":"v4",
    "signingName":"aps",
    "uid":"amp-2020-08-01",
    "auth":["aws.auth#sigv4"]
  },
  "operations":{
    "CreateAlertManagerDefinition":{
      "name":"CreateAlertManagerDefinition",
      "http":{
        "method":"POST",
        "requestUri":"/workspaces/{workspaceId}/alertmanager/definition",
        "responseCode":202
      },
      "input":{"shape":"CreateAlertManagerDefinitionRequest"},
      "output":{"shape":"CreateAlertManagerDefinitionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>The <code>CreateAlertManagerDefinition</code> operation creates the alert manager definition in a workspace. If a workspace already has an alert manager definition, don't use this operation to update it. Instead, use <code>PutAlertManagerDefinition</code>.</p>",
      "idempotent":true
    },
    "CreateLoggingConfiguration":{
      "name":"CreateLoggingConfiguration",
      "http":{
        "method":"POST",
        "requestUri":"/workspaces/{workspaceId}/logging",
        "responseCode":202
      },
      "input":{"shape":"CreateLoggingConfigurationRequest"},
      "output":{"shape":"CreateLoggingConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>CreateLoggingConfiguration</code> operation creates a logging configuration for the workspace. Use this operation to set the CloudWatch log group to which the logs will be published to.</p>",
      "idempotent":true
    },
    "CreateRuleGroupsNamespace":{
      "name":"CreateRuleGroupsNamespace",
      "http":{
        "method":"POST",
        "requestUri":"/workspaces/{workspaceId}/rulegroupsnamespaces",
        "responseCode":202
      },
      "input":{"shape":"CreateRuleGroupsNamespaceRequest"},
      "output":{"shape":"CreateRuleGroupsNamespaceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>The <code>CreateRuleGroupsNamespace</code> operation creates a rule groups namespace within a workspace. A rule groups namespace is associated with exactly one rules file. A workspace can have multiple rule groups namespaces.</p> <p>Use this operation only to create new rule groups namespaces. To update an existing rule groups namespace, use <code>PutRuleGroupsNamespace</code>.</p>",
      "idempotent":true
    },
    "CreateScraper":{
      "name":"CreateScraper",
      "http":{
        "method":"POST",
        "requestUri":"/scrapers",
        "responseCode":202
      },
      "input":{"shape":"CreateScraperRequest"},
      "output":{"shape":"CreateScraperResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>The <code>CreateScraper</code> operation creates a scraper to collect metrics. A scraper pulls metrics from Prometheus-compatible sources within an Amazon EKS cluster, and sends them to your Amazon Managed Service for Prometheus workspace. Scrapers are flexible, and can be configured to control what metrics are collected, the frequency of collection, what transformations are applied to the metrics, and more.</p> <p>An IAM role will be created for you that Amazon Managed Service for Prometheus uses to access the metrics in your cluster. You must configure this role with a policy that allows it to scrape metrics from your cluster. For more information, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup\">Configuring your Amazon EKS cluster</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p> <p>The <code>scrapeConfiguration</code> parameter contains the base-64 encoded YAML configuration for the scraper.</p> <note> <p>For more information about collectors, including what metrics are collected, and how to configure the scraper, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html\">Using an Amazon Web Services managed collector</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p> </note>",
      "idempotent":true
    },
    "CreateWorkspace":{
      "name":"CreateWorkspace",
      "http":{
        "method":"POST",
        "requestUri":"/workspaces",
        "responseCode":202
      },
      "input":{"shape":"CreateWorkspaceRequest"},
      "output":{"shape":"CreateWorkspaceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Creates a Prometheus workspace. A workspace is a logical space dedicated to the storage and querying of Prometheus metrics. You can have one or more workspaces in each Region in your account.</p>",
      "idempotent":true
    },
    "DeleteAlertManagerDefinition":{
      "name":"DeleteAlertManagerDefinition",
      "http":{
        "method":"DELETE",
        "requestUri":"/workspaces/{workspaceId}/alertmanager/definition",
        "responseCode":202
      },
      "input":{"shape":"DeleteAlertManagerDefinitionRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes the alert manager definition from a workspace.</p>",
      "idempotent":true
    },
    "DeleteLoggingConfiguration":{
      "name":"DeleteLoggingConfiguration",
      "http":{
        "method":"DELETE",
        "requestUri":"/workspaces/{workspaceId}/logging",
        "responseCode":202
      },
      "input":{"shape":"DeleteLoggingConfigurationRequest"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes the logging configuration for a workspace.</p>",
      "idempotent":true
    },
    "DeleteRuleGroupsNamespace":{
      "name":"DeleteRuleGroupsNamespace",
      "http":{
        "method":"DELETE",
        "requestUri":"/workspaces/{workspaceId}/rulegroupsnamespaces/{name}",
        "responseCode":202
      },
      "input":{"shape":"DeleteRuleGroupsNamespaceRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes one rule groups namespace and its associated rule groups definition.</p>",
      "idempotent":true
    },
    "DeleteScraper":{
      "name":"DeleteScraper",
      "http":{
        "method":"DELETE",
        "requestUri":"/scrapers/{scraperId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteScraperRequest"},
      "output":{"shape":"DeleteScraperResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>DeleteScraper</code> operation deletes one scraper, and stops any metrics collection that the scraper performs.</p>",
      "idempotent":true
    },
    "DeleteWorkspace":{
      "name":"DeleteWorkspace",
      "http":{
        "method":"DELETE",
        "requestUri":"/workspaces/{workspaceId}",
        "responseCode":202
      },
      "input":{"shape":"DeleteWorkspaceRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes an existing workspace. </p> <note> <p>When you delete a workspace, the data that has been ingested into it is not immediately deleted. It will be permanently deleted within one month.</p> </note>",
      "idempotent":true
    },
    "DescribeAlertManagerDefinition":{
      "name":"DescribeAlertManagerDefinition",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces/{workspaceId}/alertmanager/definition",
        "responseCode":200
      },
      "input":{"shape":"DescribeAlertManagerDefinitionRequest"},
      "output":{"shape":"DescribeAlertManagerDefinitionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves the full information about the alert manager definition for a workspace.</p>"
    },
    "DescribeLoggingConfiguration":{
      "name":"DescribeLoggingConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces/{workspaceId}/logging",
        "responseCode":200
      },
      "input":{"shape":"DescribeLoggingConfigurationRequest"},
      "output":{"shape":"DescribeLoggingConfigurationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns complete information about the current logging configuration of the workspace.</p>"
    },
    "DescribeRuleGroupsNamespace":{
      "name":"DescribeRuleGroupsNamespace",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces/{workspaceId}/rulegroupsnamespaces/{name}",
        "responseCode":200
      },
      "input":{"shape":"DescribeRuleGroupsNamespaceRequest"},
      "output":{"shape":"DescribeRuleGroupsNamespaceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns complete information about one rule groups namespace. To retrieve a list of rule groups namespaces, use <code>ListRuleGroupsNamespaces</code>.</p>"
    },
    "DescribeScraper":{
      "name":"DescribeScraper",
      "http":{
        "method":"GET",
        "requestUri":"/scrapers/{scraperId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeScraperRequest"},
      "output":{"shape":"DescribeScraperResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>DescribeScraper</code> operation displays information about an existing scraper.</p>"
    },
    "DescribeWorkspace":{
      "name":"DescribeWorkspace",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces/{workspaceId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeWorkspaceRequest"},
      "output":{"shape":"DescribeWorkspaceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns information about an existing workspace. </p>"
    },
    "GetDefaultScraperConfiguration":{
      "name":"GetDefaultScraperConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/scraperconfiguration",
        "responseCode":200
      },
      "input":{"shape":"GetDefaultScraperConfigurationRequest"},
      "output":{"shape":"GetDefaultScraperConfigurationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>GetDefaultScraperConfiguration</code> operation returns the default scraper configuration used when Amazon EKS creates a scraper for you.</p>"
    },
    "ListRuleGroupsNamespaces":{
      "name":"ListRuleGroupsNamespaces",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces/{workspaceId}/rulegroupsnamespaces",
        "responseCode":200
      },
      "input":{"shape":"ListRuleGroupsNamespacesRequest"},
      "output":{"shape":"ListRuleGroupsNamespacesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns a list of rule groups namespaces in a workspace.</p>"
    },
    "ListScrapers":{
      "name":"ListScrapers",
      "http":{
        "method":"GET",
        "requestUri":"/scrapers",
        "responseCode":200
      },
      "input":{"shape":"ListScrapersRequest"},
      "output":{"shape":"ListScrapersResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>ListScrapers</code> operation lists all of the scrapers in your account. This includes scrapers being created or deleted. You can optionally filter the returned list.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>ListTagsForResource</code> operation returns the tags that are associated with an Amazon Managed Service for Prometheus resource. Currently, the only resources that can be tagged are scrapers, workspaces, and rule groups namespaces. </p>"
    },
    "ListWorkspaces":{
      "name":"ListWorkspaces",
      "http":{
        "method":"GET",
        "requestUri":"/workspaces",
        "responseCode":200
      },
      "input":{"shape":"ListWorkspacesRequest"},
      "output":{"shape":"ListWorkspacesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists all of the Amazon Managed Service for Prometheus workspaces in your account. This includes workspaces being created or deleted. </p>"
    },
    "PutAlertManagerDefinition":{
      "name":"PutAlertManagerDefinition",
      "http":{
        "method":"PUT",
        "requestUri":"/workspaces/{workspaceId}/alertmanager/definition",
        "responseCode":202
      },
      "input":{"shape":"PutAlertManagerDefinitionRequest"},
      "output":{"shape":"PutAlertManagerDefinitionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Updates an existing alert manager definition in a workspace. If the workspace does not already have an alert manager definition, don't use this operation to create it. Instead, use <code>CreateAlertManagerDefinition</code>.</p>",
      "idempotent":true
    },
    "PutRuleGroupsNamespace":{
      "name":"PutRuleGroupsNamespace",
      "http":{
        "method":"PUT",
        "requestUri":"/workspaces/{workspaceId}/rulegroupsnamespaces/{name}",
        "responseCode":202
      },
      "input":{"shape":"PutRuleGroupsNamespaceRequest"},
      "output":{"shape":"PutRuleGroupsNamespaceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Updates an existing rule groups namespace within a workspace. A rule groups namespace is associated with exactly one rules file. A workspace can have multiple rule groups namespaces.</p> <p>Use this operation only to update existing rule groups namespaces. To create a new rule groups namespace, use <code>CreateRuleGroupsNamespace</code>.</p> <p>You can't use this operation to add tags to an existing rule groups namespace. Instead, use <code>TagResource</code>.</p>",
      "idempotent":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The <code>TagResource</code> operation associates tags with an Amazon Managed Service for Prometheus resource. The only resources that can be tagged are rule groups namespaces, scrapers, and workspaces.</p> <p>If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. To remove a tag, use <code>UntagResource</code>.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes the specified tags from an Amazon Managed Service for Prometheus resource. The only resources that can be tagged are rule groups namespaces, scrapers, and workspaces. </p>",
      "idempotent":true
    },
    "UpdateLoggingConfiguration":{
      "name":"UpdateLoggingConfiguration",
      "http":{
        "method":"PUT",
        "requestUri":"/workspaces/{workspaceId}/logging",
        "responseCode":202
      },
      "input":{"shape":"UpdateLoggingConfigurationRequest"},
      "output":{"shape":"UpdateLoggingConfigurationResponse"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the log group ARN or the workspace ID of the current logging configuration.</p>",
      "idempotent":true
    },
    "UpdateScraper":{
      "name":"UpdateScraper",
      "http":{
        "method":"PUT",
        "requestUri":"/scrapers/{scraperId}",
        "responseCode":202
      },
      "input":{"shape":"UpdateScraperRequest"},
      "output":{"shape":"UpdateScraperResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Updates an existing scraper.</p> <p>You can't use this function to update the source from which the scraper is collecting metrics. To change the source, delete the scraper and create a new one.</p>",
      "idempotent":true
    },
    "UpdateWorkspaceAlias":{
      "name":"UpdateWorkspaceAlias",
      "http":{
        "method":"POST",
        "requestUri":"/workspaces/{workspaceId}/alias",
        "responseCode":204
      },
      "input":{"shape":"UpdateWorkspaceAliasRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ConflictException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Updates the alias of an existing workspace. </p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        }
      },
      "documentation":"<p>You do not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AlertManagerDefinitionData":{
      "type":"blob",
      "documentation":"<p>The base-64 encoded blob that is alert manager definition.</p> <p>For details about the alert manager definition, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-AlertManagerDefinitionData.html\">AlertManagedDefinitionData</a>.</p>"
    },
    "AlertManagerDefinitionDescription":{
      "type":"structure",
      "required":[
        "createdAt",
        "data",
        "modifiedAt",
        "status"
      ],
      "members":{
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the alert manager definition was created.</p>"
        },
        "data":{
          "shape":"AlertManagerDefinitionData",
          "documentation":"<p>The actual alert manager definition.</p> <p>For details about the alert manager definition, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-AlertManagerDefinitionData.html\">AlertManagedDefinitionData</a>.</p>"
        },
        "modifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the alert manager definition was most recently changed.</p>"
        },
        "status":{
          "shape":"AlertManagerDefinitionStatus",
          "documentation":"<p>A structure that displays the current status of the alert manager definition..</p>"
        }
      },
      "documentation":"<p>The details of an alert manager definition. It is the configuration for the alert manager, including information about receivers for routing alerts.</p>"
    },
    "AlertManagerDefinitionStatus":{
      "type":"structure",
      "required":["statusCode"],
      "members":{
        "statusCode":{
          "shape":"AlertManagerDefinitionStatusCode",
          "documentation":"<p>The current status of the alert manager. </p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>If there is a failure, the reason for the failure.</p>"
        }
      },
      "documentation":"<p>The status of the alert manager. </p>"
    },
    "AlertManagerDefinitionStatusCode":{
      "type":"string",
      "documentation":"<p>State of an <code>AlertManagerDefinition</code>.</p>",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATION_FAILED",
        "UPDATE_FAILED"
      ]
    },
    "AmpConfiguration":{
      "type":"structure",
      "required":["workspaceArn"],
      "members":{
        "workspaceArn":{
          "shape":"WorkspaceArn",
          "documentation":"<p>ARN of the Amazon Managed Service for Prometheus workspace.</p>"
        }
      },
      "documentation":"<p>The <code>AmpConfiguration</code> structure defines the Amazon Managed Service for Prometheus instance a scraper should send metrics to.</p>"
    },
    "Blob":{"type":"blob"},
    "ClusterArn":{
      "type":"string",
      "documentation":"<p>The ARN of an EKS cluster.</p>",
      "pattern":"^arn:aws[-a-z]*:eks:[-a-z0-9]+:[0-9]{12}:cluster/.+$"
    },
    "ConflictException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the resource affected.</p>"
        }
      },
      "documentation":"<p>The request would cause an inconsistent state.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreateAlertManagerDefinitionRequest":{
      "type":"structure",
      "required":[
        "data",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "data":{
          "shape":"AlertManagerDefinitionData",
          "documentation":"<p>The alert manager definition to add. A base64-encoded version of the YAML alert manager definition file.</p> <p>For details about the alert manager definition, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-AlertManagerDefinitionData.html\">AlertManagedDefinitionData</a>.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to add the alert manager definition to.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>CreateAlertManagerDefinition</code> operation.</p>"
    },
    "CreateAlertManagerDefinitionResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AlertManagerDefinitionStatus",
          "documentation":"<p>A structure that displays the current status of the alert manager definition.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>CreateAlertManagerDefinition</code> operation.</p>"
    },
    "CreateLoggingConfigurationRequest":{
      "type":"structure",
      "required":[
        "logGroupArn",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "logGroupArn":{
          "shape":"LogGroupArn",
          "documentation":"<p>The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist prior to calling this operation.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to create the logging configuration for.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>CreateLoggingConfiguration</code> operation.</p>"
    },
    "CreateLoggingConfigurationResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"LoggingConfigurationStatus",
          "documentation":"<p>A structure that displays the current status of the logging configuration.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>CreateLoggingConfiguration</code> operation.</p>"
    },
    "CreateRuleGroupsNamespaceRequest":{
      "type":"structure",
      "required":[
        "data",
        "name",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "data":{
          "shape":"RuleGroupsNamespaceData",
          "documentation":"<p>The rules file to use in the new namespace.</p> <p>Contains the base64-encoded version of the YAML rules file.</p> <p>For details about the rule groups namespace structure, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-RuleGroupsNamespaceData.html\">RuleGroupsNamespaceData</a>.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name for the new rule groups namespace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values to associate with the rule groups namespace.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to add the rule groups namespace.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>CreateRuleGroupsNamespace</code> operation.</p>"
    },
    "CreateRuleGroupsNamespaceResponse":{
      "type":"structure",
      "required":[
        "arn",
        "name",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"RuleGroupsNamespaceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the new rule groups namespace.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the new rule groups namespace.</p>"
        },
        "status":{
          "shape":"RuleGroupsNamespaceStatus",
          "documentation":"<p>A structure that returns the current status of the rule groups namespace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the namespace.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>CreateRuleGroupsNamespace</code> operation.</p>"
    },
    "CreateScraperRequest":{
      "type":"structure",
      "required":[
        "destination",
        "scrapeConfiguration",
        "source"
      ],
      "members":{
        "alias":{
          "shape":"ScraperAlias",
          "documentation":"<p>(optional) An alias to associate with the scraper. This is for your use, and does not need to be unique.</p>"
        },
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>(Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "destination":{
          "shape":"Destination",
          "documentation":"<p>The Amazon Managed Service for Prometheus workspace to send metrics to.</p>"
        },
        "roleConfiguration":{
          "shape":"RoleConfiguration",
          "documentation":"<p>The scraper role configuration for the workspace.</p>"
        },
        "scrapeConfiguration":{
          "shape":"ScrapeConfiguration",
          "documentation":"<p>The configuration file to use in the new scraper. For more information, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration\">Scraper configuration</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>"
        },
        "source":{
          "shape":"Source",
          "documentation":"<p>The Amazon EKS cluster from which the scraper will collect metrics.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>(Optional) The list of tag keys and values to associate with the scraper.</p>"
        }
      },
      "documentation":"<p>Represents the input of a <code>CreateScraper</code> operation.</p>"
    },
    "CreateScraperResponse":{
      "type":"structure",
      "required":[
        "arn",
        "scraperId",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"ScraperArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the new scraper.</p>"
        },
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the new scraper.</p>"
        },
        "status":{
          "shape":"ScraperStatus",
          "documentation":"<p>A structure that displays the current status of the scraper.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the scraper.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>CreateScraper</code> operation.</p>"
    },
    "CreateWorkspaceRequest":{
      "type":"structure",
      "members":{
        "alias":{
          "shape":"WorkspaceAlias",
          "documentation":"<p>An alias that you assign to this workspace to help you identify it. It does not need to be unique.</p> <p>Blank spaces at the beginning or end of the alias that you specify will be trimmed from the value used.</p>"
        },
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>(optional) The ARN for a customer managed KMS key to use for encrypting data within your workspace. For more information about using your own key in your workspace, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/encryption-at-rest-Amazon-Service-Prometheus.html\">Encryption at rest</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values to associate with the workspace.</p>"
        }
      },
      "documentation":"<p>Represents the input of a <code>CreateWorkspace</code> operation.</p>"
    },
    "CreateWorkspaceResponse":{
      "type":"structure",
      "required":[
        "arn",
        "status",
        "workspaceId"
      ],
      "members":{
        "arn":{
          "shape":"WorkspaceArn",
          "documentation":"<p>The ARN for the new workspace.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>(optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.</p>"
        },
        "status":{
          "shape":"WorkspaceStatus",
          "documentation":"<p>The current status of the new workspace. Immediately after you create the workspace, the status is usually <code>CREATING</code>.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the workspace.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The unique ID for the new workspace.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>CreateWorkspace</code> operation.</p>"
    },
    "DeleteAlertManagerDefinitionRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to delete the alert manager definition from.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DeleteAlertManagerDefinition</code> operation.</p>"
    },
    "DeleteLoggingConfigurationRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace containing the logging configuration to delete.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DeleteLoggingConfiguration</code> operation.</p>"
    },
    "DeleteRuleGroupsNamespaceRequest":{
      "type":"structure",
      "required":[
        "name",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace to delete.</p>",
          "location":"uri",
          "locationName":"name"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace containing the rule groups namespace and definition to delete.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DeleteRuleGroupsNamespace</code> operation.</p>"
    },
    "DeleteScraperRequest":{
      "type":"structure",
      "required":["scraperId"],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>(Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper to delete.</p>",
          "location":"uri",
          "locationName":"scraperId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DeleteScraper</code> operation.</p>"
    },
    "DeleteScraperResponse":{
      "type":"structure",
      "required":[
        "scraperId",
        "status"
      ],
      "members":{
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper to delete.</p>"
        },
        "status":{
          "shape":"ScraperStatus",
          "documentation":"<p>The current status of the scraper.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DeleteScraper</code> operation.</p>"
    },
    "DeleteWorkspaceRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"clientToken"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to delete.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DeleteWorkspace</code> operation.</p>"
    },
    "DescribeAlertManagerDefinitionRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to retrieve the alert manager definition from.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DescribeAlertManagerDefinition</code> operation.</p>"
    },
    "DescribeAlertManagerDefinitionResponse":{
      "type":"structure",
      "required":["alertManagerDefinition"],
      "members":{
        "alertManagerDefinition":{
          "shape":"AlertManagerDefinitionDescription",
          "documentation":"<p>The alert manager definition.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DescribeAlertManagerDefinition</code> operation.</p>"
    },
    "DescribeLoggingConfigurationRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to describe the logging configuration for.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DescribeLoggingConfiguration</code> operation.</p>"
    },
    "DescribeLoggingConfigurationResponse":{
      "type":"structure",
      "required":["loggingConfiguration"],
      "members":{
        "loggingConfiguration":{
          "shape":"LoggingConfigurationMetadata",
          "documentation":"<p>A structure that displays the information about the logging configuration.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DescribeLoggingConfiguration</code> operation.</p>"
    },
    "DescribeRuleGroupsNamespaceRequest":{
      "type":"structure",
      "required":[
        "name",
        "workspaceId"
      ],
      "members":{
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace that you want information for.</p>",
          "location":"uri",
          "locationName":"name"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace containing the rule groups namespace.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DescribeRuleGroupsNamespace</code> operation.</p>"
    },
    "DescribeRuleGroupsNamespaceResponse":{
      "type":"structure",
      "required":["ruleGroupsNamespace"],
      "members":{
        "ruleGroupsNamespace":{
          "shape":"RuleGroupsNamespaceDescription",
          "documentation":"<p>The information about the rule groups namespace.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DescribeRuleGroupsNamespace</code> operation.</p>"
    },
    "DescribeScraperRequest":{
      "type":"structure",
      "required":["scraperId"],
      "members":{
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper to describe.</p>",
          "location":"uri",
          "locationName":"scraperId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DescribeScraper</code> operation.</p>"
    },
    "DescribeScraperResponse":{
      "type":"structure",
      "required":["scraper"],
      "members":{
        "scraper":{
          "shape":"ScraperDescription",
          "documentation":"<p>Contains details about the scraper.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DescribeScraper</code> operation.</p>"
    },
    "DescribeWorkspaceRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to describe.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>DescribeWorkspace</code> operation.</p>"
    },
    "DescribeWorkspaceResponse":{
      "type":"structure",
      "required":["workspace"],
      "members":{
        "workspace":{
          "shape":"WorkspaceDescription",
          "documentation":"<p>A structure that contains details about the workspace.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>DescribeWorkspace</code> operation.</p>"
    },
    "Destination":{
      "type":"structure",
      "members":{
        "ampConfiguration":{
          "shape":"AmpConfiguration",
          "documentation":"<p>The Amazon Managed Service for Prometheus workspace to send metrics to.</p>"
        }
      },
      "documentation":"<p>Where to send the metrics from a scraper.</p>",
      "union":true
    },
    "EksConfiguration":{
      "type":"structure",
      "required":[
        "clusterArn",
        "subnetIds"
      ],
      "members":{
        "clusterArn":{
          "shape":"ClusterArn",
          "documentation":"<p>ARN of the Amazon EKS cluster.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIds",
          "documentation":"<p>A list of the security group IDs for the Amazon EKS cluster VPC configuration.</p>"
        },
        "subnetIds":{
          "shape":"SubnetIds",
          "documentation":"<p>A list of subnet IDs for the Amazon EKS cluster VPC configuration.</p>"
        }
      },
      "documentation":"<p>The <code>EksConfiguration</code> structure describes the connection to the Amazon EKS cluster from which a scraper collects metrics.</p>"
    },
    "FilterKey":{
      "type":"string",
      "documentation":"<p>The name of the key by which to filter.</p>",
      "max":256,
      "min":1
    },
    "FilterValue":{
      "type":"string",
      "documentation":"<p>The value for a given key by which to filter.</p>",
      "max":256,
      "min":1
    },
    "FilterValues":{
      "type":"list",
      "member":{"shape":"FilterValue"},
      "documentation":"<p>A list of scraper filter values.</p>",
      "max":20,
      "min":1
    },
    "GetDefaultScraperConfigurationRequest":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>Represents the input of a <code>GetDefaultScraperConfiguration</code> operation.</p>"
    },
    "GetDefaultScraperConfigurationResponse":{
      "type":"structure",
      "required":["configuration"],
      "members":{
        "configuration":{
          "shape":"Blob",
          "documentation":"<p>The configuration file. Base 64 encoded. For more information, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration\">Scraper configuration</a>in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>GetDefaultScraperConfiguration</code> operation.</p>"
    },
    "IamRoleArn":{
      "type":"string",
      "documentation":"<p>An ARN identifying an IAM role used by the scraper.</p>",
      "pattern":"^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$"
    },
    "IdempotencyToken":{
      "type":"string",
      "documentation":"<p>An identifier used to ensure the idempotency of a write request.</p>",
      "max":64,
      "min":1,
      "pattern":"^[!-~]+$"
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Advice to clients on when the call can be safely retried.</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>An unexpected error occurred during the processing of the request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "KmsKeyArn":{
      "type":"string",
      "documentation":"<p>A KMS Key ARN.</p>",
      "max":2048,
      "min":20,
      "pattern":"^arn:aws[-a-z]*:kms:[-a-z0-9]+:[0-9]{12}:key/[-a-f0-9]+$"
    },
    "ListRuleGroupsNamespacesRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "maxResults":{
          "shape":"ListRuleGroupsNamespacesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return. The default is 100.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>Use this parameter to filter the rule groups namespaces that are returned. Only the namespaces with names that begin with the value that you specify are returned.</p>",
          "location":"querystring",
          "locationName":"name"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of items to return. You receive this token from a previous call, and use it to get the next page of results. The other parameters must be the same as the initial call.</p> <p>For example, if your initial request has <code>maxResults</code> of 10, and there are 12 rule groups namespaces to return, then your initial request will return 10 and a <code>nextToken</code>. Using the next token in a subsequent call will return the remaining 2 namespaces.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace containing the rule groups namespaces.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>ListRuleGroupsNamespaces</code> operation.</p>"
    },
    "ListRuleGroupsNamespacesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "ListRuleGroupsNamespacesResponse":{
      "type":"structure",
      "required":["ruleGroupsNamespaces"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A token indicating that there are more results to retrieve. You can use this token as part of your next <code>ListRuleGroupsNamespaces</code> request to retrieve those results.</p>"
        },
        "ruleGroupsNamespaces":{
          "shape":"RuleGroupsNamespaceSummaryList",
          "documentation":"<p>The returned list of rule groups namespaces.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>ListRuleGroupsNamespaces</code> operation.</p>"
    },
    "ListScrapersRequest":{
      "type":"structure",
      "members":{
        "filters":{
          "shape":"ScraperFilters",
          "documentation":"<p>(Optional) A list of key-value pairs to filter the list of scrapers returned. Keys include <code>status</code>, <code>sourceArn</code>, <code>destinationArn</code>, and <code>alias</code>.</p> <p>Filters on the same key are <code>OR</code>'d together, and filters on different keys are <code>AND</code>'d together. For example, <code>status=ACTIVE&amp;status=CREATING&amp;alias=Test</code>, will return all scrapers that have the alias Test, and are either in status ACTIVE or CREATING.</p> <p>To find all active scrapers that are sending metrics to a specific Amazon Managed Service for Prometheus workspace, you would use the ARN of the workspace in a query:</p> <p> <code>status=ACTIVE&amp;destinationArn=arn:aws:aps:us-east-1:123456789012:workspace/ws-example1-1234-abcd-56ef-123456789012</code> </p> <p>If this is included, it filters the results to only the scrapers that match the filter.</p>",
          "location":"querystring"
        },
        "maxResults":{
          "shape":"ListScrapersRequestMaxResultsInteger",
          "documentation":"<p>Optional) The maximum number of scrapers to return in one <code>ListScrapers</code> operation. The range is 1-1000.</p> <p>If you omit this parameter, the default of 100 is used.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Represents the input of a <code>ListScrapers</code> operation.</p>"
    },
    "ListScrapersRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "ListScrapersResponse":{
      "type":"structure",
      "required":["scrapers"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A token indicating that there are more results to retrieve. You can use this token as part of your next <code>ListScrapers</code> operation to retrieve those results.</p>"
        },
        "scrapers":{
          "shape":"ScraperSummaryList",
          "documentation":"<p>A list of <code>ScraperSummary</code> structures giving information about scrapers in the account that match the filters provided.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>ListScrapers</code> operation.</p>"
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The ARN of the resource to list tages for. Must be a workspace, scraper, or rule groups namespace resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values associated with the resource.</p>"
        }
      }
    },
    "ListWorkspacesRequest":{
      "type":"structure",
      "members":{
        "alias":{
          "shape":"WorkspaceAlias",
          "documentation":"<p>If this is included, it filters the results to only the workspaces with names that start with the value that you specify here.</p> <p>Amazon Managed Service for Prometheus will automatically strip any blank spaces from the beginning and end of the alias that you specify.</p>",
          "location":"querystring",
          "locationName":"alias"
        },
        "maxResults":{
          "shape":"ListWorkspacesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of workspaces to return per request. The default is 100.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token for the next set of items to return. You receive this token from a previous call, and use it to get the next page of results. The other parameters must be the same as the initial call.</p> <p>For example, if your initial request has <code>maxResults</code> of 10, and there are 12 workspaces to return, then your initial request will return 10 and a <code>nextToken</code>. Using the next token in a subsequent call will return the remaining 2 workspaces.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Represents the input of a <code>ListWorkspaces</code> operation.</p>"
    },
    "ListWorkspacesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "ListWorkspacesResponse":{
      "type":"structure",
      "required":["workspaces"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>A token indicating that there are more results to retrieve. You can use this token as part of your next <code>ListWorkspaces</code> request to retrieve those results.</p>"
        },
        "workspaces":{
          "shape":"WorkspaceSummaryList",
          "documentation":"<p>An array of <code>WorkspaceSummary</code> structures containing information about the workspaces requested.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>ListWorkspaces</code> operation.</p>"
    },
    "LogGroupArn":{
      "type":"string",
      "pattern":"^arn:aws[-a-z]*:logs:[-a-z0-9]+:[0-9]{12}:log-group:[A-Za-z0-9\\.\\-\\_\\#/]{1,512}\\:\\*$"
    },
    "LoggingConfigurationMetadata":{
      "type":"structure",
      "required":[
        "createdAt",
        "logGroupArn",
        "modifiedAt",
        "status",
        "workspace"
      ],
      "members":{
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the logging configuration was created.</p>"
        },
        "logGroupArn":{
          "shape":"LogGroupArn",
          "documentation":"<p>The ARN of the CloudWatch log group to which the vended log data will be published.</p>"
        },
        "modifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the logging configuration was most recently changed.</p>"
        },
        "status":{
          "shape":"LoggingConfigurationStatus",
          "documentation":"<p>The current status of the logging configuration.</p>"
        },
        "workspace":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace the logging configuration is for.</p>"
        }
      },
      "documentation":"<p>Contains information about the logging configuration for the workspace.</p>"
    },
    "LoggingConfigurationStatus":{
      "type":"structure",
      "required":["statusCode"],
      "members":{
        "statusCode":{
          "shape":"LoggingConfigurationStatusCode",
          "documentation":"<p>The current status of the logging configuration.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>If failed, the reason for the failure.</p>"
        }
      },
      "documentation":"<p>The status of the logging configuration. </p>"
    },
    "LoggingConfigurationStatusCode":{
      "type":"string",
      "documentation":"<p>State of a logging configuration.</p>",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATION_FAILED",
        "UPDATE_FAILED"
      ]
    },
    "PaginationToken":{
      "type":"string",
      "documentation":"<p>A token used to access the next page in a paginated result set.</p>",
      "max":1000,
      "min":0
    },
    "PutAlertManagerDefinitionRequest":{
      "type":"structure",
      "required":[
        "data",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "data":{
          "shape":"AlertManagerDefinitionData",
          "documentation":"<p>The alert manager definition to use. A base64-encoded version of the YAML alert manager definition file.</p> <p>For details about the alert manager definition, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-AlertManagerDefinitionData.html\">AlertManagedDefinitionData</a>.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to update the alert manager definition in.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>PutAlertManagerDefinition</code> operation.</p>"
    },
    "PutAlertManagerDefinitionResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AlertManagerDefinitionStatus",
          "documentation":"<p>A structure that returns the current status of the alert manager definition.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>PutAlertManagerDefinition</code> operation.</p>"
    },
    "PutRuleGroupsNamespaceRequest":{
      "type":"structure",
      "required":[
        "data",
        "name",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "data":{
          "shape":"RuleGroupsNamespaceData",
          "documentation":"<p>The new rules file to use in the namespace. A base64-encoded version of the YAML rule groups file.</p> <p>For details about the rule groups namespace structure, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-RuleGroupsNamespaceData.html\">RuleGroupsNamespaceData</a>.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace that you are updating.</p>",
          "location":"uri",
          "locationName":"name"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace where you are updating the rule groups namespace.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of a <code>PutRuleGroupsNamespace</code> operation.</p>"
    },
    "PutRuleGroupsNamespaceResponse":{
      "type":"structure",
      "required":[
        "arn",
        "name",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"RuleGroupsNamespaceArn",
          "documentation":"<p>The ARN of the rule groups namespace.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace that was updated.</p>"
        },
        "status":{
          "shape":"RuleGroupsNamespaceStatus",
          "documentation":"<p>A structure that includes the current status of the rule groups namespace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the namespace.</p>"
        }
      },
      "documentation":"<p>Represents the output of a <code>PutRuleGroupsNamespace</code> operation.</p>"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the resource affected.</p>"
        }
      },
      "documentation":"<p>The request references a resources that doesn't exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "RoleConfiguration":{
      "type":"structure",
      "members":{
        "sourceRoleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>A ARN identifying the source role configuration.</p>"
        },
        "targetRoleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>A ARN identifying the target role configuration.</p>"
        }
      },
      "documentation":"<p>To configure roles that allows users to write to an Amazon Managed Service for Prometheus workspace in a different account.</p>"
    },
    "RuleGroupsNamespaceArn":{
      "type":"string",
      "documentation":"<p>An ARN identifying a rule groups namespace.</p>"
    },
    "RuleGroupsNamespaceData":{
      "type":"blob",
      "documentation":"<p>The rule groups namespace data.</p>"
    },
    "RuleGroupsNamespaceDescription":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "data",
        "modifiedAt",
        "name",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"RuleGroupsNamespaceArn",
          "documentation":"<p>The ARN of the rule groups namespace. For example, <code>arn:aws:aps:&lt;region&gt;:123456789012:rulegroupsnamespace/ws-example1-1234-abcd-5678-ef90abcd1234/rulesfile1</code>.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the rule groups namespace was created.</p>"
        },
        "data":{
          "shape":"RuleGroupsNamespaceData",
          "documentation":"<p>The rule groups file used in the namespace.</p> <p>For details about the rule groups namespace structure, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/APIReference/yaml-RuleGroupsNamespaceData.html\">RuleGroupsNamespaceData</a>.</p>"
        },
        "modifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the rule groups namespace was most recently changed.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace.</p>"
        },
        "status":{
          "shape":"RuleGroupsNamespaceStatus",
          "documentation":"<p>The current status of the rule groups namespace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the rule groups namespace.</p>"
        }
      },
      "documentation":"<p>The details about one rule groups namespace. </p>"
    },
    "RuleGroupsNamespaceName":{
      "type":"string",
      "documentation":"<p>The name of the namespace that the rule group belong to.</p>",
      "max":64,
      "min":1,
      "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*"
    },
    "RuleGroupsNamespaceStatus":{
      "type":"structure",
      "required":["statusCode"],
      "members":{
        "statusCode":{
          "shape":"RuleGroupsNamespaceStatusCode",
          "documentation":"<p>The current status of the namespace.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the failure, if any.</p>"
        }
      },
      "documentation":"<p>The status information about a rule groups namespace. </p>"
    },
    "RuleGroupsNamespaceStatusCode":{
      "type":"string",
      "documentation":"<p>State of a namespace.</p>",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATION_FAILED",
        "UPDATE_FAILED"
      ]
    },
    "RuleGroupsNamespaceSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "modifiedAt",
        "name",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"RuleGroupsNamespaceArn",
          "documentation":"<p>The ARN of the rule groups namespace.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the rule groups namespace was created.</p>"
        },
        "modifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the rule groups namespace was most recently changed.</p>"
        },
        "name":{
          "shape":"RuleGroupsNamespaceName",
          "documentation":"<p>The name of the rule groups namespace.</p>"
        },
        "status":{
          "shape":"RuleGroupsNamespaceStatus",
          "documentation":"<p>A structure that displays the current status of the rule groups namespace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the rule groups namespace.</p>"
        }
      },
      "documentation":"<p>The high-level information about a rule groups namespace. To retrieve more information, use <code>DescribeRuleGroupsNamespace</code>.</p>"
    },
    "RuleGroupsNamespaceSummaryList":{
      "type":"list",
      "member":{"shape":"RuleGroupsNamespaceSummary"},
      "documentation":"<p>A list of rule groups namespace summary.</p>"
    },
    "ScrapeConfiguration":{
      "type":"structure",
      "members":{
        "configurationBlob":{
          "shape":"Blob",
          "documentation":"<p>The base 64 encoded scrape configuration file.</p>"
        }
      },
      "documentation":"<p>A scrape configuration for a scraper, base 64 encoded. For more information, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration\">Scraper configuration</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>",
      "union":true
    },
    "ScraperAlias":{
      "type":"string",
      "documentation":"<p>An optional user-assigned scraper alias.</p>",
      "max":100,
      "min":1,
      "pattern":"^[0-9A-Za-z][-.0-9A-Z_a-z]*$"
    },
    "ScraperArn":{
      "type":"string",
      "documentation":"<p>An ARN identifying a scrape configuration.</p>"
    },
    "ScraperDescription":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "destination",
        "lastModifiedAt",
        "roleArn",
        "scrapeConfiguration",
        "scraperId",
        "source",
        "status"
      ],
      "members":{
        "alias":{
          "shape":"ScraperAlias",
          "documentation":"<p>(Optional) A name associated with the scraper.</p>"
        },
        "arn":{
          "shape":"ScraperArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scraper. For example, <code>arn:aws:aps:&lt;region&gt;:123456798012:scraper/s-example1-1234-abcd-5678-ef9012abcd34</code>.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the scraper was created.</p>"
        },
        "destination":{
          "shape":"Destination",
          "documentation":"<p>The Amazon Managed Service for Prometheus workspace the scraper sends metrics to.</p>"
        },
        "lastModifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the scraper was last modified.</p>"
        },
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to discover and collect metrics on your behalf.</p> <p>For example, <code>arn:aws:iam::123456789012:role/service-role/AmazonGrafanaServiceRole-12example</code>.</p>"
        },
        "roleConfiguration":{"shape":"RoleConfiguration"},
        "scrapeConfiguration":{
          "shape":"ScrapeConfiguration",
          "documentation":"<p>The configuration in use by the scraper.</p>"
        },
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper. For example, <code>s-example1-1234-abcd-5678-ef9012abcd34</code>.</p>"
        },
        "source":{
          "shape":"Source",
          "documentation":"<p>The Amazon EKS cluster from which the scraper collects metrics.</p>"
        },
        "status":{
          "shape":"ScraperStatus",
          "documentation":"<p>A structure that contains the current status of the scraper.</p>"
        },
        "statusReason":{
          "shape":"StatusReason",
          "documentation":"<p>If there is a failure, the reason for the failure.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>(Optional) The list of tag keys and values associated with the scraper.</p>"
        }
      },
      "documentation":"<p>The <code>ScraperDescription</code> structure contains the full details about one scraper in your account.</p>"
    },
    "ScraperFilters":{
      "type":"map",
      "key":{
        "shape":"FilterKey",
        "documentation":"<p>The name of the key to filter by. Currently supported filter keys are <code>status</code>, <code>sourceArn</code>, <code>destinationArn</code>, and <code>alias</code>.</p>"
      },
      "value":{
        "shape":"FilterValues",
        "documentation":"<p>The values of the given key by which to filter.</p>"
      },
      "documentation":"<p>A list of scraper filters.</p>",
      "max":4,
      "min":1
    },
    "ScraperId":{
      "type":"string",
      "documentation":"<p>A scraper ID.</p>",
      "max":64,
      "min":1,
      "pattern":"^[0-9A-Za-z][-.0-9A-Z_a-z]*$"
    },
    "ScraperStatus":{
      "type":"structure",
      "required":["statusCode"],
      "members":{
        "statusCode":{
          "shape":"ScraperStatusCode",
          "documentation":"<p>The current status of the scraper.</p>"
        }
      },
      "documentation":"<p>The <code>ScraperStatus</code> structure contains status information about the scraper.</p>"
    },
    "ScraperStatusCode":{
      "type":"string",
      "documentation":"<p>State of a scraper.</p>",
      "enum":[
        "CREATING",
        "UPDATING",
        "ACTIVE",
        "DELETING",
        "CREATION_FAILED",
        "UPDATE_FAILED",
        "DELETION_FAILED"
      ]
    },
    "ScraperSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "destination",
        "lastModifiedAt",
        "roleArn",
        "scraperId",
        "source",
        "status"
      ],
      "members":{
        "alias":{
          "shape":"ScraperAlias",
          "documentation":"<p>(Optional) A name associated with the scraper.</p>"
        },
        "arn":{
          "shape":"ScraperArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the scraper.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the scraper was created.</p>"
        },
        "destination":{
          "shape":"Destination",
          "documentation":"<p>The Amazon Managed Service for Prometheus workspace the scraper sends metrics to.</p>"
        },
        "lastModifiedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the scraper was last modified.</p>"
        },
        "roleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to discover and collect metrics on your behalf.</p>"
        },
        "roleConfiguration":{"shape":"RoleConfiguration"},
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper.</p>"
        },
        "source":{
          "shape":"Source",
          "documentation":"<p>The Amazon EKS cluster from which the scraper collects metrics.</p>"
        },
        "status":{
          "shape":"ScraperStatus",
          "documentation":"<p>A structure that contains the current status of the scraper.</p>"
        },
        "statusReason":{
          "shape":"StatusReason",
          "documentation":"<p>If there is a failure, the reason for the failure.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>(Optional) The list of tag keys and values associated with the scraper.</p>"
        }
      },
      "documentation":"<p>The <code>ScraperSummary</code> structure contains a summary of the details about one scraper in your account.</p>"
    },
    "ScraperSummaryList":{
      "type":"list",
      "member":{"shape":"ScraperSummary"},
      "documentation":"<p>A list of scraper summaries.</p>"
    },
    "SecurityGroupId":{
      "type":"string",
      "documentation":"<p>ID of a VPC security group.</p>",
      "max":255,
      "min":0,
      "pattern":"^sg-[0-9a-z]+$"
    },
    "SecurityGroupIds":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "documentation":"<p>A list of security group IDs specified for VPC configuration.</p>",
      "max":5,
      "min":1
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":[
        "message",
        "quotaCode",
        "resourceId",
        "resourceType",
        "serviceCode"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Service quotas code of the originating quota.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the resource affected.</p>"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Service quotas code for the originating service.</p>"
        }
      },
      "documentation":"<p>Completing the request would cause a service quota to be exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "Source":{
      "type":"structure",
      "members":{
        "eksConfiguration":{
          "shape":"EksConfiguration",
          "documentation":"<p>The Amazon EKS cluster from which a scraper collects metrics.</p>"
        }
      },
      "documentation":"<p>The source of collected metrics for a scraper.</p>",
      "union":true
    },
    "StatusReason":{
      "type":"string",
      "documentation":"<p>The reason for the failure, if any.</p>",
      "max":256,
      "min":1
    },
    "String":{"type":"string"},
    "SubnetId":{
      "type":"string",
      "documentation":"<p>ID of a VPC subnet.</p>",
      "max":255,
      "min":0,
      "pattern":"^subnet-[0-9a-z]+$"
    },
    "SubnetIds":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "documentation":"<p>A list of subnet IDs specified for VPC configuration.</p>",
      "max":5,
      "min":1
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagMap":{
      "type":"map",
      "key":{
        "shape":"TagKey",
        "documentation":"<p>The key of the tag. Must not begin with <code>aws:</code>.</p>"
      },
      "value":{
        "shape":"TagValue",
        "documentation":"<p>The value of the tag.</p>"
      },
      "documentation":"<p>A tag associated with a resource.</p>",
      "max":50,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The ARN of the resource to apply tags to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values to associate with the resource.</p> <p>Keys must not begin with <code>aws:</code>.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Service quotas code for the originating quota.</p>"
        },
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Advice to clients on when the call can be safely retried.</p>",
          "location":"header",
          "locationName":"Retry-After"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Service quotas code for the originating service.</p>"
        }
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "Timestamp":{"type":"timestamp"},
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The ARN of the resource from which to remove a tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>The keys of the tags to remove.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateLoggingConfigurationRequest":{
      "type":"structure",
      "required":[
        "logGroupArn",
        "workspaceId"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "logGroupArn":{
          "shape":"LogGroupArn",
          "documentation":"<p>The ARN of the CloudWatch log group to which the vended log data will be published.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to update the logging configuration for.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of an <code>UpdateLoggingConfiguration</code> operation.</p>"
    },
    "UpdateLoggingConfigurationResponse":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"LoggingConfigurationStatus",
          "documentation":"<p>A structure that contains the current status of the logging configuration.</p>"
        }
      },
      "documentation":"<p>Represents the output of an <code>UpdateLoggingConfiguration</code> operation.</p>"
    },
    "UpdateScraperRequest":{
      "type":"structure",
      "required":["scraperId"],
      "members":{
        "alias":{
          "shape":"ScraperAlias",
          "documentation":"<p>The new alias of the scraper.</p>"
        },
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "destination":{
          "shape":"Destination",
          "documentation":"<p>The new Amazon Managed Service for Prometheus workspace to send metrics to.</p>"
        },
        "roleConfiguration":{
          "shape":"RoleConfiguration",
          "documentation":"<p>The scraper role configuration for the workspace.</p>"
        },
        "scrapeConfiguration":{
          "shape":"ScrapeConfiguration",
          "documentation":"<p>Contains the base-64 encoded YAML configuration for the scraper.</p> <note> <p>For more information about configuring a scraper, see <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html\">Using an Amazon Web Services managed collector</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p> </note>"
        },
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the scraper to update.</p>",
          "location":"uri",
          "locationName":"scraperId"
        }
      }
    },
    "UpdateScraperResponse":{
      "type":"structure",
      "required":[
        "arn",
        "scraperId",
        "status"
      ],
      "members":{
        "arn":{
          "shape":"ScraperArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated scraper.</p>"
        },
        "scraperId":{
          "shape":"ScraperId",
          "documentation":"<p>The ID of the updated scraper.</p>"
        },
        "status":{
          "shape":"ScraperStatus",
          "documentation":"<p>A structure that displays the current status of the scraper.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the scraper.</p>"
        }
      }
    },
    "UpdateWorkspaceAliasRequest":{
      "type":"structure",
      "required":["workspaceId"],
      "members":{
        "alias":{
          "shape":"WorkspaceAlias",
          "documentation":"<p>The new alias for the workspace. It does not need to be unique.</p> <p>Amazon Managed Service for Prometheus will automatically strip any blank spaces from the beginning and end of the alias that you specify.</p>"
        },
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>A unique identifier that you can provide to ensure the idempotency of the request. Case-sensitive.</p>",
          "idempotencyToken":true
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The ID of the workspace to update.</p>",
          "location":"uri",
          "locationName":"workspaceId"
        }
      },
      "documentation":"<p>Represents the input of an <code>UpdateWorkspaceAlias</code> operation.</p>"
    },
    "Uri":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>The field that caused the error, if applicable.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error.</p>"
        },
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>Reason the request failed validation.</p>"
        }
      },
      "documentation":"<p>The input fails to satisfy the constraints specified by an Amazon Web Services service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "message",
        "name"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing why the field caused an exception.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the field that caused an exception.</p>"
        }
      },
      "documentation":"<p>Information about a field passed into a request that resulted in an exception.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"},
      "documentation":"<p>A list of fields.</p>"
    },
    "ValidationExceptionReason":{
      "type":"string",
      "documentation":"<p>Possible reasons a request failed validation.</p>",
      "enum":[
        "UNKNOWN_OPERATION",
        "CANNOT_PARSE",
        "FIELD_VALIDATION_FAILED",
        "OTHER"
      ]
    },
    "WorkspaceAlias":{
      "type":"string",
      "documentation":"<p>A user-assigned workspace alias.</p>",
      "max":100,
      "min":1
    },
    "WorkspaceArn":{
      "type":"string",
      "documentation":"<p>An ARN identifying a Workspace.</p>",
      "pattern":"^arn:aws[-a-z]*:aps:[-a-z0-9]+:[0-9]{12}:workspace/.+$"
    },
    "WorkspaceDescription":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "status",
        "workspaceId"
      ],
      "members":{
        "alias":{
          "shape":"WorkspaceAlias",
          "documentation":"<p>The alias that is assigned to this workspace to help identify it. It does not need to be unique.</p>"
        },
        "arn":{
          "shape":"WorkspaceArn",
          "documentation":"<p>The ARN of the workspace. For example, <code>arn:aws:aps:&lt;region&gt;:123456789012:workspace/ws-example1-1234-abcd-5678-ef90abcd1234</code>.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the workspace was created.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>(optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.</p>"
        },
        "prometheusEndpoint":{
          "shape":"Uri",
          "documentation":"<p>The Prometheus endpoint available for this workspace. For example, <code>https://aps-workspaces.&lt;region&gt;.amazonaws.com/workspaces/ws-example1-1234-abcd-5678-ef90abcd1234/api/v1/</code>.</p>"
        },
        "status":{
          "shape":"WorkspaceStatus",
          "documentation":"<p>The current status of the workspace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the workspace.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The unique ID for the workspace. For example, <code>ws-example1-1234-abcd-5678-ef90abcd1234</code>.</p>"
        }
      },
      "documentation":"<p>The full details about one Amazon Managed Service for Prometheus workspace in your account.</p>"
    },
    "WorkspaceId":{
      "type":"string",
      "documentation":"<p>A workspace ID.</p>",
      "max":64,
      "min":1,
      "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*"
    },
    "WorkspaceStatus":{
      "type":"structure",
      "required":["statusCode"],
      "members":{
        "statusCode":{
          "shape":"WorkspaceStatusCode",
          "documentation":"<p>The current status of the workspace.</p>"
        }
      },
      "documentation":"<p>The status of the workspace.</p>"
    },
    "WorkspaceStatusCode":{
      "type":"string",
      "documentation":"<p>State of a workspace.</p>",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "CREATION_FAILED"
      ]
    },
    "WorkspaceSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createdAt",
        "status",
        "workspaceId"
      ],
      "members":{
        "alias":{
          "shape":"WorkspaceAlias",
          "documentation":"<p>The alias that is assigned to this workspace to help identify it. It does not need to be unique.</p>"
        },
        "arn":{
          "shape":"WorkspaceArn",
          "documentation":"<p>The ARN of the workspace.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the workspace was created.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>(optional) If the workspace was created with a customer managed KMS key, the ARN for the key used.</p>"
        },
        "status":{
          "shape":"WorkspaceStatus",
          "documentation":"<p>The current status of the workspace.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The list of tag keys and values that are associated with the workspace.</p>"
        },
        "workspaceId":{
          "shape":"WorkspaceId",
          "documentation":"<p>The unique ID for the workspace.</p>"
        }
      },
      "documentation":"<p>The information about one Amazon Managed Service for Prometheus workspace in your account. </p>"
    },
    "WorkspaceSummaryList":{
      "type":"list",
      "member":{"shape":"WorkspaceSummary"},
      "documentation":"<p>A list of workspace summaries.</p>"
    }
  },
  "documentation":"<p>Amazon Managed Service for Prometheus is a serverless, Prometheus-compatible monitoring service for container metrics that makes it easier to securely monitor container environments at scale. With Amazon Managed Service for Prometheus, you can use the same open-source Prometheus data model and query language that you use today to monitor the performance of your containerized workloads, and also enjoy improved scalability, availability, and security without having to manage the underlying infrastructure.</p> <p>For more information about Amazon Managed Service for Prometheus, see the <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html\">Amazon Managed Service for Prometheus</a> User Guide.</p> <p>Amazon Managed Service for Prometheus includes two APIs.</p> <ul> <li> <p>Use the Amazon Web Services API described in this guide to manage Amazon Managed Service for Prometheus resources, such as workspaces, rule groups, and alert managers.</p> </li> <li> <p>Use the <a href=\"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-APIReference.html#AMP-APIReference-Prometheus-Compatible-Apis\">Prometheus-compatible API</a> to work within your Prometheus workspace.</p> </li> </ul>"
}
