UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

904 lines 63.7 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface EventarcPipelineConfig extends cdktf.TerraformMetaArguments { /** * User-defined annotations. See https://google.aip.dev/128#annotations. * * **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.36.0/docs/resources/eventarc_pipeline#annotations EventarcPipeline#annotations} */ readonly annotations?: { [key: string]: string; }; /** * Resource name of a KMS crypto key (managed by the user) used to * encrypt/decrypt the event data. If not set, an internal Google-owned key * will be used to encrypt messages. It must match the pattern * "projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#crypto_key_name EventarcPipeline#crypto_key_name} */ readonly cryptoKeyName?: string; /** * Display name of resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#display_name EventarcPipeline#display_name} */ readonly displayName?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#id EventarcPipeline#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; /** * User labels attached to the Pipeline that can be used to group * resources. An object containing a list of "key": value pairs. Example: { * "name": "wrench", "mass": "1.3kg", "count": "3" }. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field 'effective_labels' for all of the labels present on the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#labels EventarcPipeline#labels} */ readonly labels?: { [key: string]: string; }; /** * Resource ID segment making up resource 'name'. It identifies the resource within its parent collection as described in https://google.aip.dev/122. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#location EventarcPipeline#location} */ readonly location: string; /** * The user-provided ID to be assigned to the Pipeline. It should match the * format '^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#pipeline_id EventarcPipeline#pipeline_id} */ readonly pipelineId: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#project EventarcPipeline#project} */ readonly project?: string; /** * destinations block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#destinations EventarcPipeline#destinations} */ readonly destinations: EventarcPipelineDestinations[] | cdktf.IResolvable; /** * input_payload_format block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#input_payload_format EventarcPipeline#input_payload_format} */ readonly inputPayloadFormat?: EventarcPipelineInputPayloadFormat; /** * logging_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#logging_config EventarcPipeline#logging_config} */ readonly loggingConfig?: EventarcPipelineLoggingConfig; /** * mediations block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#mediations EventarcPipeline#mediations} */ readonly mediations?: EventarcPipelineMediations[] | cdktf.IResolvable; /** * retry_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#retry_policy EventarcPipeline#retry_policy} */ readonly retryPolicy?: EventarcPipelineRetryPolicy; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#timeouts EventarcPipeline#timeouts} */ readonly timeouts?: EventarcPipelineTimeouts; } export interface EventarcPipelineDestinationsAuthenticationConfigGoogleOidc { /** * Audience to be used to generate the OIDC Token. The audience claim * identifies the recipient that the JWT is intended for. If * unspecified, the destination URI will be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#audience EventarcPipeline#audience} */ readonly audience?: string; /** * Service account email used to generate the OIDC Token. * The principal who calls this API must have * iam.serviceAccounts.actAs permission in the service account. See * https://cloud.google.com/iam/docs/understanding-service-accounts * for more information. Eventarc service agents must have * roles/roles/iam.serviceAccountTokenCreator role to allow the * Pipeline to create OpenID tokens for authenticated requests. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#service_account EventarcPipeline#service_account} */ readonly serviceAccount: string; } export declare function eventarcPipelineDestinationsAuthenticationConfigGoogleOidcToTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigGoogleOidcOutputReference | EventarcPipelineDestinationsAuthenticationConfigGoogleOidc): any; export declare function eventarcPipelineDestinationsAuthenticationConfigGoogleOidcToHclTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigGoogleOidcOutputReference | EventarcPipelineDestinationsAuthenticationConfigGoogleOidc): any; export declare class EventarcPipelineDestinationsAuthenticationConfigGoogleOidcOutputReference 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(): EventarcPipelineDestinationsAuthenticationConfigGoogleOidc | undefined; set internalValue(value: EventarcPipelineDestinationsAuthenticationConfigGoogleOidc | undefined); private _audience?; get audience(): string; set audience(value: string); resetAudience(): void; get audienceInput(): string | undefined; private _serviceAccount?; get serviceAccount(): string; set serviceAccount(value: string); get serviceAccountInput(): string | undefined; } export interface EventarcPipelineDestinationsAuthenticationConfigOauthToken { /** * OAuth scope to be used for generating OAuth access token. If not * specified, "https://www.googleapis.com/auth/cloud-platform" will be * used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#scope EventarcPipeline#scope} */ readonly scope?: string; /** * Service account email used to generate the [OAuth * token](https://developers.google.com/identity/protocols/OAuth2). * The principal who calls this API must have * iam.serviceAccounts.actAs permission in the service account. See * https://cloud.google.com/iam/docs/understanding-service-accounts * for more information. Eventarc service agents must have * roles/roles/iam.serviceAccountTokenCreator role to allow Pipeline * to create OAuth2 tokens for authenticated requests. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#service_account EventarcPipeline#service_account} */ readonly serviceAccount: string; } export declare function eventarcPipelineDestinationsAuthenticationConfigOauthTokenToTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigOauthTokenOutputReference | EventarcPipelineDestinationsAuthenticationConfigOauthToken): any; export declare function eventarcPipelineDestinationsAuthenticationConfigOauthTokenToHclTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigOauthTokenOutputReference | EventarcPipelineDestinationsAuthenticationConfigOauthToken): any; export declare class EventarcPipelineDestinationsAuthenticationConfigOauthTokenOutputReference 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(): EventarcPipelineDestinationsAuthenticationConfigOauthToken | undefined; set internalValue(value: EventarcPipelineDestinationsAuthenticationConfigOauthToken | undefined); private _scope?; get scope(): string; set scope(value: string); resetScope(): void; get scopeInput(): string | undefined; private _serviceAccount?; get serviceAccount(): string; set serviceAccount(value: string); get serviceAccountInput(): string | undefined; } export interface EventarcPipelineDestinationsAuthenticationConfig { /** * google_oidc block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#google_oidc EventarcPipeline#google_oidc} */ readonly googleOidc?: EventarcPipelineDestinationsAuthenticationConfigGoogleOidc; /** * oauth_token block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#oauth_token EventarcPipeline#oauth_token} */ readonly oauthToken?: EventarcPipelineDestinationsAuthenticationConfigOauthToken; } export declare function eventarcPipelineDestinationsAuthenticationConfigToTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigOutputReference | EventarcPipelineDestinationsAuthenticationConfig): any; export declare function eventarcPipelineDestinationsAuthenticationConfigToHclTerraform(struct?: EventarcPipelineDestinationsAuthenticationConfigOutputReference | EventarcPipelineDestinationsAuthenticationConfig): any; export declare class EventarcPipelineDestinationsAuthenticationConfigOutputReference 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(): EventarcPipelineDestinationsAuthenticationConfig | undefined; set internalValue(value: EventarcPipelineDestinationsAuthenticationConfig | undefined); private _googleOidc; get googleOidc(): EventarcPipelineDestinationsAuthenticationConfigGoogleOidcOutputReference; putGoogleOidc(value: EventarcPipelineDestinationsAuthenticationConfigGoogleOidc): void; resetGoogleOidc(): void; get googleOidcInput(): EventarcPipelineDestinationsAuthenticationConfigGoogleOidc | undefined; private _oauthToken; get oauthToken(): EventarcPipelineDestinationsAuthenticationConfigOauthTokenOutputReference; putOauthToken(value: EventarcPipelineDestinationsAuthenticationConfigOauthToken): void; resetOauthToken(): void; get oauthTokenInput(): EventarcPipelineDestinationsAuthenticationConfigOauthToken | undefined; } export interface EventarcPipelineDestinationsHttpEndpoint { /** * The CEL expression used to modify how the destination-bound HTTP * request is constructed. * * If a binding expression is not specified here, the message * is treated as a CloudEvent and is mapped to the HTTP request according * to the CloudEvent HTTP Protocol Binding Binary Content Mode * (https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/http-protocol-binding.md#31-binary-content-mode). * In this representation, all fields except the 'data' and * 'datacontenttype' field on the message are mapped to HTTP request * headers with a prefix of 'ce-'. * * To construct the HTTP request payload and the value of the content-type * HTTP header, the payload format is defined as follows: * 1) Use the output_payload_format_type on the Pipeline.Destination if it * is set, else: * 2) Use the input_payload_format_type on the Pipeline if it is set, * else: * 3) Treat the payload as opaque binary data. * * The 'data' field of the message is converted to the payload format or * left as-is for case 3) and then attached as the payload of the HTTP * request. The 'content-type' header on the HTTP request is set to the * payload format type or left empty for case 3). However, if a mediation * has updated the 'datacontenttype' field on the message so that it is * not the same as the payload format type but it is still a prefix of the * payload format type, then the 'content-type' header on the HTTP request * is set to this 'datacontenttype' value. For example, if the * 'datacontenttype' is "application/json" and the payload format type is * "application/json; charset=utf-8", then the 'content-type' header on * the HTTP request is set to "application/json; charset=utf-8". * * If a non-empty binding expression is specified then this expression is * used to modify the default CloudEvent HTTP Protocol Binding Binary * Content representation. * The result of the CEL expression must be a map of key/value pairs * which is used as follows: * - If a map named 'headers' exists on the result of the expression, * then its key/value pairs are directly mapped to the HTTP request * headers. The headers values are constructed from the corresponding * value type's canonical representation. If the 'headers' field doesn't * exist then the resulting HTTP request will be the headers of the * CloudEvent HTTP Binding Binary Content Mode representation of the final * message. Note: If the specified binding expression, has updated the * 'datacontenttype' field on the message so that it is not the same as * the payload format type but it is still a prefix of the payload format * type, then the 'content-type' header in the 'headers' map is set to * this 'datacontenttype' value. * - If a field named 'body' exists on the result of the expression then * its value is directly mapped to the body of the request. If the value * of the 'body' field is of type bytes or string then it is used for * the HTTP request body as-is, with no conversion. If the body field is * of any other type then it is converted to a JSON string. If the body * field does not exist then the resulting payload of the HTTP request * will be data value of the CloudEvent HTTP Binding Binary Content Mode * representation of the final message as described earlier. * - Any other fields in the resulting expression will be ignored. * * The CEL expression may access the incoming CloudEvent message in its * definition, as follows: * - The 'data' field of the incoming CloudEvent message can be accessed * using the 'message.data' value. Subfields of 'message.data' may also be * accessed if an input_payload_format has been specified on the Pipeline. * - Each attribute of the incoming CloudEvent message can be accessed * using the 'message.' value, where is replaced with the * name of the attribute. * - Existing headers can be accessed in the CEL expression using the * 'headers' variable. The 'headers' variable defines a map of key/value * pairs corresponding to the HTTP headers of the CloudEvent HTTP Binding * Binary Content Mode representation of the final message as described * earlier. For example, the following CEL expression can be used to * construct an HTTP request by adding an additional header to the HTTP * headers of the CloudEvent HTTP Binding Binary Content Mode * representation of the final message and by overwriting the body of the * request: * * ``` * { * "headers": headers.merge({"new-header-key": "new-header-value"}), * "body": "new-body" * } * ``` * - The default binding for the message payload can be accessed using the * 'body' variable. It conatins a string representation of the message * payload in the format specified by the 'output_payload_format' field. * If the 'input_payload_format' field is not set, the 'body' * variable contains the same message payload bytes that were published. * * Additionally, the following CEL extension functions are provided for * use in this CEL expression: * - toBase64Url: * map.toBase64Url() -> string * - Converts a CelValue to a base64url encoded string * - toJsonString: map.toJsonString() -> string * - Converts a CelValue to a JSON string * - merge: * map1.merge(map2) -> map3 * - Merges the passed CEL map with the existing CEL map the * function is applied to. * - If the same key exists in both maps, if the key's value is type * map both maps are merged else the value from the passed map is * used. * - denormalize: * map.denormalize() -> map * - Denormalizes a CEL map such that every value of type map or key * in the map is expanded to return a single level map. * - The resulting keys are "." separated indices of the map keys. * - For example: * { * "a": 1, * "b": { * "c": 2, * "d": 3 * } * "e": [4, 5] * } * .denormalize() * -> { * "a": 1, * "b.c": 2, * "b.d": 3, * "e.0": 4, * "e.1": 5 * } * - setField: * map.setField(key, value) -> message * - Sets the field of the message with the given key to the * given value. * - If the field is not present it will be added. * - If the field is present it will be overwritten. * - The key can be a dot separated path to set a field in a nested * message. * - Key must be of type string. * - Value may be any valid type. * - removeFields: * map.removeFields([key1, key2, ...]) -> message * - Removes the fields of the map with the given keys. * - The keys can be a dot separated path to remove a field in a * nested message. * - If a key is not found it will be ignored. * - Keys must be of type string. * - toMap: * [map1, map2, ...].toMap() -> map * - Converts a CEL list of CEL maps to a single CEL map * - toCloudEventJsonWithPayloadFormat: * message.toCloudEventJsonWithPayloadFormat() -> map * - Converts a message to the corresponding structure of JSON * format for CloudEvents. * - It converts 'data' to destination payload format * specified in 'output_payload_format'. If 'output_payload_format' is * not set, the data will remain unchanged. * - It also sets the corresponding datacontenttype of * the CloudEvent, as indicated by * 'output_payload_format'. If no * 'output_payload_format' is set it will use the value of the * "datacontenttype" attribute on the CloudEvent if present, else * remove "datacontenttype" attribute. * - This function expects that the content of the message will * adhere to the standard CloudEvent format. If it doesn't then this * function will fail. * - The result is a CEL map that corresponds to the JSON * representation of the CloudEvent. To convert that data to a JSON * string it can be chained with the toJsonString function. * * The Pipeline expects that the message it receives adheres to the * standard CloudEvent format. If it doesn't then the outgoing message * request may fail with a persistent error. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#message_binding_template EventarcPipeline#message_binding_template} */ readonly messageBindingTemplate?: string; /** * The URI of the HTTP enpdoint. * * The value must be a RFC2396 URI string. * Examples: 'https://svc.us-central1.p.local:8080/route'. * Only the HTTPS protocol is supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#uri EventarcPipeline#uri} */ readonly uri: string; } export declare function eventarcPipelineDestinationsHttpEndpointToTerraform(struct?: EventarcPipelineDestinationsHttpEndpointOutputReference | EventarcPipelineDestinationsHttpEndpoint): any; export declare function eventarcPipelineDestinationsHttpEndpointToHclTerraform(struct?: EventarcPipelineDestinationsHttpEndpointOutputReference | EventarcPipelineDestinationsHttpEndpoint): any; export declare class EventarcPipelineDestinationsHttpEndpointOutputReference 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(): EventarcPipelineDestinationsHttpEndpoint | undefined; set internalValue(value: EventarcPipelineDestinationsHttpEndpoint | undefined); private _messageBindingTemplate?; get messageBindingTemplate(): string; set messageBindingTemplate(value: string); resetMessageBindingTemplate(): void; get messageBindingTemplateInput(): string | undefined; private _uri?; get uri(): string; set uri(value: string); get uriInput(): string | undefined; } export interface EventarcPipelineDestinationsNetworkConfig { /** * Name of the NetworkAttachment that allows access to the consumer VPC. * Format: * 'projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#network_attachment EventarcPipeline#network_attachment} */ readonly networkAttachment: string; } export declare function eventarcPipelineDestinationsNetworkConfigToTerraform(struct?: EventarcPipelineDestinationsNetworkConfigOutputReference | EventarcPipelineDestinationsNetworkConfig): any; export declare function eventarcPipelineDestinationsNetworkConfigToHclTerraform(struct?: EventarcPipelineDestinationsNetworkConfigOutputReference | EventarcPipelineDestinationsNetworkConfig): any; export declare class EventarcPipelineDestinationsNetworkConfigOutputReference 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(): EventarcPipelineDestinationsNetworkConfig | undefined; set internalValue(value: EventarcPipelineDestinationsNetworkConfig | undefined); private _networkAttachment?; get networkAttachment(): string; set networkAttachment(value: string); get networkAttachmentInput(): string | undefined; } export interface EventarcPipelineDestinationsOutputPayloadFormatAvro { /** * The entire schema definition is stored in this field. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#schema_definition EventarcPipeline#schema_definition} */ readonly schemaDefinition?: string; } export declare function eventarcPipelineDestinationsOutputPayloadFormatAvroToTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatAvroOutputReference | EventarcPipelineDestinationsOutputPayloadFormatAvro): any; export declare function eventarcPipelineDestinationsOutputPayloadFormatAvroToHclTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatAvroOutputReference | EventarcPipelineDestinationsOutputPayloadFormatAvro): any; export declare class EventarcPipelineDestinationsOutputPayloadFormatAvroOutputReference 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(): EventarcPipelineDestinationsOutputPayloadFormatAvro | undefined; set internalValue(value: EventarcPipelineDestinationsOutputPayloadFormatAvro | undefined); private _schemaDefinition?; get schemaDefinition(): string; set schemaDefinition(value: string); resetSchemaDefinition(): void; get schemaDefinitionInput(): string | undefined; } export interface EventarcPipelineDestinationsOutputPayloadFormatJson { } export declare function eventarcPipelineDestinationsOutputPayloadFormatJsonToTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatJsonOutputReference | EventarcPipelineDestinationsOutputPayloadFormatJson): any; export declare function eventarcPipelineDestinationsOutputPayloadFormatJsonToHclTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatJsonOutputReference | EventarcPipelineDestinationsOutputPayloadFormatJson): any; export declare class EventarcPipelineDestinationsOutputPayloadFormatJsonOutputReference 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(): EventarcPipelineDestinationsOutputPayloadFormatJson | undefined; set internalValue(value: EventarcPipelineDestinationsOutputPayloadFormatJson | undefined); } export interface EventarcPipelineDestinationsOutputPayloadFormatProtobuf { /** * The entire schema definition is stored in this field. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#schema_definition EventarcPipeline#schema_definition} */ readonly schemaDefinition?: string; } export declare function eventarcPipelineDestinationsOutputPayloadFormatProtobufToTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatProtobufOutputReference | EventarcPipelineDestinationsOutputPayloadFormatProtobuf): any; export declare function eventarcPipelineDestinationsOutputPayloadFormatProtobufToHclTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatProtobufOutputReference | EventarcPipelineDestinationsOutputPayloadFormatProtobuf): any; export declare class EventarcPipelineDestinationsOutputPayloadFormatProtobufOutputReference 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(): EventarcPipelineDestinationsOutputPayloadFormatProtobuf | undefined; set internalValue(value: EventarcPipelineDestinationsOutputPayloadFormatProtobuf | undefined); private _schemaDefinition?; get schemaDefinition(): string; set schemaDefinition(value: string); resetSchemaDefinition(): void; get schemaDefinitionInput(): string | undefined; } export interface EventarcPipelineDestinationsOutputPayloadFormat { /** * avro block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#avro EventarcPipeline#avro} */ readonly avro?: EventarcPipelineDestinationsOutputPayloadFormatAvro; /** * json block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#json EventarcPipeline#json} */ readonly json?: EventarcPipelineDestinationsOutputPayloadFormatJson; /** * protobuf block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#protobuf EventarcPipeline#protobuf} */ readonly protobuf?: EventarcPipelineDestinationsOutputPayloadFormatProtobuf; } export declare function eventarcPipelineDestinationsOutputPayloadFormatToTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatOutputReference | EventarcPipelineDestinationsOutputPayloadFormat): any; export declare function eventarcPipelineDestinationsOutputPayloadFormatToHclTerraform(struct?: EventarcPipelineDestinationsOutputPayloadFormatOutputReference | EventarcPipelineDestinationsOutputPayloadFormat): any; export declare class EventarcPipelineDestinationsOutputPayloadFormatOutputReference 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(): EventarcPipelineDestinationsOutputPayloadFormat | undefined; set internalValue(value: EventarcPipelineDestinationsOutputPayloadFormat | undefined); private _avro; get avro(): EventarcPipelineDestinationsOutputPayloadFormatAvroOutputReference; putAvro(value: EventarcPipelineDestinationsOutputPayloadFormatAvro): void; resetAvro(): void; get avroInput(): EventarcPipelineDestinationsOutputPayloadFormatAvro | undefined; private _json; get json(): EventarcPipelineDestinationsOutputPayloadFormatJsonOutputReference; putJson(value: EventarcPipelineDestinationsOutputPayloadFormatJson): void; resetJson(): void; get jsonInput(): EventarcPipelineDestinationsOutputPayloadFormatJson | undefined; private _protobuf; get protobuf(): EventarcPipelineDestinationsOutputPayloadFormatProtobufOutputReference; putProtobuf(value: EventarcPipelineDestinationsOutputPayloadFormatProtobuf): void; resetProtobuf(): void; get protobufInput(): EventarcPipelineDestinationsOutputPayloadFormatProtobuf | undefined; } export interface EventarcPipelineDestinations { /** * The resource name of the Message Bus to which events should be * published. The Message Bus resource should exist in the same project as * the Pipeline. Format: * 'projects/{project}/locations/{location}/messageBuses/{message_bus}' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#message_bus EventarcPipeline#message_bus} */ readonly messageBus?: string; /** * The resource name of the Pub/Sub topic to which events should be * published. Format: * 'projects/{project}/locations/{location}/topics/{topic}' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#topic EventarcPipeline#topic} */ readonly topic?: string; /** * The resource name of the Workflow whose Executions are triggered by * the events. The Workflow resource should be deployed in the same * project as the Pipeline. Format: * 'projects/{project}/locations/{location}/workflows/{workflow}' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#workflow EventarcPipeline#workflow} */ readonly workflow?: string; /** * authentication_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#authentication_config EventarcPipeline#authentication_config} */ readonly authenticationConfig?: EventarcPipelineDestinationsAuthenticationConfig; /** * http_endpoint block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#http_endpoint EventarcPipeline#http_endpoint} */ readonly httpEndpoint?: EventarcPipelineDestinationsHttpEndpoint; /** * network_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#network_config EventarcPipeline#network_config} */ readonly networkConfig?: EventarcPipelineDestinationsNetworkConfig; /** * output_payload_format block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#output_payload_format EventarcPipeline#output_payload_format} */ readonly outputPayloadFormat?: EventarcPipelineDestinationsOutputPayloadFormat; } export declare function eventarcPipelineDestinationsToTerraform(struct?: EventarcPipelineDestinations | cdktf.IResolvable): any; export declare function eventarcPipelineDestinationsToHclTerraform(struct?: EventarcPipelineDestinations | cdktf.IResolvable): any; export declare class EventarcPipelineDestinationsOutputReference 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(): EventarcPipelineDestinations | cdktf.IResolvable | undefined; set internalValue(value: EventarcPipelineDestinations | cdktf.IResolvable | undefined); private _messageBus?; get messageBus(): string; set messageBus(value: string); resetMessageBus(): void; get messageBusInput(): string | undefined; private _topic?; get topic(): string; set topic(value: string); resetTopic(): void; get topicInput(): string | undefined; private _workflow?; get workflow(): string; set workflow(value: string); resetWorkflow(): void; get workflowInput(): string | undefined; private _authenticationConfig; get authenticationConfig(): EventarcPipelineDestinationsAuthenticationConfigOutputReference; putAuthenticationConfig(value: EventarcPipelineDestinationsAuthenticationConfig): void; resetAuthenticationConfig(): void; get authenticationConfigInput(): EventarcPipelineDestinationsAuthenticationConfig | undefined; private _httpEndpoint; get httpEndpoint(): EventarcPipelineDestinationsHttpEndpointOutputReference; putHttpEndpoint(value: EventarcPipelineDestinationsHttpEndpoint): void; resetHttpEndpoint(): void; get httpEndpointInput(): EventarcPipelineDestinationsHttpEndpoint | undefined; private _networkConfig; get networkConfig(): EventarcPipelineDestinationsNetworkConfigOutputReference; putNetworkConfig(value: EventarcPipelineDestinationsNetworkConfig): void; resetNetworkConfig(): void; get networkConfigInput(): EventarcPipelineDestinationsNetworkConfig | undefined; private _outputPayloadFormat; get outputPayloadFormat(): EventarcPipelineDestinationsOutputPayloadFormatOutputReference; putOutputPayloadFormat(value: EventarcPipelineDestinationsOutputPayloadFormat): void; resetOutputPayloadFormat(): void; get outputPayloadFormatInput(): EventarcPipelineDestinationsOutputPayloadFormat | undefined; } export declare class EventarcPipelineDestinationsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: EventarcPipelineDestinations[] | 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): EventarcPipelineDestinationsOutputReference; } export interface EventarcPipelineInputPayloadFormatAvro { /** * The entire schema definition is stored in this field. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#schema_definition EventarcPipeline#schema_definition} */ readonly schemaDefinition?: string; } export declare function eventarcPipelineInputPayloadFormatAvroToTerraform(struct?: EventarcPipelineInputPayloadFormatAvroOutputReference | EventarcPipelineInputPayloadFormatAvro): any; export declare function eventarcPipelineInputPayloadFormatAvroToHclTerraform(struct?: EventarcPipelineInputPayloadFormatAvroOutputReference | EventarcPipelineInputPayloadFormatAvro): any; export declare class EventarcPipelineInputPayloadFormatAvroOutputReference 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(): EventarcPipelineInputPayloadFormatAvro | undefined; set internalValue(value: EventarcPipelineInputPayloadFormatAvro | undefined); private _schemaDefinition?; get schemaDefinition(): string; set schemaDefinition(value: string); resetSchemaDefinition(): void; get schemaDefinitionInput(): string | undefined; } export interface EventarcPipelineInputPayloadFormatJson { } export declare function eventarcPipelineInputPayloadFormatJsonToTerraform(struct?: EventarcPipelineInputPayloadFormatJsonOutputReference | EventarcPipelineInputPayloadFormatJson): any; export declare function eventarcPipelineInputPayloadFormatJsonToHclTerraform(struct?: EventarcPipelineInputPayloadFormatJsonOutputReference | EventarcPipelineInputPayloadFormatJson): any; export declare class EventarcPipelineInputPayloadFormatJsonOutputReference 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(): EventarcPipelineInputPayloadFormatJson | undefined; set internalValue(value: EventarcPipelineInputPayloadFormatJson | undefined); } export interface EventarcPipelineInputPayloadFormatProtobuf { /** * The entire schema definition is stored in this field. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#schema_definition EventarcPipeline#schema_definition} */ readonly schemaDefinition?: string; } export declare function eventarcPipelineInputPayloadFormatProtobufToTerraform(struct?: EventarcPipelineInputPayloadFormatProtobufOutputReference | EventarcPipelineInputPayloadFormatProtobuf): any; export declare function eventarcPipelineInputPayloadFormatProtobufToHclTerraform(struct?: EventarcPipelineInputPayloadFormatProtobufOutputReference | EventarcPipelineInputPayloadFormatProtobuf): any; export declare class EventarcPipelineInputPayloadFormatProtobufOutputReference 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(): EventarcPipelineInputPayloadFormatProtobuf | undefined; set internalValue(value: EventarcPipelineInputPayloadFormatProtobuf | undefined); private _schemaDefinition?; get schemaDefinition(): string; set schemaDefinition(value: string); resetSchemaDefinition(): void; get schemaDefinitionInput(): string | undefined; } export interface EventarcPipelineInputPayloadFormat { /** * avro block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#avro EventarcPipeline#avro} */ readonly avro?: EventarcPipelineInputPayloadFormatAvro; /** * json block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#json EventarcPipeline#json} */ readonly json?: EventarcPipelineInputPayloadFormatJson; /** * protobuf block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#protobuf EventarcPipeline#protobuf} */ readonly protobuf?: EventarcPipelineInputPayloadFormatProtobuf; } export declare function eventarcPipelineInputPayloadFormatToTerraform(struct?: EventarcPipelineInputPayloadFormatOutputReference | EventarcPipelineInputPayloadFormat): any; export declare function eventarcPipelineInputPayloadFormatToHclTerraform(struct?: EventarcPipelineInputPayloadFormatOutputReference | EventarcPipelineInputPayloadFormat): any; export declare class EventarcPipelineInputPayloadFormatOutputReference 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(): EventarcPipelineInputPayloadFormat | undefined; set internalValue(value: EventarcPipelineInputPayloadFormat | undefined); private _avro; get avro(): EventarcPipelineInputPayloadFormatAvroOutputReference; putAvro(value: EventarcPipelineInputPayloadFormatAvro): void; resetAvro(): void; get avroInput(): EventarcPipelineInputPayloadFormatAvro | undefined; private _json; get json(): EventarcPipelineInputPayloadFormatJsonOutputReference; putJson(value: EventarcPipelineInputPayloadFormatJson): void; resetJson(): void; get jsonInput(): EventarcPipelineInputPayloadFormatJson | undefined; private _protobuf; get protobuf(): EventarcPipelineInputPayloadFormatProtobufOutputReference; putProtobuf(value: EventarcPipelineInputPayloadFormatProtobuf): void; resetProtobuf(): void; get protobufInput(): EventarcPipelineInputPayloadFormatProtobuf | undefined; } export interface EventarcPipelineLoggingConfig { /** * The minimum severity of logs that will be sent to Stackdriver/Platform * Telemetry. Logs at severitiy ≥ this value will be sent, unless it is NONE. Possible values: ["NONE", "DEBUG", "INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/eventarc_pipeline#log_severity EventarcPipeline#log_severity} */ readonly logSeverity?: string; } export declare function eventarcPipelineLoggingConfigToTerraform(struct?: EventarcPipelineLoggingConfigOutputReference | EventarcPipelineLoggingConfig): any; export declare function eventarcPipelineLoggingConfigToHclTerraform(struct?: EventarcPipelineLoggingConfigOutputReference | EventarcPipelineLoggingConfig): any; export declare class EventarcPipelineLoggingConfigOutputReference 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(): EventarcPipelineLoggingConfig | undefined; set internalValue(value: EventarcPipelineLoggingConfig | undefined); private _logSeverity?; get logSeverity(): string; set logSeverity(value: string); resetLogSeverity(): void; get logSeverityInput(): string | undefined; } export interface EventarcPipelineMediationsTransformation { /** * The CEL expression template to apply to transform messages. * The following CEL extension functions are provided for * use in this CEL expression: * - merge: * map1.merge(map2) -> map3 * - Merges the passed CEL map with the existing CEL map the * function is applied to. * - If the same key exists in both maps, if the key's value is type * map both maps are merged else the value from the passed map is * used. * - denormalize: * map.denormalize() -> map * - Denormalizes a CEL map such that every value of type map or key * in the map is expanded to return a single level map. * - The resulting keys are "." separated indices of the map keys. * - For example: * { * "a": 1, * "b": { * "c": 2, * "d": 3 * } * "e": [4, 5] * } * .denormalize() * -> { * "a": 1, * "b.c": 2, * "b.d": 3, * "e.0": 4, * "e.1": 5 * } * - setField: * map.setField(key, value) -> message * - Sets the field of the message with the given key to the * given value. * - If the field is not present it will be added. * - If the field is present it will be overwritten. * - The key can be a dot separated path to set a field in a nested * message. * - Key must be of type string. * - Value may be any valid type. * - removeFields: * map.removeFields([key1, key2, ...]) -> message * - Removes the fields of the map with the given keys. * - The keys can be a dot separated path to remove a field in a * nested message. * - If a key is not found it will be ignored. * - Keys must be of type string. * - toMap: * [map1, map2, ...].toMap() -> map * - Converts a CEL list of CEL maps to a single CEL map * - toDestinationPayloadFormat(): * message.data.toDestinationPayloadFormat() -> string or bytes * - Converts the message data to the destination payload format * specified in Pipeline.Destination.output_payload_format * - This function is meant to be applied to the message.data field. * - If the destination payload format is not set, the function will * return the message data unchanged. * - toCloudEventJsonWithPayloadFormat: * message.toCloudEventJsonWithPayloadFormat() -> map * - Converts a message to the corresponding structure of JSON * format for CloudEvents * - This function applies toDestinationPayloadFormat() to the * message data. It also sets the corresponding datacontenttype of * the CloudEvent, as indicated by * Pipeline.Destination.output_payload_format. If no * output_payload_format is set it will use the existing * datacontenttype on the CloudEvent if present, else leave * datacontenttype absent. * - This function expects that the content of the message will * adhere to the standard CloudEvent format. If it doesn't then this * function will fail. * - The result is a CEL map that corresponds to the JSON * representation of the CloudEvent. To convert that data to a JSON * string it can be chained with the toJs