import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface TencentcloudProviderConfig { /** * List of allowed TencentCloud account IDs to prevent you from mistakenly using the wrong one (and potentially end up destroying a live environment). Conflicts with `forbidden_account_ids`, If use `assume_role_with_saml` or `assume_role_with_web_identity`, it is not supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#allowed_account_ids TencentcloudProvider#allowed_account_ids} */ readonly allowedAccountIds?: string[]; /** * The name of the CVM instance CAM role. It can be sourced from the `TENCENTCLOUD_CAM_ROLE_NAME` environment variable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#cam_role_name TencentcloudProvider#cam_role_name} */ readonly camRoleName?: string; /** * The cos domain of the API request, Default is `https://cos.{region}.myqcloud.com`, Other Examples: `https://cluster-123456.cos-cdc.ap-guangzhou.myqcloud.com`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#cos_domain TencentcloudProvider#cos_domain} */ readonly cosDomain?: string; /** * The root domain of the API request, Default is `tencentcloudapi.com`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#domain TencentcloudProvider#domain} */ readonly domain?: string; /** * Whether to enable pod oidc. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#enable_pod_oidc TencentcloudProvider#enable_pod_oidc} */ readonly enablePodOidc?: boolean | cdktf.IResolvable; /** * List of forbidden TencentCloud account IDs to prevent you from mistakenly using the wrong one (and potentially end up destroying a live environment). Conflicts with `allowed_account_ids`, If use `assume_role_with_saml` or `assume_role_with_web_identity`, it is not supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#forbidden_account_ids TencentcloudProvider#forbidden_account_ids} */ readonly forbiddenAccountIds?: string[]; /** * The profile name as set in the shared credentials. It can also be sourced from the `TENCENTCLOUD_PROFILE` environment variable. If not set, the default profile created with `tccli configure` will be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#profile TencentcloudProvider#profile} */ readonly profile?: string; /** * The protocol of the API request. Valid values: `HTTP` and `HTTPS`. Default is `HTTPS`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#protocol TencentcloudProvider#protocol} */ readonly protocol?: string; /** * This is the TencentCloud region. It can also be sourced from the `TENCENTCLOUD_REGION` environment variables. The default input value is ap-guangzhou. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#region TencentcloudProvider#region} */ readonly region?: string; /** * This is the TencentCloud access key. It can also be sourced from the `TENCENTCLOUD_SECRET_ID` environment variable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#secret_id TencentcloudProvider#secret_id} */ readonly secretId?: string; /** * This is the TencentCloud secret key. It can also be sourced from the `TENCENTCLOUD_SECRET_KEY` environment variable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#secret_key TencentcloudProvider#secret_key} */ readonly secretKey?: string; /** * TencentCloud Security Token of temporary access credentials. It can be sourced from the `TENCENTCLOUD_SECURITY_TOKEN` environment variable. Notice: for supported products, please refer to: [temporary key supported products](https://intl.cloud.tencent.com/document/product/598/10588). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#security_token TencentcloudProvider#security_token} */ readonly securityToken?: string; /** * The directory of the shared credentials. It can also be sourced from the `TENCENTCLOUD_SHARED_CREDENTIALS_DIR` environment variable. If not set this defaults to ~/.tccli. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#shared_credentials_dir TencentcloudProvider#shared_credentials_dir} */ readonly sharedCredentialsDir?: string; /** * Alias name * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#alias TencentcloudProvider#alias} */ readonly alias?: string; /** * assume_role block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#assume_role TencentcloudProvider#assume_role} */ readonly assumeRole?: TencentcloudProviderAssumeRole; /** * assume_role_with_saml block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#assume_role_with_saml TencentcloudProvider#assume_role_with_saml} */ readonly assumeRoleWithSaml?: TencentcloudProviderAssumeRoleWithSaml; /** * assume_role_with_web_identity block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#assume_role_with_web_identity TencentcloudProvider#assume_role_with_web_identity} */ readonly assumeRoleWithWebIdentity?: TencentcloudProviderAssumeRoleWithWebIdentity; /** * mfa_certification block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#mfa_certification TencentcloudProvider#mfa_certification} */ readonly mfaCertification?: TencentcloudProviderMfaCertification; } export interface TencentcloudProviderAssumeRole { /** * External role ID, which can be obtained by clicking the role name in the CAM console. It can contain 2-128 letters, digits, and symbols (=,.@:/-). Regex: [\w+=,.@:/-]*. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_EXTERNAL_ID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#external_id TencentcloudProvider#external_id} */ readonly externalId?: string; /** * A more restrictive policy when making the AssumeRole call. Its content must not contains `principal` elements. Notice: more syntax references, please refer to: [policies syntax logic](https://intl.cloud.tencent.com/document/product/598/10603). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#policy TencentcloudProvider#policy} */ readonly policy?: string; /** * The ARN of the role to assume. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_ARN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#role_arn TencentcloudProvider#role_arn} */ readonly roleArn: string; /** * MFA serial number, the identification number of the MFA device associated with the calling CAM user. Format qcs: cam:uin/${ownerUin}::mfa/${mfaType}. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SERIAL_NUMBER`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#serial_number TencentcloudProvider#serial_number} */ readonly serialNumber?: string; /** * The duration of the session when making the AssumeRole call. Its value ranges from 0 to 43200(seconds), and default is 7200 seconds. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_duration TencentcloudProvider#session_duration} */ readonly sessionDuration?: number; /** * The session name to use when making the AssumeRole call. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_name TencentcloudProvider#session_name} */ readonly sessionName: string; /** * Caller identity uin. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SOURCE_IDENTITY`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#source_identity TencentcloudProvider#source_identity} */ readonly sourceIdentity?: string; /** * MFA authentication code. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_TOKEN_CODE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#token_code TencentcloudProvider#token_code} */ readonly tokenCode?: string; } export declare function tencentcloudProviderAssumeRoleToTerraform(struct?: TencentcloudProviderAssumeRole): any; export declare function tencentcloudProviderAssumeRoleToHclTerraform(struct?: TencentcloudProviderAssumeRole): any; export interface TencentcloudProviderAssumeRoleWithSaml { /** * Player Access Description Name. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_PRINCIPAL_ARN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#principal_arn TencentcloudProvider#principal_arn} */ readonly principalArn: string; /** * The ARN of the role to assume. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_ARN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#role_arn TencentcloudProvider#role_arn} */ readonly roleArn: string; /** * SAML assertion information encoded in base64. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SAML_ASSERTION`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#saml_assertion TencentcloudProvider#saml_assertion} */ readonly samlAssertion: string; /** * The duration of the session when making the AssumeRoleWithSAML call. Its value ranges from 0 to 43200(seconds), and default is 7200 seconds. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_duration TencentcloudProvider#session_duration} */ readonly sessionDuration?: number; /** * The session name to use when making the AssumeRole call. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_name TencentcloudProvider#session_name} */ readonly sessionName: string; } export declare function tencentcloudProviderAssumeRoleWithSamlToTerraform(struct?: TencentcloudProviderAssumeRoleWithSaml): any; export declare function tencentcloudProviderAssumeRoleWithSamlToHclTerraform(struct?: TencentcloudProviderAssumeRoleWithSaml): any; export interface TencentcloudProviderAssumeRoleWithWebIdentity { /** * Identity provider name. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_PROVIDER_ID`, Default is OIDC. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#provider_id TencentcloudProvider#provider_id} */ readonly providerId?: string; /** * The ARN of the role to assume. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_ARN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#role_arn TencentcloudProvider#role_arn} */ readonly roleArn: string; /** * The duration of the session when making the AssumeRoleWithWebIdentity call. Its value ranges from 0 to 43200(seconds), and default is 7200 seconds. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_duration TencentcloudProvider#session_duration} */ readonly sessionDuration?: number; /** * The session name to use when making the AssumeRole call. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#session_name TencentcloudProvider#session_name} */ readonly sessionName: string; /** * OIDC token issued by IdP. It can be sourced from the `TENCENTCLOUD_ASSUME_ROLE_WEB_IDENTITY_TOKEN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#web_identity_token TencentcloudProvider#web_identity_token} */ readonly webIdentityToken: string; } export declare function tencentcloudProviderAssumeRoleWithWebIdentityToTerraform(struct?: TencentcloudProviderAssumeRoleWithWebIdentity): any; export declare function tencentcloudProviderAssumeRoleWithWebIdentityToHclTerraform(struct?: TencentcloudProviderAssumeRoleWithWebIdentity): any; export interface TencentcloudProviderMfaCertification { /** * Specify the validity period of the temporary certificate. The main account can be set to a maximum validity period of 7200 seconds, and the sub account can be set to a maximum validity period of 129600 seconds, and default is 1800 seconds. It can be sourced from the `TENCENTCLOUD_MFA_CERTIFICATION_DURATION_SECONDS`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#duration_seconds TencentcloudProvider#duration_seconds} */ readonly durationSeconds?: number; /** * MFA serial number, the identification number of the MFA device associated with the calling CAM user. Format qcs: cam:uin/${ownerUin}::mfa/${mfaType}. It can be sourced from the `TENCENTCLOUD_MFA_CERTIFICATION_SERIAL_NUMBER`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#serial_number TencentcloudProvider#serial_number} */ readonly serialNumber: string; /** * MFA authentication code. It can be sourced from the `TENCENTCLOUD_MFA_CERTIFICATION_TOKEN_CODE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#token_code TencentcloudProvider#token_code} */ readonly tokenCode: string; } export declare function tencentcloudProviderMfaCertificationToTerraform(struct?: TencentcloudProviderMfaCertification): any; export declare function tencentcloudProviderMfaCertificationToHclTerraform(struct?: TencentcloudProviderMfaCertification): any; /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs tencentcloud} */ export declare class TencentcloudProvider extends cdktf.TerraformProvider { static readonly tfResourceType = "tencentcloud"; /** * Generates CDKTF code for importing a TencentcloudProvider resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the TencentcloudProvider to import * @param importFromId The id of the existing TencentcloudProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the TencentcloudProvider to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs tencentcloud} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options TencentcloudProviderConfig = {} */ constructor(scope: Construct, id: string, config?: TencentcloudProviderConfig); private _allowedAccountIds?; get allowedAccountIds(): string[] | undefined; set allowedAccountIds(value: string[] | undefined); resetAllowedAccountIds(): void; get allowedAccountIdsInput(): string[]; private _camRoleName?; get camRoleName(): string | undefined; set camRoleName(value: string | undefined); resetCamRoleName(): void; get camRoleNameInput(): string; private _cosDomain?; get cosDomain(): string | undefined; set cosDomain(value: string | undefined); resetCosDomain(): void; get cosDomainInput(): string; private _domain?; get domain(): string | undefined; set domain(value: string | undefined); resetDomain(): void; get domainInput(): string; private _enablePodOidc?; get enablePodOidc(): boolean | cdktf.IResolvable | undefined; set enablePodOidc(value: boolean | cdktf.IResolvable | undefined); resetEnablePodOidc(): void; get enablePodOidcInput(): any; private _forbiddenAccountIds?; get forbiddenAccountIds(): string[] | undefined; set forbiddenAccountIds(value: string[] | undefined); resetForbiddenAccountIds(): void; get forbiddenAccountIdsInput(): string[]; private _profile?; get profile(): string | undefined; set profile(value: string | undefined); resetProfile(): void; get profileInput(): string; private _protocol?; get protocol(): string | undefined; set protocol(value: string | undefined); resetProtocol(): void; get protocolInput(): string; private _region?; get region(): string | undefined; set region(value: string | undefined); resetRegion(): void; get regionInput(): string; private _secretId?; get secretId(): string | undefined; set secretId(value: string | undefined); resetSecretId(): void; get secretIdInput(): string; private _secretKey?; get secretKey(): string | undefined; set secretKey(value: string | undefined); resetSecretKey(): void; get secretKeyInput(): string; private _securityToken?; get securityToken(): string | undefined; set securityToken(value: string | undefined); resetSecurityToken(): void; get securityTokenInput(): string; private _sharedCredentialsDir?; get sharedCredentialsDir(): string | undefined; set sharedCredentialsDir(value: string | undefined); resetSharedCredentialsDir(): void; get sharedCredentialsDirInput(): string; private _alias?; get alias(): string | undefined; set alias(value: string | undefined); resetAlias(): void; get aliasInput(): string; private _assumeRole?; get assumeRole(): TencentcloudProviderAssumeRole | undefined; set assumeRole(value: TencentcloudProviderAssumeRole | undefined); resetAssumeRole(): void; get assumeRoleInput(): TencentcloudProviderAssumeRole; private _assumeRoleWithSaml?; get assumeRoleWithSaml(): TencentcloudProviderAssumeRoleWithSaml | undefined; set assumeRoleWithSaml(value: TencentcloudProviderAssumeRoleWithSaml | undefined); resetAssumeRoleWithSaml(): void; get assumeRoleWithSamlInput(): TencentcloudProviderAssumeRoleWithSaml; private _assumeRoleWithWebIdentity?; get assumeRoleWithWebIdentity(): TencentcloudProviderAssumeRoleWithWebIdentity | undefined; set assumeRoleWithWebIdentity(value: TencentcloudProviderAssumeRoleWithWebIdentity | undefined); resetAssumeRoleWithWebIdentity(): void; get assumeRoleWithWebIdentityInput(): TencentcloudProviderAssumeRoleWithWebIdentity; private _mfaCertification?; get mfaCertification(): TencentcloudProviderMfaCertification | undefined; set mfaCertification(value: TencentcloudProviderMfaCertification | undefined); resetMfaCertification(): void; get mfaCertificationInput(): TencentcloudProviderMfaCertification; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }