github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/datasync/locationHdfs.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 datasync
     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 an HDFS Location within AWS DataSync.
    16  //
    17  // > **NOTE:** The DataSync Agents must be available before creating this resource.
    18  //
    19  // ## Example Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datasync"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := datasync.NewLocationHdfs(ctx, "example", &datasync.LocationHdfsArgs{
    35  //				AgentArns: pulumi.StringArray{
    36  //					exampleAwsDatasyncAgent.Arn,
    37  //				},
    38  //				AuthenticationType: pulumi.String("SIMPLE"),
    39  //				SimpleUser:         pulumi.String("example"),
    40  //				NameNodes: datasync.LocationHdfsNameNodeArray{
    41  //					&datasync.LocationHdfsNameNodeArgs{
    42  //						Hostname: pulumi.Any(exampleAwsInstance.PrivateDns),
    43  //						Port:     pulumi.Int(80),
    44  //					},
    45  //				},
    46  //			})
    47  //			if err != nil {
    48  //				return err
    49  //			}
    50  //			return nil
    51  //		})
    52  //	}
    53  //
    54  // ```
    55  // <!--End PulumiCodeChooser -->
    56  //
    57  // ### Kerberos Authentication
    58  //
    59  // <!--Start PulumiCodeChooser -->
    60  // ```go
    61  // package main
    62  //
    63  // import (
    64  //
    65  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datasync"
    66  //	"github.com/pulumi/pulumi-std/sdk/go/std"
    67  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    68  //
    69  // )
    70  //
    71  //	func main() {
    72  //		pulumi.Run(func(ctx *pulumi.Context) error {
    73  //			invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
    74  //				Input: "user.keytab",
    75  //			}, nil)
    76  //			if err != nil {
    77  //				return err
    78  //			}
    79  //			invokeFile1, err := std.File(ctx, &std.FileArgs{
    80  //				Input: "krb5.conf",
    81  //			}, nil)
    82  //			if err != nil {
    83  //				return err
    84  //			}
    85  //			_, err = datasync.NewLocationHdfs(ctx, "example", &datasync.LocationHdfsArgs{
    86  //				AgentArns: pulumi.StringArray{
    87  //					exampleAwsDatasyncAgent.Arn,
    88  //				},
    89  //				AuthenticationType: pulumi.String("KERBEROS"),
    90  //				NameNodes: datasync.LocationHdfsNameNodeArray{
    91  //					&datasync.LocationHdfsNameNodeArgs{
    92  //						Hostname: pulumi.Any(exampleAwsInstance.PrivateDns),
    93  //						Port:     pulumi.Int(80),
    94  //					},
    95  //				},
    96  //				KerberosPrincipal:    pulumi.String("user@example.com"),
    97  //				KerberosKeytabBase64: invokeFilebase64.Result,
    98  //				KerberosKrb5Conf:     invokeFile1.Result,
    99  //			})
   100  //			if err != nil {
   101  //				return err
   102  //			}
   103  //			return nil
   104  //		})
   105  //	}
   106  //
   107  // ```
   108  // <!--End PulumiCodeChooser -->
   109  //
   110  // ## Import
   111  //
   112  // Using `pulumi import`, import `aws_datasync_location_hdfs` using the Amazon Resource Name (ARN). For example:
   113  //
   114  // ```sh
   115  // $ pulumi import aws:datasync/locationHdfs:LocationHdfs example arn:aws:datasync:us-east-1:123456789012:location/loc-12345678901234567
   116  // ```
   117  type LocationHdfs struct {
   118  	pulumi.CustomResourceState
   119  
   120  	// A list of DataSync Agent ARNs with which this location will be associated.
   121  	AgentArns pulumi.StringArrayOutput `pulumi:"agentArns"`
   122  	// Amazon Resource Name (ARN) of the DataSync Location.
   123  	Arn pulumi.StringOutput `pulumi:"arn"`
   124  	// The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   125  	AuthenticationType pulumi.StringPtrOutput `pulumi:"authenticationType"`
   126  	// The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   127  	BlockSize pulumi.IntPtrOutput `pulumi:"blockSize"`
   128  	// The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   129  	KerberosKeytab pulumi.StringPtrOutput `pulumi:"kerberosKeytab"`
   130  	// Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   131  	KerberosKeytabBase64 pulumi.StringPtrOutput `pulumi:"kerberosKeytabBase64"`
   132  	// The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   133  	KerberosKrb5Conf pulumi.StringPtrOutput `pulumi:"kerberosKrb5Conf"`
   134  	// Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   135  	KerberosKrb5ConfBase64 pulumi.StringPtrOutput `pulumi:"kerberosKrb5ConfBase64"`
   136  	// The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   137  	KerberosPrincipal pulumi.StringPtrOutput `pulumi:"kerberosPrincipal"`
   138  	// The URI of the HDFS cluster's Key Management Server (KMS).
   139  	KmsKeyProviderUri pulumi.StringPtrOutput `pulumi:"kmsKeyProviderUri"`
   140  	// The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   141  	NameNodes LocationHdfsNameNodeArrayOutput `pulumi:"nameNodes"`
   142  	// The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   143  	QopConfiguration LocationHdfsQopConfigurationOutput `pulumi:"qopConfiguration"`
   144  	// The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   145  	ReplicationFactor pulumi.IntPtrOutput `pulumi:"replicationFactor"`
   146  	// The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   147  	SimpleUser pulumi.StringPtrOutput `pulumi:"simpleUser"`
   148  	// A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   149  	Subdirectory pulumi.StringPtrOutput `pulumi:"subdirectory"`
   150  	// Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   151  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   152  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   153  	//
   154  	// Deprecated: Please use `tags` instead.
   155  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   156  	Uri     pulumi.StringOutput    `pulumi:"uri"`
   157  }
   158  
   159  // NewLocationHdfs registers a new resource with the given unique name, arguments, and options.
   160  func NewLocationHdfs(ctx *pulumi.Context,
   161  	name string, args *LocationHdfsArgs, opts ...pulumi.ResourceOption) (*LocationHdfs, error) {
   162  	if args == nil {
   163  		return nil, errors.New("missing one or more required arguments")
   164  	}
   165  
   166  	if args.AgentArns == nil {
   167  		return nil, errors.New("invalid value for required argument 'AgentArns'")
   168  	}
   169  	if args.NameNodes == nil {
   170  		return nil, errors.New("invalid value for required argument 'NameNodes'")
   171  	}
   172  	opts = internal.PkgResourceDefaultOpts(opts)
   173  	var resource LocationHdfs
   174  	err := ctx.RegisterResource("aws:datasync/locationHdfs:LocationHdfs", name, args, &resource, opts...)
   175  	if err != nil {
   176  		return nil, err
   177  	}
   178  	return &resource, nil
   179  }
   180  
   181  // GetLocationHdfs gets an existing LocationHdfs resource's state with the given name, ID, and optional
   182  // state properties that are used to uniquely qualify the lookup (nil if not required).
   183  func GetLocationHdfs(ctx *pulumi.Context,
   184  	name string, id pulumi.IDInput, state *LocationHdfsState, opts ...pulumi.ResourceOption) (*LocationHdfs, error) {
   185  	var resource LocationHdfs
   186  	err := ctx.ReadResource("aws:datasync/locationHdfs:LocationHdfs", name, id, state, &resource, opts...)
   187  	if err != nil {
   188  		return nil, err
   189  	}
   190  	return &resource, nil
   191  }
   192  
   193  // Input properties used for looking up and filtering LocationHdfs resources.
   194  type locationHdfsState struct {
   195  	// A list of DataSync Agent ARNs with which this location will be associated.
   196  	AgentArns []string `pulumi:"agentArns"`
   197  	// Amazon Resource Name (ARN) of the DataSync Location.
   198  	Arn *string `pulumi:"arn"`
   199  	// The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   200  	AuthenticationType *string `pulumi:"authenticationType"`
   201  	// The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   202  	BlockSize *int `pulumi:"blockSize"`
   203  	// The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   204  	KerberosKeytab *string `pulumi:"kerberosKeytab"`
   205  	// Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   206  	KerberosKeytabBase64 *string `pulumi:"kerberosKeytabBase64"`
   207  	// The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   208  	KerberosKrb5Conf *string `pulumi:"kerberosKrb5Conf"`
   209  	// Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   210  	KerberosKrb5ConfBase64 *string `pulumi:"kerberosKrb5ConfBase64"`
   211  	// The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   212  	KerberosPrincipal *string `pulumi:"kerberosPrincipal"`
   213  	// The URI of the HDFS cluster's Key Management Server (KMS).
   214  	KmsKeyProviderUri *string `pulumi:"kmsKeyProviderUri"`
   215  	// The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   216  	NameNodes []LocationHdfsNameNode `pulumi:"nameNodes"`
   217  	// The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   218  	QopConfiguration *LocationHdfsQopConfiguration `pulumi:"qopConfiguration"`
   219  	// The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   220  	ReplicationFactor *int `pulumi:"replicationFactor"`
   221  	// The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   222  	SimpleUser *string `pulumi:"simpleUser"`
   223  	// A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   224  	Subdirectory *string `pulumi:"subdirectory"`
   225  	// Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   226  	Tags map[string]string `pulumi:"tags"`
   227  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   228  	//
   229  	// Deprecated: Please use `tags` instead.
   230  	TagsAll map[string]string `pulumi:"tagsAll"`
   231  	Uri     *string           `pulumi:"uri"`
   232  }
   233  
   234  type LocationHdfsState struct {
   235  	// A list of DataSync Agent ARNs with which this location will be associated.
   236  	AgentArns pulumi.StringArrayInput
   237  	// Amazon Resource Name (ARN) of the DataSync Location.
   238  	Arn pulumi.StringPtrInput
   239  	// The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   240  	AuthenticationType pulumi.StringPtrInput
   241  	// The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   242  	BlockSize pulumi.IntPtrInput
   243  	// The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   244  	KerberosKeytab pulumi.StringPtrInput
   245  	// Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   246  	KerberosKeytabBase64 pulumi.StringPtrInput
   247  	// The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   248  	KerberosKrb5Conf pulumi.StringPtrInput
   249  	// Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   250  	KerberosKrb5ConfBase64 pulumi.StringPtrInput
   251  	// The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   252  	KerberosPrincipal pulumi.StringPtrInput
   253  	// The URI of the HDFS cluster's Key Management Server (KMS).
   254  	KmsKeyProviderUri pulumi.StringPtrInput
   255  	// The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   256  	NameNodes LocationHdfsNameNodeArrayInput
   257  	// The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   258  	QopConfiguration LocationHdfsQopConfigurationPtrInput
   259  	// The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   260  	ReplicationFactor pulumi.IntPtrInput
   261  	// The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   262  	SimpleUser pulumi.StringPtrInput
   263  	// A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   264  	Subdirectory pulumi.StringPtrInput
   265  	// Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   266  	Tags pulumi.StringMapInput
   267  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   268  	//
   269  	// Deprecated: Please use `tags` instead.
   270  	TagsAll pulumi.StringMapInput
   271  	Uri     pulumi.StringPtrInput
   272  }
   273  
   274  func (LocationHdfsState) ElementType() reflect.Type {
   275  	return reflect.TypeOf((*locationHdfsState)(nil)).Elem()
   276  }
   277  
   278  type locationHdfsArgs struct {
   279  	// A list of DataSync Agent ARNs with which this location will be associated.
   280  	AgentArns []string `pulumi:"agentArns"`
   281  	// The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   282  	AuthenticationType *string `pulumi:"authenticationType"`
   283  	// The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   284  	BlockSize *int `pulumi:"blockSize"`
   285  	// The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   286  	KerberosKeytab *string `pulumi:"kerberosKeytab"`
   287  	// Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   288  	KerberosKeytabBase64 *string `pulumi:"kerberosKeytabBase64"`
   289  	// The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   290  	KerberosKrb5Conf *string `pulumi:"kerberosKrb5Conf"`
   291  	// Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   292  	KerberosKrb5ConfBase64 *string `pulumi:"kerberosKrb5ConfBase64"`
   293  	// The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   294  	KerberosPrincipal *string `pulumi:"kerberosPrincipal"`
   295  	// The URI of the HDFS cluster's Key Management Server (KMS).
   296  	KmsKeyProviderUri *string `pulumi:"kmsKeyProviderUri"`
   297  	// The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   298  	NameNodes []LocationHdfsNameNode `pulumi:"nameNodes"`
   299  	// The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   300  	QopConfiguration *LocationHdfsQopConfiguration `pulumi:"qopConfiguration"`
   301  	// The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   302  	ReplicationFactor *int `pulumi:"replicationFactor"`
   303  	// The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   304  	SimpleUser *string `pulumi:"simpleUser"`
   305  	// A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   306  	Subdirectory *string `pulumi:"subdirectory"`
   307  	// Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   308  	Tags map[string]string `pulumi:"tags"`
   309  }
   310  
   311  // The set of arguments for constructing a LocationHdfs resource.
   312  type LocationHdfsArgs struct {
   313  	// A list of DataSync Agent ARNs with which this location will be associated.
   314  	AgentArns pulumi.StringArrayInput
   315  	// The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   316  	AuthenticationType pulumi.StringPtrInput
   317  	// The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   318  	BlockSize pulumi.IntPtrInput
   319  	// The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   320  	KerberosKeytab pulumi.StringPtrInput
   321  	// Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   322  	KerberosKeytabBase64 pulumi.StringPtrInput
   323  	// The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   324  	KerberosKrb5Conf pulumi.StringPtrInput
   325  	// Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   326  	KerberosKrb5ConfBase64 pulumi.StringPtrInput
   327  	// The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   328  	KerberosPrincipal pulumi.StringPtrInput
   329  	// The URI of the HDFS cluster's Key Management Server (KMS).
   330  	KmsKeyProviderUri pulumi.StringPtrInput
   331  	// The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   332  	NameNodes LocationHdfsNameNodeArrayInput
   333  	// The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   334  	QopConfiguration LocationHdfsQopConfigurationPtrInput
   335  	// The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   336  	ReplicationFactor pulumi.IntPtrInput
   337  	// The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   338  	SimpleUser pulumi.StringPtrInput
   339  	// A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   340  	Subdirectory pulumi.StringPtrInput
   341  	// Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   342  	Tags pulumi.StringMapInput
   343  }
   344  
   345  func (LocationHdfsArgs) ElementType() reflect.Type {
   346  	return reflect.TypeOf((*locationHdfsArgs)(nil)).Elem()
   347  }
   348  
   349  type LocationHdfsInput interface {
   350  	pulumi.Input
   351  
   352  	ToLocationHdfsOutput() LocationHdfsOutput
   353  	ToLocationHdfsOutputWithContext(ctx context.Context) LocationHdfsOutput
   354  }
   355  
   356  func (*LocationHdfs) ElementType() reflect.Type {
   357  	return reflect.TypeOf((**LocationHdfs)(nil)).Elem()
   358  }
   359  
   360  func (i *LocationHdfs) ToLocationHdfsOutput() LocationHdfsOutput {
   361  	return i.ToLocationHdfsOutputWithContext(context.Background())
   362  }
   363  
   364  func (i *LocationHdfs) ToLocationHdfsOutputWithContext(ctx context.Context) LocationHdfsOutput {
   365  	return pulumi.ToOutputWithContext(ctx, i).(LocationHdfsOutput)
   366  }
   367  
   368  // LocationHdfsArrayInput is an input type that accepts LocationHdfsArray and LocationHdfsArrayOutput values.
   369  // You can construct a concrete instance of `LocationHdfsArrayInput` via:
   370  //
   371  //	LocationHdfsArray{ LocationHdfsArgs{...} }
   372  type LocationHdfsArrayInput interface {
   373  	pulumi.Input
   374  
   375  	ToLocationHdfsArrayOutput() LocationHdfsArrayOutput
   376  	ToLocationHdfsArrayOutputWithContext(context.Context) LocationHdfsArrayOutput
   377  }
   378  
   379  type LocationHdfsArray []LocationHdfsInput
   380  
   381  func (LocationHdfsArray) ElementType() reflect.Type {
   382  	return reflect.TypeOf((*[]*LocationHdfs)(nil)).Elem()
   383  }
   384  
   385  func (i LocationHdfsArray) ToLocationHdfsArrayOutput() LocationHdfsArrayOutput {
   386  	return i.ToLocationHdfsArrayOutputWithContext(context.Background())
   387  }
   388  
   389  func (i LocationHdfsArray) ToLocationHdfsArrayOutputWithContext(ctx context.Context) LocationHdfsArrayOutput {
   390  	return pulumi.ToOutputWithContext(ctx, i).(LocationHdfsArrayOutput)
   391  }
   392  
   393  // LocationHdfsMapInput is an input type that accepts LocationHdfsMap and LocationHdfsMapOutput values.
   394  // You can construct a concrete instance of `LocationHdfsMapInput` via:
   395  //
   396  //	LocationHdfsMap{ "key": LocationHdfsArgs{...} }
   397  type LocationHdfsMapInput interface {
   398  	pulumi.Input
   399  
   400  	ToLocationHdfsMapOutput() LocationHdfsMapOutput
   401  	ToLocationHdfsMapOutputWithContext(context.Context) LocationHdfsMapOutput
   402  }
   403  
   404  type LocationHdfsMap map[string]LocationHdfsInput
   405  
   406  func (LocationHdfsMap) ElementType() reflect.Type {
   407  	return reflect.TypeOf((*map[string]*LocationHdfs)(nil)).Elem()
   408  }
   409  
   410  func (i LocationHdfsMap) ToLocationHdfsMapOutput() LocationHdfsMapOutput {
   411  	return i.ToLocationHdfsMapOutputWithContext(context.Background())
   412  }
   413  
   414  func (i LocationHdfsMap) ToLocationHdfsMapOutputWithContext(ctx context.Context) LocationHdfsMapOutput {
   415  	return pulumi.ToOutputWithContext(ctx, i).(LocationHdfsMapOutput)
   416  }
   417  
   418  type LocationHdfsOutput struct{ *pulumi.OutputState }
   419  
   420  func (LocationHdfsOutput) ElementType() reflect.Type {
   421  	return reflect.TypeOf((**LocationHdfs)(nil)).Elem()
   422  }
   423  
   424  func (o LocationHdfsOutput) ToLocationHdfsOutput() LocationHdfsOutput {
   425  	return o
   426  }
   427  
   428  func (o LocationHdfsOutput) ToLocationHdfsOutputWithContext(ctx context.Context) LocationHdfsOutput {
   429  	return o
   430  }
   431  
   432  // A list of DataSync Agent ARNs with which this location will be associated.
   433  func (o LocationHdfsOutput) AgentArns() pulumi.StringArrayOutput {
   434  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringArrayOutput { return v.AgentArns }).(pulumi.StringArrayOutput)
   435  }
   436  
   437  // Amazon Resource Name (ARN) of the DataSync Location.
   438  func (o LocationHdfsOutput) Arn() pulumi.StringOutput {
   439  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   440  }
   441  
   442  // The type of authentication used to determine the identity of the user. Valid values are `SIMPLE` and `KERBEROS`.
   443  func (o LocationHdfsOutput) AuthenticationType() pulumi.StringPtrOutput {
   444  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.AuthenticationType }).(pulumi.StringPtrOutput)
   445  }
   446  
   447  // The size of data blocks to write into the HDFS cluster. The block size must be a multiple of 512 bytes. The default block size is 128 mebibytes (MiB).
   448  func (o LocationHdfsOutput) BlockSize() pulumi.IntPtrOutput {
   449  	return o.ApplyT(func(v *LocationHdfs) pulumi.IntPtrOutput { return v.BlockSize }).(pulumi.IntPtrOutput)
   450  }
   451  
   452  // The Kerberos key table (keytab) that contains mappings between the defined Kerberos principal and the encrypted keys. Use `kerberosKeytabBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytabBase64`) is required.
   453  func (o LocationHdfsOutput) KerberosKeytab() pulumi.StringPtrOutput {
   454  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KerberosKeytab }).(pulumi.StringPtrOutput)
   455  }
   456  
   457  // Use instead of `kerberosKeytab` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKeytab`) is required.
   458  func (o LocationHdfsOutput) KerberosKeytabBase64() pulumi.StringPtrOutput {
   459  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KerberosKeytabBase64 }).(pulumi.StringPtrOutput)
   460  }
   461  
   462  // The krb5.conf file that contains the Kerberos configuration information. Use `kerberosKrb5ConfBase64` instead whenever the value is not a valid UTF-8 string. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5ConfBase64`) is required.
   463  func (o LocationHdfsOutput) KerberosKrb5Conf() pulumi.StringPtrOutput {
   464  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KerberosKrb5Conf }).(pulumi.StringPtrOutput)
   465  }
   466  
   467  // Use instead of `kerberosKrb5Conf` to pass base64-encoded binary data directly. If `KERBEROS` is specified for `authenticationType`, this parameter (or `kerberosKrb5Conf`) is required.
   468  func (o LocationHdfsOutput) KerberosKrb5ConfBase64() pulumi.StringPtrOutput {
   469  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KerberosKrb5ConfBase64 }).(pulumi.StringPtrOutput)
   470  }
   471  
   472  // The Kerberos principal with access to the files and folders on the HDFS cluster. If `KERBEROS` is specified for `authenticationType`, this parameter is required.
   473  func (o LocationHdfsOutput) KerberosPrincipal() pulumi.StringPtrOutput {
   474  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KerberosPrincipal }).(pulumi.StringPtrOutput)
   475  }
   476  
   477  // The URI of the HDFS cluster's Key Management Server (KMS).
   478  func (o LocationHdfsOutput) KmsKeyProviderUri() pulumi.StringPtrOutput {
   479  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.KmsKeyProviderUri }).(pulumi.StringPtrOutput)
   480  }
   481  
   482  // The NameNode that manages the HDFS namespace. The NameNode performs operations such as opening, closing, and renaming files and directories. The NameNode contains the information to map blocks of data to the DataNodes. You can use only one NameNode. See configuration below.
   483  func (o LocationHdfsOutput) NameNodes() LocationHdfsNameNodeArrayOutput {
   484  	return o.ApplyT(func(v *LocationHdfs) LocationHdfsNameNodeArrayOutput { return v.NameNodes }).(LocationHdfsNameNodeArrayOutput)
   485  }
   486  
   487  // The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) cluster. If `qopConfiguration` isn't specified, `rpcProtection` and `dataTransferProtection` default to `PRIVACY`. If you set RpcProtection or DataTransferProtection, the other parameter assumes the same value.  See configuration below.
   488  func (o LocationHdfsOutput) QopConfiguration() LocationHdfsQopConfigurationOutput {
   489  	return o.ApplyT(func(v *LocationHdfs) LocationHdfsQopConfigurationOutput { return v.QopConfiguration }).(LocationHdfsQopConfigurationOutput)
   490  }
   491  
   492  // The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes.
   493  func (o LocationHdfsOutput) ReplicationFactor() pulumi.IntPtrOutput {
   494  	return o.ApplyT(func(v *LocationHdfs) pulumi.IntPtrOutput { return v.ReplicationFactor }).(pulumi.IntPtrOutput)
   495  }
   496  
   497  // The user name used to identify the client on the host operating system. If `SIMPLE` is specified for `authenticationType`, this parameter is required.
   498  func (o LocationHdfsOutput) SimpleUser() pulumi.StringPtrOutput {
   499  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.SimpleUser }).(pulumi.StringPtrOutput)
   500  }
   501  
   502  // A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. If the subdirectory isn't specified, it will default to /.
   503  func (o LocationHdfsOutput) Subdirectory() pulumi.StringPtrOutput {
   504  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringPtrOutput { return v.Subdirectory }).(pulumi.StringPtrOutput)
   505  }
   506  
   507  // Key-value pairs of resource tags to assign to the DataSync Location. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   508  func (o LocationHdfsOutput) Tags() pulumi.StringMapOutput {
   509  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   510  }
   511  
   512  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   513  //
   514  // Deprecated: Please use `tags` instead.
   515  func (o LocationHdfsOutput) TagsAll() pulumi.StringMapOutput {
   516  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   517  }
   518  
   519  func (o LocationHdfsOutput) Uri() pulumi.StringOutput {
   520  	return o.ApplyT(func(v *LocationHdfs) pulumi.StringOutput { return v.Uri }).(pulumi.StringOutput)
   521  }
   522  
   523  type LocationHdfsArrayOutput struct{ *pulumi.OutputState }
   524  
   525  func (LocationHdfsArrayOutput) ElementType() reflect.Type {
   526  	return reflect.TypeOf((*[]*LocationHdfs)(nil)).Elem()
   527  }
   528  
   529  func (o LocationHdfsArrayOutput) ToLocationHdfsArrayOutput() LocationHdfsArrayOutput {
   530  	return o
   531  }
   532  
   533  func (o LocationHdfsArrayOutput) ToLocationHdfsArrayOutputWithContext(ctx context.Context) LocationHdfsArrayOutput {
   534  	return o
   535  }
   536  
   537  func (o LocationHdfsArrayOutput) Index(i pulumi.IntInput) LocationHdfsOutput {
   538  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LocationHdfs {
   539  		return vs[0].([]*LocationHdfs)[vs[1].(int)]
   540  	}).(LocationHdfsOutput)
   541  }
   542  
   543  type LocationHdfsMapOutput struct{ *pulumi.OutputState }
   544  
   545  func (LocationHdfsMapOutput) ElementType() reflect.Type {
   546  	return reflect.TypeOf((*map[string]*LocationHdfs)(nil)).Elem()
   547  }
   548  
   549  func (o LocationHdfsMapOutput) ToLocationHdfsMapOutput() LocationHdfsMapOutput {
   550  	return o
   551  }
   552  
   553  func (o LocationHdfsMapOutput) ToLocationHdfsMapOutputWithContext(ctx context.Context) LocationHdfsMapOutput {
   554  	return o
   555  }
   556  
   557  func (o LocationHdfsMapOutput) MapIndex(k pulumi.StringInput) LocationHdfsOutput {
   558  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LocationHdfs {
   559  		return vs[0].(map[string]*LocationHdfs)[vs[1].(string)]
   560  	}).(LocationHdfsOutput)
   561  }
   562  
   563  func init() {
   564  	pulumi.RegisterInputType(reflect.TypeOf((*LocationHdfsInput)(nil)).Elem(), &LocationHdfs{})
   565  	pulumi.RegisterInputType(reflect.TypeOf((*LocationHdfsArrayInput)(nil)).Elem(), LocationHdfsArray{})
   566  	pulumi.RegisterInputType(reflect.TypeOf((*LocationHdfsMapInput)(nil)).Elem(), LocationHdfsMap{})
   567  	pulumi.RegisterOutputType(LocationHdfsOutput{})
   568  	pulumi.RegisterOutputType(LocationHdfsArrayOutput{})
   569  	pulumi.RegisterOutputType(LocationHdfsMapOutput{})
   570  }