{
  "version": "2.0",
  "service": "<p>You can use the Amazon Web Services Cost and Usage Report API to programmatically create, query, and delete Amazon Web Services Cost and Usage Report definitions.</p> <p>Amazon Web Services Cost and Usage Report track the monthly Amazon Web Services costs and usage associated with your Amazon Web Services account. The report contains line items for each unique combination of Amazon Web Services product, usage type, and operation that your Amazon Web Services account uses. You can configure the Amazon Web Services Cost and Usage Report to show only the data that you want, using the Amazon Web Services Cost and Usage Report API.</p> <p>Service Endpoint</p> <p>The Amazon Web Services Cost and Usage Report API provides the following endpoint:</p> <ul> <li> <p>cur.us-east-1.amazonaws.com</p> </li> </ul>",
  "operations": {
    "DeleteReportDefinition": "<p>Deletes the specified report. Any tags associated with the report are also deleted.</p>",
    "DescribeReportDefinitions": "<p>Lists the Amazon Web Services Cost and Usage Report available to this account.</p>",
    "ListTagsForResource": "<p>Lists the tags associated with the specified report definition.</p>",
    "ModifyReportDefinition": "<p>Allows you to programmatically update your report preferences.</p>",
    "PutReportDefinition": "<p>Creates a new report using the description that you provide.</p>",
    "TagResource": "<p>Associates a set of tags with a report definition.</p>",
    "UntagResource": "<p>Disassociates a set of tags from a report definition.</p>"
  },
  "shapes": {
    "AWSRegion": {
      "base": "<p>The region of the S3 bucket that Amazon Web Services delivers the report into.</p>",
      "refs": {
        "ReportDefinition$S3Region": null
      }
    },
    "AdditionalArtifact": {
      "base": "<p>The types of manifest that you want Amazon Web Services to create for this report.</p>",
      "refs": {
        "AdditionalArtifactList$member": null
      }
    },
    "AdditionalArtifactList": {
      "base": "<p>A list of additional artifacts.</p>",
      "refs": {
        "ReportDefinition$AdditionalArtifacts": "<p>A list of manifests that you want Amazon Web Services to create for this report.</p>"
      }
    },
    "BillingViewArn": {
      "base": null,
      "refs": {
        "ReportDefinition$BillingViewArn": "<p> The Amazon resource name of the billing view. The <code>BillingViewArn</code> is needed to create Amazon Web Services Cost and Usage Report for each billing group maintained in the Amazon Web Services Billing Conductor service. The <code>BillingViewArn</code> for a billing group can be constructed as: <code>arn:aws:billing::payer-account-id:billingview/billing-group-primary-account-id</code> </p>"
      }
    },
    "CompressionFormat": {
      "base": "<p>The compression format that Amazon Web Services uses for the report.</p>",
      "refs": {
        "ReportDefinition$Compression": null
      }
    },
    "DeleteReportDefinitionRequest": {
      "base": "<p>Deletes the specified report.</p>",
      "refs": {
      }
    },
    "DeleteReportDefinitionResponse": {
      "base": "<p>If the action is successful, the service sends back an HTTP 200 response.</p>",
      "refs": {
      }
    },
    "DeleteResponseMessage": {
      "base": "<p>Whether the deletion was successful or not.</p>",
      "refs": {
        "DeleteReportDefinitionResponse$ResponseMessage": null
      }
    },
    "DescribeReportDefinitionsRequest": {
      "base": "<p>Requests a Amazon Web Services Cost and Usage Report list owned by the account.</p>",
      "refs": {
      }
    },
    "DescribeReportDefinitionsResponse": {
      "base": "<p>If the action is successful, the service sends back an HTTP 200 response.</p>",
      "refs": {
      }
    },
    "DuplicateReportNameException": {
      "base": "<p>A report with the specified name already exists in the account. Specify a different report name.</p>",
      "refs": {
      }
    },
    "ErrorMessage": {
      "base": "<p>A message to show the detail of the exception.</p>",
      "refs": {
        "DuplicateReportNameException$Message": null,
        "InternalErrorException$Message": null,
        "ReportLimitReachedException$Message": null,
        "ResourceNotFoundException$Message": null,
        "ValidationException$Message": null
      }
    },
    "GenericString": {
      "base": "<p>A generic string.</p>",
      "refs": {
        "DescribeReportDefinitionsRequest$NextToken": null,
        "DescribeReportDefinitionsResponse$NextToken": null
      }
    },
    "InternalErrorException": {
      "base": "<p>An error on the server occurred during the processing of your request. Try again later.</p>",
      "refs": {
      }
    },
    "LastDelivery": {
      "base": null,
      "refs": {
        "ReportStatus$lastDelivery": "<p>A timestamp that gives the date of a report delivery.</p>"
      }
    },
    "LastStatus": {
      "base": null,
      "refs": {
        "ReportStatus$lastStatus": "<p>An enum that gives the status of a report delivery.</p>"
      }
    },
    "ListTagsForResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListTagsForResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "MaxResults": {
      "base": "<p>The maximum number of results that Amazon Web Services returns for the operation.</p>",
      "refs": {
        "DescribeReportDefinitionsRequest$MaxResults": null
      }
    },
    "ModifyReportDefinitionRequest": {
      "base": null,
      "refs": {
      }
    },
    "ModifyReportDefinitionResponse": {
      "base": null,
      "refs": {
      }
    },
    "PutReportDefinitionRequest": {
      "base": "<p>Creates a Cost and Usage Report.</p>",
      "refs": {
      }
    },
    "PutReportDefinitionResponse": {
      "base": "<p>If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.</p>",
      "refs": {
      }
    },
    "RefreshClosedReports": {
      "base": null,
      "refs": {
        "ReportDefinition$RefreshClosedReports": "<p>Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.</p>"
      }
    },
    "ReportDefinition": {
      "base": "<p>The definition of Amazon Web Services Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition. </p>",
      "refs": {
        "ModifyReportDefinitionRequest$ReportDefinition": null,
        "PutReportDefinitionRequest$ReportDefinition": "<p>Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information. </p>",
        "ReportDefinitionList$member": null
      }
    },
    "ReportDefinitionList": {
      "base": "<p>A list of report definitions.</p>",
      "refs": {
        "DescribeReportDefinitionsResponse$ReportDefinitions": "<p>An Amazon Web Services Cost and Usage Report list owned by the account.</p>"
      }
    },
    "ReportFormat": {
      "base": "<p>The format that Amazon Web Services saves the report in.</p>",
      "refs": {
        "ReportDefinition$Format": null
      }
    },
    "ReportLimitReachedException": {
      "base": "<p>This account already has five reports defined. To define a new report, you must delete an existing report.</p>",
      "refs": {
      }
    },
    "ReportName": {
      "base": "<p>The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces. </p>",
      "refs": {
        "DeleteReportDefinitionRequest$ReportName": "<p>The name of the report that you want to delete. The name must be unique, is case sensitive, and can't include spaces.</p>",
        "ListTagsForResourceRequest$ReportName": "<p>The report name of the report definition that tags are to be returned for.</p>",
        "ModifyReportDefinitionRequest$ReportName": null,
        "ReportDefinition$ReportName": null,
        "TagResourceRequest$ReportName": "<p>The report name of the report definition that tags are to be associated with.</p>",
        "UntagResourceRequest$ReportName": "<p>The report name of the report definition that tags are to be disassociated from.</p>"
      }
    },
    "ReportStatus": {
      "base": "<p>A two element dictionary with a <code>lastDelivery</code> and <code>lastStatus</code> key whose values describe the date and status of the last delivered report for a particular report definition.</p>",
      "refs": {
        "ReportDefinition$ReportStatus": "<p>The status of the report.</p>"
      }
    },
    "ReportVersioning": {
      "base": null,
      "refs": {
        "ReportDefinition$ReportVersioning": "<p>Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.</p>"
      }
    },
    "ResourceNotFoundException": {
      "base": "<p>The specified report (<code>ReportName</code>) in the request doesn't exist.</p>",
      "refs": {
      }
    },
    "S3Bucket": {
      "base": "<p>The S3 bucket where Amazon Web Services delivers the report.</p>",
      "refs": {
        "ReportDefinition$S3Bucket": null
      }
    },
    "S3Prefix": {
      "base": "<p>The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report. Your prefix can't include spaces.</p>",
      "refs": {
        "ReportDefinition$S3Prefix": null
      }
    },
    "SchemaElement": {
      "base": "<p>Whether or not Amazon Web Services includes resource IDs in the report. </p>",
      "refs": {
        "SchemaElementList$member": null
      }
    },
    "SchemaElementList": {
      "base": "<p>A list of strings that indicate the content that is included in the report, such as service or usage type.</p>",
      "refs": {
        "ReportDefinition$AdditionalSchemaElements": "<p>A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs. </p>"
      }
    },
    "Tag": {
      "base": "<p>Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a report definition.</p>",
      "refs": {
        "TagList$member": null
      }
    },
    "TagKey": {
      "base": null,
      "refs": {
        "Tag$Key": "<p>The key of the tag. Tag keys are case sensitive. Each report definition can only have up to one tag with the same key. If you try to add an existing tag with the same key, the existing tag value will be updated to the new value.</p>",
        "TagKeyList$member": null
      }
    },
    "TagKeyList": {
      "base": null,
      "refs": {
        "UntagResourceRequest$TagKeys": "<p>The tags to be disassociated from the report definition resource.</p>"
      }
    },
    "TagList": {
      "base": null,
      "refs": {
        "ListTagsForResourceResponse$Tags": "<p>The tags assigned to the report definition resource.</p>",
        "PutReportDefinitionRequest$Tags": "<p>The tags to be assigned to the report definition resource.</p>",
        "TagResourceRequest$Tags": "<p>The tags to be assigned to the report definition resource.</p>"
      }
    },
    "TagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "TagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "TagValue": {
      "base": null,
      "refs": {
        "Tag$Value": "<p>The value of the tag. Tag values are case-sensitive. This can be an empty string.</p>"
      }
    },
    "TimeUnit": {
      "base": "<p>The length of time covered by the report. </p>",
      "refs": {
        "ReportDefinition$TimeUnit": null
      }
    },
    "UntagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "UntagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "ValidationException": {
      "base": "<p>The input fails to satisfy the constraints specified by an Amazon Web Services service.</p>",
      "refs": {
      }
    }
  }
}
