{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-05-10",
    "endpointPrefix":"artifact",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"AWS Artifact",
    "serviceId":"Artifact",
    "signatureVersion":"v4",
    "signingName":"artifact",
    "uid":"artifact-2018-05-10"
  },
  "operations":{
    "GetAccountSettings":{
      "name":"GetAccountSettings",
      "http":{
        "method":"GET",
        "requestUri":"/v1/account-settings/get",
        "responseCode":200
      },
      "input":{"shape":"GetAccountSettingsRequest"},
      "output":{"shape":"GetAccountSettingsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Get the account settings for Artifact.</p>"
    },
    "GetReport":{
      "name":"GetReport",
      "http":{
        "method":"GET",
        "requestUri":"/v1/report/get",
        "responseCode":200
      },
      "input":{"shape":"GetReportRequest"},
      "output":{"shape":"GetReportResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Get the content for a single report.</p>"
    },
    "GetReportMetadata":{
      "name":"GetReportMetadata",
      "http":{
        "method":"GET",
        "requestUri":"/v1/report/getMetadata",
        "responseCode":200
      },
      "input":{"shape":"GetReportMetadataRequest"},
      "output":{"shape":"GetReportMetadataResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Get the metadata for a single report.</p>"
    },
    "GetTermForReport":{
      "name":"GetTermForReport",
      "http":{
        "method":"GET",
        "requestUri":"/v1/report/getTermForReport",
        "responseCode":200
      },
      "input":{"shape":"GetTermForReportRequest"},
      "output":{"shape":"GetTermForReportResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Get the Term content associated with a single report.</p>"
    },
    "ListReports":{
      "name":"ListReports",
      "http":{
        "method":"GET",
        "requestUri":"/v1/report/list",
        "responseCode":200
      },
      "input":{"shape":"ListReportsRequest"},
      "output":{"shape":"ListReportsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>List available reports.</p>"
    },
    "PutAccountSettings":{
      "name":"PutAccountSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/v1/account-settings/put",
        "responseCode":200
      },
      "input":{"shape":"PutAccountSettingsRequest"},
      "output":{"shape":"PutAccountSettingsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Put the account settings for Artifact.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AcceptanceType":{
      "type":"string",
      "enum":[
        "PASSTHROUGH",
        "EXPLICIT"
      ]
    },
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>User does not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountSettings":{
      "type":"structure",
      "members":{
        "notificationSubscriptionStatus":{
          "shape":"NotificationSubscriptionStatus",
          "documentation":"<p>Notification subscription status of the customer.</p>"
        }
      },
      "documentation":"<p>Account settings for the customer.</p>"
    },
    "ConflictException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the affected resource.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the affected resource.</p>"
        }
      },
      "documentation":"<p>Request to create/modify content would result in a conflict.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "GetAccountSettingsRequest":{
      "type":"structure",
      "members":{
      }
    },
    "GetAccountSettingsResponse":{
      "type":"structure",
      "members":{
        "accountSettings":{"shape":"AccountSettings"}
      }
    },
    "GetReportMetadataRequest":{
      "type":"structure",
      "required":["reportId"],
      "members":{
        "reportId":{
          "shape":"ReportId",
          "documentation":"<p>Unique resource ID for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportId"
        },
        "reportVersion":{
          "shape":"VersionAttribute",
          "documentation":"<p>Version for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportVersion"
        }
      }
    },
    "GetReportMetadataResponse":{
      "type":"structure",
      "members":{
        "reportDetails":{
          "shape":"ReportDetail",
          "documentation":"<p>Report resource detail.</p>"
        }
      }
    },
    "GetReportRequest":{
      "type":"structure",
      "required":[
        "reportId",
        "termToken"
      ],
      "members":{
        "reportId":{
          "shape":"ReportId",
          "documentation":"<p>Unique resource ID for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportId"
        },
        "reportVersion":{
          "shape":"VersionAttribute",
          "documentation":"<p>Version for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportVersion"
        },
        "termToken":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Unique download token provided by GetTermForReport API.</p>",
          "location":"querystring",
          "locationName":"termToken"
        }
      }
    },
    "GetReportResponse":{
      "type":"structure",
      "members":{
        "documentPresignedUrl":{
          "shape":"GetReportResponseDocumentPresignedUrlString",
          "documentation":"<p>Presigned S3 url to access the report content.</p>"
        }
      }
    },
    "GetReportResponseDocumentPresignedUrlString":{
      "type":"string",
      "max":10240,
      "min":1
    },
    "GetTermForReportRequest":{
      "type":"structure",
      "required":["reportId"],
      "members":{
        "reportId":{
          "shape":"ReportId",
          "documentation":"<p>Unique resource ID for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportId"
        },
        "reportVersion":{
          "shape":"VersionAttribute",
          "documentation":"<p>Version for the report resource.</p>",
          "location":"querystring",
          "locationName":"reportVersion"
        }
      }
    },
    "GetTermForReportResponse":{
      "type":"structure",
      "members":{
        "documentPresignedUrl":{
          "shape":"GetTermForReportResponseDocumentPresignedUrlString",
          "documentation":"<p>Presigned S3 url to access the term content.</p>"
        },
        "termToken":{
          "shape":"String",
          "documentation":"<p>Unique token representing this request event.</p>"
        }
      }
    },
    "GetTermForReportResponseDocumentPresignedUrlString":{
      "type":"string",
      "max":10240,
      "min":1
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Number of seconds in which the caller can retry the request.</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>An unknown server exception has occurred.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "ListReportsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResultsAttribute",
          "documentation":"<p>Maximum number of resources to return in the paginated response.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextTokenAttribute",
          "documentation":"<p>Pagination token to request the next page of resources.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListReportsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextTokenAttribute",
          "documentation":"<p>Pagination token to request the next page of resources.</p>"
        },
        "reports":{
          "shape":"ReportsList",
          "documentation":"<p>List of report resources.</p>"
        }
      }
    },
    "LongStringAttribute":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"^[^<>]*$"
    },
    "MaxResultsAttribute":{
      "type":"integer",
      "box":true,
      "max":300,
      "min":1
    },
    "NextTokenAttribute":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "NotificationSubscriptionStatus":{
      "type":"string",
      "enum":[
        "SUBSCRIBED",
        "NOT_SUBSCRIBED"
      ]
    },
    "PublishedState":{
      "type":"string",
      "enum":[
        "PUBLISHED",
        "UNPUBLISHED"
      ]
    },
    "PutAccountSettingsRequest":{
      "type":"structure",
      "members":{
        "notificationSubscriptionStatus":{
          "shape":"NotificationSubscriptionStatus",
          "documentation":"<p>Desired notification subscription status.</p>"
        }
      }
    },
    "PutAccountSettingsResponse":{
      "type":"structure",
      "members":{
        "accountSettings":{"shape":"AccountSettings"}
      }
    },
    "ReportDetail":{
      "type":"structure",
      "members":{
        "acceptanceType":{
          "shape":"AcceptanceType",
          "documentation":"<p>Acceptance type for report.</p>"
        },
        "arn":{
          "shape":"LongStringAttribute",
          "documentation":"<p>ARN for the report resource.</p>"
        },
        "category":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Category for the report resource.</p>"
        },
        "companyName":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Associated company name for the report resource.</p>"
        },
        "createdAt":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating when the report resource was created.</p>"
        },
        "deletedAt":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating when the report resource was deleted.</p>"
        },
        "description":{
          "shape":"LongStringAttribute",
          "documentation":"<p>Description for the report resource.</p>"
        },
        "id":{
          "shape":"ReportId",
          "documentation":"<p>Unique resource ID for the report resource.</p>"
        },
        "lastModifiedAt":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating when the report resource was last modified.</p>"
        },
        "name":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Name for the report resource.</p>"
        },
        "periodEnd":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating the report resource effective end.</p>"
        },
        "periodStart":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating the report resource effective start.</p>"
        },
        "productName":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Associated product name for the report resource.</p>"
        },
        "sequenceNumber":{
          "shape":"SequenceNumberAttribute",
          "documentation":"<p>Sequence number to enforce optimistic locking.</p>"
        },
        "series":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Series for the report resource.</p>"
        },
        "state":{
          "shape":"PublishedState",
          "documentation":"<p>Current state of the report resource</p>"
        },
        "statusMessage":{
          "shape":"StatusMessage",
          "documentation":"<p>The message associated with the current upload state.</p>"
        },
        "termArn":{
          "shape":"LongStringAttribute",
          "documentation":"<p>Unique resource ARN for term resource.</p>"
        },
        "uploadState":{
          "shape":"UploadState",
          "documentation":"<p>The current state of the document upload.</p>"
        },
        "version":{
          "shape":"VersionAttribute",
          "documentation":"<p>Version for the report resource.</p>"
        }
      },
      "documentation":"<p>Full detail for report resource metadata.</p>"
    },
    "ReportId":{
      "type":"string",
      "pattern":"^report-[a-zA-Z0-9]{16}$"
    },
    "ReportSummary":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"LongStringAttribute",
          "documentation":"<p>ARN for the report resource.</p>"
        },
        "category":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Category for the report resource.</p>"
        },
        "companyName":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Associated company name for the report resource.</p>"
        },
        "description":{
          "shape":"LongStringAttribute",
          "documentation":"<p>Description for the report resource.</p>"
        },
        "id":{
          "shape":"ReportId",
          "documentation":"<p>Unique resource ID for the report resource.</p>"
        },
        "name":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Name for the report resource.</p>"
        },
        "periodEnd":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating the report resource effective end.</p>"
        },
        "periodStart":{
          "shape":"TimestampAttribute",
          "documentation":"<p>Timestamp indicating the report resource effective start.</p>"
        },
        "productName":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Associated product name for the report resource.</p>"
        },
        "series":{
          "shape":"ShortStringAttribute",
          "documentation":"<p>Series for the report resource.</p>"
        },
        "state":{
          "shape":"PublishedState",
          "documentation":"<p>Current state of the report resource.</p>"
        },
        "statusMessage":{
          "shape":"StatusMessage",
          "documentation":"<p>The message associated with the current upload state.</p>"
        },
        "uploadState":{
          "shape":"UploadState",
          "documentation":"<p>The current state of the document upload.</p>"
        },
        "version":{
          "shape":"VersionAttribute",
          "documentation":"<p>Version for the report resource.</p>"
        }
      },
      "documentation":"<p>Summary for report resource.</p>"
    },
    "ReportsList":{
      "type":"list",
      "member":{"shape":"ReportSummary"}
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the affected resource.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the affected resource.</p>"
        }
      },
      "documentation":"<p>Request references a resource which does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "SequenceNumberAttribute":{
      "type":"long",
      "box":true,
      "min":1
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":[
        "message",
        "quotaCode",
        "resourceId",
        "resourceType",
        "serviceCode"
      ],
      "members":{
        "message":{"shape":"String"},
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Code for the affected quota.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the affected resource.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the affected resource.</p>"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Code for the affected service.</p>"
        }
      },
      "documentation":"<p>Request would cause a service quota to be exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "ShortStringAttribute":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"^[a-zA-Z0-9_\\-\\s]*$"
    },
    "StatusMessage":{"type":"string"},
    "String":{"type":"string"},
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Code for the affected quota.</p>"
        },
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Number of seconds in which the caller can retry the request.</p>",
          "location":"header",
          "locationName":"Retry-After"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Code for the affected service.</p>"
        }
      },
      "documentation":"<p>Request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":true}
    },
    "TimestampAttribute":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "UploadState":{
      "type":"string",
      "enum":[
        "PROCESSING",
        "COMPLETE",
        "FAILED",
        "FAULT"
      ]
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>The field that caused the error, if applicable.</p>"
        },
        "message":{"shape":"String"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>Reason the request failed validation.</p>"
        }
      },
      "documentation":"<p>Request fails to satisfy the constraints specified by an AWS service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "message",
        "name"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Message describing why the field failed validation.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>Name of validation exception.</p>"
        }
      },
      "documentation":"<p>Validation exception message and name.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "unknownOperation",
        "cannotParse",
        "fieldValidationFailed",
        "invalidToken",
        "other"
      ]
    },
    "VersionAttribute":{
      "type":"long",
      "box":true,
      "min":1
    }
  },
  "documentation":"<p>This reference provides descriptions of the low-level AWS Artifact Service API.</p>"
}
