import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface IamRoleConfig extends cdktf.TerraformMetaArguments { /** * A free-form text describing the IAM Role * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#description IamRole#description} */ readonly description?: string; /** * Defines if IAM Role Policy is editable or not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#editable IamRole#editable} */ readonly editable?: boolean | cdktf.IResolvable; /** * IAM Role labels. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#labels IamRole#labels} */ readonly labels?: { [key: string]: string; }; /** * ❗Name of IAM Role. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#name IamRole#name} */ readonly name: string; /** * IAM Role permissions. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#permissions IamRole#permissions} */ readonly permissions?: string[]; /** * IAM Policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#policy IamRole#policy} */ readonly policy?: IamRolePolicy; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#timeouts IamRole#timeouts} */ readonly timeouts?: IamRoleTimeouts; } export interface IamRolePolicyServicesRules { /** * 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_role#action IamRole#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_role#expression IamRole#expression} */ readonly expression?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#resources IamRole#resources} */ readonly resources?: string[]; } export declare function iamRolePolicyServicesRulesToTerraform(struct?: IamRolePolicyServicesRules | cdktf.IResolvable): any; export declare function iamRolePolicyServicesRulesToHclTerraform(struct?: IamRolePolicyServicesRules | cdktf.IResolvable): any; export declare class IamRolePolicyServicesRulesOutputReference 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(): IamRolePolicyServicesRules | cdktf.IResolvable | undefined; set internalValue(value: IamRolePolicyServicesRules | 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 IamRolePolicyServicesRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: IamRolePolicyServicesRules[] | 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): IamRolePolicyServicesRulesOutputReference; } export interface IamRolePolicyServices { /** * 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_role#rules IamRole#rules} */ readonly rules?: IamRolePolicyServicesRules[] | 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_role#type IamRole#type} */ readonly type?: string; } export declare function iamRolePolicyServicesToTerraform(struct?: IamRolePolicyServices | cdktf.IResolvable): any; export declare function iamRolePolicyServicesToHclTerraform(struct?: IamRolePolicyServices | cdktf.IResolvable): any; export declare class IamRolePolicyServicesOutputReference 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(): IamRolePolicyServices | cdktf.IResolvable | undefined; set internalValue(value: IamRolePolicyServices | cdktf.IResolvable | undefined); private _rules; get rules(): IamRolePolicyServicesRulesList; putRules(value: IamRolePolicyServicesRules[] | 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 IamRolePolicyServicesMap extends cdktf.ComplexMap { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; internalValue?: { [key: string]: IamRolePolicyServices; } | 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): IamRolePolicyServicesOutputReference; } export interface IamRolePolicy { /** * Default service strategy (`allow` or `deny`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#default_service_strategy IamRole#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_role#services IamRole#services} */ readonly services?: { [key: string]: IamRolePolicyServices; } | cdktf.IResolvable; } export declare function iamRolePolicyToTerraform(struct?: IamRolePolicy | cdktf.IResolvable): any; export declare function iamRolePolicyToHclTerraform(struct?: IamRolePolicy | cdktf.IResolvable): any; export declare class IamRolePolicyOutputReference 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(): IamRolePolicy | cdktf.IResolvable | undefined; set internalValue(value: IamRolePolicy | cdktf.IResolvable | undefined); private _defaultServiceStrategy?; get defaultServiceStrategy(): string; set defaultServiceStrategy(value: string); resetDefaultServiceStrategy(): void; get defaultServiceStrategyInput(): string; private _services; get services(): IamRolePolicyServicesMap; putServices(value: { [key: string]: IamRolePolicyServices; } | cdktf.IResolvable): void; resetServices(): void; get servicesInput(): any; } export interface IamRoleTimeouts { /** * 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_role#read IamRole#read} */ readonly read?: string; } export declare function iamRoleTimeoutsToTerraform(struct?: IamRoleTimeouts | cdktf.IResolvable): any; export declare function iamRoleTimeoutsToHclTerraform(struct?: IamRoleTimeouts | cdktf.IResolvable): any; export declare class IamRoleTimeoutsOutputReference 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(): IamRoleTimeouts | cdktf.IResolvable | undefined; set internalValue(value: IamRoleTimeouts | 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_role exoscale_iam_role} */ export declare class IamRole extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_iam_role"; /** * Generates CDKTF code for importing a IamRole 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 IamRole to import * @param importFromId The id of the existing IamRole that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/iam_role#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the IamRole 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_role exoscale_iam_role} 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 IamRoleConfig */ constructor(scope: Construct, id: string, config: IamRoleConfig); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _editable?; get editable(): boolean | cdktf.IResolvable; set editable(value: boolean | cdktf.IResolvable); resetEditable(): void; get editableInput(): any; get id(): any; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; }; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _permissions?; get permissions(): string[]; set permissions(value: string[]); resetPermissions(): void; get permissionsInput(): string[]; private _policy; get policy(): IamRolePolicyOutputReference; putPolicy(value: IamRolePolicy): void; resetPolicy(): void; get policyInput(): any; private _timeouts; get timeouts(): IamRoleTimeoutsOutputReference; putTimeouts(value: IamRoleTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }