RepositoryWorkflowConfigArgs

data class RepositoryWorkflowConfigArgs(val cronSchedule: Output<String>? = null, val invocationConfig: Output<RepositoryWorkflowConfigInvocationConfigArgs>? = null, val name: Output<String>? = null, val project: Output<String>? = null, val region: Output<String>? = null, val releaseConfig: Output<String>? = null, val repository: Output<String>? = null, val timeZone: Output<String>? = null) : ConvertibleToJava<RepositoryWorkflowConfigArgs>

Example Usage

Dataform Repository Workflow Config

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.sourcerepo.Repository;
import com.pulumi.gcp.sourcerepo.RepositoryArgs;
import com.pulumi.gcp.secretmanager.Secret;
import com.pulumi.gcp.secretmanager.SecretArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationAutoArgs;
import com.pulumi.gcp.secretmanager.SecretVersion;
import com.pulumi.gcp.secretmanager.SecretVersionArgs;
import com.pulumi.gcp.dataform.Repository;
import com.pulumi.gcp.dataform.RepositoryArgs;
import com.pulumi.gcp.dataform.inputs.RepositoryGitRemoteSettingsArgs;
import com.pulumi.gcp.dataform.inputs.RepositoryWorkspaceCompilationOverridesArgs;
import com.pulumi.gcp.dataform.RepositoryReleaseConfig;
import com.pulumi.gcp.dataform.RepositoryReleaseConfigArgs;
import com.pulumi.gcp.dataform.inputs.RepositoryReleaseConfigCodeCompilationConfigArgs;
import com.pulumi.gcp.serviceAccount.Account;
import com.pulumi.gcp.serviceAccount.AccountArgs;
import com.pulumi.gcp.dataform.RepositoryWorkflowConfig;
import com.pulumi.gcp.dataform.RepositoryWorkflowConfigArgs;
import com.pulumi.gcp.dataform.inputs.RepositoryWorkflowConfigInvocationConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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 gitRepository = new Repository("gitRepository", RepositoryArgs.Empty, CustomResourceOptions.builder()
.provider(google_beta)
.build());
var secret = new Secret("secret", SecretArgs.builder()
.secretId("my_secret")
.replication(SecretReplicationArgs.builder()
.auto()
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var secretVersion = new SecretVersion("secretVersion", SecretVersionArgs.builder()
.secret(secret.id())
.secretData("secret-data")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var repository = new Repository("repository", RepositoryArgs.builder()
.region("us-central1")
.gitRemoteSettings(RepositoryGitRemoteSettingsArgs.builder()
.url(gitRepository.url())
.defaultBranch("main")
.authenticationTokenSecretVersion(secretVersion.id())
.build())
.workspaceCompilationOverrides(RepositoryWorkspaceCompilationOverridesArgs.builder()
.defaultDatabase("database")
.schemaSuffix("_suffix")
.tablePrefix("prefix_")
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var releaseConfig = new RepositoryReleaseConfig("releaseConfig", RepositoryReleaseConfigArgs.builder()
.project(repository.project())
.region(repository.region())
.repository(repository.name())
.gitCommitish("main")
.cronSchedule("0 7 * * *")
.timeZone("America/New_York")
.codeCompilationConfig(RepositoryReleaseConfigCodeCompilationConfigArgs.builder()
.defaultDatabase("gcp-example-project")
.defaultSchema("example-dataset")
.defaultLocation("us-central1")
.assertionSchema("example-assertion-dataset")
.databaseSuffix("")
.schemaSuffix("")
.tablePrefix("")
.vars(Map.of("var1", "value"))
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var dataformSa = new Account("dataformSa", AccountArgs.builder()
.accountId("dataform-workflow-sa")
.displayName("Dataform Service Account")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var workflow = new RepositoryWorkflowConfig("workflow", RepositoryWorkflowConfigArgs.builder()
.project(repository.project())
.region(repository.region())
.repository(repository.name())
.releaseConfig(releaseConfig.id())
.invocationConfig(RepositoryWorkflowConfigInvocationConfigArgs.builder()
.includedTargets(
RepositoryWorkflowConfigInvocationConfigIncludedTargetArgs.builder()
.database("gcp-example-project")
.schema("example-dataset")
.name("target_1")
.build(),
RepositoryWorkflowConfigInvocationConfigIncludedTargetArgs.builder()
.database("gcp-example-project")
.schema("example-dataset")
.name("target_2")
.build())
.includedTags("tag_1")
.transitiveDependenciesIncluded(true)
.transitiveDependentsIncluded(true)
.fullyRefreshIncrementalTablesEnabled(false)
.serviceAccount(dataformSa.email())
.build())
.cronSchedule("0 7 * * *")
.timeZone("America/New_York")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Import

RepositoryWorkflowConfig can be imported using any of these accepted formats

$ pulumi import gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig default projects/{{project}}/locations/{{region}}/repositories/{{repository}}/workflowConfigs/{{name}}
$ pulumi import gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig default {{project}}/{{region}}/{{repository}}/{{name}}
$ pulumi import gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig default {{region}}/{{repository}}/{{name}}
$ pulumi import gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig default {{repository}}/{{name}}

Constructors

Link copied to clipboard
constructor(cronSchedule: Output<String>? = null, invocationConfig: Output<RepositoryWorkflowConfigInvocationConfigArgs>? = null, name: Output<String>? = null, project: Output<String>? = null, region: Output<String>? = null, releaseConfig: Output<String>? = null, repository: Output<String>? = null, timeZone: Output<String>? = null)

Properties

Link copied to clipboard
val cronSchedule: Output<String>? = null

Optional. Optional schedule (in cron format) for automatic creation of compilation results.

Link copied to clipboard

Optional. If left unset, a default InvocationConfig will be used. Structure is documented below.

Link copied to clipboard
val name: Output<String>? = null

The workflow's name.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val region: Output<String>? = null

A reference to the region

Link copied to clipboard
val releaseConfig: Output<String>? = null

The name of the release config whose releaseCompilationResult should be executed. Must be in the format projects//locations//repositories//releaseConfigs/.

Link copied to clipboard
val repository: Output<String>? = null

A reference to the Dataform repository

Link copied to clipboard
val timeZone: Output<String>? = null

Optional. Specifies the time zone to be used when interpreting cronSchedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). If left unspecified, the default is UTC. ////

Functions

Link copied to clipboard
open override fun toJava(): RepositoryWorkflowConfigArgs