com.pulumi.alicloud.eds.kotlin.AdConnectorOfficeSiteArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-alicloud-kotlin Show documentation
Show all versions of pulumi-alicloud-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.alicloud.eds.kotlin
import com.pulumi.alicloud.eds.AdConnectorOfficeSiteArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Provides a ECD Ad Connector Office Site resource.
* For information about ECD Ad Connector Office Site and how to use it, see [What is Ad Connector Office Site](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createadconnectorofficesite).
* > **NOTE:** Available since v1.176.0.
* ## Example Usage
* Basic Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as alicloud from "@pulumi/alicloud";
* const config = new pulumi.Config();
* const name = config.get("name") || "terraform-example";
* const _default = new alicloud.cen.Instance("default", {
* cenInstanceName: name,
* protectionLevel: "REDUCED",
* });
* const defaultAdConnectorOfficeSite = new alicloud.eds.AdConnectorOfficeSite("default", {
* adConnectorOfficeSiteName: name,
* bandwidth: 100,
* cenId: _default.id,
* cidrBlock: "10.0.0.0/12",
* desktopAccessType: "INTERNET",
* dnsAddresses: ["127.0.0.2"],
* domainName: "corp.example.com",
* domainPassword: "Example1234",
* domainUserName: "sAMAccountName",
* enableAdminAccess: false,
* enableInternetAccess: false,
* mfaEnabled: false,
* subDomainDnsAddresses: ["127.0.0.3"],
* subDomainName: "child.example.com",
* });
* ```
* ```python
* import pulumi
* import pulumi_alicloud as alicloud
* config = pulumi.Config()
* name = config.get("name")
* if name is None:
* name = "terraform-example"
* default = alicloud.cen.Instance("default",
* cen_instance_name=name,
* protection_level="REDUCED")
* default_ad_connector_office_site = alicloud.eds.AdConnectorOfficeSite("default",
* ad_connector_office_site_name=name,
* bandwidth=100,
* cen_id=default.id,
* cidr_block="10.0.0.0/12",
* desktop_access_type="INTERNET",
* dns_addresses=["127.0.0.2"],
* domain_name="corp.example.com",
* domain_password="Example1234",
* domain_user_name="sAMAccountName",
* enable_admin_access=False,
* enable_internet_access=False,
* mfa_enabled=False,
* sub_domain_dns_addresses=["127.0.0.3"],
* sub_domain_name="child.example.com")
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AliCloud = Pulumi.AliCloud;
* return await Deployment.RunAsync(() =>
* {
* var config = new Config();
* var name = config.Get("name") ?? "terraform-example";
* var @default = new AliCloud.Cen.Instance("default", new()
* {
* CenInstanceName = name,
* ProtectionLevel = "REDUCED",
* });
* var defaultAdConnectorOfficeSite = new AliCloud.Eds.AdConnectorOfficeSite("default", new()
* {
* AdConnectorOfficeSiteName = name,
* Bandwidth = 100,
* CenId = @default.Id,
* CidrBlock = "10.0.0.0/12",
* DesktopAccessType = "INTERNET",
* DnsAddresses = new[]
* {
* "127.0.0.2",
* },
* DomainName = "corp.example.com",
* DomainPassword = "Example1234",
* DomainUserName = "sAMAccountName",
* EnableAdminAccess = false,
* EnableInternetAccess = false,
* MfaEnabled = false,
* SubDomainDnsAddresses = new[]
* {
* "127.0.0.3",
* },
* SubDomainName = "child.example.com",
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen"
* "github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* cfg := config.New(ctx, "")
* name := "terraform-example"
* if param := cfg.Get("name"); param != "" {
* name = param
* }
* _, err := cen.NewInstance(ctx, "default", &cen.InstanceArgs{
* CenInstanceName: pulumi.String(name),
* ProtectionLevel: pulumi.String("REDUCED"),
* })
* if err != nil {
* return err
* }
* _, err = eds.NewAdConnectorOfficeSite(ctx, "default", &eds.AdConnectorOfficeSiteArgs{
* AdConnectorOfficeSiteName: pulumi.String(name),
* Bandwidth: pulumi.Int(100),
* CenId: _default.ID(),
* CidrBlock: pulumi.String("10.0.0.0/12"),
* DesktopAccessType: pulumi.String("INTERNET"),
* DnsAddresses: pulumi.StringArray{
* pulumi.String("127.0.0.2"),
* },
* DomainName: pulumi.String("corp.example.com"),
* DomainPassword: pulumi.String("Example1234"),
* DomainUserName: pulumi.String("sAMAccountName"),
* EnableAdminAccess: pulumi.Bool(false),
* EnableInternetAccess: pulumi.Bool(false),
* MfaEnabled: pulumi.Bool(false),
* SubDomainDnsAddresses: pulumi.StringArray{
* pulumi.String("127.0.0.3"),
* },
* SubDomainName: pulumi.String("child.example.com"),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.alicloud.cen.Instance;
* import com.pulumi.alicloud.cen.InstanceArgs;
* import com.pulumi.alicloud.eds.AdConnectorOfficeSite;
* import com.pulumi.alicloud.eds.AdConnectorOfficeSiteArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* final var config = ctx.config();
* final var name = config.get("name").orElse("terraform-example");
* var default_ = new Instance("default", InstanceArgs.builder()
* .cenInstanceName(name)
* .protectionLevel("REDUCED")
* .build());
* var defaultAdConnectorOfficeSite = new AdConnectorOfficeSite("defaultAdConnectorOfficeSite", AdConnectorOfficeSiteArgs.builder()
* .adConnectorOfficeSiteName(name)
* .bandwidth(100)
* .cenId(default_.id())
* .cidrBlock("10.0.0.0/12")
* .desktopAccessType("INTERNET")
* .dnsAddresses("127.0.0.2")
* .domainName("corp.example.com")
* .domainPassword("Example1234")
* .domainUserName("sAMAccountName")
* .enableAdminAccess(false)
* .enableInternetAccess(false)
* .mfaEnabled(false)
* .subDomainDnsAddresses("127.0.0.3")
* .subDomainName("child.example.com")
* .build());
* }
* }
* ```
* ```yaml
* configuration:
* name:
* type: string
* default: terraform-example
* resources:
* default:
* type: alicloud:cen:Instance
* properties:
* cenInstanceName: ${name}
* protectionLevel: REDUCED
* defaultAdConnectorOfficeSite:
* type: alicloud:eds:AdConnectorOfficeSite
* name: default
* properties:
* adConnectorOfficeSiteName: ${name}
* bandwidth: 100
* cenId: ${default.id}
* cidrBlock: 10.0.0.0/12
* desktopAccessType: INTERNET
* dnsAddresses:
* - 127.0.0.2
* domainName: corp.example.com
* domainPassword: Example1234
* domainUserName: sAMAccountName
* enableAdminAccess: false
* enableInternetAccess: false
* mfaEnabled: false
* subDomainDnsAddresses:
* - 127.0.0.3
* subDomainName: child.example.com
* ```
*
* ## Import
* ECD Ad Connector Office Site can be imported using the id, e.g.
* ```sh
* $ pulumi import alicloud:eds/adConnectorOfficeSite:AdConnectorOfficeSite example
* ```
* @property adConnectorOfficeSiteName The name of the workspace. The name must be 2 to 255 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (_), and hyphens (-).
* @property adHostname The ad hostname.
* @property bandwidth The maximum public bandwidth value. Valid values: 0 to 200. If you do not specify this parameter or you set this parameter to 0, Internet access is disabled.
* @property cenId The ID of the CEN instance.
* @property cenOwnerId The cen owner id.
* @property cidrBlock Workspace Corresponds to the Security Office Network of IPv4 Segment.
* @property desktopAccessType The method that you use to connect to cloud desktops. **Note:** The VPC connection method is provided by Alibaba Cloud PrivateLink. You are not charged for PrivateLink. When you set this parameter to VPC or Any, PrivateLink is automatically activated. Default value: `INTERNET`. Valid values:
* - `INTERNET`: connects clients to cloud desktops only over the Internet.
* - `VPC`: connects clients to cloud desktops only over a VPC.
* - `ANY`: connects clients to cloud desktops over the Internet or a VPC. You can select a connection method when you use a client to connect to the cloud desktop.
* @property dnsAddresses The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.
* @property domainName The domain name of the enterprise AD system. You can register each domain name only once.
* @property domainPassword The password of the domain administrator. The password can be up to 64 characters in length.
* @property domainUserName The username of the domain administrator. The username can be up to 64 characters in length.
* @property enableAdminAccess Specifies whether to grant the permissions of the local administrator to the desktop users. Default value: true.
* @property enableInternetAccess Specifies whether to enable Internet access.
* @property mfaEnabled Specifies whether to enable multi-factor authentication (MFA).
* @property protocolType The protocol type. Valid values: `ASP`, `HDX`.
* @property specification The AD Connector specifications. Valid values: `1`, `2`.
* @property subDomainDnsAddresses The DNS address N of the enterprise AD subdomain. If you specify a value for the `sub_domain_name` parameter but you do not specify a value for this parameter, the DNS address of the subdomain is the same as the DNS address of the parent domain.
* @property subDomainName The domain name of the enterprise AD subdomain.
* @property verifyCode The verification code. If the CEN instance that you specify for the CenId parameter belongs to another Alibaba Cloud account, you must call the SendVerifyCode operation to obtain the verification code.
*/
public data class AdConnectorOfficeSiteArgs(
public val adConnectorOfficeSiteName: Output? = null,
public val adHostname: Output? = null,
public val bandwidth: Output? = null,
public val cenId: Output? = null,
public val cenOwnerId: Output? = null,
public val cidrBlock: Output? = null,
public val desktopAccessType: Output? = null,
public val dnsAddresses: Output>? = null,
public val domainName: Output? = null,
public val domainPassword: Output? = null,
public val domainUserName: Output? = null,
public val enableAdminAccess: Output? = null,
public val enableInternetAccess: Output? = null,
public val mfaEnabled: Output? = null,
public val protocolType: Output? = null,
public val specification: Output? = null,
public val subDomainDnsAddresses: Output>? = null,
public val subDomainName: Output? = null,
public val verifyCode: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.alicloud.eds.AdConnectorOfficeSiteArgs =
com.pulumi.alicloud.eds.AdConnectorOfficeSiteArgs.builder()
.adConnectorOfficeSiteName(adConnectorOfficeSiteName?.applyValue({ args0 -> args0 }))
.adHostname(adHostname?.applyValue({ args0 -> args0 }))
.bandwidth(bandwidth?.applyValue({ args0 -> args0 }))
.cenId(cenId?.applyValue({ args0 -> args0 }))
.cenOwnerId(cenOwnerId?.applyValue({ args0 -> args0 }))
.cidrBlock(cidrBlock?.applyValue({ args0 -> args0 }))
.desktopAccessType(desktopAccessType?.applyValue({ args0 -> args0 }))
.dnsAddresses(dnsAddresses?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.domainName(domainName?.applyValue({ args0 -> args0 }))
.domainPassword(domainPassword?.applyValue({ args0 -> args0 }))
.domainUserName(domainUserName?.applyValue({ args0 -> args0 }))
.enableAdminAccess(enableAdminAccess?.applyValue({ args0 -> args0 }))
.enableInternetAccess(enableInternetAccess?.applyValue({ args0 -> args0 }))
.mfaEnabled(mfaEnabled?.applyValue({ args0 -> args0 }))
.protocolType(protocolType?.applyValue({ args0 -> args0 }))
.specification(specification?.applyValue({ args0 -> args0 }))
.subDomainDnsAddresses(subDomainDnsAddresses?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.subDomainName(subDomainName?.applyValue({ args0 -> args0 }))
.verifyCode(verifyCode?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [AdConnectorOfficeSiteArgs].
*/
@PulumiTagMarker
public class AdConnectorOfficeSiteArgsBuilder internal constructor() {
private var adConnectorOfficeSiteName: Output? = null
private var adHostname: Output? = null
private var bandwidth: Output? = null
private var cenId: Output? = null
private var cenOwnerId: Output? = null
private var cidrBlock: Output? = null
private var desktopAccessType: Output? = null
private var dnsAddresses: Output>? = null
private var domainName: Output? = null
private var domainPassword: Output? = null
private var domainUserName: Output? = null
private var enableAdminAccess: Output? = null
private var enableInternetAccess: Output? = null
private var mfaEnabled: Output? = null
private var protocolType: Output? = null
private var specification: Output? = null
private var subDomainDnsAddresses: Output>? = null
private var subDomainName: Output? = null
private var verifyCode: Output? = null
/**
* @param value The name of the workspace. The name must be 2 to 255 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (_), and hyphens (-).
*/
@JvmName("lhsdiiqteedhuagf")
public suspend fun adConnectorOfficeSiteName(`value`: Output) {
this.adConnectorOfficeSiteName = value
}
/**
* @param value The ad hostname.
*/
@JvmName("pitwqfatmruoaiwk")
public suspend fun adHostname(`value`: Output) {
this.adHostname = value
}
/**
* @param value The maximum public bandwidth value. Valid values: 0 to 200. If you do not specify this parameter or you set this parameter to 0, Internet access is disabled.
*/
@JvmName("kwmprrjjvmogxkya")
public suspend fun bandwidth(`value`: Output) {
this.bandwidth = value
}
/**
* @param value The ID of the CEN instance.
*/
@JvmName("igrlpudaciienemj")
public suspend fun cenId(`value`: Output) {
this.cenId = value
}
/**
* @param value The cen owner id.
*/
@JvmName("xblbsyqvrkitxgtq")
public suspend fun cenOwnerId(`value`: Output) {
this.cenOwnerId = value
}
/**
* @param value Workspace Corresponds to the Security Office Network of IPv4 Segment.
*/
@JvmName("rvmmwnbppcmghxcf")
public suspend fun cidrBlock(`value`: Output) {
this.cidrBlock = value
}
/**
* @param value The method that you use to connect to cloud desktops. **Note:** The VPC connection method is provided by Alibaba Cloud PrivateLink. You are not charged for PrivateLink. When you set this parameter to VPC or Any, PrivateLink is automatically activated. Default value: `INTERNET`. Valid values:
* - `INTERNET`: connects clients to cloud desktops only over the Internet.
* - `VPC`: connects clients to cloud desktops only over a VPC.
* - `ANY`: connects clients to cloud desktops over the Internet or a VPC. You can select a connection method when you use a client to connect to the cloud desktop.
*/
@JvmName("djsqhjpaxncrkift")
public suspend fun desktopAccessType(`value`: Output) {
this.desktopAccessType = value
}
/**
* @param value The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.
*/
@JvmName("dtolrdejrbbkdyqx")
public suspend fun dnsAddresses(`value`: Output>) {
this.dnsAddresses = value
}
@JvmName("abttpkbscfavdjel")
public suspend fun dnsAddresses(vararg values: Output) {
this.dnsAddresses = Output.all(values.asList())
}
/**
* @param values The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.
*/
@JvmName("slerxewbvecgntxg")
public suspend fun dnsAddresses(values: List