{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2006-03-01",
    "checksumFormat":"md5",
    "endpointPrefix":"s3",
    "globalEndpoint":"s3.amazonaws.com",
    "protocol":"rest-xml",
    "serviceAbbreviation":"Amazon S3",
    "serviceFullName":"Amazon Simple Storage Service",
    "serviceId":"S3",
    "signatureVersion":"s3",
    "uid":"s3-2006-03-01"
  },
  "operations":{
    "DeleteObjects":{
      "name":"DeleteObjects",
      "http":{
        "method":"POST",
        "requestUri":"/{Bucket}?delete"
      },
      "input":{"shape":"DeleteObjectsRequest"},
      "output":{"shape":"DeleteObjectsOutput"},
      "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html",
      "alias":"DeleteMultipleObjects",
      "httpChecksumRequired":true
    },
    "GetObject":{
      "name":"GetObject",
      "http":{
        "method":"GET",
        "requestUri":"/{Bucket}/{Key+}"
      },
      "input":{"shape":"GetObjectRequest"},
      "output":{"shape":"GetObjectOutput"},
      "errors":[
        {"shape":"NoSuchKey"}
      ],
      "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html"
    },
    "PutBucketLogging":{
      "name":"PutBucketLogging",
      "http":{
        "method":"PUT",
        "requestUri":"/{Bucket}?logging"
      },
      "input":{"shape":"PutBucketLoggingRequest"},
      "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html",
      "httpChecksumRequired":true
    }
  },
  "shapes":{
    "Bucket":{
      "type":"structure",
      "members":{
        "Name":{"shape":"BucketName"},
        "CreationDate":{"shape":"CreationDate"}
      }
    },
    "BucketLoggingStatus":{
      "type":"structure",
      "members":{
        "LoggingEnabled":{"shape":"LoggingEnabled"}
      }
    },
    "BucketName":{"type":"string"},
    "BypassGovernanceRetention":{"type":"boolean"},
    "ContentMD5":{"type":"string"},
    "Delete":{
      "type":"structure",
      "required":["Objects"],
      "members":{
        "Objects":{
          "shape":"ObjectIdentifierList",
          "locationName":"Object"
        },
        "Quiet":{"shape":"Quiet"}
      }
    },
    "DeleteObjectsOutput":{
      "type":"structure",
      "members":{
        "Deleted":{"shape":"DeletedObjects"},
        "RequestCharged":{
          "shape":"RequestCharged",
          "location":"header",
          "locationName":"x-amz-request-charged"
        },
        "Errors":{
          "shape":"Errors",
          "locationName":"Error"
        }
      }
    },
    "DeleteObjectsRequest":{
      "type":"structure",
      "required":[
        "Bucket",
        "Delete"
      ],
      "members":{
        "Bucket":{
          "shape":"BucketName",
          "location":"uri",
          "locationName":"Bucket"
        },
        "Delete":{
          "shape":"Delete",
          "locationName":"Delete",
          "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}
        }
      },
      "payload":"Delete"
    },
    "GetObjectOutput":{
      "type":"structure",
      "members":{
        "Body":{
          "shape":"Body",
          "streaming":true
        }
      },
      "payload":"Body"
    },
    "GetObjectRequest":{
      "type":"structure",
      "required":[
        "Bucket",
        "Key"
      ],
      "members":{
        "Bucket":{
          "shape":"BucketName",
          "location":"uri",
          "locationName":"Bucket"
        },
        "Key":{
          "shape":"ObjectKey",
          "location":"uri",
          "locationName":"Key"
        }
      }
    },
    "IfMatch":{"type":"string"},
    "IfModifiedSince":{"type":"timestamp"},
    "LoggingEnabled":{
      "type":"structure",
      "required":[
        "TargetBucket",
        "TargetPrefix"
      ],
      "members":{
        "TargetBucket":{"shape":"TargetBucket"},
        "TargetGrants":{"shape":"TargetGrants"},
        "TargetPrefix":{"shape":"TargetPrefix"}
      }
    },
    "MFA":{"type":"string"},
    "ObjectIdentifier":{
      "type":"structure",
      "required":["Key"],
      "members":{
        "Key":{"shape":"ObjectKey"}
      }
    },
    "ObjectIdentifierList":{
      "type":"list",
      "member":{"shape":"ObjectIdentifier"},
      "flattened":true
    },
    "ObjectKey":{
      "type":"string",
      "min":1
    },
    "PutBucketLoggingRequest":{
      "type":"structure",
      "required":[
        "Bucket",
        "BucketLoggingStatus"
      ],
      "members":{
        "Bucket":{
          "shape":"BucketName",
          "location":"uri",
          "locationName":"Bucket"
        },
        "BucketLoggingStatus":{
          "shape":"BucketLoggingStatus",
          "locationName":"BucketLoggingStatus",
          "xmlNamespace":{"uri":"http://s3.amazonaws.com/doc/2006-03-01/"}
        },
        "ContentMD5":{
          "shape":"ContentMD5",
          "deprecated":true,
          "deprecatedMessage":"Content-MD5 header will now be automatically computed and injected in associated operation's Http request.",
          "location":"header",
          "locationName":"Content-MD5"
        }
      },
      "payload":"BucketLoggingStatus"
    },
    "Quiet":{"type":"boolean"},
    "RequestPayer":{
      "type":"string",
      "enum":["requester"]
    },
    "TargetBucket":{"type":"string"},
    "TargetGrant":{
      "type":"structure",
      "members":{
        "Grantee":{"shape":"Grantee"},
        "Permission":{"shape":"BucketLogsPermission"}
      }
    },
    "TargetGrants":{
      "type":"list",
      "member":{
        "shape":"TargetGrant",
        "locationName":"Grant"
      }
    },
    "TargetPrefix":{"type":"string"}
  }
}
