cdktf-crd
Version:
682 lines • 54.4 kB
TypeScript
import { Manifest, type ManifestConfig } from "@cdktf/provider-kubernetes/lib/manifest";
import { Construct } from "constructs";
export declare class KubernetesCloudBuildTriggerV1beta1Manifest extends Manifest {
constructor(scope: Construct, id: string, config: KubernetesCloudBuildTriggerV1beta1ManifestConfig);
}
export interface KubernetesCloudBuildTriggerV1beta1ManifestConfig extends ManifestConfig {
manifest: {
apiVersion?: "cloudbuild.cnrm.cloud.google.com/v1beta1";
kind?: "CloudBuildTrigger";
metadata: {
annotations?: {
[key: string]: string;
};
labels?: {
[key: string]: string;
};
name: string;
namespace?: string;
};
spec?: {
/** @description 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. */
approvalConfig?: {
/** @description Whether or not approval is needed. If this is set on a build, it will become pending when run,
* and will need to be explicitly approved to start. */
approvalRequired?: boolean;
};
/** @description BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received. */
bitbucketServerTriggerConfig?: {
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the bitbucket server config. Format:
* projects/{project}/locations/{location}/bitbucketServerConfigs/{id}. */
bitbucketServerConfigResourceRef: {
/** @description Allowed value: The `name` field of a `CloudBuildBitbucketServerConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is "TEST". */
projectKey: string;
/** @description Filter to match changes in pull requests. */
pullRequest?: {
/** @description Regex of branches to match.
* The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax. */
branch: string;
/** @description Configure builds to run whether a repository owner or collaborator need to comment /gcbrun. Possible values: ["COMMENTS_DISABLED", "COMMENTS_ENABLED", "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"]. */
commentControl?: string;
/** @description If true, branches that do NOT match the git_ref will trigger a build. */
invertRegex?: boolean;
};
/** @description Filter to match changes in refs like branches, tags. */
push?: {
/** @description Regex of branches to match. Specify only one of branch or tag. */
branch?: string;
/** @description When true, only trigger a build if the revision regex does NOT match the gitRef regex. */
invertRegex?: boolean;
/** @description Regex of tags to match. Specify only one of branch or tag. */
tag?: string;
};
/** @description Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL.
* For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo. */
repoSlug: string;
};
/** @description Contents of the build template. Either a filename or build template must be provided. */
build?: {
/** @description Artifacts produced by the build that should be uploaded upon successful completion of all build steps. */
artifacts?: {
/** @description A list of images to be pushed upon the successful completion of all build steps.
*
* The images will be pushed using the builder service account's credentials.
*
* The digests of the pushed images will be stored in the Build resource's results field.
*
* If any of the images fail to be pushed, the build is marked FAILURE. */
images?: string[];
/** @description A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps.
*
* Files in the workspace matching specified paths globs will be uploaded to the
* Cloud Storage location using the builder service account's credentials.
*
* The location and generation of the uploaded objects will be stored in the Build resource's results field.
*
* If any objects fail to be pushed, the build is marked FAILURE. */
objects?: {
/** @description Cloud Storage bucket and optional object path, in the form "gs://bucket/path/to/somewhere/".
*
* Files in the workspace matching any path pattern will be uploaded to Cloud Storage with
* this location as a prefix. */
location?: string;
/** @description Path globs used to match files in the build's workspace. */
paths?: string[];
/** @description Output only. Stores timing information for pushing all artifact objects. */
timing?: {
/** @description End of time span.
*
* 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". */
endTime?: string;
/** @description Start of time span.
*
* 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". */
startTime?: string;
}[];
};
};
/** @description Secrets and secret environment variables. */
availableSecrets?: {
/** @description Pairs a secret environment variable with a SecretVersion in Secret Manager. */
secretManager: {
/** @description Environment variable name to associate with the secret. Secret environment
* variables must be unique across all of a build's secrets, and must be used
* by at least one build step. */
env: string;
versionRef: {
/** @description Allowed value: The `name` field of a `SecretManagerSecretVersion` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
}[];
};
/** @description A list of images to be pushed upon the successful completion of all build steps.
* The images are pushed using the builder service account's credentials.
* The digests of the pushed images will be stored in the Build resource's results field.
* If any of the images fail to be pushed, the build status is marked FAILURE. */
images?: string[];
/** @description Google Cloud Storage bucket where logs should be written. Logs file
* names will be of the format ${logsBucket}/log-${build_id}.txt. */
logsBucketRef?: {
/** @description Allowed value: The `url` field of a `StorageBucket` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Special options for this build. */
options?: {
/** @description Requested disk size for the VM that runs the build. Note that this is NOT "disk free";
* some of the space will be used by the operating system and build utilities.
* Also note that this is the minimum disk size that will be allocated for the build --
* the build may run with a larger disk than requested. At present, the maximum disk size
* is 1000GB; builds that request more than the maximum are rejected with an error. */
diskSizeGb?: number;
/** @description Option to specify whether or not to apply bash style string operations to the substitutions.
*
* NOTE this is always enabled for triggered builds and cannot be overridden in the build configuration file. */
dynamicSubstitutions?: boolean;
/** @description A list of global environment variable definitions that will exist for all build steps
* in this build. If a variable is defined in both globally and in a build step,
* the variable will use the build step value.
*
* The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE". */
env?: string[];
/** @description Option to define build log streaming behavior to Google Cloud Storage. Possible values: ["STREAM_DEFAULT", "STREAM_ON", "STREAM_OFF"]. */
logStreamingOption?: string;
/** @description Option to specify the logging mode, which determines if and where build logs are stored. Possible values: ["LOGGING_UNSPECIFIED", "LEGACY", "GCS_ONLY", "STACKDRIVER_ONLY", "CLOUD_LOGGING_ONLY", "NONE"]. */
logging?: string;
/** @description Compute Engine machine type on which to run the build. */
machineType?: string;
/** @description Requested verifiability options. Possible values: ["NOT_VERIFIED", "VERIFIED"]. */
requestedVerifyOption?: string;
/** @description A list of global environment variables, which are encrypted using a Cloud Key Management
* Service crypto key. These values must be specified in the build's Secret. These variables
* will be available to all build steps in this build. */
secretEnv?: string[];
/** @description Requested hash for SourceProvenance. Possible values: ["NONE", "SHA256", "MD5"]. */
sourceProvenanceHash?: string[];
/** @description Option to specify behavior when there is an error in the substitution checks.
*
* NOTE this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden
* in the build configuration file. Possible values: ["MUST_MATCH", "ALLOW_LOOSE"]. */
substitutionOption?: string;
/** @description Global list of volumes to mount for ALL build steps
*
* Each volume is created as an empty volume prior to starting the build process.
* Upon completion of the build, volumes and their contents are discarded. Global
* volume names and paths cannot conflict with the volumes defined a build step.
*
* Using a global volume in a build with only one step is not valid as it is indicative
* of a build request with an incorrect configuration. */
volumes?: {
/** @description Name of the volume to mount.
*
* Volume names must be unique per build step and must be valid names for Docker volumes.
* Each named volume must be used by at least two build steps. */
name?: string;
/** @description Path at which to mount the volume.
*
* Paths must be absolute and cannot conflict with other volume paths on the same
* build step or with certain reserved volume paths. */
path?: string;
}[];
/** @description Option to specify a WorkerPool for the build. Format projects/{project}/workerPools/{workerPool}
*
* This field is experimental. */
workerPool?: string;
};
/** @description TTL in queue for this build. If provided and the build is enqueued longer than this value,
* the build will expire and the build status will be EXPIRED.
* The TTL starts ticking from createTime.
* A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". */
queueTtl?: string;
/** @description Secrets to decrypt using Cloud Key Management Service. */
secret?: {
/** @description KMS crypto key to use to decrypt these envs. */
kmsKeyRef: {
/** @description Allowed value: The `selfLink` field of a `KMSCryptoKey` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Map of environment variable name to its encrypted value.
* Secret environment variables must be unique across all of a build's secrets,
* and must be used by at least one build step. Values can be at most 64 KB in size.
* There can be at most 100 secret values across all of a build's secrets. */
secretEnv?: {
[key: string]: string;
};
}[];
/** @description The location of the source files to build.
*
* One of 'storageSource' or 'repoSource' must be provided. */
source?: {
/** @description Location of the source in a Google Cloud Source Repository. */
repoSource?: {
/** @description Regex matching branches to build. Exactly one a of branch name, tag, or commit SHA must be provided.
* The syntax of the regular expressions accepted is the syntax accepted by RE2 and
* described at https://github.com/google/re2/wiki/Syntax. */
branchName?: string;
/** @description Explicit commit SHA to build. Exactly one a of branch name, tag, or commit SHA must be provided. */
commitSha?: string;
/** @description Directory, relative to the source root, in which to run the build.
* This must be a relative path. If a step's dir is specified and is an absolute path,
* this value is ignored for that step's execution. */
dir?: string;
/** @description Only trigger a build if the revision regex does NOT match the revision regex. */
invertRegex?: boolean;
/** @description ID of the project that owns the Cloud Source Repository.
* If omitted, the project ID requesting the build is assumed. */
projectId?: string;
/** @description The desired Cloud Source Repository. If omitted, "default" is
* assumed. */
repoRef: {
/** @description Allowed value: The `name` field of a `SourceRepoRepository` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Substitutions to use in a triggered build. Should only be used with triggers.run. */
substitutions?: {
[key: string]: string;
};
/** @description Regex matching tags to build. Exactly one a of branch name, tag, or commit SHA must be provided.
* The syntax of the regular expressions accepted is the syntax accepted by RE2 and
* described at https://github.com/google/re2/wiki/Syntax. */
tagName?: string;
};
/** @description Location of the source in an archive file in Google Cloud Storage. */
storageSource?: {
/** @description Google Cloud Storage bucket containing the source. */
bucketRef: {
/** @description Allowed value: The `name` field of a `StorageBucket` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Google Cloud Storage generation for the object.
* If the generation is omitted, the latest generation will be used. */
generation?: string;
/** @description Google Cloud Storage object containing the source.
* This object must be a gzipped archive file (.tar.gz) containing source to build. */
object: string;
};
};
/** @description The operations to be performed on the workspace. */
step: {
/** @description Allow this build step to fail without failing the entire build if and
* only if the exit code is one of the specified codes.
*
* If 'allowFailure' is also specified, this field will take precedence. */
allowExitCodes?: number[];
/** @description Allow this build step to fail without failing the entire build.
* If false, the entire build will fail if this step fails. Otherwise, the
* build will succeed, but this step will still have a failure status.
* Error information will be reported in the 'failureDetail' field.
*
* 'allowExitCodes' takes precedence over this field. */
allowFailure?: boolean;
/** @description A list of arguments that will be presented to the step when it is started.
*
* If the image used to run the step's container has an entrypoint, the args
* are used as arguments to that entrypoint. If the image does not define an
* entrypoint, the first element in args is used as the entrypoint, and the
* remainder will be used as arguments. */
args?: string[];
/** @description Working directory to use when running this step's container.
*
* If this value is a relative path, it is relative to the build's working
* directory. If this value is absolute, it may be outside the build's working
* directory, in which case the contents of the path may not be persisted
* across build step executions, unless a 'volume' for that path is specified.
*
* If the build specifies a 'RepoSource' with 'dir' and a step with a
* 'dir',
* which specifies an absolute path, the 'RepoSource' 'dir' is ignored
* for the step's execution. */
dir?: string;
/** @description Entrypoint to be used instead of the build step image's
* default entrypoint.
* If unset, the image's default entrypoint is used. */
entrypoint?: string;
/** @description A list of environment variable definitions to be used when
* running a step.
*
* The elements are of the form "KEY=VALUE" for the environment variable
* "KEY" being given the value "VALUE". */
env?: string[];
/** @description Unique identifier for this build step, used in 'wait_for' to
* reference this build step as a dependency. */
id?: string;
/** @description The name of the container image that will run this particular build step.
*
* If the image is available in the host's Docker daemon's cache, it will be
* run directly. If not, the host will attempt to pull the image first, using
* the builder service account's credentials if necessary.
*
* The Docker daemon's cache will already have the latest versions of all of
* the officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders
* for images and examples).
* The Docker daemon will also have cached many of the layers for some popular
* images, like "ubuntu", "debian", but they will be refreshed at the time
* you attempt to use them.
*
* If you built an image in a previous build step, it will be stored in the
* host's Docker daemon's cache and is available to use as the name for a
* later build step. */
name: string;
/** @description A shell script to be executed in the step.
* When script is provided, the user cannot specify the entrypoint or args. */
script?: string;
/** @description A list of environment variables which are encrypted using
* a Cloud Key
* Management Service crypto key. These values must be specified in
* the build's 'Secret'. */
secretEnv?: string[];
/** @description Time limit for executing this build step. If not defined,
* the step has no
* time limit and will be allowed to continue to run until either it
* completes or the build itself times out. */
timeout?: string;
/** @description Output only. Stores timing information for executing this
* build step. */
timing?: string;
/** @description List of volumes to mount into the build step.
*
* Each volume is created as an empty volume prior to execution of the
* build step. Upon completion of the build, volumes and their contents
* are discarded.
*
* Using a named volume in only one step is not valid as it is
* indicative of a build request with an incorrect configuration. */
volumes?: {
/** @description Name of the volume to mount.
*
* Volume names must be unique per build step and must be valid names for
* Docker volumes. Each named volume must be used by at least two build steps. */
name: string;
/** @description Path at which to mount the volume.
*
* Paths must be absolute and cannot conflict with other volume paths on
* the same build step or with certain reserved volume paths. */
path: string;
}[];
/** @description The ID(s) of the step(s) that this build step depends on.
*
* This build step will not start until all the build steps in 'wait_for'
* have completed successfully. If 'wait_for' is empty, this build step
* will start when all previous build steps in the 'Build.Steps' list
* have completed successfully. */
waitFor?: string[];
}[];
/** @description Substitutions data for Build resource. */
substitutions?: {
[key: string]: string;
};
/** @description Tags for annotation of a Build. These are not docker tags. */
tags?: string[];
/** @description Amount of time that this build should be allowed to run, to second granularity.
* If this amount of time elapses, work on the build will cease and the build status will be TIMEOUT.
* This timeout must be equal to or greater than the sum of the timeouts for build steps within the build.
* The expected format is the number of seconds followed by s.
* Default time is ten minutes (600s). */
timeout?: string;
};
/** @description Human-readable description of the trigger. */
description?: string;
/** @description Whether the trigger is disabled or not. If true, the trigger will never result in a build. */
disabled?: boolean;
/** @description 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 trigger_template or github.
* When using Pub/Sub, Webhook or Manual set the file name using git_file_source instead. */
filename?: string;
/** @description A Common Expression Language string. Used only with Pub/Sub and Webhook. */
filter?: string;
/** @description The file source describing the local or remote Build template. */
gitFileSource?: {
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the bitbucket server config. Format:
* projects/{project}/locations/{location}/bitbucketServerConfigs/{id}. */
bitbucketServerConfigRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildBitbucketServerConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the github enterprise config. Format:
* projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. */
githubEnterpriseConfigRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildGithubEnterpriseConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description The path of the file, with the repo root as the root of the path. */
path: string;
/** @description The type of the repo, since it may not be explicit from the repo field (e.g from a URL).
* Values can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER Possible values: ["UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER"]. */
repoType: string;
/** @description Only `external` field is supported to configure the reference.
*
* The fully qualified resource name of the Repo API repository. The fully qualified resource name of the Repo API repository.
* If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path. */
repositoryRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildV2Repository` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the
* filename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions
* If unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path. */
revision?: string;
/** @description The URI of the repo (optional). If unspecified, the repo from which the trigger
* invocation originated is assumed to be the repo from which to read the specified path. */
uri?: string;
};
/** @description Describes the configuration of a trigger that creates a build whenever a GitHub event is received.
*
* One of 'trigger_template', 'github', 'pubsub_config' or 'webhook_config' must be provided. */
github?: {
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the github enterprise config. Format:
* projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. */
enterpriseConfigResourceNameRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildGithubEnterpriseConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Name of the repository. For example: The name for
* https://github.com/googlecloudplatform/cloud-builders is "cloud-builders". */
name?: string;
/** @description Owner of the repository. For example: The owner for
* https://github.com/googlecloudplatform/cloud-builders is "googlecloudplatform". */
owner?: string;
/** @description filter to match changes in pull requests. Specify only one of 'pull_request' or 'push'. */
pullRequest?: {
/** @description Regex of branches to match. */
branch: string;
/** @description Whether to block builds on a "/gcbrun" comment from a repository owner or collaborator. Possible values: ["COMMENTS_DISABLED", "COMMENTS_ENABLED", "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"]. */
commentControl?: string;
/** @description If true, branches that do NOT match the git_ref will trigger a build. */
invertRegex?: boolean;
};
/** @description filter to match changes in refs, like branches or tags. Specify only one of 'pull_request' or 'push'. */
push?: {
/** @description Regex of branches to match. Specify only one of branch or tag. */
branch?: string;
/** @description When true, only trigger a build if the revision regex does NOT match the git_ref regex. */
invertRegex?: boolean;
/** @description Regex of tags to match. Specify only one of branch or tag. */
tag?: string;
};
};
/** @description 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 ignored_file globs. If the change has no files that are outside
* of the ignoredFiles globs, then we do not trigger a build. */
ignoredFiles?: string[];
/** @description 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: ["INCLUDE_BUILD_LOGS_UNSPECIFIED", "INCLUDE_BUILD_LOGS_WITH_STATUS"]. */
includeBuildLogs?: string;
/** @description 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?: string[];
/** @description Immutable. The location of the Cloud Build trigger. If not specified, "global" is used. More info: cloud.google.com/build/docs/locations. */
location?: string;
/** @description PubsubConfig describes the configuration of a trigger that creates
* a build whenever a Pub/Sub message is published.
*
* One of 'trigger_template', 'github', 'pubsub_config' 'webhook_config' or 'source_to_build' must be provided. */
pubsubConfig?: {
/** @description Service account that will make the push request. */
serviceAccountRef?: {
/** @description Allowed value: The `email` field of an `IAMServiceAccount` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Potential issues with the underlying Pub/Sub subscription configuration.
* Only populated on get requests. */
state?: string;
/** @description Output only. Name of the subscription. */
subscription?: string;
/** @description The name of the topic from which this subscription
* is receiving messages. */
topicRef: {
/** @description Allowed value: string of the format `projects/{{project}}/topics/{{value}}`, where {{value}} is the `name` field of a `PubSubTopic` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
};
/** @description The configuration of a trigger that creates a build whenever an event from Repo API is received. */
repositoryEventConfig?: {
/** @description Contains filter properties for matching Pull Requests. */
pullRequest?: {
/** @description Regex of branches to match.
*
* The syntax of the regular expressions accepted is the syntax accepted by
* RE2 and described at https://github.com/google/re2/wiki/Syntax. */
branch?: string;
/** @description Configure builds to run whether a repository owner or collaborator need to comment '/gcbrun'. Possible values: ["COMMENTS_DISABLED", "COMMENTS_ENABLED", "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"]. */
commentControl?: string;
/** @description If true, branches that do NOT match the git_ref will trigger a build. */
invertRegex?: boolean;
};
/** @description Contains filter properties for matching git pushes. */
push?: {
/** @description Regex of branches to match.
*
* The syntax of the regular expressions accepted is the syntax accepted by
* RE2 and described at https://github.com/google/re2/wiki/Syntax. */
branch?: string;
/** @description If true, only trigger a build if the revision regex does NOT match the git_ref regex. */
invertRegex?: boolean;
/** @description Regex of tags to match.
*
* The syntax of the regular expressions accepted is the syntax accepted by
* RE2 and described at https://github.com/google/re2/wiki/Syntax. */
tag?: string;
};
/** @description The resource name of the Repo API resource. */
repository?: string;
};
/** @description 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.
*
* When populating via the external field, the following format is supported:
* projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL} */
serviceAccountRef?: {
/** @description Allowed value: string of the format `projects/{{project}}/serviceAccounts/{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description 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 'trigger_template', 'github', 'pubsub_config' 'webhook_config' or 'source_to_build' must be provided. */
sourceToBuild?: {
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the bitbucket server config. Format:
* projects/{project}/locations/{location}/bitbucketServerConfigs/{id}. */
bitbucketServerConfigRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildBitbucketServerConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description Only `external` field is supported to configure the reference.
*
* The full resource name of the github enterprise config. Format:
* projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. */
githubEnterpriseConfigRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildGithubEnterpriseConfig` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description The branch or tag to use. Must start with "refs/" (required). */
ref: string;
/** @description The type of the repo, since it may not be explicit from the repo field (e.g from a URL).
* Values can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER Possible values: ["UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER"]. */
repoType: string;
/** @description Only `external` field is supported to configure the reference.
*
* The qualified resource name of the Repo API repository.
* Either uri or repository can be specified and is required. */
repositoryRef?: {
/** @description Allowed value: The `name` field of a `CloudBuildV2Repository` resource. */
external?: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names */
name?: string;
/** @description Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ */
namespace?: string;
} & (unknown | unknown);
/** @description The URI of the repo. */
uri?: string;
};
/** @description Substitutions data for Build resource. */
substitutions?: {
[key: string]: string;
};
/** @description Tags for annotation of a BuildTrigger. */
tags?: string[];
/** @description 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 'trigger_template', 'github', 'pubsub_config', 'webhook_config' or 'source_to_build' must be provided. */
triggerTemplate?: {
/** @description Name of the branch to build. Exactly one a of branch name, tag, or commit SHA mus