1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. eventarc
  5. Pipeline
Google Cloud v8.27.1 published on Friday, Apr 25, 2025 by Pulumi

gcp.eventarc.Pipeline

Explore with Pulumi AI

The Eventarc Pipeline resource

To get more information about Pipeline, see:

Example Usage

Eventarc Pipeline With Topic Destination

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const topic = new gcp.pubsub.Topic("topic", {name: "some-topic"});
const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    destinations: [{
        topic: topic.id,
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }],
    labels: {
        test_label: "test-eventarc-label",
    },
    annotations: {
        test_annotation: "test-eventarc-annotation",
    },
    displayName: "Testing Pipeline",
});
Copy
import pulumi
import pulumi_gcp as gcp

topic = gcp.pubsub.Topic("topic", name="some-topic")
primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    destinations=[{
        "topic": topic.id,
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }],
    labels={
        "test_label": "test-eventarc-label",
    },
    annotations={
        "test_annotation": "test-eventarc-annotation",
    },
    display_name="Testing Pipeline")
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/pubsub"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		topic, err := pubsub.NewTopic(ctx, "topic", &pubsub.TopicArgs{
			Name: pulumi.String("some-topic"),
		})
		if err != nil {
			return err
		}
		_, err = eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:   pulumi.String("us-central1"),
			PipelineId: pulumi.String("some-pipeline"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					Topic: topic.ID(),
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
				},
			},
			Labels: pulumi.StringMap{
				"test_label": pulumi.String("test-eventarc-label"),
			},
			Annotations: pulumi.StringMap{
				"test_annotation": pulumi.String("test-eventarc-annotation"),
			},
			DisplayName: pulumi.String("Testing Pipeline"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var topic = new Gcp.PubSub.Topic("topic", new()
    {
        Name = "some-topic",
    });

    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                Topic = topic.Id,
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
            },
        },
        Labels = 
        {
            { "test_label", "test-eventarc-label" },
        },
        Annotations = 
        {
            { "test_annotation", "test-eventarc-annotation" },
        },
        DisplayName = "Testing Pipeline",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.pubsub.TopicArgs;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var topic = new Topic("topic", TopicArgs.builder()
            .name("some-topic")
            .build());

        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .destinations(PipelineDestinationArgs.builder()
                .topic(topic.id())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .build())
            .labels(Map.of("test_label", "test-eventarc-label"))
            .annotations(Map.of("test_annotation", "test-eventarc-annotation"))
            .displayName("Testing Pipeline")
            .build());

    }
}
Copy
resources:
  topic:
    type: gcp:pubsub:Topic
    properties:
      name: some-topic
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      destinations:
        - topic: ${topic.id}
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
      labels:
        test_label: test-eventarc-label
      annotations:
        test_annotation: test-eventarc-annotation
      displayName: Testing Pipeline
Copy

Eventarc Pipeline With Http Destination

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    destinations: [{
        httpEndpoint: {
            uri: "https://10.77.0.0:80/route",
        },
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }],
});
Copy
import pulumi
import pulumi_gcp as gcp

primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    destinations=[{
        "http_endpoint": {
            "uri": "https://10.77.0.0:80/route",
        },
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:   pulumi.String("us-central1"),
			PipelineId: pulumi.String("some-pipeline"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					HttpEndpoint: &eventarc.PipelineDestinationHttpEndpointArgs{
						Uri: pulumi.String("https://10.77.0.0:80/route"),
					},
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                HttpEndpoint = new Gcp.Eventarc.Inputs.PipelineDestinationHttpEndpointArgs
                {
                    Uri = "https://10.77.0.0:80/route",
                },
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationHttpEndpointArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .destinations(PipelineDestinationArgs.builder()
                .httpEndpoint(PipelineDestinationHttpEndpointArgs.builder()
                    .uri("https://10.77.0.0:80/route")
                    .build())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      destinations:
        - httpEndpoint:
            uri: https://10.77.0.0:80/route
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
Copy

Eventarc Pipeline With Workflow Destination

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const workflow = new gcp.workflows.Workflow("workflow", {
    name: "some-workflow",
    deletionProtection: false,
    region: "us-central1",
    sourceContents: `# This is a sample workflow, feel free to replace it with your source code
#
# This workflow does the following:
# - reads current time and date information from an external API and stores
#   the response in CurrentDateTime variable
# - retrieves a list of Wikipedia articles related to the day of the week
#   from CurrentDateTime
# - returns the list of articles as an output of the workflow
# FYI, In terraform you need to escape the  or it will cause errors.

- getCurrentTime:
    call: http.get
    args:
        url: \${sys.get_env("url")}
    result: CurrentDateTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: \${CurrentDateTime.body.dayOfTheWeek}
    result: WikiResult
- returnOutput:
    return: \${WikiResult.body[1]}
`,
});
const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    destinations: [{
        workflow: workflow.id,
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }],
});
Copy
import pulumi
import pulumi_gcp as gcp

workflow = gcp.workflows.Workflow("workflow",
    name="some-workflow",
    deletion_protection=False,
    region="us-central1",
    source_contents="""# This is a sample workflow, feel free to replace it with your source code
#
# This workflow does the following:
# - reads current time and date information from an external API and stores
#   the response in CurrentDateTime variable
# - retrieves a list of Wikipedia articles related to the day of the week
#   from CurrentDateTime
# - returns the list of articles as an output of the workflow
# FYI, In terraform you need to escape the $$ or it will cause errors.

- getCurrentTime:
    call: http.get
    args:
        url: ${sys.get_env("url")}
    result: CurrentDateTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: ${CurrentDateTime.body.dayOfTheWeek}
    result: WikiResult
- returnOutput:
    return: ${WikiResult.body[1]}
""")
primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    destinations=[{
        "workflow": workflow.id,
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
    }])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workflows"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		workflow, err := workflows.NewWorkflow(ctx, "workflow", &workflows.WorkflowArgs{
			Name:               pulumi.String("some-workflow"),
			DeletionProtection: pulumi.Bool(false),
			Region:             pulumi.String("us-central1"),
			SourceContents: pulumi.String(`# This is a sample workflow, feel free to replace it with your source code
#
# This workflow does the following:
# - reads current time and date information from an external API and stores
#   the response in CurrentDateTime variable
# - retrieves a list of Wikipedia articles related to the day of the week
#   from CurrentDateTime
# - returns the list of articles as an output of the workflow
# FYI, In terraform you need to escape the $$ or it will cause errors.

- getCurrentTime:
    call: http.get
    args:
        url: ${sys.get_env("url")}
    result: CurrentDateTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: ${CurrentDateTime.body.dayOfTheWeek}
    result: WikiResult
- returnOutput:
    return: ${WikiResult.body[1]}
`),
		})
		if err != nil {
			return err
		}
		_, err = eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:   pulumi.String("us-central1"),
			PipelineId: pulumi.String("some-pipeline"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					Workflow: workflow.ID(),
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var workflow = new Gcp.Workflows.Workflow("workflow", new()
    {
        Name = "some-workflow",
        DeletionProtection = false,
        Region = "us-central1",
        SourceContents = @"# This is a sample workflow, feel free to replace it with your source code
#
# This workflow does the following:
# - reads current time and date information from an external API and stores
#   the response in CurrentDateTime variable
# - retrieves a list of Wikipedia articles related to the day of the week
#   from CurrentDateTime
# - returns the list of articles as an output of the workflow
# FYI, In terraform you need to escape the $$ or it will cause errors.

- getCurrentTime:
    call: http.get
    args:
        url: ${sys.get_env(""url"")}
    result: CurrentDateTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: ${CurrentDateTime.body.dayOfTheWeek}
    result: WikiResult
- returnOutput:
    return: ${WikiResult.body[1]}
",
    });

    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                Workflow = workflow.Id,
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.workflows.Workflow;
import com.pulumi.gcp.workflows.WorkflowArgs;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var workflow = new Workflow("workflow", WorkflowArgs.builder()
            .name("some-workflow")
            .deletionProtection(false)
            .region("us-central1")
            .sourceContents("""
# This is a sample workflow, feel free to replace it with your source code
#
# This workflow does the following:
# - reads current time and date information from an external API and stores
#   the response in CurrentDateTime variable
# - retrieves a list of Wikipedia articles related to the day of the week
#   from CurrentDateTime
# - returns the list of articles as an output of the workflow
# FYI, In terraform you need to escape the $$ or it will cause errors.

- getCurrentTime:
    call: http.get
    args:
        url: ${sys.get_env("url")}
    result: CurrentDateTime
- readWikipedia:
    call: http.get
    args:
        url: https://en.wikipedia.org/w/api.php
        query:
            action: opensearch
            search: ${CurrentDateTime.body.dayOfTheWeek}
    result: WikiResult
- returnOutput:
    return: ${WikiResult.body[1]}
            """)
            .build());

        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .destinations(PipelineDestinationArgs.builder()
                .workflow(workflow.id())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  workflow:
    type: gcp:workflows:Workflow
    properties:
      name: some-workflow
      deletionProtection: false
      region: us-central1
      sourceContents: |
        # This is a sample workflow, feel free to replace it with your source code
        #
        # This workflow does the following:
        # - reads current time and date information from an external API and stores
        #   the response in CurrentDateTime variable
        # - retrieves a list of Wikipedia articles related to the day of the week
        #   from CurrentDateTime
        # - returns the list of articles as an output of the workflow
        # FYI, In terraform you need to escape the $$ or it will cause errors.

        - getCurrentTime:
            call: http.get
            args:
                url: $${sys.get_env("url")}
            result: CurrentDateTime
        - readWikipedia:
            call: http.get
            args:
                url: https://en.wikipedia.org/w/api.php
                query:
                    action: opensearch
                    search: $${CurrentDateTime.body.dayOfTheWeek}
            result: WikiResult
        - returnOutput:
            return: $${WikiResult.body[1]}        
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      destinations:
        - workflow: ${workflow.id}
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
Copy

Eventarc Pipeline With Oidc And Json Format

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    destinations: [{
        httpEndpoint: {
            uri: "https://10.77.0.0:80/route",
            messageBindingTemplate: "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        authenticationConfig: {
            googleOidc: {
                serviceAccount: "my@service-account.com",
                audience: "http://www.example.com",
            },
        },
        outputPayloadFormat: {
            json: {},
        },
    }],
    inputPayloadFormat: {
        json: {},
    },
    retryPolicy: {
        maxRetryDelay: "50s",
        maxAttempts: 2,
        minRetryDelay: "40s",
    },
    mediations: [{
        transformation: {
            transformationTemplate: `{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \\"scrubbed\\": \\"true\\" }"
}
`,
        },
    }],
    loggingConfig: {
        logSeverity: "DEBUG",
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    destinations=[{
        "http_endpoint": {
            "uri": "https://10.77.0.0:80/route",
            "message_binding_template": "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        "authentication_config": {
            "google_oidc": {
                "service_account": "my@service-account.com",
                "audience": "http://www.example.com",
            },
        },
        "output_payload_format": {
            "json": {},
        },
    }],
    input_payload_format={
        "json": {},
    },
    retry_policy={
        "max_retry_delay": "50s",
        "max_attempts": 2,
        "min_retry_delay": "40s",
    },
    mediations=[{
        "transformation": {
            "transformation_template": """{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
""",
        },
    }],
    logging_config={
        "log_severity": "DEBUG",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:   pulumi.String("us-central1"),
			PipelineId: pulumi.String("some-pipeline"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					HttpEndpoint: &eventarc.PipelineDestinationHttpEndpointArgs{
						Uri:                    pulumi.String("https://10.77.0.0:80/route"),
						MessageBindingTemplate: pulumi.String("{\"headers\":{\"new-header-key\": \"new-header-value\"}}"),
					},
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
					AuthenticationConfig: &eventarc.PipelineDestinationAuthenticationConfigArgs{
						GoogleOidc: &eventarc.PipelineDestinationAuthenticationConfigGoogleOidcArgs{
							ServiceAccount: pulumi.String("my@service-account.com"),
							Audience:       pulumi.String("http://www.example.com"),
						},
					},
					OutputPayloadFormat: &eventarc.PipelineDestinationOutputPayloadFormatArgs{
						Json: &eventarc.PipelineDestinationOutputPayloadFormatJsonArgs{},
					},
				},
			},
			InputPayloadFormat: &eventarc.PipelineInputPayloadFormatArgs{
				Json: &eventarc.PipelineInputPayloadFormatJsonArgs{},
			},
			RetryPolicy: &eventarc.PipelineRetryPolicyArgs{
				MaxRetryDelay: pulumi.String("50s"),
				MaxAttempts:   pulumi.Int(2),
				MinRetryDelay: pulumi.String("40s"),
			},
			Mediations: eventarc.PipelineMediationArray{
				&eventarc.PipelineMediationArgs{
					Transformation: &eventarc.PipelineMediationTransformationArgs{
						TransformationTemplate: pulumi.String(`{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
`),
					},
				},
			},
			LoggingConfig: &eventarc.PipelineLoggingConfigArgs{
				LogSeverity: pulumi.String("DEBUG"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                HttpEndpoint = new Gcp.Eventarc.Inputs.PipelineDestinationHttpEndpointArgs
                {
                    Uri = "https://10.77.0.0:80/route",
                    MessageBindingTemplate = "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
                },
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
                AuthenticationConfig = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigArgs
                {
                    GoogleOidc = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigGoogleOidcArgs
                    {
                        ServiceAccount = "my@service-account.com",
                        Audience = "http://www.example.com",
                    },
                },
                OutputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatArgs
                {
                    Json = null,
                },
            },
        },
        InputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatArgs
        {
            Json = null,
        },
        RetryPolicy = new Gcp.Eventarc.Inputs.PipelineRetryPolicyArgs
        {
            MaxRetryDelay = "50s",
            MaxAttempts = 2,
            MinRetryDelay = "40s",
        },
        Mediations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineMediationArgs
            {
                Transformation = new Gcp.Eventarc.Inputs.PipelineMediationTransformationArgs
                {
                    TransformationTemplate = @"{
""id"": message.id,
""datacontenttype"": ""application/json"",
""data"": ""{ \""scrubbed\"": \""true\"" }""
}
",
                },
            },
        },
        LoggingConfig = new Gcp.Eventarc.Inputs.PipelineLoggingConfigArgs
        {
            LogSeverity = "DEBUG",
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationHttpEndpointArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationAuthenticationConfigArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationAuthenticationConfigGoogleOidcArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatJsonArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatJsonArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineRetryPolicyArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationTransformationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineLoggingConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .destinations(PipelineDestinationArgs.builder()
                .httpEndpoint(PipelineDestinationHttpEndpointArgs.builder()
                    .uri("https://10.77.0.0:80/route")
                    .messageBindingTemplate("{\"headers\":{\"new-header-key\": \"new-header-value\"}}")
                    .build())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .authenticationConfig(PipelineDestinationAuthenticationConfigArgs.builder()
                    .googleOidc(PipelineDestinationAuthenticationConfigGoogleOidcArgs.builder()
                        .serviceAccount("my@service-account.com")
                        .audience("http://www.example.com")
                        .build())
                    .build())
                .outputPayloadFormat(PipelineDestinationOutputPayloadFormatArgs.builder()
                    .json(PipelineDestinationOutputPayloadFormatJsonArgs.builder()
                        .build())
                    .build())
                .build())
            .inputPayloadFormat(PipelineInputPayloadFormatArgs.builder()
                .json(PipelineInputPayloadFormatJsonArgs.builder()
                    .build())
                .build())
            .retryPolicy(PipelineRetryPolicyArgs.builder()
                .maxRetryDelay("50s")
                .maxAttempts(2)
                .minRetryDelay("40s")
                .build())
            .mediations(PipelineMediationArgs.builder()
                .transformation(PipelineMediationTransformationArgs.builder()
                    .transformationTemplate("""
{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
                    """)
                    .build())
                .build())
            .loggingConfig(PipelineLoggingConfigArgs.builder()
                .logSeverity("DEBUG")
                .build())
            .build());

    }
}
Copy
resources:
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      destinations:
        - httpEndpoint:
            uri: https://10.77.0.0:80/route
            messageBindingTemplate: '{"headers":{"new-header-key": "new-header-value"}}'
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
          authenticationConfig:
            googleOidc:
              serviceAccount: my@service-account.com
              audience: http://www.example.com
          outputPayloadFormat:
            json: {}
      inputPayloadFormat:
        json: {}
      retryPolicy:
        maxRetryDelay: 50s
        maxAttempts: 2
        minRetryDelay: 40s
      mediations:
        - transformation:
            transformationTemplate: |
              {
              "id": message.id,
              "datacontenttype": "application/json",
              "data": "{ \"scrubbed\": \"true\" }"
              }              
      loggingConfig:
        logSeverity: DEBUG
Copy

Eventarc Pipeline With Oauth And Protobuf Format

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    destinations: [{
        httpEndpoint: {
            uri: "https://10.77.0.0:80/route",
            messageBindingTemplate: "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        authenticationConfig: {
            oauthToken: {
                serviceAccount: "my@service-account.com",
                scope: "https://www.googleapis.com/auth/cloud-platform",
            },
        },
        outputPayloadFormat: {
            protobuf: {
                schemaDefinition: `syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
`,
            },
        },
    }],
    inputPayloadFormat: {
        protobuf: {
            schemaDefinition: `syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
`,
        },
    },
    retryPolicy: {
        maxRetryDelay: "50s",
        maxAttempts: 2,
        minRetryDelay: "40s",
    },
    mediations: [{
        transformation: {
            transformationTemplate: `{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \\"scrubbed\\": \\"true\\" }"
}
`,
        },
    }],
    loggingConfig: {
        logSeverity: "DEBUG",
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    destinations=[{
        "http_endpoint": {
            "uri": "https://10.77.0.0:80/route",
            "message_binding_template": "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        "authentication_config": {
            "oauth_token": {
                "service_account": "my@service-account.com",
                "scope": "https://www.googleapis.com/auth/cloud-platform",
            },
        },
        "output_payload_format": {
            "protobuf": {
                "schema_definition": """syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
""",
            },
        },
    }],
    input_payload_format={
        "protobuf": {
            "schema_definition": """syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
""",
        },
    },
    retry_policy={
        "max_retry_delay": "50s",
        "max_attempts": 2,
        "min_retry_delay": "40s",
    },
    mediations=[{
        "transformation": {
            "transformation_template": """{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
""",
        },
    }],
    logging_config={
        "log_severity": "DEBUG",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:   pulumi.String("us-central1"),
			PipelineId: pulumi.String("some-pipeline"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					HttpEndpoint: &eventarc.PipelineDestinationHttpEndpointArgs{
						Uri:                    pulumi.String("https://10.77.0.0:80/route"),
						MessageBindingTemplate: pulumi.String("{\"headers\":{\"new-header-key\": \"new-header-value\"}}"),
					},
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
					AuthenticationConfig: &eventarc.PipelineDestinationAuthenticationConfigArgs{
						OauthToken: &eventarc.PipelineDestinationAuthenticationConfigOauthTokenArgs{
							ServiceAccount: pulumi.String("my@service-account.com"),
							Scope:          pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
						},
					},
					OutputPayloadFormat: &eventarc.PipelineDestinationOutputPayloadFormatArgs{
						Protobuf: &eventarc.PipelineDestinationOutputPayloadFormatProtobufArgs{
							SchemaDefinition: pulumi.String(`syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
`),
						},
					},
				},
			},
			InputPayloadFormat: &eventarc.PipelineInputPayloadFormatArgs{
				Protobuf: &eventarc.PipelineInputPayloadFormatProtobufArgs{
					SchemaDefinition: pulumi.String(`syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
`),
				},
			},
			RetryPolicy: &eventarc.PipelineRetryPolicyArgs{
				MaxRetryDelay: pulumi.String("50s"),
				MaxAttempts:   pulumi.Int(2),
				MinRetryDelay: pulumi.String("40s"),
			},
			Mediations: eventarc.PipelineMediationArray{
				&eventarc.PipelineMediationArgs{
					Transformation: &eventarc.PipelineMediationTransformationArgs{
						TransformationTemplate: pulumi.String(`{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
`),
					},
				},
			},
			LoggingConfig: &eventarc.PipelineLoggingConfigArgs{
				LogSeverity: pulumi.String("DEBUG"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                HttpEndpoint = new Gcp.Eventarc.Inputs.PipelineDestinationHttpEndpointArgs
                {
                    Uri = "https://10.77.0.0:80/route",
                    MessageBindingTemplate = "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
                },
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
                AuthenticationConfig = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigArgs
                {
                    OauthToken = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigOauthTokenArgs
                    {
                        ServiceAccount = "my@service-account.com",
                        Scope = "https://www.googleapis.com/auth/cloud-platform",
                    },
                },
                OutputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatArgs
                {
                    Protobuf = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatProtobufArgs
                    {
                        SchemaDefinition = @"syntax = ""proto3"";
message schema {
string name = 1;
string severity = 2;
}
",
                    },
                },
            },
        },
        InputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatArgs
        {
            Protobuf = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatProtobufArgs
            {
                SchemaDefinition = @"syntax = ""proto3"";
message schema {
string name = 1;
string severity = 2;
}
",
            },
        },
        RetryPolicy = new Gcp.Eventarc.Inputs.PipelineRetryPolicyArgs
        {
            MaxRetryDelay = "50s",
            MaxAttempts = 2,
            MinRetryDelay = "40s",
        },
        Mediations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineMediationArgs
            {
                Transformation = new Gcp.Eventarc.Inputs.PipelineMediationTransformationArgs
                {
                    TransformationTemplate = @"{
""id"": message.id,
""datacontenttype"": ""application/json"",
""data"": ""{ \""scrubbed\"": \""true\"" }""
}
",
                },
            },
        },
        LoggingConfig = new Gcp.Eventarc.Inputs.PipelineLoggingConfigArgs
        {
            LogSeverity = "DEBUG",
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationHttpEndpointArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationAuthenticationConfigArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationAuthenticationConfigOauthTokenArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatProtobufArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatProtobufArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineRetryPolicyArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationTransformationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineLoggingConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .destinations(PipelineDestinationArgs.builder()
                .httpEndpoint(PipelineDestinationHttpEndpointArgs.builder()
                    .uri("https://10.77.0.0:80/route")
                    .messageBindingTemplate("{\"headers\":{\"new-header-key\": \"new-header-value\"}}")
                    .build())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .authenticationConfig(PipelineDestinationAuthenticationConfigArgs.builder()
                    .oauthToken(PipelineDestinationAuthenticationConfigOauthTokenArgs.builder()
                        .serviceAccount("my@service-account.com")
                        .scope("https://www.googleapis.com/auth/cloud-platform")
                        .build())
                    .build())
                .outputPayloadFormat(PipelineDestinationOutputPayloadFormatArgs.builder()
                    .protobuf(PipelineDestinationOutputPayloadFormatProtobufArgs.builder()
                        .schemaDefinition("""
syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
                        """)
                        .build())
                    .build())
                .build())
            .inputPayloadFormat(PipelineInputPayloadFormatArgs.builder()
                .protobuf(PipelineInputPayloadFormatProtobufArgs.builder()
                    .schemaDefinition("""
syntax = "proto3";
message schema {
string name = 1;
string severity = 2;
}
                    """)
                    .build())
                .build())
            .retryPolicy(PipelineRetryPolicyArgs.builder()
                .maxRetryDelay("50s")
                .maxAttempts(2)
                .minRetryDelay("40s")
                .build())
            .mediations(PipelineMediationArgs.builder()
                .transformation(PipelineMediationTransformationArgs.builder()
                    .transformationTemplate("""
{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
                    """)
                    .build())
                .build())
            .loggingConfig(PipelineLoggingConfigArgs.builder()
                .logSeverity("DEBUG")
                .build())
            .build());

    }
}
Copy
resources:
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      destinations:
        - httpEndpoint:
            uri: https://10.77.0.0:80/route
            messageBindingTemplate: '{"headers":{"new-header-key": "new-header-value"}}'
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
          authenticationConfig:
            oauthToken:
              serviceAccount: my@service-account.com
              scope: https://www.googleapis.com/auth/cloud-platform
          outputPayloadFormat:
            protobuf:
              schemaDefinition: |
                syntax = "proto3";
                message schema {
                string name = 1;
                string severity = 2;
                }                
      inputPayloadFormat:
        protobuf:
          schemaDefinition: |
            syntax = "proto3";
            message schema {
            string name = 1;
            string severity = 2;
            }            
      retryPolicy:
        maxRetryDelay: 50s
        maxAttempts: 2
        minRetryDelay: 40s
      mediations:
        - transformation:
            transformationTemplate: |
              {
              "id": message.id,
              "datacontenttype": "application/json",
              "data": "{ \"scrubbed\": \"true\" }"
              }              
      loggingConfig:
        logSeverity: DEBUG
Copy

Eventarc Pipeline With Cmek And Avro Format

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const primary = new gcp.eventarc.Pipeline("primary", {
    location: "us-central1",
    pipelineId: "some-pipeline",
    cryptoKeyName: "some-key",
    destinations: [{
        httpEndpoint: {
            uri: "https://10.77.0.0:80/route",
            messageBindingTemplate: "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        networkConfig: {
            networkAttachment: "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        outputPayloadFormat: {
            avro: {
                schemaDefinition: "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
            },
        },
    }],
    inputPayloadFormat: {
        avro: {
            schemaDefinition: "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
        },
    },
    retryPolicy: {
        maxRetryDelay: "50s",
        maxAttempts: 2,
        minRetryDelay: "40s",
    },
    mediations: [{
        transformation: {
            transformationTemplate: `{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \\"scrubbed\\": \\"true\\" }"
}
`,
        },
    }],
    loggingConfig: {
        logSeverity: "DEBUG",
    },
});
Copy
import pulumi
import pulumi_gcp as gcp

primary = gcp.eventarc.Pipeline("primary",
    location="us-central1",
    pipeline_id="some-pipeline",
    crypto_key_name="some-key",
    destinations=[{
        "http_endpoint": {
            "uri": "https://10.77.0.0:80/route",
            "message_binding_template": "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
        },
        "network_config": {
            "network_attachment": "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
        },
        "output_payload_format": {
            "avro": {
                "schema_definition": "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
            },
        },
    }],
    input_payload_format={
        "avro": {
            "schema_definition": "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
        },
    },
    retry_policy={
        "max_retry_delay": "50s",
        "max_attempts": 2,
        "min_retry_delay": "40s",
    },
    mediations=[{
        "transformation": {
            "transformation_template": """{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
""",
        },
    }],
    logging_config={
        "log_severity": "DEBUG",
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/eventarc"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := eventarc.NewPipeline(ctx, "primary", &eventarc.PipelineArgs{
			Location:      pulumi.String("us-central1"),
			PipelineId:    pulumi.String("some-pipeline"),
			CryptoKeyName: pulumi.String("some-key"),
			Destinations: eventarc.PipelineDestinationArray{
				&eventarc.PipelineDestinationArgs{
					HttpEndpoint: &eventarc.PipelineDestinationHttpEndpointArgs{
						Uri:                    pulumi.String("https://10.77.0.0:80/route"),
						MessageBindingTemplate: pulumi.String("{\"headers\":{\"new-header-key\": \"new-header-value\"}}"),
					},
					NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
						NetworkAttachment: pulumi.String("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment"),
					},
					OutputPayloadFormat: &eventarc.PipelineDestinationOutputPayloadFormatArgs{
						Avro: &eventarc.PipelineDestinationOutputPayloadFormatAvroArgs{
							SchemaDefinition: pulumi.String("{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}"),
						},
					},
				},
			},
			InputPayloadFormat: &eventarc.PipelineInputPayloadFormatArgs{
				Avro: &eventarc.PipelineInputPayloadFormatAvroArgs{
					SchemaDefinition: pulumi.String("{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}"),
				},
			},
			RetryPolicy: &eventarc.PipelineRetryPolicyArgs{
				MaxRetryDelay: pulumi.String("50s"),
				MaxAttempts:   pulumi.Int(2),
				MinRetryDelay: pulumi.String("40s"),
			},
			Mediations: eventarc.PipelineMediationArray{
				&eventarc.PipelineMediationArgs{
					Transformation: &eventarc.PipelineMediationTransformationArgs{
						TransformationTemplate: pulumi.String(`{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
`),
					},
				},
			},
			LoggingConfig: &eventarc.PipelineLoggingConfigArgs{
				LogSeverity: pulumi.String("DEBUG"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var primary = new Gcp.Eventarc.Pipeline("primary", new()
    {
        Location = "us-central1",
        PipelineId = "some-pipeline",
        CryptoKeyName = "some-key",
        Destinations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineDestinationArgs
            {
                HttpEndpoint = new Gcp.Eventarc.Inputs.PipelineDestinationHttpEndpointArgs
                {
                    Uri = "https://10.77.0.0:80/route",
                    MessageBindingTemplate = "{\"headers\":{\"new-header-key\": \"new-header-value\"}}",
                },
                NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
                {
                    NetworkAttachment = "projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment",
                },
                OutputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatArgs
                {
                    Avro = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatAvroArgs
                    {
                        SchemaDefinition = "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
                    },
                },
            },
        },
        InputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatArgs
        {
            Avro = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatAvroArgs
            {
                SchemaDefinition = "{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}",
            },
        },
        RetryPolicy = new Gcp.Eventarc.Inputs.PipelineRetryPolicyArgs
        {
            MaxRetryDelay = "50s",
            MaxAttempts = 2,
            MinRetryDelay = "40s",
        },
        Mediations = new[]
        {
            new Gcp.Eventarc.Inputs.PipelineMediationArgs
            {
                Transformation = new Gcp.Eventarc.Inputs.PipelineMediationTransformationArgs
                {
                    TransformationTemplate = @"{
""id"": message.id,
""datacontenttype"": ""application/json"",
""data"": ""{ \""scrubbed\"": \""true\"" }""
}
",
                },
            },
        },
        LoggingConfig = new Gcp.Eventarc.Inputs.PipelineLoggingConfigArgs
        {
            LogSeverity = "DEBUG",
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.eventarc.Pipeline;
import com.pulumi.gcp.eventarc.PipelineArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationHttpEndpointArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationNetworkConfigArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineDestinationOutputPayloadFormatAvroArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineInputPayloadFormatAvroArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineRetryPolicyArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineMediationTransformationArgs;
import com.pulumi.gcp.eventarc.inputs.PipelineLoggingConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var primary = new Pipeline("primary", PipelineArgs.builder()
            .location("us-central1")
            .pipelineId("some-pipeline")
            .cryptoKeyName("some-key")
            .destinations(PipelineDestinationArgs.builder()
                .httpEndpoint(PipelineDestinationHttpEndpointArgs.builder()
                    .uri("https://10.77.0.0:80/route")
                    .messageBindingTemplate("{\"headers\":{\"new-header-key\": \"new-header-value\"}}")
                    .build())
                .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
                    .networkAttachment("projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment")
                    .build())
                .outputPayloadFormat(PipelineDestinationOutputPayloadFormatArgs.builder()
                    .avro(PipelineDestinationOutputPayloadFormatAvroArgs.builder()
                        .schemaDefinition("{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}")
                        .build())
                    .build())
                .build())
            .inputPayloadFormat(PipelineInputPayloadFormatArgs.builder()
                .avro(PipelineInputPayloadFormatAvroArgs.builder()
                    .schemaDefinition("{\"type\": \"record\", \"name\": \"my_record\", \"fields\": [{\"name\": \"my_field\", \"type\": \"string\"}]}")
                    .build())
                .build())
            .retryPolicy(PipelineRetryPolicyArgs.builder()
                .maxRetryDelay("50s")
                .maxAttempts(2)
                .minRetryDelay("40s")
                .build())
            .mediations(PipelineMediationArgs.builder()
                .transformation(PipelineMediationTransformationArgs.builder()
                    .transformationTemplate("""
{
"id": message.id,
"datacontenttype": "application/json",
"data": "{ \"scrubbed\": \"true\" }"
}
                    """)
                    .build())
                .build())
            .loggingConfig(PipelineLoggingConfigArgs.builder()
                .logSeverity("DEBUG")
                .build())
            .build());

    }
}
Copy
resources:
  primary:
    type: gcp:eventarc:Pipeline
    properties:
      location: us-central1
      pipelineId: some-pipeline
      cryptoKeyName: some-key
      destinations:
        - httpEndpoint:
            uri: https://10.77.0.0:80/route
            messageBindingTemplate: '{"headers":{"new-header-key": "new-header-value"}}'
          networkConfig:
            networkAttachment: projects/my-project-name/regions/us-central1/networkAttachments/some-network-attachment
          outputPayloadFormat:
            avro:
              schemaDefinition: '{"type": "record", "name": "my_record", "fields": [{"name": "my_field", "type": "string"}]}'
      inputPayloadFormat:
        avro:
          schemaDefinition: '{"type": "record", "name": "my_record", "fields": [{"name": "my_field", "type": "string"}]}'
      retryPolicy:
        maxRetryDelay: 50s
        maxAttempts: 2
        minRetryDelay: 40s
      mediations:
        - transformation:
            transformationTemplate: |
              {
              "id": message.id,
              "datacontenttype": "application/json",
              "data": "{ \"scrubbed\": \"true\" }"
              }              
      loggingConfig:
        logSeverity: DEBUG
Copy

Create Pipeline Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Pipeline(name: string, args: PipelineArgs, opts?: CustomResourceOptions);
@overload
def Pipeline(resource_name: str,
             args: PipelineArgs,
             opts: Optional[ResourceOptions] = None)

@overload
def Pipeline(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             destinations: Optional[Sequence[PipelineDestinationArgs]] = None,
             location: Optional[str] = None,
             pipeline_id: Optional[str] = None,
             annotations: Optional[Mapping[str, str]] = None,
             crypto_key_name: Optional[str] = None,
             display_name: Optional[str] = None,
             input_payload_format: Optional[PipelineInputPayloadFormatArgs] = None,
             labels: Optional[Mapping[str, str]] = None,
             logging_config: Optional[PipelineLoggingConfigArgs] = None,
             mediations: Optional[Sequence[PipelineMediationArgs]] = None,
             project: Optional[str] = None,
             retry_policy: Optional[PipelineRetryPolicyArgs] = None)
func NewPipeline(ctx *Context, name string, args PipelineArgs, opts ...ResourceOption) (*Pipeline, error)
public Pipeline(string name, PipelineArgs args, CustomResourceOptions? opts = null)
public Pipeline(String name, PipelineArgs args)
public Pipeline(String name, PipelineArgs args, CustomResourceOptions options)
type: gcp:eventarc:Pipeline
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. PipelineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. PipelineArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. PipelineArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. PipelineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. PipelineArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var gcpPipelineResource = new Gcp.Eventarc.Pipeline("gcpPipelineResource", new()
{
    Destinations = new[]
    {
        new Gcp.Eventarc.Inputs.PipelineDestinationArgs
        {
            AuthenticationConfig = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigArgs
            {
                GoogleOidc = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigGoogleOidcArgs
                {
                    ServiceAccount = "string",
                    Audience = "string",
                },
                OauthToken = new Gcp.Eventarc.Inputs.PipelineDestinationAuthenticationConfigOauthTokenArgs
                {
                    ServiceAccount = "string",
                    Scope = "string",
                },
            },
            HttpEndpoint = new Gcp.Eventarc.Inputs.PipelineDestinationHttpEndpointArgs
            {
                Uri = "string",
                MessageBindingTemplate = "string",
            },
            MessageBus = "string",
            NetworkConfig = new Gcp.Eventarc.Inputs.PipelineDestinationNetworkConfigArgs
            {
                NetworkAttachment = "string",
            },
            OutputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatArgs
            {
                Avro = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatAvroArgs
                {
                    SchemaDefinition = "string",
                },
                Json = null,
                Protobuf = new Gcp.Eventarc.Inputs.PipelineDestinationOutputPayloadFormatProtobufArgs
                {
                    SchemaDefinition = "string",
                },
            },
            Topic = "string",
            Workflow = "string",
        },
    },
    Location = "string",
    PipelineId = "string",
    Annotations = 
    {
        { "string", "string" },
    },
    CryptoKeyName = "string",
    DisplayName = "string",
    InputPayloadFormat = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatArgs
    {
        Avro = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatAvroArgs
        {
            SchemaDefinition = "string",
        },
        Json = null,
        Protobuf = new Gcp.Eventarc.Inputs.PipelineInputPayloadFormatProtobufArgs
        {
            SchemaDefinition = "string",
        },
    },
    Labels = 
    {
        { "string", "string" },
    },
    LoggingConfig = new Gcp.Eventarc.Inputs.PipelineLoggingConfigArgs
    {
        LogSeverity = "string",
    },
    Mediations = new[]
    {
        new Gcp.Eventarc.Inputs.PipelineMediationArgs
        {
            Transformation = new Gcp.Eventarc.Inputs.PipelineMediationTransformationArgs
            {
                TransformationTemplate = "string",
            },
        },
    },
    Project = "string",
    RetryPolicy = new Gcp.Eventarc.Inputs.PipelineRetryPolicyArgs
    {
        MaxAttempts = 0,
        MaxRetryDelay = "string",
        MinRetryDelay = "string",
    },
});
Copy
example, err := eventarc.NewPipeline(ctx, "gcpPipelineResource", &eventarc.PipelineArgs{
	Destinations: eventarc.PipelineDestinationArray{
		&eventarc.PipelineDestinationArgs{
			AuthenticationConfig: &eventarc.PipelineDestinationAuthenticationConfigArgs{
				GoogleOidc: &eventarc.PipelineDestinationAuthenticationConfigGoogleOidcArgs{
					ServiceAccount: pulumi.String("string"),
					Audience:       pulumi.String("string"),
				},
				OauthToken: &eventarc.PipelineDestinationAuthenticationConfigOauthTokenArgs{
					ServiceAccount: pulumi.String("string"),
					Scope:          pulumi.String("string"),
				},
			},
			HttpEndpoint: &eventarc.PipelineDestinationHttpEndpointArgs{
				Uri:                    pulumi.String("string"),
				MessageBindingTemplate: pulumi.String("string"),
			},
			MessageBus: pulumi.String("string"),
			NetworkConfig: &eventarc.PipelineDestinationNetworkConfigArgs{
				NetworkAttachment: pulumi.String("string"),
			},
			OutputPayloadFormat: &eventarc.PipelineDestinationOutputPayloadFormatArgs{
				Avro: &eventarc.PipelineDestinationOutputPayloadFormatAvroArgs{
					SchemaDefinition: pulumi.String("string"),
				},
				Json: &eventarc.PipelineDestinationOutputPayloadFormatJsonArgs{},
				Protobuf: &eventarc.PipelineDestinationOutputPayloadFormatProtobufArgs{
					SchemaDefinition: pulumi.String("string"),
				},
			},
			Topic:    pulumi.String("string"),
			Workflow: pulumi.String("string"),
		},
	},
	Location:   pulumi.String("string"),
	PipelineId: pulumi.String("string"),
	Annotations: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	CryptoKeyName: pulumi.String("string"),
	DisplayName:   pulumi.String("string"),
	InputPayloadFormat: &eventarc.PipelineInputPayloadFormatArgs{
		Avro: &eventarc.PipelineInputPayloadFormatAvroArgs{
			SchemaDefinition: pulumi.String("string"),
		},
		Json: &eventarc.PipelineInputPayloadFormatJsonArgs{},
		Protobuf: &eventarc.PipelineInputPayloadFormatProtobufArgs{
			SchemaDefinition: pulumi.String("string"),
		},
	},
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	LoggingConfig: &eventarc.PipelineLoggingConfigArgs{
		LogSeverity: pulumi.String("string"),
	},
	Mediations: eventarc.PipelineMediationArray{
		&eventarc.PipelineMediationArgs{
			Transformation: &eventarc.PipelineMediationTransformationArgs{
				TransformationTemplate: pulumi.String("string"),
			},
		},
	},
	Project: pulumi.String("string"),
	RetryPolicy: &eventarc.PipelineRetryPolicyArgs{
		MaxAttempts:   pulumi.Int(0),
		MaxRetryDelay: pulumi.String("string"),
		MinRetryDelay: pulumi.String("string"),
	},
})
Copy
var gcpPipelineResource = new com.pulumi.gcp.eventarc.Pipeline("gcpPipelineResource", com.pulumi.gcp.eventarc.PipelineArgs.builder()
    .destinations(PipelineDestinationArgs.builder()
        .authenticationConfig(PipelineDestinationAuthenticationConfigArgs.builder()
            .googleOidc(PipelineDestinationAuthenticationConfigGoogleOidcArgs.builder()
                .serviceAccount("string")
                .audience("string")
                .build())
            .oauthToken(PipelineDestinationAuthenticationConfigOauthTokenArgs.builder()
                .serviceAccount("string")
                .scope("string")
                .build())
            .build())
        .httpEndpoint(PipelineDestinationHttpEndpointArgs.builder()
            .uri("string")
            .messageBindingTemplate("string")
            .build())
        .messageBus("string")
        .networkConfig(PipelineDestinationNetworkConfigArgs.builder()
            .networkAttachment("string")
            .build())
        .outputPayloadFormat(PipelineDestinationOutputPayloadFormatArgs.builder()
            .avro(PipelineDestinationOutputPayloadFormatAvroArgs.builder()
                .schemaDefinition("string")
                .build())
            .json()
            .protobuf(PipelineDestinationOutputPayloadFormatProtobufArgs.builder()
                .schemaDefinition("string")
                .build())
            .build())
        .topic("string")
        .workflow("string")
        .build())
    .location("string")
    .pipelineId("string")
    .annotations(Map.of("string", "string"))
    .cryptoKeyName("string")
    .displayName("string")
    .inputPayloadFormat(PipelineInputPayloadFormatArgs.builder()
        .avro(PipelineInputPayloadFormatAvroArgs.builder()
            .schemaDefinition("string")
            .build())
        .json()
        .protobuf(PipelineInputPayloadFormatProtobufArgs.builder()
            .schemaDefinition("string")
            .build())
        .build())
    .labels(Map.of("string", "string"))
    .loggingConfig(PipelineLoggingConfigArgs.builder()
        .logSeverity("string")
        .build())
    .mediations(PipelineMediationArgs.builder()
        .transformation(PipelineMediationTransformationArgs.builder()
            .transformationTemplate("string")
            .build())
        .build())
    .project("string")
    .retryPolicy(PipelineRetryPolicyArgs.builder()
        .maxAttempts(0)
        .maxRetryDelay("string")
        .minRetryDelay("string")
        .build())
    .build());
Copy
gcp_pipeline_resource = gcp.eventarc.Pipeline("gcpPipelineResource",
    destinations=[{
        "authentication_config": {
            "google_oidc": {
                "service_account": "string",
                "audience": "string",
            },
            "oauth_token": {
                "service_account": "string",
                "scope": "string",
            },
        },
        "http_endpoint": {
            "uri": "string",
            "message_binding_template": "string",
        },
        "message_bus": "string",
        "network_config": {
            "network_attachment": "string",
        },
        "output_payload_format": {
            "avro": {
                "schema_definition": "string",
            },
            "json": {},
            "protobuf": {
                "schema_definition": "string",
            },
        },
        "topic": "string",
        "workflow": "string",
    }],
    location="string",
    pipeline_id="string",
    annotations={
        "string": "string",
    },
    crypto_key_name="string",
    display_name="string",
    input_payload_format={
        "avro": {
            "schema_definition": "string",
        },
        "json": {},
        "protobuf": {
            "schema_definition": "string",
        },
    },
    labels={
        "string": "string",
    },
    logging_config={
        "log_severity": "string",
    },
    mediations=[{
        "transformation": {
            "transformation_template": "string",
        },
    }],
    project="string",
    retry_policy={
        "max_attempts": 0,
        "max_retry_delay": "string",
        "min_retry_delay": "string",
    })
Copy
const gcpPipelineResource = new gcp.eventarc.Pipeline("gcpPipelineResource", {
    destinations: [{
        authenticationConfig: {
            googleOidc: {
                serviceAccount: "string",
                audience: "string",
            },
            oauthToken: {
                serviceAccount: "string",
                scope: "string",
            },
        },
        httpEndpoint: {
            uri: "string",
            messageBindingTemplate: "string",
        },
        messageBus: "string",
        networkConfig: {
            networkAttachment: "string",
        },
        outputPayloadFormat: {
            avro: {
                schemaDefinition: "string",
            },
            json: {},
            protobuf: {
                schemaDefinition: "string",
            },
        },
        topic: "string",
        workflow: "string",
    }],
    location: "string",
    pipelineId: "string",
    annotations: {
        string: "string",
    },
    cryptoKeyName: "string",
    displayName: "string",
    inputPayloadFormat: {
        avro: {
            schemaDefinition: "string",
        },
        json: {},
        protobuf: {
            schemaDefinition: "string",
        },
    },
    labels: {
        string: "string",
    },
    loggingConfig: {
        logSeverity: "string",
    },
    mediations: [{
        transformation: {
            transformationTemplate: "string",
        },
    }],
    project: "string",
    retryPolicy: {
        maxAttempts: 0,
        maxRetryDelay: "string",
        minRetryDelay: "string",
    },
});
Copy
type: gcp:eventarc:Pipeline
properties:
    annotations:
        string: string
    cryptoKeyName: string
    destinations:
        - authenticationConfig:
            googleOidc:
                audience: string
                serviceAccount: string
            oauthToken:
                scope: string
                serviceAccount: string
          httpEndpoint:
            messageBindingTemplate: string
            uri: string
          messageBus: string
          networkConfig:
            networkAttachment: string
          outputPayloadFormat:
            avro:
                schemaDefinition: string
            json: {}
            protobuf:
                schemaDefinition: string
          topic: string
          workflow: string
    displayName: string
    inputPayloadFormat:
        avro:
            schemaDefinition: string
        json: {}
        protobuf:
            schemaDefinition: string
    labels:
        string: string
    location: string
    loggingConfig:
        logSeverity: string
    mediations:
        - transformation:
            transformationTemplate: string
    pipelineId: string
    project: string
    retryPolicy:
        maxAttempts: 0
        maxRetryDelay: string
        minRetryDelay: string
Copy

Pipeline Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Pipeline resource accepts the following input properties:

Destinations This property is required. List<PipelineDestination>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
Location
This property is required.
Changes to this property will trigger replacement.
string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
PipelineId
This property is required.
Changes to this property will trigger replacement.
string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
Annotations Dictionary<string, string>
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.
CryptoKeyName 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}".
DisplayName string
Display name of resource.
InputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
Labels Dictionary<string, 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.
LoggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
Mediations List<PipelineMediation>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
Project Changes to this property will trigger replacement. string
RetryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
Destinations This property is required. []PipelineDestinationArgs
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
Location
This property is required.
Changes to this property will trigger replacement.
string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
PipelineId
This property is required.
Changes to this property will trigger replacement.
string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
Annotations map[string]string
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.
CryptoKeyName 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}".
DisplayName string
Display name of resource.
InputPayloadFormat PipelineInputPayloadFormatArgs
Represents the format of message data.
Labels map[string]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.
LoggingConfig PipelineLoggingConfigArgs
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
Mediations []PipelineMediationArgs
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
Project Changes to this property will trigger replacement. string
RetryPolicy PipelineRetryPolicyArgs
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
destinations This property is required. List<PipelineDestination>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
location
This property is required.
Changes to this property will trigger replacement.
String
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
pipelineId
This property is required.
Changes to this property will trigger replacement.
String
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
annotations Map<String,String>
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.
cryptoKeyName 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}".
displayName String
Display name of resource.
inputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
labels Map<String,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.
loggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations List<PipelineMediation>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
project Changes to this property will trigger replacement. String
retryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
destinations This property is required. PipelineDestination[]
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
location
This property is required.
Changes to this property will trigger replacement.
string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
pipelineId
This property is required.
Changes to this property will trigger replacement.
string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
annotations {[key: string]: string}
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.
cryptoKeyName 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}".
displayName string
Display name of resource.
inputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
labels {[key: string]: 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.
loggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations PipelineMediation[]
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
project Changes to this property will trigger replacement. string
retryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
destinations This property is required. Sequence[PipelineDestinationArgs]
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
location
This property is required.
Changes to this property will trigger replacement.
str
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
pipeline_id
This property is required.
Changes to this property will trigger replacement.
str
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
annotations Mapping[str, str]
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.
crypto_key_name str
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}".
display_name str
Display name of resource.
input_payload_format PipelineInputPayloadFormatArgs
Represents the format of message data.
labels Mapping[str, str]
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.
logging_config PipelineLoggingConfigArgs
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations Sequence[PipelineMediationArgs]
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
project Changes to this property will trigger replacement. str
retry_policy PipelineRetryPolicyArgs
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
destinations This property is required. List<Property Map>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
location
This property is required.
Changes to this property will trigger replacement.
String
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
pipelineId
This property is required.
Changes to this property will trigger replacement.
String
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
annotations Map<String>
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.
cryptoKeyName 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}".
displayName String
Display name of resource.
inputPayloadFormat Property Map
Represents the format of message data.
labels Map<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.
loggingConfig Property Map
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations List<Property Map>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
project Changes to this property will trigger replacement. String
retryPolicy Property Map
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.

Outputs

All input properties are implicitly available as output properties. Additionally, the Pipeline resource produces the following output properties:

CreateTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
EffectiveAnnotations Dictionary<string, string>
EffectiveLabels Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
Id string
The provider-assigned unique ID for this managed resource.
Name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
Uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
UpdateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
CreateTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
EffectiveAnnotations map[string]string
EffectiveLabels map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
Id string
The provider-assigned unique ID for this managed resource.
Name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
Uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
UpdateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
createTime String
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
effectiveAnnotations Map<String,String>
effectiveLabels Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
id String
The provider-assigned unique ID for this managed resource.
name String
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
uid String
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime String
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
createTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
effectiveAnnotations {[key: string]: string}
effectiveLabels {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
id string
The provider-assigned unique ID for this managed resource.
name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
create_time str
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
effective_annotations Mapping[str, str]
effective_labels Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag str
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
id str
The provider-assigned unique ID for this managed resource.
name str
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
uid str
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
update_time str
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
createTime String
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
effectiveAnnotations Map<String>
effectiveLabels Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
id String
The provider-assigned unique ID for this managed resource.
name String
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
uid String
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime String
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

Look up Existing Pipeline Resource

Get an existing Pipeline resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: PipelineState, opts?: CustomResourceOptions): Pipeline
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        annotations: Optional[Mapping[str, str]] = None,
        create_time: Optional[str] = None,
        crypto_key_name: Optional[str] = None,
        destinations: Optional[Sequence[PipelineDestinationArgs]] = None,
        display_name: Optional[str] = None,
        effective_annotations: Optional[Mapping[str, str]] = None,
        effective_labels: Optional[Mapping[str, str]] = None,
        etag: Optional[str] = None,
        input_payload_format: Optional[PipelineInputPayloadFormatArgs] = None,
        labels: Optional[Mapping[str, str]] = None,
        location: Optional[str] = None,
        logging_config: Optional[PipelineLoggingConfigArgs] = None,
        mediations: Optional[Sequence[PipelineMediationArgs]] = None,
        name: Optional[str] = None,
        pipeline_id: Optional[str] = None,
        project: Optional[str] = None,
        pulumi_labels: Optional[Mapping[str, str]] = None,
        retry_policy: Optional[PipelineRetryPolicyArgs] = None,
        uid: Optional[str] = None,
        update_time: Optional[str] = None) -> Pipeline
func GetPipeline(ctx *Context, name string, id IDInput, state *PipelineState, opts ...ResourceOption) (*Pipeline, error)
public static Pipeline Get(string name, Input<string> id, PipelineState? state, CustomResourceOptions? opts = null)
public static Pipeline get(String name, Output<String> id, PipelineState state, CustomResourceOptions options)
resources:  _:    type: gcp:eventarc:Pipeline    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Annotations Dictionary<string, string>
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.
CreateTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
CryptoKeyName 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}".
Destinations List<PipelineDestination>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
DisplayName string
Display name of resource.
EffectiveAnnotations Dictionary<string, string>
EffectiveLabels Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
InputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
Labels Dictionary<string, 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.
Location Changes to this property will trigger replacement. string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
LoggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
Mediations List<PipelineMediation>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
Name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
PipelineId Changes to this property will trigger replacement. string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
Project Changes to this property will trigger replacement. string
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
RetryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
Uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
UpdateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
Annotations map[string]string
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.
CreateTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
CryptoKeyName 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}".
Destinations []PipelineDestinationArgs
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
DisplayName string
Display name of resource.
EffectiveAnnotations map[string]string
EffectiveLabels map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
InputPayloadFormat PipelineInputPayloadFormatArgs
Represents the format of message data.
Labels map[string]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.
Location Changes to this property will trigger replacement. string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
LoggingConfig PipelineLoggingConfigArgs
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
Mediations []PipelineMediationArgs
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
Name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
PipelineId Changes to this property will trigger replacement. string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
Project Changes to this property will trigger replacement. string
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
RetryPolicy PipelineRetryPolicyArgs
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
Uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
UpdateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
annotations Map<String,String>
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.
createTime String
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
cryptoKeyName 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}".
destinations List<PipelineDestination>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
displayName String
Display name of resource.
effectiveAnnotations Map<String,String>
effectiveLabels Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
inputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
labels Map<String,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.
location Changes to this property will trigger replacement. String
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
loggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations List<PipelineMediation>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
name String
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pipelineId Changes to this property will trigger replacement. String
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
project Changes to this property will trigger replacement. String
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
retryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
uid String
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime String
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
annotations {[key: string]: string}
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.
createTime string
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
cryptoKeyName 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}".
destinations PipelineDestination[]
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
displayName string
Display name of resource.
effectiveAnnotations {[key: string]: string}
effectiveLabels {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag string
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
inputPayloadFormat PipelineInputPayloadFormat
Represents the format of message data.
labels {[key: string]: 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.
location Changes to this property will trigger replacement. string
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
loggingConfig PipelineLoggingConfig
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations PipelineMediation[]
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
name string
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pipelineId Changes to this property will trigger replacement. string
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
project Changes to this property will trigger replacement. string
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
retryPolicy PipelineRetryPolicy
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
uid string
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime string
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
annotations Mapping[str, str]
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.
create_time str
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
crypto_key_name str
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}".
destinations Sequence[PipelineDestinationArgs]
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
display_name str
Display name of resource.
effective_annotations Mapping[str, str]
effective_labels Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag str
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
input_payload_format PipelineInputPayloadFormatArgs
Represents the format of message data.
labels Mapping[str, str]
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.
location Changes to this property will trigger replacement. str
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
logging_config PipelineLoggingConfigArgs
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations Sequence[PipelineMediationArgs]
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
name str
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pipeline_id Changes to this property will trigger replacement. str
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
project Changes to this property will trigger replacement. str
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
retry_policy PipelineRetryPolicyArgs
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
uid str
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
update_time str
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
annotations Map<String>
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.
createTime String
The creation time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
cryptoKeyName 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}".
destinations List<Property Map>
List of destinations to which messages will be forwarded. Currently, exactly one destination is supported per Pipeline. Structure is documented below.
displayName String
Display name of resource.
effectiveAnnotations Map<String>
effectiveLabels Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
This checksum is computed by the server based on the value of other fields, and might be sent only on create requests to ensure that the client has an up-to-date value before proceeding.
inputPayloadFormat Property Map
Represents the format of message data.
labels Map<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.
location Changes to this property will trigger replacement. String
Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
loggingConfig Property Map
The configuration for Platform Telemetry logging for Eventarc Advanced resources.
mediations List<Property Map>
List of mediation operations to be performed on the message. Currently, only one Transformation operation is allowed in each Pipeline.
name String
The resource name of the Pipeline. Must be unique within the location of the project and must be in projects/{project}/locations/{location}/pipelines/{pipeline} format.
pipelineId Changes to this property will trigger replacement. String
The user-provided ID to be assigned to the Pipeline. It should match the format ^a-z?$.
project Changes to this property will trigger replacement. String
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
retryPolicy Property Map
The retry policy configuration for the Pipeline. The pipeline exponentially backs off in case the destination is non responsive or returns a retryable error code. The default semantics are as follows: The backoff starts with a 5 second delay and doubles the delay after each failed attempt (10 seconds, 20 seconds, 40 seconds, etc.). The delay is capped at 60 seconds by default. Please note that if you set the min_retry_delay and max_retry_delay fields to the same value this will make the duration between retries constant.
uid String
Server-assigned unique identifier for the Pipeline. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.
updateTime String
The last-modified time. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

Supporting Types

PipelineDestination
, PipelineDestinationArgs

AuthenticationConfig PipelineDestinationAuthenticationConfig
Represents a config used to authenticate message requests. Structure is documented below.
HttpEndpoint PipelineDestinationHttpEndpoint
Represents a HTTP endpoint destination. Structure is documented below.
MessageBus string
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}
NetworkConfig PipelineDestinationNetworkConfig
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
OutputPayloadFormat PipelineDestinationOutputPayloadFormat
Represents the format of message data. Structure is documented below.
Topic string
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
Workflow 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}
AuthenticationConfig PipelineDestinationAuthenticationConfig
Represents a config used to authenticate message requests. Structure is documented below.
HttpEndpoint PipelineDestinationHttpEndpoint
Represents a HTTP endpoint destination. Structure is documented below.
MessageBus string
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}
NetworkConfig PipelineDestinationNetworkConfig
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
OutputPayloadFormat PipelineDestinationOutputPayloadFormat
Represents the format of message data. Structure is documented below.
Topic string
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
Workflow 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}
authenticationConfig PipelineDestinationAuthenticationConfig
Represents a config used to authenticate message requests. Structure is documented below.
httpEndpoint PipelineDestinationHttpEndpoint
Represents a HTTP endpoint destination. Structure is documented below.
messageBus String
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}
networkConfig PipelineDestinationNetworkConfig
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
outputPayloadFormat PipelineDestinationOutputPayloadFormat
Represents the format of message data. Structure is documented below.
topic String
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
workflow 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}
authenticationConfig PipelineDestinationAuthenticationConfig
Represents a config used to authenticate message requests. Structure is documented below.
httpEndpoint PipelineDestinationHttpEndpoint
Represents a HTTP endpoint destination. Structure is documented below.
messageBus string
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}
networkConfig PipelineDestinationNetworkConfig
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
outputPayloadFormat PipelineDestinationOutputPayloadFormat
Represents the format of message data. Structure is documented below.
topic string
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
workflow 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}
authentication_config PipelineDestinationAuthenticationConfig
Represents a config used to authenticate message requests. Structure is documented below.
http_endpoint PipelineDestinationHttpEndpoint
Represents a HTTP endpoint destination. Structure is documented below.
message_bus str
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}
network_config PipelineDestinationNetworkConfig
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
output_payload_format PipelineDestinationOutputPayloadFormat
Represents the format of message data. Structure is documented below.
topic str
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
workflow str
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}
authenticationConfig Property Map
Represents a config used to authenticate message requests. Structure is documented below.
httpEndpoint Property Map
Represents a HTTP endpoint destination. Structure is documented below.
messageBus String
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}
networkConfig Property Map
Represents a network config to be used for destination resolution and connectivity. Structure is documented below.
outputPayloadFormat Property Map
Represents the format of message data. Structure is documented below.
topic String
The resource name of the Pub/Sub topic to which events should be published. Format: projects/{project}/locations/{location}/topics/{topic}
workflow 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}

PipelineDestinationAuthenticationConfig
, PipelineDestinationAuthenticationConfigArgs

GoogleOidc PipelineDestinationAuthenticationConfigGoogleOidc
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
OauthToken PipelineDestinationAuthenticationConfigOauthToken
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.
GoogleOidc PipelineDestinationAuthenticationConfigGoogleOidc
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
OauthToken PipelineDestinationAuthenticationConfigOauthToken
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.
googleOidc PipelineDestinationAuthenticationConfigGoogleOidc
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
oauthToken PipelineDestinationAuthenticationConfigOauthToken
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.
googleOidc PipelineDestinationAuthenticationConfigGoogleOidc
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
oauthToken PipelineDestinationAuthenticationConfigOauthToken
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.
google_oidc PipelineDestinationAuthenticationConfigGoogleOidc
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
oauth_token PipelineDestinationAuthenticationConfigOauthToken
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.
googleOidc Property Map
Represents a config used to authenticate with a Google OIDC token using a GCP service account. Use this authentication method to invoke your Cloud Run and Cloud Functions destinations or HTTP endpoints that support Google OIDC. Structure is documented below.
oauthToken Property Map
Contains information needed for generating an OAuth token. This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com. Structure is documented below.

PipelineDestinationAuthenticationConfigGoogleOidc
, PipelineDestinationAuthenticationConfigGoogleOidcArgs

ServiceAccount This property is required. 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.
Audience string
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.
ServiceAccount This property is required. 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.
Audience string
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.
serviceAccount This property is required. 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.
audience String
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.
serviceAccount This property is required. 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.
audience string
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.
service_account This property is required. str
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.
audience str
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.
serviceAccount This property is required. 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.
audience String
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.

PipelineDestinationAuthenticationConfigOauthToken
, PipelineDestinationAuthenticationConfigOauthTokenArgs

ServiceAccount This property is required. string
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
Scope string
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
ServiceAccount This property is required. string
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
Scope string
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
serviceAccount This property is required. String
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
scope String
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
serviceAccount This property is required. string
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
scope string
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
service_account This property is required. str
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
scope str
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.
serviceAccount This property is required. String
Service account email used to generate the OAuth 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 Pipeline to create OAuth2 tokens for authenticated requests.
scope String
OAuth scope to be used for generating OAuth access token. If not specified, "https://www.googleapis.com/auth/cloud-platform" will be used.

PipelineDestinationHttpEndpoint
, PipelineDestinationHttpEndpointArgs

Uri This property is required. 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.
MessageBindingTemplate string

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.

Uri This property is required. 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.
MessageBindingTemplate string

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.

uri This property is required. 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.
messageBindingTemplate String

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.

uri This property is required. 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.
messageBindingTemplate string

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.

uri This property is required. str
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.
message_binding_template str

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.

uri This property is required. 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.
messageBindingTemplate String

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.

PipelineDestinationNetworkConfig
, PipelineDestinationNetworkConfigArgs

NetworkAttachment This property is required. string
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}
NetworkAttachment This property is required. string
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}
networkAttachment This property is required. String
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}
networkAttachment This property is required. string
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}
network_attachment This property is required. str
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}
networkAttachment This property is required. String
Name of the NetworkAttachment that allows access to the consumer VPC. Format: projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}

PipelineDestinationOutputPayloadFormat
, PipelineDestinationOutputPayloadFormatArgs

Avro PipelineDestinationOutputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
Json PipelineDestinationOutputPayloadFormatJson
The format of a JSON message payload.
Protobuf PipelineDestinationOutputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
Avro PipelineDestinationOutputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
Json PipelineDestinationOutputPayloadFormatJson
The format of a JSON message payload.
Protobuf PipelineDestinationOutputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineDestinationOutputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineDestinationOutputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineDestinationOutputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineDestinationOutputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineDestinationOutputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineDestinationOutputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineDestinationOutputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineDestinationOutputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineDestinationOutputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro Property Map
The format of an AVRO message payload. Structure is documented below.
json Property Map
The format of a JSON message payload.
protobuf Property Map
The format of a Protobuf message payload. Structure is documented below.

PipelineDestinationOutputPayloadFormatAvro
, PipelineDestinationOutputPayloadFormatAvroArgs

SchemaDefinition string
The entire schema definition is stored in this field.
SchemaDefinition string
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.
schemaDefinition string
The entire schema definition is stored in this field.
schema_definition str
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.

PipelineDestinationOutputPayloadFormatProtobuf
, PipelineDestinationOutputPayloadFormatProtobufArgs

SchemaDefinition string
The entire schema definition is stored in this field.
SchemaDefinition string
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.
schemaDefinition string
The entire schema definition is stored in this field.
schema_definition str
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.

PipelineInputPayloadFormat
, PipelineInputPayloadFormatArgs

Avro PipelineInputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
Json PipelineInputPayloadFormatJson
The format of a JSON message payload.
Protobuf PipelineInputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
Avro PipelineInputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
Json PipelineInputPayloadFormatJson
The format of a JSON message payload.
Protobuf PipelineInputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineInputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineInputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineInputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineInputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineInputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineInputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro PipelineInputPayloadFormatAvro
The format of an AVRO message payload. Structure is documented below.
json PipelineInputPayloadFormatJson
The format of a JSON message payload.
protobuf PipelineInputPayloadFormatProtobuf
The format of a Protobuf message payload. Structure is documented below.
avro Property Map
The format of an AVRO message payload. Structure is documented below.
json Property Map
The format of a JSON message payload.
protobuf Property Map
The format of a Protobuf message payload. Structure is documented below.

PipelineInputPayloadFormatAvro
, PipelineInputPayloadFormatAvroArgs

SchemaDefinition string
The entire schema definition is stored in this field.
SchemaDefinition string
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.
schemaDefinition string
The entire schema definition is stored in this field.
schema_definition str
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.

PipelineInputPayloadFormatProtobuf
, PipelineInputPayloadFormatProtobufArgs

SchemaDefinition string
The entire schema definition is stored in this field.
SchemaDefinition string
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.
schemaDefinition string
The entire schema definition is stored in this field.
schema_definition str
The entire schema definition is stored in this field.
schemaDefinition String
The entire schema definition is stored in this field.

PipelineLoggingConfig
, PipelineLoggingConfigArgs

LogSeverity string
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
LogSeverity string
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
logSeverity String
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
logSeverity string
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
log_severity str
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
logSeverity String
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 are: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.

PipelineMediation
, PipelineMediationArgs

Transformation PipelineMediationTransformation
Transformation defines the way to transform an incoming message. Structure is documented below.
Transformation PipelineMediationTransformation
Transformation defines the way to transform an incoming message. Structure is documented below.
transformation PipelineMediationTransformation
Transformation defines the way to transform an incoming message. Structure is documented below.
transformation PipelineMediationTransformation
Transformation defines the way to transform an incoming message. Structure is documented below.
transformation PipelineMediationTransformation
Transformation defines the way to transform an incoming message. Structure is documented below.
transformation Property Map
Transformation defines the way to transform an incoming message. Structure is documented below.

PipelineMediationTransformation
, PipelineMediationTransformationArgs

TransformationTemplate string

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 toJsonString function.
TransformationTemplate string

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 toJsonString function.
transformationTemplate String

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 toJsonString function.
transformationTemplate string

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 toJsonString function.
transformation_template str

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 toJsonString function.
transformationTemplate String

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 toJsonString function.

PipelineRetryPolicy
, PipelineRetryPolicyArgs

MaxAttempts int
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
MaxRetryDelay string
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
MinRetryDelay string
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.
MaxAttempts int
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
MaxRetryDelay string
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
MinRetryDelay string
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.
maxAttempts Integer
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
maxRetryDelay String
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
minRetryDelay String
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.
maxAttempts number
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
maxRetryDelay string
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
minRetryDelay string
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.
max_attempts int
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
max_retry_delay str
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
min_retry_delay str
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.
maxAttempts Number
The maximum number of delivery attempts for any message. The value must be between 1 and 100. The default value for this field is 5.
maxRetryDelay String
The maximum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 60.
minRetryDelay String
The minimum amount of seconds to wait between retry attempts. The value must be between 1 and 600. The default value for this field is 5.

Import

Pipeline can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/pipelines/{{pipeline_id}}

  • {{project}}/{{location}}/{{pipeline_id}}

  • {{location}}/{{pipeline_id}}

When using the pulumi import command, Pipeline can be imported using one of the formats above. For example:

$ pulumi import gcp:eventarc/pipeline:Pipeline default projects/{{project}}/locations/{{location}}/pipelines/{{pipeline_id}}
Copy
$ pulumi import gcp:eventarc/pipeline:Pipeline default {{project}}/{{location}}/{{pipeline_id}}
Copy
$ pulumi import gcp:eventarc/pipeline:Pipeline default {{location}}/{{pipeline_id}}
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
Google Cloud (GCP) Classic pulumi/pulumi-gcp
License
Apache-2.0
Notes
This Pulumi package is based on the google-beta Terraform Provider.