import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface IamOrgPolicyConfig extends cdktf.TerraformMetaArguments { /** * Default service strategy (`allow` or `deny`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#default_service_strategy IamOrgPolicy#default_service_strategy} */ readonly defaultServiceStrategy: string; /** * IAM policy services. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#services IamOrgPolicy#services} */ readonly services: { [key: string]: IamOrgPolicyServices; } | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#timeouts IamOrgPolicy#timeouts} */ readonly timeouts?: IamOrgPolicyTimeouts; } export interface IamOrgPolicyServicesRules { /** * IAM policy rule action (`allow` or `deny`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#action IamOrgPolicy#action} */ readonly action?: string; /** * IAM policy rule expression. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#expression IamOrgPolicy#expression} */ readonly expression?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#resources IamOrgPolicy#resources} */ readonly resources?: string[]; } export declare function iamOrgPolicyServicesRulesToTerraform(struct?: IamOrgPolicyServicesRules | cdktf.IResolvable): any; export declare function iamOrgPolicyServicesRulesToHclTerraform(struct?: IamOrgPolicyServicesRules | cdktf.IResolvable): any; export declare class IamOrgPolicyServicesRulesOutputReference 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(): IamOrgPolicyServicesRules | cdktf.IResolvable | undefined; set internalValue(value: IamOrgPolicyServicesRules | cdktf.IResolvable | undefined); private _action?; get action(): string; set action(value: string); resetAction(): void; get actionInput(): string; private _expression?; get expression(): string; set expression(value: string); resetExpression(): void; get expressionInput(): string; private _resources?; get resources(): string[]; set resources(value: string[]); resetResources(): void; get resourcesInput(): string[]; } export declare class IamOrgPolicyServicesRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: IamOrgPolicyServicesRules[] | 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): IamOrgPolicyServicesRulesOutputReference; } export interface IamOrgPolicyServices { /** * List of IAM service rules (if type is `rules`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#rules IamOrgPolicy#rules} */ readonly rules?: IamOrgPolicyServicesRules[] | cdktf.IResolvable; /** * Service type (`rules`, `allow`, or `deny`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#type IamOrgPolicy#type} */ readonly type?: string; } export declare function iamOrgPolicyServicesToTerraform(struct?: IamOrgPolicyServices | cdktf.IResolvable): any; export declare function iamOrgPolicyServicesToHclTerraform(struct?: IamOrgPolicyServices | cdktf.IResolvable): any; export declare class IamOrgPolicyServicesOutputReference 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 complexObjectKey the key of this item in the map */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectKey: string); get internalValue(): IamOrgPolicyServices | cdktf.IResolvable | undefined; set internalValue(value: IamOrgPolicyServices | cdktf.IResolvable | undefined); private _rules; get rules(): IamOrgPolicyServicesRulesList; putRules(value: IamOrgPolicyServicesRules[] | cdktf.IResolvable): void; resetRules(): void; get rulesInput(): any; private _type?; get type(): string; set type(value: string); resetType(): void; get typeInput(): string; } export declare class IamOrgPolicyServicesMap extends cdktf.ComplexMap { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; internalValue?: { [key: string]: IamOrgPolicyServices; } | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); /** * @param key the key of the item to return */ get(key: string): IamOrgPolicyServicesOutputReference; } export interface IamOrgPolicyTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#read IamOrgPolicy#read} */ readonly read?: string; } export declare function iamOrgPolicyTimeoutsToTerraform(struct?: IamOrgPolicyTimeouts | cdktf.IResolvable): any; export declare function iamOrgPolicyTimeoutsToHclTerraform(struct?: IamOrgPolicyTimeouts | cdktf.IResolvable): any; export declare class IamOrgPolicyTimeoutsOutputReference 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(): IamOrgPolicyTimeouts | cdktf.IResolvable | undefined; set internalValue(value: IamOrgPolicyTimeouts | cdktf.IResolvable | undefined); private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy exoscale_iam_org_policy} */ export declare class IamOrgPolicy extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_iam_org_policy"; /** * Generates CDKTF code for importing a IamOrgPolicy 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 IamOrgPolicy to import * @param importFromId The id of the existing IamOrgPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the IamOrgPolicy 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/exoscale/exoscale/0.67.1/docs/resources/iam_org_policy exoscale_iam_org_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 IamOrgPolicyConfig */ constructor(scope: Construct, id: string, config: IamOrgPolicyConfig); private _defaultServiceStrategy?; get defaultServiceStrategy(): string; set defaultServiceStrategy(value: string); get defaultServiceStrategyInput(): string; get id(): any; private _services; get services(): IamOrgPolicyServicesMap; putServices(value: { [key: string]: IamOrgPolicyServices; } | cdktf.IResolvable): void; get servicesInput(): any; private _timeouts; get timeouts(): IamOrgPolicyTimeoutsOutputReference; putTimeouts(value: IamOrgPolicyTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }