github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/dynamodb/tableExport.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package dynamodb
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // ## Example Usage
    16  //
    17  // ### Basic Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb"
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
    34  //				BucketPrefix: pulumi.String("example"),
    35  //				ForceDestroy: pulumi.Bool(true),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			exampleTable, err := dynamodb.NewTable(ctx, "example", &dynamodb.TableArgs{
    41  //				Name:        pulumi.String("example-table-1"),
    42  //				BillingMode: pulumi.String("PAY_PER_REQUEST"),
    43  //				HashKey:     pulumi.String("user_id"),
    44  //				Attributes: dynamodb.TableAttributeArray{
    45  //					&dynamodb.TableAttributeArgs{
    46  //						Name: pulumi.String("user_id"),
    47  //						Type: pulumi.String("S"),
    48  //					},
    49  //				},
    50  //				PointInTimeRecovery: &dynamodb.TablePointInTimeRecoveryArgs{
    51  //					Enabled: pulumi.Bool(true),
    52  //				},
    53  //			})
    54  //			if err != nil {
    55  //				return err
    56  //			}
    57  //			_, err = dynamodb.NewTableExport(ctx, "example", &dynamodb.TableExportArgs{
    58  //				TableArn: exampleTable.Arn,
    59  //				S3Bucket: example.ID(),
    60  //			})
    61  //			if err != nil {
    62  //				return err
    63  //			}
    64  //			return nil
    65  //		})
    66  //	}
    67  //
    68  // ```
    69  // <!--End PulumiCodeChooser -->
    70  //
    71  // ### Example with export time
    72  //
    73  // <!--Start PulumiCodeChooser -->
    74  // ```go
    75  // package main
    76  //
    77  // import (
    78  //
    79  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb"
    80  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    81  //
    82  // )
    83  //
    84  //	func main() {
    85  //		pulumi.Run(func(ctx *pulumi.Context) error {
    86  //			_, err := dynamodb.NewTableExport(ctx, "example", &dynamodb.TableExportArgs{
    87  //				ExportTime: pulumi.String("2023-04-02T11:30:13+01:00"),
    88  //				S3Bucket:   pulumi.Any(exampleAwsS3Bucket.Id),
    89  //				TableArn:   pulumi.Any(exampleAwsDynamodbTable.Arn),
    90  //			})
    91  //			if err != nil {
    92  //				return err
    93  //			}
    94  //			return nil
    95  //		})
    96  //	}
    97  //
    98  // ```
    99  // <!--End PulumiCodeChooser -->
   100  //
   101  // ## Import
   102  //
   103  // Using `pulumi import`, import DynamoDB table exports using the `arn`. For example:
   104  //
   105  // ```sh
   106  // $ pulumi import aws:dynamodb/tableExport:TableExport example arn:aws:dynamodb:us-west-2:12345678911:table/my-table-1/export/01580735656614-2c2f422e
   107  // ```
   108  type TableExport struct {
   109  	pulumi.CustomResourceState
   110  
   111  	// ARN of the Table Export.
   112  	Arn pulumi.StringOutput `pulumi:"arn"`
   113  	// Billable size of the table export.
   114  	BilledSizeInBytes pulumi.IntOutput `pulumi:"billedSizeInBytes"`
   115  	// Time at which the export task completed.
   116  	EndTime pulumi.StringOutput `pulumi:"endTime"`
   117  	// Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   118  	ExportFormat pulumi.StringPtrOutput `pulumi:"exportFormat"`
   119  	// Status of the export - export can be in one of the following states `IN_PROGRESS`, `COMPLETED`, or `FAILED`.
   120  	ExportStatus pulumi.StringOutput `pulumi:"exportStatus"`
   121  	// Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   122  	ExportTime pulumi.StringOutput `pulumi:"exportTime"`
   123  	// Number of items exported.
   124  	ItemCount pulumi.IntOutput `pulumi:"itemCount"`
   125  	// Name of the manifest file for the export task. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Manifest) for more information on this manifest file.
   126  	ManifestFilesS3Key pulumi.StringOutput `pulumi:"manifestFilesS3Key"`
   127  	// Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   128  	S3Bucket pulumi.StringOutput `pulumi:"s3Bucket"`
   129  	// ID of the AWS account that owns the bucket the export will be stored in.
   130  	S3BucketOwner pulumi.StringOutput `pulumi:"s3BucketOwner"`
   131  	// Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   132  	S3Prefix pulumi.StringOutput `pulumi:"s3Prefix"`
   133  	// Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   134  	S3SseAlgorithm pulumi.StringOutput `pulumi:"s3SseAlgorithm"`
   135  	// ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   136  	S3SseKmsKeyId pulumi.StringPtrOutput `pulumi:"s3SseKmsKeyId"`
   137  	// Time at which the export task began.
   138  	StartTime pulumi.StringOutput `pulumi:"startTime"`
   139  	// ARN associated with the table to export.
   140  	//
   141  	// The following arguments are optional:
   142  	TableArn pulumi.StringOutput `pulumi:"tableArn"`
   143  }
   144  
   145  // NewTableExport registers a new resource with the given unique name, arguments, and options.
   146  func NewTableExport(ctx *pulumi.Context,
   147  	name string, args *TableExportArgs, opts ...pulumi.ResourceOption) (*TableExport, error) {
   148  	if args == nil {
   149  		return nil, errors.New("missing one or more required arguments")
   150  	}
   151  
   152  	if args.S3Bucket == nil {
   153  		return nil, errors.New("invalid value for required argument 'S3Bucket'")
   154  	}
   155  	if args.TableArn == nil {
   156  		return nil, errors.New("invalid value for required argument 'TableArn'")
   157  	}
   158  	opts = internal.PkgResourceDefaultOpts(opts)
   159  	var resource TableExport
   160  	err := ctx.RegisterResource("aws:dynamodb/tableExport:TableExport", name, args, &resource, opts...)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return &resource, nil
   165  }
   166  
   167  // GetTableExport gets an existing TableExport resource's state with the given name, ID, and optional
   168  // state properties that are used to uniquely qualify the lookup (nil if not required).
   169  func GetTableExport(ctx *pulumi.Context,
   170  	name string, id pulumi.IDInput, state *TableExportState, opts ...pulumi.ResourceOption) (*TableExport, error) {
   171  	var resource TableExport
   172  	err := ctx.ReadResource("aws:dynamodb/tableExport:TableExport", name, id, state, &resource, opts...)
   173  	if err != nil {
   174  		return nil, err
   175  	}
   176  	return &resource, nil
   177  }
   178  
   179  // Input properties used for looking up and filtering TableExport resources.
   180  type tableExportState struct {
   181  	// ARN of the Table Export.
   182  	Arn *string `pulumi:"arn"`
   183  	// Billable size of the table export.
   184  	BilledSizeInBytes *int `pulumi:"billedSizeInBytes"`
   185  	// Time at which the export task completed.
   186  	EndTime *string `pulumi:"endTime"`
   187  	// Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   188  	ExportFormat *string `pulumi:"exportFormat"`
   189  	// Status of the export - export can be in one of the following states `IN_PROGRESS`, `COMPLETED`, or `FAILED`.
   190  	ExportStatus *string `pulumi:"exportStatus"`
   191  	// Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   192  	ExportTime *string `pulumi:"exportTime"`
   193  	// Number of items exported.
   194  	ItemCount *int `pulumi:"itemCount"`
   195  	// Name of the manifest file for the export task. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Manifest) for more information on this manifest file.
   196  	ManifestFilesS3Key *string `pulumi:"manifestFilesS3Key"`
   197  	// Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   198  	S3Bucket *string `pulumi:"s3Bucket"`
   199  	// ID of the AWS account that owns the bucket the export will be stored in.
   200  	S3BucketOwner *string `pulumi:"s3BucketOwner"`
   201  	// Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   202  	S3Prefix *string `pulumi:"s3Prefix"`
   203  	// Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   204  	S3SseAlgorithm *string `pulumi:"s3SseAlgorithm"`
   205  	// ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   206  	S3SseKmsKeyId *string `pulumi:"s3SseKmsKeyId"`
   207  	// Time at which the export task began.
   208  	StartTime *string `pulumi:"startTime"`
   209  	// ARN associated with the table to export.
   210  	//
   211  	// The following arguments are optional:
   212  	TableArn *string `pulumi:"tableArn"`
   213  }
   214  
   215  type TableExportState struct {
   216  	// ARN of the Table Export.
   217  	Arn pulumi.StringPtrInput
   218  	// Billable size of the table export.
   219  	BilledSizeInBytes pulumi.IntPtrInput
   220  	// Time at which the export task completed.
   221  	EndTime pulumi.StringPtrInput
   222  	// Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   223  	ExportFormat pulumi.StringPtrInput
   224  	// Status of the export - export can be in one of the following states `IN_PROGRESS`, `COMPLETED`, or `FAILED`.
   225  	ExportStatus pulumi.StringPtrInput
   226  	// Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   227  	ExportTime pulumi.StringPtrInput
   228  	// Number of items exported.
   229  	ItemCount pulumi.IntPtrInput
   230  	// Name of the manifest file for the export task. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Manifest) for more information on this manifest file.
   231  	ManifestFilesS3Key pulumi.StringPtrInput
   232  	// Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   233  	S3Bucket pulumi.StringPtrInput
   234  	// ID of the AWS account that owns the bucket the export will be stored in.
   235  	S3BucketOwner pulumi.StringPtrInput
   236  	// Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   237  	S3Prefix pulumi.StringPtrInput
   238  	// Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   239  	S3SseAlgorithm pulumi.StringPtrInput
   240  	// ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   241  	S3SseKmsKeyId pulumi.StringPtrInput
   242  	// Time at which the export task began.
   243  	StartTime pulumi.StringPtrInput
   244  	// ARN associated with the table to export.
   245  	//
   246  	// The following arguments are optional:
   247  	TableArn pulumi.StringPtrInput
   248  }
   249  
   250  func (TableExportState) ElementType() reflect.Type {
   251  	return reflect.TypeOf((*tableExportState)(nil)).Elem()
   252  }
   253  
   254  type tableExportArgs struct {
   255  	// Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   256  	ExportFormat *string `pulumi:"exportFormat"`
   257  	// Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   258  	ExportTime *string `pulumi:"exportTime"`
   259  	// Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   260  	S3Bucket string `pulumi:"s3Bucket"`
   261  	// ID of the AWS account that owns the bucket the export will be stored in.
   262  	S3BucketOwner *string `pulumi:"s3BucketOwner"`
   263  	// Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   264  	S3Prefix *string `pulumi:"s3Prefix"`
   265  	// Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   266  	S3SseAlgorithm *string `pulumi:"s3SseAlgorithm"`
   267  	// ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   268  	S3SseKmsKeyId *string `pulumi:"s3SseKmsKeyId"`
   269  	// ARN associated with the table to export.
   270  	//
   271  	// The following arguments are optional:
   272  	TableArn string `pulumi:"tableArn"`
   273  }
   274  
   275  // The set of arguments for constructing a TableExport resource.
   276  type TableExportArgs struct {
   277  	// Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   278  	ExportFormat pulumi.StringPtrInput
   279  	// Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   280  	ExportTime pulumi.StringPtrInput
   281  	// Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   282  	S3Bucket pulumi.StringInput
   283  	// ID of the AWS account that owns the bucket the export will be stored in.
   284  	S3BucketOwner pulumi.StringPtrInput
   285  	// Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   286  	S3Prefix pulumi.StringPtrInput
   287  	// Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   288  	S3SseAlgorithm pulumi.StringPtrInput
   289  	// ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   290  	S3SseKmsKeyId pulumi.StringPtrInput
   291  	// ARN associated with the table to export.
   292  	//
   293  	// The following arguments are optional:
   294  	TableArn pulumi.StringInput
   295  }
   296  
   297  func (TableExportArgs) ElementType() reflect.Type {
   298  	return reflect.TypeOf((*tableExportArgs)(nil)).Elem()
   299  }
   300  
   301  type TableExportInput interface {
   302  	pulumi.Input
   303  
   304  	ToTableExportOutput() TableExportOutput
   305  	ToTableExportOutputWithContext(ctx context.Context) TableExportOutput
   306  }
   307  
   308  func (*TableExport) ElementType() reflect.Type {
   309  	return reflect.TypeOf((**TableExport)(nil)).Elem()
   310  }
   311  
   312  func (i *TableExport) ToTableExportOutput() TableExportOutput {
   313  	return i.ToTableExportOutputWithContext(context.Background())
   314  }
   315  
   316  func (i *TableExport) ToTableExportOutputWithContext(ctx context.Context) TableExportOutput {
   317  	return pulumi.ToOutputWithContext(ctx, i).(TableExportOutput)
   318  }
   319  
   320  // TableExportArrayInput is an input type that accepts TableExportArray and TableExportArrayOutput values.
   321  // You can construct a concrete instance of `TableExportArrayInput` via:
   322  //
   323  //	TableExportArray{ TableExportArgs{...} }
   324  type TableExportArrayInput interface {
   325  	pulumi.Input
   326  
   327  	ToTableExportArrayOutput() TableExportArrayOutput
   328  	ToTableExportArrayOutputWithContext(context.Context) TableExportArrayOutput
   329  }
   330  
   331  type TableExportArray []TableExportInput
   332  
   333  func (TableExportArray) ElementType() reflect.Type {
   334  	return reflect.TypeOf((*[]*TableExport)(nil)).Elem()
   335  }
   336  
   337  func (i TableExportArray) ToTableExportArrayOutput() TableExportArrayOutput {
   338  	return i.ToTableExportArrayOutputWithContext(context.Background())
   339  }
   340  
   341  func (i TableExportArray) ToTableExportArrayOutputWithContext(ctx context.Context) TableExportArrayOutput {
   342  	return pulumi.ToOutputWithContext(ctx, i).(TableExportArrayOutput)
   343  }
   344  
   345  // TableExportMapInput is an input type that accepts TableExportMap and TableExportMapOutput values.
   346  // You can construct a concrete instance of `TableExportMapInput` via:
   347  //
   348  //	TableExportMap{ "key": TableExportArgs{...} }
   349  type TableExportMapInput interface {
   350  	pulumi.Input
   351  
   352  	ToTableExportMapOutput() TableExportMapOutput
   353  	ToTableExportMapOutputWithContext(context.Context) TableExportMapOutput
   354  }
   355  
   356  type TableExportMap map[string]TableExportInput
   357  
   358  func (TableExportMap) ElementType() reflect.Type {
   359  	return reflect.TypeOf((*map[string]*TableExport)(nil)).Elem()
   360  }
   361  
   362  func (i TableExportMap) ToTableExportMapOutput() TableExportMapOutput {
   363  	return i.ToTableExportMapOutputWithContext(context.Background())
   364  }
   365  
   366  func (i TableExportMap) ToTableExportMapOutputWithContext(ctx context.Context) TableExportMapOutput {
   367  	return pulumi.ToOutputWithContext(ctx, i).(TableExportMapOutput)
   368  }
   369  
   370  type TableExportOutput struct{ *pulumi.OutputState }
   371  
   372  func (TableExportOutput) ElementType() reflect.Type {
   373  	return reflect.TypeOf((**TableExport)(nil)).Elem()
   374  }
   375  
   376  func (o TableExportOutput) ToTableExportOutput() TableExportOutput {
   377  	return o
   378  }
   379  
   380  func (o TableExportOutput) ToTableExportOutputWithContext(ctx context.Context) TableExportOutput {
   381  	return o
   382  }
   383  
   384  // ARN of the Table Export.
   385  func (o TableExportOutput) Arn() pulumi.StringOutput {
   386  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   387  }
   388  
   389  // Billable size of the table export.
   390  func (o TableExportOutput) BilledSizeInBytes() pulumi.IntOutput {
   391  	return o.ApplyT(func(v *TableExport) pulumi.IntOutput { return v.BilledSizeInBytes }).(pulumi.IntOutput)
   392  }
   393  
   394  // Time at which the export task completed.
   395  func (o TableExportOutput) EndTime() pulumi.StringOutput {
   396  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.EndTime }).(pulumi.StringOutput)
   397  }
   398  
   399  // Format for the exported data. Valid values are `DYNAMODB_JSON` or `ION`. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Data) for more information on these export formats. Default is `DYNAMODB_JSON`.
   400  func (o TableExportOutput) ExportFormat() pulumi.StringPtrOutput {
   401  	return o.ApplyT(func(v *TableExport) pulumi.StringPtrOutput { return v.ExportFormat }).(pulumi.StringPtrOutput)
   402  }
   403  
   404  // Status of the export - export can be in one of the following states `IN_PROGRESS`, `COMPLETED`, or `FAILED`.
   405  func (o TableExportOutput) ExportStatus() pulumi.StringOutput {
   406  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.ExportStatus }).(pulumi.StringOutput)
   407  }
   408  
   409  // Time in RFC3339 format from which to export table data. The table export will be a snapshot of the table's state at this point in time. Omitting this value will result in a snapshot from the current time.
   410  func (o TableExportOutput) ExportTime() pulumi.StringOutput {
   411  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.ExportTime }).(pulumi.StringOutput)
   412  }
   413  
   414  // Number of items exported.
   415  func (o TableExportOutput) ItemCount() pulumi.IntOutput {
   416  	return o.ApplyT(func(v *TableExport) pulumi.IntOutput { return v.ItemCount }).(pulumi.IntOutput)
   417  }
   418  
   419  // Name of the manifest file for the export task. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport.Output.html#S3DataExport.Output_Manifest) for more information on this manifest file.
   420  func (o TableExportOutput) ManifestFilesS3Key() pulumi.StringOutput {
   421  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.ManifestFilesS3Key }).(pulumi.StringOutput)
   422  }
   423  
   424  // Name of the Amazon S3 bucket to export the snapshot to. See the [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataExport_Requesting.html#S3DataExport_Requesting_Permissions) for information on how configure this S3 bucket.
   425  func (o TableExportOutput) S3Bucket() pulumi.StringOutput {
   426  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.S3Bucket }).(pulumi.StringOutput)
   427  }
   428  
   429  // ID of the AWS account that owns the bucket the export will be stored in.
   430  func (o TableExportOutput) S3BucketOwner() pulumi.StringOutput {
   431  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.S3BucketOwner }).(pulumi.StringOutput)
   432  }
   433  
   434  // Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.
   435  func (o TableExportOutput) S3Prefix() pulumi.StringOutput {
   436  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.S3Prefix }).(pulumi.StringOutput)
   437  }
   438  
   439  // Type of encryption used on the bucket where export data will be stored. Valid values are: `AES256`, `KMS`.
   440  func (o TableExportOutput) S3SseAlgorithm() pulumi.StringOutput {
   441  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.S3SseAlgorithm }).(pulumi.StringOutput)
   442  }
   443  
   444  // ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).
   445  func (o TableExportOutput) S3SseKmsKeyId() pulumi.StringPtrOutput {
   446  	return o.ApplyT(func(v *TableExport) pulumi.StringPtrOutput { return v.S3SseKmsKeyId }).(pulumi.StringPtrOutput)
   447  }
   448  
   449  // Time at which the export task began.
   450  func (o TableExportOutput) StartTime() pulumi.StringOutput {
   451  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.StartTime }).(pulumi.StringOutput)
   452  }
   453  
   454  // ARN associated with the table to export.
   455  //
   456  // The following arguments are optional:
   457  func (o TableExportOutput) TableArn() pulumi.StringOutput {
   458  	return o.ApplyT(func(v *TableExport) pulumi.StringOutput { return v.TableArn }).(pulumi.StringOutput)
   459  }
   460  
   461  type TableExportArrayOutput struct{ *pulumi.OutputState }
   462  
   463  func (TableExportArrayOutput) ElementType() reflect.Type {
   464  	return reflect.TypeOf((*[]*TableExport)(nil)).Elem()
   465  }
   466  
   467  func (o TableExportArrayOutput) ToTableExportArrayOutput() TableExportArrayOutput {
   468  	return o
   469  }
   470  
   471  func (o TableExportArrayOutput) ToTableExportArrayOutputWithContext(ctx context.Context) TableExportArrayOutput {
   472  	return o
   473  }
   474  
   475  func (o TableExportArrayOutput) Index(i pulumi.IntInput) TableExportOutput {
   476  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TableExport {
   477  		return vs[0].([]*TableExport)[vs[1].(int)]
   478  	}).(TableExportOutput)
   479  }
   480  
   481  type TableExportMapOutput struct{ *pulumi.OutputState }
   482  
   483  func (TableExportMapOutput) ElementType() reflect.Type {
   484  	return reflect.TypeOf((*map[string]*TableExport)(nil)).Elem()
   485  }
   486  
   487  func (o TableExportMapOutput) ToTableExportMapOutput() TableExportMapOutput {
   488  	return o
   489  }
   490  
   491  func (o TableExportMapOutput) ToTableExportMapOutputWithContext(ctx context.Context) TableExportMapOutput {
   492  	return o
   493  }
   494  
   495  func (o TableExportMapOutput) MapIndex(k pulumi.StringInput) TableExportOutput {
   496  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TableExport {
   497  		return vs[0].(map[string]*TableExport)[vs[1].(string)]
   498  	}).(TableExportOutput)
   499  }
   500  
   501  func init() {
   502  	pulumi.RegisterInputType(reflect.TypeOf((*TableExportInput)(nil)).Elem(), &TableExport{})
   503  	pulumi.RegisterInputType(reflect.TypeOf((*TableExportArrayInput)(nil)).Elem(), TableExportArray{})
   504  	pulumi.RegisterInputType(reflect.TypeOf((*TableExportMapInput)(nil)).Elem(), TableExportMap{})
   505  	pulumi.RegisterOutputType(TableExportOutput{})
   506  	pulumi.RegisterOutputType(TableExportArrayOutput{})
   507  	pulumi.RegisterOutputType(TableExportMapOutput{})
   508  }