import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource schema for AWS::DataSync::LocationSMB.
 */
export declare class LocationSmb extends pulumi.CustomResource {
    /**
     * Get an existing LocationSmb resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): LocationSmb;
    /**
     * Returns true if the given object is an instance of LocationSmb.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is LocationSmb;
    /**
     * The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.
     */
    readonly agentArns: pulumi.Output<string[]>;
    /**
     * The authentication mode used to determine identity of user.
     */
    readonly authenticationType: pulumi.Output<enums.datasync.LocationSmbAuthenticationType | undefined>;
    /**
     * Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to. This parameter applies only if AuthenticationType is set to KERBEROS. If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.
     */
    readonly dnsIpAddresses: pulumi.Output<string[] | undefined>;
    /**
     * The name of the Windows domain that the SMB server belongs to.
     */
    readonly domain: pulumi.Output<string | undefined>;
    /**
     * The Base64 string representation of the Keytab file. Specifies your Kerberos key table (keytab) file, which includes mappings between your service principal name (SPN) and encryption keys. To avoid task execution errors, make sure that the SPN in the keytab file matches exactly what you specify for KerberosPrincipal and in your krb5.conf file.
     */
    readonly kerberosKeytab: pulumi.Output<string | undefined>;
    /**
     * The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket. Specifies a Kerberos configuration file (krb5.conf) that defines your Kerberos realm configuration. To avoid task execution errors, make sure that the service principal name (SPN) in the krb5.conf file matches exactly what you specify for KerberosPrincipal and in your keytab file.
     */
    readonly kerberosKrb5Conf: pulumi.Output<string | undefined>;
    /**
     * Specifies a service principal name (SPN), which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server. SPNs are case sensitive and must include a prepended cifs/. For example, an SPN might look like cifs/kerberosuser@EXAMPLE.COM. Your task execution will fail if the SPN that you provide for this parameter doesn't match exactly what's in your keytab or krb5.conf files.
     */
    readonly kerberosPrincipal: pulumi.Output<string | undefined>;
    /**
     * The Amazon Resource Name (ARN) of the SMB location that is created.
     */
    readonly locationArn: pulumi.Output<string>;
    /**
     * The URL of the SMB location that was described.
     */
    readonly locationUri: pulumi.Output<string>;
    /**
     * Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.
     */
    readonly mountOptions: pulumi.Output<outputs.datasync.LocationSmbMountOptions | undefined>;
    /**
     * The password of the user who can mount the share and has the permissions to access files and folders in the SMB share.
     */
    readonly password: pulumi.Output<string | undefined>;
    /**
     * The name of the SMB server. This value is the IP address or Domain Name Service (DNS) name of the SMB server.
     */
    readonly serverHostname: pulumi.Output<string | undefined>;
    /**
     * The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination
     */
    readonly subdirectory: pulumi.Output<string | undefined>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The user who can mount the share, has the permissions to access files and folders in the SMB share.
     */
    readonly user: pulumi.Output<string | undefined>;
    /**
     * Create a LocationSmb resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: LocationSmbArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a LocationSmb resource.
 */
export interface LocationSmbArgs {
    /**
     * The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.
     */
    agentArns: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The authentication mode used to determine identity of user.
     */
    authenticationType?: pulumi.Input<enums.datasync.LocationSmbAuthenticationType>;
    /**
     * Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to. This parameter applies only if AuthenticationType is set to KERBEROS. If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.
     */
    dnsIpAddresses?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the Windows domain that the SMB server belongs to.
     */
    domain?: pulumi.Input<string>;
    /**
     * The Base64 string representation of the Keytab file. Specifies your Kerberos key table (keytab) file, which includes mappings between your service principal name (SPN) and encryption keys. To avoid task execution errors, make sure that the SPN in the keytab file matches exactly what you specify for KerberosPrincipal and in your krb5.conf file.
     */
    kerberosKeytab?: pulumi.Input<string>;
    /**
     * The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket. Specifies a Kerberos configuration file (krb5.conf) that defines your Kerberos realm configuration. To avoid task execution errors, make sure that the service principal name (SPN) in the krb5.conf file matches exactly what you specify for KerberosPrincipal and in your keytab file.
     */
    kerberosKrb5Conf?: pulumi.Input<string>;
    /**
     * Specifies a service principal name (SPN), which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server. SPNs are case sensitive and must include a prepended cifs/. For example, an SPN might look like cifs/kerberosuser@EXAMPLE.COM. Your task execution will fail if the SPN that you provide for this parameter doesn't match exactly what's in your keytab or krb5.conf files.
     */
    kerberosPrincipal?: pulumi.Input<string>;
    /**
     * Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.
     */
    mountOptions?: pulumi.Input<inputs.datasync.LocationSmbMountOptionsArgs>;
    /**
     * The password of the user who can mount the share and has the permissions to access files and folders in the SMB share.
     */
    password?: pulumi.Input<string>;
    /**
     * The name of the SMB server. This value is the IP address or Domain Name Service (DNS) name of the SMB server.
     */
    serverHostname?: pulumi.Input<string>;
    /**
     * The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination
     */
    subdirectory?: pulumi.Input<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The user who can mount the share, has the permissions to access files and folders in the SMB share.
     */
    user?: pulumi.Input<string>;
}
