{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-05-10",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"observabilityadmin",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"CloudWatch Observability Admin Service",
    "serviceId":"ObservabilityAdmin",
    "signatureVersion":"v4",
    "signingName":"observabilityadmin",
    "uid":"observabilityadmin-2018-05-10"
  },
  "operations":{
    "GetTelemetryEvaluationStatus":{
      "name":"GetTelemetryEvaluationStatus",
      "http":{
        "method":"POST",
        "requestUri":"/GetTelemetryEvaluationStatus",
        "responseCode":200
      },
      "output":{"shape":"GetTelemetryEvaluationStatusOutput"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p> Returns the current onboarding status of the telemetry config feature, including the status of the feature and reason the feature failed to start or stop. </p>"
    },
    "GetTelemetryEvaluationStatusForOrganization":{
      "name":"GetTelemetryEvaluationStatusForOrganization",
      "http":{
        "method":"POST",
        "requestUri":"/GetTelemetryEvaluationStatusForOrganization",
        "responseCode":200
      },
      "output":{"shape":"GetTelemetryEvaluationStatusForOrganizationOutput"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> This returns the onboarding status of the telemetry configuration feature for the organization. It can only be called by a Management Account of an AWS Organization or an assigned Delegated Admin Account of AWS CloudWatch telemetry config. </p>"
    },
    "ListResourceTelemetry":{
      "name":"ListResourceTelemetry",
      "http":{
        "method":"POST",
        "requestUri":"/ListResourceTelemetry",
        "responseCode":200
      },
      "input":{"shape":"ListResourceTelemetryInput"},
      "output":{"shape":"ListResourceTelemetryOutput"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of telemetry configurations for AWS resources supported by telemetry config. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/telemetry-config-cloudwatch.html\">Auditing CloudWatch telemetry configurations</a>. </p>"
    },
    "ListResourceTelemetryForOrganization":{
      "name":"ListResourceTelemetryForOrganization",
      "http":{
        "method":"POST",
        "requestUri":"/ListResourceTelemetryForOrganization",
        "responseCode":200
      },
      "input":{"shape":"ListResourceTelemetryForOrganizationInput"},
      "output":{"shape":"ListResourceTelemetryForOrganizationOutput"},
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> Returns a list of telemetry configurations for AWS resources supported by telemetry config in the organization. </p>"
    },
    "StartTelemetryEvaluation":{
      "name":"StartTelemetryEvaluation",
      "http":{
        "method":"POST",
        "requestUri":"/StartTelemetryEvaluation",
        "responseCode":200
      },
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> This action begins onboarding onboarding the caller AWS account to the telemetry config feature. </p>"
    },
    "StartTelemetryEvaluationForOrganization":{
      "name":"StartTelemetryEvaluationForOrganization",
      "http":{
        "method":"POST",
        "requestUri":"/StartTelemetryEvaluationForOrganization",
        "responseCode":200
      },
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> This actions begins onboarding the organization and all member accounts to the telemetry config feature. </p>"
    },
    "StopTelemetryEvaluation":{
      "name":"StopTelemetryEvaluation",
      "http":{
        "method":"POST",
        "requestUri":"/StopTelemetryEvaluation",
        "responseCode":200
      },
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> This action begins offboarding the caller AWS account from the telemetry config feature. </p>"
    },
    "StopTelemetryEvaluationForOrganization":{
      "name":"StopTelemetryEvaluationForOrganization",
      "http":{
        "method":"POST",
        "requestUri":"/StopTelemetryEvaluationForOrganization",
        "responseCode":200
      },
      "errors":[
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p> This action offboards the Organization of the caller AWS account from thef telemetry config feature. </p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"},
        "amznErrorType":{
          "shape":"String",
          "documentation":"<p> The name of the exception. </p>",
          "location":"header",
          "locationName":"x-amzn-ErrorType"
        }
      },
      "documentation":"<p> Indicates you don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html\">Access management for AWS resources</a> in the IAM user guide. </p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "AccountIdentifier":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[0-9]{12}"
    },
    "AccountIdentifiers":{
      "type":"list",
      "member":{"shape":"AccountIdentifier"},
      "max":10,
      "min":0
    },
    "FailureReason":{"type":"string"},
    "GetTelemetryEvaluationStatusForOrganizationOutput":{
      "type":"structure",
      "members":{
        "Status":{
          "shape":"Status",
          "documentation":"<p> The onboarding status of the telemetry config feature for the organization. </p>"
        },
        "FailureReason":{
          "shape":"FailureReason",
          "documentation":"<p> This field describes the reason for the failure status. The field will only be populated if <code>Status</code> is <code>FAILED_START</code> or <code>FAILED_STOP</code>. </p>"
        }
      }
    },
    "GetTelemetryEvaluationStatusOutput":{
      "type":"structure",
      "members":{
        "Status":{
          "shape":"Status",
          "documentation":"<p> The onboarding status of the telemetry config feature. </p>"
        },
        "FailureReason":{
          "shape":"FailureReason",
          "documentation":"<p> Describes the reason for the failure status. The field will only be populated if <code>Status</code> is <code>FAILED_START</code> or <code>FAILED_STOP</code>. </p>"
        }
      }
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"},
        "amznErrorType":{
          "shape":"String",
          "documentation":"<p> The name of the exception. </p>",
          "location":"header",
          "locationName":"x-amzn-ErrorType"
        }
      },
      "documentation":"<p> Indicates the request has failed to process because of an unknown server error, exception, or failure. </p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "ListResourceTelemetryForOrganizationInput":{
      "type":"structure",
      "members":{
        "AccountIdentifiers":{
          "shape":"AccountIdentifiers",
          "documentation":"<p> A list of AWS account IDs used to filter the resources to those associated with the specified accounts. </p>"
        },
        "ResourceIdentifierPrefix":{
          "shape":"ResourceIdentifierPrefix",
          "documentation":"<p> A string used to filter resources in the organization which have a <code>ResourceIdentifier</code> starting with the <code>ResourceIdentifierPrefix</code>. </p>"
        },
        "ResourceTypes":{
          "shape":"ResourceTypes",
          "documentation":"<p> A list of resource types used to filter resources in the organization. If this parameter is provided, the resources will be returned in the same order used in the request. </p>"
        },
        "TelemetryConfigurationState":{
          "shape":"TelemetryConfigurationState",
          "documentation":"<p> A key-value pair to filter resources in the organization based on the telemetry type and the state of the telemetry configuration. The key is the telemetry type and the value is the state. </p>"
        },
        "ResourceTags":{
          "shape":"TagMapInput",
          "documentation":"<p> A key-value pair to filter resources in the organization based on tags associated with the resource. Fore more information about tags, see <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html\">What are tags?</a> </p>"
        },
        "MaxResults":{
          "shape":"ListResourceTelemetryForOrganizationMaxResults",
          "documentation":"<p> A number field used to limit the number of results within the returned list. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p> The token for the next set of items to return. A previous call provides this token. </p>"
        }
      }
    },
    "ListResourceTelemetryForOrganizationMaxResults":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "ListResourceTelemetryForOrganizationOutput":{
      "type":"structure",
      "members":{
        "TelemetryConfigurations":{
          "shape":"TelemetryConfigurations",
          "documentation":"<p> A list of telemetry configurations for AWS resources supported by telemetry config in the organization. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p> The token for the next set of items to return. A previous call provides this token. </p>"
        }
      }
    },
    "ListResourceTelemetryInput":{
      "type":"structure",
      "members":{
        "ResourceIdentifierPrefix":{
          "shape":"ResourceIdentifierPrefix",
          "documentation":"<p> A string used to filter resources which have a <code>ResourceIdentifier</code> starting with the <code>ResourceIdentifierPrefix</code>. </p>"
        },
        "ResourceTypes":{
          "shape":"ResourceTypes",
          "documentation":"<p> A list of resource types used to filter resources supported by telemetry config. If this parameter is provided, the resources will be returned in the same order used in the request. </p>"
        },
        "TelemetryConfigurationState":{
          "shape":"TelemetryConfigurationState",
          "documentation":"<p> A key-value pair to filter resources based on the telemetry type and the state of the telemetry configuration. The key is the telemetry type and the value is the state. </p>"
        },
        "ResourceTags":{
          "shape":"TagMapInput",
          "documentation":"<p> A key-value pair to filter resources based on tags associated with the resource. For more information about tags, see <a href=\"https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html\">What are tags?</a> </p>"
        },
        "MaxResults":{
          "shape":"ListResourceTelemetryMaxResults",
          "documentation":"<p> A number field used to limit the number of results within the returned list. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p> The token for the next set of items to return. A previous call generates this token. </p>"
        }
      }
    },
    "ListResourceTelemetryMaxResults":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "ListResourceTelemetryOutput":{
      "type":"structure",
      "members":{
        "TelemetryConfigurations":{
          "shape":"TelemetryConfigurations",
          "documentation":"<p> A list of telemetry configurations for AWS resources supported by telemetry config in the caller's account. </p>"
        },
        "NextToken":{
          "shape":"NextToken",
          "documentation":"<p> The token for the next set of items to return. A previous call generates this token. </p>"
        }
      }
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "NextToken":{"type":"string"},
    "ResourceIdentifier":{"type":"string"},
    "ResourceIdentifierPrefix":{
      "type":"string",
      "max":768,
      "min":3
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "AWS::EC2::Instance",
        "AWS::EC2::VPC",
        "AWS::Lambda::Function"
      ]
    },
    "ResourceTypes":{
      "type":"list",
      "member":{"shape":"ResourceType"},
      "max":5,
      "min":1
    },
    "Status":{
      "type":"string",
      "enum":[
        "NOT_STARTED",
        "STARTING",
        "FAILED_START",
        "RUNNING",
        "STOPPING",
        "FAILED_STOP",
        "STOPPED"
      ]
    },
    "String":{"type":"string"},
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "TagMapInput":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":50,
      "min":0
    },
    "TagMapOutput":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "TelemetryConfiguration":{
      "type":"structure",
      "members":{
        "AccountIdentifier":{
          "shape":"AccountIdentifier",
          "documentation":"<p> The account ID which contains the resource managed in telemetry configuration. An example of a valid account ID is <code>012345678901</code>. </p>"
        },
        "TelemetryConfigurationState":{
          "shape":"TelemetryConfigurationState",
          "documentation":"<p> The configuration state for the resource, for example <code>{ Logs: NotApplicable; Metrics: Enabled; Traces: NotApplicable; }</code>. </p>"
        },
        "ResourceType":{
          "shape":"ResourceType",
          "documentation":"<p> The type of resource, for example <code>AWS::EC2::Instance</code>. </p>"
        },
        "ResourceIdentifier":{
          "shape":"ResourceIdentifier",
          "documentation":"<p> The identifier of the resource, for example <code>i-0b22a22eec53b9321</code>. </p>"
        },
        "ResourceTags":{
          "shape":"TagMapOutput",
          "documentation":"<p> Tags associated with the resource, for example <code>{ Name: \"ExampleInstance\", Environment: \"Development\" }</code>. </p>"
        },
        "LastUpdateTimeStamp":{
          "shape":"Long",
          "documentation":"<p> The timestamp of the last change to the telemetry configuration for the resource. For example, <code>1728679196318</code>. </p>"
        }
      },
      "documentation":"<p> A model representing the state of a resource within an account according to telemetry config. </p>"
    },
    "TelemetryConfigurationState":{
      "type":"map",
      "key":{"shape":"TelemetryType"},
      "value":{"shape":"TelemetryState"}
    },
    "TelemetryConfigurations":{
      "type":"list",
      "member":{"shape":"TelemetryConfiguration"}
    },
    "TelemetryState":{
      "type":"string",
      "enum":[
        "Enabled",
        "Disabled",
        "NotApplicable"
      ]
    },
    "TelemetryType":{
      "type":"string",
      "enum":[
        "Logs",
        "Metrics",
        "Traces"
      ]
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"String"}
      },
      "documentation":"<p> Indicates input validation failed. Check your request parameters and retry the request. </p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  },
  "documentation":"<p> Amazon CloudWatch Obsersavability Admin to control temletry config for your AWS Organization or account. Telemetry config conﬁg to discover and understand the state of telemetry conﬁguration for your AWS resources from a central view in the CloudWatch console. Telemetry conﬁg simpliﬁes the process of auditing your telemetry collection conﬁgurations across multiple resource types across your AWS Organization or account. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/telemetry-config-cloudwatch.html\">Auditing CloudWatch telemetry conﬁgurations</a> in the CloudWatch User Guide.</p> <p>For information on the permissions you need to use this API, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html\">Identity and access management for Amazon CloudWatch</a> in the CloudWatch User Guide.</p>"
}
