import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface DataExoscaleIamRoleConfig extends cdktf.TerraformMetaArguments { /** * The role ID to match (conflicts with `name`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/data-sources/iam_role#id DataExoscaleIamRole#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 role name to match (conflicts with `id`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/data-sources/iam_role#name DataExoscaleIamRole#name} */ readonly name?: string; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/data-sources/iam_role#timeouts DataExoscaleIamRole#timeouts} */ readonly timeouts?: DataExoscaleIamRoleTimeouts; } export interface DataExoscaleIamRolePolicyServicesRules { } export declare function dataExoscaleIamRolePolicyServicesRulesToTerraform(struct?: DataExoscaleIamRolePolicyServicesRules): any; export declare function dataExoscaleIamRolePolicyServicesRulesToHclTerraform(struct?: DataExoscaleIamRolePolicyServicesRules): any; export declare class DataExoscaleIamRolePolicyServicesRulesOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @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(): DataExoscaleIamRolePolicyServicesRules | undefined; set internalValue(value: DataExoscaleIamRolePolicyServicesRules | undefined); get action(): any; get expression(): any; get resources(): any; } export declare class DataExoscaleIamRolePolicyServicesRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; /** * @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): DataExoscaleIamRolePolicyServicesRulesOutputReference; } export interface DataExoscaleIamRolePolicyServices { } export declare function dataExoscaleIamRolePolicyServicesToTerraform(struct?: DataExoscaleIamRolePolicyServices): any; export declare function dataExoscaleIamRolePolicyServicesToHclTerraform(struct?: DataExoscaleIamRolePolicyServices): any; export declare class DataExoscaleIamRolePolicyServicesOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @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(): DataExoscaleIamRolePolicyServices | undefined; set internalValue(value: DataExoscaleIamRolePolicyServices | undefined); private _rules; get rules(): DataExoscaleIamRolePolicyServicesRulesList; get type(): any; } export declare class DataExoscaleIamRolePolicyServicesMap extends cdktf.ComplexMap { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; /** * @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): DataExoscaleIamRolePolicyServicesOutputReference; } export interface DataExoscaleIamRolePolicy { } export declare function dataExoscaleIamRolePolicyToTerraform(struct?: DataExoscaleIamRolePolicy): any; export declare function dataExoscaleIamRolePolicyToHclTerraform(struct?: DataExoscaleIamRolePolicy): any; export declare class DataExoscaleIamRolePolicyOutputReference 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(): DataExoscaleIamRolePolicy | undefined; set internalValue(value: DataExoscaleIamRolePolicy | undefined); get defaultServiceStrategy(): any; private _services; get services(): DataExoscaleIamRolePolicyServicesMap; } export interface DataExoscaleIamRoleTimeouts { /** * 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/data-sources/iam_role#read DataExoscaleIamRole#read} */ readonly read?: string; } export declare function dataExoscaleIamRoleTimeoutsToTerraform(struct?: DataExoscaleIamRoleTimeouts | cdktf.IResolvable): any; export declare function dataExoscaleIamRoleTimeoutsToHclTerraform(struct?: DataExoscaleIamRoleTimeouts | cdktf.IResolvable): any; export declare class DataExoscaleIamRoleTimeoutsOutputReference 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(): DataExoscaleIamRoleTimeouts | cdktf.IResolvable | undefined; set internalValue(value: DataExoscaleIamRoleTimeouts | 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/data-sources/iam_role exoscale_iam_role} */ export declare class DataExoscaleIamRole extends cdktf.TerraformDataSource { static readonly tfResourceType = "exoscale_iam_role"; /** * Generates CDKTF code for importing a DataExoscaleIamRole 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 DataExoscaleIamRole to import * @param importFromId The id of the existing DataExoscaleIamRole that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/data-sources/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 DataExoscaleIamRole 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/data-sources/iam_role exoscale_iam_role} Data Source * * @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 DataExoscaleIamRoleConfig = {} */ constructor(scope: Construct, id: string, config?: DataExoscaleIamRoleConfig); get description(): any; get editable(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _labels; get labels(): any; private _name?; get name(): string; set name(value: string); resetName(): void; get nameInput(): string; get permissions(): any; private _policy; get policy(): DataExoscaleIamRolePolicyOutputReference; private _timeouts; get timeouts(): DataExoscaleIamRoleTimeoutsOutputReference; putTimeouts(value: DataExoscaleIamRoleTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }