import * as core from "@terrascript/core"; export interface AwsLambdaArgs extends core.SchemaArgs { functionArn: string | core.StringOut; functionPayload?: string | core.StringOut; } export class AwsLambda extends core.Schema { @core.attr(String) public functionArn!: string | core.StringOut; @core.attr(String) public functionPayload?: string | core.StringOut; } export interface ContentTransformationArgs extends core.SchemaArgs { awsLambda: AwsLambda; } export class ContentTransformation extends core.Schema { @core.attr(AwsLambda) public awsLambda!: AwsLambda; } export interface TransformationConfigurationArgs extends core.SchemaArgs { actions: core.Array | core.ArrayOut; contentTransformation: ContentTransformation; } export class TransformationConfiguration extends core.Schema { @core.attr(String, { kind: "array" }) public actions!: core.Array | core.ArrayOut; @core.attr(ContentTransformation) public contentTransformation!: ContentTransformation; } export interface ConfigurationArgs extends core.SchemaArgs { allowedFeatures?: core.Array | core.ArrayOut; cloudWatchMetricsEnabled?: boolean | core.BooleanOut; supportingAccessPoint: string | core.StringOut; transformationConfiguration: | core.Array | core.ArrayOut; } export class Configuration extends core.Schema { @core.attr(String, { kind: "array" }) public allowedFeatures?: core.Array | core.ArrayOut; @core.attr(Boolean) public cloudWatchMetricsEnabled?: boolean | core.BooleanOut; @core.attr(String) public supportingAccessPoint!: string | core.StringOut; @core.attr(TransformationConfiguration, { kind: "array" }) public transformationConfiguration!: | core.Array | core.ArrayOut; } export interface ObjectLambdaAccessPointArgs extends core.ResourceArgs { /** * (Optional) The AWS account ID for the owner of the bucket for which you want to create an Object Lam * bda Access Point. Defaults to automatically determined account ID of the Terraform AWS provider. */ accountId?: string | core.StringOut; /** * (Required) A configuration block containing details about the Object Lambda Access Point. See [Confi * guration](#configuration) below for more details. */ configuration: Configuration; /** * (Required) The name for this Object Lambda Access Point. */ name: string | core.StringOut; } export class ObjectLambdaAccessPoint extends core.Resource { /** * (Optional) The AWS account ID for the owner of the bucket for which you want to create an Object Lam * bda Access Point. Defaults to automatically determined account ID of the Terraform AWS provider. */ @core.attr(String, { computed: true }) public accountId?: string | core.StringOut; /** * Amazon Resource Name (ARN) of the Object Lambda Access Point. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) A configuration block containing details about the Object Lambda Access Point. See [Confi * guration](#configuration) below for more details. */ @core.attr(Configuration) public configuration!: Configuration; /** * The AWS account ID and access point name separated by a colon (`:`). */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The name for this Object Lambda Access Point. */ @core.attr(String) public name!: string | core.StringOut; constructor(name: string, args?: ObjectLambdaAccessPointArgs) { super(name, "aws_s3control_object_lambda_access_point", args); } public override getNamespace(): string { return "aws_s3control"; } }