@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
1,147 lines (1,146 loc) • 45.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Configuration for an automated build in response to source repository changes.
*
* To get more information about Trigger, see:
*
* * [API documentation](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.triggers)
* * How-to Guides
* * [Automating builds using build triggers](https://cloud.google.com/cloud-build/docs/running-builds/automate-builds)
*
* > **Note:** You can retrieve the email of the Cloud Build Service Account used in jobs by using the `gcp.projects.ServiceIdentity` resource.
*
* ## Example Usage
*
* ### Cloudbuild Trigger Filename
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const filename_trigger = new gcp.cloudbuild.Trigger("filename-trigger", {
* location: "us-central1",
* triggerTemplate: {
* branchName: "main",
* repoName: "my-repo",
* },
* substitutions: {
* _FOO: "bar",
* _BAZ: "qux",
* },
* filename: "cloudbuild.yaml",
* });
* ```
* ### Cloudbuild Trigger Build
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const build_trigger = new gcp.cloudbuild.Trigger("build-trigger", {
* name: "my-trigger",
* location: "global",
* triggerTemplate: {
* branchName: "main",
* repoName: "my-repo",
* },
* build: {
* steps: [
* {
* name: "gcr.io/cloud-builders/gsutil",
* args: [
* "cp",
* "gs://mybucket/remotefile.zip",
* "localfile.zip",
* ],
* timeout: "120s",
* secretEnvs: ["MY_SECRET"],
* },
* {
* name: "ubuntu",
* script: "echo hello",
* },
* ],
* source: {
* storageSource: {
* bucket: "mybucket",
* object: "source_code.tar.gz",
* },
* },
* tags: [
* "build",
* "newFeature",
* ],
* substitutions: {
* _FOO: "bar",
* _BAZ: "qux",
* },
* queueTtl: "20s",
* logsBucket: "gs://mybucket/logs",
* secrets: [{
* kmsKeyName: "projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name",
* secretEnv: {
* PASSWORD: "ZW5jcnlwdGVkLXBhc3N3b3JkCg==",
* },
* }],
* availableSecrets: {
* secretManagers: [{
* env: "MY_SECRET",
* versionName: "projects/myProject/secrets/mySecret/versions/latest",
* }],
* },
* artifacts: {
* images: ["gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA"],
* objects: {
* location: "gs://bucket/path/to/somewhere/",
* paths: ["path"],
* },
* npmPackages: [{
* packagePath: "package.json",
* repository: "https://us-west1-npm.pkg.dev/myProject/quickstart-nodejs-repo",
* }],
* pythonPackages: [{
* paths: ["dist/*"],
* repository: "https://us-west1-python.pkg.dev/myProject/quickstart-python-repo",
* }],
* mavenArtifacts: [{
* repository: "https://us-west1-maven.pkg.dev/myProject/quickstart-java-repo",
* path: "/workspace/my-app/target/my-app-1.0.SNAPSHOT.jar",
* artifactId: "my-app",
* groupId: "com.mycompany.app",
* version: "1.0",
* }],
* },
* options: {
* sourceProvenanceHashes: ["MD5"],
* requestedVerifyOption: "VERIFIED",
* machineType: "N1_HIGHCPU_8",
* diskSizeGb: 100,
* substitutionOption: "ALLOW_LOOSE",
* dynamicSubstitutions: true,
* logStreamingOption: "STREAM_OFF",
* workerPool: "pool",
* logging: "LEGACY",
* envs: ["ekey = evalue"],
* secretEnvs: ["secretenv = svalue"],
* volumes: [{
* name: "v1",
* path: "v1",
* }],
* },
* },
* });
* ```
* ### Cloudbuild Trigger Service Account
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const project = gcp.organizations.getProject({});
* const cloudbuildServiceAccount = new gcp.serviceaccount.Account("cloudbuild_service_account", {accountId: "cloud-sa"});
* const actAs = new gcp.projects.IAMMember("act_as", {
* project: project.then(project => project.projectId),
* role: "roles/iam.serviceAccountUser",
* member: pulumi.interpolate`serviceAccount:${cloudbuildServiceAccount.email}`,
* });
* const logsWriter = new gcp.projects.IAMMember("logs_writer", {
* project: project.then(project => project.projectId),
* role: "roles/logging.logWriter",
* member: pulumi.interpolate`serviceAccount:${cloudbuildServiceAccount.email}`,
* });
* const service_account_trigger = new gcp.cloudbuild.Trigger("service-account-trigger", {
* triggerTemplate: {
* branchName: "main",
* repoName: "my-repo",
* },
* serviceAccount: cloudbuildServiceAccount.id,
* filename: "cloudbuild.yaml",
* }, {
* dependsOn: [
* actAs,
* logsWriter,
* ],
* });
* ```
* ### Cloudbuild Trigger Include Build Logs
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const include_build_logs_trigger = new gcp.cloudbuild.Trigger("include-build-logs-trigger", {
* location: "us-central1",
* name: "include-build-logs-trigger",
* filename: "cloudbuild.yaml",
* github: {
* owner: "hashicorp",
* name: "terraform-provider-google-beta",
* push: {
* branch: "^main$",
* },
* },
* includeBuildLogs: "INCLUDE_BUILD_LOGS_WITH_STATUS",
* });
* ```
* ### Cloudbuild Trigger Pubsub Config
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const mytopic = new gcp.pubsub.Topic("mytopic", {name: "my-topic"});
* const pubsub_config_trigger = new gcp.cloudbuild.Trigger("pubsub-config-trigger", {
* location: "us-central1",
* name: "pubsub-trigger",
* description: "acceptance test example pubsub build trigger",
* pubsubConfig: {
* topic: mytopic.id,
* },
* sourceToBuild: {
* uri: "https://hashicorp/terraform-provider-google-beta",
* ref: "refs/heads/main",
* repoType: "GITHUB",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* uri: "https://hashicorp/terraform-provider-google-beta",
* revision: "refs/heads/main",
* repoType: "GITHUB",
* },
* substitutions: {
* _ACTION: "$(body.message.data.action)",
* },
* filter: "_ACTION.matches('INSERT')",
* });
* ```
* ### Cloudbuild Trigger Webhook Config
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const webhookTriggerSecretKey = new gcp.secretmanager.Secret("webhook_trigger_secret_key", {
* secretId: "webhook-trigger-secret-key",
* replication: {
* userManaged: {
* replicas: [{
* location: "us-central1",
* }],
* },
* },
* });
* const webhookTriggerSecretKeyData = new gcp.secretmanager.SecretVersion("webhook_trigger_secret_key_data", {
* secret: webhookTriggerSecretKey.id,
* secretData: "secretkeygoeshere",
* });
* const project = gcp.organizations.getProject({});
* const secretAccessor = project.then(project => gcp.organizations.getIAMPolicy({
* bindings: [{
* role: "roles/secretmanager.secretAccessor",
* members: [`serviceAccount:service-${project.number}@gcp-sa-cloudbuild.iam.gserviceaccount.com`],
* }],
* }));
* const policy = new gcp.secretmanager.SecretIamPolicy("policy", {
* project: webhookTriggerSecretKey.project,
* secretId: webhookTriggerSecretKey.secretId,
* policyData: secretAccessor.then(secretAccessor => secretAccessor.policyData),
* });
* const webhook_config_trigger = new gcp.cloudbuild.Trigger("webhook-config-trigger", {
* name: "webhook-trigger",
* description: "acceptance test example webhook build trigger",
* webhookConfig: {
* secret: webhookTriggerSecretKeyData.id,
* },
* sourceToBuild: {
* uri: "https://hashicorp/terraform-provider-google-beta",
* ref: "refs/heads/main",
* repoType: "GITHUB",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* uri: "https://hashicorp/terraform-provider-google-beta",
* revision: "refs/heads/main",
* repoType: "GITHUB",
* },
* });
* ```
* ### Cloudbuild Trigger Manual
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const manual_trigger = new gcp.cloudbuild.Trigger("manual-trigger", {
* name: "manual-trigger",
* sourceToBuild: {
* uri: "https://hashicorp/terraform-provider-google-beta",
* ref: "refs/heads/main",
* repoType: "GITHUB",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* uri: "https://hashicorp/terraform-provider-google-beta",
* revision: "refs/heads/main",
* repoType: "GITHUB",
* },
* approvalConfig: {
* approvalRequired: true,
* },
* });
* ```
* ### Cloudbuild Trigger Manual Github Enterprise
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const manual_ghe_trigger = new gcp.cloudbuild.Trigger("manual-ghe-trigger", {
* name: "",
* sourceToBuild: {
* uri: "https://hashicorp/terraform-provider-google-beta",
* ref: "refs/heads/main",
* repoType: "GITHUB",
* githubEnterpriseConfig: "projects/myProject/locations/global/githubEnterpriseConfigs/configID",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* uri: "https://hashicorp/terraform-provider-google-beta",
* revision: "refs/heads/main",
* repoType: "GITHUB",
* githubEnterpriseConfig: "projects/myProject/locations/global/githubEnterpriseConfigs/configID",
* },
* });
* ```
* ### Cloudbuild Trigger Manual Bitbucket Server
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const manual_bitbucket_trigger = new gcp.cloudbuild.Trigger("manual-bitbucket-trigger", {
* name: "terraform-manual-bbs-trigger",
* sourceToBuild: {
* uri: "https://bbs.com/scm/stag/test-repo.git",
* ref: "refs/heads/main",
* repoType: "BITBUCKET_SERVER",
* bitbucketServerConfig: "projects/myProject/locations/global/bitbucketServerConfigs/configID",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* uri: "https://bbs.com/scm/stag/test-repo.git",
* revision: "refs/heads/main",
* repoType: "BITBUCKET_SERVER",
* bitbucketServerConfig: "projects/myProject/locations/global/bitbucketServerConfigs/configID",
* },
* });
* ```
* ### Cloudbuild Trigger Repo
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const my_connection = new gcp.cloudbuildv2.Connection("my-connection", {
* location: "us-central1",
* name: "my-connection",
* githubConfig: {
* appInstallationId: 123123,
* authorizerCredential: {
* oauthTokenSecretVersion: "projects/my-project/secrets/github-pat-secret/versions/latest",
* },
* },
* });
* const my_repository = new gcp.cloudbuildv2.Repository("my-repository", {
* name: "my-repo",
* parentConnection: my_connection.id,
* remoteUri: "https://github.com/myuser/my-repo.git",
* });
* const repo_trigger = new gcp.cloudbuild.Trigger("repo-trigger", {
* location: "us-central1",
* repositoryEventConfig: {
* repository: my_repository.id,
* push: {
* branch: "feature-.*",
* },
* },
* filename: "cloudbuild.yaml",
* });
* ```
* ### Cloudbuild Trigger Bitbucket Server Push
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const bbs_push_trigger = new gcp.cloudbuild.Trigger("bbs-push-trigger", {
* name: "bbs-push-trigger",
* location: "us-central1",
* bitbucketServerTriggerConfig: {
* repoSlug: "bbs-push-trigger",
* projectKey: "STAG",
* bitbucketServerConfigResource: "projects/123456789/locations/us-central1/bitbucketServerConfigs/myBitbucketConfig",
* push: {
* tag: "^0.1.*",
* invertRegex: true,
* },
* },
* filename: "cloudbuild.yaml",
* });
* ```
* ### Cloudbuild Trigger Bitbucket Server Pull Request
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const bbs_pull_request_trigger = new gcp.cloudbuild.Trigger("bbs-pull-request-trigger", {
* name: "ghe-trigger",
* location: "us-central1",
* bitbucketServerTriggerConfig: {
* repoSlug: "terraform-provider-google",
* projectKey: "STAG",
* bitbucketServerConfigResource: "projects/123456789/locations/us-central1/bitbucketServerConfigs/myBitbucketConfig",
* pullRequest: {
* branch: "^master$",
* invertRegex: false,
* commentControl: "COMMENTS_ENABLED",
* },
* },
* filename: "cloudbuild.yaml",
* });
* ```
* ### Cloudbuild Trigger Github Enterprise
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const ghe_trigger = new gcp.cloudbuild.Trigger("ghe-trigger", {
* name: "ghe-trigger",
* location: "us-central1",
* github: {
* owner: "hashicorp",
* name: "terraform-provider-google",
* push: {
* branch: "^main$",
* },
* enterpriseConfigResourceName: "projects/123456789/locations/us-central1/githubEnterpriseConfigs/configID",
* },
* filename: "cloudbuild.yaml",
* });
* ```
* ### Cloudbuild Trigger Allow Failure
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const allow_failure_trigger = new gcp.cloudbuild.Trigger("allow-failure-trigger", {
* name: "my-trigger",
* location: "global",
* triggerTemplate: {
* branchName: "main",
* repoName: "my-repo",
* },
* build: {
* steps: [{
* name: "ubuntu",
* args: [
* "-c",
* "exit 1",
* ],
* allowFailure: true,
* }],
* source: {
* storageSource: {
* bucket: "mybucket",
* object: "source_code.tar.gz",
* },
* },
* tags: [
* "build",
* "newFeature",
* ],
* substitutions: {
* _FOO: "bar",
* _BAZ: "qux",
* },
* queueTtl: "20s",
* logsBucket: "gs://mybucket/logs",
* secrets: [{
* kmsKeyName: "projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name",
* secretEnv: {
* PASSWORD: "ZW5jcnlwdGVkLXBhc3N3b3JkCg==",
* },
* }],
* availableSecrets: {
* secretManagers: [{
* env: "MY_SECRET",
* versionName: "projects/myProject/secrets/mySecret/versions/latest",
* }],
* },
* artifacts: {
* images: ["gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA"],
* objects: {
* location: "gs://bucket/path/to/somewhere/",
* paths: ["path"],
* },
* },
* options: {
* sourceProvenanceHashes: ["MD5"],
* requestedVerifyOption: "VERIFIED",
* machineType: "N1_HIGHCPU_8",
* diskSizeGb: 100,
* substitutionOption: "ALLOW_LOOSE",
* dynamicSubstitutions: true,
* logStreamingOption: "STREAM_OFF",
* workerPool: "pool",
* logging: "LEGACY",
* envs: ["ekey = evalue"],
* secretEnvs: ["secretenv = svalue"],
* volumes: [{
* name: "v1",
* path: "v1",
* }],
* },
* },
* });
* ```
* ### Cloudbuild Trigger Allow Exit Codes
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const allow_exit_codes_trigger = new gcp.cloudbuild.Trigger("allow-exit-codes-trigger", {
* name: "my-trigger",
* location: "global",
* triggerTemplate: {
* branchName: "main",
* repoName: "my-repo",
* },
* build: {
* steps: [{
* name: "ubuntu",
* args: [
* "-c",
* "exit 1",
* ],
* allowExitCodes: [
* 1,
* 3,
* ],
* }],
* source: {
* storageSource: {
* bucket: "mybucket",
* object: "source_code.tar.gz",
* },
* },
* tags: [
* "build",
* "newFeature",
* ],
* substitutions: {
* _FOO: "bar",
* _BAZ: "qux",
* },
* queueTtl: "20s",
* logsBucket: "gs://mybucket/logs",
* secrets: [{
* kmsKeyName: "projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name",
* secretEnv: {
* PASSWORD: "ZW5jcnlwdGVkLXBhc3N3b3JkCg==",
* },
* }],
* availableSecrets: {
* secretManagers: [{
* env: "MY_SECRET",
* versionName: "projects/myProject/secrets/mySecret/versions/latest",
* }],
* },
* artifacts: {
* images: ["gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA"],
* objects: {
* location: "gs://bucket/path/to/somewhere/",
* paths: ["path"],
* },
* },
* options: {
* sourceProvenanceHashes: ["MD5"],
* requestedVerifyOption: "VERIFIED",
* machineType: "N1_HIGHCPU_8",
* diskSizeGb: 100,
* substitutionOption: "ALLOW_LOOSE",
* dynamicSubstitutions: true,
* logStreamingOption: "STREAM_OFF",
* workerPool: "pool",
* logging: "LEGACY",
* envs: ["ekey = evalue"],
* secretEnvs: ["secretenv = svalue"],
* volumes: [{
* name: "v1",
* path: "v1",
* }],
* },
* },
* });
* ```
* ### Cloudbuild Trigger Pubsub With Repo
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const my_connection = new gcp.cloudbuildv2.Connection("my-connection", {
* location: "us-central1",
* name: "my-connection",
* githubConfig: {
* appInstallationId: 123123,
* authorizerCredential: {
* oauthTokenSecretVersion: "projects/my-project/secrets/github-pat-secret/versions/latest",
* },
* },
* });
* const my_repository = new gcp.cloudbuildv2.Repository("my-repository", {
* name: "my-repo",
* parentConnection: my_connection.id,
* remoteUri: "https://github.com/myuser/my-repo.git",
* });
* const mytopic = new gcp.pubsub.Topic("mytopic", {name: "my-topic"});
* const pubsub_with_repo_trigger = new gcp.cloudbuild.Trigger("pubsub-with-repo-trigger", {
* name: "pubsub-with-repo-trigger",
* location: "us-central1",
* pubsubConfig: {
* topic: mytopic.id,
* },
* sourceToBuild: {
* repository: my_repository.id,
* ref: "refs/heads/main",
* repoType: "GITHUB",
* },
* gitFileSource: {
* path: "cloudbuild.yaml",
* repository: my_repository.id,
* revision: "refs/heads/main",
* repoType: "GITHUB",
* },
* });
* ```
*
* ## Import
*
* Trigger can be imported using any of these accepted formats:
*
* * `projects/{{project}}/locations/{{location}}/triggers/{{trigger_id}}`
*
* * `projects/{{project}}/triggers/{{trigger_id}}`
*
* * `{{project}}/{{trigger_id}}`
*
* * `{{trigger_id}}`
*
* When using the `pulumi import` command, Trigger can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:cloudbuild/trigger:Trigger default projects/{{project}}/locations/{{location}}/triggers/{{trigger_id}}
* ```
*
* ```sh
* $ pulumi import gcp:cloudbuild/trigger:Trigger default projects/{{project}}/triggers/{{trigger_id}}
* ```
*
* ```sh
* $ pulumi import gcp:cloudbuild/trigger:Trigger default {{project}}/{{trigger_id}}
* ```
*
* ```sh
* $ pulumi import gcp:cloudbuild/trigger:Trigger default {{trigger_id}}
* ```
*/
export declare class Trigger extends pulumi.CustomResource {
/**
* Get an existing Trigger resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TriggerState, opts?: pulumi.CustomResourceOptions): Trigger;
/**
* Returns true if the given object is an instance of Trigger. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Trigger;
/**
* Configuration for manual approval to start a build invocation of this BuildTrigger.
* Builds created by this trigger will require approval before they execute.
* Any user with a Cloud Build Approver role for the project can approve a build.
* Structure is documented below.
*/
readonly approvalConfig: pulumi.Output<outputs.cloudbuild.TriggerApprovalConfig>;
/**
* BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.
* Structure is documented below.
*/
readonly bitbucketServerTriggerConfig: pulumi.Output<outputs.cloudbuild.TriggerBitbucketServerTriggerConfig | undefined>;
/**
* Contents of the build template. Either a filename or build template must be provided.
* Structure is documented below.
*/
readonly build: pulumi.Output<outputs.cloudbuild.TriggerBuild | undefined>;
/**
* Time when the trigger was created.
*/
readonly createTime: pulumi.Output<string>;
/**
* Human-readable description of the trigger.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Whether the trigger is disabled or not. If true, the trigger will never result in a build.
*/
readonly disabled: pulumi.Output<boolean | undefined>;
/**
* Path, from the source root, to a file whose contents is used for the template.
* Either a filename or build template must be provided. Set this only when using triggerTemplate or github.
* When using Pub/Sub, Webhook or Manual set the file name using gitFileSource instead.
*/
readonly filename: pulumi.Output<string | undefined>;
/**
* A Common Expression Language string. Used only with Pub/Sub and Webhook.
*/
readonly filter: pulumi.Output<string | undefined>;
/**
* The file source describing the local or remote Build template.
* Structure is documented below.
*/
readonly gitFileSource: pulumi.Output<outputs.cloudbuild.TriggerGitFileSource | undefined>;
/**
* Describes the configuration of a trigger that creates a build whenever a GitHub event is received.
* One of `triggerTemplate`, `github`, `pubsubConfig` or `webhookConfig` must be provided.
* Structure is documented below.
*/
readonly github: pulumi.Output<outputs.cloudbuild.TriggerGithub | undefined>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If ignoredFiles and changed files are both empty, then they are not
* used to determine whether or not to trigger a build.
* If ignoredFiles is not empty, then we ignore any files that match any
* of the ignoredFile globs. If the change has no files that are outside
* of the ignoredFiles globs, then we do not trigger a build.
*/
readonly ignoredFiles: pulumi.Output<string[] | undefined>;
/**
* Build logs will be sent back to GitHub as part of the checkrun
* result. Values can be INCLUDE_BUILD_LOGS_UNSPECIFIED or
* INCLUDE_BUILD_LOGS_WITH_STATUS
* Possible values are: `INCLUDE_BUILD_LOGS_UNSPECIFIED`, `INCLUDE_BUILD_LOGS_WITH_STATUS`.
*/
readonly includeBuildLogs: pulumi.Output<string | undefined>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is empty, then as far as this filter is concerned, we
* should trigger the build.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is not empty, then we make sure that at least one of
* those files matches a includedFiles glob. If not, then we do not trigger
* a build.
*/
readonly includedFiles: pulumi.Output<string[] | undefined>;
/**
* The [Cloud Build location](https://cloud.google.com/build/docs/locations) for the trigger.
* If not specified, "global" is used.
*/
readonly location: pulumi.Output<string | undefined>;
/**
* Name of the trigger. Must be unique within the project.
*/
readonly name: pulumi.Output<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
readonly project: pulumi.Output<string>;
/**
* PubsubConfig describes the configuration of a trigger that creates
* a build whenever a Pub/Sub message is published.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
readonly pubsubConfig: pulumi.Output<outputs.cloudbuild.TriggerPubsubConfig | undefined>;
/**
* The configuration of a trigger that creates a build whenever an event from Repo API is received.
* Structure is documented below.
*/
readonly repositoryEventConfig: pulumi.Output<outputs.cloudbuild.TriggerRepositoryEventConfig | undefined>;
/**
* The service account used for all user-controlled operations including
* triggers.patch, triggers.run, builds.create, and builds.cancel.
* If no service account is set, then the standard Cloud Build service account
* ([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.
* Format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}
*/
readonly serviceAccount: pulumi.Output<string | undefined>;
/**
* The repo and ref of the repository from which to build.
* This field is used only for those triggers that do not respond to SCM events.
* Triggers that respond to such events build source at whatever commit caused the event.
* This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
readonly sourceToBuild: pulumi.Output<outputs.cloudbuild.TriggerSourceToBuild | undefined>;
/**
* Substitutions data for Build resource.
*/
readonly substitutions: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Tags for annotation of a BuildTrigger
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* The unique identifier for the trigger.
*/
readonly triggerId: pulumi.Output<string>;
/**
* Template describing the types of source changes to trigger a build.
* Branch and tag names in trigger templates are interpreted as regular
* expressions. Any branch or tag change that matches that regular
* expression will trigger a build.
* One of `triggerTemplate`, `github`, `pubsubConfig`, `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
readonly triggerTemplate: pulumi.Output<outputs.cloudbuild.TriggerTriggerTemplate | undefined>;
/**
* WebhookConfig describes the configuration of a trigger that creates
* a build whenever a webhook is sent to a trigger's webhook URL.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
readonly webhookConfig: pulumi.Output<outputs.cloudbuild.TriggerWebhookConfig | undefined>;
/**
* Create a Trigger resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args?: TriggerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Trigger resources.
*/
export interface TriggerState {
/**
* Configuration for manual approval to start a build invocation of this BuildTrigger.
* Builds created by this trigger will require approval before they execute.
* Any user with a Cloud Build Approver role for the project can approve a build.
* Structure is documented below.
*/
approvalConfig?: pulumi.Input<inputs.cloudbuild.TriggerApprovalConfig>;
/**
* BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.
* Structure is documented below.
*/
bitbucketServerTriggerConfig?: pulumi.Input<inputs.cloudbuild.TriggerBitbucketServerTriggerConfig>;
/**
* Contents of the build template. Either a filename or build template must be provided.
* Structure is documented below.
*/
build?: pulumi.Input<inputs.cloudbuild.TriggerBuild>;
/**
* Time when the trigger was created.
*/
createTime?: pulumi.Input<string>;
/**
* Human-readable description of the trigger.
*/
description?: pulumi.Input<string>;
/**
* Whether the trigger is disabled or not. If true, the trigger will never result in a build.
*/
disabled?: pulumi.Input<boolean>;
/**
* Path, from the source root, to a file whose contents is used for the template.
* Either a filename or build template must be provided. Set this only when using triggerTemplate or github.
* When using Pub/Sub, Webhook or Manual set the file name using gitFileSource instead.
*/
filename?: pulumi.Input<string>;
/**
* A Common Expression Language string. Used only with Pub/Sub and Webhook.
*/
filter?: pulumi.Input<string>;
/**
* The file source describing the local or remote Build template.
* Structure is documented below.
*/
gitFileSource?: pulumi.Input<inputs.cloudbuild.TriggerGitFileSource>;
/**
* Describes the configuration of a trigger that creates a build whenever a GitHub event is received.
* One of `triggerTemplate`, `github`, `pubsubConfig` or `webhookConfig` must be provided.
* Structure is documented below.
*/
github?: pulumi.Input<inputs.cloudbuild.TriggerGithub>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If ignoredFiles and changed files are both empty, then they are not
* used to determine whether or not to trigger a build.
* If ignoredFiles is not empty, then we ignore any files that match any
* of the ignoredFile globs. If the change has no files that are outside
* of the ignoredFiles globs, then we do not trigger a build.
*/
ignoredFiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Build logs will be sent back to GitHub as part of the checkrun
* result. Values can be INCLUDE_BUILD_LOGS_UNSPECIFIED or
* INCLUDE_BUILD_LOGS_WITH_STATUS
* Possible values are: `INCLUDE_BUILD_LOGS_UNSPECIFIED`, `INCLUDE_BUILD_LOGS_WITH_STATUS`.
*/
includeBuildLogs?: pulumi.Input<string>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is empty, then as far as this filter is concerned, we
* should trigger the build.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is not empty, then we make sure that at least one of
* those files matches a includedFiles glob. If not, then we do not trigger
* a build.
*/
includedFiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The [Cloud Build location](https://cloud.google.com/build/docs/locations) for the trigger.
* If not specified, "global" is used.
*/
location?: pulumi.Input<string>;
/**
* Name of the trigger. Must be unique within the project.
*/
name?: pulumi.Input<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* PubsubConfig describes the configuration of a trigger that creates
* a build whenever a Pub/Sub message is published.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
pubsubConfig?: pulumi.Input<inputs.cloudbuild.TriggerPubsubConfig>;
/**
* The configuration of a trigger that creates a build whenever an event from Repo API is received.
* Structure is documented below.
*/
repositoryEventConfig?: pulumi.Input<inputs.cloudbuild.TriggerRepositoryEventConfig>;
/**
* The service account used for all user-controlled operations including
* triggers.patch, triggers.run, builds.create, and builds.cancel.
* If no service account is set, then the standard Cloud Build service account
* ([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.
* Format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}
*/
serviceAccount?: pulumi.Input<string>;
/**
* The repo and ref of the repository from which to build.
* This field is used only for those triggers that do not respond to SCM events.
* Triggers that respond to such events build source at whatever commit caused the event.
* This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
sourceToBuild?: pulumi.Input<inputs.cloudbuild.TriggerSourceToBuild>;
/**
* Substitutions data for Build resource.
*/
substitutions?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Tags for annotation of a BuildTrigger
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The unique identifier for the trigger.
*/
triggerId?: pulumi.Input<string>;
/**
* Template describing the types of source changes to trigger a build.
* Branch and tag names in trigger templates are interpreted as regular
* expressions. Any branch or tag change that matches that regular
* expression will trigger a build.
* One of `triggerTemplate`, `github`, `pubsubConfig`, `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
triggerTemplate?: pulumi.Input<inputs.cloudbuild.TriggerTriggerTemplate>;
/**
* WebhookConfig describes the configuration of a trigger that creates
* a build whenever a webhook is sent to a trigger's webhook URL.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
webhookConfig?: pulumi.Input<inputs.cloudbuild.TriggerWebhookConfig>;
}
/**
* The set of arguments for constructing a Trigger resource.
*/
export interface TriggerArgs {
/**
* Configuration for manual approval to start a build invocation of this BuildTrigger.
* Builds created by this trigger will require approval before they execute.
* Any user with a Cloud Build Approver role for the project can approve a build.
* Structure is documented below.
*/
approvalConfig?: pulumi.Input<inputs.cloudbuild.TriggerApprovalConfig>;
/**
* BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received.
* Structure is documented below.
*/
bitbucketServerTriggerConfig?: pulumi.Input<inputs.cloudbuild.TriggerBitbucketServerTriggerConfig>;
/**
* Contents of the build template. Either a filename or build template must be provided.
* Structure is documented below.
*/
build?: pulumi.Input<inputs.cloudbuild.TriggerBuild>;
/**
* Human-readable description of the trigger.
*/
description?: pulumi.Input<string>;
/**
* Whether the trigger is disabled or not. If true, the trigger will never result in a build.
*/
disabled?: pulumi.Input<boolean>;
/**
* Path, from the source root, to a file whose contents is used for the template.
* Either a filename or build template must be provided. Set this only when using triggerTemplate or github.
* When using Pub/Sub, Webhook or Manual set the file name using gitFileSource instead.
*/
filename?: pulumi.Input<string>;
/**
* A Common Expression Language string. Used only with Pub/Sub and Webhook.
*/
filter?: pulumi.Input<string>;
/**
* The file source describing the local or remote Build template.
* Structure is documented below.
*/
gitFileSource?: pulumi.Input<inputs.cloudbuild.TriggerGitFileSource>;
/**
* Describes the configuration of a trigger that creates a build whenever a GitHub event is received.
* One of `triggerTemplate`, `github`, `pubsubConfig` or `webhookConfig` must be provided.
* Structure is documented below.
*/
github?: pulumi.Input<inputs.cloudbuild.TriggerGithub>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If ignoredFiles and changed files are both empty, then they are not
* used to determine whether or not to trigger a build.
* If ignoredFiles is not empty, then we ignore any files that match any
* of the ignoredFile globs. If the change has no files that are outside
* of the ignoredFiles globs, then we do not trigger a build.
*/
ignoredFiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Build logs will be sent back to GitHub as part of the checkrun
* result. Values can be INCLUDE_BUILD_LOGS_UNSPECIFIED or
* INCLUDE_BUILD_LOGS_WITH_STATUS
* Possible values are: `INCLUDE_BUILD_LOGS_UNSPECIFIED`, `INCLUDE_BUILD_LOGS_WITH_STATUS`.
*/
includeBuildLogs?: pulumi.Input<string>;
/**
* ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match
* extended with support for `**`.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is empty, then as far as this filter is concerned, we
* should trigger the build.
* If any of the files altered in the commit pass the ignoredFiles filter
* and includedFiles is not empty, then we make sure that at least one of
* those files matches a includedFiles glob. If not, then we do not trigger
* a build.
*/
includedFiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The [Cloud Build location](https://cloud.google.com/build/docs/locations) for the trigger.
* If not specified, "global" is used.
*/
location?: pulumi.Input<string>;
/**
* Name of the trigger. Must be unique within the project.
*/
name?: pulumi.Input<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* PubsubConfig describes the configuration of a trigger that creates
* a build whenever a Pub/Sub message is published.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
pubsubConfig?: pulumi.Input<inputs.cloudbuild.TriggerPubsubConfig>;
/**
* The configuration of a trigger that creates a build whenever an event from Repo API is received.
* Structure is documented below.
*/
repositoryEventConfig?: pulumi.Input<inputs.cloudbuild.TriggerRepositoryEventConfig>;
/**
* The service account used for all user-controlled operations including
* triggers.patch, triggers.run, builds.create, and builds.cancel.
* If no service account is set, then the standard Cloud Build service account
* ([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.
* Format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}
*/
serviceAccount?: pulumi.Input<string>;
/**
* The repo and ref of the repository from which to build.
* This field is used only for those triggers that do not respond to SCM events.
* Triggers that respond to such events build source at whatever commit caused the event.
* This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
sourceToBuild?: pulumi.Input<inputs.cloudbuild.TriggerSourceToBuild>;
/**
* Substitutions data for Build resource.
*/
substitutions?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Tags for annotation of a BuildTrigger
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Template describing the types of source changes to trigger a build.
* Branch and tag names in trigger templates are interpreted as regular
* expressions. Any branch or tag change that matches that regular
* expression will trigger a build.
* One of `triggerTemplate`, `github`, `pubsubConfig`, `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
triggerTemplate?: pulumi.Input<inputs.cloudbuild.TriggerTriggerTemplate>;
/**
* WebhookConfig describes the configuration of a trigger that creates
* a build whenever a webhook is sent to a trigger's webhook URL.
* One of `triggerTemplate`, `github`, `pubsubConfig` `webhookConfig` or `sourceToBuild` must be provided.
* Structure is documented below.
*/
webhookConfig?: pulumi.Input<inputs.cloudbuild.TriggerWebhookConfig>;
}