{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2025-09-26",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"sdb",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon SimpleDB v2",
    "serviceId":"SimpleDBv2",
    "signatureVersion":"v4",
    "signingName":"sdb",
    "uid":"simpledbv2-2025-09-26"
  },
  "operations":{
    "GetExport":{
      "name":"GetExport",
      "http":{
        "method":"POST",
        "requestUri":"/v2/GetExport",
        "responseCode":200
      },
      "input":{"shape":"GetExportRequest"},
      "output":{"shape":"GetExportResponse"},
      "errors":[
        {"shape":"NoSuchExportException"},
        {"shape":"InvalidParameterValueException"}
      ],
      "documentation":"<p>Returns information for an existing domain export.</p>",
      "readonly":true
    },
    "ListExports":{
      "name":"ListExports",
      "http":{
        "method":"POST",
        "requestUri":"/v2/ListExports",
        "responseCode":200
      },
      "input":{"shape":"ListExportsRequest"},
      "output":{"shape":"ListExportsResponse"},
      "errors":[
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterValueException"},
        {"shape":"NoSuchDomainException"}
      ],
      "documentation":"<p>Lists all exports that were created. The results are paginated and can be filtered by domain name.</p>",
      "readonly":true
    },
    "StartDomainExport":{
      "name":"StartDomainExport",
      "http":{
        "method":"POST",
        "requestUri":"/v2/StartDomainExport",
        "responseCode":200
      },
      "input":{"shape":"StartDomainExportRequest"},
      "output":{"shape":"StartDomainExportResponse"},
      "errors":[
        {"shape":"InvalidParameterCombinationException"},
        {"shape":"InvalidParameterValueException"},
        {"shape":"ConflictException"},
        {"shape":"NumberExportsLimitExceeded"},
        {"shape":"NoSuchDomainException"}
      ],
      "documentation":"<p>Initiates the export of a SimpleDB domain to an S3 bucket.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AwsAccountId":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Indicates a conflict with one or more parameters of the request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "DomainName":{
      "type":"string",
      "documentation":"<p>The domain name that uniquely identifies a SimpleDB domain within your account.</p>",
      "min":1
    },
    "ExportArn":{
      "type":"string",
      "documentation":"<p>A unique ARN identifier for the export.</p>",
      "max":2048,
      "min":20
    },
    "ExportDataCutoffTime":{"type":"timestamp"},
    "ExportManifestSummary":{
      "type":"string",
      "min":1
    },
    "ExportStatus":{
      "type":"string",
      "documentation":"<p>The current state of the export. Current possible values include : PENDING - export request received, IN_PROGRESS - export is being processed, SUCCEEDED - export completed successfully, and FAILED - export encountered an error.</p>",
      "enum":[
        "PENDING",
        "IN_PROGRESS",
        "SUCCEEDED",
        "FAILED"
      ]
    },
    "ExportSummaries":{
      "type":"list",
      "member":{"shape":"ExportSummary"},
      "documentation":"<p>List of export summaries containing export ARN, status, creation timestamp, and associated domain name.</p>",
      "min":0
    },
    "ExportSummary":{
      "type":"structure",
      "required":[
        "exportArn",
        "exportStatus",
        "requestedAt",
        "domainName"
      ],
      "members":{
        "exportArn":{
          "shape":"ExportArn",
          "documentation":"<p>Unique ARN identifier of the export.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The current state of the export. Current possible values include : PENDING - export request received, IN_PROGRESS - export is being processed, SUCCEEDED - export completed successfully, and FAILED - export encountered an error.</p>"
        },
        "requestedAt":{
          "shape":"RequestedAt",
          "documentation":"<p>Timestamp when the export request was received by the service</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The name of the domain for which the export was created.</p>"
        }
      },
      "documentation":"<p>Summary information about an export, including its unique identifier, current status, creation time, and the domain being exported.</p>"
    },
    "FailureCode":{
      "type":"string",
      "min":1,
      "pattern":"[a-zA-Z0-9]+"
    },
    "FailureMessage":{
      "type":"string",
      "min":1
    },
    "GetExportRequest":{
      "type":"structure",
      "required":["exportArn"],
      "members":{
        "exportArn":{
          "shape":"ExportArn",
          "documentation":"<p>Unique ARN identifier of the export.</p>"
        }
      }
    },
    "GetExportResponse":{
      "type":"structure",
      "required":[
        "exportArn",
        "clientToken",
        "exportStatus",
        "domainName",
        "requestedAt",
        "s3Bucket"
      ],
      "members":{
        "exportArn":{
          "shape":"ExportArn",
          "documentation":"<p>Unique ARN identifier of the export.</p>"
        },
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>The client token provided for this export.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The current state of the export. Current possible values include : PENDING - export request received, IN_PROGRESS - export is being processed, SUCCEEDED - export completed successfully, and FAILED - export encountered an error.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The name of the domain that was exported.</p>"
        },
        "requestedAt":{
          "shape":"RequestedAt",
          "documentation":"<p>Timestamp when the export request was received by the service.</p>"
        },
        "s3Bucket":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the S3 bucket for this export.</p>"
        },
        "s3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The S3 key prefix provided in the corresponding StartDomainExport request.</p>"
        },
        "s3SseAlgorithm":{
          "shape":"S3SseAlgorithm",
          "documentation":"<p>The S3 SSE encryption algorithm for this export.</p>"
        },
        "s3SseKmsKeyId":{
          "shape":"S3SseKmsKeyId",
          "documentation":"<p>The KMS key ID for this export.</p>"
        },
        "s3BucketOwner":{
          "shape":"AwsAccountId",
          "documentation":"<p>The S3 bucket owner account ID for this export.</p>"
        },
        "failureCode":{
          "shape":"FailureCode",
          "documentation":"<p>Failure code for the result of the failed export.</p>"
        },
        "failureMessage":{
          "shape":"FailureMessage",
          "documentation":"<p>Export failure reason description.</p>"
        },
        "exportManifest":{
          "shape":"ExportManifestSummary",
          "documentation":"<p>The name of the manifest summary file for the export.</p>"
        },
        "itemsCount":{
          "shape":"ItemsCount",
          "documentation":"<p>Total number of exported items.</p>"
        },
        "exportDataCutoffTime":{
          "shape":"ExportDataCutoffTime",
          "documentation":"<p>The timestamp indicating the cutoff point for data inclusion in the export. All data inserted or modified before this time will be present in the exported data. Data insertions or modifications after this timestamp may or may not be present in the export.</p>"
        }
      }
    },
    "IdempotencyToken":{
      "type":"string",
      "min":1
    },
    "InvalidNextTokenException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified next token is not valid.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "InvalidParameterCombinationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Parameters that must not be used together were used together in the request.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "InvalidParameterValueException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified parameter value is not valid.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ItemsCount":{
      "type":"long",
      "box":true,
      "min":0
    },
    "ListExportsRequest":{
      "type":"structure",
      "members":{
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The name of the domain to filter exports. If not provided, exports for all the domains will be listed.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of exports to return in a single response.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token used to retrieve the next page of results. This token is obtained from the nextToken field in the previous ListExportsResponse. Leave empty for the first request.</p>"
        }
      }
    },
    "ListExportsResponse":{
      "type":"structure",
      "required":["exportSummaries"],
      "members":{
        "exportSummaries":{
          "shape":"ExportSummaries",
          "documentation":"<p>List of export summaries containing export ARN, status, request timestamp, and associated domain name.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A pagination token indicating that more results are available. To retrieve the next page of results, provide this token in a subsequent ListExports request. If null or empty, there are no more results to retrieve.</p>"
        }
      }
    },
    "MaxResults":{
      "type":"integer",
      "documentation":"<p>The maximum number of results to return in a single response. Note: The actual number of results returned might be less than the specified maxResults.</p>",
      "box":true,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "documentation":"<p>A pagination token used for retrieving subsequent pages of results.</p>",
      "max":2048,
      "min":1
    },
    "NoSuchDomainException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified domain does not exist.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "NoSuchExportException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Export with specified ARN does not exist.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "NumberExportsLimitExceeded":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Cannot start export as export quota limit was exceeded</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "RequestedAt":{
      "type":"timestamp",
      "documentation":"<p>Timestamp when the export (or any other operation) was requested.</p>"
    },
    "S3BucketName":{
      "type":"string",
      "max":255,
      "min":3,
      "pattern":"[a-z0-9A-Z]+[\\.\\-\\w]*[a-z0-9A-Z]+"
    },
    "S3KeyPrefix":{
      "type":"string",
      "max":850,
      "min":1
    },
    "S3SseAlgorithm":{
      "type":"string",
      "enum":[
        "AES256",
        "KMS"
      ]
    },
    "S3SseKmsKeyId":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "StartDomainExportRequest":{
      "type":"structure",
      "required":[
        "domainName",
        "s3Bucket"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>Providing a ClientToken makes the call to StartDomainExport API idempotent, meaning that multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it is completed. After 8 hours, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 8 hours, or the result might not be idempotent. If you submit a request with the same client token but a change in other parameters within the 8-hour idempotency window, a ConflictException will be returned.</p>",
          "idempotencyToken":true
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The name of the domain to export.</p>"
        },
        "s3Bucket":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the S3 bucket where the domain data will be exported.</p>"
        },
        "s3KeyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The prefix string to be used to generate the S3 object keys for export artifacts.</p>"
        },
        "s3SseAlgorithm":{
          "shape":"S3SseAlgorithm",
          "documentation":"<p>The server-side encryption algorithm to use for the exported data in S3. Valid values are: AES256 (SSE-S3) and KMS (SSE-KMS). If not specified, bucket's default encryption will apply.</p>"
        },
        "s3SseKmsKeyId":{
          "shape":"S3SseKmsKeyId",
          "documentation":"<p>The KMS key ID to use for server-side encryption with AWS KMS-managed keys (SSE-KMS). This parameter is only expected with KMS as the S3 SSE algorithm.</p>"
        },
        "s3BucketOwner":{
          "shape":"AwsAccountId",
          "documentation":"<p>The ID of the AWS account that owns the bucket the export will be stored in.</p>"
        }
      }
    },
    "StartDomainExportResponse":{
      "type":"structure",
      "required":[
        "clientToken",
        "exportArn",
        "requestedAt"
      ],
      "members":{
        "clientToken":{
          "shape":"IdempotencyToken",
          "documentation":"<p>The client token that was provided in the request.</p>"
        },
        "exportArn":{
          "shape":"ExportArn",
          "documentation":"<p>Unique ARN identifier of the export.</p>"
        },
        "requestedAt":{
          "shape":"RequestedAt",
          "documentation":"<p>Timestamp when the export request was received by the service.</p>"
        }
      }
    },
    "String":{"type":"string"}
  },
  "documentation":"<p>Amazon SimpleDB is a web service providing the core database functions of data indexing and querying in the cloud. By offloading the time and effort associated with building and operating a web-scale database, SimpleDB provides developers the freedom to focus on application development.</p> <pre><code> A traditional, clustered relational database requires a sizable upfront capital outlay, is complex to design, and often requires extensive and repetitive database administration. Amazon SimpleDB is dramatically simpler, requiring no schema, automatically indexing your data and providing a simple API for storage and access. This approach eliminates the administrative burden of data modeling, index maintenance, and performance tuning. Developers gain access to this functionality within Amazon's proven computing environment, are able to scale instantly, and pay only for what they use. </code></pre>"
}
