UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

296 lines (295 loc) 16.2 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface IamPrincipalAccessBoundaryPolicyConfig extends cdktf.TerraformMetaArguments { /** * User defined annotations. See https://google.aip.dev/148#annotations * for more details such as format and size limitations * * * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. * Please refer to the field 'effective_annotations' for all of the annotations present on the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#annotations IamPrincipalAccessBoundaryPolicy#annotations} */ readonly annotations?: { [key: string]: string; }; /** * The description of the principal access boundary policy. Must be less than or equal to 63 characters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#display_name IamPrincipalAccessBoundaryPolicy#display_name} */ readonly displayName?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#id IamPrincipalAccessBoundaryPolicy#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The location the principal access boundary policy is in. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#location IamPrincipalAccessBoundaryPolicy#location} */ readonly location: string; /** * The parent organization of the principal access boundary policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#organization IamPrincipalAccessBoundaryPolicy#organization} */ readonly organization: string; /** * The ID to use to create the principal access boundary policy. * This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, hyphens, or dots. Pattern, /a-z{2,62}/. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#principal_access_boundary_policy_id IamPrincipalAccessBoundaryPolicy#principal_access_boundary_policy_id} */ readonly principalAccessBoundaryPolicyId: string; /** * details block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#details IamPrincipalAccessBoundaryPolicy#details} */ readonly details?: IamPrincipalAccessBoundaryPolicyDetails; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#timeouts IamPrincipalAccessBoundaryPolicy#timeouts} */ readonly timeouts?: IamPrincipalAccessBoundaryPolicyTimeouts; } export interface IamPrincipalAccessBoundaryPolicyDetailsRules { /** * The description of the principal access boundary policy rule. Must be less than or equal to 256 characters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#description IamPrincipalAccessBoundaryPolicy#description} */ readonly description?: string; /** * The access relationship of principals to the resources in this rule. * Possible values: ALLOW * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#effect IamPrincipalAccessBoundaryPolicy#effect} */ readonly effect: string; /** * A list of Cloud Resource Manager resources. The resource * and all the descendants are included. The number of resources in a policy * is limited to 500 across all rules. * The following resource types are supported: * * Organizations, such as '//cloudresourcemanager.googleapis.com/organizations/123'. * * Folders, such as '//cloudresourcemanager.googleapis.com/folders/123'. * * Projects, such as '//cloudresourcemanager.googleapis.com/projects/123' * or '//cloudresourcemanager.googleapis.com/projects/my-project-id'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#resources IamPrincipalAccessBoundaryPolicy#resources} */ readonly resources: string[]; } export declare function iamPrincipalAccessBoundaryPolicyDetailsRulesToTerraform(struct?: IamPrincipalAccessBoundaryPolicyDetailsRules | cdktf.IResolvable): any; export declare function iamPrincipalAccessBoundaryPolicyDetailsRulesToHclTerraform(struct?: IamPrincipalAccessBoundaryPolicyDetailsRules | cdktf.IResolvable): any; export declare class IamPrincipalAccessBoundaryPolicyDetailsRulesOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): IamPrincipalAccessBoundaryPolicyDetailsRules | cdktf.IResolvable | undefined; set internalValue(value: IamPrincipalAccessBoundaryPolicyDetailsRules | cdktf.IResolvable | undefined); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string | undefined; private _effect?; get effect(): string; set effect(value: string); get effectInput(): string | undefined; private _resources?; get resources(): string[]; set resources(value: string[]); get resourcesInput(): string[] | undefined; } export declare class IamPrincipalAccessBoundaryPolicyDetailsRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: IamPrincipalAccessBoundaryPolicyDetailsRules[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): IamPrincipalAccessBoundaryPolicyDetailsRulesOutputReference; } export interface IamPrincipalAccessBoundaryPolicyDetails { /** * The version number that indicates which Google Cloud services * are included in the enforcement (e.g. \"latest\", \"1\", ...). If empty, the * PAB policy version will be set to the current latest version, and this version * won't get updated when new versions are released. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#enforcement_version IamPrincipalAccessBoundaryPolicy#enforcement_version} */ readonly enforcementVersion?: string; /** * rules block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#rules IamPrincipalAccessBoundaryPolicy#rules} */ readonly rules: IamPrincipalAccessBoundaryPolicyDetailsRules[] | cdktf.IResolvable; } export declare function iamPrincipalAccessBoundaryPolicyDetailsToTerraform(struct?: IamPrincipalAccessBoundaryPolicyDetailsOutputReference | IamPrincipalAccessBoundaryPolicyDetails): any; export declare function iamPrincipalAccessBoundaryPolicyDetailsToHclTerraform(struct?: IamPrincipalAccessBoundaryPolicyDetailsOutputReference | IamPrincipalAccessBoundaryPolicyDetails): any; export declare class IamPrincipalAccessBoundaryPolicyDetailsOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): IamPrincipalAccessBoundaryPolicyDetails | undefined; set internalValue(value: IamPrincipalAccessBoundaryPolicyDetails | undefined); private _enforcementVersion?; get enforcementVersion(): string; set enforcementVersion(value: string); resetEnforcementVersion(): void; get enforcementVersionInput(): string | undefined; private _rules; get rules(): IamPrincipalAccessBoundaryPolicyDetailsRulesList; putRules(value: IamPrincipalAccessBoundaryPolicyDetailsRules[] | cdktf.IResolvable): void; get rulesInput(): cdktf.IResolvable | IamPrincipalAccessBoundaryPolicyDetailsRules[] | undefined; } export interface IamPrincipalAccessBoundaryPolicyTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#create IamPrincipalAccessBoundaryPolicy#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#delete IamPrincipalAccessBoundaryPolicy#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#update IamPrincipalAccessBoundaryPolicy#update} */ readonly update?: string; } export declare function iamPrincipalAccessBoundaryPolicyTimeoutsToTerraform(struct?: IamPrincipalAccessBoundaryPolicyTimeouts | cdktf.IResolvable): any; export declare function iamPrincipalAccessBoundaryPolicyTimeoutsToHclTerraform(struct?: IamPrincipalAccessBoundaryPolicyTimeouts | cdktf.IResolvable): any; export declare class IamPrincipalAccessBoundaryPolicyTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): IamPrincipalAccessBoundaryPolicyTimeouts | cdktf.IResolvable | undefined; set internalValue(value: IamPrincipalAccessBoundaryPolicyTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string | undefined; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string | undefined; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string | undefined; } /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy google_iam_principal_access_boundary_policy} */ export declare class IamPrincipalAccessBoundaryPolicy extends cdktf.TerraformResource { static readonly tfResourceType = "google_iam_principal_access_boundary_policy"; /** * Generates CDKTF code for importing a IamPrincipalAccessBoundaryPolicy resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the IamPrincipalAccessBoundaryPolicy to import * @param importFromId The id of the existing IamPrincipalAccessBoundaryPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the IamPrincipalAccessBoundaryPolicy to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource; /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/iam_principal_access_boundary_policy google_iam_principal_access_boundary_policy} 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 IamPrincipalAccessBoundaryPolicyConfig */ constructor(scope: Construct, id: string, config: IamPrincipalAccessBoundaryPolicyConfig); private _annotations?; get annotations(): { [key: string]: string; }; set annotations(value: { [key: string]: string; }); resetAnnotations(): void; get annotationsInput(): { [key: string]: string; } | undefined; get createTime(): string; private _displayName?; get displayName(): string; set displayName(value: string); resetDisplayName(): void; get displayNameInput(): string | undefined; private _effectiveAnnotations; get effectiveAnnotations(): cdktf.StringMap; get etag(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _location?; get location(): string; set location(value: string); get locationInput(): string | undefined; get name(): string; private _organization?; get organization(): string; set organization(value: string); get organizationInput(): string | undefined; private _principalAccessBoundaryPolicyId?; get principalAccessBoundaryPolicyId(): string; set principalAccessBoundaryPolicyId(value: string); get principalAccessBoundaryPolicyIdInput(): string | undefined; get uid(): string; get updateTime(): string; private _details; get details(): IamPrincipalAccessBoundaryPolicyDetailsOutputReference; putDetails(value: IamPrincipalAccessBoundaryPolicyDetails): void; resetDetails(): void; get detailsInput(): IamPrincipalAccessBoundaryPolicyDetails | undefined; private _timeouts; get timeouts(): IamPrincipalAccessBoundaryPolicyTimeoutsOutputReference; putTimeouts(value: IamPrincipalAccessBoundaryPolicyTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | IamPrincipalAccessBoundaryPolicyTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }