import * as core from "@terrascript/core"; export interface GranteeArgs extends core.SchemaArgs { displayName: string | core.StringOut; emailAddress?: string | core.StringOut; id?: string | core.StringOut; type: string | core.StringOut; uri?: string | core.StringOut; } export class Grantee extends core.Schema { @core.attr(String, { computed: true }) public displayName!: string | core.StringOut; @core.attr(String) public emailAddress?: string | core.StringOut; @core.attr(String) public id?: string | core.StringOut; @core.attr(String) public type!: string | core.StringOut; @core.attr(String) public uri?: string | core.StringOut; } export interface GrantArgs extends core.SchemaArgs { grantee?: Grantee; permission: string | core.StringOut; } export class Grant extends core.Schema { @core.attr(Grantee) public grantee?: Grantee; @core.attr(String) public permission!: string | core.StringOut; } export interface OwnerArgs extends core.SchemaArgs { displayName?: string | core.StringOut; id: string | core.StringOut; } export class Owner extends core.Schema { @core.attr(String, { computed: true }) public displayName?: string | core.StringOut; @core.attr(String) public id!: string | core.StringOut; } export interface AccessControlPolicyArgs extends core.SchemaArgs { grant?: core.Array | core.ArrayOut; owner: Owner; } export class AccessControlPolicy extends core.Schema { @core.attr(Grant, { kind: "array" }) public grant?: core.Array | core.ArrayOut; @core.attr(Owner) public owner!: Owner; } export interface BucketAclArgs extends core.ResourceArgs { /** * (Optional, Conflicts with `acl`) A configuration block that sets the ACL permissions for an object p * er grantee [documented below](#access_control_policy). */ accessControlPolicy?: AccessControlPolicy; /** * (Optional, Conflicts with `access_control_policy`) The canned ACL to apply to the bucket. */ acl?: string | core.StringOut; /** * (Required, Forces new resource) The name of the bucket. */ bucket: string | core.StringOut; /** * (Optional, Forces new resource) The account ID of the expected bucket owner. */ expectedBucketOwner?: string | core.StringOut; } export class BucketAcl extends core.Resource { /** * (Optional, Conflicts with `acl`) A configuration block that sets the ACL permissions for an object p * er grantee [documented below](#access_control_policy). */ @core.attr(AccessControlPolicy, { computed: true }) public accessControlPolicy?: AccessControlPolicy; /** * (Optional, Conflicts with `access_control_policy`) The canned ACL to apply to the bucket. */ @core.attr(String) public acl?: string | core.StringOut; /** * (Required, Forces new resource) The name of the bucket. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Optional, Forces new resource) The account ID of the expected bucket owner. */ @core.attr(String) public expectedBucketOwner?: string | core.StringOut; /** * (Required) The ID of the owner. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; constructor(name: string, args?: BucketAclArgs) { super(name, "aws_s3_bucket_acl", args); } public override getNamespace(): string { return "aws_s3"; } }