{
    "additionalProperties": false,
    "description": "Snowplow Snowflake storage configuration",
    "properties": {
        "account": {
            "type": "string"
        },
        "auth": {
            "description": "Authentication method for Snowflake Load",
            "oneOf": [
                {
                    "properties": {
                        "accessKeyId": {
                            "type": "string"
                        },
                        "secretAccessKey": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "accessKeyId",
                        "secretAccessKey"
                    ],
                    "type": "object"
                },
                {
                    "properties": {
                        "roleArn": {
                            "minLength": 20,
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "sessionDuration": {
                            "minimum": 900,
                            "type": "integer"
                        }
                    },
                    "required": [
                        "roleArn",
                        "sessionDuration"
                    ],
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ]
        },
        "awsRegion": {
            "type": "string"
        },
        "database": {
            "type": "string"
        },
        "id": {
            "_format": "uuid",
            "type": "string"
        },
        "input": {
            "_format": "uri",
            "type": "string"
        },
        "jdbcHost": {
            "type": "string"
        },
        "manifest": {
            "type": "string"
        },
        "maxError": {
            "type": "integer"
        },
        "name": {
            "type": "string"
        },
        "password": {
            "properties": {
                "ec2ParameterStore": {
                    "properties": {
                        "parameterName": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "parameterName"
                    ],
                    "type": "object"
                }
            },
            "required": [
                "ec2ParameterStore"
            ],
            "type": [
                "string",
                "object"
            ]
        },
        "purpose": {
            "enum": [
                "ENRICHED_EVENTS"
            ],
            "type": "string"
        },
        "schema": {
            "type": "string"
        },
        "snowflakeRegion": {
            "type": "string"
        },
        "stage": {
            "type": "string"
        },
        "stageUrl": {
            "_format": "uri",
            "type": "string"
        },
        "username": {
            "type": "string"
        },
        "warehouse": {
            "type": "string"
        }
    },
    "required": [
        "name",
        "auth",
        "awsRegion",
        "manifest",
        "snowflakeRegion",
        "database",
        "account",
        "warehouse",
        "input",
        "stage",
        "stageUrl",
        "username",
        "password",
        "purpose"
    ],
    "self": {
        "format": "jsonschema",
        "name": "snowflake_config",
        "vendor": "com.snowplowanalytics.snowplow.storage",
        "version": "1-0-1"
    },
    "type": "object"
}