./knowledge-base/lambda/layers/common/python/boto3/data/s3/2006-03-01/resources-1.json

{
  "service": {
    "actions": {
      "CreateBucket": {
        "request": { "operation": "CreateBucket" },
        "resource": {
          "type": "Bucket",
          "identifiers": [
            { "target": "Name", "source": "requestParameter", "path": "Bucket" }
          ]
        }
      }
    },
    "has": {
      "Bucket": {
        "resource": {
          "type": "Bucket",
          "identifiers": [
            { "target": "Name", "source": "input" }
          ]
        }
      }
    },
    "hasMany": {
      "Buckets": {
        "request": { "operation": "ListBuckets" },
        "resource": {
          "type": "Bucket",
          "identifiers": [
            { "target": "Name", "source": "response", "path": "Buckets[].Name" }
          ],
          "path": "Buckets[]"
        }
      }
    }
  },
  "resources": {
    "Bucket": {
      "identifiers": [
        { "name": "Name" }
      ],
      "shape": "Bucket",
      "actions": {
        "Create": {
          "request": {
            "operation": "CreateBucket",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Delete": {
          "request": {
            "operation": "DeleteBucket",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "DeleteObjects": {
          "request": {
            "operation": "DeleteObjects",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "PutObject": {
          "request": {
            "operation": "PutObject",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          },
          "resource": {
            "type": "Object",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" },
              { "target": "Key", "source": "requestParameter", "path": "Key" }
            ]
          }
        }
      },
      "waiters": {
        "Exists": {
          "waiterName": "BucketExists",
          "params": [
            { "target": "Bucket", "source": "identifier", "name": "Name" }
          ]
        },
        "NotExists": {
          "waiterName": "BucketNotExists",
          "params": [
            { "target": "Bucket", "source": "identifier", "name": "Name" }
          ]
        }
      },
      "has": {
        "Acl": {
          "resource": {
            "type": "BucketAcl",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Cors": {
          "resource": {
            "type": "BucketCors",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Lifecycle": {
          "resource": {
            "type": "BucketLifecycle",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "LifecycleConfiguration": {
          "resource": {
            "type": "BucketLifecycleConfiguration",
            "identifiers": [
              {
                "target": "BucketName",
                "source": "identifier",
                "name": "Name"
              }
            ]
          }
        },
        "Logging": {
          "resource": {
            "type": "BucketLogging",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Notification": {
          "resource": {
            "type": "BucketNotification",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Object": {
          "resource": {
            "type": "Object",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" },
              { "target": "Key", "source": "input" }
            ]
          }
        },
        "Policy": {
          "resource": {
            "type": "BucketPolicy",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "RequestPayment": {
          "resource": {
            "type": "BucketRequestPayment",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Tagging": {
          "resource": {
            "type": "BucketTagging",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Versioning": {
          "resource": {
            "type": "BucketVersioning",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        },
        "Website": {
          "resource": {
            "type": "BucketWebsite",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" }
            ]
          }
        }
      },
      "hasMany": {
        "MultipartUploads": {
          "request": {
            "operation": "ListMultipartUploads",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          },
          "resource": {
            "type": "MultipartUpload",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" },
              { "target": "ObjectKey", "source": "response", "path": "Uploads[].Key" },
              { "target": "Id", "source": "response", "path": "Uploads[].UploadId" }
            ],
            "path": "Uploads[]"
          }
        },
        "ObjectVersions": {
          "request": {
            "operation": "ListObjectVersions",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          },
          "resource": {
            "type": "ObjectVersion",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" },
              { "target": "ObjectKey", "source": "response", "path": "[Versions,DeleteMarkers]|[].Key" },
              { "target": "Id", "source": "response", "path": "[Versions,DeleteMarkers]|[].VersionId" }
            ],
            "path": "[Versions,DeleteMarkers]|[]"
          }
        },
        "Objects": {
          "request": {
            "operation": "ListObjects",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "Name" }
            ]
          },
          "resource": {
            "type": "ObjectSummary",
            "identifiers": [
              { "target": "BucketName", "source": "identifier", "name": "Name" },
              { "target": "Key", "source": "response", "path": "Contents[].Key" }
            ],
            "path": "Contents[]"
          }
        }
      }
    },
    "BucketAcl": {
      "identifiers": [
        { "name": "BucketName" }
      ],
      "shape": "GetBucketAclOutput",
      "load": {
        "request": {
          "operation": "GetBucketAcl",
          "params": [
            { "target": "Bucket", "source": "identifier", "name": "BucketName" }
          ]
        },
        "path": "@"
      },
      "actions": {
        "Put": {
          "request": {
            "operation": "PutBucketAcl",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      },
      "has": {
        "Bucket": {
          "resource": {
            "type": "Bucket",
            "identifiers": [
              { "target": "Name", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      }
    },
    "BucketCors": {
      "identifiers": [
        { "name": "BucketName" }
      ],
      "shape": "GetBucketCorsOutput",
      "load": {
        "request": {
          "operation": "GetBucketCors",
          "params": [
            { "target": "Bucket", "source": "identifier", "name": "BucketName" }
          ]
        },
        "path": "@"
      },
      "actions": {
        "Delete": {
          "request": {
            "operation": "DeleteBucketCors",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "BucketName" }
            ]
          }
        },
        "Put": {
          "request": {
            "operation": "PutBucketCors",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      },
      "has": {
        "Bucket": {
          "resource": {
            "type": "Bucket",
            "identifiers": [
              { "target": "Name", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      }
    },
    "BucketLifecycle": {
      "identifiers": [
        { "name": "BucketName" }
      ],
      "shape": "GetBucketLifecycleOutput",
      "load": {
        "request": {
          "operation": "GetBucketLifecycle",
          "params": [
            { "target": "Bucket", "source": "identifier", "name": "BucketName" }
          ]
        },
        "path": "@"
      },
      "actions": {
        "Delete": {
          "request": {
            "operation": "DeleteBucketLifecycle",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "BucketName" }
            ]
          }
        },
        "Put": {
          "request": {
            "operation": "PutBucketLifecycle",
            "params": [
              { "target": "Bucket", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      },
      "has": {
        "Bucket": {
          "resource": {
            "type": "Bucket",
            "identifiers": [
              { "target": "Name", "source": "identifier", "name": "BucketName" }
            ]
          }
        }
      }
    },
    "BucketLifecycleConfiguration": {
      "identifiers": [
        {
          "name": "BucketName"
        }
      ],
      "shape": "GetBucketLifecycleConfigurationOutput",
      "load": {
        "request": {
          "operation": "GetBucketLifecycleConfiguration",
          "params": [
            {
              "target": "Bucket",
              "source": "identifier",
              "name": "BucketName"
            }
          ]
        },
        "path": "@"
      },
      "actions": {
        "Delete": {
          "request": {
            "operation": "DeleteBucketLifecycle",
            "params": [
              {