{
  "swagger" : "2.0",
  "info" : {
    "description" : "# Overview\nThis document provides information on accessing HiDrive Object Storage via a REST API. With the Amazon S3 compatibility, you can switch to HiDrive Object Storage at any time. The Amazon CLI and SDKs only require a simple adaptation of the server URLs. \n\n# Endpoint\nThe HiDrive Object Storage API endpoints are:\n\n- Name of region: EU (Berlin)\n-  Region: eu-central-1\n-  Endpoint: https://s3.hidrive.strato.com\n-  Protocol: HTTPS\n\nWe support path and subdomain style to access the data.\n\n# Authorization\nFor authorization with the Object Storage servers you need a valid access key and secret. Both can be created in the management console (URL: https://s3.hidrive.strato.com/mgmt/).\n\nSupported signature: Version 2 and 4\n\n# Suppported methods\n\n- GET Object\n- HEAD Object\n- PUT Copy Object\n- PUT Object\n- DELETE Abort Multipart Upload\n- GET List Object Parts\n- POST Complete Multipart Upload\n- DELETE Object\n- OPTIONS Object\n- POST New Multipart Upload\n\n- GET Bucket Location\n- GET Bucket Policy\n- GET Bucket Notification\n- GET List Bucket Notification\n- GET List Multipart Uploads\n- GET List Objects V1\n- GET List Objects V2\n- PUT Bucket Policy\n- PUT Bucket Notification\n- POST Policy\n- DELETE Bucket\n- DELETE Multiple Objects\n- DELETE Bucket Policy\n- PUT Bucket\n- HEAD Bucket\n- GET CORS\n- PUT CORS\n- DELETE CORS\n- HEAD CORS\n\nYou will find the details about the methods below. \n",
    "version" : "2019-03-20",
    "title" : "HiDrive Object Storage API",
    "x-release" : "s3"
  },
  "host" : "s3.hidrive.strato.com",
  "basePath" : "/",
  "schemes" : [ "https" ],
  "consumes" : [ "text/xml" ],
  "produces" : [ "text/xml" ],
  "security" : [ {
    "hmac" : [ ]
  } ],
  "paths" : {
    "/{Bucket}/{Key}" : {
      "post" : {
        "description" : "Completes a multipart upload by assembling previously uploaded parts.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html</p>",
        "operationId" : "CompleteMultipartUpload",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/CompleteMultipartUploadRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/CompleteMultipartUploadOutput"
            }
          }
        }
      },
      "put" : {
        "description" : "Creates a copy of an object that is already stored in Amazon S3.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html</p>",
        "operationId" : "CopyObject",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/CopyObjectRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/CopyObjectOutput"
            }
          },
          "480" : {
            "description" : "ObjectNotInActiveTierError",
            "schema" : {
              "$ref" : "#/definitions/ObjectNotInActiveTierError"
            }
          }
        }
      },
      "delete" : {
        "description" : "<p>Aborts a multipart upload.</p> <p>To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.</p><p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html</p>",
        "operationId" : "AbortMultipartUpload",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/AbortMultipartUploadRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/AbortMultipartUploadOutput"
            }
          },
          "480" : {
            "description" : "NoSuchUpload",
            "schema" : {
              "$ref" : "#/definitions/NoSuchUpload"
            }
          }
        }
      }
    },
    "/{Bucket}" : {
      "put" : {
        "description" : "Creates a new bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html</p>",
        "operationId" : "CreateBucket",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/CreateBucketRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/CreateBucketOutput"
            }
          },
          "480" : {
            "description" : "BucketAlreadyExists",
            "schema" : {
              "$ref" : "#/definitions/BucketAlreadyExists"
            }
          },
          "481" : {
            "description" : "BucketAlreadyOwnedByYou",
            "schema" : {
              "$ref" : "#/definitions/BucketAlreadyOwnedByYou"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#CreateMultipartUpload" : {
      "post" : {
        "description" : "<p>Initiates a multipart upload and returns an upload ID.</p> <p> <b>Note:</b> After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.</p><p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html</p>",
        "operationId" : "CreateMultipartUpload",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/CreateMultipartUploadRequest"
          }
        }, {
          "name" : "uploads",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/CreateMultipartUploadOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#DeleteBucket" : {
      "delete" : {
        "description" : "Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html</p>",
        "operationId" : "DeleteBucket",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/DeleteBucketRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#DeleteBucketCors" : {
      "delete" : {
        "description" : "Deletes the CORS configuration information set for the bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html</p>",
        "operationId" : "DeleteBucketCors",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/DeleteBucketCorsRequest"
          }
        }, {
          "name" : "cors",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#DeleteBucketPolicy" : {
      "delete" : {
        "description" : "Deletes the policy from the bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html</p>",
        "operationId" : "DeleteBucketPolicy",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/DeleteBucketPolicyRequest"
          }
        }, {
          "name" : "policy",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}/{Key}#DeleteObject" : {
      "delete" : {
        "description" : "Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html</p>",
        "operationId" : "DeleteObject",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/DeleteObjectRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/DeleteObjectOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#DeleteObjects" : {
      "post" : {
        "description" : "This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html</p>",
        "operationId" : "DeleteObjects",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/DeleteObjectsRequest"
          }
        }, {
          "name" : "delete",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/DeleteObjectsOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketCors" : {
      "get" : {
        "description" : "Returns the CORS configuration for the bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html</p>",
        "operationId" : "GetBucketCors",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketCorsRequest"
          }
        }, {
          "name" : "cors",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/GetBucketCorsOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketLocation" : {
      "get" : {
        "description" : "Returns the region the bucket resides in.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html</p>",
        "operationId" : "GetBucketLocation",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketLocationRequest"
          }
        }, {
          "name" : "location",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/GetBucketLocationOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketLogging" : {
      "get" : {
        "description" : "Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html</p>",
        "operationId" : "GetBucketLogging",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketLoggingRequest"
          }
        }, {
          "name" : "logging",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/GetBucketLoggingOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketNotification" : {
      "get" : {
        "description" : " No longer used, see the GetBucketNotificationConfiguration operation.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html</p>",
        "operationId" : "GetBucketNotification",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketNotificationConfigurationRequest"
          }
        }, {
          "name" : "notification",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/NotificationConfigurationDeprecated"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketNotificationConfiguration" : {
      "get" : {
        "description" : "Returns the notification configuration of a bucket.",
        "operationId" : "GetBucketNotificationConfiguration",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketNotificationConfigurationRequest"
          }
        }, {
          "name" : "notification",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/NotificationConfiguration"
            }
          }
        }
      }
    },
    "/{Bucket}#GetBucketPolicy" : {
      "get" : {
        "description" : "Returns the policy of a specified bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html</p>",
        "operationId" : "GetBucketPolicy",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/GetBucketPolicyRequest"
          }
        }, {
          "name" : "policy",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/GetBucketPolicyOutput"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#GetObject" : {
      "get" : {
        "description" : "Retrieves objects from Amazon S3.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html</p>",
        "operationId" : "GetObject",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/GetObjectRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/GetObjectOutput"
            }
          },
          "480" : {
            "description" : "NoSuchKey",
            "schema" : {
              "$ref" : "#/definitions/NoSuchKey"
            }
          }
        }
      }
    },
    "/{Bucket}#HeadBucket" : {
      "head" : {
        "description" : "This operation is useful to determine if a bucket exists and you have permission to access it.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html</p>",
        "operationId" : "HeadBucket",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/HeadBucketRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          },
          "480" : {
            "description" : "NoSuchBucket",
            "schema" : {
              "$ref" : "#/definitions/NoSuchBucket"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#HeadObject" : {
      "head" : {
        "description" : "The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html</p>",
        "operationId" : "HeadObject",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/HeadObjectRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/HeadObjectOutput"
            }
          },
          "480" : {
            "description" : "NoSuchKey",
            "schema" : {
              "$ref" : "#/definitions/NoSuchKey"
            }
          }
        }
      }
    },
    "/#ListBuckets" : {
      "get" : {
        "description" : "Returns a list of all buckets owned by the authenticated sender of the request.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html</p>",
        "operationId" : "ListBuckets",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/ListBucketsOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#ListMultipartUploads" : {
      "get" : {
        "description" : "This operation lists in-progress multipart uploads.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html</p>",
        "operationId" : "ListMultipartUploads",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/ListMultipartUploadsRequest"
          }
        }, {
          "name" : "MaxUploads",
          "in" : "query",
          "description" : "Pagination limit",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "KeyMarker",
          "in" : "query",
          "description" : "Pagination token",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "UploadIdMarker",
          "in" : "query",
          "description" : "Pagination token",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "uploads",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/ListMultipartUploadsOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#ListObjects" : {
      "get" : {
        "description" : "Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html</p>",
        "operationId" : "ListObjects",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/ListObjectsRequest"
          }
        }, {
          "name" : "MaxKeys",
          "in" : "query",
          "description" : "Pagination limit",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "Marker",
          "in" : "query",
          "description" : "Pagination token",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/ListObjectsOutput"
            }
          },
          "480" : {
            "description" : "NoSuchBucket",
            "schema" : {
              "$ref" : "#/definitions/NoSuchBucket"
            }
          }
        }
      }
    },
    "/{Bucket}#ListObjectsV2" : {
      "get" : {
        "description" : "Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. Note: ListObjectsV2 is the revised List Objects API and we recommend you use this revised API for new application development.",
        "operationId" : "ListObjectsV2",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/ListObjectsV2Request"
          }
        }, {
          "name" : "MaxKeys",
          "in" : "query",
          "description" : "Pagination limit",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "ContinuationToken",
          "in" : "query",
          "description" : "Pagination token",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "list-type",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "enum" : [ "2" ]
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/ListObjectsV2Output"
            }
          },
          "480" : {
            "description" : "NoSuchBucket",
            "schema" : {
              "$ref" : "#/definitions/NoSuchBucket"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#ListParts" : {
      "get" : {
        "description" : "Lists the parts that have been uploaded for a specific multipart upload.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html</p>",
        "operationId" : "ListParts",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/ListPartsRequest"
          }
        }, {
          "name" : "MaxParts",
          "in" : "query",
          "description" : "Pagination limit",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "PartNumberMarker",
          "in" : "query",
          "description" : "Pagination token",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/ListPartsOutput"
            }
          }
        }
      }
    },
    "/{Bucket}#PutBucketCors" : {
      "put" : {
        "description" : "Sets the CORS configuration for a bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html</p>",
        "operationId" : "PutBucketCors",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutBucketCorsRequest"
          }
        }, {
          "name" : "cors",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#PutBucketLogging" : {
      "put" : {
        "description" : "Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html</p>",
        "operationId" : "PutBucketLogging",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutBucketLoggingRequest"
          }
        }, {
          "name" : "logging",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#PutBucketNotification" : {
      "put" : {
        "description" : " No longer used, see the PutBucketNotificationConfiguration operation.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html</p>",
        "operationId" : "PutBucketNotification",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutBucketNotificationRequest"
          }
        }, {
          "name" : "notification",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#PutBucketNotificationConfiguration" : {
      "put" : {
        "description" : "Enables notifications of specified events for a bucket.",
        "operationId" : "PutBucketNotificationConfiguration",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutBucketNotificationConfigurationRequest"
          }
        }, {
          "name" : "notification",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}#PutBucketPolicy" : {
      "put" : {
        "description" : "Replaces a policy on a bucket. If the bucket already has a policy, the one in this request completely replaces it.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html</p>",
        "operationId" : "PutBucketPolicy",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutBucketPolicyRequest"
          }
        }, {
          "name" : "policy",
          "in" : "query",
          "required" : true,
          "type" : "string",
          "allowEmptyValue" : true
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          }
        }
      }
    },
    "/{Bucket}/{Key}#PutObject" : {
      "put" : {
        "description" : "Adds an object to a bucket.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html</p>",
        "operationId" : "PutObject",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/PutObjectRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/PutObjectOutput"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#UploadPart" : {
      "put" : {
        "description" : "<p>Uploads a part in a multipart upload.</p> <p> <b>Note:</b> After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.</p><p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html</p>",
        "operationId" : "UploadPart",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/UploadPartRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/UploadPartOutput"
            }
          }
        }
      }
    },
    "/{Bucket}/{Key}#UploadPartCopy" : {
      "put" : {
        "description" : "Uploads a part by copying data from an existing object as data source.<p>http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html</p>",
        "operationId" : "UploadPartCopy",
        "parameters" : [ {
          "name" : "x-amz-security-token",
          "in" : "header",
          "required" : false,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/UploadPartCopyRequest"
          }
        }, {
          "name" : "Bucket",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "Key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Success",
            "schema" : {
              "$ref" : "#/definitions/UploadPartCopyOutput"
            }
          }
        }
      }
    }
  },
  "securityDefinitions" : {
    "hmac" : {
      "description" : "Amazon S3 signature",
      "type" : "apiKey",
      "name" : "Authorization",
      "in" : "header",
      "x-amazon-apigateway-authtype" : "awsS3"
    }
  },
  "definitions" : {
    "AbortMultipartUploadOutput" : {
      "type" : "object",
      "example" : { }
    },
    "AbortMultipartUploadRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "bigobject",
        "UploadId" : "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
      }
    },
    "NoSuchUpload" : { },
    "CompleteMultipartUploadOutput" : {
      "type" : "object",
      "properties" : {
        "Location" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Location"
        },
        "Bucket" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/BucketName"
        },
        "Key" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectKey"
        },
        "ETag" : {
          "description" : "Entity tag of the object.",
          "$ref" : "#/definitions/ETag"
        }
      },
      "example" : {
        "Bucket" : "acexamplebucket",
        "ETag" : "\"4d9031c7644d8081c2829f4ea23c55f7-2\"",
        "Key" : "bigobject",
        "Location" : "https://examplebucket.s3.amazonaws.com/bigobject"
      }
    },
    "CompleteMultipartUploadRequest" : {
      "type" : "object",
      "properties" : {
        "MultipartUpload" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CompletedMultipartUpload"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "bigobject",
        "MultipartUpload" : {
          "Parts" : [ {
            "ETag" : "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
            "PartNumber" : "1"
          }, {
            "ETag" : "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
            "PartNumber" : "2"
          } ]
        },
        "UploadId" : "7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
      }
    },
    "CopyObjectOutput" : {
      "type" : "object",
      "properties" : {
        "CopyObjectResult" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CopyObjectResult"
        }
      },
      "example" : {
        "CopyObjectResult" : {
          "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
          "LastModified" : "2016-12-15T17:38:53.000Z"
        }
      }
    },
    "CopyObjectRequest" : {
      "type" : "object",
      "properties" : {
        "Metadata" : {
          "description" : "A map of metadata to store with the object in S3.",
          "$ref" : "#/definitions/Metadata"
        }
      },
      "example" : {
        "Bucket" : "destinationbucket",
        "CopySource" : "/sourcebucket/HappyFacejpg",
        "Key" : "HappyFaceCopyjpg"
      }
    },
    "ObjectNotInActiveTierError" : { },
    "CreateBucketOutput" : {
      "type" : "object",
      "example" : {
        "Location" : "http://examplebucket.s3.amazonaws.com/"
      }
    },
    "CreateBucketRequest" : {
      "type" : "object",
      "properties" : {
        "CreateBucketConfiguration" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CreateBucketConfiguration"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "examplebucket",
        "CreateBucketConfiguration" : {
          "LocationConstraint" : "eu-central-1"
        }
      }
    },
    "BucketAlreadyExists" : { },
    "BucketAlreadyOwnedByYou" : { },
    "CreateMultipartUploadOutput" : {
      "type" : "object",
      "properties" : {
        "Bucket" : {
          "description" : "Name of the bucket to which the multipart upload was initiated.",
          "$ref" : "#/definitions/BucketName"
        },
        "Key" : {
          "description" : "Object key for which the multipart upload was initiated.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "UploadId" : {
          "description" : "ID for the initiated multipart upload.",
          "$ref" : "#/definitions/MultipartUploadId"
        }
      },
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "largeobject",
        "UploadId" : "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--"
      }
    },
    "CreateMultipartUploadRequest" : {
      "type" : "object",
      "properties" : {
        "Metadata" : {
          "description" : "A map of metadata to store with the object in S3.",
          "$ref" : "#/definitions/Metadata"
        }
      },
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "largeobject"
      }
    },
    "DeleteBucketRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "forrandall2"
      }
    },
    "DeleteBucketCorsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "DeleteBucketPolicyRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "DeleteObjectOutput" : {
      "type" : "object",
      "example" : { }
    },
    "DeleteObjectRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "objectkey.jpg"
      }
    },
    "DeleteObjectsOutput" : {
      "type" : "object",
      "properties" : {
        "Deleted" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/DeletedObjects"
        },
        "Errors" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Errors"
        }
      },
      "example" : {
        "Deleted" : [ {
          "Key" : "HappyFace.jpg",
          "VersionId" : "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"
        }, {
          "Key" : "HappyFace.jpg",
          "VersionId" : "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"
        } ]
      }
    },
    "DeleteObjectsRequest" : {
      "type" : "object",
      "required" : [ "Delete" ],
      "properties" : {
        "Delete" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Delete"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "examplebucket",
        "Delete" : {
          "Objects" : [ {
            "Key" : "HappyFace.jpg",
            "VersionId" : "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"
          }, {
            "Key" : "HappyFace.jpg",
            "VersionId" : "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"
          } ],
          "Quiet" : false
        }
      }
    },
    "GetBucketCorsOutput" : {
      "type" : "object",
      "properties" : {
        "CORSRules" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CORSRules"
        }
      },
      "example" : {
        "CORSRules" : [ {
          "AllowedHeaders" : [ "Authorization" ],
          "AllowedMethods" : [ "GET" ],
          "AllowedOrigins" : [ "*" ],
          "MaxAgeSeconds" : 3000
        } ]
      }
    },
    "GetBucketCorsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "GetBucketLocationOutput" : {
      "type" : "object",
      "properties" : {
        "LocationConstraint" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/BucketLocationConstraint"
        }
      },
      "example" : {
        "LocationConstraint" : "us-west-2"
      }
    },
    "GetBucketLocationRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "GetBucketLoggingOutput" : {
      "type" : "object",
      "properties" : {
        "LoggingEnabled" : {
          "$ref" : "#/definitions/LoggingEnabled"
        }
      }
    },
    "GetBucketLoggingRequest" : {
      "type" : "object"
    },
    "NotificationConfigurationDeprecated" : {
      "type" : "object",
      "properties" : {
        "TopicConfiguration" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/TopicConfigurationDeprecated"
        },
        "QueueConfiguration" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/QueueConfigurationDeprecated"
        }
      },
      "example" : {
        "QueueConfiguration" : {
          "Event" : "s3:ObjectCreated:Put",
          "Events" : [ "s3:ObjectCreated:Put" ],
          "Id" : "MDQ2OGQ4NDEtOTBmNi00YTM4LTk0NzYtZDIwN2I3NWQ1NjIx",
          "Queue" : "arn:aws:sqs:us-east-1:acct-id:S3ObjectCreatedEventQueue"
        },
        "TopicConfiguration" : {
          "Event" : "s3:ObjectCreated:Copy",
          "Events" : [ "s3:ObjectCreated:Copy" ],
          "Id" : "YTVkMWEzZGUtNTY1NS00ZmE2LWJjYjktMmRlY2QwODFkNTJi",
          "Topic" : "arn:aws:sns:us-east-1:acct-id:S3ObjectCreatedEventTopic"
        }
      }
    },
    "GetBucketNotificationConfigurationRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "NotificationConfiguration" : {
      "type" : "object",
      "properties" : {
        "TopicConfigurations" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/TopicConfigurationList"
        },
        "QueueConfigurations" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/QueueConfigurationList"
        }
      },
      "description" : "A container for specifying the notification configuration of the bucket. If this element is empty, notifications are turned off for the bucket."
    },
    "GetBucketPolicyOutput" : {
      "type" : "object",
      "properties" : {
        "Policy" : {
          "description" : "The bucket policy as a JSON document.",
          "$ref" : "#/definitions/Policy"
        }
      },
      "example" : {
        "Policy" : "{\"Version\":\"2008-10-17\",\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}"
      }
    },
    "GetBucketPolicyRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket"
      }
    },
    "GetObjectOutput" : {
      "type" : "object",
      "properties" : {
        "Body" : {
          "description" : "Object data.",
          "$ref" : "#/definitions/Body"
        },
        "Metadata" : {
          "description" : "A map of metadata to store with the object in S3.",
          "$ref" : "#/definitions/Metadata"
        }
      },
      "example" : {
        "AcceptRanges" : "bytes",
        "ContentLength" : "3191",
        "ContentType" : "image/jpeg",
        "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
        "LastModified" : "Thu, 15 Dec 2016 01:19:41 GMT",
        "Metadata" : { },
        "TagCount" : 2,
        "VersionId" : "null"
      }
    },
    "GetObjectRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "HappyFace.jpg"
      }
    },
    "NoSuchKey" : { },
    "HeadBucketRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "acl1"
      }
    },
    "NoSuchBucket" : { },
    "HeadObjectOutput" : {
      "type" : "object",
      "properties" : {
        "Metadata" : {
          "description" : "A map of metadata to store with the object in S3.",
          "$ref" : "#/definitions/Metadata"
        }
      },
      "example" : {
        "AcceptRanges" : "bytes",
        "ContentLength" : "3191",
        "ContentType" : "image/jpeg",
        "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
        "LastModified" : "Thu, 15 Dec 2016 01:19:41 GMT",
        "Metadata" : { },
        "VersionId" : "null"
      }
    },
    "HeadObjectRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "HappyFace.jpg"
      }
    },
    "ListBucketsOutput" : {
      "type" : "object",
      "properties" : {
        "Buckets" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Buckets"
        },
        "Owner" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Owner"
        }
      },
      "example" : {
        "Buckets" : [ {
          "CreationDate" : "2012-02-15T21: 03: 02.000Z",
          "Name" : "examplebucket"
        }, {
          "CreationDate" : "2011-07-24T19: 33: 50.000Z",
          "Name" : "examplebucket2"
        }, {
          "CreationDate" : "2010-12-17T00: 56: 49.000Z",
          "Name" : "examplebucket3"
        } ],
        "Owner" : {
          "DisplayName" : "own-display-name",
          "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31"
        }
      }
    },
    "ListMultipartUploadsOutput" : {
      "type" : "object",
      "properties" : {
        "Bucket" : {
          "description" : "Name of the bucket to which the multipart upload was initiated.",
          "$ref" : "#/definitions/BucketName"
        },
        "KeyMarker" : {
          "description" : "The key at or after which the listing began.",
          "$ref" : "#/definitions/KeyMarker"
        },
        "UploadIdMarker" : {
          "description" : "Upload ID after which listing began.",
          "$ref" : "#/definitions/UploadIdMarker"
        },
        "NextKeyMarker" : {
          "description" : "When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.",
          "$ref" : "#/definitions/NextKeyMarker"
        },
        "Prefix" : {
          "description" : "When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.",
          "$ref" : "#/definitions/Prefix"
        },
        "Delimiter" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Delimiter"
        },
        "NextUploadIdMarker" : {
          "description" : "When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.",
          "$ref" : "#/definitions/NextUploadIdMarker"
        },
        "MaxUploads" : {
          "description" : "Maximum number of multipart uploads that could have been included in the response.",
          "$ref" : "#/definitions/MaxUploads"
        },
        "IsTruncated" : {
          "description" : "Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.",
          "$ref" : "#/definitions/IsTruncated"
        },
        "Uploads" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/MultipartUploadList"
        },
        "CommonPrefixes" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CommonPrefixList"
        },
        "EncodingType" : {
          "description" : "Encoding type used by Amazon S3 to encode object keys in the response.",
          "$ref" : "#/definitions/EncodingType"
        }
      },
      "example" : {
        "Bucket" : "acl1",
        "IsTruncated" : true,
        "KeyMarker" : "",
        "MaxUploads" : "2",
        "NextKeyMarker" : "someobjectkey",
        "NextUploadIdMarker" : "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
        "UploadIdMarker" : "",
        "Uploads" : [ {
          "Initiated" : "2014-05-01T05:40:58.000Z",
          "Initiator" : {
            "DisplayName" : "ownder-display-name",
            "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Key" : "JavaFile",
          "Owner" : {
            "DisplayName" : "mohanataws",
            "ID" : "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "StorageClass" : "STANDARD",
          "UploadId" : "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--"
        }, {
          "Initiated" : "2014-05-01T05:41:27.000Z",
          "Initiator" : {
            "DisplayName" : "ownder-display-name",
            "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Key" : "JavaFile",
          "Owner" : {
            "DisplayName" : "ownder-display-name",
            "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "StorageClass" : "STANDARD",
          "UploadId" : "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--"
        } ]
      }
    },
    "ListMultipartUploadsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "KeyMarker" : "nextkeyfrompreviousresponse",
        "MaxUploads" : "2",
        "UploadIdMarker" : "valuefrompreviousresponse"
      }
    },
    "ListObjectVersionsOutput" : {
      "type" : "object",
      "properties" : {
        "IsTruncated" : {
          "description" : "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.",
          "$ref" : "#/definitions/IsTruncated"
        },
        "KeyMarker" : {
          "description" : "Marks the last Key returned in a truncated response.",
          "$ref" : "#/definitions/KeyMarker"
        },
        "VersionIdMarker" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/VersionIdMarker"
        },
        "NextKeyMarker" : {
          "description" : "Use this value for the key marker request parameter in a subsequent request.",
          "$ref" : "#/definitions/NextKeyMarker"
        },
        "NextVersionIdMarker" : {
          "description" : "Use this value for the next version id marker parameter in a subsequent request.",
          "$ref" : "#/definitions/NextVersionIdMarker"
        },
        "Versions" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectVersionList"
        },
        "Name" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/BucketName"
        },
        "Prefix" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Prefix"
        },
        "Delimiter" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Delimiter"
        },
        "MaxKeys" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/MaxKeys"
        },
        "CommonPrefixes" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CommonPrefixList"
        },
        "EncodingType" : {
          "description" : "Encoding type used by Amazon S3 to encode object keys in the response.",
          "$ref" : "#/definitions/EncodingType"
        }
      },
      "example" : {
        "Versions" : [ {
          "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
          "IsLatest" : true,
          "Key" : "HappyFace.jpg",
          "LastModified" : "2016-12-15T01:19:41.000Z",
          "Owner" : {
            "DisplayName" : "owner-display-name",
            "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Size" : 3191,
          "StorageClass" : "STANDARD",
          "VersionId" : "null"
        }, {
          "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
          "IsLatest" : false,
          "Key" : "HappyFace.jpg",
          "LastModified" : "2016-12-13T00:58:26.000Z",
          "Owner" : {
            "DisplayName" : "owner-display-name",
            "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Size" : 3191,
          "StorageClass" : "STANDARD",
          "VersionId" : "PHtexPGjH2y.zBgT8LmB7wwLI2mpbz.k"
        } ]
      }
    },
    "ListObjectVersionsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Prefix" : "HappyFace.jpg"
      }
    },
    "ListObjectsOutput" : {
      "type" : "object",
      "properties" : {
        "IsTruncated" : {
          "description" : "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.",
          "$ref" : "#/definitions/IsTruncated"
        },
        "Marker" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Marker"
        },
        "NextMarker" : {
          "description" : "When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMaker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys.",
          "$ref" : "#/definitions/NextMarker"
        },
        "Contents" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectList"
        },
        "Name" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/BucketName"
        },
        "Prefix" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Prefix"
        },
        "Delimiter" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Delimiter"
        },
        "MaxKeys" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/MaxKeys"
        },
        "CommonPrefixes" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CommonPrefixList"
        },
        "EncodingType" : {
          "description" : "Encoding type used by Amazon S3 to encode object keys in the response.",
          "$ref" : "#/definitions/EncodingType"
        }
      },
      "example" : {
        "Contents" : [ {
          "ETag" : "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"",
          "Key" : "example1.jpg",
          "LastModified" : "2014-11-21T19:40:05.000Z",
          "Owner" : {
            "DisplayName" : "myname",
            "ID" : "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Size" : 11,
          "StorageClass" : "STANDARD"
        }, {
          "ETag" : "\"9c8af9a76df052144598c115ef33e511\"",
          "Key" : "example2.jpg",
          "LastModified" : "2013-11-15T01:10:49.000Z",
          "Owner" : {
            "DisplayName" : "myname",
            "ID" : "12345example25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
          },
          "Size" : 713193,
          "StorageClass" : "STANDARD"
        } ],
        "NextMarker" : "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
      }
    },
    "ListObjectsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "MaxKeys" : "2"
      }
    },
    "ListObjectsV2Output" : {
      "type" : "object",
      "properties" : {
        "IsTruncated" : {
          "description" : "A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.",
          "$ref" : "#/definitions/IsTruncated"
        },
        "Contents" : {
          "description" : "Metadata about each object returned.",
          "$ref" : "#/definitions/ObjectList"
        },
        "Name" : {
          "description" : "Name of the bucket to list.",
          "$ref" : "#/definitions/BucketName"
        },
        "Prefix" : {
          "description" : "Limits the response to keys that begin with the specified prefix.",
          "$ref" : "#/definitions/Prefix"
        },
        "Delimiter" : {
          "description" : "A delimiter is a character you use to group keys.",
          "$ref" : "#/definitions/Delimiter"
        },
        "MaxKeys" : {
          "description" : "Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.",
          "$ref" : "#/definitions/MaxKeys"
        },
        "CommonPrefixes" : {
          "description" : "CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by delimiter",
          "$ref" : "#/definitions/CommonPrefixList"
        },
        "EncodingType" : {
          "description" : "Encoding type used by Amazon S3 to encode object keys in the response.",
          "$ref" : "#/definitions/EncodingType"
        },
        "KeyCount" : {
          "description" : "KeyCount is the number of keys returned with this request. KeyCount will always be less than equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys ",
          "$ref" : "#/definitions/KeyCount"
        },
        "ContinuationToken" : {
          "description" : "ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key",
          "$ref" : "#/definitions/Token"
        },
        "NextContinuationToken" : {
          "description" : "NextContinuationToken is sent when isTruncated is true which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key",
          "$ref" : "#/definitions/NextToken"
        },
        "StartAfter" : {
          "description" : "StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket",
          "$ref" : "#/definitions/StartAfter"
        }
      },
      "example" : {
        "Contents" : [ {
          "ETag" : "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"",
          "Key" : "happyface.jpg",
          "LastModified" : "2014-11-21T19:40:05.000Z",
          "Size" : 11,
          "StorageClass" : "STANDARD"
        }, {
          "ETag" : "\"becf17f89c30367a9a44495d62ed521a-1\"",
          "Key" : "test.jpg",
          "LastModified" : "2014-05-02T04:51:50.000Z",
          "Size" : 4192256,
          "StorageClass" : "STANDARD"
        } ],
        "IsTruncated" : true,
        "KeyCount" : "2",
        "MaxKeys" : "2",
        "Name" : "examplebucket",
        "NextContinuationToken" : "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==",
        "Prefix" : ""
      }
    },
    "ListObjectsV2Request" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "MaxKeys" : "2"
      }
    },
    "ListPartsOutput" : {
      "type" : "object",
      "properties" : {
        "Bucket" : {
          "description" : "Name of the bucket to which the multipart upload was initiated.",
          "$ref" : "#/definitions/BucketName"
        },
        "Key" : {
          "description" : "Object key for which the multipart upload was initiated.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "UploadId" : {
          "description" : "Upload ID identifying the multipart upload whose parts are being listed.",
          "$ref" : "#/definitions/MultipartUploadId"
        },
        "PartNumberMarker" : {
          "description" : "Part number after which listing begins.",
          "$ref" : "#/definitions/PartNumberMarker"
        },
        "NextPartNumberMarker" : {
          "description" : "When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request.",
          "$ref" : "#/definitions/NextPartNumberMarker"
        },
        "MaxParts" : {
          "description" : "Maximum number of parts that were allowed in the response.",
          "$ref" : "#/definitions/MaxParts"
        },
        "IsTruncated" : {
          "description" : "Indicates whether the returned list of parts is truncated.",
          "$ref" : "#/definitions/IsTruncated"
        },
        "Parts" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Parts"
        },
        "Initiator" : {
          "description" : "Identifies who initiated the multipart upload.",
          "$ref" : "#/definitions/Initiator"
        },
        "Owner" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Owner"
        }
      },
      "example" : {
        "Initiator" : {
          "DisplayName" : "owner-display-name",
          "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
        },
        "Owner" : {
          "DisplayName" : "owner-display-name",
          "ID" : "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
        },
        "Parts" : [ {
          "ETag" : "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
          "LastModified" : "2016-12-16T00:11:42.000Z",
          "PartNumber" : "1",
          "Size" : 26246026
        }, {
          "ETag" : "\"d8c2eafd90c266e19ab9dcacc479f8af\"",
          "LastModified" : "2016-12-16T00:15:01.000Z",
          "PartNumber" : "2",
          "Size" : 26246026
        } ],
        "StorageClass" : "STANDARD"
      }
    },
    "ListPartsRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "Key" : "bigobject",
        "UploadId" : "example7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
      }
    },
    "PutBucketCorsRequest" : {
      "type" : "object",
      "required" : [ "CORSConfiguration" ],
      "properties" : {
        "CORSConfiguration" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CORSConfiguration"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "",
        "CORSConfiguration" : {
          "CORSRules" : [ {
            "AllowedHeaders" : [ "*" ],
            "AllowedMethods" : [ "PUT", "POST", "DELETE" ],
            "AllowedOrigins" : [ "http://www.example.com" ],
            "ExposeHeaders" : [ "x-amz-server-side-encryption" ],
            "MaxAgeSeconds" : 3000
          }, {
            "AllowedHeaders" : [ "Authorization" ],
            "AllowedMethods" : [ "GET" ],
            "AllowedOrigins" : [ "*" ],
            "MaxAgeSeconds" : 3000
          } ]
        },
        "ContentMD5" : ""
      }
    },
    "PutBucketLoggingRequest" : {
      "type" : "object",
      "required" : [ "BucketLoggingStatus" ],
      "properties" : {
        "BucketLoggingStatus" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/BucketLoggingStatus"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "sourcebucket",
        "BucketLoggingStatus" : {
          "LoggingEnabled" : {
            "TargetBucket" : "targetbucket",
            "TargetGrants" : [ {
              "Grantee" : {
                "Type" : "Group",
                "URI" : "http://acs.amazonaws.com/groups/global/AllUsers"
              },
              "Permission" : "READ"
            } ],
            "TargetPrefix" : "MyBucketLogs/"
          }
        }
      }
    },
    "PutBucketMetricsConfigurationRequest" : {
      "type" : "object",
      "required" : [ "MetricsConfiguration" ],
      "properties" : {
        "MetricsConfiguration" : {
          "description" : "Specifies the metrics configuration.",
          "$ref" : "#/definitions/MetricsConfiguration"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      }
    },
    "PutBucketNotificationRequest" : {
      "type" : "object",
      "required" : [ "NotificationConfiguration" ],
      "properties" : {
        "NotificationConfiguration" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/NotificationConfigurationDeprecated"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      }
    },
    "PutBucketNotificationConfigurationRequest" : {
      "type" : "object",
      "required" : [ "NotificationConfiguration" ],
      "properties" : {
        "NotificationConfiguration" : {
          "$ref" : "#/definitions/NotificationConfiguration"
        }
      },
      "xml" : {
        "namespace" : "http://s3.amazonaws.com/doc/2006-03-01/"
      },
      "example" : {
        "Bucket" : "examplebucket",
        "NotificationConfiguration" : {
          "TopicConfigurations" : [ {
            "Events" : [ "s3:ObjectCreated:*" ],
            "TopicArn" : "arn:aws:sns:us-west-2:123456789012:s3-notification-topic"
          } ]
        }
      }
    },
    "PutBucketPolicyRequest" : {
      "type" : "object",
      "required" : [ "Policy" ],
      "properties" : {
        "Policy" : {
          "description" : "The bucket policy as a JSON document.",
          "$ref" : "#/definitions/Policy"
        }
      },
      "example" : {
        "Bucket" : "examplebucket",
        "Policy" : "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}"
      }
    },
    "PutObjectOutput" : {
      "type" : "object",
      "example" : {
        "ETag" : "\"6805f2cfc46c0f04559748bb039d69ae\"",
        "ServerSideEncryption" : "AES256",
        "VersionId" : "CG612hodqujkf8FaaNfp8U..FIhLROcp"
      }
    },
    "PutObjectRequest" : {
      "type" : "object",
      "properties" : {
        "Body" : {
          "description" : "Object data.",
          "$ref" : "#/definitions/Body"
        },
        "Metadata" : {
          "description" : "A map of metadata to store with the object in S3.",
          "$ref" : "#/definitions/Metadata"
        }
      },
      "example" : {
        "Body" : "HappyFace.jpg",
        "Bucket" : "examplebucket",
        "Key" : "HappyFace.jpg",
        "ServerSideEncryption" : "AES256",
        "StorageClass" : "STANDARD_IA"
      }
    },
    "UploadPartOutput" : {
      "type" : "object",
      "example" : {
        "ETag" : "\"d8c2eafd90c266e19ab9dcacc479f8af\""
      }
    },
    "UploadPartRequest" : {
      "type" : "object",
      "properties" : {
        "Body" : {
          "description" : "Object data.",
          "$ref" : "#/definitions/Body"
        }
      },
      "example" : {
        "Body" : "fileToUpload",
        "Bucket" : "examplebucket",
        "Key" : "examplelargeobject",
        "PartNumber" : "1",
        "UploadId" : "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
      }
    },
    "UploadPartCopyOutput" : {
      "type" : "object",
      "properties" : {
        "CopyPartResult" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CopyPartResult"
        }
      },
      "example" : {
        "CopyPartResult" : {
          "ETag" : "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
          "LastModified" : "2016-12-29T21:24:43.000Z"
        }
      }
    },
    "UploadPartCopyRequest" : {
      "type" : "object",
      "example" : {
        "Bucket" : "examplebucket",
        "CopySource" : "/bucketname/sourceobjectkey",
        "Key" : "examplelargeobject",
        "PartNumber" : "1",
        "UploadId" : "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"
      }
    },
    "AbortDate" : {
      "type" : "string",
      "format" : "date-time"
    },
    "DaysAfterInitiation" : {
      "type" : "integer"
    },
    "AbortIncompleteMultipartUpload" : {
      "type" : "object",
      "properties" : {
        "DaysAfterInitiation" : {
          "description" : "Indicates the number of days that must pass since initiation for Lifecycle to abort an Incomplete Multipart Upload.",
          "$ref" : "#/definitions/DaysAfterInitiation"
        }
      },
      "description" : "Specifies the days since the initiation of an Incomplete Multipart Upload that Lifecycle will wait before permanently removing all parts of the upload."
    },
    "RequestCharged" : {
      "type" : "string",
      "description" : "If present, indicates that the requester was successfully charged for the request.",
      "enum" : [ "requester" ]
    },
    "BucketName" : {
      "type" : "string"
    },
    "ObjectKey" : {
      "type" : "string",
      "minLength" : 1
    },
    "MultipartUploadId" : {
      "type" : "string"
    },
    "AbortRuleId" : {
      "type" : "string"
    },
    "AcceptRanges" : {
      "type" : "string"
    },
    "Grants" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Grant"
      }
    },
    "Owner" : {
      "type" : "object",
      "properties" : {
        "DisplayName" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/DisplayName"
        },
        "ID" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ID"
        }
      },
      "description" : "<p/>"
    },
    "OwnerOverride" : {
      "type" : "string",
      "enum" : [ "Destination" ]
    },
    "AccessControlTranslation" : {
      "type" : "object",
      "required" : [ "Owner" ],
      "properties" : {
        "Owner" : {
          "description" : "The override value for the owner of the replica object.",
          "$ref" : "#/definitions/OwnerOverride"
        }
      },
      "description" : "A container for information about access control for replicas."
    },
    "AccountId" : {
      "type" : "string"
    },
    "AllowQuotedRecordDelimiter" : {
      "type" : "boolean"
    },
    "AllowedHeader" : {
      "type" : "string"
    },
    "AllowedHeaders" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/AllowedHeader"
      }
    },
    "AllowedMethod" : {
      "type" : "string"
    },
    "AllowedMethods" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/AllowedMethod"
      }
    },
    "AllowedOrigin" : {
      "type" : "string"
    },
    "AllowedOrigins" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/AllowedOrigin"
      }
    },
    "Prefix" : {
      "type" : "string"
    },
    "TagSet" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    },
    "Tag" : {
      "type" : "object",
      "required" : [ "Key", "Value" ],
      "properties" : {
        "Key" : {
          "description" : "Name of the tag.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "Value" : {
          "description" : "Value of the tag.",
          "$ref" : "#/definitions/Value"
        }
      },
      "description" : "<p/>"
    },
    "AnalyticsS3ExportFileFormat" : {
      "type" : "string",
      "enum" : [ "CSV" ]
    },
    "Body" : {
      "type" : "string"
    },
    "CreationDate" : {
      "type" : "string",
      "format" : "date-time"
    },
    "Bucket" : {
      "type" : "object",
      "properties" : {
        "Name" : {
          "description" : "The name of the bucket.",
          "$ref" : "#/definitions/BucketName"
        },
        "CreationDate" : {
          "description" : "Date the bucket was created.",
          "$ref" : "#/definitions/CreationDate"
        }
      },
      "description" : "<p/>"
    },
    "BucketLocationConstraint" : {
      "type" : "string",
      "enum" : [ "EU", "eu-west-1", "us-west-1", "us-west-2", "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "sa-east-1", "cn-north-1", "eu-central-1" ]
    },
    "LoggingEnabled" : {
      "type" : "object",
      "required" : [ "TargetBucket", "TargetPrefix" ],
      "properties" : {
        "TargetBucket" : {
          "description" : "Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.",
          "$ref" : "#/definitions/TargetBucket"
        },
        "TargetGrants" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/TargetGrants"
        },
        "TargetPrefix" : {
          "description" : "This element lets you specify a prefix for the keys that the log files will be stored under.",
          "$ref" : "#/definitions/TargetPrefix"
        }
      },
      "description" : "Container for logging information. Presence of this element indicates that logging is enabled. Parameters TargetBucket and TargetPrefix are required in this case."
    },
    "BucketLoggingStatus" : {
      "type" : "object",
      "properties" : {
        "LoggingEnabled" : {
          "$ref" : "#/definitions/LoggingEnabled"
        }
      },
      "description" : "<p/>"
    },
    "BucketLogsPermission" : {
      "type" : "string",
      "enum" : [ "FULL_CONTROL", "READ", "WRITE" ]
    },
    "BucketVersioningStatus" : {
      "type" : "string",
      "enum" : [ "Enabled", "Suspended" ]
    },
    "Buckets" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Bucket"
      }
    },
    "BypassGovernanceRetention" : {
      "type" : "boolean"
    },
    "BytesProcessed" : {
      "type" : "integer"
    },
    "BytesReturned" : {
      "type" : "integer"
    },
    "BytesScanned" : {
      "type" : "integer"
    },
    "CORSRules" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/CORSRule"
      }
    },
    "CORSConfiguration" : {
      "type" : "object",
      "required" : [ "CORSRules" ],
      "properties" : {
        "CORSRules" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CORSRules"
        }
      },
      "description" : "<p/>"
    },
    "ExposeHeaders" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/ExposeHeader"
      }
    },
    "MaxAgeSeconds" : {
      "type" : "integer"
    },
    "CORSRule" : {
      "type" : "object",
      "required" : [ "AllowedMethods", "AllowedOrigins" ],
      "properties" : {
        "AllowedHeaders" : {
          "description" : "Specifies which headers are allowed in a pre-flight OPTIONS request.",
          "$ref" : "#/definitions/AllowedHeaders"
        },
        "AllowedMethods" : {
          "description" : "Identifies HTTP methods that the domain/origin specified in the rule is allowed to execute.",
          "$ref" : "#/definitions/AllowedMethods"
        },
        "AllowedOrigins" : {
          "description" : "One or more origins you want customers to be able to access the bucket from.",
          "$ref" : "#/definitions/AllowedOrigins"
        },
        "ExposeHeaders" : {
          "description" : "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).",
          "$ref" : "#/definitions/ExposeHeaders"
        },
        "MaxAgeSeconds" : {
          "description" : "The time in seconds that your browser is to cache the preflight response for the specified resource.",
          "$ref" : "#/definitions/MaxAgeSeconds"
        }
      },
      "description" : "<p/>"
    },
    "FileHeaderInfo" : {
      "type" : "string",
      "enum" : [ "USE", "IGNORE", "NONE" ]
    },
    "Comments" : {
      "type" : "string"
    },
    "QuoteEscapeCharacter" : {
      "type" : "string"
    },
    "RecordDelimiter" : {
      "type" : "string"
    },
    "FieldDelimiter" : {
      "type" : "string"
    },
    "QuoteCharacter" : {
      "type" : "string"
    },
    "CSVInput" : {
      "type" : "object",
      "properties" : {
        "FileHeaderInfo" : {
          "description" : "Describes the first line of input. Valid values: None, Ignore, Use.",
          "$ref" : "#/definitions/FileHeaderInfo"
        },
        "Comments" : {
          "description" : "The single character used to indicate a row should be ignored when present at the start of a row.",
          "$ref" : "#/definitions/Comments"
        },
        "QuoteEscapeCharacter" : {
          "description" : "The single character used for escaping the quote character inside an already escaped value.",
          "$ref" : "#/definitions/QuoteEscapeCharacter"
        },
        "RecordDelimiter" : {
          "description" : "The value used to separate individual records.",
          "$ref" : "#/definitions/RecordDelimiter"
        },
        "FieldDelimiter" : {
          "description" : "The value used to separate individual fields in a record.",
          "$ref" : "#/definitions/FieldDelimiter"
        },
        "QuoteCharacter" : {
          "description" : "Value used for escaping where the field delimiter is part of the value.",
          "$ref" : "#/definitions/QuoteCharacter"
        },
        "AllowQuotedRecordDelimiter" : {
          "description" : "Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.",
          "$ref" : "#/definitions/AllowQuotedRecordDelimiter"
        }
      },
      "description" : "Describes how a CSV-formatted input object is formatted."
    },
    "QuoteFields" : {
      "type" : "string",
      "enum" : [ "ALWAYS", "ASNEEDED" ]
    },
    "CacheControl" : {
      "type" : "string"
    },
    "NotificationId" : {
      "type" : "string",
      "description" : "An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID."
    },
    "Event" : {
      "type" : "string",
      "description" : "The bucket event for which to send notifications.",
      "enum" : [ "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed" ]
    },
    "EventList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Event"
      }
    },
    "Code" : {
      "type" : "string"
    },
    "CommonPrefix" : {
      "type" : "object",
      "properties" : {
        "Prefix" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Prefix"
        }
      },
      "description" : "<p/>"
    },
    "CommonPrefixList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/CommonPrefix"
      }
    },
    "Location" : {
      "type" : "string"
    },
    "Expiration" : {
      "type" : "string"
    },
    "ETag" : {
      "type" : "string"
    },
    "ServerSideEncryption" : {
      "type" : "string",
      "enum" : [ "AES256", "aws:kms" ]
    },
    "ObjectVersionId" : {
      "type" : "string"
    },
    "CompletedMultipartUpload" : {
      "type" : "object",
      "properties" : {
        "Parts" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/CompletedPartList"
        }
      },
      "description" : "<p/>"
    },
    "CompletedPartList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/CompletedPart"
      }
    },
    "PartNumber" : {
      "type" : "integer"
    },
    "CompletedPart" : {
      "type" : "object",
      "properties" : {
        "ETag" : {
          "description" : "Entity tag returned when the part was uploaded.",
          "$ref" : "#/definitions/ETag"
        },
        "PartNumber" : {
          "description" : "Part number that identifies the part. This is a positive integer between 1 and 10,000.",
          "$ref" : "#/definitions/PartNumber"
        }
      },
      "description" : "<p/>"
    },
    "CompressionType" : {
      "type" : "string",
      "enum" : [ "NONE", "GZIP", "BZIP2" ]
    },
    "HttpErrorCodeReturnedEquals" : {
      "type" : "string"
    },
    "KeyPrefixEquals" : {
      "type" : "string"
    },
    "Condition" : {
      "type" : "object",
      "properties" : {
        "HttpErrorCodeReturnedEquals" : {
          "description" : "The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.",
          "$ref" : "#/definitions/HttpErrorCodeReturnedEquals"
        },
        "KeyPrefixEquals" : {
          "description" : "The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. To redirect request for all pages with the prefix docs/, the key prefix will be /docs, which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.",
          "$ref" : "#/definitions/KeyPrefixEquals"
        }
      },
      "description" : "<p/>"
    },
    "ConfirmRemoveSelfBucketAccess" : {
      "type" : "boolean"
    },
    "ContentDisposition" : {
      "type" : "string"
    },
    "ContentEncoding" : {
      "type" : "string"
    },
    "ContentLanguage" : {
      "type" : "string"
    },
    "ContentLength" : {
      "type" : "integer"
    },
    "ContentMD5" : {
      "type" : "string"
    },
    "ContentRange" : {
      "type" : "string"
    },
    "ContentType" : {
      "type" : "string"
    },
    "ContinuationEvent" : {
      "type" : "object",
      "description" : "<p/>"
    },
    "CopyObjectResult" : {
      "type" : "object",
      "properties" : {
        "ETag" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ETag"
        },
        "LastModified" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/LastModified"
        }
      },
      "description" : "<p/>"
    },
    "CopySourceVersionId" : {
      "type" : "string"
    },
    "ObjectCannedACL" : {
      "type" : "string",
      "enum" : [ "private", "public-read", "public-read-write", "authenticated-read", "aws-exec-read", "bucket-owner-read", "bucket-owner-full-control" ]
    },
    "CopySource" : {
      "type" : "string",
      "pattern" : "\\/.+\\/.+"
    },
    "CopySourceIfMatch" : {
      "type" : "string"
    },
    "CopySourceIfModifiedSince" : {
      "type" : "string",
      "format" : "date-time"
    },
    "CopySourceIfNoneMatch" : {
      "type" : "string"
    },
    "CopySourceIfUnmodifiedSince" : {
      "type" : "string",
      "format" : "date-time"
    },
    "Expires" : {
      "type" : "string",
      "format" : "date-time"
    },
    "GrantFullControl" : {
      "type" : "string"
    },
    "GrantRead" : {
      "type" : "string"
    },
    "Metadata" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Metadata_inner"
      }
    },
    "MetadataDirective" : {
      "type" : "string",
      "enum" : [ "COPY", "REPLACE" ]
    },
    "LastModified" : {
      "type" : "string",
      "format" : "date-time"
    },
    "CopyPartResult" : {
      "type" : "object",
      "properties" : {
        "ETag" : {
          "description" : "Entity tag of the object.",
          "$ref" : "#/definitions/ETag"
        },
        "LastModified" : {
          "description" : "Date and time at which the object was uploaded.",
          "$ref" : "#/definitions/LastModified"
        }
      },
      "description" : "<p/>"
    },
    "CopySourceRange" : {
      "type" : "string"
    },
    "CreateBucketConfiguration" : {
      "type" : "object",
      "properties" : {
        "LocationConstraint" : {
          "description" : "Specifies the region where the bucket will be created. If you don't specify a region, the bucket is created in US East (N. Virginia) Region (us-east-1).",
          "$ref" : "#/definitions/BucketLocationConstraint"
        }
      },
      "description" : "<p/>"
    },
    "GrantWrite" : {
      "type" : "string"
    },
    "ObjectLockEnabledForBucket" : {
      "type" : "boolean"
    },
    "Date" : {
      "type" : "string",
      "format" : "date-time"
    },
    "Days" : {
      "type" : "integer"
    },
    "ObjectLockRetentionMode" : {
      "type" : "string",
      "enum" : [ "GOVERNANCE", "COMPLIANCE" ]
    },
    "Years" : {
      "type" : "integer"
    },
    "DefaultRetention" : {
      "type" : "object",
      "properties" : {
        "Mode" : {
          "description" : "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket.",
          "$ref" : "#/definitions/ObjectLockRetentionMode"
        },
        "Days" : {
          "description" : "The number of days that you want to specify for the default retention period.",
          "$ref" : "#/definitions/Days"
        },
        "Years" : {
          "description" : "The number of years that you want to specify for the default retention period.",
          "$ref" : "#/definitions/Years"
        }
      },
      "description" : "The container element for specifying the default Object Lock retention settings for new objects placed in the specified bucket."
    },
    "ObjectIdentifierList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/ObjectIdentifier"
      }
    },
    "Quiet" : {
      "type" : "boolean"
    },
    "Delete" : {
      "type" : "object",
      "required" : [ "Objects" ],
      "properties" : {
        "Objects" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectIdentifierList"
        },
        "Quiet" : {
          "description" : "Element to enable quiet mode for the request. When you add this element, you must set its value to true.",
          "$ref" : "#/definitions/Quiet"
        }
      },
      "description" : "<p/>"
    },
    "InventoryId" : {
      "type" : "string"
    },
    "MetricsId" : {
      "type" : "string"
    },
    "DeleteMarker" : {
      "type" : "boolean"
    },
    "IsLatest" : {
      "type" : "boolean"
    },
    "DeletedObjects" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/DeletedObject"
      }
    },
    "Errors" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Error"
      }
    },
    "DeletedObject" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectKey"
        },
        "VersionId" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectVersionId"
        }
      },
      "description" : "<p/>"
    },
    "Delimiter" : {
      "type" : "string"
    },
    "Description" : {
      "type" : "string"
    },
    "Destination" : {
      "type" : "object",
      "required" : [ "Bucket" ],
      "properties" : {
        "Bucket" : {
          "description" : "<p> The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule. </p> <p> If there are multiple rules in your replication configuration, all rules must specify the same bucket as the destination. A replication configuration can replicate objects to only one destination bucket. </p>",
          "$ref" : "#/definitions/BucketName"
        },
        "Account" : {
          "description" : "<p>The account ID of the destination bucket. Currently, Amazon S3 verifies this value only if Access Control Translation is enabled. </p> <p>In a cross-account scenario, if you change replica ownership to the AWS account that owns the destination bucket by adding the <code>AccessControlTranslation</code> element, this is the account ID of the owner of the destination bucket. </p>",
          "$ref" : "#/definitions/AccountId"
        }
      }
    },
    "DisplayName" : {
      "type" : "string"
    },
    "EmailAddress" : {
      "type" : "string"
    },
    "EnableRequestProgress" : {
      "type" : "boolean"
    },
    "EncodingType" : {
      "type" : "string",
      "description" : "Requests Amazon S3 to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the response.",
      "enum" : [ "url" ]
    },
    "EndEvent" : {
      "type" : "object",
      "description" : "<p/>"
    },
    "Message" : {
      "type" : "string"
    },
    "Error" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectKey"
        },
        "VersionId" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectVersionId"
        },
        "Code" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Code"
        },
        "Message" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Message"
        }
      },
      "description" : "<p/>"
    },
    "ErrorDocument" : {
      "type" : "object",
      "required" : [ "Key" ],
      "properties" : {
        "Key" : {
          "description" : "The object key name to use when a 4XX class error occurs.",
          "$ref" : "#/definitions/ObjectKey"
        }
      },
      "description" : "<p/>"
    },
    "ExpirationStatus" : {
      "type" : "string",
      "enum" : [ "Enabled", "Disabled" ]
    },
    "ExpiredObjectDeleteMarker" : {
      "type" : "boolean"
    },
    "ExposeHeader" : {
      "type" : "string"
    },
    "Expression" : {
      "type" : "string"
    },
    "ExpressionType" : {
      "type" : "string",
      "enum" : [ "SQL" ]
    },
    "FetchOwner" : {
      "type" : "boolean"
    },
    "FilterRuleName" : {
      "type" : "string",
      "enum" : [ "prefix", "suffix" ]
    },
    "FilterRuleValue" : {
      "type" : "string"
    },
    "FilterRule" : {
      "type" : "object",
      "properties" : {
        "Name" : {
          "description" : "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum prefix length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html\">Configuring Event Notifications</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.",
          "$ref" : "#/definitions/FilterRuleName"
        },
        "Value" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/FilterRuleValue"
        }
      },
      "description" : "A container for a key value pair that defines the criteria for the filter rule."
    },
    "FilterRuleList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "description" : "A list of containers for the key value pair that defines the criteria for the filter rule.",
      "items" : {
        "$ref" : "#/definitions/FilterRule"
      }
    },
    "Rules" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Rule"
      }
    },
    "MetricsConfiguration" : {
      "type" : "object",
      "required" : [ "Id" ],
      "properties" : {
        "Id" : {
          "description" : "The ID used to identify the metrics configuration.",
          "$ref" : "#/definitions/MetricsId"
        },
        "Filter" : {
          "description" : "Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).",
          "$ref" : "#/definitions/MetricsFilter"
        }
      },
      "description" : "<p/>"
    },
    "Policy" : {
      "type" : "string"
    },
    "PolicyStatus" : {
      "type" : "object",
      "properties" : {
        "IsPublic" : {
          "description" : "The policy status for this bucket. <code>TRUE</code> indicates that this bucket is public. <code>FALSE</code> indicates that the bucket is not public.",
          "$ref" : "#/definitions/IsPublic"
        }
      },
      "description" : "The container element for a bucket's policy status."
    },
    "RedirectAllRequestsTo" : {
      "type" : "object",
      "required" : [ "HostName" ],
      "properties" : {
        "HostName" : {
          "description" : "Name of the host where requests will be redirected.",
          "$ref" : "#/definitions/HostName"
        },
        "Protocol" : {
          "description" : "Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request.",
          "$ref" : "#/definitions/Protocol"
        }
      },
      "description" : "<p/>"
    },
    "IndexDocument" : {
      "type" : "object",
      "required" : [ "Suffix" ],
      "properties" : {
        "Suffix" : {
          "description" : "A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.",
          "$ref" : "#/definitions/Suffix"
        }
      },
      "description" : "<p/>"
    },
    "RoutingRules" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/RoutingRule"
      }
    },
    "PartsCount" : {
      "type" : "integer"
    },
    "TagCount" : {
      "type" : "integer"
    },
    "IfMatch" : {
      "type" : "string"
    },
    "IfModifiedSince" : {
      "type" : "string",
      "format" : "date-time"
    },
    "IfNoneMatch" : {
      "type" : "string"
    },
    "IfUnmodifiedSince" : {
      "type" : "string",
      "format" : "date-time"
    },
    "Range" : {
      "type" : "string"
    },
    "ResponseCacheControl" : {
      "type" : "string"
    },
    "ResponseContentDisposition" : {
      "type" : "string"
    },
    "ResponseContentEncoding" : {
      "type" : "string"
    },
    "ResponseContentLanguage" : {
      "type" : "string"
    },
    "ResponseContentType" : {
      "type" : "string"
    },
    "ResponseExpires" : {
      "type" : "string",
      "format" : "date-time"
    },
    "ObjectLockRetention" : {
      "type" : "object",
      "properties" : {
        "Mode" : {
          "description" : "Indicates the Retention mode for the specified object.",
          "$ref" : "#/definitions/ObjectLockRetentionMode"
        },
        "RetainUntilDate" : {
          "description" : "The date on which this Object Lock Retention will expire.",
          "$ref" : "#/definitions/Date"
        }
      },
      "description" : "A Retention configuration for an object."
    },
    "PublicAccessBlockConfiguration" : {
      "type" : "object",
      "properties" : {
        "BlockPublicAcls" : {
          "description" : "<p>Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes the following behavior:</p> <ul> <li> <p>PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.</p> </li> <li> <p>PUT Object calls fail if the request includes a public ACL.</p> </li> </ul> <p>Enabling this setting doesn't affect existing policies or ACLs.</p>",
          "$ref" : "#/definitions/Setting"
        },
        "IgnorePublicAcls" : {
          "description" : "<p>Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.</p> <p>Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.</p>",
          "$ref" : "#/definitions/Setting"
        },
        "BlockPublicPolicy" : {
          "description" : "<p>Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. </p> <p>Enabling this setting doesn't affect existing bucket policies.</p>",
          "$ref" : "#/definitions/Setting"
        },
        "RestrictPublicBuckets" : {
          "description" : "<p>Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to <code>TRUE</code> restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.</p> <p>Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.</p>",
          "$ref" : "#/definitions/Setting"
        }
      },
      "description" : "<p/>"
    },
    "Grantee" : {
      "type" : "object",
      "required" : [ "Type" ],
      "properties" : {
        "DisplayName" : {
          "description" : "Screen name of the grantee.",
          "$ref" : "#/definitions/DisplayName"
        },
        "EmailAddress" : {
          "description" : "Email address of the grantee.",
          "$ref" : "#/definitions/EmailAddress"
        },
        "ID" : {
          "description" : "The canonical user ID of the grantee.",
          "$ref" : "#/definitions/ID"
        },
        "Type" : {
          "description" : "Type of grantee",
          "$ref" : "#/definitions/Type"
        },
        "URI" : {
          "description" : "URI of the grantee group.",
          "$ref" : "#/definitions/URI"
        }
      },
      "xml" : {
        "namespace" : "http://www.w3.org/2001/XMLSchema-instance",
        "attribute" : true
      },
      "description" : "<p/>"
    },
    "Permission" : {
      "type" : "string",
      "enum" : [ "FULL_CONTROL", "WRITE", "WRITE_ACP", "READ", "READ_ACP" ]
    },
    "Grant" : {
      "type" : "object",
      "properties" : {
        "Grantee" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Grantee"
        },
        "Permission" : {
          "description" : "Specifies the permission given to the grantee.",
          "$ref" : "#/definitions/Permission"
        }
      },
      "description" : "<p/>"
    },
    "ID" : {
      "type" : "string"
    },
    "Type" : {
      "type" : "string",
      "enum" : [ "CanonicalUser", "AmazonCustomerByEmail", "Group" ]
    },
    "URI" : {
      "type" : "string"
    },
    "HostName" : {
      "type" : "string"
    },
    "HttpRedirectCode" : {
      "type" : "string"
    },
    "Suffix" : {
      "type" : "string"
    },
    "Initiated" : {
      "type" : "string",
      "format" : "date-time"
    },
    "Initiator" : {
      "type" : "object",
      "properties" : {
        "ID" : {
          "description" : "If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.",
          "$ref" : "#/definitions/ID"
        },
        "DisplayName" : {
          "description" : "Name of the Principal.",
          "$ref" : "#/definitions/DisplayName"
        }
      },
      "description" : "<p/>"
    },
    "JSONInput" : {
      "type" : "object",
      "properties" : {
        "Type" : {
          "description" : "The type of JSON. Valid values: Document, Lines.",
          "$ref" : "#/definitions/JSONType"
        }
      },
      "description" : "<p/>"
    },
    "ParquetInput" : {
      "type" : "object",
      "description" : "<p/>"
    },
    "InputSerialization" : {
      "type" : "object",
      "properties" : {
        "CSV" : {
          "description" : "Describes the serialization of a CSV-encoded object.",
          "$ref" : "#/definitions/CSVInput"
        },
        "CompressionType" : {
          "description" : "Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.",
          "$ref" : "#/definitions/CompressionType"
        },
        "JSON" : {
          "description" : "Specifies JSON as object's input serialization format.",
          "$ref" : "#/definitions/JSONInput"
        },
        "Parquet" : {
          "description" : "Specifies Parquet as object's input serialization format.",
          "$ref" : "#/definitions/ParquetInput"
        }
      },
      "description" : "Describes the serialization format of the object."
    },
    "IsEnabled" : {
      "type" : "boolean"
    },
    "IsPublic" : {
      "type" : "boolean"
    },
    "IsTruncated" : {
      "type" : "boolean"
    },
    "JSONType" : {
      "type" : "string",
      "enum" : [ "DOCUMENT", "LINES" ]
    },
    "JSONOutput" : {
      "type" : "object",
      "properties" : {
        "RecordDelimiter" : {
          "description" : "The value used to separate individual records in the output.",
          "$ref" : "#/definitions/RecordDelimiter"
        }
      },
      "description" : "<p/>"
    },
    "KeyCount" : {
      "type" : "integer"
    },
    "KeyMarker" : {
      "type" : "string"
    },
    "NotificationConfigurationFilter" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "$ref" : "#/definitions/S3KeyFilter"
        }
      },
      "description" : "A container for object key name filtering rules. For information about key name filtering, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html\">Configuring Event Notifications</a> in the <i>Amazon Simple Storage Service Developer Guide</i>."
    },
    "Token" : {
      "type" : "string"
    },
    "NextToken" : {
      "type" : "string"
    },
    "MetricsConfigurationList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/MetricsConfiguration"
      }
    },
    "UploadIdMarker" : {
      "type" : "string"
    },
    "NextKeyMarker" : {
      "type" : "string"
    },
    "NextUploadIdMarker" : {
      "type" : "string"
    },
    "MaxUploads" : {
      "type" : "integer"
    },
    "MultipartUploadList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/MultipartUpload"
      }
    },
    "VersionIdMarker" : {
      "type" : "string"
    },
    "NextVersionIdMarker" : {
      "type" : "string"
    },
    "ObjectVersionList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/ObjectVersion"
      }
    },
    "MaxKeys" : {
      "type" : "integer"
    },
    "Marker" : {
      "type" : "string"
    },
    "NextMarker" : {
      "type" : "string"
    },
    "ObjectList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Object"
      }
    },
    "StartAfter" : {
      "type" : "string"
    },
    "PartNumberMarker" : {
      "type" : "integer"
    },
    "NextPartNumberMarker" : {
      "type" : "integer"
    },
    "MaxParts" : {
      "type" : "integer"
    },
    "Parts" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Part"
      }
    },
    "LocationPrefix" : {
      "type" : "string"
    },
    "TargetBucket" : {
      "type" : "string"
    },
    "TargetGrants" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/TargetGrant"
      }
    },
    "TargetPrefix" : {
      "type" : "string"
    },
    "MetadataKey" : {
      "type" : "string"
    },
    "MetadataValue" : {
      "type" : "string"
    },
    "MetadataEntry" : {
      "type" : "object",
      "properties" : {
        "Name" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/MetadataKey"
        },
        "Value" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/MetadataValue"
        }
      },
      "description" : "A metadata key-value pair to store with an object."
    },
    "MetricsAndOperator" : {
      "type" : "object",
      "properties" : {
        "Prefix" : {
          "description" : "The prefix used when evaluating an AND predicate.",
          "$ref" : "#/definitions/Prefix"
        },
        "Tags" : {
          "description" : "The list of tags used when evaluating an AND predicate.",
          "$ref" : "#/definitions/TagSet"
        }
      },
      "xml" : {
        "wrapped" : false
      },
      "description" : "<p/>"
    },
    "MetricsFilter" : {
      "type" : "object",
      "properties" : {
        "Prefix" : {
          "description" : "The prefix used when evaluating a metrics filter.",
          "$ref" : "#/definitions/Prefix"
        },
        "Tag" : {
          "description" : "The tag used when evaluating a metrics filter.",
          "$ref" : "#/definitions/Tag"
        },
        "And" : {
          "description" : "A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The operator must have at least two predicates, and an object must match all of the predicates in order for the filter to apply.",
          "$ref" : "#/definitions/MetricsAndOperator"
        }
      },
      "description" : "<p/>"
    },
    "MultipartUpload" : {
      "type" : "object",
      "properties" : {
        "UploadId" : {
          "description" : "Upload ID that identifies the multipart upload.",
          "$ref" : "#/definitions/MultipartUploadId"
        },
        "Key" : {
          "description" : "Key of the object for which the multipart upload was initiated.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "Initiated" : {
          "description" : "Date and time at which the multipart upload was initiated.",
          "$ref" : "#/definitions/Initiated"
        },
        "Owner" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Owner"
        },
        "Initiator" : {
          "description" : "Identifies who initiated the multipart upload.",
          "$ref" : "#/definitions/Initiator"
        }
      },
      "description" : "<p/>"
    },
    "TopicConfigurationList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/TopicConfiguration"
      }
    },
    "QueueConfigurationList" : {
      "xml" : {
        "wrapped" : false
      },
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/QueueConfiguration"
      }
    },
    "TopicConfigurationDeprecated" : {
      "type" : "object",
      "properties" : {
        "Id" : {
          "$ref" : "#/definitions/NotificationId"
        },
        "Events" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/EventList"
        },
        "Event" : {
          "description" : "Bucket event for which to send notifications.",
          "$ref" : "#/definitions/Event"
        },
        "Topic" : {
          "description" : "Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.",
          "$ref" : "#/definitions/TopicArn"
        }
      },
      "description" : "<p/>"
    },
    "QueueConfigurationDeprecated" : {
      "type" : "object",
      "properties" : {
        "Id" : {
          "$ref" : "#/definitions/NotificationId"
        },
        "Event" : {
          "$ref" : "#/definitions/Event"
        },
        "Events" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/EventList"
        },
        "Queue" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/QueueArn"
        }
      },
      "description" : "<p/>"
    },
    "S3KeyFilter" : {
      "type" : "object",
      "properties" : {
        "FilterRules" : {
          "$ref" : "#/definitions/FilterRuleList"
        }
      },
      "description" : "A container for object key name prefix and suffix filtering rules."
    },
    "Size" : {
      "type" : "integer"
    },
    "ObjectStorageClass" : {
      "type" : "string",
      "enum" : [ "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING" ]
    },
    "Object" : {
      "type" : "object",
      "properties" : {
        "Key" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ObjectKey"
        },
        "LastModified" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/LastModified"
        },
        "ETag" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ETag"
        },
        "Size" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Size"
        },
        "StorageClass" : {
          "description" : "The class of storage used to store the object.",
          "$ref" : "#/definitions/ObjectStorageClass"
        },
        "Owner" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Owner"
        }
      },
      "description" : "<p/>"
    },
    "ObjectIdentifier" : {
      "type" : "object",
      "required" : [ "Key" ],
      "properties" : {
        "Key" : {
          "description" : "Key name of the object to delete.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "VersionId" : {
          "description" : "VersionId for the specific version of the object to delete.",
          "$ref" : "#/definitions/ObjectVersionId"
        }
      },
      "description" : "<p/>"
    },
    "ObjectLockEnabled" : {
      "type" : "string",
      "enum" : [ "Enabled" ]
    },
    "ObjectLockRule" : {
      "type" : "object",
      "properties" : {
        "DefaultRetention" : {
          "description" : "The default retention period that you want to apply to new objects placed in the specified bucket.",
          "$ref" : "#/definitions/DefaultRetention"
        }
      },
      "description" : "The container element for an Object Lock rule."
    },
    "ObjectLockToken" : {
      "type" : "string"
    },
    "ObjectVersionStorageClass" : {
      "type" : "string",
      "enum" : [ "STANDARD" ]
    },
    "ObjectVersion" : {
      "type" : "object",
      "properties" : {
        "ETag" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/ETag"
        },
        "Size" : {
          "description" : "Size in bytes of the object.",
          "$ref" : "#/definitions/Size"
        },
        "StorageClass" : {
          "description" : "The class of storage used to store the object.",
          "$ref" : "#/definitions/ObjectVersionStorageClass"
        },
        "Key" : {
          "description" : "The object key.",
          "$ref" : "#/definitions/ObjectKey"
        },
        "VersionId" : {
          "description" : "Version ID of an object.",
          "$ref" : "#/definitions/ObjectVersionId"
        },
        "IsLatest" : {
          "description" : "Specifies whether the object is (true) or is not (false) the latest version of an object.",
          "$ref" : "#/definitions/IsLatest"
        },
        "LastModified" : {
          "description" : "Date and time the object was last modified.",
          "$ref" : "#/definitions/LastModified"
        },
        "Owner" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Owner"
        }
      },
      "description" : "<p/>"
    },
    "S3Location" : {
      "type" : "object",
      "required" : [ "BucketName", "Prefix" ],
      "properties" : {
        "BucketName" : {
          "description" : "The name of the bucket where the restore results will be placed.",
          "$ref" : "#/definitions/BucketName"
        },
        "Prefix" : {
          "description" : "The prefix that is prepended to the restore results for this request.",
          "$ref" : "#/definitions/LocationPrefix"
        },
        "UserMetadata" : {
          "description" : "A list of metadata to store with the restore results in S3.",
          "$ref" : "#/definitions/UserMetadata"
        }
      },
      "description" : "Describes an S3 location that will receive the results of the restore request."
    },
    "OutputLocation" : {
      "type" : "object",
      "properties" : {
        "S3" : {
          "description" : "Describes an S3 location that will receive the results of the restore request.",
          "$ref" : "#/definitions/S3Location"
        }
      },
      "description" : "Describes the location where the restore job's output is stored."
    },
    "OutputSerialization" : {
      "type" : "object",
      "properties" : {
        "JSON" : {
          "description" : "Specifies JSON as request's output serialization format.",
          "$ref" : "#/definitions/JSONOutput"
        }
      },
      "description" : "Describes how results of the Select job are serialized."
    },
    "Part" : {
      "type" : "object",
      "properties" : {
        "PartNumber" : {
          "description" : "Part number identifying the part. This is a positive integer between 1 and 10,000.",
          "$ref" : "#/definitions/PartNumber"
        },
        "LastModified" : {
          "description" : "Date and time at which the part was uploaded.",
          "$ref" : "#/definitions/LastModified"
        },
        "ETag" : {
          "description" : "Entity tag returned when the part was uploaded.",
          "$ref" : "#/definitions/ETag"
        },
        "Size" : {
          "description" : "Size in bytes of the uploaded part data.",
          "$ref" : "#/definitions/Size"
        }
      },
      "description" : "<p/>"
    },
    "Priority" : {
      "type" : "integer"
    },
    "Progress" : {
      "type" : "object",
      "properties" : {
        "BytesScanned" : {
          "description" : "The current number of object bytes scanned.",
          "$ref" : "#/definitions/BytesScanned"
        },
        "BytesProcessed" : {
          "description" : "The current number of uncompressed object bytes processed.",
          "$ref" : "#/definitions/BytesProcessed"
        },
        "BytesReturned" : {
          "description" : "The current number of bytes of records payload data returned.",
          "$ref" : "#/definitions/BytesReturned"
        }
      },
      "description" : "<p/>"
    },
    "ProgressEvent" : {
      "type" : "object",
      "properties" : {
        "Details" : {
          "description" : "The Progress event details.",
          "$ref" : "#/definitions/Progress"
        }
      },
      "description" : "<p/>"
    },
    "Protocol" : {
      "type" : "string",
      "enum" : [ "http", "https" ]
    },
    "Setting" : {
      "type" : "boolean"
    },
    "QueueArn" : {
      "type" : "string"
    },
    "QueueConfiguration" : {
      "type" : "object",
      "required" : [ "Events", "QueueArn" ],
      "properties" : {
        "Id" : {
          "$ref" : "#/definitions/NotificationId"
        },
        "QueueArn" : {
          "description" : "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 will publish a message when it detects events of the specified type.",
          "$ref" : "#/definitions/QueueArn"
        },
        "Events" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/EventList"
        },
        "Filter" : {
          "$ref" : "#/definitions/NotificationConfigurationFilter"
        }
      },
      "description" : "A container for specifying the configuration for publication of messages to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects specified events."
    },
    "RecordsEvent" : {
      "type" : "object",
      "properties" : {
        "Payload" : {
          "description" : "The byte array of partial, one or more result records.",
          "$ref" : "#/definitions/Body"
        }
      },
      "description" : "<p/>"
    },
    "ReplaceKeyPrefixWith" : {
      "type" : "string"
    },
    "ReplaceKeyWith" : {
      "type" : "string"
    },
    "Redirect" : {
      "type" : "object",
      "properties" : {
        "HostName" : {
          "description" : "The host name to use in the redirect request.",
          "$ref" : "#/definitions/HostName"
        },
        "HttpRedirectCode" : {
          "description" : "The HTTP redirect code to use on the response. Not required if one of the siblings is present.",
          "$ref" : "#/definitions/HttpRedirectCode"
        },
        "Protocol" : {
          "description" : "Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request.",
          "$ref" : "#/definitions/Protocol"
        },
        "ReplaceKeyPrefixWith" : {
          "description" : "The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/, you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents. Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.",
          "$ref" : "#/definitions/ReplaceKeyPrefixWith"
        },
        "ReplaceKeyWith" : {
          "description" : "The specific object key to use in the redirect request. For example, redirect request to error.html. Not required if one of the sibling is present. Can be present only if ReplaceKeyPrefixWith is not provided.",
          "$ref" : "#/definitions/ReplaceKeyWith"
        }
      },
      "description" : "<p/>"
    },
    "Role" : {
      "type" : "string"
    },
    "SelectParameters" : {
      "type" : "object",
      "required" : [ "Expression", "ExpressionType", "InputSerialization", "OutputSerialization" ],
      "properties" : {
        "InputSerialization" : {
          "description" : "Describes the serialization format of the object.",
          "$ref" : "#/definitions/InputSerialization"
        },
        "ExpressionType" : {
          "description" : "The type of the provided expression (e.g., SQL).",
          "$ref" : "#/definitions/ExpressionType"
        },
        "Expression" : {
          "description" : "The expression that is used to query the object.",
          "$ref" : "#/definitions/Expression"
        },
        "OutputSerialization" : {
          "description" : "Describes how the results of the Select job are serialized.",
          "$ref" : "#/definitions/OutputSerialization"
        }
      },
      "description" : "Describes the parameters for Select job types."
    },
    "RoutingRule" : {
      "type" : "object",
      "required" : [ "Redirect" ],
      "properties" : {
        "Condition" : {
          "description" : "A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.",
          "$ref" : "#/definitions/Condition"
        },
        "Redirect" : {
          "description" : "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.",
          "$ref" : "#/definitions/Redirect"
        }
      },
      "description" : "<p/>"
    },
    "Rule" : {
      "type" : "object",
      "required" : [ "Prefix", "Status" ],
      "properties" : {
        "ID" : {
          "description" : "Unique identifier for the rule. The value cannot be longer than 255 characters.",
          "$ref" : "#/definitions/ID"
        },
        "Prefix" : {
          "description" : "Prefix identifying one or more objects to which the rule applies.",
          "$ref" : "#/definitions/Prefix"
        },
        "Status" : {
          "description" : "If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.",
          "$ref" : "#/definitions/ExpirationStatus"
        }
      }
    },
    "UserMetadata" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/MetadataEntry"
      }
    },
    "StatsEvent" : {
      "type" : "object",
      "properties" : {
        "Details" : {
          "description" : "The Stats event details.",
          "$ref" : "#/definitions/Stats"
        }
      },
      "description" : "<p/>"
    },
    "Stats" : {
      "type" : "object",
      "properties" : {
        "BytesScanned" : {
          "description" : "The total number of object bytes scanned.",
          "$ref" : "#/definitions/BytesScanned"
        },
        "BytesProcessed" : {
          "description" : "The total number of uncompressed object bytes processed.",
          "$ref" : "#/definitions/BytesProcessed"
        },
        "BytesReturned" : {
          "description" : "The total number of bytes of records payload data returned.",
          "$ref" : "#/definitions/BytesReturned"
        }
      },
      "description" : "<p/>"
    },
    "Value" : {
      "type" : "string"
    },
    "TargetGrant" : {
      "type" : "object",
      "properties" : {
        "Grantee" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/Grantee"
        },
        "Permission" : {
          "description" : "Logging permissions assigned to the Grantee for the bucket.",
          "$ref" : "#/definitions/BucketLogsPermission"
        }
      },
      "description" : "<p/>"
    },
    "TopicArn" : {
      "type" : "string"
    },
    "TopicConfiguration" : {
      "type" : "object",
      "required" : [ "Events", "TopicArn" ],
      "properties" : {
        "Id" : {
          "$ref" : "#/definitions/NotificationId"
        },
        "TopicArn" : {
          "description" : "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 will publish a message when it detects events of the specified type.",
          "$ref" : "#/definitions/TopicArn"
        },
        "Events" : {
          "description" : "<p/>",
          "$ref" : "#/definitions/EventList"
        },
        "Filter" : {
          "$ref" : "#/definitions/NotificationConfigurationFilter"
        }
      },
      "description" : "A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3 detects specified events."
    },
    "Metadata_inner" : {
      "properties" : {
        "key" : {
          "$ref" : "#/definitions/MetadataKey"
        },
        "value" : {
          "$ref" : "#/definitions/MetadataValue"
        }
      }
    }
  },
  "parameters" : {
    "x-amz-security-token" : {
      "name" : "x-amz-security-token",
      "in" : "header",
      "required" : false,
      "type" : "string"
    }
  },
  "x-hasEquivalentPaths" : true
}