import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface IntegrationActionConfig extends cdktf.TerraformMetaArguments { /** * Category of action. Can be up to 256 characters long. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#category IntegrationAction#category} */ readonly category: string; /** * Optional 1-60 second timeout enforced on the execution or test of this action. This setting is invalid for Custom Authentication Actions. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#config_timeout_seconds IntegrationAction#config_timeout_seconds} */ readonly configTimeoutSeconds?: number; /** * JSON Schema that defines the body of the request that the client (edge/architect/postman) is sending to the service, on the /execute path. Changing the contract_input attribute will cause the existing integration_action to be dropped and recreated with a new ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#contract_input IntegrationAction#contract_input} */ readonly contractInput: string; /** * JSON schema that defines the transformed, successful result that will be sent back to the caller. Changing the contract_output attribute will cause the existing integration_action to be dropped and recreated with a new ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#contract_output IntegrationAction#contract_output} */ readonly contractOutput: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#id IntegrationAction#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 ID of the integration this action is associated with. Changing the integration_id attribute will cause the existing integration_action to be dropped and recreated with a new ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#integration_id IntegrationAction#integration_id} */ readonly integrationId: string; /** * Name of the action. Can be up to 256 characters long * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#name IntegrationAction#name} */ readonly name: string; /** * Indication of whether or not the action is designed to accept sensitive data. Changing the secure attribute will cause the existing integration_action to be dropped and recreated with a new ID. Defaults to `false`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#secure IntegrationAction#secure} */ readonly secure?: boolean | cdktf.IResolvable; /** * config_request block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#config_request IntegrationAction#config_request} */ readonly configRequest?: IntegrationActionConfigRequest; /** * config_response block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#config_response IntegrationAction#config_response} */ readonly configResponse?: IntegrationActionConfigResponse; /** * function_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#function_config IntegrationAction#function_config} */ readonly functionConfig?: IntegrationActionFunctionConfig; } export interface IntegrationActionConfigRequest { /** * Map of headers in name, value pairs to include in request. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#headers IntegrationAction#headers} */ readonly headers?: { [key: string]: string; }; /** * Velocity template to define request body sent to 3rd party service. Any instances of '${' must be properly escaped as '$${' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#request_template IntegrationAction#request_template} */ readonly requestTemplate?: string; /** * HTTP method to use for request (GET | PUT | POST | PATCH | DELETE). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#request_type IntegrationAction#request_type} */ readonly requestType: string; /** * URL that may include placeholders for requests to 3rd party service. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#request_url_template IntegrationAction#request_url_template} */ readonly requestUrlTemplate?: string; } export declare function integrationActionConfigRequestToTerraform(struct?: IntegrationActionConfigRequestOutputReference | IntegrationActionConfigRequest): any; export declare function integrationActionConfigRequestToHclTerraform(struct?: IntegrationActionConfigRequestOutputReference | IntegrationActionConfigRequest): any; export declare class IntegrationActionConfigRequestOutputReference 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(): IntegrationActionConfigRequest | undefined; set internalValue(value: IntegrationActionConfigRequest | undefined); private _headers?; get headers(): { [key: string]: string; }; set headers(value: { [key: string]: string; }); resetHeaders(): void; get headersInput(): { [key: string]: string; }; private _requestTemplate?; get requestTemplate(): string; set requestTemplate(value: string); resetRequestTemplate(): void; get requestTemplateInput(): string; private _requestType?; get requestType(): string; set requestType(value: string); get requestTypeInput(): string; private _requestUrlTemplate?; get requestUrlTemplate(): string; set requestUrlTemplate(value: string); resetRequestUrlTemplate(): void; get requestUrlTemplateInput(): string; } export interface IntegrationActionConfigResponse { /** * Velocity template to build response to return from Action. Any instances of '${' must be properly escaped as '$${'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#success_template IntegrationAction#success_template} */ readonly successTemplate?: string; /** * Map 'attribute name' and 'JSON path' pairs used to extract data from REST response. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#translation_map IntegrationAction#translation_map} */ readonly translationMap?: { [key: string]: string; }; /** * Map 'attribute name' and 'default value' pairs used as fallback values if JSON path extraction fails for specified key. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#translation_map_defaults IntegrationAction#translation_map_defaults} */ readonly translationMapDefaults?: { [key: string]: string; }; } export declare function integrationActionConfigResponseToTerraform(struct?: IntegrationActionConfigResponseOutputReference | IntegrationActionConfigResponse): any; export declare function integrationActionConfigResponseToHclTerraform(struct?: IntegrationActionConfigResponseOutputReference | IntegrationActionConfigResponse): any; export declare class IntegrationActionConfigResponseOutputReference 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(): IntegrationActionConfigResponse | undefined; set internalValue(value: IntegrationActionConfigResponse | undefined); private _successTemplate?; get successTemplate(): string; set successTemplate(value: string); resetSuccessTemplate(): void; get successTemplateInput(): string; private _translationMap?; get translationMap(): { [key: string]: string; }; set translationMap(value: { [key: string]: string; }); resetTranslationMap(): void; get translationMapInput(): { [key: string]: string; }; private _translationMapDefaults?; get translationMapDefaults(): { [key: string]: string; }; set translationMapDefaults(value: { [key: string]: string; }); resetTranslationMapDefaults(): void; get translationMapDefaultsInput(): { [key: string]: string; }; } export interface IntegrationActionFunctionConfig { /** * Description of the function. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#description IntegrationAction#description} */ readonly description?: string; /** * The zip file path containing the function data action's code. During the export just the name of the zip file will be exported * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#file_path IntegrationAction#file_path} */ readonly filePath: string; /** * The handler function name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#handler IntegrationAction#handler} */ readonly handler?: string; /** * The runtime environment for the function. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#runtime IntegrationAction#runtime} */ readonly runtime?: string; /** * Timeout in seconds for the function execution. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#timeout_seconds IntegrationAction#timeout_seconds} */ readonly timeoutSeconds?: number; /** * The ID of the uploaded zip file containing the function code. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#zip_id IntegrationAction#zip_id} */ readonly zipId?: string; } export declare function integrationActionFunctionConfigToTerraform(struct?: IntegrationActionFunctionConfigOutputReference | IntegrationActionFunctionConfig): any; export declare function integrationActionFunctionConfigToHclTerraform(struct?: IntegrationActionFunctionConfigOutputReference | IntegrationActionFunctionConfig): any; export declare class IntegrationActionFunctionConfigOutputReference 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(): IntegrationActionFunctionConfig | undefined; set internalValue(value: IntegrationActionFunctionConfig | undefined); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _filePath?; get filePath(): string; set filePath(value: string); get filePathInput(): string; private _handler?; get handler(): string; set handler(value: string); resetHandler(): void; get handlerInput(): string; private _runtime?; get runtime(): string; set runtime(value: string); resetRuntime(): void; get runtimeInput(): string; private _timeoutSeconds?; get timeoutSeconds(): number; set timeoutSeconds(value: number); resetTimeoutSeconds(): void; get timeoutSecondsInput(): number; private _zipId?; get zipId(): string; set zipId(value: string); resetZipId(): void; get zipIdInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action genesyscloud_integration_action} */ export declare class IntegrationAction extends cdktf.TerraformResource { static readonly tfResourceType = "genesyscloud_integration_action"; /** * Generates CDKTF code for importing a IntegrationAction 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 IntegrationAction to import * @param importFromId The id of the existing IntegrationAction that should be imported. Refer to the {@link https://registry.terraform.io/providers/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the IntegrationAction 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/mypurecloud/genesyscloud/1.73.0/docs/resources/integration_action genesyscloud_integration_action} 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 IntegrationActionConfig */ constructor(scope: Construct, id: string, config: IntegrationActionConfig); private _category?; get category(): string; set category(value: string); get categoryInput(): string; private _configTimeoutSeconds?; get configTimeoutSeconds(): number; set configTimeoutSeconds(value: number); resetConfigTimeoutSeconds(): void; get configTimeoutSecondsInput(): number; private _contractInput?; get contractInput(): string; set contractInput(value: string); get contractInputInput(): string; private _contractOutput?; get contractOutput(): string; set contractOutput(value: string); get contractOutputInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _integrationId?; get integrationId(): string; set integrationId(value: string); get integrationIdInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _secure?; get secure(): boolean | cdktf.IResolvable; set secure(value: boolean | cdktf.IResolvable); resetSecure(): void; get secureInput(): any; private _configRequest; get configRequest(): IntegrationActionConfigRequestOutputReference; putConfigRequest(value: IntegrationActionConfigRequest): void; resetConfigRequest(): void; get configRequestInput(): IntegrationActionConfigRequest; private _configResponse; get configResponse(): IntegrationActionConfigResponseOutputReference; putConfigResponse(value: IntegrationActionConfigResponse): void; resetConfigResponse(): void; get configResponseInput(): IntegrationActionConfigResponse; private _functionConfig; get functionConfig(): IntegrationActionFunctionConfigOutputReference; putFunctionConfig(value: IntegrationActionFunctionConfig): void; resetFunctionConfig(): void; get functionConfigInput(): IntegrationActionFunctionConfig; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }