github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/fsx/dataRepositoryAssociation.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 fsx
     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  // Manages a FSx for Lustre Data Repository Association. See [Linking your file system to an S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html) for more information.
    16  //
    17  // > **NOTE:** Data Repository Associations are only compatible with AWS FSx for Lustre File Systems and `PERSISTENT_2` deployment type.
    18  //
    19  // ## Example Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"fmt"
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
    38  //				Bucket: pulumi.String("my-bucket"),
    39  //			})
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			_, err = s3.NewBucketAclV2(ctx, "example", &s3.BucketAclV2Args{
    44  //				Bucket: example.ID(),
    45  //				Acl:    pulumi.String("private"),
    46  //			})
    47  //			if err != nil {
    48  //				return err
    49  //			}
    50  //			exampleLustreFileSystem, err := fsx.NewLustreFileSystem(ctx, "example", &fsx.LustreFileSystemArgs{
    51  //				StorageCapacity:          pulumi.Int(1200),
    52  //				SubnetIds:                pulumi.Any(exampleAwsSubnet.Id),
    53  //				DeploymentType:           pulumi.String("PERSISTENT_2"),
    54  //				PerUnitStorageThroughput: pulumi.Int(125),
    55  //			})
    56  //			if err != nil {
    57  //				return err
    58  //			}
    59  //			_, err = fsx.NewDataRepositoryAssociation(ctx, "example", &fsx.DataRepositoryAssociationArgs{
    60  //				FileSystemId: exampleLustreFileSystem.ID(),
    61  //				DataRepositoryPath: example.ID().ApplyT(func(id string) (string, error) {
    62  //					return fmt.Sprintf("s3://%v", id), nil
    63  //				}).(pulumi.StringOutput),
    64  //				FileSystemPath: pulumi.String("/my-bucket"),
    65  //				S3: &fsx.DataRepositoryAssociationS3Args{
    66  //					AutoExportPolicy: &fsx.DataRepositoryAssociationS3AutoExportPolicyArgs{
    67  //						Events: pulumi.StringArray{
    68  //							pulumi.String("NEW"),
    69  //							pulumi.String("CHANGED"),
    70  //							pulumi.String("DELETED"),
    71  //						},
    72  //					},
    73  //					AutoImportPolicy: &fsx.DataRepositoryAssociationS3AutoImportPolicyArgs{
    74  //						Events: pulumi.StringArray{
    75  //							pulumi.String("NEW"),
    76  //							pulumi.String("CHANGED"),
    77  //							pulumi.String("DELETED"),
    78  //						},
    79  //					},
    80  //				},
    81  //			})
    82  //			if err != nil {
    83  //				return err
    84  //			}
    85  //			return nil
    86  //		})
    87  //	}
    88  //
    89  // ```
    90  // <!--End PulumiCodeChooser -->
    91  //
    92  // ## Import
    93  //
    94  // Using `pulumi import`, import FSx Data Repository Associations using the `id`. For example:
    95  //
    96  // ```sh
    97  // $ pulumi import aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation example dra-0b1cfaeca11088b10
    98  // ```
    99  type DataRepositoryAssociation struct {
   100  	pulumi.CustomResourceState
   101  
   102  	// Amazon Resource Name of the file system.
   103  	Arn           pulumi.StringOutput `pulumi:"arn"`
   104  	AssociationId pulumi.StringOutput `pulumi:"associationId"`
   105  	// Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   106  	BatchImportMetaDataOnCreate pulumi.BoolPtrOutput `pulumi:"batchImportMetaDataOnCreate"`
   107  	// The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   108  	DataRepositoryPath pulumi.StringOutput `pulumi:"dataRepositoryPath"`
   109  	// Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   110  	DeleteDataInFilesystem pulumi.BoolPtrOutput `pulumi:"deleteDataInFilesystem"`
   111  	// The ID of the Amazon FSx file system to on which to create a data repository association.
   112  	FileSystemId pulumi.StringOutput `pulumi:"fileSystemId"`
   113  	// A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   114  	FileSystemPath pulumi.StringOutput `pulumi:"fileSystemPath"`
   115  	// For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   116  	ImportedFileChunkSize pulumi.IntOutput `pulumi:"importedFileChunkSize"`
   117  	// See the `s3` configuration block. Max of 1.
   118  	// The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   119  	S3 DataRepositoryAssociationS3Output `pulumi:"s3"`
   120  	// A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   121  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   122  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   123  	//
   124  	// Deprecated: Please use `tags` instead.
   125  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   126  }
   127  
   128  // NewDataRepositoryAssociation registers a new resource with the given unique name, arguments, and options.
   129  func NewDataRepositoryAssociation(ctx *pulumi.Context,
   130  	name string, args *DataRepositoryAssociationArgs, opts ...pulumi.ResourceOption) (*DataRepositoryAssociation, error) {
   131  	if args == nil {
   132  		return nil, errors.New("missing one or more required arguments")
   133  	}
   134  
   135  	if args.DataRepositoryPath == nil {
   136  		return nil, errors.New("invalid value for required argument 'DataRepositoryPath'")
   137  	}
   138  	if args.FileSystemId == nil {
   139  		return nil, errors.New("invalid value for required argument 'FileSystemId'")
   140  	}
   141  	if args.FileSystemPath == nil {
   142  		return nil, errors.New("invalid value for required argument 'FileSystemPath'")
   143  	}
   144  	opts = internal.PkgResourceDefaultOpts(opts)
   145  	var resource DataRepositoryAssociation
   146  	err := ctx.RegisterResource("aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation", name, args, &resource, opts...)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return &resource, nil
   151  }
   152  
   153  // GetDataRepositoryAssociation gets an existing DataRepositoryAssociation resource's state with the given name, ID, and optional
   154  // state properties that are used to uniquely qualify the lookup (nil if not required).
   155  func GetDataRepositoryAssociation(ctx *pulumi.Context,
   156  	name string, id pulumi.IDInput, state *DataRepositoryAssociationState, opts ...pulumi.ResourceOption) (*DataRepositoryAssociation, error) {
   157  	var resource DataRepositoryAssociation
   158  	err := ctx.ReadResource("aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation", name, id, state, &resource, opts...)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &resource, nil
   163  }
   164  
   165  // Input properties used for looking up and filtering DataRepositoryAssociation resources.
   166  type dataRepositoryAssociationState struct {
   167  	// Amazon Resource Name of the file system.
   168  	Arn           *string `pulumi:"arn"`
   169  	AssociationId *string `pulumi:"associationId"`
   170  	// Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   171  	BatchImportMetaDataOnCreate *bool `pulumi:"batchImportMetaDataOnCreate"`
   172  	// The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   173  	DataRepositoryPath *string `pulumi:"dataRepositoryPath"`
   174  	// Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   175  	DeleteDataInFilesystem *bool `pulumi:"deleteDataInFilesystem"`
   176  	// The ID of the Amazon FSx file system to on which to create a data repository association.
   177  	FileSystemId *string `pulumi:"fileSystemId"`
   178  	// A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   179  	FileSystemPath *string `pulumi:"fileSystemPath"`
   180  	// For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   181  	ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"`
   182  	// See the `s3` configuration block. Max of 1.
   183  	// The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   184  	S3 *DataRepositoryAssociationS3 `pulumi:"s3"`
   185  	// A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   186  	Tags map[string]string `pulumi:"tags"`
   187  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   188  	//
   189  	// Deprecated: Please use `tags` instead.
   190  	TagsAll map[string]string `pulumi:"tagsAll"`
   191  }
   192  
   193  type DataRepositoryAssociationState struct {
   194  	// Amazon Resource Name of the file system.
   195  	Arn           pulumi.StringPtrInput
   196  	AssociationId pulumi.StringPtrInput
   197  	// Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   198  	BatchImportMetaDataOnCreate pulumi.BoolPtrInput
   199  	// The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   200  	DataRepositoryPath pulumi.StringPtrInput
   201  	// Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   202  	DeleteDataInFilesystem pulumi.BoolPtrInput
   203  	// The ID of the Amazon FSx file system to on which to create a data repository association.
   204  	FileSystemId pulumi.StringPtrInput
   205  	// A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   206  	FileSystemPath pulumi.StringPtrInput
   207  	// For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   208  	ImportedFileChunkSize pulumi.IntPtrInput
   209  	// See the `s3` configuration block. Max of 1.
   210  	// The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   211  	S3 DataRepositoryAssociationS3PtrInput
   212  	// A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   213  	Tags pulumi.StringMapInput
   214  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   215  	//
   216  	// Deprecated: Please use `tags` instead.
   217  	TagsAll pulumi.StringMapInput
   218  }
   219  
   220  func (DataRepositoryAssociationState) ElementType() reflect.Type {
   221  	return reflect.TypeOf((*dataRepositoryAssociationState)(nil)).Elem()
   222  }
   223  
   224  type dataRepositoryAssociationArgs struct {
   225  	// Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   226  	BatchImportMetaDataOnCreate *bool `pulumi:"batchImportMetaDataOnCreate"`
   227  	// The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   228  	DataRepositoryPath string `pulumi:"dataRepositoryPath"`
   229  	// Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   230  	DeleteDataInFilesystem *bool `pulumi:"deleteDataInFilesystem"`
   231  	// The ID of the Amazon FSx file system to on which to create a data repository association.
   232  	FileSystemId string `pulumi:"fileSystemId"`
   233  	// A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   234  	FileSystemPath string `pulumi:"fileSystemPath"`
   235  	// For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   236  	ImportedFileChunkSize *int `pulumi:"importedFileChunkSize"`
   237  	// See the `s3` configuration block. Max of 1.
   238  	// The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   239  	S3 *DataRepositoryAssociationS3 `pulumi:"s3"`
   240  	// A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   241  	Tags map[string]string `pulumi:"tags"`
   242  }
   243  
   244  // The set of arguments for constructing a DataRepositoryAssociation resource.
   245  type DataRepositoryAssociationArgs struct {
   246  	// Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   247  	BatchImportMetaDataOnCreate pulumi.BoolPtrInput
   248  	// The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   249  	DataRepositoryPath pulumi.StringInput
   250  	// Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   251  	DeleteDataInFilesystem pulumi.BoolPtrInput
   252  	// The ID of the Amazon FSx file system to on which to create a data repository association.
   253  	FileSystemId pulumi.StringInput
   254  	// A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   255  	FileSystemPath pulumi.StringInput
   256  	// For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   257  	ImportedFileChunkSize pulumi.IntPtrInput
   258  	// See the `s3` configuration block. Max of 1.
   259  	// The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   260  	S3 DataRepositoryAssociationS3PtrInput
   261  	// A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   262  	Tags pulumi.StringMapInput
   263  }
   264  
   265  func (DataRepositoryAssociationArgs) ElementType() reflect.Type {
   266  	return reflect.TypeOf((*dataRepositoryAssociationArgs)(nil)).Elem()
   267  }
   268  
   269  type DataRepositoryAssociationInput interface {
   270  	pulumi.Input
   271  
   272  	ToDataRepositoryAssociationOutput() DataRepositoryAssociationOutput
   273  	ToDataRepositoryAssociationOutputWithContext(ctx context.Context) DataRepositoryAssociationOutput
   274  }
   275  
   276  func (*DataRepositoryAssociation) ElementType() reflect.Type {
   277  	return reflect.TypeOf((**DataRepositoryAssociation)(nil)).Elem()
   278  }
   279  
   280  func (i *DataRepositoryAssociation) ToDataRepositoryAssociationOutput() DataRepositoryAssociationOutput {
   281  	return i.ToDataRepositoryAssociationOutputWithContext(context.Background())
   282  }
   283  
   284  func (i *DataRepositoryAssociation) ToDataRepositoryAssociationOutputWithContext(ctx context.Context) DataRepositoryAssociationOutput {
   285  	return pulumi.ToOutputWithContext(ctx, i).(DataRepositoryAssociationOutput)
   286  }
   287  
   288  // DataRepositoryAssociationArrayInput is an input type that accepts DataRepositoryAssociationArray and DataRepositoryAssociationArrayOutput values.
   289  // You can construct a concrete instance of `DataRepositoryAssociationArrayInput` via:
   290  //
   291  //	DataRepositoryAssociationArray{ DataRepositoryAssociationArgs{...} }
   292  type DataRepositoryAssociationArrayInput interface {
   293  	pulumi.Input
   294  
   295  	ToDataRepositoryAssociationArrayOutput() DataRepositoryAssociationArrayOutput
   296  	ToDataRepositoryAssociationArrayOutputWithContext(context.Context) DataRepositoryAssociationArrayOutput
   297  }
   298  
   299  type DataRepositoryAssociationArray []DataRepositoryAssociationInput
   300  
   301  func (DataRepositoryAssociationArray) ElementType() reflect.Type {
   302  	return reflect.TypeOf((*[]*DataRepositoryAssociation)(nil)).Elem()
   303  }
   304  
   305  func (i DataRepositoryAssociationArray) ToDataRepositoryAssociationArrayOutput() DataRepositoryAssociationArrayOutput {
   306  	return i.ToDataRepositoryAssociationArrayOutputWithContext(context.Background())
   307  }
   308  
   309  func (i DataRepositoryAssociationArray) ToDataRepositoryAssociationArrayOutputWithContext(ctx context.Context) DataRepositoryAssociationArrayOutput {
   310  	return pulumi.ToOutputWithContext(ctx, i).(DataRepositoryAssociationArrayOutput)
   311  }
   312  
   313  // DataRepositoryAssociationMapInput is an input type that accepts DataRepositoryAssociationMap and DataRepositoryAssociationMapOutput values.
   314  // You can construct a concrete instance of `DataRepositoryAssociationMapInput` via:
   315  //
   316  //	DataRepositoryAssociationMap{ "key": DataRepositoryAssociationArgs{...} }
   317  type DataRepositoryAssociationMapInput interface {
   318  	pulumi.Input
   319  
   320  	ToDataRepositoryAssociationMapOutput() DataRepositoryAssociationMapOutput
   321  	ToDataRepositoryAssociationMapOutputWithContext(context.Context) DataRepositoryAssociationMapOutput
   322  }
   323  
   324  type DataRepositoryAssociationMap map[string]DataRepositoryAssociationInput
   325  
   326  func (DataRepositoryAssociationMap) ElementType() reflect.Type {
   327  	return reflect.TypeOf((*map[string]*DataRepositoryAssociation)(nil)).Elem()
   328  }
   329  
   330  func (i DataRepositoryAssociationMap) ToDataRepositoryAssociationMapOutput() DataRepositoryAssociationMapOutput {
   331  	return i.ToDataRepositoryAssociationMapOutputWithContext(context.Background())
   332  }
   333  
   334  func (i DataRepositoryAssociationMap) ToDataRepositoryAssociationMapOutputWithContext(ctx context.Context) DataRepositoryAssociationMapOutput {
   335  	return pulumi.ToOutputWithContext(ctx, i).(DataRepositoryAssociationMapOutput)
   336  }
   337  
   338  type DataRepositoryAssociationOutput struct{ *pulumi.OutputState }
   339  
   340  func (DataRepositoryAssociationOutput) ElementType() reflect.Type {
   341  	return reflect.TypeOf((**DataRepositoryAssociation)(nil)).Elem()
   342  }
   343  
   344  func (o DataRepositoryAssociationOutput) ToDataRepositoryAssociationOutput() DataRepositoryAssociationOutput {
   345  	return o
   346  }
   347  
   348  func (o DataRepositoryAssociationOutput) ToDataRepositoryAssociationOutputWithContext(ctx context.Context) DataRepositoryAssociationOutput {
   349  	return o
   350  }
   351  
   352  // Amazon Resource Name of the file system.
   353  func (o DataRepositoryAssociationOutput) Arn() pulumi.StringOutput {
   354  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   355  }
   356  
   357  func (o DataRepositoryAssociationOutput) AssociationId() pulumi.StringOutput {
   358  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringOutput { return v.AssociationId }).(pulumi.StringOutput)
   359  }
   360  
   361  // Set to true to run an import data repository task to import metadata from the data repository to the file system after the data repository association is created. Defaults to `false`.
   362  func (o DataRepositoryAssociationOutput) BatchImportMetaDataOnCreate() pulumi.BoolPtrOutput {
   363  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.BoolPtrOutput { return v.BatchImportMetaDataOnCreate }).(pulumi.BoolPtrOutput)
   364  }
   365  
   366  // The path to the Amazon S3 data repository that will be linked to the file system. The path must be an S3 bucket s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to. The same S3 bucket cannot be linked more than once to the same file system.
   367  func (o DataRepositoryAssociationOutput) DataRepositoryPath() pulumi.StringOutput {
   368  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringOutput { return v.DataRepositoryPath }).(pulumi.StringOutput)
   369  }
   370  
   371  // Set to true to delete files from the file system upon deleting this data repository association. Defaults to `false`.
   372  func (o DataRepositoryAssociationOutput) DeleteDataInFilesystem() pulumi.BoolPtrOutput {
   373  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.BoolPtrOutput { return v.DeleteDataInFilesystem }).(pulumi.BoolPtrOutput)
   374  }
   375  
   376  // The ID of the Amazon FSx file system to on which to create a data repository association.
   377  func (o DataRepositoryAssociationOutput) FileSystemId() pulumi.StringOutput {
   378  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringOutput { return v.FileSystemId }).(pulumi.StringOutput)
   379  }
   380  
   381  // A path on the file system that points to a high-level directory (such as `/ns1/`) or subdirectory (such as `/ns1/subdir/`) that will be mapped 1-1 with `dataRepositoryPath`. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path `/ns1/`, then you cannot link another data repository with file system path `/ns1/ns2`. This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.
   382  func (o DataRepositoryAssociationOutput) FileSystemPath() pulumi.StringOutput {
   383  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringOutput { return v.FileSystemPath }).(pulumi.StringOutput)
   384  }
   385  
   386  // For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.
   387  func (o DataRepositoryAssociationOutput) ImportedFileChunkSize() pulumi.IntOutput {
   388  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.IntOutput { return v.ImportedFileChunkSize }).(pulumi.IntOutput)
   389  }
   390  
   391  // See the `s3` configuration block. Max of 1.
   392  // The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.
   393  func (o DataRepositoryAssociationOutput) S3() DataRepositoryAssociationS3Output {
   394  	return o.ApplyT(func(v *DataRepositoryAssociation) DataRepositoryAssociationS3Output { return v.S3 }).(DataRepositoryAssociationS3Output)
   395  }
   396  
   397  // A map of tags to assign to the data repository association. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   398  func (o DataRepositoryAssociationOutput) Tags() pulumi.StringMapOutput {
   399  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   400  }
   401  
   402  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   403  //
   404  // Deprecated: Please use `tags` instead.
   405  func (o DataRepositoryAssociationOutput) TagsAll() pulumi.StringMapOutput {
   406  	return o.ApplyT(func(v *DataRepositoryAssociation) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   407  }
   408  
   409  type DataRepositoryAssociationArrayOutput struct{ *pulumi.OutputState }
   410  
   411  func (DataRepositoryAssociationArrayOutput) ElementType() reflect.Type {
   412  	return reflect.TypeOf((*[]*DataRepositoryAssociation)(nil)).Elem()
   413  }
   414  
   415  func (o DataRepositoryAssociationArrayOutput) ToDataRepositoryAssociationArrayOutput() DataRepositoryAssociationArrayOutput {
   416  	return o
   417  }
   418  
   419  func (o DataRepositoryAssociationArrayOutput) ToDataRepositoryAssociationArrayOutputWithContext(ctx context.Context) DataRepositoryAssociationArrayOutput {
   420  	return o
   421  }
   422  
   423  func (o DataRepositoryAssociationArrayOutput) Index(i pulumi.IntInput) DataRepositoryAssociationOutput {
   424  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DataRepositoryAssociation {
   425  		return vs[0].([]*DataRepositoryAssociation)[vs[1].(int)]
   426  	}).(DataRepositoryAssociationOutput)
   427  }
   428  
   429  type DataRepositoryAssociationMapOutput struct{ *pulumi.OutputState }
   430  
   431  func (DataRepositoryAssociationMapOutput) ElementType() reflect.Type {
   432  	return reflect.TypeOf((*map[string]*DataRepositoryAssociation)(nil)).Elem()
   433  }
   434  
   435  func (o DataRepositoryAssociationMapOutput) ToDataRepositoryAssociationMapOutput() DataRepositoryAssociationMapOutput {
   436  	return o
   437  }
   438  
   439  func (o DataRepositoryAssociationMapOutput) ToDataRepositoryAssociationMapOutputWithContext(ctx context.Context) DataRepositoryAssociationMapOutput {
   440  	return o
   441  }
   442  
   443  func (o DataRepositoryAssociationMapOutput) MapIndex(k pulumi.StringInput) DataRepositoryAssociationOutput {
   444  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DataRepositoryAssociation {
   445  		return vs[0].(map[string]*DataRepositoryAssociation)[vs[1].(string)]
   446  	}).(DataRepositoryAssociationOutput)
   447  }
   448  
   449  func init() {
   450  	pulumi.RegisterInputType(reflect.TypeOf((*DataRepositoryAssociationInput)(nil)).Elem(), &DataRepositoryAssociation{})
   451  	pulumi.RegisterInputType(reflect.TypeOf((*DataRepositoryAssociationArrayInput)(nil)).Elem(), DataRepositoryAssociationArray{})
   452  	pulumi.RegisterInputType(reflect.TypeOf((*DataRepositoryAssociationMapInput)(nil)).Elem(), DataRepositoryAssociationMap{})
   453  	pulumi.RegisterOutputType(DataRepositoryAssociationOutput{})
   454  	pulumi.RegisterOutputType(DataRepositoryAssociationArrayOutput{})
   455  	pulumi.RegisterOutputType(DataRepositoryAssociationMapOutput{})
   456  }