{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2018-08-20",
    "endpointPrefix": "s3-control",
    "protocol": "rest-xml",
    "serviceFullName": "AWS S3 Control",
    "serviceId": "S3 Control",
    "signatureVersion": "s3v4",
    "signingName": "s3",
    "uid": "s3control-2018-08-20"
  },
  "operations": {
    "CreateAccessPoint": {
      "http": {
        "method": "PUT",
        "requestUri": "/v20180820/accesspoint/{name}"
      },
      "input": {
        "locationName": "CreateAccessPointRequest",
        "xmlNamespace": {
          "uri": "http://awss3control.amazonaws.com/doc/2018-08-20/"
        },
        "type": "structure",
        "required": [
          "AccountId",
          "Name",
          "Bucket"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          },
          "Bucket": {},
          "VpcConfiguration": {
            "shape": "S5"
          },
          "PublicAccessBlockConfiguration": {
            "shape": "S7"
          }
        }
      }
    },
    "CreateJob": {
      "http": {
        "requestUri": "/v20180820/jobs"
      },
      "input": {
        "locationName": "CreateJobRequest",
        "xmlNamespace": {
          "uri": "http://awss3control.amazonaws.com/doc/2018-08-20/"
        },
        "type": "structure",
        "required": [
          "AccountId",
          "Operation",
          "Report",
          "ClientRequestToken",
          "Manifest",
          "Priority",
          "RoleArn"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "ConfirmationRequired": {
            "type": "boolean"
          },
          "Operation": {
            "shape": "Sb"
          },
          "Report": {
            "shape": "S1h"
          },
          "ClientRequestToken": {
            "idempotencyToken": true
          },
          "Manifest": {
            "shape": "S1m"
          },
          "Description": {},
          "Priority": {
            "type": "integer"
          },
          "RoleArn": {},
          "Tags": {
            "shape": "Sv"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "JobId": {}
        }
      }
    },
    "DeleteAccessPoint": {
      "http": {
        "method": "DELETE",
        "requestUri": "/v20180820/accesspoint/{name}"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Name"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          }
        }
      }
    },
    "DeleteAccessPointPolicy": {
      "http": {
        "method": "DELETE",
        "requestUri": "/v20180820/accesspoint/{name}/policy"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Name"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          }
        }
      }
    },
    "DeleteJobTagging": {
      "http": {
        "method": "DELETE",
        "requestUri": "/v20180820/jobs/{id}/tagging"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "JobId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeletePublicAccessBlock": {
      "http": {
        "method": "DELETE",
        "requestUri": "/v20180820/configuration/publicAccessBlock"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          }
        }
      }
    },
    "DescribeJob": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/jobs/{id}"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "JobId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Job": {
            "type": "structure",
            "members": {
              "JobId": {},
              "ConfirmationRequired": {
                "type": "boolean"
              },
              "Description": {},
              "JobArn": {},
              "Status": {},
              "Manifest": {
                "shape": "S1m"
              },
              "Operation": {
                "shape": "Sb"
              },
              "Priority": {
                "type": "integer"
              },
              "ProgressSummary": {
                "shape": "S29"
              },
              "StatusUpdateReason": {},
              "FailureReasons": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "members": {
                    "FailureCode": {},
                    "FailureReason": {}
                  }
                }
              },
              "Report": {
                "shape": "S1h"
              },
              "CreationTime": {
                "type": "timestamp"
              },
              "TerminationDate": {
                "type": "timestamp"
              },
              "RoleArn": {},
              "SuspendedDate": {
                "type": "timestamp"
              },
              "SuspendedCause": {}
            }
          }
        }
      }
    },
    "GetAccessPoint": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/accesspoint/{name}"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Name"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Name": {},
          "Bucket": {},
          "NetworkOrigin": {},
          "VpcConfiguration": {
            "shape": "S5"
          },
          "PublicAccessBlockConfiguration": {
            "shape": "S7"
          },
          "CreationDate": {
            "type": "timestamp"
          }
        }
      }
    },
    "GetAccessPointPolicy": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/accesspoint/{name}/policy"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Name"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Policy": {}
        }
      }
    },
    "GetAccessPointPolicyStatus": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/accesspoint/{name}/policyStatus"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Name"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "PolicyStatus": {
            "type": "structure",
            "members": {
              "IsPublic": {
                "locationName": "IsPublic",
                "type": "boolean"
              }
            }
          }
        }
      }
    },
    "GetJobTagging": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/jobs/{id}/tagging"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "JobId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Tags": {
            "shape": "Sv"
          }
        }
      }
    },
    "GetPublicAccessBlock": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/configuration/publicAccessBlock"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "PublicAccessBlockConfiguration": {
            "shape": "S7"
          }
        },
        "payload": "PublicAccessBlockConfiguration"
      }
    },
    "ListAccessPoints": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/accesspoint"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Bucket": {
            "location": "querystring",
            "locationName": "bucket"
          },
          "NextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "MaxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AccessPointList": {
            "type": "list",
            "member": {
              "locationName": "AccessPoint",
              "type": "structure",
              "required": [
                "Name",
                "NetworkOrigin",
                "Bucket"
              ],
              "members": {
                "Name": {},
                "NetworkOrigin": {},
                "VpcConfiguration": {
                  "shape": "S5"
                },
                "Bucket": {}
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListJobs": {
      "http": {
        "method": "GET",
        "requestUri": "/v20180820/jobs"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobStatuses": {
            "location": "querystring",
            "locationName": "jobStatuses",
            "type": "list",
            "member": {}
          },
          "NextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "MaxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "NextToken": {},
          "Jobs": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "JobId": {},
                "Description": {},
                "Operation": {},
                "Priority": {
                  "type": "integer"
                },
                "Status": {},
                "CreationTime": {
                  "type": "timestamp"
                },
                "TerminationDate": {
                  "type": "timestamp"
                },
                "ProgressSummary": {
                  "shape": "S29"
                }
              }
            }
          }
        }
      }
    },
    "PutAccessPointPolicy": {
      "http": {
        "method": "PUT",
        "requestUri": "/v20180820/accesspoint/{name}/policy"
      },
      "input": {
        "locationName": "PutAccessPointPolicyRequest",
        "xmlNamespace": {
          "uri": "http://awss3control.amazonaws.com/doc/2018-08-20/"
        },
        "type": "structure",
        "required": [
          "AccountId",
          "Name",
          "Policy"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "Name": {
            "location": "uri",
            "locationName": "name"
          },
          "Policy": {}
        }
      }
    },
    "PutJobTagging": {
      "http": {
        "method": "PUT",
        "requestUri": "/v20180820/jobs/{id}/tagging"
      },
      "input": {
        "locationName": "PutJobTaggingRequest",
        "xmlNamespace": {
          "uri": "http://awss3control.amazonaws.com/doc/2018-08-20/"
        },
        "type": "structure",
        "required": [
          "AccountId",
          "JobId",
          "Tags"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          },
          "Tags": {
            "shape": "Sv"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "PutPublicAccessBlock": {
      "http": {
        "method": "PUT",
        "requestUri": "/v20180820/configuration/publicAccessBlock"
      },
      "input": {
        "type": "structure",
        "required": [
          "PublicAccessBlockConfiguration",
          "AccountId"
        ],
        "members": {
          "PublicAccessBlockConfiguration": {
            "shape": "S7",
            "locationName": "PublicAccessBlockConfiguration",
            "xmlNamespace": {
              "uri": "http://awss3control.amazonaws.com/doc/2018-08-20/"
            }
          },
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          }
        },
        "payload": "PublicAccessBlockConfiguration"
      }
    },
    "UpdateJobPriority": {
      "http": {
        "requestUri": "/v20180820/jobs/{id}/priority"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "JobId",
          "Priority"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          },
          "Priority": {
            "location": "querystring",
            "locationName": "priority",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "JobId",
          "Priority"
        ],
        "members": {
          "JobId": {},
          "Priority": {
            "type": "integer"
          }
        }
      }
    },
    "UpdateJobStatus": {
      "http": {
        "requestUri": "/v20180820/jobs/{id}/status"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "JobId",
          "RequestedJobStatus"
        ],
        "members": {
          "AccountId": {
            "location": "header",
            "locationName": "x-amz-account-id"
          },
          "JobId": {
            "location": "uri",
            "locationName": "id"
          },
          "RequestedJobStatus": {
            "location": "querystring",
            "locationName": "requestedJobStatus"
          },
          "StatusUpdateReason": {
            "location": "querystring",
            "locationName": "statusUpdateReason"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "JobId": {},
          "Status": {},
          "StatusUpdateReason": {}
        }
      }
    }
  },
  "shapes": {
    "S5": {
      "type": "structure",
      "required": [
        "VpcId"
      ],
      "members": {
        "VpcId": {}
      }
    },
    "S7": {
      "type": "structure",
      "members": {
        "BlockPublicAcls": {
          "locationName": "BlockPublicAcls",
          "type": "boolean"
        },
        "IgnorePublicAcls": {
          "locationName": "IgnorePublicAcls",
          "type": "boolean"
        },
        "BlockPublicPolicy": {
          "locationName": "BlockPublicPolicy",
          "type": "boolean"
        },
        "RestrictPublicBuckets": {
          "locationName": "RestrictPublicBuckets",
          "type": "boolean"
        }
      }
    },
    "Sb": {
      "type": "structure",
      "members": {
        "LambdaInvoke": {
          "type": "structure",
          "members": {
            "FunctionArn": {}
          }
        },
        "S3PutObjectCopy": {
          "type": "structure",
          "members": {
            "TargetResource": {},
            "CannedAccessControlList": {},
            "AccessControlGrants": {
              "shape": "Sh"
            },
            "MetadataDirective": {},
            "ModifiedSinceConstraint": {
              "type": "timestamp"
            },
            "NewObjectMetadata": {
              "type": "structure",
              "members": {
                "CacheControl": {},
                "ContentDisposition": {},
                "ContentEncoding": {},
                "ContentLanguage": {},
                "UserMetadata": {
                  "type": "map",
                  "key": {},
                  "value": {}
                },
                "ContentLength": {
                  "type": "long"
                },
                "ContentMD5": {},
                "ContentType": {},
                "HttpExpiresDate": {
                  "type": "timestamp"
                },
                "RequesterCharged": {
                  "type": "boolean"
                },
                "SSEAlgorithm": {}
              }
            },
            "NewObjectTagging": {
              "shape": "Sv"
            },
            "RedirectLocation": {},
            "RequesterPays": {
              "type": "boolean"
            },
            "StorageClass": {},
            "UnModifiedSinceConstraint": {
              "type": "timestamp"
            },
            "SSEAwsKmsKeyId": {},
            "TargetKeyPrefix": {},
            "ObjectLockLegalHoldStatus": {},
            "ObjectLockMode": {},
            "ObjectLockRetainUntilDate": {
              "type": "timestamp"
            }
          }
        },
        "S3PutObjectAcl": {
          "type": "structure",
          "members": {
            "AccessControlPolicy": {
              "type": "structure",
              "members": {
                "AccessControlList": {
                  "type": "structure",
                  "required": [
                    "Owner"
                  ],
                  "members": {
                    "Owner": {
                      "type": "structure",
                      "members": {
                        "ID": {},
                        "DisplayName": {}
                      }
                    },
                    "Grants": {
                      "shape": "Sh"
                    }
                  }
                },
                "CannedAccessControlList": {}
              }
            }
          }
        },
        "S3PutObjectTagging": {
          "type": "structure",
          "members": {
            "TagSet": {
              "shape": "Sv"
            }
          }
        },
        "S3InitiateRestoreObject": {
          "type": "structure",
          "members": {
            "ExpirationInDays": {
              "type": "integer"
            },
            "GlacierJobTier": {}
          }
        },
        "S3PutObjectLegalHold": {
          "type": "structure",
          "required": [
            "LegalHold"
          ],
          "members": {
            "LegalHold": {
              "type": "structure",
              "required": [
                "Status"
              ],
              "members": {
                "Status": {}
              }
            }
          }
        },
        "S3PutObjectRetention": {
          "type": "structure",
          "required": [
            "Retention"
          ],
          "members": {
            "BypassGovernanceRetention": {
              "type": "boolean"
            },
            "Retention": {
              "type": "structure",
              "members": {
                "RetainUntilDate": {
                  "type": "timestamp"
                },
                "Mode": {}
              }
            }
          }
        }
      }
    },
    "Sh": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "Grantee": {
            "type": "structure",
            "members": {
              "TypeIdentifier": {},
              "Identifier": {},
              "DisplayName": {}
            }
          },
          "Permission": {}
        }
      }
    },
    "Sv": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Key",
          "Value"
        ],
        "members": {
          "Key": {},
          "Value": {}
        }
      }
    },
    "S1h": {
      "type": "structure",
      "required": [
        "Enabled"
      ],
      "members": {
        "Bucket": {},
        "Format": {},
        "Enabled": {
          "type": "boolean"
        },
        "Prefix": {},
        "ReportScope": {}
      }
    },
    "S1m": {
      "type": "structure",
      "required": [
        "Spec",
        "Location"
      ],
      "members": {
        "Spec": {
          "type": "structure",
          "required": [
            "Format"
          ],
          "members": {
            "Format": {},
            "Fields": {
              "type": "list",
              "member": {}
            }
          }
        },
        "Location": {
          "type": "structure",
          "required": [
            "ObjectArn",
            "ETag"
          ],
          "members": {
            "ObjectArn": {},
            "ObjectVersionId": {},
            "ETag": {}
          }
        }
      }
    },
    "S29": {
      "type": "structure",
      "members": {
        "TotalNumberOfTasks": {
          "type": "long"
        },
        "NumberOfTasksSucceeded": {
          "type": "long"
        },
        "NumberOfTasksFailed": {
          "type": "long"
        }
      }
    }
  }
}