@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
904 lines • 63.7 kB
TypeScript
/**
* 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