{
  "name": "s3",
  "version": "1.0.0",
  "kind": "l1",
  "type": "aws:s3:bucket",
  "description": "S3 bucket primitive (engine-agnostic stack type aws:s3:bucket; the Terraform adapter translates to aws_s3_bucket).",
  "inputs": {
    "bucket_name": {
      "type": "string",
      "description": "Globally-unique S3 bucket name.",
      "required": true
    },
    "region": {
      "type": "string",
      "description": "AWS region the bucket is created in.",
      "required": true
    },
    "kms_key_arn": {
      "type": "string",
      "description": "ARN of the CMK for SSE-KMS; if absent, uses managed key.",
      "required": false
    }
  },
  "outputs": {
    "bucket_arn": {
      "type": "arn",
      "description": "The S3 bucket ARN."
    },
    "bucket_name": {
      "type": "string",
      "description": "The bucket name (echoes the input)."
    },
    "bucket_regional_domain_name": {
      "type": "string",
      "description": "The bucket regional domain name (e.g. acdl-spike-bucket.s3.us-east-1.amazonaws.com)."
    }
  },
  "nfrs": {
    "versioning": {
      "type": "boolean",
      "description": "Enable S3 versioning (default true).",
      "default": true
    },
    "encryption_enabled": {
      "type": "boolean",
      "description": "Enable server-side encryption.",
      "default": true
    },
    "sse_algorithm": {
      "type": "string",
      "description": "SSE algorithm.",
      "default": "aws:kms"
    },
    "deletion_protection": {
      "type": "boolean",
      "description": "Prevent resource destruction via Terraform lifecycle prevent_destroy",
      "default": true
    }
  }
}