import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Resource for creating a WinRM credential secret. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as harness from "@pulumi/harness"; * * // ============================================================================ * // ACCOUNT LEVEL TESTS (3 scenarios) * // ============================================================================ * // 1. Account-level NTLM * const accountNtlmPassword = new harness.platform.SecretText("account_ntlm_password", { * identifier: "account_ntlm_password_v3", * name: "account_ntlm_password_v3", * description: "Password for account-level NTLM", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "account_ntlm_pass", * }); * const accountNtlm = new harness.platform.SecretWinrm("account_ntlm", { * identifier: "account_ntlm_v3", * name: "Account NTLM v3", * description: "Account-level WinRM with NTLM", * tags: [ * "scope:account", * "auth:ntlm", * ], * port: 5986, * ntlm: { * domain: "example.com", * username: "admin", * passwordRef: pulumi.interpolate`account.${accountNtlmPassword.id}`, * useSsl: true, * skipCertCheck: false, * useNoProfile: true, * }, * }); * // 2. Account-level Kerberos with KeyTab * const accountKerberosKeytab = new harness.platform.SecretWinrm("account_kerberos_keytab", { * identifier: "account_kerberos_keytab_v3", * name: "Account Kerberos KeyTab v3", * description: "Account-level WinRM with Kerberos KeyTab", * tags: [ * "scope:account", * "auth:kerberos-keytab", * ], * port: 5986, * kerberos: { * principal: "service@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "KeyTabFilePath", * useSsl: true, * skipCertCheck: true, * useNoProfile: true, * tgtKeyTabFilePathSpec: { * keyPath: "/etc/krb5.keytab", * }, * }, * }); * // 3. Account-level Kerberos with Password * const accountKerberosPassword1 = new harness.platform.SecretText("account_kerberos_password_1", { * identifier: "account_kerb_pass_20251111", * name: "account_kerb_pass_20251111", * description: "Password for account-level Kerberos", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "account_kerberos_pass", * }); * const accountKerberosPassword1SecretWinrm = new harness.platform.SecretWinrm("account_kerberos_password_1", { * identifier: "account_kerb_winrm_20251111", * name: "Account Kerberos WinRM 20251111", * description: "Account-level WinRM with Kerberos Password", * tags: [ * "scope:account", * "auth:kerberos-password", * ], * port: 5986, * kerberos: { * principal: "user@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "Password", * useSsl: true, * skipCertCheck: false, * useNoProfile: true, * tgtPasswordSpec: { * passwordRef: pulumi.interpolate`account.${accountKerberosPassword1.id}`, * }, * }, * }); * // ============================================================================ * // ORGANIZATION LEVEL TESTS (3 scenarios) * // ============================================================================ * // 4. Org-level NTLM * const orgNtlmPassword = new harness.platform.SecretText("org_ntlm_password", { * identifier: "org_ntlm_password_v3", * name: "org_ntlm_password_v3", * description: "Password for org-level NTLM", * orgId: "default", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "org_ntlm_pass", * }); * const orgNtlm = new harness.platform.SecretWinrm("org_ntlm", { * identifier: "org_ntlm_v3", * name: "Org NTLM v3", * description: "Org-level WinRM with NTLM", * orgId: "default", * tags: [ * "scope:org", * "auth:ntlm", * ], * port: 5985, * ntlm: { * domain: "org.example.com", * username: "orgadmin", * passwordRef: pulumi.interpolate`org.${orgNtlmPassword.id}`, * useSsl: false, * skipCertCheck: false, * useNoProfile: true, * }, * }); * // 5. Org-level Kerberos with KeyTab * const orgKerberosKeytab = new harness.platform.SecretWinrm("org_kerberos_keytab", { * identifier: "org_kerberos_keytab_v3", * name: "Org Kerberos KeyTab v3", * description: "Org-level WinRM with Kerberos KeyTab", * orgId: "default", * tags: [ * "scope:org", * "auth:kerberos-keytab", * ], * port: 5986, * kerberos: { * principal: "orgservice@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "KeyTabFilePath", * useSsl: true, * skipCertCheck: true, * useNoProfile: true, * tgtKeyTabFilePathSpec: { * keyPath: "/etc/org.keytab", * }, * }, * }); * // 6. Org-level Kerberos with Password * const orgKerberosPassword = new harness.platform.SecretText("org_kerberos_password", { * identifier: "org_kerb_pass_v3", * name: "org_kerb_pass_v3", * description: "Password for org-level Kerberos", * orgId: "default", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "org_kerberos_pass", * }); * const orgKerberosPasswordSecretWinrm = new harness.platform.SecretWinrm("org_kerberos_password", { * identifier: "org_kerb_winrm_v3", * name: "Org Kerberos WinRM v3", * description: "Org-level WinRM with Kerberos Password", * orgId: "default", * tags: [ * "scope:org", * "auth:kerberos-password", * ], * port: 5986, * kerberos: { * principal: "orguser@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "Password", * useSsl: true, * skipCertCheck: false, * useNoProfile: true, * tgtPasswordSpec: { * passwordRef: pulumi.interpolate`org.${orgKerberosPassword.id}`, * }, * }, * }); * // ============================================================================ * // PROJECT LEVEL TESTS (3 scenarios) * // ============================================================================ * // 7. Project-level NTLM * const projectNtlmPassword = new harness.platform.SecretText("project_ntlm_password", { * identifier: "proj_ntlm_pass_v3", * name: "proj_ntlm_pass_v3", * description: "Password for project-level NTLM", * orgId: "default", * projectId: "winrm_support_terraform", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "project_ntlm_pass", * }); * const projectNtlm = new harness.platform.SecretWinrm("project_ntlm", { * identifier: "proj_ntlm_winrm_v3", * name: "Project NTLM WinRM v3", * description: "Project-level WinRM with NTLM", * orgId: "default", * projectId: "winrm_support_terraform", * tags: [ * "scope:project", * "auth:ntlm", * ], * port: 5986, * ntlm: { * domain: "project.example.com", * username: "projectadmin", * passwordRef: projectNtlmPassword.id, * useSsl: true, * skipCertCheck: false, * useNoProfile: false, * }, * }); * // 8. Project-level Kerberos with KeyTab * const projectKerberosKeytab = new harness.platform.SecretWinrm("project_kerberos_keytab", { * identifier: "proj_kerb_keytab_v3", * name: "Project Kerberos KeyTab v3", * description: "Project-level WinRM with Kerberos KeyTab", * orgId: "default", * projectId: "winrm_support_terraform", * tags: [ * "scope:project", * "auth:kerberos-keytab", * ], * port: 5986, * kerberos: { * principal: "projectservice@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "KeyTabFilePath", * useSsl: false, * skipCertCheck: false, * useNoProfile: false, * tgtKeyTabFilePathSpec: { * keyPath: "/etc/project.keytab", * }, * }, * }); * // 9. Project-level Kerberos with Password * const projectKerberosPassword = new harness.platform.SecretText("project_kerberos_password", { * identifier: "proj_kerb_pass_v3", * name: "proj_kerb_pass_v3", * description: "Password for project-level Kerberos", * orgId: "default", * projectId: "winrm_support_terraform", * secretManagerIdentifier: "harnessSecretManager", * valueType: "Inline", * value: "project_kerberos_pass", * }); * const projectKerberosPasswordSecretWinrm = new harness.platform.SecretWinrm("project_kerberos_password", { * identifier: "proj_kerb_winrm_v3", * name: "Project Kerberos WinRM v3", * description: "Project-level WinRM with Kerberos Password", * orgId: "default", * projectId: "winrm_support_terraform", * tags: [ * "scope:project", * "auth:kerberos-password", * ], * port: 5986, * kerberos: { * principal: "projectuser@EXAMPLE.COM", * realm: "EXAMPLE.COM", * tgtGenerationMethod: "Password", * useSsl: false, * skipCertCheck: true, * useNoProfile: true, * tgtPasswordSpec: { * passwordRef: projectKerberosPassword.id, * }, * }, * }); * ``` * * ## Import * * The `pulumi import` command can be used, for example: * * Import account level WinRM credential * * ```sh * $ pulumi import harness:platform/secretWinrm:SecretWinrm example * ``` * * Import organization level WinRM credential * * ```sh * $ pulumi import harness:platform/secretWinrm:SecretWinrm example / * ``` * * Import project level WinRM credential * * ```sh * $ pulumi import harness:platform/secretWinrm:SecretWinrm example // * ``` */ export declare class SecretWinrm extends pulumi.CustomResource { /** * Get an existing SecretWinrm 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 state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: SecretWinrmState, opts?: pulumi.CustomResourceOptions): SecretWinrm; /** * Returns true if the given object is an instance of SecretWinrm. 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 SecretWinrm; /** * Description of the resource. */ readonly description: pulumi.Output; /** * Unique identifier of the resource. */ readonly identifier: pulumi.Output; /** * Kerberos authentication scheme */ readonly kerberos: pulumi.Output; /** * Name of the resource. */ readonly name: pulumi.Output; /** * NTLM authentication scheme */ readonly ntlm: pulumi.Output; /** * Unique identifier of the organization. */ readonly orgId: pulumi.Output; /** * WinRM port. Default is 5986 for HTTPS, 5985 for HTTP. */ readonly port: pulumi.Output; /** * Unique identifier of the project. */ readonly projectId: pulumi.Output; /** * Tags to associate with the resource. */ readonly tags: pulumi.Output; /** * Create a SecretWinrm 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: SecretWinrmArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SecretWinrm resources. */ export interface SecretWinrmState { /** * Description of the resource. */ description?: pulumi.Input; /** * Unique identifier of the resource. */ identifier?: pulumi.Input; /** * Kerberos authentication scheme */ kerberos?: pulumi.Input; /** * Name of the resource. */ name?: pulumi.Input; /** * NTLM authentication scheme */ ntlm?: pulumi.Input; /** * Unique identifier of the organization. */ orgId?: pulumi.Input; /** * WinRM port. Default is 5986 for HTTPS, 5985 for HTTP. */ port?: pulumi.Input; /** * Unique identifier of the project. */ projectId?: pulumi.Input; /** * Tags to associate with the resource. */ tags?: pulumi.Input[] | undefined>; } /** * The set of arguments for constructing a SecretWinrm resource. */ export interface SecretWinrmArgs { /** * Description of the resource. */ description?: pulumi.Input; /** * Unique identifier of the resource. */ identifier: pulumi.Input; /** * Kerberos authentication scheme */ kerberos?: pulumi.Input; /** * Name of the resource. */ name?: pulumi.Input; /** * NTLM authentication scheme */ ntlm?: pulumi.Input; /** * Unique identifier of the organization. */ orgId?: pulumi.Input; /** * WinRM port. Default is 5986 for HTTPS, 5985 for HTTP. */ port?: pulumi.Input; /** * Unique identifier of the project. */ projectId?: pulumi.Input; /** * Tags to associate with the resource. */ tags?: pulumi.Input[] | undefined>; } //# sourceMappingURL=secretWinrm.d.ts.map