{
    "enumDefs": [],
    "structDefs": [
        {
            "name":        "aws_s3_bucket_lifeCycleRule",
            "description": "Atlas Type representing the life cycle rules for S3 object store bucket",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name":        "ruleType",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  false,
                    "isUnique":    false
                },
                {
                    "name":        "days",
                    "typeName":    "int",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  false,
                    "isUnique":    false
                },
                {
                    "name":        "storageClass",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                }
            ]
        },
        {
            "name":        "aws_s3_access_policy",
            "description": "Atlas Type representing an access policy statement on an S3 bucket. Can later be fleshed out to represent the JSON structure of the statement.",
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name":        "policyString",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  false,
                    "isUnique":    false
                }
            ]
        }
    ],
    "classificationDefs": [],
    "entityDefs": [
        {
            "name":        "aws_s3_object",
            "description": "Atlas Type representing an Object (file) in an S3 Object Store Bucket",
            "superTypes":  [ "DataSet" ],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name":        "pseudoDirectory",
                    "typeName":    "aws_s3_pseudo_dir",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  false,
                    "isUnique":    false,
                    "constraints": [
                        {
                            "type": "inverseRef",
                            "params": {
                                "attribute": "s3Objects"
                            }
                        }
                    ]
                },
                {
                    "name":        "dataType",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "avroSchema",
                    "typeName":    "avro_schema",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "compressionType",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "awsTags",
                    "typeName":    "array<aws_tag>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "createTime",
                    "typeName":    "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                }
            ]
        },
        {
            "name":        "aws_s3_pseudo_dir",
            "description": "Atlas Type representing a Pseudo-Directory (prefix) in an S3 Object Store Bucket",
            "superTypes":  [ "DataSet" ],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name":        "objectPrefix",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  false,
                    "isUnique":    true
                },
                {
                    "name":        "bucket",
                    "typeName":    "aws_s3_bucket",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  false,
                    "isUnique":    false,
                    "constraints": [
                        {
                            "type": "inverseRef",
                            "params": {
                                "attribute": "pseudoDirectories"
                            }
                        }
                    ]
                },
                {
                    "name":        "s3Objects",
                    "typeName":    "array<aws_s3_object>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false,
                    "constraints": [
                        {
                            "type": "ownedRef"
                        }
                    ]
                },
                {
                    "name":        "avroSchemas",
                    "typeName":    "array<avro_schema>",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "subdomain",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "subject",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "currentStorageLocation",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "dataType",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "awsTags",
                    "typeName":    "array<aws_tag>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "createTime",
                    "typeName":    "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                }
            ]
        },
        {
            "name":        "aws_s3_bucket",
            "description": "Atlas Type representing a Bucket in an AWS S3 Object Store",
            "superTypes":  [ "DataSet" ],
            "typeVersion": "1.0",
            "attributeDefs": [
                {
                    "name":        "partner",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "domain",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "pseudoDirectories",
                    "typeName":    "array<aws_s3_pseudo_dir>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false,
                    "constraints": [
                        {
                            "type": "ownedRef"
                        }
                    ]
                },
                {
                    "name":        "region",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "s3AccessPolicies",
                    "typeName":    "array<aws_s3_access_policy>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "isEncrypted",
                    "typeName":    "boolean",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "encryptionType",
                    "typeName":    "string",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "lifeCycleRules",
                    "typeName":    "array<aws_s3_bucket_lifeCycleRule>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "awsTags",
                    "typeName":    "array<aws_tag>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "cloudWatchMetrics",
                    "typeName":    "array<aws_cloud_watch_metric>",
                    "cardinality": "SINGLE",
                    "isIndexable": false,
                    "isOptional":  true,
                    "isUnique":    false
                },
                {
                    "name":        "createtime",
                    "typeName":    "date",
                    "cardinality": "SINGLE",
                    "isIndexable": true,
                    "isOptional":  true,
                    "isUnique":    false
                }
            ]
        }
    ],
    "relationshipDefs": [
        {
            "name":                 "aws_s3_bucket_aws_s3_pseudo_dirs",
            "typeVersion":          "1.0",
            "relationshipCategory": "COMPOSITION",
            "endDef1": {
                "type":              "aws_s3_bucket",
                "name":              "pseudoDirectories",
                "isContainer":       true,
                "cardinality":       "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type":               "aws_s3_pseudo_dir",
                "name":               "bucket",
                "isContainer":       false,
                "cardinality":       "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "ONE_TO_TWO"
        },
        {
            "name":                 "aws_s3_pseudo_dir_aws_objects",
            "typeVersion":          "1.0",
            "relationshipCategory": "COMPOSITION",
            "endDef1": {
                "type":              "aws_s3_pseudo_dir",
                "name":              "s3Objects",
                "isContainer":       true,
                "cardinality":       "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type":              "aws_s3_object",
                "name":              "pseudoDirectory",
                "isContainer":       false,
                "cardinality":       "SINGLE",
                "isLegacyAttribute": true
            },
            "propagateTags": "ONE_TO_TWO"
        },
        {
            "name":                 "aws_s3_object_avro_schema",
            "typeVersion":          "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type":              "aws_s3_object",
                "name":              "avroSchema",
                "isContainer":       false,
                "cardinality":       "SINGLE",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type":              "avro_schema",
                "name":              "s3Objects",
                "isContainer":       false,
                "cardinality":       "SET"
            },
            "propagateTags": "NONE"
        },
        {
            "name":                 "aws_s3_pseudo_dir_avro_schema",
            "typeVersion":          "1.0",
            "relationshipCategory": "ASSOCIATION",
            "endDef1": {
                "type":              "aws_s3_pseudo_dir",
                "name":              "avroSchemas",
                "isContainer":       false,
                "cardinality":       "SET",
                "isLegacyAttribute": true
            },
            "endDef2": {
                "type":              "avro_schema",
                "name":              "s3PseudoDirs",
                "isContainer":       false,
                "cardinality":       "SET"
            },
            "propagateTags": "NONE"
        }
    ]
}
